swagger: '2.0' info: description: All CyberSource API specs merged together. These are available at https://developer.cybersource.com/api/reference/api-reference.html version: 0.0.1 title: CyberSource Merged Spec bankAccountValidation Microform Integration API host: apitest.cybersource.com basePath: / schemes: - https consumes: - application/json;charset=utf-8 produces: - application/hal+json;charset=utf-8 tags: - name: Microform Integration paths: /microform/v2/sessions: post: tags: - Microform Integration summary: Generate Capture Context description: This API is used to generate the Capture Context data structure for the Microform Integration. Microform is a browser-based acceptance solution that allows a seller to capture payment information is a secure manner from their website. For more information about Flex Microform transactions, see the [Flex Developer Guides Page](https://developer.cybersource.com/api/developer-guides/dita-flex/SAFlexibleToken.html). For examples on how to integrate Flex Microform within your webpage please see our [GitHub Flex Samples](https://github.com/CyberSource?q=flex&type=&language=) This API is a server-to-server API to generate the capture context that can be used to initiate instance of microform on a acceptance page. The capture context is a digitally signed JWT that provides authentication, one-time keys, and the target origin to the Microform Integration application. The availability of API features for a merchant may depend on the portfolio configuration and may need to be enabled at the portfolio level before they can be added to merchant accounts. operationId: generateCaptureContext x-devcenter-metaData: categoryTag: Flex_Microform developerGuides: https://developer.cybersource.com/api/developer-guides/dita-flex/SAFlexibleToken.html produces: - application/jwt parameters: - in: body name: generateCaptureContextRequest required: true schema: type: object description: 'This is a server-to-server API request to generate the capture context that can be used to initiate an instance of Microform on an acceptance page. The capture context is a digitally signed JWT that provides authentication, one-time keys, and the target origin to the Microform Integration application. ' properties: clientVersion: type: string description: 'Specify the version of Microform that you want to use. ' targetOrigins: type: array items: type: string example: https://www.test.com description: "The [target origin](https://developer.mozilla.org/en-US/docs/Glossary/Origin) of the website on which you will be launching Microform is defined by the scheme (protocol), hostname (domain) and port number (if used). \n\nYou must use https://hostname (unless you use http://localhost)\nWildcards are NOT supported. Ensure that subdomains are included.\nAny valid top-level domain is supported (e.g. .com, .co.uk, .gov.br etc)\n\nExamples:\n - https://example.com\n - https://subdomain.example.com\n - https://example.com:8080

