openapi: 3.2.0 info: title: Modulr Channel Manager Card 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: Channel Manager Card paths: /channel-managers/cards/{cardId}: post: tags: - Channel Manager Card summary: Channel Manager Update card description: Update a virtual card operationId: channelManagerUpdateCard parameters: - name: cardId in: path description: The card id. required: true style: simple explode: false schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/channelmanager.UpdateCardRequest' required: true responses: '204': description: Virtual card updated successfully '400': description: Invalid request content: '*/*': schema: type: array items: $ref: '#/components/schemas/channelmanager.MessageResponse' security: - HMAC: [] - TOKEN: [] patch: tags: - Channel Manager Card summary: Channel Manager Update card description: Update card - for now, the removal of cancellationDate, authWindowStartDate and authWindowEndDate fields is the only allowed action operationId: channelManagerUpdateCard_1 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/channelmanager.Add' - $ref: '#/components/schemas/channelmanager.Copy' - $ref: '#/components/schemas/channelmanager.Move' - $ref: '#/components/schemas/channelmanager.Remove' - $ref: '#/components/schemas/channelmanager.Replace' - $ref: '#/components/schemas/channelmanager.Test' required: true responses: '204': description: Card updated successfully '400': description: Invalid request content: '*/*': schema: type: array items: $ref: '#/components/schemas/channelmanager.MessageResponse' '403': description: Forbidden. Token may be missing or invalid security: - HMAC: [] - TOKEN: [] /channel-managers/cards/{cardId}/replace: post: tags: - Channel Manager Card summary: 'Channel Manager Replace card ' description: Replace a card, with a reason STOLEN, DAMAGED, LOST, RENEW operationId: channelManagerReplaceCard 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/channelmanager.CardReplacementRequest' required: true responses: '201': description: Card replaced successfully content: application/json: schema: $ref: '#/components/schemas/channelmanager.CardReplacementResponse' '400': description: Invalid request content: '*/*': schema: type: array items: $ref: '#/components/schemas/channelmanager.MessageResponse' security: - HMAC: [] - TOKEN: [] /channel-managers/cards/{cardId}/custom-fields: post: tags: - Channel Manager Card summary: Channel Manager Update Card 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: channelManagerUpdateCardCustomFields 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/channelmanager.UpdateCardCustomFieldsRequest' required: true responses: '204': description: Custom fields updated successfully '400': description: Invalid request content: '*/*': schema: type: array items: $ref: '#/components/schemas/channelmanager.MessageResponse' security: - HMAC: [] - TOKEN: [] /channel-managers/cards/enquiry: post: tags: - Channel Manager Card summary: Channel Manager Card enquiry description: Retrieve card details by PAN operationId: channelManagerCardEnquiry requestBody: content: application/json: schema: $ref: '#/components/schemas/channelmanager.CardEnquiryRequest' required: true responses: '200': description: Card enquiry successful content: application/json: schema: $ref: '#/components/schemas/channelmanager.CardResponse' '400': description: Invalid request content: '*/*': schema: type: array items: $ref: '#/components/schemas/channelmanager.MessageResponse' security: - HMAC: [] - TOKEN: [] /channel-managers/accounts/{accountId}/cards: post: tags: - Channel Manager Card summary: 'Channel Manager Create card ' description: Create a new virtual card operationId: channelManagerCreateCard 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/channelmanager.CreateCardRequest' required: true responses: '201': description: Virtual card created successfully content: application/json: schema: $ref: '#/components/schemas/channelmanager.CreateCardResponse' '400': description: Invalid request content: '*/*': schema: type: array items: $ref: '#/components/schemas/channelmanager.MessageResponse' security: - HMAC: [] - TOKEN: [] /channel-managers/cards: get: tags: - Channel Manager Card summary: Retrieve channel manager's cards description: Retrieve cards owned by the channel manager operationId: channelManagerGetCards 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: OK content: application/json: schema: $ref: '#/components/schemas/channelmanager.CardPageResponse' '204': description: Cards successfully retrieved content: application/json: schema: $ref: '#/components/schemas/channelmanager.CardPageResponse' '400': description: Bad Request content: '*/*': schema: type: array items: $ref: '#/components/schemas/channelmanager.MessageResponse' security: - HMAC: [] - TOKEN: [] /channel-managers/cards/activities: get: tags: - Channel Manager Card summary: Retrieve channel manager's card activities description: Retrieve card activities owned by the channel manager or over specific Date range.View card activities for a single card when a card ID is specified, time frame is optional. operationId: channelManagerGetCardActivities 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/channelmanager.CardActivityPageResponse' '400': description: Invalid request content: '*/*': schema: type: array items: $ref: '#/components/schemas/channelmanager.MessageResponse' security: - HMAC: [] - TOKEN: [] /channel-managers/card-reports: get: tags: - Channel Manager Card summary: Retrieve channel manager's card reports description: Retrieve card reports owned by the channel manager operationId: channelManagerSearchCardReports 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/channelmanager.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/channelmanager.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/channelmanager.ReportPageResponse' '400': description: Bad Request content: '*/*': schema: type: array items: $ref: '#/components/schemas/channelmanager.MessageResponse' '403': description: Unauthorised request content: application/json: schema: $ref: '#/components/schemas/channelmanager.ReportPageResponse' security: - HMAC: [] - TOKEN: [] /channel-managers/card-reports/{reportId}/report: get: tags: - Channel Manager Card summary: Channel Manager download a specific card report description: Download a specific card report operationId: channelManagerRetrieveReport 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: application/octet-stream: schema: type: string format: binary '400': description: Bad Request content: '*/*': schema: type: array items: $ref: '#/components/schemas/channelmanager.MessageResponse' '403': description: Forbidden. Token may be missing or invalid content: application/octet-stream: schema: type: string format: binary '404': description: Card report not found content: application/octet-stream: schema: type: string format: binary security: - HMAC: [] - TOKEN: [] components: schemas: channelmanager.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/channelmanager.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 channelmanager.ReportPageResponse: type: object properties: content: type: array description: List of responses on the current page items: $ref: '#/components/schemas/channelmanager.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 channelmanager.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 channelmanager.UpdateCardHolder: type: object properties: billingAddress: $ref: '#/components/schemas/channelmanager.AddressDetail' description: Billing address for the card holder. Must be NULL for individual customers. shippingAddress: $ref: '#/components/schemas/channelmanager.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 channelmanager.Remove: allOf: - $ref: '#/components/schemas/channelmanager.PatchOperation' description: Remove field required: - op - path channelmanager.AuthorisationWindowRequest: type: object properties: startDate: type: string example: '2025-01-01' endDate: type: string example: '2025-01-01' channelmanager.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/channelmanager.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/channelmanager.AddressDetail' description: Shipping address details for card. Optional for individual customers whose partner has verification type EXTERNAL required: - reason channelmanager.Test: allOf: - $ref: '#/components/schemas/channelmanager.PatchOperation' - type: object properties: value: $ref: '#/components/schemas/channelmanager.JsonNode' description: Test field required: - op - path - value channelmanager.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 channelmanager.CardPageResponse: type: object properties: content: type: array description: List of responses on the current page items: $ref: '#/components/schemas/channelmanager.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 channelmanager.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 channelmanager.JsonNode: {} channelmanager.AuthorisationConstraints: type: object description: Authorisation constraints properties: spend: type: array description: Spending constraints items: $ref: '#/components/schemas/channelmanager.SpendConstraintDetail' channelmanager.Add: allOf: - $ref: '#/components/schemas/channelmanager.PatchOperation' - type: object properties: value: $ref: '#/components/schemas/channelmanager.JsonNode' description: Add field required: - op - path - value channelmanager.Replace: allOf: - $ref: '#/components/schemas/channelmanager.PatchOperation' - type: object properties: value: $ref: '#/components/schemas/channelmanager.JsonNode' description: Replace field required: - op - path - value channelmanager.CardAuthentication: type: object properties: knowledgeBase: type: array description: 3DS knowledge-based authentication (KBA) answers items: $ref: '#/components/schemas/channelmanager.CardKnowledgeBasedAuthentication' minItems: 1 required: - knowledgeBase channelmanager.CardActivityPageResponse: type: object properties: content: type: array description: List of responses on the current page items: $ref: '#/components/schemas/channelmanager.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 channelmanager.Move: allOf: - $ref: '#/components/schemas/channelmanager.PatchOperation' - type: object properties: from: type: string example: /path/to/originating/field description: Move field required: - from - op - path channelmanager.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 channelmanager.CardResponse: type: object properties: id: type: string description: Card identifier. Maximum of 10 alphanumeric characters example: V000000001 holder: $ref: '#/components/schemas/channelmanager.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/channelmanager.CardConstraints' description: CardConstraints design: $ref: '#/components/schemas/channelmanager.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/channelmanager.CardThreeDSecureAuthentication' description: The 3DS authentication method statuses shippingAddress: $ref: '#/components/schemas/channelmanager.AddressDetail' description: Shipping address customFields: type: array description: Custom fields currently defined for card items: $ref: '#/components/schemas/channelmanager.CardCustomFieldResponse' authWindow: $ref: '#/components/schemas/channelmanager.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 channelmanager.AuthInfo: type: object properties: type: type: string description: Transaction type minLength: 1 inputMethod: type: string description: Input method minLength: 1 required: - inputMethod - type channelmanager.CardCustomFieldRequest: type: object properties: key: type: string description: Custom field key value: type: string description: Custom field value required: - key - value channelmanager.UpdateCardRequest: type: object description: 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/channelmanager.CardCustomFieldRequest' maxItems: 20 minItems: 1 holder: $ref: '#/components/schemas/channelmanager.UpdateCardHolder' description: CardHolder authWindow: $ref: '#/components/schemas/channelmanager.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. channelmanager.Constraints: type: object properties: authorisation: $ref: '#/components/schemas/channelmanager.AuthorisationConstraints' description: Authorisation constraints channelmanager.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 channelmanager.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 channelmanager.CardCustomFieldResponse: type: object properties: key: type: string description: Custom field key value: type: string description: Custom field value channelmanager.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/channelmanager.Constraints' description: Constraints authentication: $ref: '#/components/schemas/channelmanager.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/channelmanager.CardCustomFieldRequest' maxItems: 20 minItems: 0 authorisationWindow: $ref: '#/components/schemas/channelmanager.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/channelmanager.CardHolder' description: CardHolder required: - expiry - externalRef - limit - productCode channelmanager.PatchOperation: type: object discriminator: propertyName: op mapping: add: '#/components/schemas/channelmanager.Add' move: '#/components/schemas/channelmanager.Move' test: '#/components/schemas/channelmanager.Test' replace: '#/components/schemas/channelmanager.Replace' copy: '#/components/schemas/channelmanager.Copy' remove: '#/components/schemas/channelmanager.Remove' properties: op: type: string path: type: string example: /path/to/field required: - op - path channelmanager.UpdateCardCustomFieldsRequest: type: object description: Custom fields to be updated properties: customFields: type: array description: Custom fields items: $ref: '#/components/schemas/channelmanager.CardCustomFieldRequest' maxItems: 20 minItems: 1 required: - customFields channelmanager.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/channelmanager.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 channelmanager.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 channelmanager.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 channelmanager.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 channelmanager.CardEnquiryRequest: type: object description: Enquiry properties: pan: type: string description: pan providerSuppliedId: type: string description: providerSuppliedId channelmanager.Copy: allOf: - $ref: '#/components/schemas/channelmanager.PatchOperation' - type: object properties: from: type: string example: /path/to/originating/field description: Copy field required: - from - op - path channelmanager.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 channelmanager.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 channelmanager.CardConstraints: type: object properties: mccWhitelist: type: array description: mccWhitelist example: - '1000' - 1002-3000 - '5060' items: type: string authorisation: $ref: '#/components/schemas/channelmanager.AuthorisationConstraints' description: Authorisation constraints required: - mccWhitelist channelmanager.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 securitySchemes: modulo_security: type: apiKey name: Authorization in: header TOKEN: type: apiKey name: Authorization in: header x-readme: proxy-enabled: false