openapi: 3.1.1 info: title: Payments Gateway API description: Common payments API version: 1.27.7 license: name: Apache 2.0 url: https://www.apache.org/licenses/LICENSE-2.0 servers: - url: /api/v1 security: - oAuth2ClientCredentials: [] tags: - name: Authorization description: OAuth2.0 Authorization Framework externalDocs: url: https://tools.ietf.org/html/rfc6749#section-4.4.2 - name: Checkout description: Checkout endpoints for using the CM hosted checkout. externalDocs: url: https://developers.cm.com/payments-platform - name: Bancontact description: Bancontact is a popular payment method in Belgium, allowing customers to pay online using their Bancontact card. externalDocs: url: https://www.bancontact.com/en - name: Cards description: Creditcard payments allow customers to pay online using their credit or debit cards. externalDocs: url: https://www.visa.com/ and https://www.mastercard.com/ - name: iDEAL description: iDEAL is a widely used online payment method in the Netherlands, allowing customers to pay directly from their bank accounts. externalDocs: url: https://www.ideal.nl/en/ - name: iDEAL-QR description: iDEAL-QR codes can be used to initiate a predefined iDEAL transaction by scanning the QR-code by a Consumer mobile device. externalDocs: url: https://www.ideal.nl/en/ - name: in3 description: in3 is a Dutch BNPL method where customers pay in 3 installments, at no extra cost and without having to register with the Bureau Krediet Registratie (BKR). in3 guarantees settlement after receiving the first installment. externalDocs: url: https://payin3.eu/ - name: Klarna description: Klarna is a payment method that allows customers to pay for their purchases later, either in installments or at a later date. externalDocs: url: https://www.klarna.com/ - name: Paymentmethods description: Payment methods available in the API. - name: PayPal description: PayPal is a widely used online payment system that allows customers to pay for goods and services using their PayPal account. externalDocs: url: https://www.paypal.com/ - name: Riverty description: Riverty is a payment method that allows customers to pay for their purchases in installments or at a later date. externalDocs: url: https://docs.riverty.com/bnpl - name: ApplePay description: Apple Pay is a mobile payment and digital wallet service that allows customers to make secure, contactless payments in stores (using NFC), within iOS apps, and on the web. externalDocs: url: https://www.apple.com/apple-pay/ - name: GooglePay description: Google Pay is a fast and secure payment method that allows customers to pay online using their Google account. externalDocs: url: https://developers.google.com/pay/api/web/overview - name: BelfiusPayButton description: Belfius Pay Button is a Belgian online payment method that allows customers to pay securely using their Belfius bank account. externalDocs: url: https://www.belfius.be/ - name: SepaDirectDebit description: SEPA Direct Debit allows merchants to collect payments directly from customer bank accounts within the SEPA zone. externalDocs: url: https://www.europeanpaymentscouncil.eu/ - name: BankTransfer description: Bank Transfer payment method allows customers to pay by transferring funds directly from their bank account. - name: Utils description: Utility endpoints for health checks and other functionalities. paths: /authorization/oauth2/token: post: tags: - Authorization summary: Obtain access token using OAuth 2.0. externalDocs: description: RFC 6749 - The OAuth2.0 Authorization Framework url: https://tools.ietf.org/html/rfc6749#section-4.4.2 operationId: obtainAccessTokenViaClientCredentialsGrant requestBody: required: true content: application/x-www-form-urlencoded: schema: type: object required: - client_id - client_secret - grant_type properties: client_id: description: Client id that was provided for authentication type: string example: 904c5037ad72ec1d1d99a5d14e04d7e0 client_secret: description: Client secret that was provided for authentication type: string example: 543d8f8b5d6b4c6a8643bbf9a3ba0682 grant_type: description: Authorization grant type. The only supported value is `client_credentials`. type: string enum: - client_credentials example: client_credentials responses: '200': description: |- Successful Response. [The OAuth2.0 Authorization Framework - 5.1. Successful Response](https://tools.ietf.org/html/rfc6749#section-5.1) The authorization server issues an access token and optional refresh token, and constructs the response by adding the following parameters to the entity-body of the HTTP response with a 200 (OK) status code. content: application/json: schema: title: Token description: |- Access Token [The OAuth2.0 Authorization Framework - 1.4. Access Token](https://tools.ietf.org/html/rfc6749#section-1.4) Access tokens are credentials used to access protected resources. An access token is a string representing an authorization issued to the client. The string is usually opaque to the client. Tokens represent specific scopes and durations of access, granted by the resource owner, and enforced by the resource server and authorization server. type: object required: - access_token - token_type properties: access_token: description: The access token issued by the authorization server. type: string example: 2YotnFZFEjr1zCsicMWpAA token_type: description: The type of the token issued as described in [Section 7.1](https://tools.ietf.org/html/rfc6749#section-7.1). Value is case insensitive. type: string example: Bearer expires_in: description: The lifetime in seconds of the access token. For example, the value "3600" denotes that the access token will expire in one hour from the time the response was generated. If omitted, the authorization server SHOULD provide the expiration time via other means or document the default value. type: integer example: 3600 4XX: description: |- Error Response. [The OAuth2.0 Authorization Framework - 5.2. Error Response](https://tools.ietf.org/html/rfc6749#section-5.2) The authorization server responds with an HTTP 400 (Bad Request) status code (unless specified otherwise) and includes the following parameters with the response. Values for the "error" parameter **MUST NOT** include characters outside the set %x20-21 / %x23-5B / %x5D-7E. content: application/json: schema: title: TokenError description: '[The OAuth2.0 Authorization Framework - 5.2. Error Response](https://tools.ietf.org/html/rfc6749#section-5.2)' type: object required: - error properties: error: description: |- A single ASCII [[USASCII](https://tools.ietf.org/html/rfc6749#ref-USASCII)] error code from the following: | Error Code| Description | |-----------|-------------| | invalid_request | The request is missing a required parameter, includes an unsupported parameter value (other than grant type), repeats a parameter, includes multiple credentials, utilizes more than one mechanism for authenticating the client, or is otherwise malformed. | | invalid_client | Client authentication failed (e.g., unknown client, no client authentication included, or unsupported authentication method). The authorization server MAY return an HTTP 401 (Unauthorized) status code to indicate which HTTP authentication schemes are supported. If the client attempted to authenticate via the "Authorization" request header field, the authorization server MUST respond with an HTTP 401 (Unauthorized) status code and include the "WWW-Authenticate" response header field matching the authentication scheme used by the client. | | invalid_grant | The provided authorization grant (e.g., authorization code, resource owner credentials) or refresh token is invalid, expired, revoked, does not match the redirection URI used in the authorization request, or was issued to another client. | | unauthorized_client | The authenticated client is not authorized to use this authorization grant type. | | unsupported_grant_type | The authorization grant type is not supported by the authorization server. | | invalid_scope | The requested scope is invalid, unknown, malformed, or exceeds the scope granted by the resource owner. | type: string enum: - invalid_request - invalid_client - invalid_grant - unauthorized_client - unsupported_grant_type - invalid_scope example: invalid_client error_description: description: Human-readable ASCII [[USASCII](https://tools.ietf.org/html/rfc6749#ref-USASCII)] text providing additional information, used to assist the client developer in understanding the error that occurred. type: string example: Client authentication failed error_uri: description: A URI identifying a human-readable web page with information about the error, used to provide the client developer with additional information about the error. type: string example: http://example.test/client_authentication_failed.html security: [] /paymentmethods: get: summary: Get an array of all available payment methods. description: |- Receive a list of all available payments which can be rendered in your checkout. Note: this list is **not** context aware and is only a list of your activated payment methods. tags: - Paymentmethods operationId: getPaymentMethods responses: '200': description: List of available payment methods for the authenticated merchant. headers: Digest: $ref: '#/components/headers/Digest' content: application/json: schema: type: array minItems: 0 items: type: string example: - bancontact - creditcard - ideal 4XX: $ref: '#/components/responses/UserError' 5XX: $ref: '#/components/responses/InternalError' /paymentmethods/bancontact/v1/transactions: post: operationId: createBancontactTransaction description: |- Create a new Bancontact transaction (order), that can be paid later with card details or via QR code / Intent URL. The **id** field in the response can be used in future calls as **transactionId** to reference this transaction. tags: - Bancontact summary: Create transaction requestBody: description: Create Bancontact Transaction required: true content: application/json: schema: $ref: '#/components/schemas/BancontactPayment' responses: '201': description: |- The bancontact transaction was created successfully. To handle the payment further one could: - On mobile devices redirect the user to the intent URL provided in the response. - On desktop devices display the QR code provided in the response. - If the user is not able to use the intent URL or QR code, they can continue by entering their card data manually. headers: Digest: $ref: '#/components/headers/Digest' content: application/json: schema: $ref: '#/components/schemas/BanContactTransaction' examples: openBancontact: $ref: '#/components/examples/openBancontact' 4XX: $ref: '#/components/responses/UserError' 5XX: $ref: '#/components/responses/InternalError' /paymentmethods/bancontact/v1/transactions/{transactionId}/start: post: operationId: startBancontactCardPayment description: |- Start a Bancontact Card payment transaction. Use the **id** field from the former made create transaction response. This endpoint is used to start a Bancontact payment with card details that are encrypted using the CSE library. The `encryptedCardDetails` object must be created using the CSE library, which is available at `/paymentmethods/library/cse`. The `browserInformation` object is required to provide information about the consumer's browser. If the user is not able to use the intent URL or QR code, they can continue by entering their card data manually. summary: Start payment with encrypted card details tags: - Bancontact parameters: - $ref: '#/components/parameters/TransactionId' requestBody: description: Start Bancontact Card transaction with encrypted card details required: true content: application/json: schema: $ref: '#/components/schemas/BancontactCardPayment' responses: '201': description: |- The Bancontact Card transaction was started successfully. The response contains the transaction details and a redirect URL to which the consumer needs to be redirected. headers: Digest: $ref: '#/components/headers/Digest' content: application/json: schema: $ref: '#/components/schemas/BancontactStartTransaction' examples: openBancontact: $ref: '#/components/examples/openBancontactCard' 4XX: $ref: '#/components/responses/UserError' 5XX: $ref: '#/components/responses/InternalError' /paymentmethods/bancontact/v1/transactions/{transactionId}: get: operationId: getBancontactTransaction description: Retrieve details for an existing Bancontact transaction, either created in the API directly or through a Bancontact QR-code. This endpoint must be used to obtain the status for a transaction. tags: - Bancontact summary: Fetch transaction parameters: - $ref: '#/components/parameters/TransactionId' responses: '200': description: Returns the transaction details for the Bancontact transaction. content: application/json: schema: $ref: '#/components/schemas/BanContactFetchTransaction' examples: openBancontact: $ref: '#/components/examples/openBancontact' successBancontact: $ref: '#/components/examples/successBancontact' cancelledBancontact: $ref: '#/components/examples/cancelledBancontact' 4XX: $ref: '#/components/responses/UserError' 5XX: $ref: '#/components/responses/InternalError' /paymentmethods/bancontact/v1/transactions/{transactionId}/payments/{paymentId}/refunds: post: description: |- Create a refund for an existing Bancontact payment. The **paymentId** parameter can be obtained from: - The `id` field in the response of the "Start payment with encrypted card details" endpoint. - The `payment` field in the webhook payload sent when the payment was made via QR code or intent URL. The **amount** field is required and must be a positive value, which is the amount to be refunded. tags: - Bancontact summary: Create refund for payment operationId: createBancontactPaymentRefund parameters: - $ref: '#/components/parameters/TransactionId' - $ref: '#/components/parameters/PaymentId' requestBody: description: Create Bancontact Payment Refund required: true content: application/json: schema: $ref: '#/components/schemas/Refund' responses: '201': description: The Bancontact payment refund was created successfully. The response contains the refund details. headers: Digest: $ref: '#/components/headers/Digest' content: application/json: schema: $ref: '#/components/schemas/BanContactFetchTransaction' examples: successBancontactRefund: $ref: '#/components/examples/successBancontactRefund' 4XX: $ref: '#/components/responses/UserError' 5XX: $ref: '#/components/responses/InternalError' get: description: Retrieve refunds for an existing Bancontact payment. tags: - Bancontact operationId: getBancontactRefunds summary: Fetch payment refunds parameters: - $ref: '#/components/parameters/TransactionId' - $ref: '#/components/parameters/PaymentId' responses: '200': description: Details of all refunds belonging to a Bancontact payment. content: application/json: schema: $ref: '#/components/schemas/BancontactRefundsResponse' 4XX: $ref: '#/components/responses/UserError' 5XX: $ref: '#/components/responses/InternalError' /paymentmethods/bancontact/v1/transactions/{transactionId}/refunds: post: deprecated: true description: |- **This endpoint is deprecated and will be removed in a future release. Please use the payment refunds endpoint instead, indicating the specific payment to be refunded.** Create a refund for an existing Bancontact transaction. The **transactionId** parameter must be the ID of the transaction to be refunded. The **amount** field is required and must be a positive value, which is the amount to be refunded. tags: - Bancontact summary: Create refund operationId: createBancontactRefund parameters: - $ref: '#/components/parameters/TransactionId' requestBody: description: Create Bancontact Refund required: true content: application/json: schema: $ref: '#/components/schemas/Refund' responses: '201': description: The Bancontact refund was created successfully. The response contains the refund details. headers: Digest: $ref: '#/components/headers/Digest' content: application/json: schema: $ref: '#/components/schemas/BanContactFetchTransaction' examples: successBancontactRefund: $ref: '#/components/examples/successBancontactRefund' 4XX: $ref: '#/components/responses/UserError' 5XX: $ref: '#/components/responses/InternalError' get: deprecated: true tags: - Bancontact operationId: getBancontactRefunds summary: Fetch refunds description: |- **This endpoint is deprecated and will be removed in a future release. Please use the get payment refunds endpoint instead, indicating the specific payment for which you wish to list the refunds.** Retrieve refunds for an existing Bancontact transaction. parameters: - $ref: '#/components/parameters/TransactionId' responses: '200': $ref: '#/components/responses/RefundsResponse' 4XX: $ref: '#/components/responses/UserError' 5XX: $ref: '#/components/responses/InternalError' /paymentmethods/bancontact/v1/transactions/{transactionId}/payments: get: tags: - Bancontact operationId: getBancontactTransactionPayments description: Retrieve a paginated list of payments for an existing BanContact transaction (order). summary: Fetch payments parameters: - $ref: '#/components/parameters/TransactionId' - name: pageSize in: query schema: $ref: '#/components/schemas/PaymentPageSize' - name: after in: query schema: $ref: '#/components/schemas/After' responses: '200': description: Paginated list of payments for a BanContact transaction was returned successfully. content: application/json: schema: $ref: '#/components/schemas/BancontactPaymentsPaginated' examples: bancontactTransactionPayments: $ref: '#/components/examples/bancontactTransactionPaymentsPaginated' 4XX: $ref: '#/components/responses/UserError' 5XX: $ref: '#/components/responses/InternalError' /paymentmethods/google-pay/v1/transactions/initialize: post: description: Initialize a Google Pay transaction. Returns a details object containing configuration needed to render the Google Pay button on the checkout UI. tags: - GooglePay summary: Initialize Google Pay payment operationId: initializeGooglePayTransaction requestBody: description: Initialize Google Pay Transaction required: true content: application/json: schema: allOf: - type: object required: - reference - amount - description - language properties: reference: $ref: '#/components/schemas/Reference' description: description: | Description of the underlying value or reason of the payment. Ultimately appears on the payment confirmation (statement and confirmation screen). type: string maxLength: 255 example: Order at yourdomain.tld amount: $ref: '#/components/schemas/Amount' currency: $ref: '#/components/schemas/Currency' expiresAt: allOf: - $ref: '#/components/schemas/Datetime' - description: ISO 8601 date and time. If left empty, the value defaults to 10 mins. language: $ref: '#/components/schemas/Language' consumer: $ref: '#/components/schemas/Consumer' webhooks: $ref: '#/components/schemas/TransactionWebhooks' - $ref: '#/components/schemas/ReturnUrl' examples: initializeGooglePay: summary: Initialize Google Pay value: reference: 20240612104501 amount: 1200 currency: EUR description: Order at yourdomain.tld expiresAt: '2025-06-24T12:48:21Z' language: nl consumer: email: consumer@example.com returnUrl: https://tradename.tld/shop/return/?purchase=PO1234567 responses: '201': $ref: '#/components/responses/GooglePayTransaction' 4XX: $ref: '#/components/responses/UserError' 5XX: $ref: '#/components/responses/InternalError' /paymentmethods/google-pay/v1/transactions/{transactionId}/authorize: post: description: When the shopper selected a card, the details are returned as payment data by the Google Pay client. The paymentData.paymentMethodData must be sent here as-is. tags: - GooglePay summary: Authorize Google Pay payment operationId: authorizeGooglePayTransaction parameters: - $ref: '#/components/parameters/TransactionId' requestBody: description: Authorize Google Pay Transaction required: true content: application/json: schema: $ref: '#/components/schemas/AuthorizeGooglePayPayment' examples: authorizeGooglePay: $ref: '#/components/examples/authorizeGooglePay' responses: '201': $ref: '#/components/responses/GooglePayTransaction' 4XX: $ref: '#/components/responses/UserError' 5XX: $ref: '#/components/responses/InternalError' /paymentmethods/google-pay/v1/transactions/{transactionId}: get: description: Retrieve details for an existing Google Pay transaction. This endpoint must be used to obtain the status for a transaction. tags: - GooglePay summary: Fetch Google Pay payment operationId: getGooglePayTransaction parameters: - $ref: '#/components/parameters/TransactionId' responses: '200': $ref: '#/components/responses/GooglePayTransaction' 4XX: $ref: '#/components/responses/UserError' 5XX: $ref: '#/components/responses/InternalError' /paymentmethods/google-pay/v1/transactions/{transactionId}/refunds: post: tags: - GooglePay summary: Create Google Pay refund operationId: createGooglePaymentRefund description: |- Create a refund for an existing Google Pay transaction. The **transactionId** parameter must be the ID of the transaction to be refunded. The **amount** field is required and must be a positive value, which is the amount to be refunded. parameters: - $ref: '#/components/parameters/TransactionId' requestBody: content: application/json: schema: $ref: '#/components/schemas/Refund' responses: '201': $ref: '#/components/responses/GooglePayTransaction' 4XX: $ref: '#/components/responses/UserError' 5XX: $ref: '#/components/responses/InternalError' get: tags: - GooglePay operationId: getGooglePayTransactionRefunds summary: Fetch Google Pay transaction refunds description: Retrieve refunds for an existing Google Pay transaction. parameters: - $ref: '#/components/parameters/TransactionId' responses: '200': $ref: '#/components/responses/RefundsResponse' 4XX: $ref: '#/components/responses/UserError' 5XX: $ref: '#/components/responses/InternalError' /paymentmethods/creditcard/v1/transactions: post: operationId: createCardTransaction description: Create a new Credit Card payment transaction. After receiving a HTTP status 201 you have to redirect the consumer to the url given in **action.redirect.url**. The **id** field in the response can be used in future calls as **transactionId** to reference this transaction (for instance in a refund). tags: - Cards summary: Create payment requestBody: description: Create Card Transaction required: true content: application/json: schema: $ref: '#/components/schemas/CardPayment' examples: standard: $ref: '#/components/examples/standard' responses: '201': description: Cards transaction details headers: Digest: $ref: '#/components/headers/Digest' content: application/json: schema: $ref: '#/components/schemas/CreditCardTransaction' examples: open: $ref: '#/components/examples/openCard' 4XX: $ref: '#/components/responses/UserError' 5XX: $ref: '#/components/responses/InternalError' /paymentmethods/creditcard/v1/transactions/{transactionId}: get: operationId: getCardTransaction description: Retrieve details for an existing Credit Card transaction. This endpoint must be used to obtain the status for a transaction. tags: - Cards summary: Fetch payment parameters: - $ref: '#/components/parameters/TransactionId' responses: '200': description: 'The Card transaction was created successfully. The response contains the transaction details and a redirect URL to complete the payment.description: The user input was incorrect or something illegal was attempted (eg. using a service without having that service configured for the user, or not being authorized)' content: application/json: schema: $ref: '#/components/schemas/CreditCardTransaction' examples: open: $ref: '#/components/examples/openCard' success: $ref: '#/components/examples/successCard' refund: $ref: '#/components/examples/refundCard' 4XX: $ref: '#/components/responses/UserError' 5XX: $ref: '#/components/responses/InternalError' /paymentmethods/creditcard/v1/transactions/{transactionId}/refunds: post: operationId: refundCardPayment description: Create a refund for a previous made Credit Card transaction. A payment must be fully processed, captured and there shouldn't exist a chargeback to be able to refund them. tags: - Cards summary: Refund payment parameters: - $ref: '#/components/parameters/TransactionId' requestBody: content: application/json: schema: $ref: '#/components/schemas/Refund' responses: '201': description: The Credit Card refund was created successfully. content: application/json: schema: $ref: '#/components/schemas/CreditCardTransaction' examples: refund: $ref: '#/components/examples/refundCard' 4XX: $ref: '#/components/responses/UserError' 5XX: $ref: '#/components/responses/InternalError' get: operationId: getCardRefunds description: Retrieve refunds for an existing Credit Card transaction. tags: - Cards summary: Fetch refunds parameters: - $ref: '#/components/parameters/TransactionId' responses: '200': $ref: '#/components/responses/RefundsResponse' 4XX: $ref: '#/components/responses/UserError' 5XX: $ref: '#/components/responses/InternalError' /paymentmethods/ideal/v1/transactions: post: operationId: createIdealTransaction description: Create a new iDEAL payment transaction. After receiving a HTTP status 201 you have to redirect the consumer to the url given in **action.redirect.url**. The **id** field in the response can be used in future calls as **transactionId** to reference this transaction (for instance in a refund). tags: - iDEAL summary: Create payment requestBody: description: Create iDEAL Transaction required: true content: application/json: schema: $ref: '#/components/schemas/IdealPayment' examples: standardIdeal: $ref: '#/components/examples/standardIdeal' webhook: $ref: '#/components/examples/webhook' fastCheckout: $ref: '#/components/examples/fastCheckout' payFastRequestUserToken: $ref: '#/components/examples/payFastRequestUserToken' payFast: $ref: '#/components/examples/payFast' responses: '201': description: The iDEAL transaction was created successfully. The response contains the transaction details and a redirect URL to complete the payment. headers: Digest: $ref: '#/components/headers/Digest' content: application/json: schema: $ref: '#/components/schemas/IdealTransaction' examples: openIdeal: $ref: '#/components/examples/openIdeal' successIdeal: $ref: '#/components/examples/successIdeal' iDEALCheckout: $ref: '#/components/examples/iDEALCheckout' payFast: $ref: '#/components/examples/examples-payFast' 4XX: $ref: '#/components/responses/UserError' 5XX: $ref: '#/components/responses/InternalError' /paymentmethods/ideal/v1/transactions/{transactionId}: get: operationId: getIdealTransaction description: Retrieve details for an existing iDEAL transaction, either created in de API directly or through an iDEAL QR-code. This endpoint must be used to obtain the status for a transaction. tags: - iDEAL summary: Fetch payment parameters: - $ref: '#/components/parameters/TransactionId' responses: '200': description: Returns the transaction details for the iDEAL transaction. content: application/json: schema: $ref: '#/components/schemas/IdealTransaction' examples: openIdeal: $ref: '#/components/examples/openIdeal' successIdeal: $ref: '#/components/examples/successIdeal' refundIdeal: $ref: '#/components/examples/refundIdeal' iDEALCheckout: $ref: '#/components/examples/iDEALCheckout' payFast: $ref: '#/components/examples/examples-payFast' 4XX: $ref: '#/components/responses/UserError' 5XX: $ref: '#/components/responses/InternalError' /paymentmethods/ideal/v1/transactions/{transactionId}/refunds: post: operationId: refundIdealPayment description: Create a refund for a previous made iDEAL transaction. A payment must be fully processed to be able to refund them. This may take up to 30 minutes. tags: - iDEAL summary: Refund iDEAL payment parameters: - $ref: '#/components/parameters/TransactionId' requestBody: content: application/json: schema: $ref: '#/components/schemas/Refund' responses: '201': description: The iDEAL refund was created successfully. content: application/json: schema: $ref: '#/components/schemas/IdealTransaction' examples: refund: $ref: '#/components/examples/refundIdeal' 4XX: $ref: '#/components/responses/UserError' 5XX: $ref: '#/components/responses/InternalError' get: operationId: getIdealRefunds tags: - iDEAL summary: Fetch refunds description: Retrieve refunds for an iDEAL transaction. parameters: - $ref: '#/components/parameters/TransactionId' responses: '200': $ref: '#/components/responses/RefundsResponse' 4XX: $ref: '#/components/responses/UserError' 5XX: $ref: '#/components/responses/InternalError' /paymentmethods/ideal/v1/transactions/{transactionId}/userToken: get: operationId: getIdealPayFastUserToken parameters: - $ref: '#/components/parameters/TransactionId' summary: Fetch Pay Fast User Token description: |- Retrieve the Pay Fast User Token that was generated by iDEAL for this transaction. If no User Token was requested, the payment is not successful, the Consumer did not give consent, or the User Token is not yet available, a 404 status is returned. tags: - iDEAL responses: '200': description: iDEAL Pay Fast User Token which must be used to create an iDEAL Pay Fast payment. content: application/json: schema: $ref: '#/components/schemas/responses_IdealPayFastUserToken' 4XX: $ref: '#/components/responses/UserError' 5XX: $ref: '#/components/responses/InternalError' /paymentmethods/ideal/v1/debtors/{userToken}/preferences: get: operationId: getIdealPayFastUserPreferences summary: Get consumers preferred bank account description: Get the preferred bank account of the consumer by userToken before creating a Pay Fast transaction. The response must be rendered in the checkout so that the consumer can review it. If a 404 is returned a new token can be requested. parameters: - $ref: '#/components/parameters/IdealPayFastUserToken' tags: - iDEAL responses: '200': description: The preferenced bank account of the consumer. content: application/json: schema: $ref: '#/components/schemas/IDealPayFastDebtorPreferences' 4XX: $ref: '#/components/responses/UserError' 5XX: $ref: '#/components/responses/InternalError' /paymentmethods/idealqr/v1/transactions: post: description: | **Reusable** idealQR transactions only have `open` and `expired` statuses. When a payment for an idealQR transaction is successful, the transaction status `successful` is updated only for non-reusable idealQR transactions, reusable ones will remain `open` until they expire. tags: - iDEAL-QR summary: Create iDEAL QR payment operationId: createIdealQRTransaction requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/IdealQRPayment' examples: standardIdealQRNonReusable: $ref: '#/components/examples/standardIdealQRNonReusable' standardIdealQRReusable: $ref: '#/components/examples/standardIdealQRReusable' standardIdealQRNonReusableWithWebhook: $ref: '#/components/examples/standardIdealQRNonReusableWithWebhook' standardIdealQRSingleReturnUrl: $ref: '#/components/examples/standardIdealQRSingleReturnUrl' standardIdealQRChangeableAmount: $ref: '#/components/examples/standardIdealQRWithChangeableAmount' responses: '201': description: The iDEAL-QR transaction was created successfully. The response contains the transaction details and a redirect URL to complete the payment. headers: Digest: $ref: '#/components/headers/Digest' content: application/json: schema: $ref: '#/components/schemas/IdealQRTransaction' examples: openIdeal: $ref: '#/components/examples/openIdealQR' successIdeal: $ref: '#/components/examples/successIdealQR' openIdealQRWithChangeableAmount: $ref: '#/components/examples/openIdealQRWithChangeableAmount' 4XX: $ref: '#/components/responses/UserError' 5XX: $ref: '#/components/responses/InternalError' /paymentmethods/idealqr/v1/transactions/{transactionId}: get: tags: - iDEAL-QR operationId: getIdealQRTransaction description: Retrieve details for an existing iDEAL-QR transaction. This endpoint must be used to obtain the status for a transaction. summary: Fetch payment parameters: - $ref: '#/components/parameters/TransactionId' responses: '200': description: Returns the transaction details for the iDEAL transaction. content: application/json: schema: $ref: '#/components/schemas/IdealQRTransaction' examples: openIdeal: $ref: '#/components/examples/openIdealQR' successIdeal: $ref: '#/components/examples/successIdealQR' openIdealQRWithChangeableAmount: $ref: '#/components/examples/openIdealQRWithChangeableAmount' 4XX: $ref: '#/components/responses/UserError' 5XX: $ref: '#/components/responses/InternalError' /paymentmethods/idealqr/v1/transactions/{transactionId}/payments: get: tags: - iDEAL-QR operationId: getIdealQRTransactionPayments description: Retrieve a paginated list of payment details for an existing iDEAL-QR transaction. summary: Fetch payments details parameters: - $ref: '#/components/parameters/TransactionId' - name: pageSize in: query schema: $ref: '#/components/schemas/PaymentPageSize' - name: after in: query schema: $ref: '#/components/schemas/After' responses: '200': description: Paginated list of payments for an iDEAL-QR transaction was returned successfully. content: application/json: schema: $ref: '#/components/schemas/IdealQRTransactionPaymentsPaginated' examples: iDEALQRtransactionWithPayments: $ref: '#/components/examples/IdealQRTransactionPaymentsPaginated' 4XX: $ref: '#/components/responses/UserError' 5XX: $ref: '#/components/responses/InternalError' /paymentmethods/idealqr/v1/transactions/{transactionId}/payments/{paymentId}: get: tags: - iDEAL-QR description: Retrieve details from a payment for an existing iDEAL-QR transaction. summary: Fetch payment details operationId: getIdealQRPayment parameters: - $ref: '#/components/parameters/TransactionId' - $ref: '#/components/parameters/PaymentId' responses: '200': description: Details of a payment for an iDEAL-QR transaction were returned successfully. content: application/json: schema: $ref: '#/components/schemas/responses-IdealQRPayment' examples: successIdealQRPaymentsPaginated: $ref: '#/components/examples/IdealQRTransactionPaymentsPaginated' 4XX: $ref: '#/components/responses/UserError' 5XX: $ref: '#/components/responses/InternalError' /paymentmethods/idealqr/v1/transactions/{transactionId}/summary: get: tags: - iDEAL-QR description: Retrieve a summary that contains one or more payments for an iDEAL-QR transaction. summary: Fetch payments summary operationId: getIdealQRTransactionPaymentsSummary parameters: - $ref: '#/components/parameters/TransactionId' - name: status in: query description: The status for a transaction. schema: type: string enum: - OPEN - SUCCESS - FAILURE - CANCELLED - EXPIRED responses: '200': description: Summary of one or more payments for an iDEAL-QR transaction was returned successfully. content: application/json: schema: $ref: '#/components/schemas/IdealQRTransactionPaymentsSummary' examples: successIdealQRPaymentsSummaryByStatus: $ref: '#/components/examples/IDEALQRPaymentsSummaryByStatus' successIdealQRAllPaymentsSummary: $ref: '#/components/examples/IDEALQRAllPaymentsSummary' 4XX: $ref: '#/components/responses/UserError' 5XX: $ref: '#/components/responses/InternalError' /paymentmethods/idealqr/v1/transactions/{transactionId}/payments/{paymentId}/refunds: post: tags: - iDEAL-QR description: Creates a refund for payment that belongs to an iDEAL-QR transaction. summary: Refund a payment for an iDEAL-QR transaction operationId: createIdealQRTransactionRefund parameters: - $ref: '#/components/parameters/TransactionId' - $ref: '#/components/parameters/PaymentId' requestBody: content: application/json: schema: $ref: '#/components/schemas/Refund' responses: '201': description: iDEAL-QR refund transaction was created successfully. The response contains the created transaction details. content: application/json: schema: $ref: '#/components/schemas/IdealQRPaymentRefund' 4XX: $ref: '#/components/responses/UserError' 5XX: $ref: '#/components/responses/InternalError' get: tags: - iDEAL-QR operationId: getIdealQRTransactionRefunds summary: Fetch refunds for payment description: Retrieve details of one or more refunds for an iDEAL transaction were returned successfully. parameters: - $ref: '#/components/parameters/TransactionId' - $ref: '#/components/parameters/PaymentId' responses: '200': $ref: '#/components/responses/RefundsResponse' 4XX: $ref: '#/components/responses/UserError' 5XX: $ref: '#/components/responses/InternalError' /paymentmethods/idealqr/v1/bulk: post: description: | Allows the creation of iDEAL-QR transactions in **bulk**. Since this is a bulk operation the following rules apply: - if at least 1 qr code was created, the response status of the request wil be 200 (status 200 does not guarantee that all the Qr codes have been created, see the response body to get more details over which qr codes have been successfully created) - In case none of the qr codes was created, if there is any scenario where the reason might be a request with a client error, then a status 400 wil be given as response code, otherwise a status 500 will be retrieved. - The client always has to check the response body to see which Qr codes have been created successfully. tags: - iDEAL-QR operationId: bulkCreateIdealQROrdersController summary: Create iDEAL-QR in bulk requestBody: required: true content: application/json: schema: allOf: - type: object required: - qrcodes properties: defaults: $ref: '#/components/schemas/IdealQRPayment' qrcodes: $ref: '#/components/schemas/BulkQrCodesRequest' examples: bulkOperationQRCodes: $ref: '#/components/examples/bulkOperationQRCodes' responses: '200': $ref: '#/components/responses/BulkIdealQRResponse' '400': $ref: '#/components/responses/BulkIdealQRResponse' '500': $ref: '#/components/responses/BulkIdealQRResponse' /paymentmethods/in3/v1/transactions: post: operationId: createIn3Transaction description: Create a new in3 payment transaction. After receiving a HTTP status 201 you have to redirect the consumer to the url given in **action.redirect.url**. The **id** field in the response can be used in future calls as **transactionId** to reference this transaction (for instance in a refund). tags: - in3 summary: Create payment requestBody: description: Create in3 Transaction required: true content: application/json: schema: $ref: '#/components/schemas/In3Payment' examples: basicTransaction: $ref: '#/components/examples/BasicTransaction' basicTransactionNoItems: $ref: '#/components/examples/BasicTransactionNoItems' responses: '201': $ref: '#/components/responses/IN3Transaction' 4XX: $ref: '#/components/responses/UserError' 5XX: $ref: '#/components/responses/InternalError' /paymentmethods/in3/v1/transactions/{transactionId}: get: operationId: getIn3Transaction summary: Fetch payment tags: - in3 description: Retrieve details for an existing in3 transaction. parameters: - $ref: '#/components/parameters/TransactionId' responses: '200': $ref: '#/components/responses/IN3Transaction' 4XX: $ref: '#/components/responses/UserError' 5XX: $ref: '#/components/responses/InternalError' /paymentmethods/in3/v1/transactions/{transactionId}/refunds: post: operationId: createIn3Refund summary: Create refund tags: - in3 description: |- Create a refund for an existing in3 transaction. The **transactionId** parameter must be the ID of the transaction to be refunded. The **amount** field is required and must be a positive value, which is the amount to be refunded. parameters: - $ref: '#/components/parameters/TransactionId' requestBody: content: application/json: schema: $ref: '#/components/schemas/Refund' responses: '201': $ref: '#/components/responses/RefundResponse' description: in3 refund was created successfully. 4XX: $ref: '#/components/responses/UserError' 5XX: $ref: '#/components/responses/InternalError' get: operationId: getIn3Refunds tags: - in3 summary: Fetch refunds description: Retrieve refunds for an existing in3 transaction. parameters: - $ref: '#/components/parameters/TransactionId' responses: '200': $ref: '#/components/responses/RefundsResponse' 4XX: $ref: '#/components/responses/UserError' 5XX: $ref: '#/components/responses/InternalError' /paymentmethods/klarna/v1/transactions: post: operationId: createKlarnaTransaction description: |- Create a new Klarna payment transaction. The **id** field in the response can be used in future calls as **transactionId** to reference this transaction (for instance in a refund). This endpoint is used to create a Klarna payment transaction. The `webhooks` object is optional and can be used to specify webhooks for the transaction. tags: - Klarna summary: Create payment requestBody: description: Create Klarna Transaction required: true content: application/json: schema: $ref: '#/components/schemas/KlarnaPayment' examples: standardKlarna: $ref: '#/components/examples/standardKlarna' responses: '201': description: The Klarna transaction was created successfully. headers: Digest: $ref: '#/components/headers/Digest' content: application/json: schema: $ref: '#/components/schemas/KlarnaTransaction' examples: standardKlarna: $ref: '#/components/examples/openKlarnaTransaction' 4XX: $ref: '#/components/responses/UserError' 5XX: $ref: '#/components/responses/InternalError' /paymentmethods/klarna/v1/transactions/{transactionId}: get: operationId: getKlarnaTransaction description: Retrieve details for an existing Klarna transaction. This endpoint must be used to obtain the status for a transaction. summary: Fetch payment tags: - Klarna parameters: - $ref: '#/components/parameters/TransactionId' responses: '200': description: Returns the transaction details for the Klarna transaction. content: application/json: schema: $ref: '#/components/schemas/KlarnaTransaction' examples: standardKlarna: $ref: '#/components/examples/successKlarnaTransaction' 4XX: $ref: '#/components/responses/UserError' 5XX: $ref: '#/components/responses/InternalError' /paymentmethods/klarna/v1/transactions/{transactionId}/refunds: post: operationId: createKlarnaRefund description: |- Create a refund for an existing Klarna transaction. The **transactionId** parameter must be the ID of the transaction to be refunded. The **amount** field is required and must be a positive value, which is the amount to be refunded. summary: Create refund tags: - Klarna parameters: - $ref: '#/components/parameters/TransactionId' requestBody: content: application/json: schema: $ref: '#/components/schemas/Refund' responses: '201': description: The Klarna refund was created successfully. The response contains the refund details. content: application/json: schema: $ref: '#/components/schemas/KlarnaTransaction' examples: successKlarnaRefund: $ref: '#/components/examples/successKlarnaRefund' 4XX: $ref: '#/components/responses/UserError' 5XX: $ref: '#/components/responses/InternalError' get: operationId: getKlarnaRefunds tags: - Klarna summary: Fetch refunds description: Retrieve refunds for an existing Klarna transaction. parameters: - $ref: '#/components/parameters/TransactionId' responses: '200': $ref: '#/components/responses/RefundsResponse' 4XX: $ref: '#/components/responses/UserError' 5XX: $ref: '#/components/responses/InternalError' /paymentmethods/apple-pay/v1/transactions/initialize: post: description: | Initialize an Apple Pay transaction. It returns a "details" object that contains the necessary data to render the Apple Pay button. tags: - ApplePay summary: Initialize Apple Pay payment operationId: initializeApplePayTransaction requestBody: description: Initialize Apple Pay Transaction content: application/json: schema: $ref: '#/components/schemas/AppleInitialize' examples: standardAppleInitialize: $ref: '#/components/examples/StandardAppleInitialize' responses: '201': $ref: '#/components/responses/ApplePayTransaction' 4XX: $ref: '#/components/responses/UserError' 5XX: $ref: '#/components/responses/InternalError' callbacks: TransactionWebhook: '{$request.body#/webhookUrl}': post: summary: Webhook callback requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/TransactionWebhook' responses: 2XX: description: Webhook successful. default: description: Webhook failed. Will be retried several times. /paymentmethods/apple-pay/v1/transactions/{transactionId}/start: post: description: | Generates a valid payment session by interacting with Apple Pay servers. tags: - ApplePay summary: Start Apple Pay transaction operationId: startApplePayTransaction parameters: - name: transactionId in: path required: true schema: $ref: '#/components/schemas/Uuid' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/StartApplePayPayment' responses: '201': $ref: '#/components/responses/StartApplePayPayment' 4XX: $ref: '#/components/responses/UserError' 5XX: $ref: '#/components/responses/InternalError' callbacks: TransactionWebhook: '{$request.body#/webhookUrl}': post: summary: Webhook callback requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/TransactionWebhook' responses: 2XX: description: Webhook successful. default: description: Webhook failed. Will be retried several times. /paymentmethods/apple-pay/v1/transactions/{transactionId}/authorize: post: description: | When the shopper selected a card, the details are returned as payment data by the Apple Pay client. The request data is passed on as-is received from the Apple device in the on authorize payment event. Modifications are not allowed. tags: - ApplePay summary: Authorize Apple Pay transaction operationId: authorizeApplePayTransaction parameters: - name: transactionId in: path required: true schema: $ref: '#/components/schemas/Uuid' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/AuthorizeApplePayPayment' responses: '201': $ref: '#/components/responses/AuthorizedApplePayTransaction' 4XX: $ref: '#/components/responses/UserError' 5XX: $ref: '#/components/responses/InternalError' callbacks: TransactionWebhook: '{$request.body#/webhookUrl}': post: summary: Webhook callback requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/TransactionWebhook' responses: 2XX: description: Webhook successful. default: description: Webhook failed. Will be retried several times. /paymentmethods/apple-pay/v1/transactions/{transactionId}: get: summary: Get Apple Pay transaction tags: - ApplePay operationId: getApplePayTransaction parameters: - name: transactionId in: path required: true schema: $ref: '#/components/schemas/Uuid' responses: '200': $ref: '#/components/responses/ApplePayTransaction' 4XX: $ref: '#/components/responses/UserError' 5XX: $ref: '#/components/responses/InternalError' /paymentmethods/apple-pay/v1/transactions/{transactionId}/refunds: post: summary: Create Apple Pay refund tags: - ApplePay operationId: createApplePaymentRefund parameters: - name: transactionId in: path required: true schema: $ref: '#/components/schemas/Uuid' requestBody: content: application/json: schema: $ref: '#/components/schemas/Refund' responses: '201': $ref: '#/components/responses/ApplePayTransaction' 4XX: $ref: '#/components/responses/UserError' 5XX: $ref: '#/components/responses/InternalError' get: summary: Get Apple Pay refund tags: - ApplePay operationId: getApplePayTransactionRefunds parameters: - name: transactionId in: path required: true schema: $ref: '#/components/schemas/Uuid' responses: '200': $ref: '#/components/responses/RefundsResponse' 4XX: $ref: '#/components/responses/UserError' 5XX: $ref: '#/components/responses/InternalError' /paymentmethods/belfiuspaybutton/v1/transactions: post: operationId: createBelfiusPayButtonTransaction description: Create a new Belfius Pay Button payment transaction. The **id** field in the response can be used in future calls as **transactionId** to reference this transaction (for instance in a refund). tags: - BelfiusPayButton summary: Create payment requestBody: description: Create Belfius Pay Button Transaction required: true content: application/json: schema: $ref: '#/components/schemas/BelfiusPayButtonPayment' responses: '201': description: |- The Belfius Pay Button transaction was created successfully. The consumer should be redirected to the URL provided in the response to complete the payment. headers: Digest: $ref: '#/components/headers/Digest' content: application/json: schema: $ref: '#/components/schemas/BelfiusPayButtonTransaction' examples: openBelfiusPayButton: $ref: '#/components/examples/openBelfiusPayButton' 4XX: $ref: '#/components/responses/UserError' 5XX: $ref: '#/components/responses/InternalError' /paymentmethods/belfiuspaybutton/v1/transactions/{transactionId}: get: operationId: getBelfiusPayButtonTransaction description: Retrieve details for an existing Belfius Pay Button transaction. This endpoint must be used to obtain the status for a transaction. tags: - BelfiusPayButton summary: Fetch payment parameters: - $ref: '#/components/parameters/TransactionId' responses: '200': description: Returns the transaction details for the Belfius Pay Button transaction. content: application/json: schema: $ref: '#/components/schemas/BelfiusPayButtonTransaction' examples: openBelfiusPayButton: $ref: '#/components/examples/openBelfiusPayButton' successBelfiusPayButton: $ref: '#/components/examples/successBelfiusPayButton' 4XX: $ref: '#/components/responses/UserError' 5XX: $ref: '#/components/responses/InternalError' /paymentmethods/belfiuspaybutton/v1/transactions/{transactionId}/refunds: post: description: |- Create a refund for an existing Belfius Pay Button transaction. The **transactionId** parameter must be the ID of the transaction to be refunded. The **amount** field is required and must be a positive value, which is the amount to be refunded. tags: - BelfiusPayButton summary: Create refund operationId: createBelfiusPayButtonRefund parameters: - $ref: '#/components/parameters/TransactionId' requestBody: description: Create Belfius Pay Button Refund required: true content: application/json: schema: $ref: '#/components/schemas/Refund' responses: '201': description: The Belfius Pay Button refund was created successfully. The response contains the refund details. headers: Digest: $ref: '#/components/headers/Digest' content: application/json: schema: $ref: '#/components/schemas/BelfiusPayButtonTransaction' 4XX: $ref: '#/components/responses/UserError' 5XX: $ref: '#/components/responses/InternalError' get: tags: - BelfiusPayButton operationId: getBelfiusPayButtonRefunds summary: Fetch refunds description: Retrieve refunds for an existing Belfius Pay Button transaction. parameters: - $ref: '#/components/parameters/TransactionId' responses: '200': $ref: '#/components/responses/RefundsResponse' 4XX: $ref: '#/components/responses/UserError' 5XX: $ref: '#/components/responses/InternalError' /paymentmethods/banktransfer/v1/transactions: post: operationId: createBankTransferTransaction description: Create a new Bank Transfer payment transaction. The **id** field in the response can be used in future calls as **transactionId** to reference this transaction (for instance in a refund). tags: - BankTransfer summary: Create payment requestBody: description: Create Bank Transfer Transaction required: true content: application/json: schema: $ref: '#/components/schemas/BankTransferPayment' responses: '201': description: |- The Bank Transfer transaction was created successfully. The response contains the transaction details including bank account information for the consumer to complete the payment. headers: Digest: $ref: '#/components/headers/Digest' content: application/json: schema: $ref: '#/components/schemas/BankTransferTransaction' examples: openBankTransfer: $ref: '#/components/examples/openBankTransfer' 4XX: $ref: '#/components/responses/UserError' 5XX: $ref: '#/components/responses/InternalError' /paymentmethods/banktransfer/v1/transactions/{transactionId}: get: operationId: getBankTransferTransaction description: Retrieve details for an existing Bank Transfer transaction. This endpoint must be used to obtain the status for a transaction. tags: - BankTransfer summary: Fetch payment parameters: - $ref: '#/components/parameters/TransactionId' responses: '200': description: Returns the transaction details for the Bank Transfer transaction. content: application/json: schema: $ref: '#/components/schemas/BankTransferTransaction' examples: openBankTransfer: $ref: '#/components/examples/openBankTransfer' successBankTransfer: $ref: '#/components/examples/successBankTransfer' 4XX: $ref: '#/components/responses/UserError' 5XX: $ref: '#/components/responses/InternalError' /paymentmethods/banktransfer/v1/transactions/{transactionId}/refunds: post: description: |- Create a refund for an existing Bank Transfer transaction. The **transactionId** parameter must be the ID of the transaction to be refunded. The **amount** field is required and must be a positive value, which is the amount to be refunded. tags: - BankTransfer summary: Create refund operationId: createBankTransferRefund parameters: - $ref: '#/components/parameters/TransactionId' requestBody: description: Create Bank Transfer Refund required: true content: application/json: schema: $ref: '#/components/schemas/Refund' responses: '201': description: The Bank Transfer refund was created successfully. The response contains the refund details. headers: Digest: $ref: '#/components/headers/Digest' content: application/json: schema: $ref: '#/components/schemas/BankTransferTransaction' 4XX: $ref: '#/components/responses/UserError' 5XX: $ref: '#/components/responses/InternalError' get: tags: - BankTransfer operationId: getBankTransferRefunds summary: Fetch refunds description: Retrieve refunds for an existing Bank Transfer transaction. parameters: - $ref: '#/components/parameters/TransactionId' responses: '200': $ref: '#/components/responses/RefundsResponse' 4XX: $ref: '#/components/responses/UserError' 5XX: $ref: '#/components/responses/InternalError' /paymentmethods/sepadirectdebit/v1/transactions: post: operationId: createSepaDirectDebitTransaction description: Create a new SEPA Direct Debit payment transaction. The **id** field in the response can be used in future calls as **transactionId** to reference this transaction (for instance in a refund). tags: - SepaDirectDebit summary: Create payment requestBody: description: Create SEPA Direct Debit Transaction required: true content: application/json: schema: $ref: '#/components/schemas/SepaDirectDebitPayment' responses: '201': description: |- The SEPA Direct Debit transaction was created successfully. The direct debit will be processed according to SEPA regulations. headers: Digest: $ref: '#/components/headers/Digest' content: application/json: schema: $ref: '#/components/schemas/SepaDirectDebitTransaction' examples: openSepaDirectDebit: $ref: '#/components/examples/openSepaDirectDebit' 4XX: $ref: '#/components/responses/UserError' 5XX: $ref: '#/components/responses/InternalError' /paymentmethods/sepadirectdebit/v1/transactions/{transactionId}: get: operationId: getSepaDirectDebitTransaction description: Retrieve details for an existing SEPA Direct Debit transaction. This endpoint must be used to obtain the status for a transaction. tags: - SepaDirectDebit summary: Fetch payment parameters: - $ref: '#/components/parameters/TransactionId' responses: '200': description: Returns the transaction details for the SEPA Direct Debit transaction. content: application/json: schema: $ref: '#/components/schemas/SepaDirectDebitTransaction' examples: openSepaDirectDebit: $ref: '#/components/examples/openSepaDirectDebit' successSepaDirectDebit: $ref: '#/components/examples/successSepaDirectDebit' 4XX: $ref: '#/components/responses/UserError' 5XX: $ref: '#/components/responses/InternalError' /paymentmethods/sepadirectdebit/v1/transactions/{transactionId}/refunds: post: description: |- Create a refund for an existing SEPA Direct Debit transaction. The **transactionId** parameter must be the ID of the transaction to be refunded. The **amount** field is required and must be a positive value, which is the amount to be refunded. tags: - SepaDirectDebit summary: Create refund operationId: createSepaDirectDebitRefund parameters: - $ref: '#/components/parameters/TransactionId' requestBody: description: Create SEPA Direct Debit Refund required: true content: application/json: schema: $ref: '#/components/schemas/Refund' responses: '201': description: The SEPA Direct Debit refund was created successfully. The response contains the refund details. headers: Digest: $ref: '#/components/headers/Digest' content: application/json: schema: $ref: '#/components/schemas/SepaDirectDebitTransaction' 4XX: $ref: '#/components/responses/UserError' 5XX: $ref: '#/components/responses/InternalError' get: tags: - SepaDirectDebit operationId: getSepaDirectDebitRefunds summary: Fetch refunds description: Retrieve refunds for an existing SEPA Direct Debit transaction. parameters: - $ref: '#/components/parameters/TransactionId' responses: '200': $ref: '#/components/responses/RefundsResponse' 4XX: $ref: '#/components/responses/UserError' 5XX: $ref: '#/components/responses/InternalError' /paymentmethods/creditcard/v2/transactions: post: operationId: createCreditCardTransactionV2 description: |- Create a new Credit Card payment transaction using the v2 API. This version supports enhanced consumer data including billing and shipping addresses for improved fraud prevention. The **clientSideEncryptedCard** must be encrypted using the provided CSE javascript library. The **id** field in the response can be used in future calls as **transactionId** to reference this transaction (for instance in a refund). tags: - Cards summary: Create payment (v2) requestBody: description: Create Card Transaction V2 required: true content: application/json: schema: $ref: '#/components/schemas/CardPaymentV2' responses: '201': description: Cards transaction details headers: Digest: $ref: '#/components/headers/Digest' content: application/json: schema: $ref: '#/components/schemas/CreditCardTransactionV2' examples: open: $ref: '#/components/examples/openCardV2' 4XX: $ref: '#/components/responses/UserError' 5XX: $ref: '#/components/responses/InternalError' /paymentmethods/creditcard/v2/transactions/initialize: post: operationId: initializeCreditCardTransactionV2 description: |- Initialize a Credit Card transaction for 3D Secure authentication preparation. This endpoint is used before the actual payment to set up the authentication flow. After initialization, you can proceed with the payment by calling the create transaction endpoint with the encrypted card details. tags: - Cards summary: Initialize payment for 3DS (v2) requestBody: description: Initialize Card Transaction V2 required: true content: application/json: schema: $ref: '#/components/schemas/CardPaymentInitializeV2' responses: '201': description: Cards transaction initialization details headers: Digest: $ref: '#/components/headers/Digest' content: application/json: schema: $ref: '#/components/schemas/CreditCardTransactionV2' examples: initialized: $ref: '#/components/examples/initializedCardV2' 4XX: $ref: '#/components/responses/UserError' 5XX: $ref: '#/components/responses/InternalError' /paymentmethods/creditcard/v2/transactions/{transactionId}: get: operationId: getCreditCardTransactionV2 description: Retrieve details for an existing Credit Card v2 transaction. This endpoint must be used to obtain the status for a transaction. tags: - Cards summary: Fetch payment (v2) parameters: - $ref: '#/components/parameters/TransactionId' responses: '200': description: The Card transaction details. content: application/json: schema: $ref: '#/components/schemas/CreditCardTransactionV2' examples: open: $ref: '#/components/examples/openCardV2' success: $ref: '#/components/examples/successCardV2' 4XX: $ref: '#/components/responses/UserError' 5XX: $ref: '#/components/responses/InternalError' /paymentmethods/creditcard/v2/transactions/{transactionId}/refunds: post: operationId: createCreditCardRefundV2 description: Create a refund for a previous made Credit Card v2 transaction. A payment must be fully processed, captured and there shouldn't exist a chargeback to be able to refund them. tags: - Cards summary: Create refund (v2) parameters: - $ref: '#/components/parameters/TransactionId' requestBody: description: Create Credit Card Refund V2 required: true content: application/json: schema: $ref: '#/components/schemas/Refund' responses: '201': description: The Credit Card refund was created successfully. headers: Digest: $ref: '#/components/headers/Digest' content: application/json: schema: $ref: '#/components/schemas/CreditCardTransactionV2' 4XX: $ref: '#/components/responses/UserError' 5XX: $ref: '#/components/responses/InternalError' get: operationId: getCreditCardRefundsV2 description: Retrieve refunds for an existing Credit Card v2 transaction. tags: - Cards summary: Fetch refunds (v2) parameters: - $ref: '#/components/parameters/TransactionId' responses: '200': $ref: '#/components/responses/RefundsResponse' 4XX: $ref: '#/components/responses/UserError' 5XX: $ref: '#/components/responses/InternalError' /paymentmethods/paypal/v1/transactions: post: operationId: createPayPalTransaction description: Create a PayPal transaction. After receiving a HTTP status 201 you have to redirect the consumer to the url given in **action.redirect.url**. The **id** field in the response can be used in future calls as **transactionId** to reference this transaction (for instance in a refund). tags: - PayPal summary: Create PayPal payment requestBody: description: Create PayPal Transaction required: true content: application/json: schema: $ref: '#/components/schemas/PayPalPayment' examples: openPayPal: $ref: '#/components/examples/openPayPal' responses: '201': description: The PayPal transaction was created successfully. The response contains the transaction details and a redirect URL to complete the payment. headers: Digest: $ref: '#/components/headers/Digest' content: application/json: schema: $ref: '#/components/schemas/PayPalTransaction' examples: openPayPal: $ref: '#/components/examples/examples-openPayPal' 4XX: $ref: '#/components/responses/UserError' 5XX: $ref: '#/components/responses/InternalError' /paymentmethods/paypal/v1/transactions/{transactionId}: get: operationId: getPayPalTransaction description: Retrieve details for an existing PayPal transaction. This endpoint must be used to obtain the status for a transaction. tags: - PayPal summary: Fetch PayPal payment parameters: - $ref: '#/components/parameters/TransactionId' responses: '200': description: Returns the transaction details for the PayPal transaction. content: application/json: schema: $ref: '#/components/schemas/PayPalTransaction' 4XX: $ref: '#/components/responses/UserError' 5XX: $ref: '#/components/responses/InternalError' /paymentmethods/paypal/v1/transactions/{transactionId}/refunds: post: operationId: createPayPalRefund tags: - PayPal summary: Create PayPal refund description: |- Create a refund for an existing PayPal transaction. The **transactionId** parameter must be the ID of the transaction to be refunded. The **amount** field is required and must be a positive value, which is the amount to be refunded. parameters: - $ref: '#/components/parameters/TransactionId' requestBody: content: application/json: schema: $ref: '#/components/schemas/Refund' responses: '201': description: The PayPal refund was created successfully. content: application/json: schema: $ref: '#/components/schemas/PayPalTransaction' 4XX: $ref: '#/components/responses/UserError' 5XX: $ref: '#/components/responses/InternalError' get: operationId: getPayPalRefunds tags: - PayPal summary: Fetch refunds description: Retrieve refunds for an existing PayPal transaction. parameters: - $ref: '#/components/parameters/TransactionId' responses: '200': $ref: '#/components/responses/RefundsResponse' 4XX: $ref: '#/components/responses/UserError' 5XX: $ref: '#/components/responses/InternalError' /paymentmethods/paypal/v2/transactions: post: operationId: createPayPalV2Transaction description: Create a PayPal transaction. After receiving a HTTP status 201 you have to redirect the consumer to the url given in **action.redirect.url**. The **id** field in the response can be used in future calls as **transactionId** to reference this transaction (for instance in a refund). tags: - PayPal summary: Create PayPal payment requestBody: description: Create PayPal Transaction required: true content: application/json: schema: $ref: '#/components/schemas/PayPalV2Payment' examples: openPayPal: $ref: '#/components/examples/openPayPalV2' responses: '201': description: The PayPal transaction was created successfully. The response contains the transaction details and a redirect URL to complete the payment. headers: Digest: $ref: '#/components/headers/Digest' content: application/json: schema: $ref: '#/components/schemas/PayPalV2Transaction' examples: openPayPal: $ref: '#/components/examples/examples-openPayPalV2' 4XX: $ref: '#/components/responses/UserError' 5XX: $ref: '#/components/responses/InternalError' /paymentmethods/paypal/v2/transactions/{transactionId}: get: operationId: getPayPalV2Transaction description: Retrieve details for an existing PayPal transaction. This endpoint must be used to obtain the status for a transaction. tags: - PayPal summary: Fetch PayPal payment parameters: - $ref: '#/components/parameters/TransactionId' responses: '200': description: Returns the transaction details for the PayPal transaction. content: application/json: schema: $ref: '#/components/schemas/PayPalV2Transaction' 4XX: $ref: '#/components/responses/UserError' 5XX: $ref: '#/components/responses/InternalError' /paymentmethods/paypal/v2/transactions/{transactionId}/refunds: post: operationId: createPayPalV2Refund summary: Create refund tags: - PayPal description: |- Create a refund for an existing PayPal transaction. The **transactionId** parameter must be the ID of the transaction to be refunded. The **amount** field is required and must be a positive value, which is the amount to be refunded. parameters: - $ref: '#/components/parameters/TransactionId' requestBody: content: application/json: schema: $ref: '#/components/schemas/PayPalV2Refund' responses: '201': $ref: '#/components/responses/RefundResponse' description: PayPal refund was created successfully. 4XX: $ref: '#/components/responses/UserError' 5XX: $ref: '#/components/responses/InternalError' get: operationId: getPayPalV2Refunds tags: - PayPal summary: Fetch refunds description: Retrieve refunds for an existing PayPal transaction. parameters: - $ref: '#/components/parameters/TransactionId' responses: '200': $ref: '#/components/responses/RefundsResponse' 4XX: $ref: '#/components/responses/UserError' 5XX: $ref: '#/components/responses/InternalError' /paymentmethods/riverty/v1/transactions: post: operationId: createRivertyTransaction description: Create a Riverty transaction. After receiving a HTTP status 201 you have to redirect the consumer to the url given in **action.redirect.url**. The **id** field in the response can be used in future calls as **transactionId** to reference this transaction (for instance in a capture, cancellation or refund). tags: - Riverty summary: Create Riverty payment requestBody: description: Create Riverty Transaction required: true content: application/json: schema: $ref: '#/components/schemas/RivertyPayment' examples: standardRiverty: $ref: '#/components/examples/standardAuthorization' responses: '201': description: The Riverty transaction was created successfully. The response contains the transaction details and a redirect URL to complete the payment. headers: Digest: $ref: '#/components/headers/Digest' content: application/json: schema: $ref: '#/components/schemas/RivertyTransaction' examples: pendingRiverty: $ref: '#/components/examples/pendingAuthorization' success: $ref: '#/components/examples/successAuthorization' 4XX: $ref: '#/components/responses/UserError' 5XX: $ref: '#/components/responses/InternalError' /paymentmethods/riverty/v1/transactions/{transactionId}: get: operationId: getRivertyTransaction description: Retrieve details for an existing Riverty transaction. This endpoint must be used to obtain the status for a transaction. tags: - Riverty summary: Fetch Riverty payment parameters: - $ref: '#/components/parameters/TransactionId' responses: '200': description: Returns the transaction details for the Riverty transaction. content: application/json: schema: $ref: '#/components/schemas/RivertyTransaction' examples: standardRiverty: $ref: '#/components/examples/successAuthorization' 4XX: $ref: '#/components/responses/UserError' 5XX: $ref: '#/components/responses/InternalError' /paymentmethods/riverty/v1/transactions/{transactionId}/captures: post: operationId: createRivertyCapture description: |- **Important:** This endpoint isn't available for customers who enabled auto capture in their Riverty account. Create a capture for an existing Riverty transaction. The **transactionId** parameter must be the ID of the transaction to be captured. For an amount equal to the full amount of the transaction, **items** is optional, otherwise it has to be provided. The amount cannot exceed the remaining uncaptured amount of the transaction. tags: - Riverty summary: Create a Riverty capture parameters: - $ref: '#/components/parameters/TransactionId' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/requestbodies_RivertyCapture' examples: fullCapture: $ref: '#/components/examples/fullCapture' partialCapture: $ref: '#/components/examples/partialCapture' responses: '201': description: The Riverty capture was created successfully. Money will be transferred to the merchant's account. content: application/json: schema: $ref: '#/components/schemas/RivertyCapture' examples: fullCaptureResponse: $ref: '#/components/examples/examples-fullCapture' partialCaptureResponse: $ref: '#/components/examples/examples-partialCapture' 4XX: $ref: '#/components/responses/UserError' 5XX: $ref: '#/components/responses/InternalError' get: operationId: getRivertyCaptures tags: - Riverty summary: Fetch Riverty transaction captures description: Retrieve captures for an existing Riverty transaction. parameters: - $ref: '#/components/parameters/TransactionId' responses: '200': description: A list of captures for the specified Riverty transaction. content: application/json: schema: $ref: '#/components/schemas/RivertyCaptures' 4XX: $ref: '#/components/responses/UserError' 5XX: $ref: '#/components/responses/InternalError' /paymentmethods/riverty/v1/transactions/{transactionId}/cancellations: post: operationId: createRivertyCancellation description: |- Cancel an existing Riverty transaction. The **transactionId** parameter must be the ID of the transaction to be cancelled. **Important:** A transaction cannot be cancelled if it has already been partially or fully captured. Cancellation is only possible for authorized transactions that have not yet been captured. Leaving the amount field empty will cancel the full amount of the transaction. If an amount is specified, it must be a positive value and not exceed the remaining uncancelled amount of the transaction. tags: - Riverty summary: Cancel an authorization parameters: - $ref: '#/components/parameters/TransactionId' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/RivertyCancellation' examples: fullCancellation: $ref: '#/components/examples/fullCancellation' partialCancellation: $ref: '#/components/examples/partialCancellation' responses: '201': description: The Riverty cancellation was created successfully. Money will be transferred back to the consumers account. content: application/json: schema: $ref: '#/components/schemas/responses_RivertyCancellation' examples: fullCancellation: $ref: '#/components/examples/examples-fullCancellation' partialCancellation: $ref: '#/components/examples/examples-partialCancellation' 4XX: $ref: '#/components/responses/UserError' 5XX: $ref: '#/components/responses/InternalError' /paymentmethods/riverty/v1/transactions/{transactionId}/refunds: post: operationId: createRivertyRefund description: |- Create a refund for a specific capture within an existing Riverty transaction. The **captureId** field is required for transactions with multiple captures, and optional for transactions with a single capture. The **items** field is optional. If omitted, all items of the capture will be refunded. tags: - Riverty summary: Create Riverty refund parameters: - $ref: '#/components/parameters/TransactionId' requestBody: content: application/json: schema: $ref: '#/components/schemas/requestbodies_RivertyRefund' examples: fullRefundSingleCapture: $ref: '#/components/examples/fullRefundSingleCapture' fullRefundMultiCapture: $ref: '#/components/examples/fullRefundMultiCapture' partialRefundSingleCapture: $ref: '#/components/examples/partialRefundSingleCapture' partialRefundMultiCapture: $ref: '#/components/examples/partialRefundMultiCapture' responses: '201': description: The Riverty refund was created successfully. content: application/json: schema: $ref: '#/components/schemas/RivertyRefund' examples: fullRefund: $ref: '#/components/examples/refund' partialRefund: $ref: '#/components/examples/partialRefund' 4XX: $ref: '#/components/responses/UserError' 5XX: $ref: '#/components/responses/InternalError' get: operationId: getRivertyRefunds tags: - Riverty summary: Fetch Riverty transaction refunds description: Retrieve refunds for an existing Riverty transaction. parameters: - $ref: '#/components/parameters/TransactionId' responses: '200': description: A list of refunds for the specified Riverty transaction. content: application/json: schema: $ref: '#/components/schemas/RivertyRefunds' 4XX: $ref: '#/components/responses/UserError' 5XX: $ref: '#/components/responses/InternalError' /health: head: operationId: headHealthCheck security: [] description: Health check status endpoint to check the API's operational status. tags: - Utils summary: Check API health status responses: '200': description: API is operational and healthy '503': description: API is currently fully or partially unavailable. All or some services is/are not working properly. 4XX: $ref: '#/components/responses/UserError' /paymentmethods/library/cse: get: operationId: getCSELibrary tags: - Utils description: | This endpoint is for documentation purposes. When you call this endpoint the response contains an URL specific to your account. This url can be used to access the Client-Side Encryption library. This is a JavaScript library made to be used in the front-end. The library must be used to encrypt the Card Details of your consumer in their browser.The library MUST NOT be cached since the encryption keys are rotated automatically. summary: Get Client-Side Encryption library responses: '200': description: Client side encryption libraries for BanContact and Credit Card transactions headers: Digest: $ref: '#/components/headers/Digest' content: application/json: schema: $ref: '#/components/schemas/ClientSideEncryption' 4XX: $ref: '#/components/responses/UserError' 5XX: $ref: '#/components/responses/InternalError' /paymentmethods/checkout/v1/transactions: post: operationId: createCheckout description: Create a new checkout. After receiving a HTTP status 201 you have to redirect the consumer to the url given in **action.redirect.url**. The **id** field in the response can be used in future calls as **transactionId** to reference this transaction (for instance in a refund). tags: - Checkout summary: Create checkout requestBody: description: Create checkout required: true content: application/json: schema: $ref: '#/components/schemas/CreateCheckout' examples: standardCheckout: $ref: '#/components/examples/standardCheckout' checkoutSinglePaymentmethod: $ref: '#/components/examples/checkoutSinglePaymentmethod' checkoutWithWebhook: $ref: '#/components/examples/standardCheckoutWithWebhook' klarnaCheckout: $ref: '#/components/examples/klarnaCheckout' responses: '201': description: The iDEAL transaction was created successfully. The response contains the transaction details and a redirect URL to complete the payment. headers: Digest: $ref: '#/components/headers/Digest' content: application/json: schema: $ref: '#/components/schemas/responses_CreateCheckout' examples: standardCheckout: $ref: '#/components/examples/examples-standardCheckout' standardCheckoutWithWebhook: $ref: '#/components/examples/examples-standardCheckoutWithWebhook' klarnaCheckout: $ref: '#/components/examples/examples-klarnaCheckout' 4XX: $ref: '#/components/responses/UserError' 5XX: $ref: '#/components/responses/InternalError' /paymentmethods/checkout/v1/transactions/{transactionId}: get: operationId: getCheckout description: Retrieve details for an existing Checkout transaction. This endpoint must be used to obtain the status for a transaction. tags: - Checkout summary: Fetch payment parameters: - $ref: '#/components/parameters/TransactionId' responses: '200': description: The Checkout was created successfully. The response contains the transaction details and a redirect URL to load checkout. content: application/json: schema: allOf: - $ref: '#/components/schemas/responses_CreateCheckout' - $ref: '#/components/schemas/CheckoutPayments' examples: open: $ref: '#/components/examples/examples-standardCheckout' multipleAttempts: $ref: '#/components/examples/standardCheckoutMultipleAttempts' klarnaSuccess: $ref: '#/components/examples/klarnaSuccessCheckout' 4XX: $ref: '#/components/responses/UserError' 5XX: $ref: '#/components/responses/InternalError' /paymentmethods/checkout/v1/transactions/{transactionId}/refunds: post: operationId: createCheckoutRefund description: Create a refund for a previous made Credit Card transaction. A payment must be fully processed, captured and there shouldn't exist a chargeback to be able to refund them. tags: - Checkout summary: Refund payment parameters: - $ref: '#/components/parameters/TransactionId' requestBody: content: application/json: schema: $ref: '#/components/schemas/Refund' responses: '201': description: The Checkout refund was created successfully. content: application/json: schema: allOf: - $ref: '#/components/schemas/responses_CreateCheckout' - $ref: '#/components/schemas/CheckoutPayments' examples: refund: $ref: '#/components/examples/refundCheckout' 4XX: $ref: '#/components/responses/UserError' 5XX: $ref: '#/components/responses/InternalError' get: operationId: getCheckoutRefund tags: - Checkout summary: Fetch checkout refund description: Retrieve refunds for a Checkout transaction. parameters: - $ref: '#/components/parameters/TransactionId' responses: '200': $ref: '#/components/responses/RefundsResponse' 4XX: $ref: '#/components/responses/UserError' 5XX: $ref: '#/components/responses/InternalError' webhooks: transactionEvent: post: operationId: createTransactionEvent summary: Webhook event for a transaction. description: |- Webhook that will be called if requested in the initial create transaction request. Implement this webhook when you want to receive a notification when a given event occurs. This will give you the advantage of not having to poll the payment method specific `GET` endpoint for status updates. tags: - Utils requestBody: description: Transaction event required: true content: application/json: schema: $ref: '#/components/schemas/TransactionEvent' examples: statusChanged: summary: Payment status change event value: transaction: 72149cbf-d4a1-4309-9872-6ec19fa782cc event: STATUS_CHANGE reference: bcbb3733-4d3e-4a4d-9254-1ddb90e6e081 createdAt: '2006-01-02T15:04:05Z' responses: '200': description: The webhook has been received. iDEALQRPaymentEvent: post: operationId: createiDEALQRPaymentEvent summary: Webhook event for a transaction for an iDEAL-QR payment. description: |- Webhook that will be called if requested in the initial create transaction request. Implement this webhook when you want to receive a notification when a given event occurs. This will give you the advantage of not having to poll the payment method specific `GET` endpoint for status updates. tags: - Utils requestBody: description: Transaction event required: true content: application/json: schema: $ref: '#/components/schemas/iDEALQRPaymentEvent' examples: statusChanged: summary: Payment status change event value: transaction: 72149cbf-d4a1-4309-9872-6ec19fa782cc event: QR_PAYMENT_CREATED reference: bcbb3733-4d3e-4a4d-9254-1ddb90e6e081 createdAt: '2006-01-02T15:04:05Z' payment: 193cb243-283a-4760-9c56-8a6444d588b2 responses: '200': description: The webhook has been received. bancontactPaymentEvent: post: operationId: createBancontactPaymentEvent summary: Webhook event for a BanContact payment. description: |- Webhook that will be called if requested in the initial create transaction request. Implement this webhook when you want to receive a notification when a new payment is created for a BanContact order. This will give you the advantage of not having to poll the payment method specific `GET` endpoint for status updates. tags: - Utils requestBody: description: Transaction event required: true content: application/json: schema: $ref: '#/components/schemas/BancontactPaymentEvent' examples: paymentCreated: summary: Payment created event value: transaction: 72149cbf-d4a1-4309-9872-6ec19fa782cc event: PAYMENT_CREATED reference: bcbb3733-4d3e-4a4d-9254-1ddb90e6e081 createdAt: '2006-01-02T15:04:05Z' payment: 193cb243-283a-4760-9c56-8a6444d588b2 responses: '200': description: The webhook has been received. components: securitySchemes: oAuth2ClientCredentials: type: oauth2 description: OAuth 2.0 Client Credentials Grant. flows: clientCredentials: tokenUrl: /api/v1/authorization/oauth2/token scopes: {} headers: Digest: description: Digest of the whole message body. Follow [RFC 3230](https://datatracker.ietf.org/doc/html/rfc3230) for more information. schema: type: string example: sha-256=OWM5MDc3ODYwNzdjYjE5NjU0Y2NjMDM4MzEyYzMxZTA5MTAzMDBjYWM1Y2I1ODM4NTdlMDU2MzhiMzE1ZDhjNw== schemas: Uuid: description: Unique identifier type: string format: uuid minLength: 36 maxLength: 36 example: 8db1e7fa-ba8a-4189-92fd-67a20217443d ReturnUrls: type: object description: |- URLs where the Consumer is redirected to after completing the transaction at its issuing bank or at the chosen payment method. With this object we can redirect consumer to a dedicated page per payment result status. Either this object or the returnUrl field is mandatory. required: - success - cancelled - expired - failed properties: success: type: string format: url maxLength: 2000 example: https://yourdomain.tld/order/payment-success.html cancelled: type: string format: url maxLength: 2000 example: https://yourdomain.tld/order/payment-cancelled.html expired: type: string format: url maxLength: 2000 example: https://yourdomain.tld/order/payment-expired.html failed: type: string format: url maxLength: 2000 example: https://yourdomain.tld/order/payment-failed.html ReturnUrl: description: |- URL where the Consumer is redirected to after completing the transaction at its issuing bank or at the chosen payment method. With this implementation you are responsible to fetch the payment status and incorporated into your site. type: string format: url maxLength: 2000 example: https://yourdomain.tld/order/return?orderID=order123 ReturnURLOneOf: oneOf: - type: object required: - returnUrls properties: returnUrls: $ref: '#/components/schemas/ReturnUrls' - type: object required: - returnUrl properties: returnUrl: $ref: '#/components/schemas/ReturnUrl' Reference: description: The clients identifier. This value will be sent in the webhook payload alongside the ID you receive as part of the response of a transaction. type: string minLength: 1 maxLength: 255 example: '20210623130413' Amount: description: Denomination in the smallest currency subunit, as for example euro cents. type: integer minimum: 1 maximum: 99999999 example: 1200 Currency: description: ISO 4217 currency code. type: string minLength: 3 maxLength: 3 default: EUR example: EUR PaymentWithoutDescriptionExpiresAtLanguageAndWebhooks: allOf: - $ref: '#/components/schemas/ReturnURLOneOf' - type: object required: - reference - amount properties: reference: $ref: '#/components/schemas/Reference' amount: $ref: '#/components/schemas/Amount' currency: $ref: '#/components/schemas/Currency' Language: description: Preferred language for the user interface as ISO 639-1 code. Commonly supported languages are Dutch (nl) and English (en). type: string example: nl minLength: 2 maxLength: 2 PaymentWithoutDescriptionExpiresAtAndWebhooks: allOf: - $ref: '#/components/schemas/PaymentWithoutDescriptionExpiresAtLanguageAndWebhooks' - type: object properties: language: $ref: '#/components/schemas/Language' BaseWebhook: type: object description: A single webhook object consists out of an URL to which we need to send the occurred event together with the event that needs to trigger the webhook call. required: - url - events properties: url: description: The URL the request must be send to. type: string format: url example: https://yourdomain.tld/webhooks?purchaseId=order123 events: description: Type of events that will trigger a webhook. type: array minItems: 1 items: type: string StatusChangeEvent: description: | * `STATUS_CHANGE` - Triggered when the status of a transaction changes. type: string enum: - STATUS_CHANGE example: STATUS_CHANGE RefundStatusEvent: description: | * `REFUND_STATUS` - Triggered when a transaction receives an update on one of its requested refunds. type: string enum: - REFUND_STATUS example: REFUND_STATUS FinalStatusEvent: description: | * `FINALSTATUS` - This value is deprecated and shouldn't be used anymore. Use `STATUS_CHANGE` instead. type: string enum: - FINALSTATUS example: FINALSTATUS TransactionWebhook: allOf: - $ref: '#/components/schemas/BaseWebhook' - type: object properties: events: items: description: | * `STATUS_CHANGE` - Triggered when the status of a transaction changes. * `REFUND_STATUS` - Triggered when a transaction receives an update on one of its requested refunds. * `FINALSTATUS` - This value is deprecated and shouldn't be used anymore. Use `STATUS_CHANGE` instead. oneOf: - $ref: '#/components/schemas/StatusChangeEvent' - $ref: '#/components/schemas/RefundStatusEvent' - $ref: '#/components/schemas/FinalStatusEvent' example: STATUS_CHANGE TransactionWebhooks: description: | Array of webhooks that enables receiving a web request once a given event occurs. We won't do preventive rate-limiting in order to have the highest throughput possible. However, we will honor 429 (Too-many-requests) responses per callback. We use the Retry-After header to retry after a certain period. If the header was not set we use our default exponential delay implementation. type: array items: $ref: '#/components/schemas/TransactionWebhook' example: - url: https://yourdomain.tld/payment-webhooks?purchaseId=order123 events: - STATUS_CHANGE PaymentWithoutDescriptionAndExpiresAt: allOf: - $ref: '#/components/schemas/PaymentWithoutDescriptionExpiresAtAndWebhooks' - type: object properties: webhooks: $ref: '#/components/schemas/TransactionWebhooks' Description: description: Description of the underlying value or reason of the payment. type: string maxLength: 255 example: Order at yourdomain.tld Datetime: type: string format: date-time minLength: 20 example: '2006-01-02T15:04:05Z' description: ISO 8601 date and time. Payment: allOf: - $ref: '#/components/schemas/PaymentWithoutDescriptionAndExpiresAt' - type: object required: - description properties: description: $ref: '#/components/schemas/Description' expiresAt: $ref: '#/components/schemas/Datetime' description: ISO 8601 date and time. If a transaction is not finalized before this time the status becomes **EXPIRED**. Email: description: The email address of the consumer. type: string format: email example: john.doe@email.tld Phone: description: The phonenumber of the consumer (E.164 format). type: string maxLength: 16 example: '+31695613259' GenderlessConsumer: type: object properties: email: $ref: '#/components/schemas/Email' phone: $ref: '#/components/schemas/Phone' dateOfBirth: type: string format: date pattern: ^\d{4}-\d{2}-\d{2}$ example: '1990-05-23' description: Date of birth in ISO 8601 format (YYYY-MM-DD). Gender: description: The consumers gender. type: string format: enum enum: - m - f - 'null' default: null Consumer: allOf: - $ref: '#/components/schemas/GenderlessConsumer' - type: object properties: gender: $ref: '#/components/schemas/Gender' LastName: description: Consumer's last name. type: string maxLength: 35 example: Doe Name: description: Consumer's name. type: object required: - firstName - lastName properties: firstName: description: Consumer's first name. type: string maxLength: 35 example: John lastName: $ref: '#/components/schemas/LastName' middleName: description: Consumer's middle name. type: string maxLength: 35 example: A Country: description: Country of the consumer (ISO-3166) type: string example: NL minLength: 2 maxLength: 2 AddressWithoutMandatoryCountry: type: object description: The consumers address. properties: street: description: The consumers street name. type: string maxLength: 100 example: Rustenburgerlaan houseNumber: description: The consumers house number. type: string maxLength: 35 example: '25' postalCode: description: The consumers postal code. type: string maxLength: 35 example: 2012AL city: description: The consumers city. type: string maxLength: 35 example: Haarlem countryCode: $ref: '#/components/schemas/Country' AddressWithStateAndAdditionalData: allOf: - $ref: '#/components/schemas/AddressWithoutMandatoryCountry' - type: object properties: state: description: The state or province of the consumer's billing address associated with the card used for this purchase. The value must be the country subdivision code (e.g., 'NH') or the official state/province name (e.g., 'Noord Holland') as defined in ISO 3166-2. type: string maxLength: 40 example: Noord-Holland additionalData: description: The consumers house number addition. type: string maxLength: 35 example: Right-hand portal Address: allOf: - $ref: '#/components/schemas/AddressWithStateAndAdditionalData' - type: object required: - countryCode ConsumerBase: allOf: - $ref: '#/components/schemas/Consumer' - type: object properties: name: $ref: '#/components/schemas/Name' address: $ref: '#/components/schemas/Address' businessName: description: The consumers company name. type: string maxLength: 35 example: CM BancontactPayment: allOf: - $ref: '#/components/schemas/Payment' - type: object required: - language - consumer properties: expiresAt: allOf: - $ref: '#/components/schemas/Datetime' - description: ISO 8601 date and time. If a transaction is not finalized before this time the status becomes EXPIRED. If left empty, the value defaults to 1 hour. webhooks: $ref: '#/components/schemas/TransactionWebhooks' consumer: allOf: - $ref: '#/components/schemas/ConsumerBase' - type: object required: - email - address properties: address: allOf: - $ref: '#/components/schemas/Address' - type: object required: - countryCode TransactionId: description: ID received in the POST transaction response root object, which can be used in up following calls like refunds or cancellations as transactionId. type: string format: uuid minLength: 36 maxLength: 36 example: 8db1e7fa-ba8a-4189-92fd-67a20217443d StatusOpen: description: The transaction is open and can be paid. type: string format: enum enum: - OPEN example: OPEN StatusSuccess: description: The transaction has been successfully paid. type: string format: enum enum: - SUCCESS example: SUCCESS TransactionStatus: type: string description: The status of the transaction. format: enum oneOf: - $ref: '#/components/schemas/StatusOpen' - $ref: '#/components/schemas/StatusSuccess' TransactionWithoutOrderIdLanguageRefundsCreatedAtAndExpiresAt: allOf: - $ref: '#/components/schemas/ReturnURLOneOf' - type: object required: - id - reference - amount - currency - status - description properties: id: $ref: '#/components/schemas/TransactionId' reference: $ref: '#/components/schemas/Reference' amount: $ref: '#/components/schemas/Amount' currency: $ref: '#/components/schemas/Currency' status: $ref: '#/components/schemas/TransactionStatus' webhooks: $ref: '#/components/schemas/TransactionWebhooks' description: $ref: '#/components/schemas/Description' TransactionWithoutOrderIdLanguageRefundsAndExpiresAt: allOf: - $ref: '#/components/schemas/TransactionWithoutOrderIdLanguageRefundsCreatedAtAndExpiresAt' - type: object required: - createdAt properties: createdAt: $ref: '#/components/schemas/Datetime' description: ISO 8601 date and time when the transaction was created. Refunds: description: Details of refunds for a transaction type: object required: - refundedAmount - refundedPendingAmount properties: refundedAmount: description: Amount in the smallest currency subunit, as for example euro cents, that has already been refunded. type: integer minimum: 0 maximum: 99999999 example: 300 refundedPendingAmount: description: Amount in the smallest currency subunit, as for example euro cents, that has been requested to be refunded. type: integer minimum: 1 maximum: 99999999 example: 100 TransactionWithoutOrderId: allOf: - $ref: '#/components/schemas/TransactionWithoutOrderIdLanguageRefundsAndExpiresAt' - type: object required: - language - expiresAt properties: language: $ref: '#/components/schemas/Language' expiresAt: $ref: '#/components/schemas/Datetime' description: ISO 8601 date and time. If a transaction is not finalized before this time the status becomes **EXPIRED**. refunds: $ref: '#/components/schemas/Refunds' Transaction: allOf: - $ref: '#/components/schemas/TransactionWithoutOrderId' - type: object required: - orderId properties: orderId: allOf: - deprecated: true - $ref: '#/components/schemas/Uuid' StatusAuthorized: description: The transaction has been authorized. type: string format: enum enum: - AUTHORIZED example: AUTHORIZED StatusCancelled: description: The transaction has been cancelled by the consumer. type: string format: enum enum: - CANCELLED example: CANCELLED StatusExpired: description: The transaction has expired. type: string format: enum enum: - EXPIRED example: EXPIRED StatusFailure: description: The transaction has failed. type: string format: enum enum: - FAILURE example: FAILURE QRCodeAction: type: object required: - url description: | Action to be performed by the consumer to complete the payment. This action is only available when a payment using the card details was not started. properties: url: description: URL to QR code image to be scanned by consumer to perform the payment. Unavailable when a payment using the card details was started. type: string format: url example: https://qrbackend.tld/images/213981209381209390821.png IntentURLAction: type: object required: - url description: | Action to be performed by the consumer to complete the payment. This action is only available when a payment using the card details was not started. properties: url: description: Intent URL which can be opened by the BanContact by Payconic application on mobile devices. Unavailable when a payment using the card details was started. type: string format: url example: https://docdata.tld/pay?order=123 BancontactAction: type: object description: Next action to be performed by the merchant (or consumer) to complete the payment. required: - qrcode - intent properties: qrcode: $ref: '#/components/schemas/QRCodeAction' intent: $ref: '#/components/schemas/IntentURLAction' BanContactTransaction: allOf: - $ref: '#/components/schemas/Transaction' - type: object required: - country - action - status properties: status: description: The status of the transaction. oneOf: - $ref: '#/components/schemas/StatusAuthorized' - $ref: '#/components/schemas/StatusCancelled' - $ref: '#/components/schemas/StatusExpired' - $ref: '#/components/schemas/StatusFailure' country: $ref: '#/components/schemas/Country' action: $ref: '#/components/schemas/BancontactAction' ShopperIP: type: string minLength: 1 maxLength: 39 description: IPv4 or IPv6 address for the consumer example: 1.1.1.1 BrowserInformation: type: object required: - shopperIp - accept - userAgent properties: shopperIp: $ref: '#/components/schemas/ShopperIP' accept: type: string description: content-type accepted by the client browser example: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 userAgent: type: string description: User-Agent of the consumers browser. example: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36 Edge/18.18363 EncryptedCardDetails: type: object required: - data properties: data: type: string description: | The card data that need to be encrypted (cardHolderName, cardNumber, expiryMonth, expiryYear, securityCode). Use the library from `/paymentmethods/library/cse`. This contains a JS library with an exported function called `cseEncrypt`. `let encrypted = cseEncrypt(cardHolderName, cardNumber, expiryMonth, expiryYear, securityCode);` BancontactCardPayment: allOf: - type: object required: - browserInformation - encryptedCardDetails properties: browserInformation: $ref: '#/components/schemas/BrowserInformation' encryptedCardDetails: $ref: '#/components/schemas/EncryptedCardDetails' RedirectAction: description: URL where consumer should be redirected to by the merchant to perform the payment. type: object required: - url properties: url: description: URL where consumer should be redirected to by the merchant to perform the payment. type: string format: url example: https://issuer.tld/ideal/start?trxid=213981209381209390821&random=wreq0dq90vgq0ew923123 BancontactCardAction: type: object description: Next action to be performed by the merchant (or consumer) to complete the payment. required: - redirect properties: redirect: $ref: '#/components/schemas/RedirectAction' BancontactStartTransaction: type: object required: - id - action properties: id: $ref: '#/components/schemas/TransactionId' action: $ref: '#/components/schemas/BancontactCardAction' BanContactFetchTransaction: allOf: - $ref: '#/components/schemas/Transaction' - type: object required: - country - action - status properties: status: description: The status of the transaction. oneOf: - $ref: '#/components/schemas/StatusAuthorized' - $ref: '#/components/schemas/StatusCancelled' - $ref: '#/components/schemas/StatusExpired' - $ref: '#/components/schemas/StatusFailure' country: $ref: '#/components/schemas/Country' action: type: object description: Next action to be performed by the merchant (or consumer) to complete the payment. properties: qrcode: $ref: '#/components/schemas/QRCodeAction' intent: $ref: '#/components/schemas/IntentURLAction' redirect: $ref: '#/components/schemas/RedirectAction' RefundReason: description: | The description for the refund for administrative purpose only. This reason will be visible in the portal. type: string example: Refund required by consumer. maxLength: 255 RefundStatus: description: | * `SUCCESS` - Refund has succeeded. * `PENDING` - Refund is waiting to be processed. * `FAILURE` - Refund has failed. * `CANCELLED` - Refund has been cancelled. type: string enum: - SUCCESS - PENDING - FAILURE - CANCELLED example: SUCCESS RefundDetails: description: Details of a refund. type: object required: - id - transactionId - amount - reason - status - created - updated properties: id: $ref: '#/components/schemas/Uuid' transactionId: $ref: '#/components/schemas/Uuid' amount: $ref: '#/components/schemas/Amount' reason: $ref: '#/components/schemas/RefundReason' status: $ref: '#/components/schemas/RefundStatus' created: $ref: '#/components/schemas/Datetime' updated: $ref: '#/components/schemas/Datetime' RefundDetailsWithPaymentID: allOf: - $ref: '#/components/schemas/RefundDetails' - type: object required: - paymentId properties: paymentId: $ref: '#/components/schemas/Uuid' description: Unique identifier for the payment that is being refunded. BancontactRefundsResponse: type: object required: - refunds properties: refunds: type: array items: $ref: '#/components/schemas/RefundDetailsWithPaymentID' Refund: description: Refund an already successfully processed payment. type: object properties: amount: $ref: '#/components/schemas/Amount' description: | Denomination in the smallest currency subunit, as for example euro cents. If empty, the refund amount will be the remaining available amount of the transaction (i.e., total payment amount minus already refunded amounts minus the amounts of the pending refund requests). reason: $ref: '#/components/schemas/RefundReason' PaymentPageSize: description: The number of elements to be returned in the response type: integer minimum: 10 maximum: 100 example: 20 After: allOf: - $ref: '#/components/schemas/Datetime' - description: Return the elements that were created after this date - example: '2022-10-13T14:21:30.478935Z' responses_BancontactPayment: type: object required: - id - orderId - status - paidAmount - createdAt - expiresAt properties: id: $ref: '#/components/schemas/Uuid' orderId: $ref: '#/components/schemas/Uuid' status: description: The status of the payment. allOf: - $ref: '#/components/schemas/StatusOpen' - $ref: '#/components/schemas/StatusSuccess' - $ref: '#/components/schemas/StatusCancelled' - $ref: '#/components/schemas/StatusExpired' - $ref: '#/components/schemas/StatusFailure' paidAmount: allOf: - $ref: '#/components/schemas/Amount' - description: Amount paid in the smallest currency subunit, as for example euro cents. createdAt: $ref: '#/components/schemas/Datetime' expiresAt: $ref: '#/components/schemas/Datetime' BancontactPaymentsPaginated: type: object required: - total - pageSize - payments properties: total: description: The total number of payments that the order has type: integer example: 6 pageSize: $ref: '#/components/schemas/PaymentPageSize' payments: type: array items: allOf: - $ref: '#/components/schemas/responses_BancontactPayment' AuthorizeGooglePayPayment: description: The paymentData.paymentMethodData returned by Google Pay that must be sent as-is to the Payment System type: object properties: description: description: Google Pay payment description type: string example: Visa •••• 1111 info: type: object properties: cardDetails: type: string example: '1111' cardNetwork: type: string example: VISA tokenizationData: type: object properties: token: type: string example: '{"signature":"MEUCIQDefdlz6PJ6ELqh58JUES8DmVAfCVChP/wd3fm7QfhLIgIgP+xZdKCoL8Wv+smlTHyrtxLmAw4jTZcCU+Oqjj7K0zs\u003d","intermediateSigningKey":{"signedKey":"{\"keyValue\":\"MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEi6ylxFPyYnSNpkQNP11SdTvsf/muVEqEGxy7Zf30mUeh+BEmBzHbrBd4p+ECtOS6kPNnnW8UGWzb7dE8x+L5Fg\\u003d\\u003d\",\"keyExpiration\":\"1683363703676\"}","signatures":["MEUCIC6nmOCKBgprc0iwBumuYe1eEva1i5hPQ4jWIl+Mo2U9AiEAxSx1bEGER3atvKdts9cVlfnFP4jGLsXQnR1iRG4iWSI\u003d"]},"protocolVersion":"ECv2","signedMessage":"{\"encryptedMessage\":\"XlK/Qpht8bL2cX4RKz75B1izE/DFWZEFippx/rJhkLOa+II1uVp+djl1bg8jjly9n5ifHIff/awY2esu9MXiUAmFh5qI6Mkygcf0FDyApf+nbZGFGNJO5ycx+I5BnwvD0dDcD/cT0A0dEczSmlpvHQpbZJWyECADnwCQnaYdJxeGBFBQIZnjwvqg3m5XxDsEppYnlPEroCSOVtKW4n3nzxttzhyhNhfHDAB4O1fn2cLPg/C1QEPEJIpCAnYN5Qt1rG4G97g5LVANYKnZM09Wa1e7oJA8RNutAmQRgQaxAnhcPe1mnsiI6qBrParnmZjWFWSIFO79sm6WNNaDno0mv/ApUYGYNfIy/MrjkFo3AGjy01lyQsJ3jN7V5E5BFlQ88aF7D1Ha9monCKXfagDS4ly/Q4lP3B0PN0TfxfMD2IhdLsIZexA0Rq44tWkR7yqO3WegE1zSSZ7mCseVFXGwwG+JMT3hmoAYxYAZyXvpEq5nQVdz8n0+VEoVZFrmCi38/YcEq3ZCFd/Nu+CcDCFH51YVNyjrW8X7GuzfqJjNGfiPBob58bgsHwpSgAtInBgHt+NtGbk4Nhlous02AWwDs3Y8pvyPWkdRAPkfNitf1Up80qc\\u003d","ephemeralPublicKey":"BEL9y1u7hBWJ621PemcPJg5w+FFhijBKcD/BfGrOtk5W4ZMKzFgcgSQEoNgU1ytAD9iirXl0u4RjzMNPMCyehOo\\u003d","tag":"ohzjZ/wzmjeYcwvrGD1QYGd53jvbiHHXLdVKCy6MKHY\\u003d"}' type: type: string example: PAYMENT_GATEWAY type: type: string example: CARD CardProvider: type: string format: enum enum: - mastercard - visa - amex - maestro description: The card scheme the card belongs to. example: mastercard CardDetails: description: Card details like the cardholders name, PAN, CVC and expiry date. type: object required: - cardProvider - browserInformation - encryptedCardDetails properties: cardProvider: $ref: '#/components/schemas/CardProvider' browserInformation: $ref: '#/components/schemas/BrowserInformation' encryptedCardDetails: $ref: '#/components/schemas/EncryptedCardDetails' CardPayment: allOf: - $ref: '#/components/schemas/Payment' - type: object required: - description - language - consumer - cardDetails properties: expiresAt: allOf: - $ref: '#/components/schemas/Datetime' - description: ISO 8601 date and time. If a transaction is not finalized before this time the status becomes EXPIRED. If left empty, the value defaults to 30 mins. consumer: allOf: - $ref: '#/components/schemas/ConsumerBase' - type: object required: - email - address properties: address: allOf: - $ref: '#/components/schemas/Address' - type: object required: - countryCode cardDetails: $ref: '#/components/schemas/CardDetails' CreditCardTransaction: allOf: - $ref: '#/components/schemas/Transaction' - type: object required: - country - status - action - cardProvider properties: status: description: The status of the transaction. oneOf: - $ref: '#/components/schemas/StatusAuthorized' - $ref: '#/components/schemas/StatusCancelled' - $ref: '#/components/schemas/StatusExpired' - $ref: '#/components/schemas/StatusFailure' action: type: object description: Next action to be performed by merchant (or consumer) to complete the payment. properties: redirect: $ref: '#/components/schemas/RedirectAction' country: $ref: '#/components/schemas/Country' cardProvider: $ref: '#/components/schemas/CardProvider' PurchaseID: description: |- Unique identification of the order within the Merchant's system. This value appears on the bank statement of the Consumer. The purchaseID can only contain letters and numbers. type: string minLength: 1 maxLength: 35 pattern: ^[A-Za-z0-9]{1,35}$ example: PO1234567 IDEALDescription: maxLength: 35 description: | Description of the underlying value or reason of the payment. Ultimately appears on the payment statement and confirmation screen. IdealCheckout: description: |- An iDEAL payment with iDEAL Checkout allow users to centrally manage their shipping, invoice and contact details in an iDEAL profile and provide these to a Merchant as part of the iDEAL payment. Use this object to enable the iDEAL Checkout flow and specify the shipping costs and the consumer details to be returned after a successful payment. type: object properties: shippingCost: description: |- Shipping costs in euro cents. This value must be less or equal to the total transaction amount, which includes these shipping costs. type: integer example: 100 minimum: 0 maximum: 99999999 requestedDetails: description: According to GDPR, the merchant is responsible for requesting what is meant 'good enough' data fields for them in order to finalize the order and deliver the goods. type: object properties: debtorContactDetails: type: object title: DebtorContactDetailsRequestData description: With the Debtor Contact Details, you (the merchant) can indicate which data you want to retrieve from iDEAL Checkout in the Create Transaction response. properties: firstName: type: boolean description: Request to provide the first name of the consumer default: false lastName: type: boolean description: Request to provide the last name of the consumer default: false phoneNumber: type: boolean description: Request to provide the phone number of the consumer in E.164 format default: false email: type: boolean description: Request to provide the e-mail address of the consumer default: false shippingAddress: type: boolean description: Request to provide the shipping address of the consumer default: false invoiceAddress: type: boolean description: Request to provide the invoice address of the consumer default: false required: - shippingCost - requestedDetails IdealPayFastRequestUserToken: description: |- Requests a User Token for future Pay Fast transactions with the same Consumer. When enabled and the Consumer consents, a User Token will be generated that enables push notifications in future transactions. Only request User Tokens for Consumers who have established accounts with your service and can be reliably identified on return visits. type: boolean default: false IdealPayFastUserToken: description: iDEAL Pay Fast User Token as generated by iDEAL, which is received in the response of a Create iDEAL Transaction when the field `"requestUserToken"` is set to `true`. type: string minLength: 1 maxLength: 128 example: Z7xmaEJlB3rDLpmln9xbUlaQ IdealPayFastExpectedDebtor: type: object description: |- If the Merchant is in possession of a User Token, obtained through a previous transaction, and the Consumer has indicated that he wants to reuse the bank account that was displayed after retrieving it from the `getDebtorPreferences`-endpoint, the User Token and browsers user-agent can be provided to enable the enhanced flow. The Consumer for which a User Token is used MUST hold an account with the merchant. The Merchant MUST only use the iDEAL User Token that was received in the last transaction for the Consumer. required: - userToken properties: userToken: $ref: '#/components/schemas/IdealPayFastUserToken' userAgent: type: string description: The User-Agent contains a characteristic string that allows the network protocol peers to identify the application type, operating system, software vendor, or software version of the requesting software user agent. minLength: 0 maxLength: 500 IdealPayment: allOf: - $ref: '#/components/schemas/Payment' - type: object required: - purchaseId - description properties: expiresAt: allOf: - $ref: '#/components/schemas/Datetime' - description: ISO 8601 date and time. If a transaction is not finalized before this time the status becomes EXPIRED. If left empty, the value defaults to 30 mins. language: allOf: - $ref: '#/components/schemas/Language' - type: string description: Preferred language for the user interface as ISO 639-1 code. If the provided language is not supported the default will be used. Commonly supported languages are Dutch (nl) and English (en). default: nl purchaseId: $ref: '#/components/schemas/PurchaseID' description: $ref: '#/components/schemas/IDEALDescription' checkout: $ref: '#/components/schemas/IdealCheckout' requestUserToken: $ref: '#/components/schemas/IdealPayFastRequestUserToken' expectedDebtor: $ref: '#/components/schemas/IdealPayFastExpectedDebtor' BIC: description: Bank Identification Code deprecated: true type: string minLength: 8 maxLength: 11 example: RABONL2U IdealAddress: type: object title: Address properties: firstName: type: string description: The first name of the consumer example: John minLength: 1 lastName: type: string description: The last name of the consumer example: Doe minLength: 1 companyName: type: string description: The company name of the consumer example: Cookie factory minLength: 1 postalCode: type: string description: The postal code of the address without spaces example: 1234AB minLength: 1 houseNumber: type: string description: The house number of the address example: '100' minLength: 1 addition: type: string description: The addition of the address example: 2B minLength: 1 street: type: string description: The street of the address example: Bankastraat minLength: 1 city: type: string description: The city of the address example: Amsterdam minLength: 1 countryName: type: string description: Name of the country example: Netherlands minLength: 1 IdealConsumer: description: contains the Name and IBAN that were used by the consumer that completed the payment. This field is null until the payment is completed. type: object properties: name: description: Name of the consumer type: string example: John bic: $ref: '#/components/schemas/BIC' iban: description: IBAN of the consumer type: string example: NL24RABO8487376045 checkoutDetails: description: |- The checkout details defined by the consumer before completing the transaction. By default, the invoice address will be the same as the shipping address unless it is explicitly changed by the consumer. This field is only available if the transaction status is `SUCCESS` and checkout data was requested. type: object properties: contactDetails: type: object title: DebtorContactDetails properties: firstName: type: string description: The first name of the consumer (can be different from the first name in the contact details) example: Edsger minLength: 1 lastName: type: string description: The last name of the consumer (can be different from the last name in the contact details) example: Dijkstra minLength: 1 phoneNumber: type: string description: The phone number of the consumer in E.164 format pattern: ^\+[1-9][0-9]{1,14}$ example: '+31612345678' email: type: string description: The e-mail address of the consumer format: email example: edsger@domain.nl minLength: 1 shippingAddress: $ref: '#/components/schemas/IdealAddress' invoiceAddress: $ref: '#/components/schemas/IdealAddress' IdealTransactionId: description: |- The 16-digit transaction ID within the iDEAL scheme as known by the acquirer and issuing bank, and used in the credit transfer. The value can have leading zeros. This value is `null` if the status `FAILURE`. type: string minLength: 16 maxLength: 16 example: '1234567890123456' IdealTransaction: allOf: - $ref: '#/components/schemas/Transaction' - type: object required: - purchaseId - action - idealTransactionId - status properties: description: $ref: '#/components/schemas/IDEALDescription' status: oneOf: - $ref: '#/components/schemas/StatusFailure' - $ref: '#/components/schemas/StatusExpired' - $ref: '#/components/schemas/StatusCancelled' purchaseId: $ref: '#/components/schemas/PurchaseID' action: type: object description: Next action to be performed by merchant (or consumer) to complete the payment. properties: redirect: $ref: '#/components/schemas/RedirectAction' issuer: $ref: '#/components/schemas/BIC' requestUserToken: $ref: '#/components/schemas/IdealPayFastRequestUserToken' expectedDebtor: $ref: '#/components/schemas/IdealPayFastExpectedDebtor' notificationResult: type: string format: enum enum: - PUSH_SENT_SHOW_WAITING_SCREEN - REDIRECT description: |- The value `PUSH_SENT_SHOW_WAITING_SCREEN` indicates the issuer attempted to send the notification, and the Merchant should show a "waiting for notification"-screen to the Consumer. The value `REDIRECT` indicates the Consumer should be redirected to the `checkoutUrl` as with the normal iDEAL flow. This field is only returned when the Pay Fast flow was initiated using the `expectedDebtor`-field. consumer: $ref: '#/components/schemas/IdealConsumer' idealTransactionId: $ref: '#/components/schemas/IdealTransactionId' responses_IdealPayFastUserToken: type: object required: - transactionId - userToken properties: transactionId: $ref: '#/components/schemas/TransactionId' userToken: $ref: '#/components/schemas/IdealPayFastUserToken' IDealPayFastDebtorPreferences: type: object required: - issuerName - issuerLogoUrl - maskedIban properties: issuerName: description: The name of the issuer bank. type: string minLength: 1 maxLength: 36 example: Test Bank issuerLogoUrl: description: The logo URL of the issuer bank. type: string format: uri example: https://ideal.ext/logos/issuer.png maskedIban: description: The masked consumer IBAN. type: string example: NL44RABO******6789 minLength: 1 AmountChangeable: description: Contains the minimum and maximum values for the amount of a QR code that a consumer can set themselves after scanning the code. type: object properties: min: description: Minimum of the amount. Must be higher than 0 type: integer example: 1 max: description: Maximum of the amount. Must be higher than the minimum and lower than 5000000. type: integer example: 50000 IDEALQRReusable: description: Indicates the QR code's ability to accept multiple successful payments. type: boolean default: false example: false IdealQRPayment: allOf: - $ref: '#/components/schemas/Payment' - type: object required: - size properties: amountChangeable: $ref: '#/components/schemas/AmountChangeable' language: $ref: '#/components/schemas/Language' purchaseId: $ref: '#/components/schemas/PurchaseID' description: $ref: '#/components/schemas/IDEALDescription' reusable: $ref: '#/components/schemas/IDEALQRReusable' size: $ref: '#/components/schemas/PaymentPageSize' webhooks: $ref: '#/components/schemas/TransactionWebhooks' IdealQRTransaction: allOf: - type: object required: - id - reference - amount - currency - purchaseId - description - size - expiresAt - status - action - createdAt properties: id: $ref: '#/components/schemas/Uuid' amountChangeable: $ref: '#/components/schemas/AmountChangeable' reference: $ref: '#/components/schemas/Reference' amount: $ref: '#/components/schemas/Amount' currency: $ref: '#/components/schemas/Currency' purchaseId: $ref: '#/components/schemas/PurchaseID' description: $ref: '#/components/schemas/IDEALDescription' size: type: integer example: 200 expiresAt: $ref: '#/components/schemas/Datetime' reusable: $ref: '#/components/schemas/IDEALQRReusable' language: $ref: '#/components/schemas/Language' webhooks: $ref: '#/components/schemas/TransactionWebhooks' status: $ref: '#/components/schemas/TransactionStatus' action: description: Next action to be performed by merchant (or consumer) to complete the payment. type: object properties: qrcode: type: object properties: id: description: ID of the QR Code known by the iDEAL QR Backend of CM. type: string url: description: URL to QR code image to be scanned by consumer to perform the payment. type: string format: url example: https://qrbackend.tld/images/213981209381209390821.png href: description: URL to which the QR code redirects to perform the payment. type: string format: url example: https://payment-processing-platform/pay/b6d53423-f45c-4e2a-93fd-5c43d351e389 createdAt: $ref: '#/components/schemas/Datetime' - $ref: '#/components/schemas/ReturnURLOneOf' responses-IdealQRPayment: type: object required: - payment - transaction - idealTransactionId - status - createdAt properties: payment: $ref: '#/components/schemas/Uuid' transaction: $ref: '#/components/schemas/Uuid' idealTransactionId: $ref: '#/components/schemas/IdealTransactionId' description: |- The 16-digit transaction ID within the iDEAL-QR scheme as known by the acquirer and issuing bank, and used in the credit transfer. The value can have leading zeros. This value is `null` if the status `FAILURE`. status: oneOf: - $ref: '#/components/schemas/StatusFailure' - $ref: '#/components/schemas/StatusExpired' - $ref: '#/components/schemas/StatusCancelled' - $ref: '#/components/schemas/StatusSuccess' createdAt: $ref: '#/components/schemas/Datetime' amount: allOf: - $ref: '#/components/schemas/Amount' - description: | Denomination in the smallest currency subunit, as for example eurocents. Only present in successful payments. consumerName: description: Name of the consumer. Only present in successful payments. type: string example: John consumerBic: allOf: - $ref: '#/components/schemas/BIC' - description: Bank Identification Code. Only present in successful payments. consumerIban: description: IBAN of the consumer. Only present in successful payments. type: string example: NL24RABO8487376045 IdealQRTransactionPaymentsPaginated: type: object required: - total - pageSize - payments properties: total: description: The total of payments that the order has type: integer example: 150 pageSize: $ref: '#/components/schemas/PaymentPageSize' payments: type: array items: allOf: - $ref: '#/components/schemas/responses-IdealQRPayment' IdealQRTransactionPaymentsSummary: description: iDEAL-QR payments summary type: object properties: status: oneOf: - $ref: '#/components/schemas/StatusOpen' - $ref: '#/components/schemas/StatusSuccess' - $ref: '#/components/schemas/StatusFailure' - $ref: '#/components/schemas/StatusExpired' - $ref: '#/components/schemas/StatusCancelled' count: type: integer description: Number of payments with this status for the given transaction example: 2 amount: allOf: - $ref: '#/components/schemas/Amount' - description: | Denomination in the smallest currency subunit, as for example eurocents. Only present in successful payments. - example: 1200 IdealQRPaymentRefund: allOf: - $ref: '#/components/schemas/responses-IdealQRPayment' - type: object properties: refunds: $ref: '#/components/schemas/Refunds' BulkQrCodesRequest: description: Array of qr code objects with values to overwrite defaults maximum: 100 minimum: 1 type: array items: $ref: '#/components/schemas/IdealQRPayment' QRCodeTransactionInBulkResponseItem: description: Details of the created iDEAL-QR transaction type: object properties: created: type: boolean default: true transaction: type: object required: - id - action properties: id: $ref: '#/components/schemas/Uuid' description: ID of the transaction. It can be used to retrieve the details of an iDEAL-QR transaction by using it in combination with other endpoints provided in this API. action: description: Next action to be performed by merchant (or consumer) to complete the payment. type: object properties: qrcode: type: object properties: id: description: ID of the QR Code known by the iDEAL-QR backend of CM.com. type: string url: description: URL to the iDEAL-QR code image to be scanned by the consumer to perform the payment. type: string format: url example: https://qrbackend.tld/images/213981209381209390821.png BulkIdealQRCodeErrorResponseItem: description: provides details on errors while creating qr codes in bulk type: object properties: error: description: contains the details of an error type: object required: - id - message properties: id: type: string description: ID of the error example: 51365d8a-d3c1-4c5f-9556-e8d7ff383eee message: type: string description: message indicating details of the error example: Invalid request message ErrorInBulkResponseItem: allOf: - $ref: '#/components/schemas/BulkIdealQRCodeErrorResponseItem' - description: Details of the error about why the requested iDEAL-QR transaction could not be created in the bulk operation. - type: object properties: created: type: boolean default: false BulkIdealQRCodesInResponseItem: description: Contains details of an iDEAL-QR transaction created in bulk. In case of an error, in case of an error, it contains details of the error that prevented it from being created correctly. anyOf: - $ref: '#/components/schemas/QRCodeTransactionInBulkResponseItem' - $ref: '#/components/schemas/ErrorInBulkResponseItem' BulkIdealQRCodesResponseItem: description: provides details qr codes (created or not) in bulk type: object properties: qrcodes: description: Array that contains the details of the iDEAL-QR transactions in a bulk operation (created or not). type: array items: allOf: - $ref: '#/components/schemas/BulkIdealQRCodesInResponseItem' IN3Address: type: object description: The consumers address. allOf: - $ref: '#/components/schemas/Address' - description: |- The address of the consumer. It must include all required fields such as street, house number, postal code, city, and country code. If the shipping address is different from the billing address, it should be specified in the `shippingAddress` field. type: object required: - street - houseNumber - postalCode - city - countryCode properties: addressedTo: type: string maxLength: 250 example: Scenius description: The name or entity which shall accept the package/invoice houseNumberSuffix: type: string maxLength: 25 example: A schemas-Consumer: description: The person initiating the checkout, typically the buyer who places the order. allOf: - $ref: '#/components/schemas/GenderlessConsumer' - type: object required: - name - email - phone - shippingAddress - dateOfBirth properties: name: type: object required: - lastName properties: initials: description: Consumer's initials. type: string maxLength: 20 example: J lastName: allOf: - $ref: '#/components/schemas/LastName' - type: string maxLength: 250 shippingAddress: $ref: '#/components/schemas/IN3Address' invoiceAddress: $ref: '#/components/schemas/IN3Address' business: type: object properties: name: type: string maxLength: 35 example: CM cocNumber: type: string maxLength: 20 example: '70528500' Item: description: |- Item object that can be used to provide details of the items in the order. This is only used by payment methods that support it, like Klarna and Riverty. type: object required: - code - unitPrice - quantity - vatAmount - vatRate properties: code: description: Merchant Product identification. Each item code must be unique per transaction. type: string minLength: 1 maxLength: 50 example: SDC4/32GB-2ADP description: description: A human readable description of the item. $ref: '#/components/schemas/Description' unitPrice: description: Unit price (including VAT) of the item, specified in the smallest currency subunit, as for example euro cents. $ref: '#/components/schemas/Amount' quantity: description: The number of items of this type. type: integer minimum: 1 maximum: 1000000000 example: 2 vatAmount: description: | Total VAT amount of the orderline, specified in the smallest currency subunit as for example euro cents. $ref: '#/components/schemas/Amount' vatRate: description: | Percentage of VAT applied. Only the first decimal value will be taken into account, the rest will be ignored. type: number minimum: 0 maximum: 99.9 example: 20 multipleOf: 0.1 ItemName: description: A human readable name of the item. type: string maxLength: 50 example: Kingston microSD 32GB IN3Items: description: | Items included in the order. We request both values 'vatAmount' and 'vatRate' to prevent errors. type: array minItems: 1 maxItems: 512 items: allOf: - $ref: '#/components/schemas/Item' - type: object required: - description properties: name: $ref: '#/components/schemas/ItemName' description: description: Additional item description. maxLength: 100 In3Payment: allOf: - type: object required: - invoice - consumer - items properties: invoice: type: object required: - reference - amount - description properties: reference: $ref: '#/components/schemas/Reference' amount: $ref: '#/components/schemas/Amount' description: $ref: '#/components/schemas/Description' expiresAt: allOf: - $ref: '#/components/schemas/Datetime' - description: ISO 8601 date and time. If left empty, the value defaults to 4 hours. consumer: $ref: '#/components/schemas/schemas-Consumer' items: $ref: '#/components/schemas/IN3Items' webhooks: $ref: '#/components/schemas/TransactionWebhooks' - $ref: '#/components/schemas/ReturnURLOneOf' KlarnaDescription: maxLength: 100 Items: description: | Items included in the order. We request both values 'vatAmount' and 'vatRate' to prevent errors. type: array minItems: 1 maxItems: 512 items: allOf: - $ref: '#/components/schemas/Item' - type: object properties: name: $ref: '#/components/schemas/ItemName' description: $ref: '#/components/schemas/KlarnaDescription' type: description: | The type of order line item. Used by Klarna to classify the order line. type: string enum: - PHYSICAL - DIGITAL - DISCOUNT - GIFT_CARD - STORE_CREDIT - SHIPPING_FEE - SALES_TAX - SURCHARGE example: PHYSICAL KlarnaPayment: allOf: - $ref: '#/components/schemas/Payment' - type: object required: - language - items - consumer properties: expiresAt: allOf: - $ref: '#/components/schemas/Datetime' - description: ISO 8601 date and time. If a transaction is not finalized before this time the status becomes EXPIRED. If left empty, the value defaults to 48 hours. items: $ref: '#/components/schemas/Items' consumer: allOf: - $ref: '#/components/schemas/ConsumerBase' - type: object required: - name - email - address properties: address: allOf: - $ref: '#/components/schemas/Address' - type: object required: - street - houseNumber - postalCode - city - countryCode KlarnaTransaction: allOf: - $ref: '#/components/schemas/Transaction' - type: object required: - country - items - action - status properties: status: oneOf: - $ref: '#/components/schemas/StatusAuthorized' - $ref: '#/components/schemas/StatusCancelled' - $ref: '#/components/schemas/StatusExpired' - $ref: '#/components/schemas/StatusFailure' country: $ref: '#/components/schemas/Country' items: $ref: '#/components/schemas/Items' action: type: object description: Next action to be performed by merchant (or consumer) to complete the payment. properties: redirect: $ref: '#/components/schemas/RedirectAction' AppleInitialize: allOf: - type: object required: - reference - amount - description - language properties: reference: $ref: '#/components/schemas/Reference' description: description: | Description of the underlying value or reason of the payment. Ultimately appears on the payment confirmation (statement and confirmation screen). type: string maxLength: 255 example: Order at yourdomain.tld amount: $ref: '#/components/schemas/Amount' currency: $ref: '#/components/schemas/Currency' expiresAt: allOf: - $ref: '#/components/schemas/Datetime' - description: ISO 8601 date and time. If left empty, the value defaults to 10 mins. language: $ref: '#/components/schemas/Language' consumer: $ref: '#/components/schemas/Consumer' webhooks: $ref: '#/components/schemas/TransactionWebhooks' - $ref: '#/components/schemas/ReturnUrl' StartApplePayPayment: type: object properties: validationUrl: description: The validation URL that is generated by the Apple device. type: string example: https://apple-pay-gateway-cert.apple.com/paymentservices/startSession displayName: description: The name to display on the the payment sheet. You get this information from the initialize endpoint. type: string example: My merchant commercial name domainName: description: The domain of the website on which the payment will occur. The value must match the domain from which the request is started. If there is a mismatch between this field and the domain that the Apple device determined, then the Apple Pay session will be terminated by the Apple device (with a generic error message or nothing happens). type: string example: https://app-domain.tld AuthorizeApplePayPayment: type: object properties: token: type: object properties: paymentData: type: object properties: data: type: string example: xdZ+1yRWkOP9Wdp0Y/nLBzAgvnWAW/QeSd7***7lT5NSEgfrlafBVPN18cF8= signature: type: string example: MIAGCSqGSIb3DQEHAqCAMIACAQExDTALBglghkgBZQMEMQswCQYDVQQGEwJVUzAeFw0xOTA1... header: type: object properties: publicKeyHash: type: string example: F+0dt8ccfMBlkJWQUCQ5r8XdLNXFi67QezeGdxiaLns= ephemeralPublicKey: type: string example: MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEeVc222rSH8+NvnN2o9qrewBWvFHOFmUYu1pVObDvmRBEavVWpGi3YHY628gLmu9Jq0VNdVJY5mThd49CRL4N3Q== transactionId: type: string example: 991aee4fb7f88bd9c531fdca658628239e22d0239da3069f833f062fb40ba50b version: type: string example: EC_v1 paymentMethod: type: object properties: displayName: type: string example: Visa 0326 network: type: string example: Visa type: type: string example: debit transactionIdentifier: type: string example: 991aee4fb7f88bd9c531fdca658628239e22d0239da3069f833f062fb40ba50b BelfiusPayButtonPayment: allOf: - $ref: '#/components/schemas/Payment' - type: object required: - language properties: expiresAt: allOf: - $ref: '#/components/schemas/Datetime' - description: ISO 8601 date and time. If a transaction is not finalized before this time the status becomes EXPIRED. If left empty, the value defaults to 1 hour. language: $ref: '#/components/schemas/Language' consumer: $ref: '#/components/schemas/Consumer' BelfiusPayButtonTransaction: allOf: - $ref: '#/components/schemas/Transaction' - type: object required: - country - action - status properties: status: description: The status of the transaction. oneOf: - $ref: '#/components/schemas/StatusAuthorized' - $ref: '#/components/schemas/StatusCancelled' - $ref: '#/components/schemas/StatusExpired' - $ref: '#/components/schemas/StatusFailure' country: $ref: '#/components/schemas/Country' action: anyOf: - type: object description: Next action to be performed by the merchant (or consumer) to complete the payment. properties: redirect: $ref: '#/components/schemas/RedirectAction' - type: 'null' BankTransferPayment: allOf: - $ref: '#/components/schemas/Payment' - type: object required: - language - consumer properties: expiresAt: allOf: - $ref: '#/components/schemas/Datetime' - description: ISO 8601 date and time. If a transaction is not finalized before this time the status becomes EXPIRED. If left empty, the value defaults to 1 hour. language: $ref: '#/components/schemas/Language' consumer: $ref: '#/components/schemas/Consumer' BankTransferTransaction: allOf: - $ref: '#/components/schemas/Transaction' - type: object required: - country - action - status properties: status: description: The status of the transaction. oneOf: - $ref: '#/components/schemas/StatusAuthorized' - $ref: '#/components/schemas/StatusCancelled' - $ref: '#/components/schemas/StatusExpired' - $ref: '#/components/schemas/StatusFailure' country: $ref: '#/components/schemas/Country' action: anyOf: - type: object description: Next action to be performed by the merchant (or consumer) to complete the payment. properties: redirect: $ref: '#/components/schemas/RedirectAction' - type: 'null' SepaDirectDebitDetails: description: Details needed for SEPA direct debit type: object required: - iban properties: iban: type: string minLength: 5 maxLength: 34 description: IBAN of the consumer example: NL91ABNA0417164300 SepaDirectDebitPayment: allOf: - $ref: '#/components/schemas/Payment' - type: object required: - language - sepaDirectDebitDetails properties: expiresAt: allOf: - $ref: '#/components/schemas/Datetime' - description: ISO 8601 date and time. If a transaction is not finalized before this time the status becomes EXPIRED. If left empty, the value defaults to 1 hour. language: $ref: '#/components/schemas/Language' consumer: $ref: '#/components/schemas/Consumer' sepaDirectDebitDetails: $ref: '#/components/schemas/SepaDirectDebitDetails' SepaDirectDebitTransaction: allOf: - $ref: '#/components/schemas/Transaction' - type: object required: - country - action - status properties: status: description: The status of the transaction. oneOf: - $ref: '#/components/schemas/StatusAuthorized' - $ref: '#/components/schemas/StatusCancelled' - $ref: '#/components/schemas/StatusExpired' - $ref: '#/components/schemas/StatusFailure' country: $ref: '#/components/schemas/Country' action: anyOf: - type: object description: Next action to be performed by the merchant (or consumer) to complete the payment. properties: redirect: $ref: '#/components/schemas/RedirectAction' - type: 'null' CreditCardConsumerV2: type: object required: - billingAddress anyOf: - required: - email - required: - mobilePhone description: | Cardholder personal information * **Either `email` and/or `MobilePhone` must be provided** * `billingAddress` conditional on the market properties: email: type: string description: | Cardholder email address example: johndoe@email.com mobilePhone: type: object properties: countryCallingCode: type: string example: '+31' description: Phone number country calling code number: type: string example: '0765727000' description: Phone number billingAddress: description: Cardholder billing address. allOf: - $ref: '#/components/schemas/Address' shippingAddress: description: Cardholder shipping address. allOf: - $ref: '#/components/schemas/Address' CardPaymentV2: allOf: - $ref: '#/components/schemas/Payment' - type: object required: - clientSideEncryptedCard - consumer properties: clientSideEncryptedCard: type: string description: Encrypted cardholder credit card details using the provided CSE javascript library. example: 7cJG1p/j5Dl8FrvMN5rSGVq9IqXVZE3herLkQfpoNbZL1r6sUHXkJLPYH+IbG0tYwvNO2hZZeDdNhOWMHV0tT3sSYVeN5uelgV2RLRkPC3b5XRolW3URk80i8kHoOO2tQoBbIkXc47le0xbTDFl4UNAsIa/SnBWwZbJAFpMYyMHIP1faey9OD5qQ2L+KTQ07ipFHtlDyRvJWG8xDn2Mnz9We7tE0wn6oUilTcGs3fwMX+/14VBhQPRoZCM15OHuTrdK6lwqMJN0xxpfPFBMk9kHcq8VZ2hvLkbRkbvMYBfxkt9f6lxwCF8PdrVvDwHAOsfgIWXZVefCnIFdSHoX8ToMVD/GKWqJzF0nJgl6hLNo7OFBGmbMgXQZbQQKMl9eFx2m1QXYNHN7wpsAJhy+O1pF1aqQa0bnM6C2NTE6Glcik0GmgG4epFIvQnZXrJrRAtKKqYGh8Bs8MNvramaFfRiY+h9ZCHtA+alxKWVyGgES6YeqQZ2iiJCU0aOrdJBSyjpox6DRlnZsnWO/lyKD3OkKh+5XtXqOWhubQQiWL2+hGWy35dzYYhTXSdPot48emzSBtqtgNRREKZ9dtNd6O4d0/y+ruO1dsIpCMLByOr7yO7pMVcGBo1WRbohCEn52QYmo/Zbz8GF919G8uzD1wGaBRAx7vOb6otnhxKyRLLtjw6sV+wmI+eIplpaeaIIitZzIjy6II+TaY1uosBTWZqusdH21VQKo5A7OpHbTzqUJYuX5cXK978WCuA0lGlBJMnXZDJcBFlJLJZ6zNuKpbDZjSoaX7EkJhJznCX8OC6iYKR0Jyf/opDPAc+YlB13DFd5kCcSsEC3g4l/VcqrdQypbMWyTGkGVXKuwuF6Dk1+2VYCBvx9WqcPK3OuhVyCOXm+Y5DDYqsjh4hrszSxkOkjB7C+rMScKaqRxEdigNdKkqnHB/JNkfVKm1zc5HGXaEToVXEGg9sD1Ng/PIz3cn4zG9qQ6gmd0Nyn7w/0Ok8OfEi4pm0ohP1jxQ0c3VMT1Lblfzz+aW18R/+bgERr+Jeo17sxA6LK7u+LmGa4ZjwknaJ1lXKNkpawVlW9/mlm5dRZZqaI5LW4Opqa3gtguyZ8qM5ufQPPN5XkTQZ7m4WPFWhnySzhCZfRKlcjGtu8bi7EHVcdlpo5x/qX6BRrRyvA99S35v8HPISEBvZotsa0y+DVRJyL4HPna08EMdqUc0fXvz2zm57WDfquHzSTcBGEbNx/3K+E86T0esFNcFsU4dQgYg/YWKFfIoiUhvsaC9sA8kNnC5DvDTCbmVWFY/U33QINd7qgpCwfUDISVaqSjXkiF2N9ne/t59gW3EKEkncuzIJn1s3ncsUxHb7iVZHySnvb7fJblMfhp0CQei5WIZPTQaUYMgP8FK4VGSiE4FP27nTH6Ltyk0aiGLvObCDoc9jRi5rqsPSRf2sGlYclz5k3nLBL4e4H9VrpJAfZo/dqbepcShRjAuEECPuhlFKCLmHydRNNWQ4EwT7nqMZHlU2lQjibM3t6Mipn8Fono6z7HlhsUbIad5sX/QKWxbk8PoPmM80qWLjuSTxit0GPuTZZk9MEwVNNmbkomfZyc4YtebWvAPoOM7PkD89gFB/tISG1hgbr0M6Hc6Sax3gPPJA7WTgJhLJdcuAkC7kYReTutomzZ07ZIgt+0f3oJCTvQ9PCYvdKD3E3S280jl1AdtAaylnLQBP0O0ZAfBJKPfqEf5j4e+/8Dm7ALdwB9cFnAy9nfm6lFDk3wSmjdXisuY6s33k1PSYg528LzidEk9UGIJV378DhX2NftktsXjC3y6x7YtLno8m0vmdvCT+5Nb1xv9GiUtUUCjNNB8fdjT0nz299STedUVMYKkH84fpDbYpSJieOr1KxA9T6HoH2a4v6i4Gx3tHVvJtjSKV7OzyvaL7buMa2nNppMAPaZ2gLADLBMGF6YQghES5qBSTt5dBzPttPe1PwJ96yZIO8137b2Ry4iJcqc3fBdSIs4D8k6Ju0xwu+4IA4IH4I2ne715bfs8yEpudE22A1w3iOr+rcYtEzzV+qb53uik/GgQRp1Dx260wXyebbS+YpM5jBxmp9MnXu5rRvkmZGi0/1s7J2hx3d0Rdq1GyAP109dV8SQlTrLMOn3zjxb4lLo7PqZOpn+efPkn2oOMwHHz9VTJ0bII5wh9YwdPNNfp0w9Pfe70VIkEh7mMhVjXYJyaD+3hM3M+5iEi7GYywECvEw== consumer: $ref: '#/components/schemas/CreditCardConsumerV2' CreditCardTransactionV2: allOf: - $ref: '#/components/schemas/Transaction' - type: object required: - country - status - action properties: status: description: The status of the transaction. oneOf: - $ref: '#/components/schemas/StatusAuthorized' - $ref: '#/components/schemas/StatusCancelled' - $ref: '#/components/schemas/StatusExpired' - $ref: '#/components/schemas/StatusFailure' action: anyOf: - type: object description: Next action to be performed by merchant (or consumer) to complete the payment. properties: redirect: $ref: '#/components/schemas/RedirectAction' - type: 'null' country: $ref: '#/components/schemas/Country' CardPaymentInitializeV2: allOf: - $ref: '#/components/schemas/Payment' - type: object required: - consumer properties: consumer: $ref: '#/components/schemas/CreditCardConsumerV2' PayPalPayment: allOf: - $ref: '#/components/schemas/Payment' - type: object required: - consumer properties: expiresAt: allOf: - $ref: '#/components/schemas/Datetime' - description: ISO 8601 date and time. If a transaction is not finalized before this time the status becomes EXPIRED. If left empty, the value defaults to 6 hours. consumer: allOf: - $ref: '#/components/schemas/ConsumerBase' - type: object required: - email - address properties: address: allOf: - $ref: '#/components/schemas/Address' - type: object required: - countryCode PayPalTransaction: allOf: - $ref: '#/components/schemas/Transaction' - type: object required: - country - status - action properties: action: type: object properties: redirect: $ref: '#/components/schemas/RedirectAction' status: oneOf: - $ref: '#/components/schemas/StatusAuthorized' - $ref: '#/components/schemas/StatusCancelled' - $ref: '#/components/schemas/StatusExpired' - $ref: '#/components/schemas/StatusFailure' country: $ref: '#/components/schemas/Country' PayPalV2Item: description: Item object that can be used to provide details of the items in the order. type: object required: - name - unitPrice - quantity properties: name: $ref: '#/components/schemas/ItemName' unitPrice: description: Unit price (including VAT) of the item, specified in the smallest currency subunit, as for example euro cents. $ref: '#/components/schemas/Amount' quantity: description: The number of items of this type. type: integer minimum: 1 maximum: 1000000000 example: 2 description: description: A human readable description of the item. $ref: '#/components/schemas/Description' PayPalV2Consumer: allOf: - type: object required: - email properties: email: $ref: '#/components/schemas/Email' address: allOf: - $ref: '#/components/schemas/Address' - type: object required: - countryCode PayPalV2Webhooks: allOf: - $ref: '#/components/schemas/BaseWebhook' - type: object properties: events: items: description: | * `STATUS_CHANGE` - Triggered when the status of a transaction changes. * `REFUND_STATUS` - Triggered when a transaction receives an update on one of its requested refunds. oneOf: - $ref: '#/components/schemas/StatusChangeEvent' - $ref: '#/components/schemas/RefundStatusEvent' example: STATUS_CHANGE PayPalV2Payment: allOf: - $ref: '#/components/schemas/PaymentWithoutDescriptionExpiresAtLanguageAndWebhooks' - type: object required: - description - currency properties: description: $ref: '#/components/schemas/Description' items: type: array items: $ref: '#/components/schemas/PayPalV2Item' consumer: $ref: '#/components/schemas/PayPalV2Consumer' webhooks: type: array items: $ref: '#/components/schemas/PayPalV2Webhooks' PayPalV2Transaction: allOf: - $ref: '#/components/schemas/TransactionWithoutOrderIdLanguageRefundsAndExpiresAt' - type: object properties: items: type: array items: $ref: '#/components/schemas/PayPalV2Item' consumer: $ref: '#/components/schemas/PayPalV2Consumer' action: type: object properties: redirect: $ref: '#/components/schemas/RedirectAction' status: oneOf: - $ref: '#/components/schemas/StatusAuthorized' - $ref: '#/components/schemas/StatusCancelled' - $ref: '#/components/schemas/StatusExpired' - $ref: '#/components/schemas/StatusFailure' webhooks: type: array items: $ref: '#/components/schemas/PayPalV2Webhooks' PayPalV2Refund: allOf: - $ref: '#/components/schemas/Refund' - type: object required: - amount schemas-Amount: allOf: - $ref: '#/components/schemas/Amount' - description: | Total gross amount of order in the smallest currency subunit, as for example euro cents (including taxes and fees). This is the amount that will be charged to the consumer. The validation will fail if: amount ≠ Σ(unitPrice × quantity) NetAmount: allOf: - $ref: '#/components/schemas/Amount' - description: | Total net amount of order in the smallest currency subunit, as for example euro cents (excluding taxes and fees). The validation will fail if: netAmount ≠ Σ(netUnitPrice × quantity) AddressWithOptCountryAndHouseNumberAdditional: allOf: - $ref: '#/components/schemas/AddressWithoutMandatoryCountry' - type: object properties: houseNumberAdditional: description: Field to support addresses that need to add more information about the house number. type: string maxLength: 10 example: 674A components-schemas-Consumer: description: The person initiating the checkout, typically the buyer who places the order. allOf: - $ref: '#/components/schemas/GenderlessConsumer' - type: object required: - name - email - phone - dateOfBirth - billingAddress - shopperIp properties: name: allOf: - $ref: '#/components/schemas/Name' - type: object properties: firstName: maxLength: 50 lastName: maxLength: 50 shopperIp: $ref: '#/components/schemas/ShopperIP' billingAddress: allOf: - $ref: '#/components/schemas/AddressWithOptCountryAndHouseNumberAdditional' - description: |- The address of the consumer. This is used for shipping and billing purposes. It must include all required fields such as street, house number, postal code, city, and country code. If the shipping address is different from the billing address, it should be specified in the `shippingAddress` field. type: object required: - street - houseNumber - postalCode - city - countryCode shippingAddress: allOf: - $ref: '#/components/schemas/AddressWithOptCountryAndHouseNumberAdditional' - type: object properties: type: description: | Type of shipping address. These values don't have an effect on the Riverty processing, but can be used to improve order handling. type: string enum: - Standard - ShipTo - PickUpPoint - InStore example: PickUpPoint pickUpPoint: type: object properties: type: type: string description: Type of pickup point enum: - NotSet - ParcelLocker - ServicePoint - NeighbourhoodPoint - CarrierDepot example: ParcelLocker name: type: string description: Name of the pickup point maxLength: 255 required: - street - houseNumber - postalCode - city - countryCode RivertyItem: allOf: - $ref: '#/components/schemas/Item' - type: object required: - description - netUnitPrice properties: netUnitPrice: description: Price per unit in cents (excluding vat) $ref: '#/components/schemas/Amount' imageUrl: type: string format: url example: https://example.com/product-image.jpg description: URL for the product image, will be used as a thumbnail in Riverty on the invoice line. Must be rectangular or square with a width between 100-1280 pixels. Supported formats, gif, jpeg(jpg), png, webp productUrl: type: string description: URL to the product page format: url example: https://example.com/product-page RivertyItems: description: Array of order items. Maximum allowed 500 items. type: array minItems: 1 maxItems: 500 items: $ref: '#/components/schemas/RivertyItem' RivertyWebhooks: allOf: - $ref: '#/components/schemas/BaseWebhook' - type: object properties: events: items: description: | * `STATUS_CHANGE` - Triggered when the status of a transaction changes. allOf: - $ref: '#/components/schemas/StatusChangeEvent' example: STATUS_CHANGE RivertyPayment: allOf: - $ref: '#/components/schemas/PaymentWithoutDescriptionExpiresAtAndWebhooks' - type: object required: - orderNumber - type - netAmount - consumer - items properties: orderNumber: description: | Order number. Unique order number provided by the merchant. A valid order number can include alphanumeric characters, dashes and underscores. type: string maxLength: 50 example: order123 amount: $ref: '#/components/schemas/schemas-Amount' currency: $ref: '#/components/schemas/Currency' language: description: | The language code used for client communication. If not provided, Riverty will default to the language configured for the client. format: enum enum: - 'no' - sv - fi - da - en - de - nl - fr type: type: string format: enum description: The type of the Riverty payment method. enum: - Invoice example: Invoice netAmount: $ref: '#/components/schemas/NetAmount' merchantImageURL: description: | Image URL for the merchants brand. This image is shown at the top of the order page in Riverty. Supported image formats are: gif, jpeg (jpg), png, webp. type: string format: url example: https://merchant.tld/images/logo.png additionalMerchantData: type: string maxLength: 4096 description: | Additional information about the merchant Format: Base64 encoded JSON consumer: $ref: '#/components/schemas/components-schemas-Consumer' items: $ref: '#/components/schemas/RivertyItems' webhooks: $ref: '#/components/schemas/RivertyWebhooks' RivertyTransaction: allOf: - $ref: '#/components/schemas/PaymentWithoutDescriptionExpiresAtAndWebhooks' - type: object required: - id - status - orderNumber - type - netAmount - created - updated - action properties: id: $ref: '#/components/schemas/TransactionId' status: $ref: '#/components/schemas/TransactionStatus' orderNumber: description: Order number. Unique order number provided by the merchant. type: string maxLength: 50 example: order123 type: type: string format: enum description: The type of the Riverty payment method. enum: - Invoice example: Invoice netAmount: $ref: '#/components/schemas/NetAmount' created: $ref: '#/components/schemas/Datetime' description: ISO 8601 date and time when the transaction was created. updated: $ref: '#/components/schemas/Datetime' description: ISO 8601 date and time when the transaction was last updated. merchantImageURL: description: | Image URL for the merchants brand. This image is shown at the top of the order page in Riverty. Supported image formats are: gif, jpeg (jpg), png, webp. type: string format: url example: https://merchant.tld/images/logo.png additionalMerchantData: type: string maxLength: 4096 description: 'Additional information about the merchant Format: Base64 encoded JSON' consumer: $ref: '#/components/schemas/components-schemas-Consumer' items: $ref: '#/components/schemas/RivertyItems' webhooks: $ref: '#/components/schemas/RivertyWebhooks' action: description: Next action to be performed by merchant (or consumer) to complete the payment. type: object properties: redirect: $ref: '#/components/schemas/RedirectAction' RivertyCapture: type: object required: - id - transactionId - amount - netAmount - created - updated properties: id: description: Unique identifier received in the POST capture response root object. $ref: '#/components/schemas/Uuid' transactionId: $ref: '#/components/schemas/TransactionId' amount: $ref: '#/components/schemas/schemas-Amount' netAmount: $ref: '#/components/schemas/NetAmount' created: $ref: '#/components/schemas/Datetime' description: ISO 8601 date and time when the capture was created. updated: $ref: '#/components/schemas/Datetime' description: ISO 8601 date and time when the capture was last updated. items: description: List of items that were captured. Only present for partial captures. $ref: '#/components/schemas/RivertyItems' RivertyCaptures: type: object required: - captures properties: captures: type: array items: $ref: '#/components/schemas/RivertyCapture' requestbodies_RivertyCapture: type: object required: - amount - netAmount properties: amount: $ref: '#/components/schemas/schemas-Amount' netAmount: $ref: '#/components/schemas/NetAmount' items: description: | List of items to be captured. Mandatory for partial captures. If not provided, the full amount will be captured. If provided, the total amount of all items must match the amount in the capture request. $ref: '#/components/schemas/RivertyItems' RivertyCancellation: type: object required: - amount - netAmount properties: amount: $ref: '#/components/schemas/schemas-Amount' netAmount: $ref: '#/components/schemas/NetAmount' items: description: | List of items to be cancelled. Mandatory for partial cancellations. If not provided, the full order will be cancelled. If provided, the total amount of all items must match the amount in the cancel request. $ref: '#/components/schemas/RivertyItems' responses_RivertyCancellation: type: object required: - id - transactionId - amount - netAmount - created - updated properties: id: description: Unique identifier received in the POST cancellation response root object. $ref: '#/components/schemas/Uuid' transactionId: $ref: '#/components/schemas/TransactionId' amount: $ref: '#/components/schemas/schemas-Amount' netAmount: $ref: '#/components/schemas/NetAmount' created: $ref: '#/components/schemas/Datetime' description: ISO 8601 date and time when the cancellation was created. updated: $ref: '#/components/schemas/Datetime' description: ISO 8601 date and time when the cancellation was last updated. items: description: List of items that were cancelled. Only present for partial cancellations. $ref: '#/components/schemas/RivertyItems' RivertyRefund: type: object required: - id - captureId - transactionId - status - created - updated properties: id: description: Unique identifier received in the POST refund response root object. $ref: '#/components/schemas/Uuid' captureId: description: Unique identifier of the capture that was refunded. $ref: '#/components/schemas/Uuid' transactionId: $ref: '#/components/schemas/TransactionId' status: $ref: '#/components/schemas/RefundStatus' created: $ref: '#/components/schemas/Datetime' description: ISO 8601 date and time when the refund was created. updated: $ref: '#/components/schemas/Datetime' description: ISO 8601 date and time when the refund was last updated. items: description: List of items that were refunded. Only present for partial refunds. $ref: '#/components/schemas/RivertyItems' RivertyRefunds: type: object required: - refunds properties: refunds: type: array items: $ref: '#/components/schemas/RivertyRefund' requestbodies_RivertyRefund: type: object properties: captureId: description: | Unique identifier of the capture to be refunded, received in the capture response. Required for transactions with multiple captures. $ref: '#/components/schemas/Uuid' reason: $ref: '#/components/schemas/RefundReason' items: $ref: '#/components/schemas/RivertyItems' ClientSideEncryptionElement: type: object properties: cseUrl: description: The URL that contains the script to encrypt the user payment data in your site. type: string example: https://app-domain.tld/libraries/ps/cse/80117cdb-be80-425f-954d-9696102efa60 upstream: type: string example: ps ClientSideEncryption: description: Client side encryption libraries per payment method. type: object properties: bancontact: $ref: '#/components/schemas/ClientSideEncryptionElement' creditcard: $ref: '#/components/schemas/ClientSideEncryptionElement' MerchantOrderReference: type: string maxLength: 35 description: Unique identifier, as known by the merchant. This value will end up in the payments portal. CheckoutConsumer: allOf: - $ref: '#/components/schemas/Consumer' - type: object properties: givenName: type: string maxLength: 35 description: First name of the consumer. middleName: type: string maxLength: 35 description: Middle name of the consumer. familyName: type: string maxLength: 35 description: Last name of the consumer. address: $ref: '#/components/schemas/AddressWithStateAndAdditionalData' MaxRetries: description: | Maximum number of payment attempts allowed for this checkout order. **Values:** - **null or omitted**: Defaults to 0 (no retry limit, skip UI with single payment method) - **0**: No retry limit enforcement. When combined with a single payment method, the hosted checkout will skip the payment method selection screen and redirect the customer directly to the payment method (e.g., iDEAL, PayPal). Useful for external integrations that have their own checkout UI. - **1-255**: Enforces retry limit. After exceeding this number of failed payment attempts, the checkout will be locked out with status `LOCKED_OUT`. The payment method selection screen will be shown normally, even with a single payment method. **Use Cases:** - **External integrations**: Set to 0 to enable seamless redirect from external checkout to payment provider - **Fraud prevention**: Set to 3-5 to limit retry attempts and prevent abuse - **Standard checkout**: Set to 10-255 for generous retry limits with fraud protection **Important**: `maxRetries=0` does NOT mean "lock out immediately". It means "allow unlimited retries without lockout enforcement". type: integer minimum: 0 maximum: 255 example: 10 PaymentMethods: type: array description: List of payment methods used in the checkout. If not provided all available payment methods will be shown. items: type: string enum: - apple_pay - bancontact - bank_transfer - creditcard - google_pay - ideal - klarna - paypal - in3 OrderItems: allOf: - $ref: '#/components/schemas/Items' - description: 'Items included in the order. Required field for the following payment methods: Klarna, Riverty. We request both values ''vatAmount'' and ''vatRate'' to prevent errors.' CreateCheckout: allOf: - $ref: '#/components/schemas/Payment' - type: object required: - description - merchantOrderReference - language properties: expiresAt: allOf: - $ref: '#/components/schemas/Datetime' - description: ISO 8601 date and time. If a transaction is not finalized before this time the status becomes EXPIRED. If left empty, the value defaults to 30 mins. amount: description: |- Denomination in the smallest currency subunit, as for example eurocents. Ignored (although required) for requests that include items (e.g. Klarna). In this cases the total amount is calculated internally using item prices. merchantOrderReference: $ref: '#/components/schemas/MerchantOrderReference' consumer: $ref: '#/components/schemas/CheckoutConsumer' maxRetries: $ref: '#/components/schemas/MaxRetries' language: allOf: - $ref: '#/components/schemas/Language' - type: string description: Preferred language for the user interface as ISO 639-1 code. If the provided language is not supported the default will be used. Commonly supported languages are Dutch (nl) and English (en). default: nl paymentMethods: $ref: '#/components/schemas/PaymentMethods' orderItems: $ref: '#/components/schemas/OrderItems' description: maxLength: 35 responses_CreateCheckout: allOf: - $ref: '#/components/schemas/TransactionWithoutOrderId' - type: object required: - status - action - expiresAt - merchantOrderReference properties: merchantOrderReference: $ref: '#/components/schemas/MerchantOrderReference' consumer: $ref: '#/components/schemas/CheckoutConsumer' status: description: The status of the transaction. oneOf: - $ref: '#/components/schemas/StatusAuthorized' - $ref: '#/components/schemas/StatusCancelled' - $ref: '#/components/schemas/StatusExpired' - $ref: '#/components/schemas/StatusFailure' action: type: object description: Next action to be performed by merchant (or consumer) to complete the payment. properties: redirect: $ref: '#/components/schemas/RedirectAction' paymentMethods: $ref: '#/components/schemas/PaymentMethods' orderItems: $ref: '#/components/schemas/OrderItems' maxRetries: $ref: '#/components/schemas/MaxRetries' refunds: $ref: '#/components/schemas/Refunds' StatusPending: description: The transaction is pending, meaning it could not be completed yet; waiting for something. type: string format: enum enum: - PENDING example: PENDING CheckoutPayments: type: object properties: payments: type: array description: List of payments created for this checkout. items: type: object description: Payment details. Multiple payment attempts will be returned. required: - id - type - status - createdAt properties: id: $ref: '#/components/schemas/TransactionId' type: type: string description: The payment method used for this payment attempt. enum: - apple_pay - bancontact - bank_transfer - creditcard - google_pay - ideal - klarna - paypal - in3 status: description: The status of the payment attempt. oneOf: - $ref: '#/components/schemas/StatusOpen' - $ref: '#/components/schemas/StatusSuccess' - $ref: '#/components/schemas/StatusCancelled' - $ref: '#/components/schemas/StatusExpired' - $ref: '#/components/schemas/StatusFailure' - $ref: '#/components/schemas/StatusAuthorized' - $ref: '#/components/schemas/StatusPending' createdAt: $ref: '#/components/schemas/Datetime' TransactionWebhookEvent: description: | * `STATUS_CHANGE` - Invoke webhook when the status of a transaction changes. * `REFUND_STATUS` - Invoke webhook when a transaction receives an update on one of its requested refunds. * `FINALSTATUS` - This value is deprecated and shouldn't be used anymore. type: string enum: - STATUS_CHANGE - REFUND_STATUS - FINALSTATUS example: STATUS_CHANGE TransactionEvent: description: Event send by CM.com after a change on a transaction. type: object required: - transaction - event - reference - createdAt properties: transaction: $ref: '#/components/schemas/TransactionId' event: $ref: '#/components/schemas/TransactionWebhookEvent' reference: $ref: '#/components/schemas/Reference' createdAt: $ref: '#/components/schemas/Datetime' description: Time when the event occurred. TransactionWebhookQREvents: description: | * `STATUS_CHANGE` - When the status of the transaction changes to any other value. * `QR_PAYMENT_CREATED` - When a new payment is created using the qr code. * `REFUND_STATUS` - Invoke webhook when a transaction receives an update on one of its requested refunds. type: string enum: - STATUS_CHANGE - QR_PAYMENT_CREATED - REFUND_STATUS example: STATUS_CHANGE iDEALQRPaymentEvent: allOf: - $ref: '#/components/schemas/TransactionEvent' - type: object properties: event: $ref: '#/components/schemas/TransactionWebhookQREvents' payment: $ref: '#/components/schemas/Uuid' description: Unique identifier for an iDEAL-QR payment. description: Event send by CM.com after a change on an iDEAL-QR transaction. TransactionWebhookBancontactEvents: description: | * `STATUS_CHANGE` - When the status of the transaction changes to any other value. * `PAYMENT_CREATED` - When a new payment is created for the BanContact order. * `REFUND_STATUS` - Invoke webhook when a transaction receives an update on one of its requested refunds. * `FINALSTATUS` - This value is deprecated and shouldn't be used anymore. Use `STATUS_CHANGE` instead. type: string enum: - STATUS_CHANGE - PAYMENT_CREATED - REFUND_STATUS - FINALSTATUS example: STATUS_CHANGE BancontactPaymentEvent: allOf: - $ref: '#/components/schemas/TransactionEvent' - type: object properties: event: $ref: '#/components/schemas/TransactionWebhookBancontactEvents' payment: $ref: '#/components/schemas/Uuid' description: Unique identifier for a BanContact payment. description: Event sent by CM.com after a payment is created on a BanContact transaction. responses: UserError: description: The user input was incorrect or something illegal was attempted (eg. using a service without having that service configured for the user, or not being authorized) content: application/json: schema: type: object required: - id - message properties: id: $ref: '#/components/schemas/Uuid' message: type: string example: no authorization methods provided InternalError: description: Internal server error. This can be caused by an unresponsive backend content: application/json: schema: type: object required: - id - message properties: id: $ref: '#/components/schemas/Uuid' message: type: string example: Service Unavailable RefundsResponse: description: Details of all refunds belonging to a transaction. content: application/json: schema: type: object required: - refunds properties: refunds: type: array items: $ref: '#/components/schemas/RefundDetails' GooglePayTransaction: description: Google Pay transaction details headers: Digest: $ref: '#/components/headers/Digest' content: application/json: schema: allOf: - type: object required: - id - orderId - reference - amount - currency - description - expiresAt - language - country - status - createdAt - action properties: id: $ref: '#/components/schemas/Uuid' orderId: $ref: '#/components/schemas/Uuid' reference: $ref: '#/components/schemas/Reference' amount: $ref: '#/components/schemas/Amount' currency: $ref: '#/components/schemas/Currency' description: type: string example: Order at yourdomain.tld expiresAt: $ref: '#/components/schemas/Datetime' language: $ref: '#/components/schemas/Language' country: $ref: '#/components/schemas/Country' webhooks: $ref: '#/components/schemas/TransactionWebhooks' status: $ref: '#/components/schemas/TransactionStatus' details: description: | The details that are necessary to render the Google Pay button in your own checkout page during the initialize payment flow. In consequent flows the details object will be null anyOf: - type: object properties: merchantCountry: description: The ISO 3166-1 alpha-2 country code where the transaction is processed. type: string example: DE gatewayId: description: Gateway's identifier, which is issued by Google. type: string example: example-gateway environment: description: | * TEST - Dummy payment methods that are suitable for testing. * PRODUCTION - Used to return chargeable payment methods when a valid Google merchant ID is specified and configured for the domain. type: string enum: - TEST - PRODUCTION merchantId: description: A Google merchant identifier. type: string example: exampleMerchantId merchantName: description: Merchant name encoded as UTF-8. Merchant name is rendered in the payment sheet. In TEST environment, or if a merchant isn't recognized, a "Pay Unverified Merchant" message is displayed in the payment sheet. type: string example: www.example.com merchantKey: allOf: - $ref: '#/components/schemas/Uuid' - description: Unique identifier for your integration. Should be used as gateway merchant id. allowedCardNetworks: description: One or more card networks supported by Payments Gateway, also supported by the Google Pay API. type: array items: type: string enum: - AMEX - DISCOVER - INTERAC - JCB - MASTERCARD - VISA serverUrl: description: The URL to the Mobile Pay Server. type: string example: https://www.example.com/api/ action: description: Next action to be performed by merchant (or consumer) to complete the payment. anyOf: - type: 'null' - type: object properties: redirect: type: object properties: url: description: URL where consumer should be redirected to by the merchant to perform the payment. This url is only available when a card payment has been started type: string format: url example: https://checkout.tld/3ds/v2/creditcard/123 createdAt: $ref: '#/components/schemas/Datetime' refunds: $ref: '#/components/schemas/Refunds' - $ref: '#/components/schemas/ReturnUrl' examples: initializedGooglePay: summary: Initialized Google Pay transaction (awaiting authorization) value: id: 11111111-1111-1111-1111-111111111111 orderId: 22222222-2222-2222-2222-222222222222 reference: 20240612104501 amount: 1200 currency: EUR description: Order at yourdomain.tld expiresAt: '2025-06-24T12:48:21Z' language: nl country: NL status: OPEN details: merchantCountry: NL allowedCardNetworks: - MASTERCARD - VISA merchantName: Your Merchant environment: TEST action: null createdAt: '2025-06-23T12:48:24Z' returnUrl: https://tradename.tld/shop/return/?purchase=PO1234567 authorizedGooglePay: summary: Authorized Google Pay transaction value: id: 33333333-3333-3333-3333-333333333333 orderId: 22222222-2222-2222-2222-222222222222 reference: 20240612104501 amount: 1200 currency: EUR description: Order at yourdomain.tld expiresAt: '2025-06-24T12:48:21Z' language: nl country: NL status: AUTHORIZED action: null createdAt: '2025-06-23T12:48:24Z' returnUrl: https://tradename.tld/shop/return/?purchase=PO1234567 BulkIdealQRResponse: description: iDEAL-QR details when created in bulk. Depending on the scenario, the response might include an error or the array of Qr codes indicating details regarding which qr codes have been successfully created and which ones not. **A 200 response status code does not guarantee that all Qr codes have been created, the client must check the response body**. headers: Digest: $ref: '#/components/headers/Digest' content: application/json: schema: oneOf: - $ref: '#/components/schemas/BulkIdealQRCodesResponseItem' - $ref: '#/components/schemas/BulkIdealQRCodeErrorResponseItem' examples: IDEALQRBulkOperation: $ref: '#/components/examples/IDEALQRBulkOperation' IN3Transaction: description: IN3 transaction details headers: Digest: $ref: '#/components/headers/Digest' content: application/json: schema: allOf: - type: object required: - id - invoice - reference - amount - consumer - description - expiresAt - items - status - created - updated - action properties: id: $ref: '#/components/schemas/Uuid' invoice: type: object required: - reference - description - amount properties: reference: $ref: '#/components/schemas/Reference' amount: $ref: '#/components/schemas/Amount' description: type: string example: Order at yourdomain.tld consumer: $ref: '#/components/schemas/schemas-Consumer' expiresAt: $ref: '#/components/schemas/Datetime' items: $ref: '#/components/schemas/IN3Items' status: $ref: '#/components/schemas/TransactionStatus' action: description: Next action to be performed by merchant (or consumer) to complete the payment. type: - object - 'null' properties: redirect: type: object properties: url: description: URL where consumer should be redirected to by the merchant to perform the payment. This url is only available when a card payment has been started type: string format: url example: https://checkout.tld/redirect/in3 created: $ref: '#/components/schemas/Datetime' updated: $ref: '#/components/schemas/Datetime' webhooks: $ref: '#/components/schemas/TransactionWebhooks' - $ref: '#/components/schemas/ReturnURLOneOf' examples: openTransaction: $ref: '#/components/examples/examples-BasicTransaction' openTransactionNoItems: $ref: '#/components/examples/BasicTransactionNoItems' RefundResponse: description: Refund details headers: Digest: $ref: '#/components/headers/Digest' content: application/json: schema: $ref: '#/components/schemas/RefundDetails' ApplePayTransaction: description: | Apple Pay transaction details headers: Digest: $ref: '#/components/headers/Digest' content: application/json: schema: allOf: - type: object required: - id - orderId - reference - amount - currency - description - expiresAt - language - country - status - createdAt properties: id: $ref: '#/components/schemas/Uuid' orderId: $ref: '#/components/schemas/Uuid' reference: $ref: '#/components/schemas/Reference' amount: $ref: '#/components/schemas/Amount' currency: $ref: '#/components/schemas/Currency' description: type: string example: Order at yourdomain.tld expiresAt: $ref: '#/components/schemas/Datetime' language: $ref: '#/components/schemas/Language' country: $ref: '#/components/schemas/Country' webhooks: $ref: '#/components/schemas/TransactionWebhooks' status: $ref: '#/components/schemas/TransactionStatus' details: description: | The details that are necessary to render the Apple Pay button in your own checkout page during the initialize payment flow. In consequent flows the details object will be null. anyOf: - type: object properties: merchantCountry: description: The ISO 3166-1 alpha-2 country code where the transaction is processed. type: string example: DE serverUrl: description: The URL to the Mobile Pay Server. type: string example: https://www.example.com/api/ allowedCardNetworks: description: The supported card networks for Payment via Apple Pay. type: array items: type: string enum: - visa - maestro - masterCard merchantName: description: The name to display on the the payment sheet. type: string example: My Merchant Name createdAt: $ref: '#/components/schemas/Datetime' refunds: $ref: '#/components/schemas/Refunds' - $ref: '#/components/schemas/ReturnUrl' StartApplePayPayment: description: Start Apple Pay payment details headers: Digest: $ref: '#/components/headers/Digest' content: application/json: schema: allOf: - description: Apple Pay start session for payment response. The returned response is the opaque Apple Pay merchant session in string format. This response must be passed as-is to the Apple Pay services in the frontend. type: object properties: displayName: type: string example: My Merchant display name domainName: type: string example: my-merchant-domain epochTimestamp: type: integer example: 1689601984961 expiresAt: type: integer example: 1689601984961 merchantIdentifier: type: string example: A25210A72D2148E13005A300DFF6435FB401C317CF84C881D9D4018F67BA7D1E merchantSessionIdentifier: type: string example: SSHB12847F0ACB6478B9C1140CED6216A91_916523AAED1343F5BC5815E12BEE9250AFFDC1A17C46B0DE5A943F0F94927C24 nonce: type: string example: 83ds18s operationalAnalyticsIdentifier: type: string example: A25210A72D2148E13005A300DFF6435FB401C317CF84C881D9D4018F67BA7D1E pspId: type: string example: A25210A72D2148E13005A300DFF6435FB401C317CF84C881D9D4018F67BA7D1E retries: type: integer example: 0 signature: type: string example: 308006092a864886f70d010702a0803080020101310d300b0609608648016503040201308006092a864886f70d0107010000a080308203e330820388a00302010202084c304149519d5436300a06082a8648ce3d040302307a312e302c06035504030c254170706c65204170706c69636174696f6e20496e746567726174696f6e204341202d20473331263024060355040b0c1d4170706c652043657274696669636174696f6e20417574686f7269747931133011060355040a0c0a4170706c6520496e632e310b3009060355040613025553301e170d3139303531383031333235375a170d3234303531363031333235375a305f3125302306035504030c1c6563632d736d702d62726f6b65722d7369676e5f5543342d50524f4431143012060355040b0c0b694f532053797374656d7331133011060355040a0c0a4170706c6520496e632e310b30090603550406130255533059301306072a8648ce3d020106082a8648ce3d03010703420004c21577edebd6c7b2218f68dd7090a1218dc7b0bd6f2c283d846095d94af4a5411b83420ed811f3407e83331f1c54c3f7eb3220d6bad5d4eff49289893e7c0f13a38202113082020d300c0603551d130101ff04023000301f0603551d2304183016801423f249c44f93e4ef27e6c4f6286c3fa2bbfd2e4b304506082b0601050507010104393037303506082b060105050730018629687474703a2f2f6f6373702e6170706c652e636f6d2f6f63737030342d6170706c65616963613330323082011d0603551d2004820114308201103082010c06092a864886f7636405013081fe3081c306082b060105050702023081b60c81b352656c69616e6365206f6e207468697320636572746966696361746520627920616e7920706172747920617373756d65732061636365707461... AuthorizedApplePayTransaction: description: Authorize Apple Pay transaction details headers: Digest: $ref: '#/components/headers/Digest' content: application/json: schema: allOf: - type: object required: - id - orderId - reference - amount - currency - description - expiresAt - language - country - status - createdAt - action properties: id: $ref: '#/components/schemas/Uuid' orderId: $ref: '#/components/schemas/Uuid' reference: $ref: '#/components/schemas/Reference' amount: $ref: '#/components/schemas/Amount' currency: $ref: '#/components/schemas/Currency' description: type: string example: Order at yourdomain.tld expiresAt: $ref: '#/components/schemas/Datetime' language: $ref: '#/components/schemas/Language' country: $ref: '#/components/schemas/Country' webhooks: $ref: '#/components/schemas/TransactionWebhooks' status: $ref: '#/components/schemas/TransactionStatus' details: description: | The details that are necessary to render the Apple Pay button in your own checkout page during the initialize payment flow. In consequent flows the details object will be null. type: object properties: merchantCountry: description: The ISO 3166-1 alpha-2 country code where the transaction is processed. type: string example: DE serverUrl: description: The URL to the Mobile Pay Server. type: string example: https://www.example.com/api/ allowedCardNetworks: description: The supported card networks for Payment via Apple Pay. type: array items: type: string enum: - visa - maestro - masterCard merchantName: description: The name to display on the the payment sheet. type: string example: My Merchant Name action: description: Next action to be performed by merchant (or consumer) to complete the payment. type: object properties: redirect: type: object properties: url: description: URL where consumer should be redirected to by the merchant to perform the payment. This url is only available when a card payment has been started type: string format: url example: https://checkout.tld/3ds/v2/creditcard/123 createdAt: $ref: '#/components/schemas/Datetime' refunds: $ref: '#/components/schemas/Refunds' - $ref: '#/components/schemas/ReturnUrl' examples: openBancontact: summary: Open Bancontact transaction value: id: ce19b9c6-53db-4582-bda2-52c07816f4c9 orderId: 3a0a59a4-4a82-4e37-865f-15537af44439 reference: '20210623130413' amount: 1200 currency: EUR description: Order at yourdomain.tld expiresAt: '2025-06-02T15:04:05Z' language: nl country: BE webhooks: - url: https://yourdomain.tld/payment-webhooks?purchaseId=order123 events: - STATUS_CHANGE - url: https://yourdomain.tld/payment-webhooks?purchaseId=order123 events: - PAYMENT_CREATED status: OPEN action: qrcode: url: https://test.docdatapayments.com/ps_sim/qrcode/image?intentUrl=https://test.docdatapayments.com/ps_sim/tma/transactions/start?merchant_key=ecaa39a2-d280-4330-8bce-3468e94b0baa&order_key=B6834645BF5D2851E134097CE1AE7732&logoPath=https://static.cmpayments.com/ps/images/simulators/bancontact_qr_logo.png intent: url: https://test.docdatapayments.com/ps_sim/tma/transactions/start?merchant_key=ecaa39a2-d280-4330-8bce-3468e94b0baa&order_key=B6834645BF5D2851E134097CE1AE7732 createdAt: '2025-05-27T13:03:04Z' returnUrl: https://yourdomain.tld/order/return?orderID=order123 openBancontactCard: summary: Open Bancontact Card transaction value: id: 8567aea7-92fa-471b-bd66-2c39b314c014 action: redirect: url: https://checkout.gateway.acceptance.cmpayments.nl/3ds/bancontact/8567aea7-92fa-471b-bd66-2c39b314c014 successBancontact: summary: Successful Bancontact transaction value: id: ce19b9c6-53db-4582-bda2-52c07816f4c9 orderId: 3a0a59a4-4a82-4e37-865f-15537af44439 reference: '20210623130413' amount: 1200 currency: EUR description: Order at yourdomain.tld expiresAt: '2025-06-02T15:04:05Z' language: nl country: BE webhooks: - url: https://yourdomain.tld/payment-webhooks?purchaseId=order123 events: - STATUS_CHANGE - url: https://yourdomain.tld/payment-webhooks?purchaseId=order123 events: - PAYMENT_CREATED status: SUCCESS action: null createdAt: '2025-05-28T11:53:32Z' returnUrl: https://yourdomain.tld/order/return?orderID=order123 cancelledBancontact: summary: Cancelled Bancontact transaction value: id: 8567aea7-92fa-471b-bd66-2c39b314c014 orderId: 3cbbda78-9da1-497e-98cb-e7a7ecb672f6 reference: '20210623130413' amount: 1200 currency: EUR description: Order at yourdomain.tld expiresAt: '2025-06-02T15:04:05Z' language: nl country: BE webhooks: - url: https://yourdomain.tld/payment-webhooks?purchaseId=order123 events: - STATUS_CHANGE - url: https://yourdomain.tld/payment-webhooks?purchaseId=order123 events: - PAYMENT_CREATED status: CANCELLED action: null createdAt: '2025-05-27T13:36:24Z' returnUrl: https://yourdomain.tld/order/return?orderID=order123 successBancontactRefund: summary: Successful Bancontact refund value: id: 620fd54b-1dd9-46a2-a926-2f0a11aca741 orderId: b3789760-865c-438e-bb5b-498e2cd84334 reference: '20210623130413' amount: 1200 currency: EUR description: Order at yourdomain.tld expiresAt: '2025-06-02T15:04:05Z' language: nl country: BE webhooks: - url: https://yourdomain.tld/payment-webhooks?purchaseId=order123 events: - STATUS_CHANGE status: SUCCESS action: null createdAt: '2025-05-28T11:53:32Z' returnUrl: https://yourdomain.tld/order/return?orderID=order123 refunds: refundedAmount: 0 refundedPendingAmount: 1200 bancontactTransactionPaymentsPaginated: summary: BanContact transaction payments with pagination value: total: 3 pageSize: 10 payments: - id: bdfbea5e-ed6d-44f0-abe7-d126b61e412f orderId: ce19b9c6-53db-4582-bda2-52c07816f4c9 status: SUCCESS paidAmount: 1200 createdAt: '2025-05-27T13:03:04Z' expiresAt: '2025-06-02T15:04:05Z' - id: fe8560dd-799e-4651-8779-69ab534a3f17 orderId: ce19b9c6-53db-4582-bda2-52c07816f4c9 status: OPEN paidAmount: 1200 createdAt: '2025-05-28T11:53:32Z' expiresAt: '2025-06-02T15:04:05Z' - id: 069d5831-d004-4665-8653-da70298bf36a orderId: ce19b9c6-53db-4582-bda2-52c07816f4c9 status: CANCELLED paidAmount: 0 createdAt: '2025-05-28T12:00:00Z' expiresAt: '2025-06-02T15:04:05Z' authorizeGooglePay: summary: Authorize Google Pay payment value: paymentMethodData: description: Visa •••• 1111 info: cardDetails: '1111' cardNetwork: VISA tokenizationData: token: '{...GooglePaySignedToken...}' standard: summary: Standard transaction value: reference: 5e6baea7-607c-438a-aaba-b06ce0ae7776 amount: 89999 description: Your order at My Web Shop. expiresAt: '2025-05-21T14:17:44.491Z' language: nl consumer: address: countryCode: NL email: john.doe@email.tld cardDetails: cardProvider: visa browserInformation: shopperIp: 1.1.1.1 accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 userAgent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36 Edge/18.18363 encryptedCardDetails: data: VFg2yfiuguitrE4CoGC8IkAlwhDEJKqLLyuW6OnXwh/wtnndR9RDrhTwskv0EdpTnps1X/VMe2Y0vA3duPdKXLAWCzJMlFf8Mfx58OKXcVsTly/odz49t42Z/LP1Ym2Y2qhj8GY7AQBVlM1Un7EQCQFZk4W5rS7lFZmuIKm/VaI9EWpgfwu9QNfqzs8Asy2sLvFJUwVwjXdosCcZuP5sTLx2Qo3REj/lqgbsDssfg9vmH2JJd0fhhUKeUxnQpvbJhZVAxH6ZrOcQsXVPLRJm7Xk32iVqnvEDuZiUai+2T6SEeBiH+h7+7LYcL6OX8+BZ5X53JLN3FxqcjvaP094l0w==|Y2xpZW50c2lkZS0z returnUrl: https://tradename.tld/shop/return/?purchase=PO1234567 openCard: summary: Open transaction value: id: 0264f864-c815-47cb-9e1f-fe7ba4326565 orderId: 6c166afa-ae48-467d-8eed-fdbbf2f30198 reference: b63fcd00-6643-4387-a47a-1d0044bb989e amount: 89999 currency: EUR cardProvider: visa description: Your order at My Web Shop. expiresAt: '2025-05-21T13:53:31Z' language: nl country: NL status: OPEN action: redirect: url: https://checkout.gateway.acceptance.cmpayments.nl/3ds/creditcard/0264f864-c815-47cb-9e1f-fe7ba4326565 createdAt: '2025-05-20T13:53:36Z' returnUrl: https://cm.com successCard: summary: Successful transaction (also applicable for FAILED, EXPIRED or CANCELLED) value: id: 0264f864-c815-47cb-9e1f-fe7ba4326565 orderId: 6c166afa-ae48-467d-8eed-fdbbf2f30198 reference: b63fcd00-6643-4387-a47a-1d0044bb989e amount: 89999 currency: EUR cardProvider: visa description: Your order at My Web Shop. expiresAt: '2025-05-21T13:53:31Z' language: nl country: NL status: SUCCESS action: null createdAt: '2025-05-20T13:53:36Z' returnUrl: https://cm.com refundCard: summary: Partially pending refunded creditcard transaction value: id: 0264f864-c815-47cb-9e1f-fe7ba4326565 orderId: 6c166afa-ae48-467d-8eed-fdbbf2f30198 reference: b63fcd00-6643-4387-a47a-1d0044bb989e amount: 89999 currency: EUR cardProvider: visa description: Your order at My Web Shop. expiresAt: '2025-05-21T13:53:31Z' language: nl country: NL status: SUCCESS action: null createdAt: '2025-05-20T13:53:36Z' returnUrl: https://cm.com refunds: refundedAmount: 0 refundedPendingAmount: 600 standardIdeal: summary: Standard transaction value: reference: bcbb3733-4d3e-4a4d-9254-1ddb90e6e081 amount: 5999 purchaseId: PO1234567 description: Your order at My Web Shop. returnUrl: https://tradename.tld/shop/return/?purchase=PO1234567 webhook: summary: Standard transaction with webhook subscription value: reference: bcbb3733-4d3e-4a4d-9254-1ddb90e6e081 amount: 5999 purchaseId: PO1234567 description: Your order at My Web Shop. returnUrl: https://tradename.tld/shop/return/?purchase=PO1234567 webhooks: - url: https://yourdomain.tld/order-webhooks?purchaseId=order123 events: - STATUS_CHANGE - REFUND_STATUS fastCheckout: summary: Fast Checkout value: reference: bcbb3733-4d3e-4a4d-9254-1ddb90e6e081 amount: 5999 purchaseId: PO1234567 description: Your order at My Web Shop. returnUrl: https://tradename.tld/shop/return/?purchase=PO1234567 checkout: shippingCost: 100 requestedDetails: debtorContactDetails: firstName: true lastName: true phoneNumber: false email: true shippingAddress: true invoiceAddress: false payFastRequestUserToken: summary: Request a Pay Fast user-token value: reference: bcbb3733-4d3e-4a4d-9254-1ddb90e6e081 amount: 5999 purchaseId: PO1234567 description: Your order at My Web Shop. returnUrl: https://tradename.tld/shop/return/?purchase=PO1234567 requestUserToken: true payFast: summary: Pay Fast value: reference: bcbb3733-4d3e-4a4d-9254-1ddb90e6e081 amount: 5999 purchaseId: PO1234567 description: Your order at My Web Shop. returnUrl: https://tradename.tld/shop/return/?purchase=PO1234567 expectedDebtor: userToken: Z7xmaEJlB3rDLpmln9xbUlaQ, userAgent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36 Edg/134.0.0.0 openIdeal: summary: Open transaction value: id: 72149cbf-d4a1-4309-9872-6ec19fa782cc orderId: 68dcf257-b15d-4a86-9baa-4cf60c6c8a5c reference: bcbb3733-4d3e-4a4d-9254-1ddb90e6e081 amount: 5999 currency: EUR purchaseId: PO1234567 description: Your order at My Web Shop. expiresAt: '2025-05-08T17:36:50Z' language: nl idealTransactionId: null status: OPEN action: redirect: url: https://ideal.acceptance.cmpayments.nl/issuermock/8153309507457504?ec=7wgoao5EJ7qDo8yT373ic1pOfQY9S81B02xbDRXO createdAt: '2025-05-08T17:06:49Z' returnUrl: https://tradename.tld/shop/return/?purchase=PO1234567 successIdeal: summary: Successful transaction (also applicable for FAILED, EXPIRED or CANCELLED) value: id: 72149cbf-d4a1-4309-9872-6ec19fa782cc orderId: 68dcf257-b15d-4a86-9baa-4cf60c6c8a5c reference: bcbb3733-4d3e-4a4d-9254-1ddb90e6e081 amount: 5999 currency: EUR purchaseId: PO1234567 description: Your order at My Web Shop. expiresAt: '2025-05-08T17:36:50Z' language: nl idealTransactionId: '8153248198760451' status: SUCCESS action: null createdAt: '2025-05-08T17:06:49Z' returnUrl: https://tradename.tld/shop/return/?purchase=PO1234567 consumer: name: J. Doe bic: TESTXX10 iban: NL57TEST0890594562 iDEALCheckout: summary: Fast Checkout value: id: 72149cbf-d4a1-4309-9872-6ec19fa782cc orderId: 68dcf257-b15d-4a86-9baa-4cf60c6c8a5c reference: bcbb3733-4d3e-4a4d-9254-1ddb90e6e081 amount: 5999 currency: EUR purchaseId: PO1234567 description: Your order at My Web Shop. expiresAt: '2025-05-08T17:36:50Z' language: nl idealTransactionId: '8153248198760451' status: SUCCESS action: null createdAt: '2025-05-08T17:06:49Z' returnUrl: https://tradename.tld/shop/return/?purchase=PO1234567 checkout: shippingCost: 100 requestedDetails: debtorContactDetails: firstName: true lastName: true phoneNumber: false email: true shippingAddress: true invoiceAddress: false consumer: name: J. Doe bic: TESTXX10 iban: NL57TEST0890594562 checkoutDetails: contactDetails: firstName: John email: john.doe@cm.com shippingAddress: firstName: John lastName: Doe street: Konijnenberg houseNumber: '24' postalCode: 4825BD city: Breda countryName: Netherlands examples-payFast: summary: Pay Fast value: id: 7893d743-9363-45a9-a63c-9691f07f55ee amount: 5999 purchaseID: PO1234567 description: Your order at My Web Shop. reference: bcbb3733-4d3e-4a4d-9254-1ddb90e6e081 language: nl expiresAt: '2024-07-22T15:34:05Z' returnUrl: https://tradename.tld/shop/return/?purchase=PO1234567 status: OPEN expectedDebtor: userToken: Z7xmaEJlB3rDLpmln9xbUlaQ userAgent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36 Edg/134.0.0.0 checkoutUrl: https://issuer.tld/ideal/start?trxid=1234567890123456&random=wreq0dq90vgq0ew923123 notificationResult: PUSH_SENT_SHOW_WAITING_SCREEN transactionId: null consumer: null createdAt: '2024-07-22T15:04:05Z' updatedAt: '2024-07-22T15:04:05Z' refundIdeal: summary: Refund transaction value: id: 72149cbf-d4a1-4309-9872-6ec19fa782cc orderId: 68dcf257-b15d-4a86-9baa-4cf60c6c8a5c reference: bcbb3733-4d3e-4a4d-9254-1ddb90e6e081 amount: 5999 currency: EUR purchaseId: PO1234567 description: Your order at My Web Shop. expiresAt: '2025-05-08T17:36:50Z' language: nl idealTransactionId: 8153248198760451 status: SUCCESS action: null createdAt: '2025-05-08T17:06:49Z' returnUrl: https://tradename.tld/shop/return/?purchase=PO1234567 consumer: name: J. Doe bic: TESTXX10 iban: NL57TEST0890594562 refunds: refundedAmount: 3999 refundedPendingAmount: 2000 standardIdealQRNonReusable: summary: Standard non-reusable QR transaction value: amount: 998 currency: EUR description: Order at yourdomain.tld expiresAt: '2025-09-03T11:30:39.560Z' language: nl reference: '20250903120956' returnUrls: success: https://yourdomain.tld/order/payment-success.html cancelled: https://yourdomain.tld/order/payment-cancelled.html expired: https://yourdomain.tld/order/payment-expired.html failed: https://yourdomain.tld/order/payment-failed.html size: 200 purchaseId: order123 reusable: false standardIdealQRReusable: summary: Standard reusable QR transaction value: amount: 998 currency: EUR description: Order at yourdomain.tld expiresAt: '2025-09-03T11:30:39.560Z' language: nl reference: '20250903120956' returnUrls: success: https://yourdomain.tld/order/payment-success.html cancelled: https://yourdomain.tld/order/payment-cancelled.html expired: https://yourdomain.tld/order/payment-expired.html failed: https://yourdomain.tld/order/payment-failed.html size: 200 purchaseId: order123 reusable: true standardIdealQRNonReusableWithWebhook: summary: Standard non-reusable QR transaction with webhook subscription value: amount: 998 currency: EUR description: Order at yourdomain.tld expiresAt: '2025-09-03T12:44:11.471Z' language: nl reference: '20250903130947' returnUrls: success: https://yourdomain.tld/order/payment-success.html cancelled: https://yourdomain.tld/order/payment-cancelled.html expired: https://yourdomain.tld/order/payment-expired.html failed: https://yourdomain.tld/order/payment-failed.html size: 200 purchaseId: order123 reusable: false webhooks: - url: https://yourdomain.tld/order-webhooks?purchaseId=order123 events: - STATUS_CHANGE - url: https://yourdomain.tld/order-webhooks?purchaseId=order123 events: - QR_PAYMENT_CREATED standardIdealQRSingleReturnUrl: summary: Standard non-reusable QR transaction with a single return URL value: amount: 998 currency: EUR description: Order at yourdomain.tld expiresAt: '2025-09-03T11:30:39.560Z' language: nl reference: '20250903120956' returnUrl: https://yourdomain.tld/order/order-complete.html size: 200 purchaseId: order123 reusable: false standardIdealQRWithChangeableAmount: summary: Standard non-reusable QR transaction with changeable amount value: amountChangeable: min: 100 max: 998 amount: 998 description: Order at yourdomain.tld expiresAt: '2025-09-04T07:53:41.785Z' language: nl reference: '20250904080978' returnUrls: success: https://yourdomain.tld/order/payment-success.html cancelled: https://yourdomain.tld/order/payment-cancelled.html expired: https://yourdomain.tld/order/payment-expired.html failed: https://yourdomain.tld/order/payment-failed.html size: 200 currency: EUR purchaseId: order123 reusable: false webhooks: - url: https://yourdomain.tld/order-webhooks?purchaseId=order123 events: - STATUS_CHANGE - url: https://yourdomain.tld/order-webhooks?purchaseId=order123 events: - QR_PAYMENT_CREATED openIdealQR: summary: Open iDEAL-QR transaction value: id: 3bfb2b3f-add7-438d-8769-a17acb78cb9c reference: '20250903130947' amount: 998 currency: EUR purchaseId: order123 description: Order at yourdomain.tld size: 200 expiresAt: '2025-09-03T12:44:11Z' reusable: false language: nl webhooks: - url: https://cm.com/order-webhooks?purchaseId=order123 events: - STATUS_CHANGE - url: https://cm.com/order-webhooks?purchaseId=order123 events: - QR_PAYMENT_CREATED status: OPEN action: qrcode: id: 4696ae57-73b7-4577-b866-9f55108cf06a url: https://ideal-qr3.acceptance.cmpayments.nl/qrcode/4696ae57-73b7-4577-b866-9f55108cf06a href: https://ideal-qr3.acceptance.cmpayments.nl/4696ae57-73b7-4577-b866-9f55108cf06a createdAt: '2025-09-03T11:44:11Z' returnUrls: success: https://yourdomain.tld/order/payment-success.html cancelled: https://yourdomain.tld/order/payment-cancelled.html expired: https://yourdomain.tld/order/payment-expired.html failed: https://yourdomain.tld/order/payment-failed.html successIdealQR: summary: Successful iDEAL-QR transaction (also applicable for FAILED, EXPIRED or CANCELLED) value: id: 3bfb2b3f-add7-438d-8769-a17acb78cb9c reference: '20250903130947' amount: 998 currency: EUR purchaseId: order123 description: Order at yourdomain.tld size: 200 expiresAt: '2025-09-03T12:44:11Z' reusable: false language: nl webhooks: - url: https://cm.com/order-webhooks?purchaseId=order123 events: - STATUS_CHANGE - url: https://cm.com/order-webhooks?purchaseId=order123 events: - QR_PAYMENT_CREATED status: SUCCESS action: null createdAt: '2025-09-03T11:44:12Z' returnUrls: success: https://yourdomain.tld/order/payment-success.html cancelled: https://yourdomain.tld/order/payment-cancelled.html expired: https://yourdomain.tld/order/payment-expired.html failed: https://yourdomain.tld/order/payment-failed.html openIdealQRWithChangeableAmount: summary: Open iDEAL-QR transaction with changeable amount value: id: 145d2793-0b63-4900-8186-3c38ebb1495a reference: '20250904080978' amountChangeable: min: 100 max: 998 amount: 998 currency: EUR purchaseId: order123 description: Order at yourdomain.tld size: 200 expiresAt: '2025-09-04T07:53:41Z' reusable: false language: nl webhooks: - url: https://yourdomain.tld/order-webhooks?purchaseId=order123 events: - STATUS_CHANGE - url: https://yourdomain.tld/order-webhooks?purchaseId=order123 events: - QR_PAYMENT_CREATED status: OPEN action: qrcode: id: c38f0fff-50c1-44e4-896f-72d3d2925a3b url: https://ideal-qr3.acceptance.cmpayments.nl/qrcode/c38f0fff-50c1-44e4-896f-72d3d2925a3b href: https://ideal-qr3.acceptance.cmpayments.nl/c38f0fff-50c1-44e4-896f-72d3d2925a3b createdAt: '2025-09-04T06:53:42Z' returnUrls: success: https://yourdomain.tld/order/payment-success.html cancelled: https://yourdomain.tld/order/payment-cancelled.html expired: https://yourdomain.tld/order/payment-expired.html failed: https://yourdomain.tld/order/payment-failed.html IdealQRTransactionPaymentsPaginated: summary: iDEAL-QR transaction payments with pagination value: total: 6 pageSize: 10 payments: - payment: bdfbea5e-ed6d-44f0-abe7-d126b61e412f transaction: cfe90b10-c65f-4b59-a085-19931f6b47e1 idealTransactionId: '8153735735281444' status: SUCCESS createdAt: '2025-09-04T10:27:49.236034Z' amount: 998 consumerName: Pino the Bird consumerBIC: TESTNL2A consumerIBAN: NL44RABO0123456789 - payment: fe8560dd-799e-4651-8779-69ab534a3f17 transaction: cfe90b10-c65f-4b59-a085-19931f6b47e1 idealTransactionId: '8153854535491972' status: SUCCESS createdAt: '2025-09-04T10:27:56.285859Z' amount: 998 consumerName: Pino the Bird consumerBIC: TESTNL2A consumerIBAN: NL44RABO0123456789 - payment: 069d5831-d004-4665-8653-da70298bf36a transaction: cfe90b10-c65f-4b59-a085-19931f6b47e1 idealTransactionId: '8153684217461075' status: CANCELLED createdAt: '2025-09-04T10:28:07.64271Z' - payment: f4f4c527-d655-4d3b-96fb-7bf6def22339 transaction: cfe90b10-c65f-4b59-a085-19931f6b47e1 idealTransactionId: null status: FAILURE createdAt: '2025-09-04T10:28:18.808211Z' - payment: e36d4dd4-8a6b-4d16-b9fe-d20bb4c30a2b transaction: cfe90b10-c65f-4b59-a085-19931f6b47e1 idealTransactionId: '8153346629373592' status: SUCCESS createdAt: '2025-09-04T10:28:26.719312Z' amount: 998 consumerName: Pino the Bird consumerBIC: TESTNL2A consumerIBAN: NL44RABO0123456789 - payment: ba197271-7d72-423e-8b32-c8a21999fdea transaction: cfe90b10-c65f-4b59-a085-19931f6b47e1 idealTransactionId: '8153086026371687' status: SUCCESS createdAt: '2025-09-04T10:28:34.935229Z' amount: 998 consumerName: Pino the Bird consumerBIC: TESTNL2A consumerIBAN: NL44RABO0123456789 IDEALQRPaymentsSummaryByStatus: summary: iDEAL-QR transaction payments filtered by status value: - status: SUCCESS count: 4 amount: 3992 IDEALQRAllPaymentsSummary: summary: iDEAL-QR transaction payments without filtering by status value: - status: EXPIRED count: 0 amount: 0 - status: CANCELLED count: 1 amount: 998 - status: SUCCESS count: 4 amount: 3992 - status: OPEN count: 0 amount: 0 - status: FAILURE count: 1 amount: 998 bulkOperationQRCodes: summary: Standard creation of a set of iDEAL-QR transactions non-default value: qrcodes: - amountChangeable: min: 1 max: 50000 reference: reference1 amount: 1200 currency: EUR purchaseId: order123 description: Order at yourdomain.tld expiresAt: '2025-09-04T07:53:41.785Z' reusable: false size: 200 language: nl webhooks: - url: https://yourdomain.tld/order-webhooks?purchaseId=order123 events: - STATUS_CHANGE - url: https://yourdomain.tld/order-webhooks?purchaseId=order123 events: - STATUS_CHANGE - url: https://yourdomain.tld/payment-webhooks?purchaseId=order123 events: - QR_PAYMENT_CREATED returnUrls: success: https://yourdomain.tld/order/payment-success.html cancelled: https://yourdomain.tld/order/payment-cancelled.html expired: https://yourdomain.tld/order/payment-expired.html failed: https://yourdomain.tld/order/payment-failed.html - amountChangeable: min: 1 max: 50000 reference: reference2 amount: 500 currency: EUR purchaseId: order9876 description: Order at yourdomain.tld expiresAt: '2025-09-04T07:53:41.785Z' reusable: false size: 200 language: nl webhooks: - url: https://yourdomain.tld/order-webhooks?purchaseId=order9876 events: - STATUS_CHANGE - url: https://yourdomain.tld/payment-webhooks?purchaseId=order9876 events: - QR_PAYMENT_CREATED returnUrls: success: https://yourdomain.tld/order/payment-success.html cancelled: https://yourdomain.tld/order/payment-cancelled.html expired: https://yourdomain.tld/order/payment-expired.html failed: https://yourdomain.tld/order/payment-failed.html IDEALQRBulkOperation: summary: Bulk operation response value: qrcodes: - created: true transaction: id: 193cb243-283a-4760-9c56-8a6444d588b2 action: qrcode: id: effb41f2-e4fe-4f2a-bde5-674e32a69429 url: https://ideal-qr3.acceptance.cmpayments.nl/qrcode/effb41f2-e4fe-4f2a-bde5-674e32a69429 - created: true transaction: id: 4572f0f6-6fba-4338-a5c8-6be56b9241b0 action: qrcode: id: 48ea462c-5721-48e2-b50d-2eb29d7128dc url: https://ideal-qr3.acceptance.cmpayments.nl/qrcode/48ea462c-5721-48e2-b50d-2eb29d7128dc BasicTransaction: summary: Standard transaction value: invoice: reference: de890044-b3b7-47e2-9d10-4a52a21a6eb3 amount: 12000 description: Order at My Web Shop. expiresAt: '2025-09-25T17:03:48.456Z' consumer: name: lastName: Doe phone: '+31695613259' email: john.doe@email.tld dateOfBirth: '1996-12-31' shippingAddress: street: Rustenburgerlaan houseNumber: '25' postalCode: 2012AL city: Haarlem countryCode: NL items: - code: SDC4/32GB-2ADP description: Best seller SD card unitPrice: 6000 quantity: 2 vatAmount: 1000 vatRate: 20 returnUrl: https://yourdomain.tld/order/payment-completed.html BasicTransactionNoItems: summary: Open in3 transaction without items value: id: 60a4571e-1711-48d5-808c-50739eb652af status: OPEN webhooks: - url: https://yourdomain.tld/payment-webhooks?purchaseId=order123 events: - STATUS_CHANGE returnUrls: success: https://yourdomain.tld/order/payment-success.html cancelled: https://yourdomain.tld/order/payment-cancelled.html expired: https://yourdomain.tld/order/payment-expired.html failed: https://yourdomain.tld/order/payment-failed.html invoice: reference: '202106231304112' amount: 12000 description: Order at yourdomain.tld consumer: name: initials: A lastName: Lopez phone: '+31695613259' email: john.doe@email.tld dateOfBirth: '1996-12-31' shippingAddress: addressedTo: Scenius street: Rustenburgerlaan houseNumber: '25' houseNumberSuffix: A postalCode: 2012AL city: Haarlem countryCode: NL state: Noord-Holland invoiceAddress: addressedTo: Scenius street: Rustenburgerlaan houseNumber: '25' houseNumberSuffix: A postalCode: 2012AL city: Haarlem countryCode: NL state: Noord-Holland business: name: CM cocNumber: '70528500' expiresAt: '2025-09-17T15:04:05Z' items: [] action: redirect: url: https://in3.ideal.nl/33110K9tcpeNE79SfAp7bcW132GdC8d5633078c543m0x40f created: '2025-09-17T09:30:46Z' updated: '2025-09-17T09:30:46Z' examples-BasicTransaction: summary: Open in3 transaction value: id: bf4ca95d-3904-474b-bac2-dc25de3647d2 status: OPEN webhooks: - url: https://yourdomain.tld/payment-webhooks?purchaseId=order123 events: - STATUS_CHANGE returnUrls: success: https://yourdomain.tld/order/payment-success.html cancelled: https://yourdomain.tld/order/payment-cancelled.html expired: https://yourdomain.tld/order/payment-expired.html failed: https://yourdomain.tld/order/payment-failed.html invoice: reference: '202106231304112' amount: 12000 description: Order at yourdomain.tld consumer: name: initials: A lastName: Lopez phone: '+31695613259' email: john.doe@email.tld dateOfBirth: '1996-12-31' shippingAddress: addressedTo: Scenius street: Rustenburgerlaan houseNumber: '25' houseNumberSuffix: A postalCode: 2012AL city: Haarlem countryCode: NL state: Noord-Holland invoiceAddress: addressedTo: Scenius street: Rustenburgerlaan houseNumber: '25' houseNumberSuffix: A postalCode: 2012AL city: Haarlem countryCode: NL state: Noord-Holland business: name: CM cocNumber: '70528500' expiresAt: '2025-09-17T15:04:05Z' items: - code: SDC4/32GB-2ADP name: Kingston microSD 32GB description: Best seller SD card unitPrice: 600 quantity: 2 vatAmount: 100 vatRate: 20 action: redirect: url: https://in3.ideal.nl/Ue93xA44434161cj1646582d7Naf5RKet8ab3O7553Zf2qv9 created: '2025-09-17T09:12:37Z' updated: '2025-09-17T09:12:37Z' standardKlarna: summary: Standard transaction value: reference: '20210623130413' description: Order at yourdomain.tld expiresAt: '2025-06-02T15:04:05Z' language: nl consumer: name: firstName: John lastName: Lopez address: street: Rustenburgerlaan houseNumber: '25' postalCode: 2012AL city: Haarlem countryCode: NL email: john.doe@email.tld items: - code: SDC4/32GB-2ADP unitPrice: 600 quantity: 2 vatAmount: 100 vatRate: 20 webhooks: - url: https://yourdomain.tld/payment-webhooks?purchaseId=order123 events: - STATUS_CHANGE returnUrl: https://yourdomain.tld/order/payment-success.html openKlarnaTransaction: summary: Open Klarna transaction value: id: a95e9fab-e779-49fd-9dae-0c962a4321c8 orderId: 18a62430-566a-419a-9f8b-09bc9a95d312 reference: '20210623130413' amount: 1200 currency: EUR description: Order at yourdomain.tld expiresAt: '2025-06-02T15:04:05Z' language: nl country: NL items: - code: SDC4/32GB-2ADP name: Kingston microSD 32GB description: Best seller SD card unitPrice: 600 quantity: 2 vatAmount: 100 vatRate: 20 webhooks: - url: https://yourdomain.tld/payment-webhooks?purchaseId=order123 events: - STATUS_CHANGE status: OPEN action: redirect: url: https://pay.playground.klarna.com/eu/hpp/payments/3M908Q1 createdAt: '2025-05-28T13:00:49Z' returnUrl: https://yourdomain.tld/order/payment-success.html successKlarnaTransaction: summary: Successful Klarna transaction value: id: a95e9fab-e779-49fd-9dae-0c962a4321c8 orderId: 18a62430-566a-419a-9f8b-09bc9a95d312 reference: '20210623130413' amount: 1200 currency: EUR description: Order at yourdomain.tld expiresAt: '2025-06-02T15:04:05Z' language: nl country: NL items: - code: SDC4/32GB-2ADP name: Kingston microSD 32GB description: Best seller SD card unitPrice: 600 quantity: 2 vatAmount: 100 vatRate: 20 webhooks: - url: https://yourdomain.tld/payment-webhooks?purchaseId=order123 events: - STATUS_CHANGE status: SUCCESS action: null createdAt: '2025-05-28T13:00:50Z' returnUrl: https://yourdomain.tld/order/payment-success.html successKlarnaRefund: summary: Refund Klarna transaction value: id: a95e9fab-e779-49fd-9dae-0c962a4321c8 orderId: 18a62430-566a-419a-9f8b-09bc9a95d312 reference: '20210623130413' amount: 1200 currency: EUR description: Order at yourdomain.tld expiresAt: '2025-06-02T15:04:05Z' language: nl country: NL items: - code: SDC4/32GB-2ADP name: Kingston microSD 32GB description: Best seller SD card unitPrice: 600 quantity: 2 vatAmount: 100 vatRate: 20 webhooks: - url: https://yourdomain.tld/payment-webhooks?purchaseId=order123 events: - STATUS_CHANGE refunds: refundedAmount: 0 refundedPendingAmount: 1200 status: SUCCESS action: null createdAt: '2025-05-28T13:00:50Z' returnUrl: https://yourdomain.tld/order/payment-success.html StandardAppleInitialize: summary: Standard Apple initialize value: reference: 5e6baea7-607c-438a-aaba-b06ce0ae7776 description: Some Apple payment. amount: 2000 currency: EUR expiresAt: '2025-05-21T14:17:44.491Z' language: nl consumer: address: countryCode: NL email: john.doe@email.tld returnUrl: https://tradename.tld/shop/return/?purchase=PO1234666 webhooks: - url: https://yourdomain.tld/order-webhooks?purchaseId=order123 events: - STATUS_CHANGE - REFUND_STATUS openBelfiusPayButton: summary: Open Belfius Pay Button transaction value: id: 9a3e15f2-8c7b-4d6e-a1f0-3b8e7c4d9a1e orderId: 7f2a8e3d-4c1b-4e9a-8d2f-1a5c3e7b9d4f reference: '20210623130413' amount: 1500 currency: EUR description: Order at yourdomain.tld expiresAt: '2025-06-02T15:04:05Z' language: nl country: BE webhooks: - url: https://yourdomain.tld/payment-webhooks?purchaseId=order123 events: - STATUS_CHANGE status: OPEN action: redirect: url: https://checkout.gateway.cmpayments.nl/belfiuspaybutton/9a3e15f2-8c7b-4d6e-a1f0-3b8e7c4d9a1e createdAt: '2025-05-27T13:03:04Z' returnUrl: https://yourdomain.tld/order/return?orderID=order123 successBelfiusPayButton: summary: Successful Belfius Pay Button transaction value: id: 9a3e15f2-8c7b-4d6e-a1f0-3b8e7c4d9a1e orderId: 7f2a8e3d-4c1b-4e9a-8d2f-1a5c3e7b9d4f reference: '20210623130413' amount: 1500 currency: EUR description: Order at yourdomain.tld expiresAt: '2025-06-02T15:04:05Z' language: nl country: BE webhooks: - url: https://yourdomain.tld/payment-webhooks?purchaseId=order123 events: - STATUS_CHANGE status: SUCCESS action: null createdAt: '2025-05-28T11:53:32Z' returnUrl: https://yourdomain.tld/order/return?orderID=order123 openBankTransfer: summary: Open Bank Transfer transaction value: id: 1b4c8a2e-9d3f-4a7e-b5c1-6f8d2e3a9b7c orderId: 3e7f1a4b-2c8d-4b9e-a6f2-8d1c3b5e7a9f reference: '20210623130413' amount: 2500 currency: EUR description: Order at yourdomain.tld expiresAt: '2025-06-02T15:04:05Z' language: nl country: NL webhooks: - url: https://yourdomain.tld/payment-webhooks?purchaseId=order123 events: - STATUS_CHANGE status: OPEN action: redirect: url: https://checkout.gateway.cmpayments.nl/banktransfer/1b4c8a2e-9d3f-4a7e-b5c1-6f8d2e3a9b7c createdAt: '2025-05-27T13:03:04Z' returnUrl: https://yourdomain.tld/order/return?orderID=order123 successBankTransfer: summary: Successful Bank Transfer transaction value: id: 1b4c8a2e-9d3f-4a7e-b5c1-6f8d2e3a9b7c orderId: 3e7f1a4b-2c8d-4b9e-a6f2-8d1c3b5e7a9f reference: '20210623130413' amount: 2500 currency: EUR description: Order at yourdomain.tld expiresAt: '2025-06-02T15:04:05Z' language: nl country: NL webhooks: - url: https://yourdomain.tld/payment-webhooks?purchaseId=order123 events: - STATUS_CHANGE status: SUCCESS action: null createdAt: '2025-05-28T11:53:32Z' returnUrl: https://yourdomain.tld/order/return?orderID=order123 openSepaDirectDebit: summary: Open SEPA Direct Debit transaction value: id: 5c9e2f8a-7d1b-4a3e-9f6c-2b8d4e1a7c3f orderId: 8d3a1f5b-4c2e-4b7a-a9f6-3e1c5b8d7a2f reference: '20210623130413' amount: 3500 currency: EUR description: Order at yourdomain.tld expiresAt: '2025-06-02T15:04:05Z' language: nl country: NL webhooks: - url: https://yourdomain.tld/payment-webhooks?purchaseId=order123 events: - STATUS_CHANGE status: OPEN action: redirect: url: https://checkout.gateway.cmpayments.nl/sepadirectdebit/5c9e2f8a-7d1b-4a3e-9f6c-2b8d4e1a7c3f createdAt: '2025-05-27T13:03:04Z' returnUrl: https://yourdomain.tld/order/return?orderID=order123 successSepaDirectDebit: summary: Successful SEPA Direct Debit transaction value: id: 5c9e2f8a-7d1b-4a3e-9f6c-2b8d4e1a7c3f orderId: 8d3a1f5b-4c2e-4b7a-a9f6-3e1c5b8d7a2f reference: '20210623130413' amount: 3500 currency: EUR description: Order at yourdomain.tld expiresAt: '2025-06-02T15:04:05Z' language: nl country: NL webhooks: - url: https://yourdomain.tld/payment-webhooks?purchaseId=order123 events: - STATUS_CHANGE status: SUCCESS action: null createdAt: '2025-05-28T11:53:32Z' returnUrl: https://yourdomain.tld/order/return?orderID=order123 openCardV2: summary: Open transaction (v2) value: id: 4f7a8b2c-9e3d-4a1f-b6c5-8d2e3a7f9b1c orderId: 2e8a4f1b-7c3d-4b9e-a5f2-9d1c6b8e3a7f reference: c89fbd11-7754-4498-b58b-2e1155cc090f amount: 12500 currency: EUR description: Your order at My Web Shop. expiresAt: '2025-05-21T13:53:31Z' language: nl country: NL status: OPEN action: redirect: url: https://checkout.gateway.acceptance.cmpayments.nl/3ds/creditcard/v2/4f7a8b2c-9e3d-4a1f-b6c5-8d2e3a7f9b1c createdAt: '2025-05-20T13:53:36Z' returnUrl: https://tradename.tld/shop/return/?purchase=PO1234567 initializedCardV2: summary: Initialized transaction for 3DS v2 value: id: 6a9c2e4f-8d1b-4c3e-a7f5-3b8d1e6a9c2f orderId: 1d5b8e3a-4f2c-4a9e-b6f7-8c3d5b1e9a4f reference: d90gce22-8865-5509-c69c-3f2266dd101g amount: 15000 currency: EUR description: Your order at My Web Shop. expiresAt: '2025-05-21T13:53:31Z' language: nl country: NL status: OPEN action: redirect: url: https://checkout.gateway.acceptance.cmpayments.nl/3ds/creditcard/v2/initialize/6a9c2e4f-8d1b-4c3e-a7f5-3b8d1e6a9c2f createdAt: '2025-05-20T13:53:36Z' returnUrl: https://tradename.tld/shop/return/?purchase=PO1234567 successCardV2: summary: Successful transaction v2 value: id: 4f7a8b2c-9e3d-4a1f-b6c5-8d2e3a7f9b1c orderId: 2e8a4f1b-7c3d-4b9e-a5f2-9d1c6b8e3a7f reference: c89fbd11-7754-4498-b58b-2e1155cc090f amount: 12500 currency: EUR description: Your order at My Web Shop. expiresAt: '2025-05-21T13:53:31Z' language: nl country: NL status: SUCCESS action: null createdAt: '2025-05-20T13:53:36Z' returnUrl: https://tradename.tld/shop/return/?purchase=PO1234567 openPayPal: summary: Open PayPal payment value: reference: b5910552-7344-4c9c-a0e8-3657d8bc1897 amount: 89999 description: Your order at My Web Shop. expiresAt: '2025-06-24T12:48:21Z' language: nl consumer: email: tes_1322578370_per@docdatapayments.com address: countryCode: NL returnUrl: https://tradename.tld/shop/return/?purchase=PO1234567 examples-openPayPal: summary: Open PayPal payment value: id: da7c80bb-a09b-438d-87fa-dfdf27456286 orderId: bdee1b20-6bca-4018-b4f9-d92cae8fe026 reference: b5910552-7344-4c9c-a0e8-3657d8bc1897 amount: 89999 currency: EUR description: Your order at My Web Shop. expiresAt: '2025-06-24T12:48:21Z' language: nl country: NL status: OPEN action: redirect: url: https://www.sandbox.paypal.com/checkoutnow?token=4WU71039PV998573X createdAt: '2025-06-23T12:48:24Z' returnUrl: https://tradename.tld/shop/return/?purchase=PO1234567 openPayPalV2: summary: Open PayPal payment value: reference: b5910552-7344-4c9c-a0e8-3657d8bc1897 amount: 123 currency: EUR description: Your order at My Web Shop. consumer: email: tes_2322578370_per@docdatapayments.com address: countryCode: NL items: - name: Kingston microSD 32GB description: Kingston microSD 32GB Class 10 unitPrice: 123 quantity: 1 returnUrl: https://tradename.tld/shop/return/?purchase=PO1234567 examples-openPayPalV2: summary: Open PayPal payment value: id: da7c80bb-a09b-438d-87fa-dfdf27456286 reference: b5910552-7344-4c9c-a0e8-3657d8bc1897 amount: 123 currency: EUR description: Your order at My Web Shop. status: OPEN action: redirect: url: https://www.sandbox.paypal.com/checkoutnow?token=4WU71039PV998573X consumer: email: tes_2322578370_per@docdatapayments.com address: countryCode: NL items: - name: Kingston microSD 32GB description: Kingston microSD 32GB Class 10 unitPrice: 123 quantity: 1 returnUrl: https://tradename.tld/shop/return/?purchase=PO1234567 createdAt: '2025-06-23T12:48:24Z' standardAuthorization: summary: Standard transaction with webhook subscription value: orderNumber: '2106961751126491' reference: f372f69c-4ad9-4d22-9de1-dfd3faaa148c amount: 42400 currency: EUR type: Invoice netAmount: 38000 consumer: email: john.doe@email.tld dateOfBirth: '1996-12-01' name: firstName: John lastName: Doe phone: '+31695613259' billingAddress: street: Rustenburgerlaan houseNumber: '25' postalCode: 2012AL city: Haarlem countryCode: NL shopperIp: 1.1.1.1 items: - description: Order at yourdomain.tld quantity: 2 vatAmount: 200 vatRate: 20 code: SDC4/32GB-2ADP unitPrice: 1200 netUnitPrice: 1000 imageUrl: https://example.com/product-image.jpg productUrl: https://example.com/product-page - description: Order at yourdomain.tld quantity: 1 vatAmount: 4000 vatRate: 10 code: ProLiteXC83494WQSN unitPrice: 40000 netUnitPrice: 36000 imageUrl: https://example.com/product-image.jpg productUrl: https://example.com/product-page webhooks: - url: https://yourdomain.tld/payment-webhooks?purchaseId=order123 events: - STATUS_CHANGE returnUrl: https://yourdomain.tld/order/payment-success.html pendingAuthorization: summary: Pending Authorization value: reference: f372f69c-4ad9-4d22-9de1-dfd3faaa148c orderNumber: '2106961751126491' type: Invoice amount: 42400 netAmount: 38000 currency: EUR created: '2025-10-25T20:38:49Z' updated: '2025-10-25T20:38:49Z' consumer: name: firstName: John lastName: Doe email: john.doe@email.tld phone: '+31695613259' dateOfBirth: '1996-12-01' billingAddress: street: Rustenburgerlaan houseNumber: '25' postalCode: 2012AL city: Haarlem countryCode: NL shopperIp: 1.1.1.1 items: - code: SDC4/32GB-2ADP description: Order at yourdomain.tld unitPrice: 1200 netUnitPrice: 1000 quantity: 2 vatAmount: 200 vatRate: 20 imageUrl: https://example.com/product-image.jpg productUrl: https://example.com/product-page - code: ProLiteXC83494WQSN description: Order at yourdomain.tld unitPrice: 40000 netUnitPrice: 36000 quantity: 1 vatAmount: 4000 vatRate: 10 imageUrl: https://example.com/product-image.jpg productUrl: https://example.com/product-page action: redirect: url: https://hosted-checkout.bnpl-pt.riverty.io/pay/nl/61f11964c5f740e48ebfafa0e2c8e8a4?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6IjIwMjUwNTMwMDg0NjI5In0.eyJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL3dzLzIwMDgvMDYvaWRlbnRpdHkvY2xhaW1zL3ZlcnNpb24iOiIxIiwic2hvcCI6IjAiLCJsYW5ndWFnZSI6Ik5MIiwid2ViU2l0ZSI6Imh0dHBzOi8vYXBpLmJucGwtcHQucml2ZXJ0eS5pby9hcGkvdjMvb3JkZXJzLy9ub3RpZnlTdGF0dXMiLCJleHAiOjE3NDkyMTYyNTcsImlzcyI6IlJpdmVydHkgVGVjaCBPw5wiLCJhdWQiOiJIb3N0ZWQgY2hlY2tvdXQgc2VydmljZSJ9.0IaO1Cx8MxjFEM553Asu3Wa6EjsA5rzqgErtyREJ_nQ id: e4b23c76-867f-4839-b7a4-358c3454d59f status: PENDING webhooks: - url: https://yourdomain.tld/payment-webhooks?purchaseId=order123 events: - STATUS_CHANGE returnUrl: https://yourdomain.tld/order/payment-success.html successAuthorization: summary: Successful Authorization value: reference: 88e850be-118d-47ab-b183-1fb2eba48023 orderNumber: '3874395132905155' type: Invoice amount: 2400 netAmount: 2000 currency: EUR created: '2025-10-25T20:38:49Z' updated: '2025-10-25T20:38:49Z' consumer: name: firstName: John lastName: Doe email: john.doe@email.tld phone: '+31695613259' dateOfBirth: '1996-12-01' billingAddress: street: Rustenburgerlaan houseNumber: '25' postalCode: 2012AL city: Haarlem countryCode: NL shopperIp: 1.1.1.1 items: - code: SDC4/32GB-2ADP description: Order at yourdomain.tld unitPrice: 1200 netUnitPrice: 1000 quantity: 2 vatAmount: 200 vatRate: 20 imageUrl: https://example.com/product-image.jpg productUrl: https://example.com/product-page action: redirect: url: https://hosted-checkout.bnpl-pt.riverty.io/pay/nl/431caf2c6b52435694a379e9d51fa623?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6IjIwMjUwNTMwMDg0NjI5In0.eyJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL3dzLzIwMDgvMDYvaWRlbnRpdHkvY2xhaW1zL3ZlcnNpb24iOiIxIiwic2hvcCI6IjAiLCJsYW5ndWFnZSI6Ik5MIiwid2ViU2l0ZSI6Imh0dHBzOi8vYXBpLmJucGwtcHQucml2ZXJ0eS5pby9hcGkvdjMvb3JkZXJzL2JhOTAyNjgwLTkyMDAtNDQzMi04YjcwLTFjMjdiYTdjMmZjNC9ub3RpZnlTdGF0dXMiLCJleHAiOjE3NDg4NzYyNTMsImlzcyI6IlJpdmVydHkgVGVjaCBPw5wiLCJhdWQiOiJIb3N0ZWQgY2hlY2tvdXQgc2VydmljZSJ9.UvUrlHumGlaT99otlrHlj4mWMhd_IPi0lu6HHcxL-YQ id: dd698725-6114-4d88-92c8-90b3e4ca7db0 status: SUCCESS webhooks: - url: https://yourdomain.tld/payment-webhooks?purchaseId=order123 events: - STATUS_CHANGE returnUrl: https://yourdomain.tld/order/return?orderID=order123 fullCapture: summary: Full capture of a Riverty transaction value: amount: 2400 netAmount: 2000 partialCapture: summary: Partial capture of a Riverty transaction value: amount: 1200 netAmount: 1000 items: - code: SDC4/32GB-2ADP description: Order at yourdomain.tld unitPrice: 1200 netUnitPrice: 1000 quantity: 1 vatAmount: 200 vatRate: 20 imageUrl: https://example.com/product-image.jpg productUrl: https://example.com/product-page examples-fullCapture: summary: Fully captured authorization value: id: 5b84c8e5-3c8d-45c4-8fe1-7f549c1972b3 transactionId: 5b84c8e5-3c8d-45c4-8fe1-7f549c1972b3 amount: 2400 netAmount: 2000 created: '2025-10-25T20:38:49Z' updated: '2025-10-25T20:38:49Z' examples-partialCapture: summary: Partially captured authorization value: id: 19ab319e-01d4-41d4-a6f1-3a41f29547ab transactionId: bee7b465-2152-45d7-8545-5354afe4ba59 amount: 1200 netAmount: 1000 created: '2025-10-25T20:38:49Z' updated: '2025-10-25T20:38:49Z' items: - code: SDC4/32GB-2ADP description: Order at yourdomain.tld unitPrice: 1200 netUnitPrice: 1000 quantity: 1 vatAmount: 200 vatRate: 20 imageUrl: https://example.com/product-image.jpg productUrl: https://example.com/product-page fullCancellation: summary: Full cancellation of a Riverty transaction value: amount: 2400 netAmount: 2000 partialCancellation: summary: Partial cancellation of a Riverty transaction value: amount: 1200 netAmount: 1000 items: - code: SDC4/32GB-2ADP description: Order at yourdomain.tld unitPrice: 1200 netUnitPrice: 1000 quantity: 1 vatAmount: 200 vatRate: 20 imageUrl: https://example.com/product-image.jpg productUrl: https://example.com/product-page examples-fullCancellation: summary: Fully cancelled authorization value: id: fbd7e1c9-3039-4f79-a57b-bd1257e03c5f transactionId: 3fec0a41-6073-452f-b59c-8e7c7faf7b85 amount: 42400 netAmount: 38000 created: '2025-10-25T20:38:49Z' updated: '2025-10-25T20:38:49Z' examples-partialCancellation: summary: Partially cancelled authorization value: id: fbd7e1c9-3039-4f79-a57b-bd1257e03c5f transactionId: 3fec0a41-6073-452f-b59c-8e7c7faf7b85 amount: 1200 netAmount: 1000 created: '2025-10-25T20:38:49Z' updated: '2025-10-25T20:38:49Z' items: - code: SDC4/32GB-2ADP description: Order at yourdomain.tld unitPrice: 1200 netUnitPrice: 1000 quantity: 2 vatAmount: 200 vatRate: 20 imageUrl: https://example.com/product-image.jpg productUrl: https://example.com/product-page fullRefundSingleCapture: summary: Full refund for single-capture transaction (captureId optional) value: {} fullRefundMultiCapture: summary: Full refund for multi-capture transaction (captureId required) value: captureId: bba62ce5-3d52-4409-aeba-1d21a7c2f784 partialRefundSingleCapture: summary: Partial refund for single-capture transaction (captureId optional) value: items: - description: Order at yourdomain.tld quantity: 1 vatAmount: 4000 vatRate: 10 code: ProLiteXC83494WQSN unitPrice: 40000 netUnitPrice: 36000 imageUrl: https://example.com/product-image.jpg productUrl: https://example.com/product-page partialRefundMultiCapture: summary: Partial refund for multi-capture transaction (captureId required) value: captureId: bba62ce5-3d52-4409-aeba-1d21a7c2f785 items: - description: Order at yourdomain.tld quantity: 1 vatAmount: 4000 vatRate: 10 code: ProLiteXC83494WQSN unitPrice: 40000 netUnitPrice: 36000 imageUrl: https://example.com/product-image.jpg productUrl: https://example.com/product-page refund: summary: Fully refunded capture value: id: 76840859-3388-4573-beb6-ed02e10a2679 transactionId: cb3ae4bb-1085-4c34-9e48-ecb1a31aaef3 captureId: 385720a9-4118-481b-b431-a4797496c8a9 status: SUCCESS created: '2025-10-19T20:38:49Z' updated: '2025-10-19T20:38:49Z' partialRefund: summary: Partially refunded capture value: id: 6fa3a570-cb95-484d-83da-d2c7144225a2 transactionId: 180cad56-0da1-4ee8-ac49-c44d36286f84 captureId: bba62ce5-3d52-4409-aeba-1d21a7c2f785 status: SUCCESS created: '2025-10-19T20:38:49Z' updated: '2025-10-19T20:38:49Z' items: - code: ProLiteXC83494WQSN description: Order at yourdomain.tld unitPrice: 40000 netUnitPrice: 36000 quantity: 1 vatAmount: 4000 vatRate: 10 imageUrl: https://example.com/product-image.jpg productUrl: https://example.com/product-page standardCheckout: summary: Standard checkout value: reference: '20210623130413' amount: 1200 merchantOrderReference: order123 description: Order at yourdomain.tld expiresAt: '2026-01-02T15:04:05Z' returnUrl: https://yourdomain.tld/order/payment-result.html maxRetries: 10 checkoutSinglePaymentmethod: summary: Checkout for dedicated payment method value: reference: '20210623130413' amount: 1200 merchantOrderReference: order123 description: Order at yourdomain.tld expiresAt: '2026-01-02T15:04:05Z' language: nl returnUrl: https://yourdomain.tld/order/payment-result.html consumer: email: john.doe@email.tld address: countryCode: NL maxRetries: 10 paymentMethods: - creditcard standardCheckoutWithWebhook: summary: Standard checkout with webhook value: reference: '20210623130413' amount: 1200 maxRetries: 10 merchantOrderReference: order123 description: Order at yourdomain.tld expiresAt: '2026-01-02T15:04:05Z' returnUrl: https://yourdomain.tld/order/payment-result.html webhooks: - url: https://yourdomain.tld/order-webhooks?purchaseId=order123 events: - STATUS_CHANGE - REFUND_STATUS klarnaCheckout: summary: Checkout with Klarna enabled value: reference: '20210623130413' amount: 1200 merchantOrderReference: order123 description: Order at yourdomain.tld expiresAt: '2026-01-02T15:04:05Z' language: nl returnUrl: https://yourdomain.tld/order/payment-result.html paymentMethods: - klarna orderItems: - vatRate: 20 vatAmount: 100 quantity: 2 unitPrice: 600 code: SDC4/32GB-2ADP maxRetries: 10 consumer: gender: m address: street: Rustenburglaan houseNumber: '25' postalCode: 2012AL city: Haarlem countryCode: NL state: Noord-Holland givenName: John familyName: Doe email: john.doe@gmail.com phone: '+31685478569' examples-standardCheckout: summary: Standard checkout value: id: 1da50859-59ad-4d7d-a6ac-8554a2f981bc reference: '20210623130413' amount: 1200 currency: EUR merchantOrderReference: order123 description: Order at yourdomain.tld paymentMethods: - bancontact - creditcard - ideal - riverty expiresAt: '2026-01-02T15:04:05Z' status: OPEN action: null redirect: url: https://checkout.gateway.acceptance.cmpayments.nl/?hostedCheckoutId=1da50859-59ad-4d7d-a6ac-8554a2f981bc createdAt: '2025-09-23T11:14:22Z' returnUrl: https://yourdomain.tld/order/payment-result.html maxRetries: 255 examples-standardCheckoutWithWebhook: summary: Standard checkout with webhook value: id: 8d9a51a4-9ac6-4c03-ab60-c2cc4276f4e1 reference: 20210623130413 amount: 1200 currency: EUR merchantOrderReference: order123 description: Order at yourdomain.tld paymentMethods: - bancontact - creditcard - ideal - riverty expiresAt: '2026-01-02T15:04:05Z' webhooks: - url: https://yourdomain.tld/order-webhooks?purchaseId=order123 events: - STATUS_CHANGE - url: https://yourdomain.tld/order-webhooks?purchaseId=order123 events: - REFUND_STATUS status: OPEN action: null redirect: url: https://checkout.gateway.acceptance.cmpayments.nl/?hostedCheckoutId=8d9a51a4-9ac6-4c03-ab60-c2cc4276f4e1 createdAt: '2025-09-23T11:15:01Z' returnUrl: https://yourdomain.tld/order/payment-result.html maxRetries: 255 examples-klarnaCheckout: summary: Checkout with Klarna enabled value: id: 2a55928c-4b9b-4b1f-88ae-94bd9470b815 reference: '20210623130413' amount: 1200 currency: EUR consumer: givenName: John familyName: Doe email: john.doe@gmail.com gender: m phone: 31685478569 address: street: Rustenburglaan houseNumber: 25 postalCode: 2012AL city: Haarlem countryCode: NL state: Noord-Holland merchantOrderReference: 6 description: Order at yourdomain.tld paymentMethods: - klarna orderItems: - code: SDC4/32GB-2ADP unitPrice: 600 quantity: 2 vatAmount: 100 vatRate: 20 expiresAt: '2026-01-02T15:04:05Z' language: nl status: OPEN action: null redirect: url: https://checkout.gateway.acceptance.cmpayments.nl/?hostedCheckoutId=2a55928c-4b9b-4b1f-88ae-94bd9470b815 createdAt: '2025-09-23T11:18:05Z' returnUrl: https://yourdomain.tld/order/payment-result.html maxRetries: 255 standardCheckoutMultipleAttempts: summary: Standard checkout with multiple payment attempts value: id: 45be7c8b-e654-4d96-9d23-64d5d66ddfa9 reference: '20210623130413' amount: 1200 currency: EUR consumer: email: john.doe@cm.com address: countryCode: NL merchantOrderReference: protocol description: Order at yourdomain.tld paymentMethods: - bancontact - creditcard - ideal - riverty expiresAt: '2026-01-02T15:04:05Z' status: SUCCESS action: null createdAt: '2025-09-23T12:25:35Z' returnUrl: https://yourdomain.tld/order/payment-result.html maxRetries: 255 payments: - id: 2c900dc9-5956-4315-8277-2183d79279f2 type: ideal status: SUCCESS createdAt: '2025-09-23T12:30:31Z' - id: 92f99bed-07ff-49b6-992c-df6789c5e106 type: ideal status: FAILURE createdAt: '2025-09-23T12:25:48Z' - id: da4a6322-8c0c-4c1b-b603-a3c183231247 type: creditcard status: CANCELLED createdAt: '2025-09-23T12:26:12Z' klarnaSuccessCheckout: summary: Klarna checkout with success status value: id: 2a55928c-4b9b-4b1f-88ae-94bd9470b815 reference: 20210623130413 amount: 1200 currency: EUR consumer: givenName: John familyName: Doe email: john.doe@gmail.com gender: m phone: 31685478569 address: street: Rustenburglaan houseNumber: 25 postalCode: 2012AL city: Haarlem countryCode: NL state: Noord-Holland merchantOrderReference: 6 description: Order at yourdomain.tld paymentMethods: - klarna orderItems: - code: SDC4/32GB-2ADP unitPrice: 600 quantity: 2 vatAmount: 100 vatRate: 20 expiresAt: '2026-01-02T15:04:05Z' language: nl status: SUCCESS action: null createdAt: '2025-09-23T11:18:05Z' returnUrl: https://yourdomain.tld/order/payment-result.html maxRetries: 255 payments: - id: 193ef231-15c9-4b2e-baf5-b898a4abe574 type: klarna status: SUCCESS createdAt: '2025-09-23T11:29:33Z' refundCheckout: summary: Checkout with a refund value: id: 36a798e5-c2f5-48f2-bf68-2f58870d7c82 reference: '20210623130413' amount: 1200 currency: EUR merchantOrderReference: bandwidth description: Order at yourdomain.tld paymentMethods: - bancontact - creditcard - ideal - riverty expiresAt: '2026-01-02T15:04:05Z' status: SUCCESS action: null createdAt: '2025-09-23T11:52:33Z' returnUrl: https://yourdomain.tld/order/payment-result.html maxRetries: 255 payments: - id: d821d51f-47ab-4ae6-b18e-dd75b3f2b356 type: ideal status: SUCCESS createdAt: '2025-09-23T11:52:42Z' refunds: refundedAmount: 1200 refundedPendingAmount: 0 parameters: TransactionId: name: transactionId description: ID received in the POST transaction response root object, which can be used in up following calls like refunds or cancellations as transactionId. in: path required: true schema: $ref: '#/components/schemas/TransactionId' PaymentId: description: ID received in the POST transaction response root object, which can be used in up following calls like refunds as paymentId. name: paymentId in: path required: true schema: $ref: '#/components/schemas/Uuid' IdealPayFastUserToken: name: userToken description: iDEAL Pay Fast User Token as generated by iDEAL, which is received in the response of a Create iDEAL Transaction when the field `"requestUserToken"` is set to `true`. in: path required: true schema: $ref: '#/components/schemas/IdealPayFastUserToken'