openapi: 3.2.0 info: title: Modulr Cards API description: Modulr API license: name: © Modulr Finance url: https://www.modulrfinance.com version: '1.0' servers: - url: https://api-sandbox.modulrfinance.com/api-sandbox-token security: - modulo_security: [] tags: - name: Cards description: Cards API paths: /cards/{cardId}/authentication: put: tags: - Cards summary: Update card authentication description: Support knowledge based authentication (KBA) operationId: updateCardAuthentication parameters: - name: cardId in: path description: The ID of the card which has authentication information to be updated required: true style: simple explode: false schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/card.UpdateCardAuthenticationRequest' required: true responses: '204': description: Card authentication updated '400': description: Invalid request content: '*/*': schema: type: array items: $ref: '#/components/schemas/card.MessageResponse' security: - HMAC: [] - TOKEN: [] /partners/{partnerId}/card-report-types/{reportType}/notifications: get: tags: - Cards summary: Retrieve card report type notification configuration for partner operationId: getNotificationConfigurationsForAGivenPartnerAndReportType parameters: - name: partnerId in: path description: Id of partner to retrieve report type notification configuration for required: true style: simple explode: false schema: type: string - name: reportType in: path description: Type of report partner wants to retrieve notification configuration for required: true style: simple explode: false schema: type: string enum: - DAILY_CARD_ACTIVITY - MONTHLY_CARD_ACTIVITY - DAILY_ACCOUNT_FUNDING - MONTHLY_ACCOUNT_FUNDING - DAILY_AUTH_WINDOW - name: page in: query description: Page to fetch (0 indexed) required: false style: form explode: true schema: type: integer format: int32 default: 0 - name: size in: query description: Size of page to fetch required: false style: form explode: true schema: type: integer format: int32 default: 20 maximum: 500 responses: '200': description: Retrieved report type notification configuration for partner content: application/json: schema: $ref: '#/components/schemas/card.ReportTypeNotificationPageResponse' '400': description: Invalid request content: '*/*': schema: type: array items: $ref: '#/components/schemas/card.MessageResponse' '403': description: Partner can not access this data content: application/json: schema: $ref: '#/components/schemas/card.ReportTypeNotificationPageResponse' security: - HMAC: [] - TOKEN: [] post: tags: - Cards summary: Update report type notification configuration for partner operationId: updateNotificationConfigurationsForAGivenPartnerAndReportType parameters: - name: partnerId in: path description: Id of partner to set up notification for required: true style: simple explode: false schema: type: string - name: reportType in: path description: Type of report partner wants notification sent for required: true style: simple explode: false schema: type: string enum: - DAILY_CARD_ACTIVITY - MONTHLY_CARD_ACTIVITY - DAILY_ACCOUNT_FUNDING - MONTHLY_ACCOUNT_FUNDING - DAILY_AUTH_WINDOW requestBody: content: application/json: schema: $ref: '#/components/schemas/card.NotificationRequest' required: true responses: '201': description: Updated report type notification configuration for partner '400': description: Invalid request content: '*/*': schema: type: array items: $ref: '#/components/schemas/card.MessageResponse' '403': description: Partner can not update this data security: - HMAC: [] - TOKEN: [] delete: tags: - Cards summary: Delete card report notification configuration for partner and report type operationId: deleteAllNotificationConfigurationsForAGivenPartnerAndReportType parameters: - name: partnerId in: path description: Id of partner to remove notification for required: true style: simple explode: false schema: type: string - name: reportType in: path description: Type of report partner is unsubscribing notification for required: true style: simple explode: false schema: type: string enum: - DAILY_CARD_ACTIVITY - MONTHLY_CARD_ACTIVITY - DAILY_ACCOUNT_FUNDING - MONTHLY_ACCOUNT_FUNDING - DAILY_AUTH_WINDOW responses: '204': description: Deleted report type notification configuration for partner '400': description: Invalid request content: '*/*': schema: type: array items: $ref: '#/components/schemas/card.MessageResponse' '403': description: Partner can not update this data security: - HMAC: [] - TOKEN: [] /partners/{partnerId}/card-report-types/{reportType}/notifications/status: post: tags: - Cards summary: Toggle card report notification for partner and report type operationId: toggleNotificationsForAGivenPartnerAndReportType parameters: - name: partnerId in: path description: Id of partner to toggle notification for required: true style: simple explode: false schema: type: string - name: reportType in: path description: Type of report partner wants notification toggled for required: true style: simple explode: false schema: type: string enum: - DAILY_CARD_ACTIVITY - MONTHLY_CARD_ACTIVITY - DAILY_ACCOUNT_FUNDING - MONTHLY_ACCOUNT_FUNDING - DAILY_AUTH_WINDOW requestBody: content: application/json: schema: $ref: '#/components/schemas/card.UpdateCardReportNotificationRequest' required: true responses: '204': description: Toggled notifications for partner and report type '400': description: Invalid request content: '*/*': schema: type: array items: $ref: '#/components/schemas/card.MessageResponse' '403': description: Partner can not edit this data security: - HMAC: [] - TOKEN: [] /partner/{partnerId}/bulk-card-custom-fields: post: tags: - Cards summary: Bulk create partner custom field keys description: Bulk create partner custom field keys operationId: bulkCreatePartnerCustomFieldKeys parameters: - name: partnerId in: path description: Id of partner to create custom fields for required: true style: simple explode: false schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/card.BulkCreateCustomFieldKeysRequest' required: true responses: '201': description: Custom field keys created successfully '400': description: Invalid request content: '*/*': schema: type: array items: $ref: '#/components/schemas/card.MessageResponse' security: - HMAC: [] - TOKEN: [] /customers/{customerId}/card-report-types/{reportType}/notifications: get: tags: - Cards summary: Retrieve card report type notification configuration for customer operationId: getNotificationConfigurationsForAGivenCustomerAndReportType parameters: - name: customerId in: path description: Id of customer to retrieve report type notification configuration for required: true style: simple explode: false schema: type: string - name: reportType in: path description: Type of report customer wants to retrieve notification configuration for required: true style: simple explode: false schema: type: string enum: - DAILY_CARD_ACTIVITY - MONTHLY_CARD_ACTIVITY - DAILY_ACCOUNT_FUNDING - MONTHLY_ACCOUNT_FUNDING - DAILY_AUTH_WINDOW - name: page in: query description: Page to fetch (0 indexed) required: false style: form explode: true schema: type: integer format: int32 default: 0 - name: size in: query description: Size of page to fetch required: false style: form explode: true schema: type: integer format: int32 default: 20 maximum: 500 responses: '200': description: Retrieved report type notification configuration for customer content: application/json: schema: $ref: '#/components/schemas/card.ReportTypeNotificationPageResponse' '400': description: Invalid request content: '*/*': schema: type: array items: $ref: '#/components/schemas/card.MessageResponse' '403': description: Customer can not access this data content: application/json: schema: $ref: '#/components/schemas/card.ReportTypeNotificationPageResponse' security: - HMAC: [] - TOKEN: [] post: tags: - Cards summary: Update report type notification configuration for customer operationId: updateNotificationConfigurationsForAGivenCustomerAndReportType parameters: - name: customerId in: path description: Id of customer to set up notification for required: true style: simple explode: false schema: type: string - name: reportType in: path description: Type of report customer wants notification sent for required: true style: simple explode: false schema: type: string enum: - DAILY_CARD_ACTIVITY - MONTHLY_CARD_ACTIVITY - DAILY_ACCOUNT_FUNDING - MONTHLY_ACCOUNT_FUNDING - DAILY_AUTH_WINDOW requestBody: content: application/json: schema: $ref: '#/components/schemas/card.NotificationRequest' required: true responses: '201': description: Created report type notification configuration for customer '400': description: Invalid request content: '*/*': schema: type: array items: $ref: '#/components/schemas/card.MessageResponse' '403': description: Customer can not create this data security: - HMAC: [] - TOKEN: [] delete: tags: - Cards summary: Delete card report notification configuration for customer and report type operationId: deleteAllNotificationConfigurationsForAGivenCustomerAndReportType parameters: - name: customerId in: path description: Id of customer to remove notification for required: true style: simple explode: false schema: type: string - name: reportType in: path description: Type of report customer is unsubscribing notification for required: true style: simple explode: false schema: type: string enum: - DAILY_CARD_ACTIVITY - MONTHLY_CARD_ACTIVITY - DAILY_ACCOUNT_FUNDING - MONTHLY_ACCOUNT_FUNDING - DAILY_AUTH_WINDOW responses: '204': description: Deleted report type notification configuration for customer '400': description: Invalid request content: '*/*': schema: type: array items: $ref: '#/components/schemas/card.MessageResponse' '403': description: Customer can not update this data security: - HMAC: [] - TOKEN: [] /customers/{customerId}/card-report-types/{reportType}/notifications/status: post: tags: - Cards summary: Toggled notifications for customer and card report type operationId: toggleNotificationsForAGivenCustomerAndReportType parameters: - name: customerId in: path description: Id of customer to toggle notification for required: true style: simple explode: false schema: type: string - name: reportType in: path description: Type of report customer wants notification toggled for required: true style: simple explode: false schema: type: string enum: - DAILY_CARD_ACTIVITY - MONTHLY_CARD_ACTIVITY - DAILY_ACCOUNT_FUNDING - MONTHLY_ACCOUNT_FUNDING - DAILY_AUTH_WINDOW requestBody: content: application/json: schema: $ref: '#/components/schemas/card.UpdateCardReportNotificationRequest' required: true responses: '204': description: Toggled notifications for customer and report type '400': description: Invalid request content: '*/*': schema: type: array items: $ref: '#/components/schemas/card.MessageResponse' '403': description: Customer can not edit this data security: - HMAC: [] - TOKEN: [] /customer/{customerId}/bulk-card-custom-fields: post: tags: - Cards summary: Bulk create customer custom field keys description: Bulk create customer custom field keys operationId: bulkCreateCustomerCustomFieldKeys parameters: - name: customerId in: path description: Id of customer to create custom fields for required: true style: simple explode: false schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/card.BulkCreateCustomFieldKeysRequest' required: true responses: '201': description: Custom field keys created successfully '400': description: Invalid request content: '*/*': schema: type: array items: $ref: '#/components/schemas/card.MessageResponse' security: - HMAC: [] - TOKEN: [] /cards/{cardId}: get: tags: - Cards summary: View the details of an existing card operationId: getCard parameters: - name: cardId in: path description: The ID of the card to view required: true style: simple explode: false schema: type: string responses: '200': description: Card returned successfully content: application/json: schema: $ref: '#/components/schemas/card.CardResponse' '400': description: Invalid request content: '*/*': schema: type: array items: $ref: '#/components/schemas/card.MessageResponse' security: - HMAC: [] - TOKEN: [] post: tags: - Cards summary: Update a card description: Update card and cardholder details operationId: update parameters: - name: cardId in: path description: The ID of the card to be updated required: true style: simple explode: false schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/card.UpdateCardRequest' required: true responses: '204': description: Card updated successfully '400': description: Invalid request content: '*/*': schema: type: array items: $ref: '#/components/schemas/card.MessageResponse' security: - HMAC: [] - TOKEN: [] patch: tags: - Cards summary: Update card description: Update card - for now, the removal of cancellationDate, authWindowStartDate and authWindowEndDate fields and the update of frequencyUsage field are the only allowed actions operationId: updateCard parameters: - name: cardId in: path required: true style: simple explode: false schema: type: string requestBody: content: application/json: schema: type: array items: oneOf: - $ref: '#/components/schemas/card.Add' - $ref: '#/components/schemas/card.Copy' - $ref: '#/components/schemas/card.Move' - $ref: '#/components/schemas/card.Remove' - $ref: '#/components/schemas/card.Replace' - $ref: '#/components/schemas/card.Test' required: true responses: '204': description: Card updated successfully '400': description: Invalid request content: '*/*': schema: type: array items: $ref: '#/components/schemas/card.MessageResponse' '403': description: Forbidden. Token may be missing or invalid security: - HMAC: [] - TOKEN: [] /cards/{cardId}/unsuspend: post: tags: - Cards summary: '[Restricted] Unsuspend a card' description: 'Restores a previously suspended card to the status it was in prior to being suspended as applied by the issuer or program manager. Use of this endpoint is `Restricted`, depending on access being granted through contractual setup with Modulr.' operationId: unsuspendCard parameters: - name: cardId in: path description: The ID of the card which should no longer be suspended required: true style: simple explode: false schema: type: string responses: '204': description: Card unsuspended successfully '400': description: Invalid request content: '*/*': schema: type: array items: $ref: '#/components/schemas/card.MessageResponse' security: - HMAC: [] - TOKEN: [] /cards/{cardId}/unblock: post: tags: - Cards summary: Unblock an existing card description: Unblocking a card re-enables normal authorisation processing. operationId: unblockCard parameters: - name: cardId in: path description: The ID of the card which should be unblocked required: true style: simple explode: false schema: type: string responses: '200': description: Card unblocked successfully '400': description: Invalid request content: '*/*': schema: type: array items: $ref: '#/components/schemas/card.MessageResponse' security: - HMAC: [] - TOKEN: [] /cards/{cardId}/suspend: post: tags: - Cards summary: '[Restricted] Suspend an existing card' description: 'Suspends a card to temporarily prevent any new authorisations as applied by the issuer or the program manager (i.e. not cardholder elective). This means that all new authorisations will be immediately declined. Outstanding authorisations are unaffected and settlement, chargebacks, refunds, etc will continue to function as normal. Use of this endpoint is `Restricted`, depending on access being granted through contractual setup with Modulr.' operationId: suspendCard parameters: - name: cardId in: path description: The ID of the card which should be suspended required: true style: simple explode: false schema: type: string responses: '204': description: Card suspended successfully '400': description: Invalid request content: '*/*': schema: type: array items: $ref: '#/components/schemas/card.MessageResponse' security: - HMAC: [] - TOKEN: [] /cards/{cardId}/secure-details-token: post: tags: - Cards summary: Create secure card details token description: Create a token that is used as a parameter to retrieve secure card details (PAN, CVV, and PIN) or to perform PIN alterations. This token is to be retrieved by the partner and pushed to the cardholder device where the call is made. The token will be valid for 60 seconds. operationId: generateCardHolderToken parameters: - name: X-MOD-CARD-MGMT-TOKEN in: header description: Card Management Token required when the token will be used to alter card details required: false style: simple explode: false schema: type: string - name: cardId in: path description: The ID of the card to generate the token required: true style: simple explode: false schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/card.OneTimeTokenRequest' responses: '200': description: Card token generated successfully content: application/json: schema: $ref: '#/components/schemas/card.OneTimeTokenResponse' '400': description: Invalid request content: '*/*': schema: type: array items: $ref: '#/components/schemas/card.MessageResponse' security: - HMAC: [] - TOKEN: [] /cards/{cardId}/replace: post: tags: - Cards summary: Replace a card description: Replace a card, with a reason STOLEN, DAMAGED, LOST, RENEW. operationId: replaceCard parameters: - name: cardId in: path description: The ID of the card required: true style: simple explode: false schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/card.CardReplacementRequest' required: true responses: '201': description: Card replaced successfully content: application/json: schema: $ref: '#/components/schemas/card.CardReplacementResponse' '400': description: Invalid request content: '*/*': schema: type: array items: $ref: '#/components/schemas/card.MessageResponse' security: - HMAC: [] - TOKEN: [] /cards/{cardId}/pin: get: tags: - Cards summary: Retrieve PIN description: Retrieves the PIN for a card, as a reminder for the cardholder operationId: retrievePIN parameters: - name: X-MOD-CARD-MGMT-TOKEN in: header description: Card Management Token required for API users for additional security when managing sensitive card data required: false style: simple explode: false schema: type: string - name: cardId in: path description: The ID of the card to retrieve the PIN for required: true style: simple explode: false schema: type: string responses: '200': description: PIN retrieved successfully content: application/json: schema: $ref: '#/components/schemas/card.CardPinResponse' '400': description: Invalid request content: '*/*': schema: type: array items: $ref: '#/components/schemas/card.MessageResponse' '403': description: Forbidden. `Card Management Token` may be missing or invalid content: application/json: schema: $ref: '#/components/schemas/card.CardPinResponse' security: - HMAC: [] - TOKEN: [] post: tags: - Cards summary: Reset card PIN description: Reset the card's PIN for a specific card operationId: resetPin parameters: - name: X-MOD-CARD-MGMT-TOKEN in: header description: Card Management Token required for API users for additional security when managing sensitive card data required: false style: simple explode: false schema: type: string - name: cardId in: path description: The ID of the card to reset the PIN for required: true style: simple explode: false schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/card.ResetCardPinRequest' required: true responses: '204': description: PIN changed successfully '400': description: Invalid request content: '*/*': schema: type: array items: $ref: '#/components/schemas/card.MessageResponse' '403': description: Forbidden. `Card Management Token` may be missing or invalid security: - HMAC: [] - TOKEN: [] /cards/{cardId}/pin/unblock: post: tags: - Cards summary: Unblock PIN description: Unblock the card's PIN so that it can be used by the cardholder. CVC2 will also be unblocked, where required. operationId: unblockPin parameters: - name: cardId in: path description: The ID of the card to unblock the PIN (and/or CVC2) against required: true style: simple explode: false schema: type: string responses: '204': description: Unblocked successfully '400': description: Invalid request content: '*/*': schema: type: array items: $ref: '#/components/schemas/card.MessageResponse' security: - HMAC: [] - TOKEN: [] /cards/{cardId}/in-app-provisioning/apple: post: tags: - Cards summary: Get in-app provisioning data for Apple Pay description: Retrieves and encrypts the data needed for the client application to provision a card to Apple Pay operationId: getInAppProvisioningForApple parameters: - name: cardId in: path description: Card ID required: true style: simple explode: false schema: type: string example: V110000001 requestBody: content: application/json: schema: $ref: '#/components/schemas/card.AppleInAppProvisioningRequest' required: true responses: '200': description: In app provisioning data for Apple Pay retrieved successfully content: application/json: schema: $ref: '#/components/schemas/card.AppleInAppProvisioningResponse' '400': description: Invalid request content: '*/*': schema: type: array items: $ref: '#/components/schemas/card.MessageResponse' security: - HMAC: [] - TOKEN: [] /cards/{cardId}/custom-fields: post: tags: - Cards summary: Update a card's custom fields description: Replace the values of a card's custom fields if they exist or create new custom fields with the given values if they do not exist operationId: updateCardCustomFields parameters: - name: cardId in: path description: Id of the card for which the custom fields should be updated required: true style: simple explode: false schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/card.UpdateCardCustomFieldsRequest' required: true responses: '204': description: Custom fields updated successfully '400': description: Invalid request content: '*/*': schema: type: array items: $ref: '#/components/schemas/card.MessageResponse' security: - HMAC: [] - TOKEN: [] /cards/{cardId}/cancel: post: tags: - Cards summary: Cancel an existing card description: Cancelling a card _**permanently**_ disables authorisation processing & _**destroys**_ the card from the card scheme perspective. This means that all _new_ authorisations will be immediately declined and this cannot be reversed. Outstanding authorisations are unaffected and settlement, chargebacks, refunds, etc will continue to function as normal. operationId: cancelCard parameters: - name: cardId in: path description: The ID of the card which should be cancelled required: true style: simple explode: false schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/card.CancelCardRequest' responses: '200': description: Card cancelled successfully '400': description: Invalid request content: '*/*': schema: type: array items: $ref: '#/components/schemas/card.MessageResponse' security: - HMAC: [] - TOKEN: [] /cards/{cardId}/block: post: tags: - Cards summary: Block an existing card description: Blocking a card temporarily disables authorisation processing. This means that all _new_ authorisations will be immediately declined. Outstanding authorisations are unaffected and settlement, chargebacks, refunds, etc will continue to function as normal. operationId: blockCard parameters: - name: cardId in: path description: The ID of the card which should be blocked required: true style: simple explode: false schema: type: string responses: '200': description: Card blocked successfully '400': description: Invalid request content: '*/*': schema: type: array items: $ref: '#/components/schemas/card.MessageResponse' security: - HMAC: [] - TOKEN: [] /cards/{cardId}/activate: post: tags: - Cards summary: Activate a physical card description: Physical cards issued by Modulr will be mailed out to cardholders in an inactive state. A cardholder will need to have their card activated before it can be used. Cards can only be activated whilst they have a status of `CREATED`. operationId: activateCard parameters: - name: X-MOD-CARD-MGMT-TOKEN in: header description: Card Management Token required for API users for additional security when managing sensitive card data required: false style: simple explode: false schema: type: string - name: cardId in: path description: The ID of the physical card which should be activated. required: true style: simple explode: false schema: type: string responses: '204': description: Card activated successfully '400': description: Invalid request content: '*/*': schema: type: array items: $ref: '#/components/schemas/card.MessageResponse' '403': description: Forbidden. `Card Management Token` may be missing or invalid security: - HMAC: [] - TOKEN: [] /cards/secure-pin-reset: post: tags: - Cards summary: Reset card PIN description: Reset the PIN for a card using a client access token. This should be done from the card-holder device and not directly by the partner operationId: secureResetPin requestBody: content: application/json: schema: $ref: '#/components/schemas/card.ResetCardPinRequest' required: true responses: '204': description: PIN changed successfully '400': description: Invalid request content: '*/*': schema: type: array items: $ref: '#/components/schemas/card.MessageResponse' '403': description: Forbidden. Authentication details may not be valid security: [] /cards/enquiry: post: tags: - Cards summary: Card enquiry description: Retrieve card details by PAN operationId: cardEnquiry requestBody: content: application/json: schema: $ref: '#/components/schemas/card.CardEnquiryRequest' required: true responses: '200': description: Card enquiry successful content: application/json: schema: $ref: '#/components/schemas/card.CardResponse' '400': description: Invalid request content: '*/*': schema: type: array items: $ref: '#/components/schemas/card.MessageResponse' security: - HMAC: [] - TOKEN: [] /card-tokens/{tokenId}/unsuspend: post: tags: - Cards summary: Unsuspend card token description: Restores a previously suspended token to active operationId: unsuspendCardToken parameters: - name: tokenId in: path description: Card token ID required: true style: simple explode: false schema: type: string example: T110000001 responses: '204': description: Card token was unsuspended successfully '400': description: Invalid request content: '*/*': schema: type: array items: $ref: '#/components/schemas/card.MessageResponse' '404': description: Not found security: - HMAC: [] - TOKEN: [] /card-tokens/{tokenId}/suspend: post: tags: - Cards summary: Suspend card token description: Suspends a token to temporarily prevent any new authorisations operationId: suspendCardToken parameters: - name: tokenId in: path description: Card token ID required: true style: simple explode: false schema: type: string example: T110000001 responses: '204': description: Card token was suspended successfully '400': description: Invalid request content: '*/*': schema: type: array items: $ref: '#/components/schemas/card.MessageResponse' '404': description: Not found security: - HMAC: [] - TOKEN: [] /card-tokens/{tokenId}/deactivate: post: tags: - Cards summary: Deactivate card token description: Deactivating a token permanently disables authorisation processing. This action is irreversible operationId: deactivateCardToken parameters: - name: tokenId in: path description: Card token ID required: true style: simple explode: false schema: type: string example: T110000001 responses: '204': description: Card token was deactivated successfully '400': description: Invalid request content: '*/*': schema: type: array items: $ref: '#/components/schemas/card.MessageResponse' '404': description: Not found security: - HMAC: [] - TOKEN: [] /authorisations/{authId}/expire: post: tags: - Cards summary: '[Restricted] Expire an existing authorisation' description: '[Restricted] Expire an existing authorisation. Note: CREDIT_AUTH and CREDIT_AUTH_REV activities cannot be expired via this endpoint.' operationId: expireAuthorisation parameters: - name: authId in: path required: true style: simple explode: false schema: type: string responses: '204': description: Authorisation expired successfully '400': description: Bad Request content: '*/*': schema: type: array items: $ref: '#/components/schemas/card.MessageResponse' '404': description: Authorisation not found security: - HMAC: [] - TOKEN: [] /accounts/{accountId}/physical-cards: post: tags: - Cards summary: Create a new physical card description: Asynchronously create a physical card. The response will include a resource to allow the client to check the status of the request. operationId: createPhysicalCard parameters: - name: accountId in: path description: The account which card funds will be raised from. required: true style: simple explode: false schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/card.CreatePhysicalCardRequest' required: true responses: '202': description: Create physical card request received successfully content: application/json: schema: $ref: '#/components/schemas/card.AsyncTaskCreatedResponse' '400': description: Invalid request content: '*/*': schema: type: array items: $ref: '#/components/schemas/card.MessageResponse' security: - HMAC: [] - TOKEN: [] /accounts/{accountId}/cards: get: tags: - Cards summary: View the details of existing cards by account operationId: getCardsByAccount parameters: - name: accountId in: path description: Account ID required: true style: simple explode: false schema: type: string - name: statuses in: query description: Statuses of cards to be retrieved required: false style: form explode: true schema: type: string enum: - CREATED - ACTIVE - BLOCKED - SUSPENDED - CANCELLED - EXPIRED - name: page in: query required: false style: form explode: true schema: type: integer format: int32 default: 0 - name: size in: query required: false style: form explode: true schema: type: integer format: int32 default: 20 responses: '200': description: Cards returned successfully content: application/json: schema: $ref: '#/components/schemas/card.CardPageResponse' '400': description: Invalid request content: '*/*': schema: type: array items: $ref: '#/components/schemas/card.MessageResponse' security: - HMAC: [] - TOKEN: [] post: tags: - Cards summary: Create a new virtual card operationId: createCard parameters: - name: accountId in: path description: The account which card funds will be raised from. required: true style: simple explode: false schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/card.CreateCardRequest' required: true responses: '201': description: Virtual card created successfully content: application/json: schema: $ref: '#/components/schemas/card.CreateCardResponse' '400': description: Invalid request content: '*/*': schema: type: array items: $ref: '#/components/schemas/card.MessageResponse' security: - HMAC: [] - TOKEN: [] /partner/{partnerId}/card-custom-fields: get: tags: - Cards summary: View existing partner card custom field keys operationId: getPartnerCustomFieldKeys parameters: - name: partnerId in: path description: Id of partner to retrieve custom fields for required: true style: simple explode: false schema: type: string - name: statuses in: query description: Statuses of the card custom field keys to be retrieved. If omitted default statuses 'ASSIGNED' and 'AVAILABLE' will be applied. required: false style: form explode: true schema: type: string enum: - ASSIGNED - ASSIGNED_DELETED - AVAILABLE - UNAVAILABLE - name: page in: query description: Page to fetch (0 indexed) required: false style: form explode: true schema: type: integer format: int32 default: 0 - name: size in: query description: Size of page to fetch required: false style: form explode: true schema: type: integer format: int32 default: 20 maximum: 500 responses: '200': description: Card custom fields for partner returned successfully content: application/json: schema: $ref: '#/components/schemas/card.CardCustomFieldKeyPageResponse' '400': description: Invalid request content: '*/*': schema: type: array items: $ref: '#/components/schemas/card.MessageResponse' security: - HMAC: [] - TOKEN: [] /customer/{customerId}/card-custom-fields: get: tags: - Cards summary: View existing customer card custom field keys operationId: getCustomerCustomFieldKeys parameters: - name: customerId in: path description: Id of customer to retrieve custom fields for required: true style: simple explode: false schema: type: string - name: statuses in: query description: Statuses of the card custom field keys to be retrieved. If omitted default statuses 'ASSIGNED' and 'AVAILABLE' will be applied. required: false style: form explode: true schema: type: string enum: - ASSIGNED - ASSIGNED_DELETED - AVAILABLE - UNAVAILABLE - name: page in: query description: Page to fetch (0 indexed) required: false style: form explode: true schema: type: integer format: int32 default: 0 - name: size in: query description: Size of page to fetch required: false style: form explode: true schema: type: integer format: int32 default: 20 maximum: 500 responses: '200': description: Card custom fields for customer returned successfully content: application/json: schema: $ref: '#/components/schemas/card.CardCustomFieldKeyPageResponse' '400': description: Invalid request content: '*/*': schema: type: array items: $ref: '#/components/schemas/card.MessageResponse' security: - HMAC: [] - TOKEN: [] /cards: get: tags: - Cards summary: View the details of existing cards operationId: getCards parameters: - name: fromCreatedDate in: query description: Cards created on or after this date. Cannot be older than 7 days. Format is `yyyy-MM-dd'T'HH:mm:ss` with zero offset from UTC. Required if toCreatedDate is supplied. required: false style: form explode: true schema: type: string example: 2019-03-01T01:01:01+0000 - name: toCreatedDate in: query description: Cards created on or before this date. Format is `yyyy-MM-dd'T'HH:mm:ss` with zero offset from UTC. Optional if fromCreatedDate is supplied. required: false style: form explode: true schema: type: string example: 2019-03-01T01:01:01+0000 - name: statuses in: query description: Statuses of cards to be retrieved required: false style: form explode: true schema: type: string enum: - CREATED - ACTIVE - BLOCKED - SUSPENDED - CANCELLED - EXPIRED - name: id in: query description: The ID of the card to view. required: false style: form explode: true schema: type: string example: V000000001 - name: accountId in: query description: The ID of account to retrieve cards for. required: false style: form explode: true schema: type: string example: A0000001 - name: externalRef in: query description: The client reference of the card to retrieve. required: false style: form explode: true schema: type: string example: ExampleCardRef123 - name: customerId in: query description: The ID of the customer to retrieve cards for. required: false style: form explode: true schema: type: string example: C0000001 - name: currency in: query description: Currency to get cards for. Expected ISO Standard currency name i.e. GBP, EUR etc required: false style: form explode: true schema: type: string example: GBP - name: customFieldKey in: query description: Custom Field Key to get cards for required: false style: form explode: true schema: type: string example: BookingReference - name: customFieldValue in: query description: Custom Field Value corresponding to the custom field key to get cards for required: false style: form explode: true schema: type: string example: Booking123 - name: accountIds in: query description: Set of account Ids to retrieve cards for. required: false style: form explode: true schema: type: array items: type: string uniqueItems: true example: A0000001 - name: channelManagerId in: query description: The Id of the Channel manager required: false style: form explode: true schema: type: string example: M883412312 - name: frequencyUsage in: query description: How many times a card can be authorised against. This parameter is rejected for physical cards required: false style: form explode: true schema: type: string enum: - SINGLE_USE - MULTI_USE - name: page in: query description: Page to fetch (0 indexed) required: false style: form explode: true schema: type: integer format: int32 minimum: 0 - name: size in: query description: Size of page to fetch required: false style: form explode: true schema: type: integer format: int32 maximum: 500 responses: '200': description: Cards returned successfully content: application/json: schema: $ref: '#/components/schemas/card.CardPageResponse' '400': description: Invalid request content: '*/*': schema: type: array items: $ref: '#/components/schemas/card.MessageResponse' security: - HMAC: [] - TOKEN: [] /cards/{cardId}/tokens: get: tags: - Cards summary: Get card tokens description: Retrieves all payment card tokens for the given card operationId: getCardTokens parameters: - name: cardId in: path description: Card ID required: true style: simple explode: false schema: type: string example: V110000001 - name: includeDeletedDevices in: query description: Include deleted devices in results required: false style: form explode: true schema: type: boolean example: true responses: '200': description: Card tokens retrieved successfully content: application/json: schema: $ref: '#/components/schemas/card.GetCardTokensResponse' '400': description: Invalid request content: '*/*': schema: type: array items: $ref: '#/components/schemas/card.MessageResponse' security: - HMAC: [] - TOKEN: [] /cards/secure-details: get: tags: - Cards summary: Retrieve secure card details (PAN + CVV + PIN) description: Receives the secure card details token as a parameter. This call is meant to be done from the cardholder device and not directly by the partner operationId: getSecureCardDetails responses: '200': description: Secure card details retrieved successfully content: application/json: schema: $ref: '#/components/schemas/card.SecureCardDetails' '400': description: Invalid request content: '*/*': schema: type: array items: $ref: '#/components/schemas/card.MessageResponse' '403': description: Forbidden. Token may be missing or invalid content: application/json: schema: $ref: '#/components/schemas/card.SecureCardDetails' security: [] /card-tokens/{tokenId}/otp: get: tags: - Cards summary: Get card token OTP details description: Retrieves the OTP details given the corresponding card token ID operationId: getOtpDetails parameters: - name: tokenId in: path description: Card token ID required: true style: simple explode: false schema: type: string example: T110000001 responses: '200': description: OTP details retrieved successfully content: application/json: schema: $ref: '#/components/schemas/card.OtpDetails' '400': description: Invalid request content: '*/*': schema: type: array items: $ref: '#/components/schemas/card.MessageResponse' '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/card.OtpDetails' security: - HMAC: [] - TOKEN: [] /card-tasks: get: tags: - Cards summary: Get tasks description: View the details of card tasks. Ordered by createdDate, with the newest entries appearing first operationId: getAsyncTasks parameters: - name: id in: query description: The ID of the card task required: false style: form explode: true schema: type: string example: T000000001 - name: aid in: query description: The account ID to retrieve card tasks for required: false style: form explode: true schema: type: string example: A0000001 - name: statuses in: query description: Statuses of card tasks to be retrieved required: false style: form explode: true schema: type: string enum: - RECEIVED - RUNNING - COMPLETE - ERROR - name: types in: query description: Types of card tasks to be retrieved required: false style: form explode: true schema: type: string enum: - PHYSICAL_CARD_CREATE - name: page in: query description: Page to fetch (0 indexed) required: false style: form explode: true schema: type: integer format: int32 default: 0 - name: size in: query description: Size of page to fetch required: false style: form explode: true schema: type: integer format: int32 default: 20 maximum: 500 responses: '200': description: Tasks returned successfully content: application/json: schema: $ref: '#/components/schemas/card.AsyncTaskPageResponse' '400': description: Invalid request content: '*/*': schema: type: array items: $ref: '#/components/schemas/card.MessageResponse' security: - HMAC: [] - TOKEN: [] /card-reports: get: tags: - Cards summary: Retrieve card reports description: Retrieve card reports operationId: searchReports parameters: - name: fromReportDate in: query description: Retrieve reports equal to or after this date required: false style: form explode: true schema: type: string description: Retrieve reports equal to or after this date example: '2023-01-01' example: '2023-01-01' - name: toReportDate in: query description: Retrieve reports equal to or before this date required: false style: form explode: true schema: type: string description: Retrieve reports equal to or before this date example: '2023-01-30' example: '2023-01-30' - name: reportTypes in: query description: Report types required: false style: form explode: true schema: $ref: '#/components/schemas/card.reportTypes' example: DAILY_CARD_ACTIVITY - name: reportSubjectIds in: query description: Report subject Ids (Customer BID, Partner BID or Channel Manager BID) required: false style: form explode: true schema: $ref: '#/components/schemas/card.reportSubjectIds' example: C1000001 - name: page in: query description: Page to fetch (0 indexed) required: false style: form explode: true schema: type: integer format: int32 default: 0 description: Page to fetch (0 indexed) minimum: 0 - name: size in: query description: The size of the page(s) required: false style: form explode: true schema: type: integer format: int32 description: The size of the page(s) maximum: 500 minimum: 1 - name: sortField in: query required: false style: form explode: true schema: type: string pattern: (reportDate|reportType) - name: sortOrder in: query required: false style: form explode: true schema: type: string pattern: (asc|desc) responses: '200': description: Card reports retrieved successfully content: application/json: schema: $ref: '#/components/schemas/card.ReportPageResponse' '400': description: Bad Request content: '*/*': schema: type: array items: $ref: '#/components/schemas/card.MessageResponse' '403': description: Unauthorised content: application/json: schema: $ref: '#/components/schemas/card.ReportPageResponse' security: - HMAC: [] - TOKEN: [] /card-reports/{reportId}/report: get: tags: - Cards summary: Download a specific card report description: Download a specific card report operationId: retrieveReport parameters: - name: reportId in: path description: ID of the report to retrieve required: true style: simple explode: false schema: type: string responses: '200': description: Card report retrieved successfully content: '*/*': schema: type: string format: binary '400': description: Bad Request content: '*/*': schema: type: array items: $ref: '#/components/schemas/card.MessageResponse' '403': description: Unauthorised content: '*/*': schema: type: string format: binary '404': description: Not found content: '*/*': schema: type: string format: binary security: - HMAC: [] - TOKEN: [] /card-reports/{reportId}/download: get: tags: - Cards summary: Download a specific card report description: Download a specific card report operationId: retrievePreSignedReportUrl parameters: - name: reportId in: path description: ID of the report to download required: true style: simple explode: false schema: type: string responses: '200': description: Card report retrieved successfully content: '*/*': schema: $ref: '#/components/schemas/card.DownloadReportResponse' '400': description: Bad Request content: '*/*': schema: type: array items: $ref: '#/components/schemas/card.MessageResponse' '403': description: Unauthorised content: '*/*': schema: $ref: '#/components/schemas/card.DownloadReportResponse' '404': description: Not found content: '*/*': schema: $ref: '#/components/schemas/card.DownloadReportResponse' security: - HMAC: [] - TOKEN: [] /activities: get: tags: - Cards summary: View activities for specific cards or over a date range description: View activities for a specified list of cards and a given time frame. View activities for all cards belonging to a specified list of accounts and a given time frame. View all activities for a single card when a single card ID is specified, time frame is optional. operationId: getCardActivities parameters: - name: fromCreatedDate in: query description: 'Activities with a created date equal to or after this date. Format: ''yyyy-MM-dd''T''HH:mm:ssZ''. Value cannot be more than 7 days in the past when mandatory. Value is optional if only a single Card ID has been provided' required: false style: form explode: true schema: type: string example: 2019-01-01T15:14:38-0000 - name: toCreatedDate in: query description: 'Activities with a created date before this date. Format: ''yyyy-MM-dd''T''HH:mm:ssZ''. Value is optional if only a single Card ID has been provided or from date is within last 7 days' required: false style: form explode: true schema: type: string example: 2019-01-01T15:14:38-0000 - name: statuses in: query description: Activities with possibly multiple statuses equal to this value. Omitting this is equivalent to supplying all values required: false style: form explode: true schema: type: string enum: - DECLINED - APPROVED - SETTLED - EXPIRED - APPLIED - PENDING - name: types in: query description: Activities with possibly multiple types equal to this value. Omitting this is equivalent to supplying all values required: false style: form explode: true schema: type: string enum: - AUTHORISATION - REVERSAL - SETTLEMENT - REFUND - ORIGINAL_CREDIT - OFFLINE_TRANSACTION - ASI - CREDIT_AUTH - CREDIT_AUTH_REV - name: cards in: query description: Activities with possibly multiple card IDs equal to this value. Only one of 'cards' or 'accounts' must be supplied required: false style: form explode: true schema: type: array items: type: string - name: accounts in: query description: Activities with possibly multiple account IDs equal to this value. Only one of 'cards' or 'accounts' must be supplied required: false style: form explode: true schema: type: array items: type: string - name: ids in: query description: Activities with the specified IDs. Only 'page' and/or 'size' may be used in conjunction with this filter. required: false style: form explode: true schema: type: array items: type: string uniqueItems: true - name: orderId in: query description: Activites with specified Order Id required: false style: form explode: true schema: type: integer format: int64 - name: channelManagerId in: query description: Id of channel manager to return activities for required: false style: form explode: true schema: type: string - name: sortFields in: query description: A list of fields to sort the response by. Sorting will be applied in the order the fields are given required: false style: form explode: true schema: type: string enum: - createdDate - orderId - name: sortOrders in: query description: A list of orders to apply to the respective sortFields. The only accepted sortOrders will be ASC and DESC (case insensitive) required: false style: form explode: true schema: type: string enum: - ASC - DESC - name: page in: query description: Page to fetch (0 indexed) required: false style: form explode: true schema: type: integer format: int32 minimum: 0 - name: size in: query description: Size of page to fetch required: false style: form explode: true schema: type: integer format: int32 maximum: 500 responses: '200': description: Card activity data returned successfully content: application/json: schema: $ref: '#/components/schemas/card.CardActivityPageResponse' '400': description: Invalid request content: '*/*': schema: type: array items: $ref: '#/components/schemas/card.MessageResponse' security: - HMAC: [] - TOKEN: [] /accounts/{accountId}/physical-card-request-tasks: get: tags: - Cards summary: Get physical card create tasks by account description: View the details of create physical card tasks by account. Ordered by createdDate, with the newest entries appearing first operationId: getCreatePhysicalCardAsyncTasksByAccount parameters: - name: accountId in: path description: The account ID to retrieve create physical card tasks for required: true style: simple explode: false schema: type: string - name: statuses in: query description: Statuses of tasks to be retrieved required: false style: form explode: true schema: type: string enum: - RECEIVED - RUNNING - COMPLETE - ERROR - name: page in: query description: Page to fetch (0 indexed) required: false style: form explode: true schema: type: integer format: int32 default: 0 - name: size in: query description: Size of page to fetch required: false style: form explode: true schema: type: integer format: int32 default: 20 maximum: 500 responses: '200': description: Tasks returned successfully content: application/json: schema: $ref: '#/components/schemas/card.AsyncTaskPageResponse' '400': description: Invalid request content: '*/*': schema: type: array items: $ref: '#/components/schemas/card.MessageResponse' security: - HMAC: [] - TOKEN: [] /partner/{partnerId}/card-custom-fields/{key}: delete: tags: - Cards summary: Delete partner custom field key description: Delete partner custom field key operationId: deletePartnerCustomFieldKey parameters: - name: partnerId in: path description: Id of partner to delete custom field for required: true style: simple explode: false schema: type: string - name: key in: path description: Key of the field to delete required: true style: simple explode: false schema: type: string responses: '202': description: Custom field key successfully deleted '400': description: Invalid request content: '*/*': schema: type: array items: $ref: '#/components/schemas/card.MessageResponse' security: - HMAC: [] - TOKEN: [] /customer/{customerId}/card-custom-fields/{key}: delete: tags: - Cards summary: Delete customer custom field key description: Delete customer custom field key operationId: deleteCustomerCustomFieldKey parameters: - name: customerId in: path description: Id of customer to delete custom field for required: true style: simple explode: false schema: type: string - name: key in: path description: Key of the field to delete required: true style: simple explode: false schema: type: string responses: '202': description: Custom field key successfully deleted '400': description: Invalid request content: '*/*': schema: type: array items: $ref: '#/components/schemas/card.MessageResponse' security: - HMAC: [] - TOKEN: [] /cards/{cardId}/custom-fields/{key}: delete: tags: - Cards summary: Delete card custom field description: Delete card custom field operationId: deleteCardCustomField parameters: - name: cardId in: path description: Id of card the custom field should be deleted for required: true style: simple explode: false schema: type: string - name: key in: path description: Key of the key value pair of custom field that should be removed for the card required: true style: simple explode: false schema: type: string responses: '204': description: Custom field key successfully deleted '400': description: Invalid request content: '*/*': schema: type: array items: $ref: '#/components/schemas/card.MessageResponse' security: - HMAC: [] - TOKEN: [] components: schemas: card.ReportTypeNotificationResponse: type: object properties: email: type: string card.CreateCardRequest: type: object description: Card properties: limit: type: number format: double description: Total card authorisation limit. example: '1000.00' maximum: 99999999.99 minimum: 1 expiry: type: string description: ISO 8601 date with year & month components only. The supplied value must be in the future (cannot be the current month) and is _inclusive_ of the specified month. example: 2018-12 productCode: type: string description: Identifies the _type_ of card to create (GBP consumer, GBP business, etc). Modulr will supply a list of possible values. externalRef: type: string description: Client reference for the newly created card. Maximum of 50 alphanumeric characters (including underscore, hyphen and space). maxLength: 50 minLength: 1 pattern: '[\w -]*' constraints: $ref: '#/components/schemas/card.Constraints' description: Constraints authentication: $ref: '#/components/schemas/card.CardAuthentication' description: Authentication. Required by default, optional for Virtual Business Travel Cards only cancellationDate: type: string description: Date for card to be cancelled on example: '2025-01-01' customFields: type: array description: Custom fields of card items: $ref: '#/components/schemas/card.CardCustomFieldRequest' maxItems: 20 minItems: 0 authorisationWindow: $ref: '#/components/schemas/card.AuthorisationWindowRequest' description: Authorisation Windows allow the card holder to add a period of time where the card can ONLY be used, if an Authorisation Window set then transactions outside this window will decline. ISO 8601 date with year, month & day components only. frequencyUsage: type: string enum: - SINGLE_USE - MULTI_USE holder: $ref: '#/components/schemas/card.CardHolder' description: CardHolder required: - expiry - externalRef - limit - productCode card.CardKnowledgeBasedAuthentication: type: object properties: type: type: string description: 3DS knowledge-based authentication answer type enum: - FIRST_PET_NAME - MATERNAL_GRANDMOTHER_MAIDEN_NAME - FAVOURITE_CHILDHOOD_FRIEND - FIRST_CAR - CITY_PARENTS_MET answer: type: string description: 3DS knowledge-based authentication answer maxLength: 45 minLength: 1 required: - answer - type card.CardAuthentication: type: object properties: knowledgeBase: type: array description: 3DS knowledge-based authentication (KBA) answers items: $ref: '#/components/schemas/card.CardKnowledgeBasedAuthentication' minItems: 1 required: - knowledgeBase card.OneTimeTokenResponse: type: object properties: token: type: string description: The token to use by the client for retrieving card details. Where 'encrypted' is true, this will be a value that must be decrypted on the client device before being used in subsequent API calls example: eyJ0....zRyk encrypted: type: boolean description: Whether this token is encrypted encryptedSymmetricKey: type: string description: Base64 UTF-8 encoded Symmetric key used to encrypt token, encrypted with client's public key. Only provided if 'encrypted' is true. initialisationVector: type: string description: Base64 UTF-8 encoded initialisation vector used with symmetric key for encrypting the token. Only provided if 'encrypted' is true. required: - encrypted - token card.CardConstraints: type: object properties: mccWhitelist: type: array description: mccWhitelist example: - '1000' - 1002-3000 - '5060' items: type: string authorisation: $ref: '#/components/schemas/card.AuthorisationConstraints' description: Authorisation constraints required: - mccWhitelist card.UpdateCardHolder: type: object properties: billingAddress: $ref: '#/components/schemas/card.AddressDetail' description: Billing address for the card holder. Must be NULL for individual customers. shippingAddress: $ref: '#/components/schemas/card.AddressDetail' description: Shipping address details for card. Optional for individual customers whose partner has verification type EXTERNAL dateOfBirth: type: string format: date description: Cardholder date of birth. Must match date format of yyyy-mm-dd. Required for virtual consumer and physical cards. Must be NULL for individual customers. example: '2001-01-01' mobileNumber: type: string description: Cardholder mobile number. Must start with a '+', followed by the country code and then the mobile number. Required for virtual consumer and physical cards. example: '+447123456000' email: type: string format: email description: Cardholder email example: cardholder@example.com maxLength: 50 minLength: 0 card.BulkCreateCustomFieldKeysRequest: type: object description: Bulk create custom field keys request properties: customFields: type: array description: Custom fields items: $ref: '#/components/schemas/card.CustomFields' maxItems: 20 minItems: 1 required: - customFields card.AsyncTaskResponse: type: object properties: taskBid: type: string description: ID of async task example: T110000003 resourceUrl: type: string description: Url of available resource after task completion example: /cards/V110000022 resourceId: type: string description: ID of resource after task completion. Will only be returned for COMPLETE tasks. example: V110000022 type: type: string description: Type of async task status: type: string description: Status of the task createdDate: type: string format: date-time description: The creation date of the task example: 2020-03-23T11:01:54.826+0000 errorReason: type: string description: The error reason. Only populated if status is ERROR required: - createdDate - status - taskBid - type card.CardActivityResponse: type: object properties: id: type: string description: The card activity identifier. Maximum of 10 alphanumeric characters example: X000000001 orderId: type: string description: Order identifier which links together related authorisations, reversals & settlements. Maximum of 10 alphanumeric characters example: '1234' cardId: type: string description: Card identifier. Maximum of 10 alphanumeric characters example: V000000001 type: type: string description: Type of card activity enum: - AUTHORISATION - REVERSAL - SETTLEMENT - REFUND status: type: string description: Status of card activity. Only applies to activities of type AUTHORISATION enum: - DECLINED - APPROVED - SETTLED - EXPIRED reason: type: string description: The reason why this activity was declined. Only applies to activities with status DECLINED example: Account has insufficient funds verifiedBy3DS: type: boolean description: Whether the activity was 3DS enabled createdDate: type: string format: date-time description: The creation date of the card activity example: 2019-01-29T11:22:00+0000 transactionAmount: type: number description: The card activity transaction amount example: '123.45' transactionCurrency: type: string description: The 3 letter ISO 4217 card activity transaction currency example: EUR billingAmount: type: number description: The card activity billing amount example: '678.91' billingCurrency: type: string description: The 3 letter ISO 4217 card activity billing currency example: GBP fxRate: type: number description: The FX rate applied to any conversion between transaction & billing amount. Rounded to 6 decimal places and zero padded example: '1.123456' mcc: type: string description: The Merchant Category Code (MCC) for the card activity. Follows ISO-18245 format example: '5182' merchantName: type: string description: The merchant name example: Loudons Cafe merchantId: type: string description: The merchant ID example: '123456789012345' merchantCountry: type: string description: The 3 letter ISO 3166 merchant country code example: GBR acquirerReferenceNumber: type: string description: The Acquirer Reference Number (ARN) example: '123451234512345' authorisationInfo: $ref: '#/components/schemas/card.AuthInfo' description: Authorisation information of the activity cardTokenId: type: string description: The card token associated with this activity, if a tokenised card was used. cardTokenDeviceId: type: string description: The bound card token device associated with this activity, if a tokenised card was used. required: - billingAmount - billingCurrency - cardId - createdDate - fxRate - id - mcc - orderId - transactionAmount - transactionCurrency - type card.AuthorisationWindow: type: object properties: startDate: type: string format: date-time description: Authorisation window start date endDate: type: string format: date-time description: Authorisation window end date card.CardPageResponse: type: object properties: content: type: array description: List of responses on the current page items: $ref: '#/components/schemas/card.CardResponse' size: type: integer format: int32 description: Page size totalSize: type: integer format: int64 description: Total count page: type: integer format: int32 description: Current page number, 0 based; i.e first-page = 0, second-page = 1 totalPages: type: integer format: int32 description: Total pages required: - content - page - size - totalPages - totalSize card.DownloadReportResponse: type: object properties: preSignedUrl: type: string card.CardCustomFieldKeyPageResponse: type: object properties: content: type: array description: List of responses on the current page items: $ref: '#/components/schemas/card.CardCustomFieldKeyResponse' size: type: integer format: int32 description: Page size totalSize: type: integer format: int64 description: Total count page: type: integer format: int32 description: Current page number, 0 based; i.e first-page = 0, second-page = 1 totalPages: type: integer format: int32 description: Total pages required: - content - page - size - totalPages - totalSize card.MessageResponse: type: object properties: field: type: string code: type: string enum: - GENERAL - BUSINESSRULE - MFASTATUS - MFAERROR - MFATIMEOUT - MFADEVICEMM - MFAMESSAGEINVALID - NOTFOUND - DUPLICATE - INVALID - CONNECTION - RETRY - RATELIMIT - PERMISSION - NOTACCEPTABLE - MFAVERIFICATION - TOKENEXPIRED errorCode: type: string message: type: string sourceService: type: string card.CardCustomFieldKeyResponse: type: object properties: key: type: string description: Custom field key required: type: boolean description: Whether the custom field is required or not card.CancelCardRequest: type: object description: Reason for cancellation properties: reason: type: string description: The reason for cancelling the card. Can be one of DESTROYED, LOST, STOLEN enum: - STOLEN - DESTROYED - LOST card.NotificationRequest: type: object description: Notification request containing the emails to send the report to properties: emails: type: array items: type: string card.CardCustomFieldRequest: type: object properties: key: type: string description: Custom field key value: type: string description: Custom field value required: - key - value card.Remove: allOf: - $ref: '#/components/schemas/card.PatchOperation' description: Remove field required: - op - path card.ReportTypeNotificationPageResponse: type: object properties: content: type: array description: List of responses on the current page items: $ref: '#/components/schemas/card.ReportTypeNotificationResponse' size: type: integer format: int32 description: Page size totalSize: type: integer format: int64 description: Total count page: type: integer format: int32 description: Current page number, 0 based; i.e first-page = 0, second-page = 1 totalPages: type: integer format: int32 description: Total pages required: - content - page - size - totalPages - totalSize card.SecureCardDetails: type: object properties: pan: type: string description: PAN example: '4567123412341234' cvv2: type: string description: CVV example: '123' pin: type: string description: PIN example: '1234' required: - cvv2 - pan card.Copy: allOf: - $ref: '#/components/schemas/card.PatchOperation' - type: object properties: from: type: string example: /path/to/originating/field description: Copy field required: - from - op - path card.AuthorisationWindowRequest: type: object properties: startDate: type: string example: '2025-01-01' endDate: type: string example: '2025-01-01' card.UpdateCardCustomFieldsRequest: type: object description: Custom fields to be updated properties: customFields: type: array description: Custom fields items: $ref: '#/components/schemas/card.CardCustomFieldRequest' maxItems: 20 minItems: 1 required: - customFields card.SpendConstraintDetail: type: object description: Spending constraints properties: currency: type: string description: A 3 letter ISO 4217 code representing the transaction currency enum: - GBP - EUR - AED - AFN - ALL - AMD - ANG - AOA - ARS - AUD - AWG - AZN - BAM - BBD - BDT - BGN - BHD - BIF - BMD - BND - BOB - BOV - BRL - BSD - BTN - BWP - BYN - BZD - CAD - CDF - CHE - CHF - CHW - CLF - CLP - CNY - COP - COU - CRC - CUC - CUP - CVE - CZK - DJF - DKK - DOP - DZD - EGP - ERN - ETB - FJD - FKP - GEL - GHS - GIP - GMD - GNF - GTQ - GYD - HKD - HNL - HRK - HTG - HUF - IDR - ILS - INR - IQD - IRR - ISK - JMD - JOD - JPY - KES - KGS - KHR - KMF - KPW - KRW - KWD - KYD - KZT - LAK - LBP - LKR - LRD - LSL - LYD - MAD - MDL - MGA - MKD - MMK - MNT - MOP - MRU - MUR - MVR - MWK - MXN - MXV - MYR - MZN - NAD - NGN - NIO - NOK - NPR - NZD - OMR - PAB - PEN - PGK - PHP - PKR - PLN - PYG - QAR - RON - RSD - RUB - RWF - SAR - SBD - SCR - SDG - SEK - SGD - SLE - SLL - SOS - SRD - SSP - STN - SVC - SYP - SZL - SHP - THB - TJS - TMT - TND - TOP - TRY - TTD - TWD - TZS - UAH - UGX - USD - USN - UYI - UYU - UYW - UZS - VES - VND - VUV - WST - XAF - XAG - XAU - XBA - XBB - XBC - XBD - XCD - XDR - XOF - XPD - XPF - XPT - XSU - XTS - XUA - XXX - YER - ZAR - ZMW - ZWL example: GBP min: type: number description: Minimum spend amount (inclusive) example: '5.00' max: type: number description: Maximum spend amount (inclusive) example: '2000.00' required: - currency card.CardEnquiryRequest: type: object description: Enquiry properties: pan: type: string description: pan providerSuppliedId: type: string description: providerSuppliedId card.OtpDetails: type: object properties: deliveryDetails: type: string description: OTP delivery details example: '+447777123456' deliveryMethod: type: string description: OTP delivery method enum: - SMS - EMAIL - CALL_CENTRE - AUTOMATED_CALL_CENTRE - WEB - APP - PHONE_CALL - NONE example: SMS expiry: type: string format: date-time description: OTP expiry date and time (UTC, ISO 8601 format) example: 2021-10-31T14:01:55+0000 verificationCode: type: string description: OTP example: '393805' required: - deliveryDetails - deliveryMethod - expiry - verificationCode card.AsyncTaskPageResponse: type: object properties: content: type: array description: List of responses on the current page items: $ref: '#/components/schemas/card.AsyncTaskResponse' size: type: integer format: int32 description: Page size totalSize: type: integer format: int64 description: Total count page: type: integer format: int32 description: Current page number, 0 based; i.e first-page = 0, second-page = 1 totalPages: type: integer format: int32 description: Total pages required: - content - page - size - totalPages - totalSize card.Add: allOf: - $ref: '#/components/schemas/card.PatchOperation' - type: object properties: value: $ref: '#/components/schemas/card.JsonNode' description: Add field required: - op - path - value card.AddressDetail: type: object description: Address details for the cardholder. Optional for individual customers whose partner has verification type EXTERNAL. properties: addressLine1: type: string description: First line of address example: Floor 10 maxLength: 50 minLength: 1 addressLine2: type: string description: Second line of address example: 80 George Street maxLength: 50 minLength: 0 postTown: type: string description: Post town example: EDINBURGH maxLength: 20 minLength: 1 postCode: type: string description: Postcode example: EH2 3BU maxLength: 10 minLength: 1 country: type: string description: Country (ISO 3166 alpha-2 country code) enum: - AT - BE - BG - CY - CZ - DK - EE - FI - FR - DE - GR - HR - HU - IS - IE - IT - LV - LI - LT - LU - MT - NL - 'NO' - PL - PT - RO - SK - SI - ES - SE - AX - AW - BL - CW - GF - GL - GP - ME - MF - MQ - NC - PF - PM - RE - SX - TF - WF - YT - AI - BM - FK - GB - GG - GI - GS - IO - JE - KY - MS - PN - SH - TC - VG example: GB minLength: 1 required: - addressLine1 - country - postCode - postTown card.AppleInAppProvisioningResponse: type: object description: AppleInAppProvisioningRequest properties: ephemeralPublicKey: type: string description: Ephemeral public key generated to encrypt the data on the provisioning attempt encryptedPassData: type: string description: Encrypted payload data requested activationData: type: string description: Encrypted OTP for the card provider required: - activationData - encryptedPassData - ephemeralPublicKey card.CardReplacementRequest: type: object description: Replacement properties: reason: type: string description: The reason for replacing the card. Can be one of DAMAGED (physical only), LOST, STOLEN, RENEW enum: - STOLEN - DAMAGED - LOST - RENEW example: STOLEN externalRef: type: string description: Client reference for the newly created card. Maximum of 50 alphanumeric characters (including underscore, hyphen and space). maxLength: 50 minLength: 1 pattern: '[\w-\s]*' design: $ref: '#/components/schemas/card.ProductDesignDetail' description: Design references for physical card and packaging expiry: type: string description: ISO 8601 date with year & month components only. The supplied value must be in the future (cannot be the current month) and is _inclusive_ of the specified month. If no expiry is selected, the standard product expiry date will be set example: 2026-12 shippingAddress: $ref: '#/components/schemas/card.AddressDetail' description: Shipping address details for card. Optional for individual customers whose partner has verification type EXTERNAL required: - reason card.CardThreeDSecureAuthentication: type: object properties: otpSmsStatus: type: string description: The SMS one time password authentication status enum: - NOT_ENROLLED - ENROLLED - UNENROLLED example: ENROLLED knowledgeBaseStatus: type: string description: The knowledge based authentication (KBA) status enum: - NOT_ENROLLED - ENROLLED - UNENROLLED example: ENROLLED card.CardCustomFieldResponse: type: object properties: key: type: string description: Custom field key value: type: string description: Custom field value card.CardResponse: type: object properties: id: type: string description: Card identifier. Maximum of 10 alphanumeric characters example: V000000001 holder: $ref: '#/components/schemas/card.CardHolder' description: CardHolder expiry: type: string description: An ISO 8601 date with year & month components only example: 2018-12 status: type: string description: The current state of the card. currency: type: string description: A 3 letter ISO 4217 code representing the card currency example: GBP limit: type: string description: Total card authorisation limit example: '1000.00' maxLimit: type: string description: Maximum limit which can be set on this card and is the maximum lifetime spend the card can have example: '4000.00' spend: type: string description: Current total of all authorisations on this card example: '250.00' externalRef: type: string description: Client reference for the newly created card. Maximum of 50 characters. example: TTQ_51211 maskedPan: type: string description: Masked card PAN example: 527095******3544 cardType: type: string description: Card product type example: Business cardScheme: type: string description: Card scheme. MASTERCARD or VISA example: MASTERCARD accountBid: type: string description: Account identifier example: A020N8PD productId: type: string description: Product identifier example: O210003A format: type: string description: The format of the card. PHYSICAL or VIRTUAL enum: - PHYSICAL - VIRTUAL example: PHYSICAL constraints: $ref: '#/components/schemas/card.CardConstraints' description: CardConstraints design: $ref: '#/components/schemas/card.ProductDesignDetail' description: External reference for card design. Will only be returned for physical cards printedName: type: string description: Name printed on the card. Will only be returned for physical cards. Maximum of 20 alphanumeric characters (including full stop, hyphen, apostrophe, caret and space) cancellationDate: type: string description: Date card will be cancelled on example: '2025-01-01' createdDate: type: string format: date-time threeDSecureStatus: type: string deprecated: true description: The 3DS status of the card, based on the SMS one time password enum: - NOT_ENROLLED - ENROLLED - UNENROLLED example: ENROLLED authentication: $ref: '#/components/schemas/card.CardThreeDSecureAuthentication' description: The 3DS authentication method statuses shippingAddress: $ref: '#/components/schemas/card.AddressDetail' description: Shipping address customFields: type: array description: Custom fields currently defined for card items: $ref: '#/components/schemas/card.CardCustomFieldResponse' authWindow: $ref: '#/components/schemas/card.AuthorisationWindow' description: Authorisation window defined for card channelManagerId: type: string description: Channel Manager identifier example: M883412312 frequencyUsage: type: string description: Enum that specifies the frequency usage of the card enum: - SINGLE_USE - MULTI_USE example: SINGLE_USE card.ResetCardPinRequest: type: object description: Reset PIN properties: currentPin: type: string description: Card's current PIN required to reset minLength: 1 pattern: ^[0-9]{4}$ newPin: type: string description: Card's new PIN to update minLength: 1 pattern: ^[0-9]{4}$ required: - currentPin - newPin card.reportSubjectIds: type: array description: Report subject Ids (Customer BID, Partner BID or Channel Manager BID) example: C1000001 items: type: string description: Report subject Ids (Customer BID, Partner BID or Channel Manager BID) example: C1000001 card.CardHolder: type: object properties: title: type: string description: Cardholder title is optional for all card types. Maximum of 4 alphanumeric characters. example: Mr pattern: ^[0-9a-zA-Z]{1,4}$ firstName: type: string description: Cardholder first name. Maximum of 20 alphanumeric characters including space, hyphen and apostrophe. Optional for individual customers whose partner has verification type EXTERNAL and for Virtual Business customers. example: Joe pattern: ^[A-Za-z0-9ÄÖÜäöü/.'^ -]{1,20}$ lastName: type: string description: Cardholder last name. Maximum of 20 alphanumeric characters including space, hyphen and apostrophe. Optional for individual customers whose partner has verification type EXTERNAL and for Virtual Business customers. example: Bloggs pattern: ^[A-Za-z0-9ÄÖÜäöü/.'^ -]{1,20}$ billingAddress: $ref: '#/components/schemas/card.AddressDetail' description: Billing address for the cardholder. Optional for individual customers whose partner has verification type EXTERNAL. dateOfBirth: type: string format: date description: Cardholder date of birth. Must match date format of yyyy-mm-dd. Required for virtual consumer and physical cards. Optional for individual customers. example: '2001-01-01' mobileNumber: type: string description: Cardholder mobile number. Must start with a '+', followed by the country code and then the mobile number. Required for virtual consumer and physical cards. example: '+447123456000' email: type: string format: email description: Cardholder email example: cardholder@example.com maxLength: 50 minLength: 0 required: - firstName - lastName card.PatchOperation: type: object discriminator: propertyName: op mapping: add: '#/components/schemas/card.Add' move: '#/components/schemas/card.Move' test: '#/components/schemas/card.Test' replace: '#/components/schemas/card.Replace' copy: '#/components/schemas/card.Copy' remove: '#/components/schemas/card.Remove' properties: op: type: string path: type: string example: /path/to/field required: - op - path card.CardReplacementResponse: type: object properties: id: type: string description: Card identifier. Maximum of 10 alphanumeric characters. cvv2: type: string description: Card CVV2 number. pan: type: string description: Full card PAN. createdDate: type: string format: date-time description: The creation date of the card example: 2019-01-29T11:01:54.826+0000 externalRef: type: string description: Client reference for the newly created card. expiry: type: string description: An ISO 8601 date with year & month components only example: 2018-12 maxLimit: type: string description: Maximum limit which can be set on this card and is the maximum lifetime spend the card can have example: '4000.00' managementToken: type: string description: Card Management Token required for API users for additional security when managing sensitive card data required: - createdDate - cvv2 - expiry - externalRef - id - maxLimit - pan card.CardToken: type: object description: Payment token details for a card properties: id: type: string description: Card token ID example: T110000001 expiry: type: string format: date description: Token expiry date (ISO 8601 format) example: '2021-10-31' type: type: string description: Type of system the token is encoded onto enum: - BROWSER_ACCESSIBLE_WALLET - CONTACTLESS_DEVICE_PAN - CARD_ON_FILE_PAN - REAL_PAN - UNKNOWN - VIRTUAL_PAN - SECURE_ELEMENT - CLOUD_BASED example: SECURE_ELEMENT wallet: type: string description: Wallet the token belongs to enum: - APPLE - GOOGLE - MRCHTOKEN example: APPLE status: type: string description: Card token status enum: - APPROVED - ACTIVE - AWAITING_AUTHENTICATION - AUTHENTICATION_FAILED - AUTO_SUSPENDED - SUSPENDED - DEACTIVATED - UNKNOWN example: PROVISIONED language: type: string description: 2-digit ISO 639-1 language code example: EN devices: type: array items: $ref: '#/components/schemas/card.CardTokenDevice' maskedDpan: type: string description: Masked DPAN (last 4 digits) to the associated token ID example: '1234' required: - expiry - id - language - status - type - wallet card.reportTypes: type: array description: Report types example: DAILY_CARD_ACTIVITY items: type: string description: Report types enum: - DAILY_CARD_ACTIVITY - MONTHLY_CARD_ACTIVITY - DAILY_ACCOUNT_FUNDING - MONTHLY_ACCOUNT_FUNDING - DAILY_AUTH_WINDOW - DAILY_CARD_MANAGEMENT example: DAILY_CARD_ACTIVITY card.Test: allOf: - $ref: '#/components/schemas/card.PatchOperation' - type: object properties: value: $ref: '#/components/schemas/card.JsonNode' description: Test field required: - op - path - value card.ReportPageResponse: type: object properties: content: type: array description: List of responses on the current page items: $ref: '#/components/schemas/card.ReportResponse' size: type: integer format: int32 description: Page size totalSize: type: integer format: int64 description: Total count page: type: integer format: int32 description: Current page number, 0 based; i.e first-page = 0, second-page = 1 totalPages: type: integer format: int32 description: Total pages required: - content - page - size - totalPages - totalSize card.CreatePhysicalCardRequest: type: object description: Card properties: limit: type: number format: double description: Total card authorisation limit. example: '1000.00' maximum: 99999999.99 minimum: 1 expiry: type: string description: ISO 8601 date with year & month components only. The supplied value must be in the future (cannot be the current month) and is _inclusive_ of the specified month. example: 2018-12 productCode: type: string description: Identifies the _type_ of card to create (GBP consumer, GBP business, etc). Modulr will supply a list of possible values. externalRef: type: string description: Client reference for the newly created card. Maximum of 50 alphanumeric characters (including underscore, hyphen and space). maxLength: 50 minLength: 1 pattern: '[\w -]*' constraints: $ref: '#/components/schemas/card.Constraints' description: Constraints authentication: $ref: '#/components/schemas/card.CardAuthentication' description: Authentication. Required by default, optional for Virtual Business Travel Cards only cancellationDate: type: string description: Date for card to be cancelled on example: '2025-01-01' customFields: type: array description: Custom fields of card items: $ref: '#/components/schemas/card.CardCustomFieldRequest' maxItems: 20 minItems: 0 authorisationWindow: $ref: '#/components/schemas/card.AuthorisationWindowRequest' description: Authorisation Windows allow the card holder to add a period of time where the card can ONLY be used, if an Authorisation Window set then transactions outside this window will decline. ISO 8601 date with year, month & day components only. frequencyUsage: type: string enum: - SINGLE_USE - MULTI_USE holder: $ref: '#/components/schemas/card.CardHolder' description: CardHolder shippingAddress: $ref: '#/components/schemas/card.AddressDetail' description: Add a Shipping address if you wish the card to be sent to an address other than the billing address design: $ref: '#/components/schemas/card.ProductDesignDetail' description: Design references for card and packaging printedName: type: string description: Name to be printed on the card. Maximum of 27 alphanumeric characters (including full stop, hyphen, apostrophe, caret and space). Please add business name to this field if you wish to have it on the card. example: Joe Bloggs maxLength: 27 minLength: 1 pattern: '[a-zA-Z 0-9À-ŽȘȚ''’.,^-]{1,27}' required: - design - expiry - externalRef - limit - printedName - productCode card.CardPinResponse: type: object properties: pin: type: string description: Card PIN example: '0123' card.JsonNode: {} card.ProductDesignDetail: type: object properties: cardRef: type: string description: Design reference for card minLength: 1 packagingRef: type: string description: Design reference for card packaging minLength: 1 required: - cardRef - packagingRef card.CreateCardResponse: type: object properties: id: type: string description: Card identifier. Maximum of 10 alphanumeric characters. pan: type: string description: Full card PAN. maskedPan: type: string description: Masked card PAN. cvv2: type: string description: Card CVV2 number. externalRef: type: string description: Client reference for the newly created card. createdDate: type: string format: date-time description: The creation date of the card example: 2019-01-29T11:01:54.826+0000 maxLimit: type: string description: Maximum Limit which can be set on this card and is the maximum lifetime spend the card can have example: '4000.00' frequencyUsage: type: string description: Card frequency usage enum: - SINGLE_USE - MULTI_USE example: MULTI_USE shareLink: type: string description: Link that can be used by client to share secure details. Will only be returned when shareDetails method is RETURN in request body. required: - createdDate - cvv2 - externalRef - frequencyUsage - id - maxLimit - pan card.AuthorisationConstraints: type: object description: Authorisation constraints properties: spend: type: array description: Spending constraints items: $ref: '#/components/schemas/card.SpendConstraintDetail' card.UpdateCardRequest: type: object description: Update card properties: limit: type: number description: Total card authorisation limit. example: '1000.00' cancellationDate: type: string description: ISO 8601 date with year, month & day components only. The supplied value must be in the future and at most 1 day before the expiry date. example: '2025-01-01' customFields: type: array description: Custom fields items: $ref: '#/components/schemas/card.CardCustomFieldRequest' maxItems: 20 minItems: 1 holder: $ref: '#/components/schemas/card.UpdateCardHolder' description: CardHolder authWindow: $ref: '#/components/schemas/card.AuthorisationWindowRequest' description: Authorisation Windows allow the card holder to add a period of time where the card can ONLY be used, if an Authorisation Window set then transactions outside this window will decline. ISO 8601 date with year, month & day components only. card.CardTokenDevice: type: object properties: id: type: string description: Device ID example: D110000001 type: type: string description: Device type enum: - CLOTHING - MEDIA_GAMING - CARD - DOMESTIC_APPLIANCE - FOB - MOBILE_TAG - FASHION - JEWELRY - MOBILE_PHONE - PERSONAL_COMPUTER - WRISTBAND - STICKER - TABLET - UNKNOWN - VEHICLE - WATCH - MOBILE_PHONE_OR_TABLET example: MOBILE_PHONE ip: type: string description: IPv4 address of the device. Either in hex format (i.e FFFFFFFF) or decimal format (i.e. 255.255.255.255) example: 255.255.255.255 name: type: string description: Device name, as given by the cardholder example: iPhone 12 status: type: string description: Device status enum: - PENDING_PROVISIONING - PROVISIONED - DELETED - UNKNOWN example: ACTIVE externalId: type: string description: Device External Id required: - externalId - id - ip - name - status - type card.CardActivityPageResponse: type: object properties: content: type: array description: List of responses on the current page items: $ref: '#/components/schemas/card.CardActivityResponse' size: type: integer format: int32 description: Page size totalSize: type: integer format: int64 description: Total count page: type: integer format: int32 description: Current page number, 0 based; i.e first-page = 0, second-page = 1 totalPages: type: integer format: int32 description: Total pages required: - content - page - size - totalPages - totalSize card.AsyncTaskCreatedResponse: type: object properties: taskUrl: type: string description: Url of card task resource taskId: type: string description: ID of card task metaData: type: object additionalProperties: type: string description: Meta data associated with async task response required: - taskId - taskUrl card.AppleInAppProvisioningRequest: type: object description: Apple in app provisioning request properties: leafCertificate: type: string description: Apple issued public base 64 encoded certificate to encrypt the provisioning data minLength: 1 additionalCertificates: type: array description: Apple issued public base 64 encoded certificates that complete the chain including the root certificate items: type: string nonce: type: string description: Hex encoded nonce generated by the client minLength: 1 nonceSignature: type: string description: Hex encoded nonce signed with the private key to verify the certificate public key minLength: 1 required: - additionalCertificates - leafCertificate - nonce - nonceSignature card.Replace: allOf: - $ref: '#/components/schemas/card.PatchOperation' - type: object properties: value: $ref: '#/components/schemas/card.JsonNode' description: Replace field required: - op - path - value card.OneTimeTokenRequest: type: object properties: publicKey: type: string description: Base64 UTF-8 encoded RSA public key to be used to encrypt the token in the response. The key must be at least 4096 bits in length. purpose: type: string default: READ description: What the token will be used for. UPDATE tokens cannot be used for READ purposes, and READ tokens cannot be used for updates. enum: - READ - UPDATE card.Move: allOf: - $ref: '#/components/schemas/card.PatchOperation' - type: object properties: from: type: string example: /path/to/originating/field description: Move field required: - from - op - path card.UpdateCardAuthenticationRequest: type: object description: Authentication properties: knowledgeBase: type: array description: 3DS Knowledge-Based Authentication (KBA) answers items: $ref: '#/components/schemas/card.CardKnowledgeBasedAuthentication' required: - knowledgeBase card.Constraints: type: object properties: authorisation: $ref: '#/components/schemas/card.AuthorisationConstraints' description: Authorisation constraints card.ReportResponse: type: object properties: id: type: string reportSubjectId: type: string reportDate: type: string format: date reportType: type: string enum: - DAILY_CARD_ACTIVITY - MONTHLY_CARD_ACTIVITY - DAILY_ACCOUNT_FUNDING - MONTHLY_ACCOUNT_FUNDING - DAILY_AUTH_WINDOW - DAILY_CARD_MANAGEMENT card.AuthInfo: type: object properties: type: type: string description: Transaction type minLength: 1 inputMethod: type: string description: Input method minLength: 1 required: - inputMethod - type card.CustomFields: type: object properties: key: type: string description: Custom field key required: type: boolean description: Whether the custom field is required or not required: - key - required card.UpdateCardReportNotificationRequest: type: object description: Notification request containing the status of the notification properties: status: type: string description: status minLength: 1 required: - status card.GetCardTokensResponse: type: object properties: size: type: integer format: int32 description: Number of elements in content example: 1 content: type: array description: List of response elements items: $ref: '#/components/schemas/card.CardToken' required: - content - size securitySchemes: modulo_security: type: apiKey name: Authorization in: header TOKEN: type: apiKey name: Authorization in: header x-readme: proxy-enabled: false