\n\nIf you are embedding within multiple nested iframes you need to specify the origins of all the browser contexts used, for example:\n\n targetOrigins: [\n \"https://example.com\",\n \"https://basket.example.com\",\n \"https://ecom.example.com\"\n ]

\n\nYou can supply up to nine origins within the targetOrigins field for nested iframes.\nIf the list of origins exceeds five ensure that you:\n - Compare the list of origins in the v2/sessions targetOrigins field against the location.ancestorOrigins of the browser. \n - Ensure that the count of origins and their content matches in both. If any origins are absent or mismatched, the system will prevent Microform from loading and display a client-side error message.\n" allowedCardNetworks: type: array items: type: string description: "The list of card networks you want to use for this Microform transaction.\n\nMicroform currently supports the following card networks:\n - VISA\n - MASTERCARD\n - AMEX\n - CARNET\n - CARTESBANCAIRES\n - CUP\n - DINERSCLUB\n - DISCOVER\n - EFTPOS\n - ELO\n - JAYWAN\n - JCB\n - JCREW\n - KCP\n - MADA\n - MAESTRO\n - MEEZA\n - PAYPAK\n - UATP\n\n**Important:** \n - When integrating Microform (Card) at least one card network should be specified in the allowedCardNetworks field in the capture context request.\n - When integrating Microform (ACH/eCheck) the allowedCardNetworks field is not required in the capture context request.\n - When integrating both Microform (Card) and Microform (ACH/eCheck) at least one card network should be specified in the allowedCardNetworks field in the capture context request.\n" allowedPaymentTypes: type: array items: type: string description: "The payment types that are allowed for the merchant. \n\nPossible values when launching Microform:\n- CARD\n- CHECK

\n" transientTokenResponseOptions: type: object properties: includeCardPrefix: type: boolean description: "Use the transientTokenResponseOptions.includeCardPrefix field to choose your preferred card number prefix length: 6-digit, 8-digit, or no card number prefix.\n\nPossible values:\n- True\n- False

\n\nTo select the type of card number prefix:\n- No field included: A 6-digit prefix is returned (default)\n- True: An 8-digit prefix is returned\n- False: No prefix is returned

\n\nThe following conditions apply:\n- 8-digit card number prefixes only apply to Discover, JCB, Mastercard, UnionPay, and Visa brands with 16-digit card numbers or more.\n- Any card with less than 16-digit numbers will return a 6-digit prefix even when the transientTokenResponseOptions.includeCardPrefix field is set to true.\n- Any card brand other than Discover, JCB, Mastercard, UnionPay, or Visa will return a 6-digit prefix even when the transientTokenResponseOptions.includeCardPrefix field is set to true.\n- If any card brand is co-branded with Discover, JCB, Mastercard, UnionPay, or Visa, an 8-digit prefix will be returned if the transientTokenResponseOptions.includeCardPrefix field is set to true.

\n\n**Important:** \nIf your application does NOT require a card number prefix for routing or identification purposes, set the transientTokenResponseOptions.includeCardPrefix field to False. This will minimize your personal data exposure.\n" x-example: example0: summary: Generate Capture Context (Card) value: clientVersion: v2 targetOrigins: - https://www.test.com allowedCardNetworks: - VISA - MASTERCARD - AMEX allowedPaymentTypes: - CARD example1: summary: Generate Capture Context With Full List of Card Networks (Card) value: clientVersion: v2 targetOrigins: - https://www.test.com allowedCardNetworks: - VISA - MASTERCARD - AMEX - CARTESBANCAIRES - CARNET - CUP - DINERSCLUB - DISCOVER - EFTPOS - ELO - JAYWAN - JCB - JCREW - KCP - MADA - MAESTRO - MEEZA - PAYPAK - UATP allowedPaymentTypes: - CARD example2: summary: Generate Capture Context (ACH/eCheck) value: clientVersion: v2 targetOrigins: - https://www.test.com allowedPaymentTypes: - CHECK example3: summary: Generate Capture Context (Card - Opt-out of receiving card number prefix) value: clientVersion: v2 targetOrigins: - https://www.test.com allowedCardNetworks: - VISA - MASTERCARD - AMEX allowedPaymentTypes: - CARD transientTokenResponseOptions: includeCardPrefix: false responses: '201': description: Capture Context Created schema: type: string examples: application/jwt: eyJraWQiOiJ6dSIsImFsZyI6IlJTMjU2In0.eyJmbHgiOnsicGF0aCI6Ii9mbGV4L3YyL3Rva2VucyIsImRhdGEiOiJVUmIycEtZa2xhU0M4OW43ai9CWEJCQUFFQ1ZjVjRlU0xoTThvdDc5anRFREp4Vk1PdUFDRCtaUU03UGEydEhkbm5ENzh0MjBYcktCZVFnaUI4dysrZ0hNbHpBOUxqTng1K2MxNlo2VzJ2bGNaWGJyUmEydkUyRWFyaldlUUc0Q1pieEwiLCJvcmlnaW4iOiJodHRwczovL3Rlc3RmbGV4LmN5YmVyc291cmNlLmNvbSIsImp3ayI6eyJrdHkiOiJSU0EiLCJlIjoiQVFBQiIsInVzZSI6ImVuYyIsIm4iOiJod3VBT0NWcG5YWk9mTXNHWWJ6dUQyYW81dndvZGNPMVVqa2RpS3RXdEh5dmMybS1iY1hwUTRGRTk3UDk3NV9KMVJwMWJiZW5jWjNCZW1lbUJ5aU9VajlHRVVkV25raXVyNE5VWmVkQVpzelFkbFFaSlAzdzZQWVoxREFUY05ZekZwYjRXbnQzQkpKSm9XM2p3aTlMLTY1cWNuYU5SWFppRTV1V0FlQnFQY085UmNDU1BtR3lsT3REUWEzT0d5ZXFESDl0S3piU2lKNGxHMW9FcExVRWw2N003V0xXeXR1R2tsOExXUExncmkybldoaEdLS2d5cFA3bEp5Qk5IX2FxUHVOT3A3YUFVYTlvZVRqV2t0WVpqUzNqbTFjTDVkazJ6VkFGU3JkRGdTYzd1VXMtZVdkZThOYW1zZHhZTHFzX3BFSW1XU3FteDVvc2tpenZWR1A3anciLCJraWQiOiIwNzZSRjlmMEZMdVRLaU9jZkhiNU1TSkZwZzZqODY2YSJ9fSwiY3R4IjpbeyJkYXRhIjp7ImNsaWVudExpYnJhcnkiOiJodHRwczovL3Rlc3RmbGV4LmN5YmVyc291cmNlLmNvbS9taWNyb2Zvcm0vYnVuZGxlL3YxL2ZsZXgtbWljcm9mb3JtLm1pbi5qcyIsInRhcmdldE9yaWdpbnMiOlsiaHR0cHM6Ly93d3cuY3liZXJzb3VyY2UtbWVyY2hhbnQuY29tIl0sIm1mT3JpZ2luIjoiaHR0cHM6Ly90ZXN0ZmxleC5jeWJlcnNvdXJjZS5jb20ifSwidHlwZSI6Im1mLTEuMC4wIn1dLCJpc3MiOiJGbGV4IEFQSSIsImV4cCI6MTY2NDkyNzM5NywiaWF0IjoxNjY0OTI2NDk3LCJqdGkiOiJybXBWQ0NCSW9sdWhYQ2E0In0.LlunfxI-deZ_Tqypz4ucNhhF_IYsB6ZhlKndgWdJe1vv91ekePZBU6icq6aDVUAFuDR5MmjCQc7IsQNhCiZGf6uqV9YFLokhEZdnHOHkpwE1viH9GoddsdiSvBcJrYJ4FsV49JK2xRNvGTxNKR62wiO2YqPhNm934b2bbsjyYyDByw2wEZhJyAPBIDJk6IF2IvR4kq1lNyAtFs4EXVO2tqBATvj1nahqHMqUlrTsOGY96XioXl1YKnqeM1g5lREqoxR3M8HsWm2kCSsGyirIWLEaOYYEvWcKNBmkhW410XEYfb3hrg-H7irLe0_4OICdV1FyY-AsjbzO7mO17BENQg default: description: Error retrieving key. schema: type: object properties: responseStatus: properties: status: type: number description: HTTP Status code. reason: type: string description: Error Reason Code. message: type: string description: Error Message. correlationId: type: string description: API correlation ID. details: type: array items: properties: location: type: string description: Field name referred to for validation issues. message: type: string description: Description or code of any error response. _links: type: object properties: next: type: array items: properties: href: type: string description: URI of the linked resource. title: type: string description: Label of the linked resource. method: type: string description: HTTP method of the linked resource. documentation: type: array items: properties: href: type: string description: URI of the linked resource. title: type: string description: Label of the linked resource. method: type: string description: HTTP method of the linked resource. self: properties: href: type: string description: URI of the linked resource. title: type: string description: Label of the linked resource. method: type: string description: HTTP method of the linked resource. x-samplePayload: targetOrigins: - https://www.cybersource-merchant.com x-sampleResponse: eyJraWQiOiJ6dSIsImFsZyI6IlJTMjU2In0.eyJmbHgiOnsicGF0aCI6Ii9mbGV4L3YyL3Rva2VucyIsImRhdGEiOiJVUmIycEtZa2xhU0M4OW43ai9CWEJCQUFFQ1ZjVjRlU0xoTThvdDc5anRFREp4Vk1PdUFDRCtaUU03UGEydEhkbm5ENzh0MjBYcktCZVFnaUI4dysrZ0hNbHpBOUxqTng1K2MxNlo2VzJ2bGNaWGJyUmEydkUyRWFyaldlUUc0Q1pieEwiLCJvcmlnaW4iOiJodHRwczovL3Rlc3RmbGV4LmN5YmVyc291cmNlLmNvbSIsImp3ayI6eyJrdHkiOiJSU0EiLCJlIjoiQVFBQiIsInVzZSI6ImVuYyIsIm4iOiJod3VBT0NWcG5YWk9mTXNHWWJ6dUQyYW81dndvZGNPMVVqa2RpS3RXdEh5dmMybS1iY1hwUTRGRTk3UDk3NV9KMVJwMWJiZW5jWjNCZW1lbUJ5aU9VajlHRVVkV25raXVyNE5VWmVkQVpzelFkbFFaSlAzdzZQWVoxREFUY05ZekZwYjRXbnQzQkpKSm9XM2p3aTlMLTY1cWNuYU5SWFppRTV1V0FlQnFQY085UmNDU1BtR3lsT3REUWEzT0d5ZXFESDl0S3piU2lKNGxHMW9FcExVRWw2N003V0xXeXR1R2tsOExXUExncmkybldoaEdLS2d5cFA3bEp5Qk5IX2FxUHVOT3A3YUFVYTlvZVRqV2t0WVpqUzNqbTFjTDVkazJ6VkFGU3JkRGdTYzd1VXMtZVdkZThOYW1zZHhZTHFzX3BFSW1XU3FteDVvc2tpenZWR1A3anciLCJraWQiOiIwNzZSRjlmMEZMdVRLaU9jZkhiNU1TSkZwZzZqODY2YSJ9fSwiY3R4IjpbeyJkYXRhIjp7ImNsaWVudExpYnJhcnkiOiJodHRwczovL3Rlc3RmbGV4LmN5YmVyc291cmNlLmNvbS9taWNyb2Zvcm0vYnVuZGxlL3YxL2ZsZXgtbWljcm9mb3JtLm1pbi5qcyIsInRhcmdldE9yaWdpbnMiOlsiaHR0cHM6Ly93d3cuY3liZXJzb3VyY2UtbWVyY2hhbnQuY29tIl0sIm1mT3JpZ2luIjoiaHR0cHM6Ly90ZXN0ZmxleC5jeWJlcnNvdXJjZS5jb20ifSwidHlwZSI6Im1mLTEuMC4wIn1dLCJpc3MiOiJGbGV4IEFQSSIsImV4cCI6MTY2NDkyNzM5NywiaWF0IjoxNjY0OTI2NDk3LCJqdGkiOiJybXBWQ0NCSW9sdWhYQ2E0In0.LlunfxI-deZ_Tqypz4ucNhhF_IYsB6ZhlKndgWdJe1vv91ekePZBU6icq6aDVUAFuDR5MmjCQc7IsQNhCiZGf6uqV9YFLokhEZdnHOHkpwE1viH9GoddsdiSvBcJrYJ4FsV49JK2xRNvGTxNKR62wiO2YqPhNm934b2bbsjyYyDByw2wEZhJyAPBIDJk6IF2IvR4kq1lNyAtFs4EXVO2tqBATvj1nahqHMqUlrTsOGY96XioXl1YKnqeM1g5lREqoxR3M8HsWm2kCSsGyirIWLEaOYYEvWcKNBmkhW410XEYfb3hrg-H7irLe0_4OICdV1FyY-AsjbzO7mO17BENQg x-devcenter-metaData: categoryTagArray: - name: Payments description: For more information about Payments transactions, see the [Payments Developer Guides Page](https://developer.cybersource.com/docs/cybs/en-us/payments/developer/ctv/rest/payments/payments-intro.html). - name: Transaction_Batches description: For more information about Transaction Batches, see the [Transaction Batches Developer Guides Page](https://developer.cybersource.com/api/developer-guides/dita-transaction-batch-api/txn_batch_api_intro.html). - name: eCheck_AVS description: For more information about eCheck Account Validation, see the [Account Validation Developer Guides Page](https://...). - name: Token_Management description: For more information about the Token Management Service (TMS) see the [Token Management Developer Guide](https://developer.cybersource.com/docs/cybs/en-us/tms/developer/all/rest/tms/tms-overview.html) - name: Flex_Microform description: Microform Integration is a lightweight acceptance solution designed to safely and securely accept payment information within your web page. Microform is designed to a be embedded seamlessly within your existing webpage experience, blending in with your existing acceptance form. This solution allows for the replacement of sensitive payment date with a transient token (a short lived reference to the sensitive payment data). For more information about Flex Microform transactions, see the [Flex Developer Guides Page](https://developer.cybersource.com/api/developer-guides/dita-flex/SAFlexibleToken.html). For examples on how to integrate Flex Microform within your webpage please see our [GitHub Flex Samples](https://github.com/CyberSource?q=flex&type=&language=) - name: Flex_API description: For more information about Flex API, please see [Developer Guides Page](https://developer.cybersource.com/docs/cybs/en-us/digital-accept-flex/developer/all/rest/digital-accept-flex/da-flex-api-intro.html). - name: Risk_Management - name: Payouts description: 'For more information about Payouts, see the [Payouts Developer Guides Page](https://developer.cybersource.com/api/developer-guides/dita-payouts/Introduction.html). ' - name: Installments description: For more information about Installment contact Cybersource Support. For Visa installments contact VISthroughCYBS@visa.com - name: Recurring_Billing_Subscriptions description: For more information about Recurring Billing, see the [Recurring Billing Developer Guide](https://developer.cybersource.com/docs/cybs/en-us/recurring-billing/developer/all/rest/recurring-billing-developer/recur-bill-services-intro.html). - name: BIN_Lookup description: 'The BIN Lookup Service is a versatile business tool that provides card network agnostic solution designed to ensure frictionless transaction experience by utilizing up-to-date Bank Identification Number (BIN) attributes sourced from multiple global and regional data sources. This service helps to improve authorization rates by helping to route transactions to the best-suited card network, minimizes fraud through card detail verification and aids in regulatory compliance by identifying card properties. The service is flexible and provides businesses with a flexible choice of inputs such as primary account number (PAN), network token from major networks (such as Visa, American Express, Discover and regional networks) which includes device PAN (DPAN), and all types of tokens generated via CyberSource Token Management Service (TMS). Currently, the range of available credentials is contingent on the networks enabled for the business entity. Therefore, the network information specified in this documentation is illustrative and subject to personalized offerings for each reseller or merchant. ' - name: Transaction_Details description: For more information about Transaction Details, see the [Transaction Details Developer Guides Page](https://developer.cybersource.com/api/developer-guides/dita-txn-search-details-rest-api-dev-guide-102718/txn_details_api.html). - name: Transaction_Search description: For more information about Transaction Search, see the [Transaction Search Developer Guides Page](https://developer.cybersource.com/api/developer-guides/dita-txn-search-details-rest-api-dev-guide-102718/txn_search_api.html). - name: Reporting description: 'For more information about Reporting, see the [Reporting Developer Guides Page](https://developer.cybersource.com/api/developer-guides/dita-reporting-rest-api-dev-guide-102718/reporting_api.html). ' - name: Secure_File_Share description: For more information about Secure File Share, see the [Secure File Share Developer Guides Page](https://developer.cybersource.com/api/developer-guides/dita-secure-file-share-api-102718/secure_file_share_api_intro.html). - name: Invoices description: For more information about Invoicing, see the [Invoicing Developer Guide](https://developer.cybersource.com/docs/cybs/en-us/invoicing/developer/all/rest/invoicing/Introduction.html). - name: Pay_By_Link description: For more information about PayByLink, see the [PBL Developer Guide](https://developer.cybersource.com/docs/cybs/en-us/boarding/user/all/rest/boarding/templates-matrix-intro/templates-matrix-pay-by-link.html). - name: User_Management description: For more information about User Management, see the [User Managment Developer Guides Page](https://developer.cybersource.com/api/developer-guides/dita-user-management-api-102718/user_management_api_intro.html). - name: Value_Added_Service - name: Fee Service - name: Merchant_Boarding description: For more information about Merchant Boarding, please see [Developer Guides Page](https://developer.cybersource.com/api/developer-guides/Merchant-Boarding-API_ditamap/Merchant-Boarding-API.html). - name: Webhooks description: For more information about Webhooks, please see [Developer Guides Page](https://developer.cybersource.com/docs/cybs/en-us/webhooks/implementation/all/rest/webhooks/wh-fg-intro.html). - name: Unified_Checkout description: For more information about Unified Checkout, see the [Unified Checkout Developer Guides Page](https://developer.cybersource.com/docs/cybs/en-us/unified-checkout/developer/all/rest/unified-checkout/uc-intro.html). - name: Unified_Checkoutv1 description: For more information about Unified Checkout, see the [Unified Checkout Developer Guides Page](https://developer.cybersource.com/docs/cybs/en-us/unified-checkout/developer/all/rest/unified-checkout/uc-about-guide.html). - name: Account_Updater description: For more information about Account Updater, see the [Account Updater Developer Guides Page:](https://developer.cybersource.com/library/documentation/dev_guides/Account_Updater_UG/html/index.html). - name: Visa_Bank_Account_Validation description: 'The Visa Bank Account Validation Service is a new standalone product designed to validate customer''s routing and bank account number combination for ACH transactions. Merchant''s can use this standalone product to validate their customer''s account prior to processing an ACH transaction against the customer''s account to comply with Nacha''s account validation mandate for Web-debit transactions. ' - name: Currency Conversion description: 'Empower global transactions with transparency and choice. Our Dynamic Currency Conversion API lets merchants offer customers the option to pay in their home currency at checkout, delivering real-time exchange rates and clear cost disclosure. **Key Benefits:** - **Enhanced Customer Experience:** Provide clarity and convenience for international shoppers. - **Real-Time Rates:** Accurate currency conversion with all the data required for acquirers and their merchants to maintain compliance with card network rules. - **Seamless Integration:** Flexible API endpoints for rate lookup, authorization, and capture. - **Regulatory Compliance:** Provides the data required for acquirers and merchants to meet and maintain card scheme requirements for disclosure and consent. Ideal for merchants and payment partners seeking to boost trust and conversion in cross-border commerce. **Key Features:** - **Rate Lookup:** Retrieves the most up-to-date exchange rate for eligible cards before authorization. - **Currency Choice:** Enables the merchant to offer customers the option to select between the merchant''s local currency and their card''s billing currency. - **Compliance:** Ensures merchants have the data required to adhere to card network regulations; exchange rates, markups, etc. **Supported Scenarios:** - Dynamic Currency Conversion when cardholder''s billing currency differs from merchant''s pricing currency. - Merchant and acquirer must support the cardholder''s billing currency. **Core API Endpoints:** **Currency Conversion API** Returns eligibility and exchange rate details, including: - exchangeRate - marginRate - reconciliationId and Id (for subsequent payment requests) **Payment Authorization with DCC*** POST /pts/v2/payments Required fields include: - orderInformation.amountDetails.currency - orderInformation.amountDetails.originalCurrency - orderInformation.amountDetails.originalAmount - orderInformation.amountDetails.exchangeRate - currencyConversion.indicator (e.g., 1 = Converted, 2 = Nonconvertible, 3 = Declined) **Capture with DCC*** POST /pts/v2/payments/{id}/captures Maps from original authorization and includes original and converted amounts. **Refund with DCC*** POST /pts/v2/captures/{id}/refunds Maps from original authorization and includes original and converted amounts. *Note: DCC is only supported on select processors. Contact your acquirer or account manager for more information. **Compliance & Disclosure:** Merchants must: - Adhere to card network rules for Dynamic Currency Conversion (DCC) transactions. - Display the converted amount, exchange rate, and markup percentage and other required disclosures. - Obtain explicit cardholder consent before applying DCC. - Work with your acquirer to obtain full set of compliance requirements. For more information, see the [Currency Conversion Developer Guide](https://developer.cybersource.com/docs/cybs/en-us/currency-conversion/developer/all/rest/currency-conversion/cc-intro.html). ' - name: Intelligent_Commerce_Connect description: For more information about Intelligent Commerce Cross Network Service API, please see [Developer Guides](https://developer.cybersource.com/docs/cybs/en-us/intelligent-commerce/developer/all/rest/intelligent-commerce/intelligent-commerce-about-guide.html).