openapi: 3.0.3 info: title: Payments Gateway description: Common payments API version: 1.21.12 security: - oAuth2ClientCredentials: [ ] servers: - url: /api/v1/ 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: tags: - paymentmethods operationId: getPaymentMethods responses: '200': description: "" 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/ideal/v1/issuers: get: tags: - ideal operationId: getIdealIssuers deprecated: true responses: '200': description: "" headers: Digest: $ref: "#/components/headers/Digest" content: application/json: schema: type: object required: - issuers properties: issuers: type: array minItems: 1 items: type: object required: - id - name properties: id: $ref: "#/components/schemas/BIC" name: description: The name of the issuer as to be displayed to the consumer type: string example: - id: INGBNL2A name: ING - id: RABONL2UXXX name: Rabobank '4XX': $ref: "#/components/responses/UserError" '5XX': $ref: "#/components/responses/InternalError" /paymentmethods/ideal/v1/transactions: post: tags: - ideal operationId: createIdealTransaction requestBody: required: true content: application/json: schema: allOf: - type: object required: - reference - amount - purchaseId - description properties: reference: $ref: "#/components/schemas/Reference" issuer: $ref: "#/components/schemas/BIC" amount: $ref: "#/components/schemas/Amount" currency: $ref: "#/components/schemas/Currency" purchaseId: description: | Identification of the order within the merchant's system. Letters and numbers only. Ultimately appears on the payment confirmation (statement and confirmation screen). type: string pattern: '^\[a-zA-Z0-9]$' maxLength: 35 minLength: 1 example: order123 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: 35 example: Order at yourdomain.tld expiresAt: $ref: "#/components/schemas/Datetime" language: $ref: "#/components/schemas/Language" webhooks: $ref: "#/components/schemas/TransactionRefundsWebhooks" - $ref: "#/components/schemas/ReturnUrl" responses: '201': $ref: "#/components/responses/IdealTransaction" '4XX': $ref: "#/components/responses/UserError" '5XX': $ref: "#/components/responses/InternalError" callbacks: TransactionWebhook: $ref: "#/components/callbacks/TransactionWebhook" /paymentmethods/ideal/v1/transactions/{transactionId}: get: tags: - ideal operationId: getIdealTransaction parameters: - name: transactionId in: path required: true schema: $ref: "#/components/schemas/Uuid" responses: '200': $ref: "#/components/responses/IdealTransaction" '4XX': $ref: "#/components/responses/UserError" '5XX': $ref: "#/components/responses/InternalError" /paymentmethods/ideal/v1/transactions/{transactionId}/refunds: post: description: Payments may take up to 30 minutes to be fully processed and allow for refunds. tags: - ideal operationId: createIdealTransactionRefund 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/IdealTransaction" '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. * `QR_PAYMENT_CREATED` webhook is triggered on each payment attempt (whether successful, failed, cancelled or expired). This is useful for both reusable and non-reusable idealQR transactions. * `FINALSTATUS` webhook is triggered when the transaction expires, or when the payment is successful (only for non-reusable idealQR transactions). * `STATUS_CHANGE` webhook is triggered when the transaction has any change in status. This is broader than FINALSTATUS tags: - idealqr operationId: createIdealqrTransaction requestBody: required: true content: application/json: schema: allOf: - type: object required: - reference - amount - description - expiresAt - size properties: amountChangeable: $ref: "#/components/schemas/AmountChangeable" reference: $ref: "#/components/schemas/Reference" amount: $ref: "#/components/schemas/Amount" currency: $ref: "#/components/schemas/Currency" purchaseId: description: | Identification of the transaction within the merchant's system. Letters and numbers only. Ultimately appears on the payment confirmation (statement and confirmation screen). type: string pattern: '^\[a-zA-Z0-9]$' maxLength: 35 minLength: 1 example: order123 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: 35 example: Order at yourdomain.tld expiresAt: $ref: "#/components/schemas/Datetime" reusable: $ref: "#/components/schemas/Reusable" size: type: integer minimum: 100 maximum: 2000 example: 200 language: $ref: "#/components/schemas/Language" webhooks: $ref: "#/components/schemas/TransactionWebhooksQR" - $ref: "#/components/schemas/ReturnUrl" responses: '201': $ref: "#/components/responses/IdealqrTransaction" '4XX': $ref: "#/components/responses/UserError" '5XX': $ref: "#/components/responses/InternalError" callbacks: TransactionWebhook: $ref: "#/components/callbacks/TransactionWebhookQR" /paymentmethods/idealqr/v1/transactions/{transactionId}: get: tags: - idealqr operationId: getIdealqrTransaction parameters: - name: transactionId in: path required: true schema: $ref: "#/components/schemas/Uuid" responses: '200': $ref: "#/components/responses/IdealqrTransaction" '4XX': $ref: "#/components/responses/UserError" '5XX': $ref: "#/components/responses/InternalError" /paymentmethods/idealqr/v1/transactions/{transactionId}/payments: get: tags: - idealqr operationId: getIdealqrTransactionPayments parameters: - name: transactionId in: path required: true schema: $ref: "#/components/schemas/Uuid" - name: pageSize in: query schema: $ref: "#/components/schemas/PageSize" - name: after in: query schema: $ref: "#/components/schemas/After" responses: '200': $ref: "#/components/responses/IdealQRTransactionPaymentsPaginated" '4XX': $ref: "#/components/responses/UserError" '5XX': $ref: "#/components/responses/InternalError" /paymentmethods/idealqr/v1/transactions/{transactionId}/payments/{paymentId}: get: tags: - idealqr operationId: getIdealqrPayment parameters: - name: transactionId in: path required: true schema: $ref: "#/components/schemas/Uuid" - name: paymentId in: path required: true schema: $ref: "#/components/schemas/Uuid" responses: '200': $ref: "#/components/responses/IdealqrPayment" '4XX': $ref: "#/components/responses/UserError" '5XX': $ref: "#/components/responses/InternalError" /paymentmethods/idealqr/v1/transactions/{transactionId}/summary: get: tags: - idealqr operationId: getIdealqrTransactionPaymentsSummary parameters: - name: transactionId in: path required: true schema: $ref: "#/components/schemas/Uuid" - name: status in: query schema: type: string enum: - OPEN - SUCCESS - FAILURE - CANCELLED - EXPIRED responses: '200': $ref: "#/components/responses/IdealQRTransactionPaymentsSummary" '4XX': $ref: "#/components/responses/UserError" '5XX': $ref: "#/components/responses/InternalError" /paymentmethods/idealqr/v1/transactions/{transactionId}/payments/{paymentId}/refunds: post: tags: - idealqr operationId: createIdealQRTransactionRefund parameters: - name: transactionId in: path required: true schema: $ref: "#/components/schemas/Uuid" - name: paymentId in: path required: true schema: allOf: - $ref: "#/components/schemas/Uuid" - example: db82a0d1-ae23-4412-86ad-6af913f81270 requestBody: content: application/json: schema: $ref: "#/components/schemas/Refund" responses: '201': $ref: "#/components/responses/IdealqrPayment" '4XX': $ref: "#/components/responses/UserError" '5XX': $ref: "#/components/responses/InternalError" /paymentmethods/idealqr/v1/bulk: post: description: | Allows the creation of idealQR 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: - idealqr operationId: bulkCreateIdealQROrdersController requestBody: required: true content: application/json: schema: allOf: - type: object required: - qrcodes properties: defaults: $ref: "#/components/schemas/BulkDefaults" qrcodes: $ref: "#/components/schemas/BulkQrCodesRequest" responses: '200': $ref: "#/components/responses/BulkIdealQRResponse" '400': $ref: "#/components/responses/BulkIdealQRResponse" '500': $ref: "#/components/responses/BulkIdealQRResponse" /paymentmethods/checkout/v1/transactions: post: tags: - checkout operationId: createCheckoutTransaction requestBody: required: true content: application/json: schema: allOf: - type: object required: - reference - amount - merchantOrderReference - description - expiresAt - language properties: reference: $ref: "#/components/schemas/Reference" amount: $ref: "#/components/schemas/ConditionalAmount" currency: $ref: "#/components/schemas/Currency" consumer: $ref: "#/components/schemas/CheckoutConsumer" merchantOrderReference: description: Unique identifier, as known by the merchant. This value will end up in the payments portal. type: string maxLength: 35 minLength: 1 example: order123 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: 35 example: Order at yourdomain.tld paymentMethods: description: The merchant can set the payment methods for each checkout session, when the paymentMethods attribute is not given, the merchants default payment methods will be used. type: array default: [ ] example: [ ideal, bancontact, klarna ] items: type: string enum: [ bancontact, creditcard, ideal, maestro, belfius, giropay, klarna, blik, przelewy24, elv, google_pay, apple_pay, in3 ] orderItems: $ref: "#/components/schemas/Items" expiresAt: $ref: "#/components/schemas/Datetime" language: $ref: "#/components/schemas/Language" webhooks: $ref: "#/components/schemas/TransactionRefundsWebhooks" maxRetries: $ref: "#/components/schemas/MaxRetries" - $ref: "#/components/schemas/ReturnUrl" responses: '201': $ref: "#/components/responses/CheckoutTransaction" '4XX': $ref: "#/components/responses/UserError" '5XX': $ref: "#/components/responses/InternalError" callbacks: TransactionWebhook: $ref: "#/components/callbacks/TransactionWebhook" /paymentmethods/checkout/v1/transactions/{transactionId}: get: tags: - checkout operationId: getCheckoutTransaction parameters: - name: transactionId in: path required: true schema: $ref: "#/components/schemas/Uuid" responses: '200': $ref: "#/components/responses/CheckoutTransactionWithPayments" '4XX': $ref: "#/components/responses/UserError" '5XX': $ref: "#/components/responses/InternalError" /paymentmethods/checkout/v1/transactions/{transactionId}/refunds: post: tags: - checkout operationId: createCheckoutTransactionRefund 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/CheckoutTransactionWithPayments" '4XX': $ref: "#/components/responses/UserError" '5XX': $ref: "#/components/responses/InternalError" /paymentmethods/library/cse: get: tags: - utils operationId: getClientSideEncryption 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. responses: '200': $ref: "#/components/responses/ClientSideEncryption" '4XX': $ref: "#/components/responses/UserError" '5XX': $ref: "#/components/responses/InternalError" /paymentmethods/bancontact/v1/transactions: post: tags: - bancontact operationId: createBanContactTransaction requestBody: required: true content: application/json: schema: allOf: - type: object required: - reference - amount - description - expiresAt - 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: $ref: "#/components/schemas/Datetime" language: $ref: "#/components/schemas/Language" consumer: $ref: "#/components/schemas/Consumer" webhooks: $ref: "#/components/schemas/TransactionRefundsWebhooks" - $ref: "#/components/schemas/ReturnUrl" responses: '201': $ref: "#/components/responses/BanContactTransaction" '4XX': $ref: "#/components/responses/UserError" '5XX': $ref: "#/components/responses/InternalError" callbacks: TransactionWebhook: $ref: "#/components/callbacks/TransactionWebhook" /paymentmethods/bancontact/v1/transactions/{transactionId}/start: post: tags: - bancontact operationId: startBanContactTransaction parameters: - name: transactionId in: path required: true schema: $ref: "#/components/schemas/Uuid" requestBody: required: true content: application/json: schema: allOf: - type: object required: - browserInformation - encryptedCardDetails properties: browserInformation: type: object required: - shopperIp - accept - userAgent properties: shopperIp: type: string minLength: 1 maxLength: 39 description: IPv4 or IPv6 address for the consumer example: "0.0.0.0" 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 consumer' 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 details that need to be encrypted are: [cardHolderName, cardNumber, expiryMonth, expiryYear, securityCode]\n 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);' responses: '201': description: "" headers: Digest: $ref: "#/components/headers/Digest" content: application/json: schema: allOf: - type: object required: - id - action properties: id: $ref: "#/components/schemas/Uuid" action: type: object required: - redirect properties: redirect: type: object 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 '4XX': $ref: "#/components/responses/UserError" '5XX': $ref: "#/components/responses/InternalError" /paymentmethods/bancontact/v1/transactions/{transactionId}: get: tags: - bancontact operationId: getBanContactTransaction parameters: - name: transactionId in: path required: true schema: $ref: "#/components/schemas/Uuid" responses: '200': $ref: "#/components/responses/BanContactTransaction" '4XX': $ref: "#/components/responses/UserError" '5XX': $ref: "#/components/responses/InternalError" /paymentmethods/bancontact/v1/transactions/{transactionId}/refunds: post: tags: - bancontact operationId: createBanContactPaymentRefund 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/BanContactTransaction" '4XX': $ref: "#/components/responses/UserError" '5XX': $ref: "#/components/responses/InternalError" /paymentmethods/creditcard/v1/transactions: post: tags: - creditcard operationId: createCreditCardTransaction requestBody: required: true content: application/json: schema: allOf: - type: object required: - reference - amount - description - expiresAt - language - consumer properties: reference: allOf: - $ref: "#/components/schemas/Reference" - description: | Identifier from client. 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: $ref: "#/components/schemas/Datetime" language: $ref: "#/components/schemas/Language" consumer: $ref: "#/components/schemas/CreditCardConsumer" cardDetails: $ref: "#/components/schemas/CardDetails" webhooks: $ref: "#/components/schemas/TransactionRefundsWebhooks" - $ref: "#/components/schemas/ReturnUrl" responses: '201': $ref: "#/components/responses/CreditCardTransaction" '4XX': $ref: "#/components/responses/UserError" '5XX': $ref: "#/components/responses/InternalError" callbacks: TransactionWebhook: $ref: "#/components/callbacks/TransactionWebhook" /paymentmethods/creditcard/v1/transactions/{transactionId}: get: tags: - creditcard operationId: getCreditCardTransaction parameters: - name: transactionId in: path required: true schema: $ref: "#/components/schemas/Uuid" responses: '200': $ref: "#/components/responses/CreditCardTransaction" '4XX': $ref: "#/components/responses/UserError" '5XX': $ref: "#/components/responses/InternalError" /paymentmethods/creditcard/v1/transactions/{transactionId}/refunds: post: tags: - creditcard operationId: createCreditCardPaymentRefund 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/CreditCardTransaction" '4XX': $ref: "#/components/responses/UserError" '5XX': $ref: "#/components/responses/InternalError" /paymentmethods/maestro/v1/transactions: post: tags: - maestro operationId: createMaestroTransaction requestBody: required: true content: application/json: schema: allOf: - type: object required: - reference - amount - description - expiresAt - language - consumer properties: reference: allOf: - $ref: "#/components/schemas/Reference" - description: | Identifier from client. 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: $ref: "#/components/schemas/Datetime" language: $ref: "#/components/schemas/Language" consumer: $ref: "#/components/schemas/CreditCardConsumer" cardDetails: $ref: "#/components/schemas/CardDetails" webhooks: $ref: "#/components/schemas/TransactionRefundsWebhooks" - $ref: "#/components/schemas/ReturnUrl" responses: '201': $ref: "#/components/responses/MaestroTransaction" '4XX': $ref: "#/components/responses/UserError" '5XX': $ref: "#/components/responses/InternalError" callbacks: TransactionWebhook: $ref: "#/components/callbacks/TransactionWebhook" /paymentmethods/maestro/v1/transactions/{transactionId}: get: tags: - maestro operationId: getMaestroTransaction parameters: - name: transactionId in: path required: true schema: $ref: "#/components/schemas/Uuid" responses: '200': $ref: "#/components/responses/MaestroTransaction" '4XX': $ref: "#/components/responses/UserError" '5XX': $ref: "#/components/responses/InternalError" /paymentmethods/maestro/v1/transactions/{transactionId}/refunds: post: tags: - maestro operationId: createMaestroPaymentRefund 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/MaestroTransaction" '4XX': $ref: "#/components/responses/UserError" '5XX': $ref: "#/components/responses/InternalError" /paymentmethods/paypal/v1/transactions: post: tags: - paypal operationId: createPayPalTransaction requestBody: required: true content: application/json: schema: allOf: - type: object required: - reference - amount - description - expiresAt - 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: $ref: "#/components/schemas/Datetime" language: $ref: "#/components/schemas/Language" consumer: $ref: "#/components/schemas/Consumer" webhooks: $ref: "#/components/schemas/TransactionRefundsWebhooks" - $ref: "#/components/schemas/ReturnUrl" responses: '201': $ref: "#/components/responses/PayPalTransaction" '4XX': $ref: "#/components/responses/UserError" '5XX': $ref: "#/components/responses/InternalError" callbacks: TransactionWebhook: $ref: "#/components/callbacks/TransactionWebhook" /paymentmethods/paypal/v1/transactions/{transactionId}: get: tags: - paypal operationId: getPayPalTransaction parameters: - name: transactionId in: path required: true schema: $ref: "#/components/schemas/Uuid" responses: '200': $ref: "#/components/responses/PayPalTransaction" '4XX': $ref: "#/components/responses/UserError" '5XX': $ref: "#/components/responses/InternalError" /paymentmethods/paypal/v1/transactions/{transactionId}/refunds: post: tags: - paypal operationId: createPaypalPaymentRefund 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/PayPalTransaction" '4XX': $ref: "#/components/responses/UserError" '5XX': $ref: "#/components/responses/InternalError" /paymentmethods/giropay/v1/transactions: post: tags: - giropay operationId: createGiroPayTransaction requestBody: required: true content: application/json: schema: allOf: - type: object required: - reference - amount - description - expiresAt - language - bankDetails 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: $ref: "#/components/schemas/Datetime" language: $ref: "#/components/schemas/Language" consumer: $ref: "#/components/schemas/Consumer" bankDetails: $ref: "#/components/schemas/GiroPayBankDetails" webhooks: $ref: "#/components/schemas/TransactionRefundsWebhooks" - $ref: "#/components/schemas/ReturnUrl" responses: '201': $ref: "#/components/responses/GiroPayTransaction" '4XX': $ref: "#/components/responses/UserError" '5XX': $ref: "#/components/responses/InternalError" callbacks: TransactionWebhook: $ref: "#/components/callbacks/TransactionWebhook" /paymentmethods/giropay/v1/transactions/{transactionId}: get: tags: - giropay operationId: getGiroPayTransaction parameters: - name: transactionId in: path required: true schema: $ref: "#/components/schemas/Uuid" responses: '200': $ref: "#/components/responses/GiroPayTransaction" '4XX': $ref: "#/components/responses/UserError" '5XX': $ref: "#/components/responses/InternalError" /paymentmethods/giropay/v1/transactions/{transactionId}/refunds: post: tags: - giropay operationId: createGiroPayTransactionRefund 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/GiroPayTransaction" '4XX': $ref: "#/components/responses/UserError" '5XX': $ref: "#/components/responses/InternalError" /paymentmethods/klarna/v1/transactions: post: tags: - klarna operationId: createKlarnaTransaction requestBody: required: true content: application/json: schema: allOf: - type: object required: - reference - description - expiresAt - language - items 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 currency: $ref: "#/components/schemas/Currency" expiresAt: $ref: "#/components/schemas/Datetime" language: $ref: "#/components/schemas/Language" consumer: $ref: "#/components/schemas/Consumer" items: $ref: "#/components/schemas/Items" webhooks: $ref: "#/components/schemas/TransactionRefundsWebhooks" - $ref: "#/components/schemas/ReturnUrl" responses: '201': $ref: "#/components/responses/KlarnaTransaction" '4XX': $ref: "#/components/responses/UserError" '5XX': $ref: "#/components/responses/InternalError" callbacks: TransactionWebhook: $ref: "#/components/callbacks/TransactionWebhook" /paymentmethods/klarna/v1/transactions/{transactionId}: get: tags: - klarna operationId: getKlarnaTransaction parameters: - name: transactionId in: path required: true schema: $ref: "#/components/schemas/Uuid" responses: '200': $ref: "#/components/responses/KlarnaTransaction" '4XX': $ref: "#/components/responses/UserError" '5XX': $ref: "#/components/responses/InternalError" /paymentmethods/klarna/v1/transactions/{transactionId}/refunds: post: tags: - klarna operationId: createKlarnaTransactionRefund 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/KlarnaTransaction" '4XX': $ref: "#/components/responses/UserError" '5XX': $ref: "#/components/responses/InternalError" /paymentmethods/in3/v1/transactions: post: tags: - in3 operationId: createIN3Transaction requestBody: required: true content: application/json: schema: allOf: - type: object required: - reference - description - expiresAt - language - items - shopperIp 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 currency: $ref: "#/components/schemas/Currency" expiresAt: $ref: "#/components/schemas/Datetime" language: $ref: "#/components/schemas/Language" consumer: $ref: "#/components/schemas/Consumer" items: $ref: "#/components/schemas/Items" shopperIp: type: string minLength: 1 maxLength: 39 description: IPv4 or IPv6 address for the consumer example: "0.0.0.0" webhooks: $ref: "#/components/schemas/TransactionRefundsWebhooks" - $ref: "#/components/schemas/ReturnUrl" responses: '201': $ref: "#/components/responses/IN3Transaction" '4XX': $ref: "#/components/responses/UserError" '5XX': $ref: "#/components/responses/InternalError" callbacks: TransactionWebhook: $ref: "#/components/callbacks/TransactionWebhook" /paymentmethods/in3/v1/transactions/{transactionId}: get: tags: - in3 operationId: getIN3Transaction parameters: - name: transactionId in: path required: true schema: $ref: "#/components/schemas/Uuid" responses: '200': $ref: "#/components/responses/IN3Transaction" '4XX': $ref: "#/components/responses/UserError" '5XX': $ref: "#/components/responses/InternalError" /paymentmethods/in3/v1/transactions/{transactionId}/refunds: post: tags: - in3 operationId: createIN3TransactionRefund 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/IN3Transaction" '4XX': $ref: "#/components/responses/UserError" '5XX': $ref: "#/components/responses/InternalError" /paymentmethods/google-pay/v1/transactions/initialize: post: tags: - GooglePay operationId: initializeGooglePayTransaction requestBody: required: true content: application/json: schema: allOf: - type: object required: - reference - amount - description - expiresAt - 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: $ref: "#/components/schemas/Datetime" language: $ref: "#/components/schemas/Language" consumer: $ref: "#/components/schemas/Consumer" webhooks: $ref: "#/components/schemas/TransactionRefundsWebhooks" - $ref: "#/components/schemas/ReturnUrl" responses: '201': $ref: "#/components/responses/GooglePayTransaction" '4XX': $ref: "#/components/responses/UserError" '5XX': $ref: "#/components/responses/InternalError" callbacks: TransactionWebhook: $ref: "#/components/callbacks/TransactionWebhook" /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 operationId: authorizeGooglePayTransaction parameters: - name: transactionId in: path required: true schema: $ref: "#/components/schemas/Uuid" requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/AuthorizeGooglePayPayment" responses: '201': $ref: "#/components/responses/GooglePayTransaction" '4XX': $ref: "#/components/responses/UserError" '5XX': $ref: "#/components/responses/InternalError" callbacks: TransactionWebhook: $ref: "#/components/callbacks/TransactionWebhook" /paymentmethods/google-pay/v1/transactions/{transactionId}: get: tags: - GooglePay operationId: getGooglePayTransaction parameters: - name: transactionId in: path required: true schema: $ref: "#/components/schemas/Uuid" 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 operationId: createGooglePaymentRefund 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/GooglePayTransaction" '4XX': $ref: "#/components/responses/UserError" '5XX': $ref: "#/components/responses/InternalError" /paymentmethods/blik/v1/transactions: post: tags: - blik operationId: createBlikTransaction requestBody: required: true content: application/json: schema: allOf: - type: object required: - reference - amount - description - expiresAt - 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: $ref: "#/components/schemas/Datetime" language: $ref: "#/components/schemas/Language" consumer: $ref: "#/components/schemas/Consumer" webhooks: $ref: "#/components/schemas/TransactionRefundsWebhooks" - $ref: "#/components/schemas/ReturnUrl" responses: '201': $ref: "#/components/responses/BlikTransaction" '4XX': $ref: "#/components/responses/UserError" '5XX': $ref: "#/components/responses/InternalError" callbacks: TransactionWebhook: $ref: "#/components/callbacks/TransactionWebhook" /paymentmethods/blik/v1/transactions/{transactionId}: get: tags: - blik operationId: getBlikTransaction parameters: - name: transactionId in: path required: true schema: $ref: "#/components/schemas/Uuid" responses: '200': $ref: "#/components/responses/BlikTransaction" '4XX': $ref: "#/components/responses/UserError" '5XX': $ref: "#/components/responses/InternalError" /paymentmethods/blik/v1/transactions/{transactionId}/refunds: post: tags: - blik operationId: createBlikPaymentRefund 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/BlikTransaction" '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 operationId: initializeApplePayTransaction requestBody: required: true content: application/json: schema: allOf: - type: object required: - reference - amount - description - expiresAt - 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: $ref: "#/components/schemas/Datetime" language: $ref: "#/components/schemas/Language" consumer: $ref: "#/components/schemas/Consumer" webhooks: $ref: "#/components/schemas/TransactionRefundsWebhooks" - $ref: "#/components/schemas/ReturnUrl" responses: '201': $ref: "#/components/responses/ApplePayTransaction" '4XX': $ref: "#/components/responses/UserError" '5XX': $ref: "#/components/responses/InternalError" callbacks: TransactionWebhook: $ref: "#/components/callbacks/TransactionWebhook" /paymentmethods/apple-pay/v1/transactions/{transactionId}/start: post: description: | Generates a valid payment session by interacting with Apple Pay servers. tags: - ApplePay 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: $ref: "#/components/callbacks/TransactionWebhook" /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 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/ApplePayTransaction" '4XX': $ref: "#/components/responses/UserError" '5XX': $ref: "#/components/responses/InternalError" callbacks: TransactionWebhook: $ref: "#/components/callbacks/TransactionWebhook" /paymentmethods/apple-pay/v1/transactions/{transactionId}: get: 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: 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" /paymentmethods/przelewy24/v1/transactions: post: tags: - przelewy24 operationId: createPrzelewy24Transaction requestBody: required: true content: application/json: schema: allOf: - type: object required: - reference - amount - description - expiresAt - 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: $ref: "#/components/schemas/Datetime" language: $ref: "#/components/schemas/Language" consumer: $ref: "#/components/schemas/Consumer" webhooks: $ref: "#/components/schemas/TransactionRefundsWebhooks" - $ref: "#/components/schemas/ReturnUrl" responses: '201': $ref: "#/components/responses/Przelewy24Transaction" '4XX': $ref: "#/components/responses/UserError" '5XX': $ref: "#/components/responses/InternalError" callbacks: TransactionWebhook: $ref: "#/components/callbacks/TransactionWebhook" /paymentmethods/przelewy24/v1/transactions/{transactionId}: get: tags: - przelewy24 operationId: getPrzelewy24Transaction parameters: - name: transactionId in: path required: true schema: $ref: "#/components/schemas/Uuid" responses: '200': $ref: "#/components/responses/Przelewy24Transaction" '4XX': $ref: "#/components/responses/UserError" '5XX': $ref: "#/components/responses/InternalError" /paymentmethods/przelewy24/v1/transactions/{transactionId}/refunds: post: tags: - przelewy24 operationId: createPrzelewy24PaymentRefund 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/Przelewy24Transaction" '4XX': $ref: "#/components/responses/UserError" '5XX': $ref: "#/components/responses/InternalError" /paymentmethods/elv/v1/transactions: post: tags: - elv operationId: createELVTransaction requestBody: required: true content: application/json: schema: allOf: - type: object required: - reference - amount - description - expiresAt - language - iban 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: $ref: "#/components/schemas/Datetime" language: $ref: "#/components/schemas/Language" iban: $ref: "#/components/schemas/IBAN" consumer: $ref: "#/components/schemas/Consumer" webhooks: $ref: "#/components/schemas/TransactionRefundsWebhooks" - $ref: "#/components/schemas/ReturnUrl" responses: '201': $ref: "#/components/responses/ELVTransaction" '4XX': $ref: "#/components/responses/UserError" '5XX': $ref: "#/components/responses/InternalError" callbacks: TransactionWebhook: $ref: "#/components/callbacks/TransactionWebhook" /paymentmethods/elv/v1/transactions/{transactionId}: get: tags: - elv operationId: getELVTransaction parameters: - name: transactionId in: path required: true schema: $ref: "#/components/schemas/Uuid" responses: '200': $ref: "#/components/responses/ELVTransaction" '4XX': $ref: "#/components/responses/UserError" '5XX': $ref: "#/components/responses/InternalError" /paymentmethods/elv/v1/transactions/{transactionId}/refunds: post: tags: - elv operationId: createELVPaymentRefund 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/ELVTransaction" '4XX': $ref: "#/components/responses/UserError" '5XX': $ref: "#/components/responses/InternalError" /paymentmethods/belfiuspaybutton/v1/transactions: post: tags: - belfiusPayButton operationId: createBelfiusPayButtonTransaction requestBody: required: true content: application/json: schema: allOf: - type: object required: - reference - amount - description - expiresAt - 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: $ref: "#/components/schemas/Datetime" language: $ref: "#/components/schemas/Language" consumer: $ref: "#/components/schemas/Consumer" webhooks: $ref: "#/components/schemas/TransactionRefundsWebhooks" - $ref: "#/components/schemas/ReturnUrl" responses: '201': $ref: "#/components/responses/BelfiusPayButtonTransaction" '4XX': $ref: "#/components/responses/UserError" '5XX': $ref: "#/components/responses/InternalError" callbacks: TransactionWebhook: $ref: "#/components/callbacks/TransactionWebhook" /paymentmethods/belfiuspaybutton/v1/transactions/{transactionId}: get: tags: - belfiusPayButton operationId: getBelfiusPayButtonTransaction parameters: - name: transactionId in: path required: true schema: $ref: "#/components/schemas/Uuid" responses: '200': $ref: "#/components/responses/BelfiusPayButtonTransaction" '4XX': $ref: "#/components/responses/UserError" '5XX': $ref: "#/components/responses/InternalError" /paymentmethods/belfiuspaybutton/v1/transactions/{transactionId}/refunds: post: tags: - belfiusPayButton operationId: createBelfiusPayButtonPaymentRefund 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/BelfiusPayButtonTransaction" '4XX': $ref: "#/components/responses/UserError" '5XX': $ref: "#/components/responses/InternalError" /paymentmethods/sepadirectdebit/v1/transactions: post: tags: - sepadirectdebit operationId: createSepaDirectDebitTransaction requestBody: required: true content: application/json: schema: allOf: - type: object required: - reference - amount - description - expiresAt - language - sepaDirectDebitDetails 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 conffirmation screen). type: string maxLength: 255 example: Order at yourdomain.tld amount: $ref: "#/components/schemas/Amount" currency: $ref: "#/components/schemas/Currency" expiresAt: $ref: "#/components/schemas/Datetime" language: $ref: "#/components/schemas/Language" consumer: $ref: "#/components/schemas/Consumer" sepaDirectDebitDetails: $ref: "#/components/schemas/SepaDirectDebitDetails" webhooks: $ref: "#/components/schemas/TransactionRefundsWebhooks" - $ref: "#/components/schemas/ReturnUrl" responses: '201': $ref: "#/components/responses/SepaDirectDebitTransaction" '4XX': $ref: "#/components/responses/UserError" '5XX': $ref: "#/components/responses/InternalError" callbacks: TransactionWebhook: $ref: "#/components/callbacks/TransactionWebhook" /paymentmethods/sepadirectdebit/v1/transactions/{transactionId}: get: tags: - sepadirectdebit operationId: getSepaDirectDebitTransaction parameters: - name: transactionId in: path required: true schema: $ref: "#/components/schemas/Uuid" responses: '200': $ref: "#/components/responses/SepaDirectDebitTransaction" '4XX': $ref: "#/components/responses/UserError" '5XX': $ref: "#/components/responses/InternalError" /paymentmethods/sepadirectdebit/v1/transactions/{transactionId}/refunds: post: tags: - sepadirectdebit operationId: createSepaDirectDebitTransactionRefund 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/SepaDirectDebitTransaction" '4XX': $ref: "#/components/responses/UserError" '5XX': $ref: "#/components/responses/InternalError" /paymentmethods/banktransfer/v1/transactions: post: tags: - banktransfer operationId: createBankTransferTransaction requestBody: required: true content: application/json: schema: allOf: - type: object required: - reference - amount - description - expiresAt - language - consumer 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 conffirmation screen). type: string maxLength: 255 example: Order at yourdomain.tld amount: $ref: "#/components/schemas/Amount" currency: $ref: "#/components/schemas/Currency" expiresAt: $ref: "#/components/schemas/Datetime" language: $ref: "#/components/schemas/Language" consumer: $ref: "#/components/schemas/Consumer" webhooks: $ref: "#/components/schemas/TransactionRefundsWebhooks" - $ref: "#/components/schemas/ReturnUrl" responses: '201': $ref: "#/components/responses/BankTransferTransaction" '4XX': $ref: "#/components/responses/UserError" '5XX': $ref: "#/components/responses/InternalError" callbacks: TransactionWebhook: $ref: "#/components/callbacks/TransactionWebhook" /paymentmethods/banktransfer/v1/transactions/{transactionId}: get: tags: - banktransfer operationId: getBankTransferTransaction parameters: - name: transactionId in: path required: true schema: $ref: "#/components/schemas/Uuid" responses: '200': $ref: "#/components/responses/BankTransferTransaction" '4XX': $ref: "#/components/responses/UserError" '5XX': $ref: "#/components/responses/InternalError" /paymentmethods/banktransfer/v1/transactions/{transactionId}/refunds: post: tags: - banktransfer operationId: createBankTransferTransactionRefund 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/BankTransferTransaction" '4XX': $ref: "#/components/responses/UserError" '5XX': $ref: "#/components/responses/InternalError" /paymentmethods/{paymentMethod}/webhooks-trigger/transaction/{transactionId}: get: description: | This endpoint can be used to trigger the webhooks for a transaction manually. Calling this endpoint might cause the webhook to be send multiple times (by the automated system and the manual trigger). **Contrary to the normal flow of a webhook where it is scheduled only when there is an update in the status of the transaction, this endpoint DOES NOT have any validation on the status of the transaction, meaning that users can use this endpoint to trigger the webhooks of a transaction any time.** parameters: - name: paymentMethod in: path required: true schema: description: "Payment method" type: string enum: - ideal - idealqr - checkout example: "ideal" - name: transactionId in: path required: true schema: $ref: "#/components/schemas/Uuid" tags: - webhooks responses: '200': description: Webhook executed successfully '502': description: Something went wrong execution one or all of the webhooks. First error is returned in the JSON body content: application/json: schema: type: object required: - id - message properties: id: $ref: "#/components/schemas/Uuid" message: type: string example: webhook returned statuscode 405 /health: head: security: [ ] description: Health check status endpoint tags: - 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. components: schemas: BulkDefaults: description: Contains default values to create a QR code in bulk. allOf: - type: object required: - reference - amount - description - expiresAt - size properties: amountChangeable: $ref: "#/components/schemas/AmountChangeable" reference: $ref: "#/components/schemas/Reference" amount: $ref: "#/components/schemas/Amount" currency: $ref: "#/components/schemas/Currency" purchaseId: description: | Identification of the transaction within the merchant's system. Letters and numbers only. Ultimately appears on the payment confirmation (statement and confirmation screen). type: string pattern: '^\[a-zA-Z0-9]$' maxLength: 35 minLength: 1 example: order123 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: 35 example: Order at yourdomain.tld expiresAt: $ref: "#/components/schemas/Datetime" reusable: $ref: "#/components/schemas/Reusable" size: type: integer minimum: 100 maximum: 2000 example: 200 language: $ref: "#/components/schemas/Language" webhooks: $ref: "#/components/schemas/TransactionWebhooksQR" - $ref: "#/components/schemas/ReturnUrl" BulkQrCodesRequest: description: Array of qr code objects with values to overwrite defaults maximum: 100 minimum: 1 type: array items: $ref: "#/components/schemas/BulkQrCodeItemInRequest" BulkQrCodeItemInRequest: description: Contains values that will overwrite defaults when creating a QR code in bulk. allOf: - type: object properties: amountChangeable: $ref: "#/components/schemas/AmountChangeable" reference: $ref: "#/components/schemas/Reference" amount: $ref: "#/components/schemas/Amount" currency: $ref: "#/components/schemas/Currency" purchaseId: description: | Identification of the transaction within the merchant's system. Letters and numbers only. Ultimately appears on the payment confirmation (statement and confirmation screen). type: string pattern: '^\[a-zA-Z0-9]$' maxLength: 35 minLength: 1 example: order123 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: 35 example: Order at yourdomain.tld expiresAt: $ref: "#/components/schemas/Datetime" reusable: $ref: "#/components/schemas/Reusable" size: type: integer minimum: 100 maximum: 2000 example: 200 language: $ref: "#/components/schemas/Language" webhooks: $ref: "#/components/schemas/TransactionWebhooksQR" - oneOf: - type: object properties: returnUrls: type: object 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 - type: object properties: returnUrl: type: string format: url maxLength: 2000 example: https://yourdomain.tld/order/return?orderID=order123 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 BulkIdealQRCodesResponseItem: description: provides details qr codes (created or not) in bulk type: object properties: qrcodes: description: contains the details of the qr code transactions (created or not) type: array items: allOf: - $ref: "#/components/schemas/BulkIdealQRCodesInResponseItem" BulkIdealQRCodesInResponseItem: description: Contains details of a QR code created in bulk, or details of the error why it could not be created successfully. anyOf: - $ref: "#/components/schemas/QRCodeTransactionInBulkResponseItem" - $ref: "#/components/schemas/ErrorInBulkResponseItem" QRCodeTransactionInBulkResponseItem: description: qr code transaction details of the created qr code type: object properties: created: type: boolean default: true transaction: type: object required: - id - action properties: id: description: ID of the transaction. It can be used to retrieve qr code transaction details by using it in combination with other endpoints provided in this api. type: string format: uuid minLength: 36 maxLength: 36 example: 8db1e7fa-ba8a-4189-92fd-67a20217443d action: description: Next action to be performed by merchant (or consumer) to complete the payment. type: object nullable: true 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 ErrorInBulkResponseItem: description: details of the error about why the requested qr code could not be created in bulk type: object properties: created: type: boolean default: false 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 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 nullable: true 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 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 nullable: true 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" Consumer: type: object required: - name - address - email properties: name: type: object required: - firstName - lastName properties: firstName: type: string maxLength: 35 example: "John" lastName: maxLength: 35 type: string example: "Lopez" middleName: maxLength: 35 type: string example: "A" address: $ref: "#/components/schemas/Address" email: $ref: "#/components/schemas/Email" businessName: type: string maxLength: 35 example: "CM" phone: type: string example: "06-95613259" gender: $ref: "#/components/schemas/Gender" dateOfBirth: type: string example: "1996-12-01" Gender: type: string format: enum enum: [ "m", "f", null ] nullable: true default: null CreditCardConsumer: allOf: - $ref: '#/components/schemas/Consumer' required: - name - address - email - phone ReturnUrl: oneOf: - required: - returnUrls type: object properties: returnUrls: type: object 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 - required: - returnUrl type: object properties: returnUrl: type: string format: url maxLength: 2000 example: https://yourdomain.tld/order/return?orderID=order123 Uuid: description: Unique identifier type: string format: uuid minLength: 36 maxLength: 36 example: 8db1e7fa-ba8a-4189-92fd-67a20217443d Reference: description: Identifier from client. 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 default: "" Datetime: description: ISO 8601 date and time type: string format: date-time minLength: 20 example: '2006-01-02T15:04:05Z' Reusable: description: Indicates the qr code's ability to accept multiple successful payments type: boolean default: false example: false ConditionalAmount: 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. type: integer minimum: 1 maximum: 99999999 example: 1200 Amount: description: Denomination in the smallest currency subunit, as for example eurocents. type: integer minimum: 1 maximum: 99999999 example: 1200 IBAN: description: IBAN of the customer type: string minimum: 1 maximum: 35 example: DE66500105176653613321 Currency: description: ISO 4217 currency code type: string minLength: 3 maxLength: 3 default: EUR example: EUR BIC: description: "Bank Identification Code" type: string minLength: 8 maxLength: 11 example: RABONL2U Language: description: Preferred language of the user interface type: string example: nl Country: description: Country of the consumer (ISO-3166) type: string example: NL minLength: 2 maxLength: 2 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 eurocents, that has already been refunded. type: integer minimum: 0 maximum: 99999999 example: 300 refundedPendingAmount: description: Amount in the smallest currency subunit, as for example eurocents, that has been requested to be refunded. type: integer minimum: 1 maximum: 99999999 example: 100 GiroPayBankDetails: description: Details of a giro pay account type: object required: - accountNumber - bankCode properties: accountNumber: type: string minLength: 36 maxLength: 36 description: GiroPay account number for the consumer example: "123456" bankCode: type: integer description: Code of the bank as known by the consumer example: 44448888 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" MaxRetries: description: Maximum number of retries allowed to pay the order type: integer minimum: 0 maximum: 255 example: 10 TransactionWebhookEvent: description: | * `FINALSTATUS` - When the status of the transaction becomes final; it is no longer `OPEN`. * `STATUS_CHANGE` - When the status of the transaction has any change. type: string enum: - FINALSTATUS - STATUS_CHANGE example: FINALSTATUS TransactionRefundsWebhooks: description: | Webhooks enable 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: type: object 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: The events when this URL must be requested. type: array minItems: 1 items: $ref: "#/components/schemas/TransactionRefundsWebhookEvent" example: - url: https://yourdomain.tld/order-webhooks?purchaseId=order123 events: [ FINALSTATUS ] - url: https://yourdomain.tld/payment-webhooks?purchaseId=order123 events: [ REFUND_STATUS ] - url: https://yourdomain.tld/payment-webhooks?purchaseId=order123 events: [ STATUS_CHANGE ] TransactionRefundsWebhookEvent: description: | * `FINALSTATUS` - When the status of the transaction becomes final; it is no longer `OPEN`. * `STATUS_CHANGE` - When the status of the transaction changes to another value. * `REFUND_STATUS` - When a transaction receives an update on its requested refunds. type: string enum: - FINALSTATUS - STATUS_CHANGE - REFUND_STATUS example: FINALSTATUS TransactionWebhooksQR: description: | Webhooks enable 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: type: object 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: The events when this URL must be requested. type: array minItems: 1 items: $ref: "#/components/schemas/TransactionWebhookQREvents" example: - url: https://yourdomain.tld/order-webhooks?purchaseId=order123 events: [ FINALSTATUS ] - url: https://yourdomain.tld/order-webhooks?purchaseId=order123 events: [ STATUS_CHANGE ] - url: https://yourdomain.tld/payment-webhooks?purchaseId=order123 events: [ QR_PAYMENT_CREATED ] TransactionWebhookQREvents: description: | * `FINALSTATUS` - When the status of the transaction becomes final; it is no longer `OPEN`. * `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. type: string enum: - FINALSTATUS - STATUS_CHANGE - QR_PAYMENT_CREATED example: FINALSTATUS PaymentWebhookQREvents: description: Unique identifier of a payment for a idealQR transaction. Only present for `QR_PAYMENT_CREATED` webhook event. nullable: true type: string format: uuid minLength: 36 maxLength: 36 example: 433a3406-3460-4795-b7ed-b5b9ad1aa9bf CardDetails: description: "Card Details" type: object required: - cardProvider - browserInformation - encryptedCardDetails properties: cardProvider: type: string description: "The provider for the credit-card [amex, mastercard, visa, etc]" example: "mastercard" browserInformation: type: object required: - shopperIp - accept - userAgent properties: shopperIp: type: string minLength: 1 maxLength: 39 description: IPv4 or IPv6 address for the consumer example: "0.0.0.0" 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 consumer' 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 details that need to be encrypted are: [cardHolderName, cardNumber, expiryMonth, expiryYear, securityCode]\n 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);' IdealqrPayment: type: object required: - payment - transaction - idealTransactionId - status - createdAt properties: payment: allOf: - $ref: "#/components/schemas/Uuid" - example: 433a3406-3460-4795-b7ed-b5b9ad1aa9bf transaction: $ref: "#/components/schemas/Uuid" 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 nullable: true minLength: 16 maxLength: 16 example: 1234567890123456 status: description: | * `SUCCESS` - Payment has succeeded. * `CANCELLED` - Payment has not succeeded; cancelled by the consumer. * `EXPIRED` - Payment has not succeeded; expired. * `FAILURE` - Payment has not succeeded; unknown reason. type: string enum: - SUCCESS - FAILURE - CANCELLED - EXPIRED 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" IdealQRTransactionPaymentsSummary: description: iDEAL-QR Payments summary type: object properties: status: allOf: - $ref: "#/components/schemas/TransactionStatus" - example: SUCCESS 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 CheckoutPayment: type: object required: - id - type - status - createdAt properties: id: $ref: "#/components/schemas/Uuid" type: description: | * `bancontact` * `creditcard` * `ideal` * `paypal` * `giropay` type: string enum: - bancontact - creditcard - ideal - paypal - giropay status: $ref: "#/components/schemas/TransactionStatus" createdAt: $ref: "#/components/schemas/Datetime" Email: type: string format: email example: "john.doe@email.tld" CheckoutConsumer: description: "Customer details" type: object required: - givenName - familyName - email - phone properties: givenName: type: string minLength: 1 maxLength: 35 example: John middleName: type: string minLength: 1 maxLength: 35 example: "" default: "" familyName: type: string minLength: 1 maxLength: 35 example: Doe email: type: string format: email example: "john.doe@email.tld" gender: $ref: "#/components/schemas/Gender" address: $ref: "#/components/schemas/Address" phone: type: string example: "06-95613259" dateOfBirth: type: string example: "1996-12-01" Digest: description: Digest of whole message body type: string example: 'sha-256=OWM5MDc3ODYwNzdjYjE5NjU0Y2NjMDM4MzEyYzMxZTA5MTAzMDBjYWM1Y2I1ODM4NTdlMDU2MzhiMzE1ZDhjNw==' externalDocs: description: Instance Digests in HTTP url: 'https://datatracker.ietf.org/doc/html/rfc3230' Refund: description: "Refund an already successfully processed payment." type: object properties: amount: allOf: - $ref: "#/components/schemas/Amount" - description: | Denomination in the smallest currency subunit, as for example eurocents. 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: description: | The description for the refund. type: string example: Refund required by customer. maxLength: 255 ManualCapture: description: "Capture the payment manually." type: object required: - amount - currency properties: amount: $ref: "#/components/schemas/Amount" currency: description: | The currency of the amount provided. This must match the original currency. type: string example: EUR maxLength: 255 PageSize: description: The number of elements to be returned 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" Address: type: object required: - street - houseNumber - postalCode - city - countryCode properties: street: type: string maxLength: 100 example: "Rustenburgerlaan" houseNumber: type: string maxLength: 35 example: "25" postalCode: type: string maxLength: 35 example: "2012AL" city: type: string maxLength: 35 example: "Haarlem" countryCode: type: string format: "ISO 3166-1 alfa-2" example: "NL" state: type: string maxLength: 40 example: "Noord-Holland" additionalData: type: string maxLength: 35 example: "Right-hand portal" Items: description: | Items included in the order. Required field for the following payment methods: Klarna. We request both values 'vatAmount' and 'vatRate' to prevent errors. type: array minItems: 1 maxItems: 512 items: type: object required: - code - unitPrice - quantity - vatAmount - vatRate properties: code: description: A code that identifies the item. Each item code must be unique per transaction. type: string minLength: 1 maxLength: 50 example: "SDC4/32GB-2ADP" name: description: A human readable name for the item. type: string minLength: 1 maxLength: 50 example: "Kingston microSD 32GB" description: description: Additional item description. type: string minLength: 1 maxLength: 100 example: "Best seller SD card" unitPrice: description: Unit price (including VAT) of the item, specified in the smallest currency subunit, as for example eurocents. type: integer minimum: 1 maximum: 99999999 example: 600 quantity: description: The number of items of this type. type: integer minimum: 1 maximum: 1000000000 example: 2 vatAmount: description: VAT amount of one unit, specified in the smallest currency subunit, as for example eurocents. type: integer minimum: 1 maximum: 99999999 example: 100 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 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 TransactionStatus: description: | * `OPEN` - Payment has been created. This is the initial status. * `SUCCESS` - Payment has succeeded. * `CANCELLED` - Payment has not succeeded; cancelled by the consumer. * `EXPIRED` - Payment has not succeeded; expired. * `FAILURE` - Payment has not succeeded; unknown reason. * `AUTHORIZED` - Payment is authorized. * `PENDING` - Payment could not be completed yet; waiting for something. * `CHARGEBACK` - Payment chargeback was created. type: string enum: - OPEN - SUCCESS - CANCELLED - EXPIRED - FAILURE - AUTHORIZED - PENDING - CHARGEBACK example: OPEN ClientSideEncryption: description: "Client side encryption libraries per payment method." type: object properties: bancontact: $ref: "#/components/schemas/ClientSideEncryptionElement" creditcard: $ref: "#/components/schemas/ClientSideEncryptionElement" 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 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+fmgYXsgJ1tGVB5GhotcEosJ61LvaPyO5vrNNgHnjQQR07nXuNecNXeqwjFiBLia7YiUdKAARygBxkM1A7W+Cb0izqhkaibaD1Wp0HnipOwBD/uo8d+/2PR7YmYaV/AgLt1qYZnhpiduQmgPPeYedl5fqdCD5WWUQDv37Zd0+PPheON4eE6k/FHm8LME8JKwI7A7PURTi+vIHATqJl+Uqej66Du5aavFelByNB97ru6KlM+wSW79kZRt5qaAHhAgrLWXYMuxIg3bY8aX55yMQtA9UKmqnpbt5XLHXgAjxbgMRPo68BV/fRiAj438pq5M2G4t9MFSfH0n9/4KEMAvf059z07rnzf++AaoB+Ta9wXQktzIr/7lT5NSEgfrlafBVPN18cF8=" signature: type: string example: "MIAGCSqGSIb3DQEHAqCAMIACAQExDTALBglghkgBZQMEAgEwgAYJKoZIhvcNAQcBAACggDCCA+MwggOIoAMCAQICCEwwQUlRnVQ2MAoGCCqGSM49BAMCMHoxLjAsBgNVBAMMJUFwcGxlIEFwcGxpY2F0aW9uIEludGVncmF0aW9uIENBIC0gRzMxJjAkBgNVBAsMHUFwcGxlIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MRMwEQYDVQQKDApBcHBsZSBJbmMuMQswCQYDVQQGEwJVUzAeFw0xOTA1..." 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 responses: ClientSideEncryption: description: Client side encryption libraries for BanContact and Credit Card transactions headers: Digest: $ref: "#/components/headers/Digest" content: application/json: schema: allOf: - $ref: "#/components/schemas/ClientSideEncryption" IdealTransaction: description: iDEAL Transaction details headers: Digest: $ref: "#/components/headers/Digest" content: application/json: schema: allOf: - type: object required: - id - orderId - reference - amount - currency - purchaseId - description - expiresAt - status - action - createdAt - idealTransactionId properties: id: $ref: "#/components/schemas/Uuid" orderId: $ref: "#/components/schemas/Uuid" reference: $ref: "#/components/schemas/Reference" issuer: $ref: "#/components/schemas/BIC" amount: $ref: "#/components/schemas/Amount" currency: $ref: "#/components/schemas/Currency" purchaseId: type: string example: order123 description: type: string example: Order at yourdomain.tld expiresAt: $ref: "#/components/schemas/Datetime" language: $ref: "#/components/schemas/Language" webhooks: $ref: "#/components/schemas/TransactionWebhookEvent" status: $ref: "#/components/schemas/TransactionStatus" action: description: Next action to be performed by merchant (or consumer) to complete the payment. type: object nullable: true properties: redirect: type: object 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 createdAt: $ref: "#/components/schemas/Datetime" consumer: $ref: "#/components/schemas/IdealConsumer" refunds: $ref: "#/components/schemas/Refunds" 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 is `OPEN` or `FAILURE`. type: string nullable: true minLength: 16 maxLength: 16 example: 1234567890123456 - $ref: "#/components/schemas/ReturnUrl" IdealqrTransaction: description: iDEAL-QR Transaction details headers: Digest: $ref: "#/components/headers/Digest" content: application/json: schema: 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: type: string example: order123 description: type: string example: Order at yourdomain.tld size: type: integer example: 200 expiresAt: $ref: "#/components/schemas/Datetime" reusable: $ref: "#/components/schemas/Reusable" language: $ref: "#/components/schemas/Language" webhooks: $ref: "#/components/schemas/TransactionWebhooksQR" status: $ref: "#/components/schemas/TransactionStatus" action: description: Next action to be performed by merchant (or consumer) to complete the payment. type: object nullable: true 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 createdAt: $ref: "#/components/schemas/Datetime" - $ref: "#/components/schemas/ReturnUrl" 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" IdealQRTransactionPaymentsPaginated: description: iDEAL-QR Payments details content: application/json: schema: 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/PageSize" payments: type: array items: allOf: - $ref: "#/components/schemas/IdealqrPayment" IdealqrPayment: description: iDEAL-QR Payment details content: application/json: schema: allOf: - $ref: "#/components/schemas/IdealqrPayment" - properties: refunds: $ref: "#/components/schemas/Refunds" IdealQRTransactionPaymentsSummary: description: iDEAL-QR Payments summary content: application/json: schema: type: array items: allOf: - $ref: "#/components/schemas/IdealQRTransactionPaymentsSummary" CheckoutTransaction: description: Checkout transaction details headers: Digest: $ref: "#/components/headers/Digest" content: application/json: schema: allOf: - type: object required: - id - reference - amount - currency - merchantOrderReference - description - expiresAt - status - action - createdAt properties: id: $ref: "#/components/schemas/Uuid" reference: $ref: "#/components/schemas/Reference" amount: $ref: "#/components/schemas/Amount" currency: $ref: "#/components/schemas/Currency" consumer: $ref: "#/components/schemas/CheckoutConsumer" merchantOrderReference: type: string example: order123 description: description: Description of the order or reason of the payment. Is shown to the consumer. type: string example: Order at yourdomain.tld paymentMethods: description: The merchant can set the payment methods for each checkout session, when the paymentMethods attribute is not given, the merchants default payment methods will be used. type: array default: [ ] example: [ ideal, bancontact, klarna ] items: type: string enum: [ bancontact, creditcard, ideal, maestro, belfius, wechat, alipay, pointofsale, paypal ] orderItems: $ref: "#/components/schemas/Items" expiresAt: $ref: "#/components/schemas/Datetime" language: $ref: "#/components/schemas/Language" webhooks: $ref: "#/components/schemas/TransactionRefundsWebhooks" maxRetries: $ref: "#/components/schemas/MaxRetries" status: $ref: "#/components/schemas/TransactionStatus" action: description: Next action to be performed by merchant (or consumer) to complete the payment. type: object nullable: true properties: redirect: type: object properties: url: description: URL where consumer should be redirected to by the merchant to perform the payment. type: string format: url example: https://checkout.cmpayments.com/?hostedCheckoutId=0863a7aadb99bf1c6ae770936db45eb33e61c917 createdAt: $ref: "#/components/schemas/Datetime" refunds: $ref: "#/components/schemas/Refunds" - $ref: "#/components/schemas/ReturnUrl" CheckoutTransactionWithPayments: description: Checkout transaction details headers: Digest: $ref: "#/components/headers/Digest" content: application/json: schema: allOf: - type: object required: - id - reference - amount - currency - merchantOrderReference - description - expiresAt - status - action - createdAt properties: id: $ref: "#/components/schemas/Uuid" reference: $ref: "#/components/schemas/Reference" amount: $ref: "#/components/schemas/Amount" currency: $ref: "#/components/schemas/Currency" consumer: $ref: "#/components/schemas/CheckoutConsumer" merchantOrderReference: type: string example: order123 description: description: Description of the order or reason of the payment. Is shown to the consumer. type: string example: Order at yourdomain.tld paymentMethods: description: The merchant can set the payment methods for each checkout session, when the paymentMethods attribute is not given, the merchants default payment methods will be used. type: array default: [ ] example: [ ideal, bancontact, klarna ] items: type: string enum: [ bancontact, creditcard, ideal, maestro, belfius, wechat, alipay, pointofsale, paypal ] orderItems: $ref: "#/components/schemas/Items" expiresAt: $ref: "#/components/schemas/Datetime" language: $ref: "#/components/schemas/Language" webhooks: $ref: "#/components/schemas/TransactionRefundsWebhooks" maxRetries: $ref: "#/components/schemas/MaxRetries" payments: type: array items: allOf: - $ref: "#/components/schemas/CheckoutPayment" status: $ref: "#/components/schemas/TransactionStatus" action: description: Next action to be performed by merchant (or consumer) to complete the payment. type: object nullable: true properties: redirect: type: object properties: url: description: URL where consumer should be redirected to by the merchant to perform the payment. type: string format: url example: https://checkout.cmpayments.com/?hostedCheckoutId=0863a7aadb99bf1c6ae770936db45eb33e61c917 createdAt: $ref: "#/components/schemas/Datetime" refunds: $ref: "#/components/schemas/Refunds" - $ref: "#/components/schemas/ReturnUrl" BanContactTransaction: description: BanContact 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: allOf: - $ref: "#/components/schemas/Country" - example: "BE" webhooks: $ref: "#/components/schemas/TransactionRefundsWebhooks" status: $ref: "#/components/schemas/TransactionStatus" action: description: Next action to be performed by merchant (or consumer) to complete the payment. type: object nullable: true properties: qrcode: type: object nullable: true 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 intent: type: object nullable: true properties: url: description: URL to the Intent URL which can be opened by the BanContact 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 redirect: type: object nullable: true 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/bancontact/v1/123 createdAt: $ref: "#/components/schemas/Datetime" refunds: $ref: "#/components/schemas/Refunds" - $ref: "#/components/schemas/ReturnUrl" CreditCardTransaction: description: CreditCard 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/TransactionRefundsWebhooks" status: $ref: "#/components/schemas/TransactionStatus" action: description: Next action to be performed by merchant (or consumer) to complete the payment. type: object nullable: true 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" MaestroTransaction: description: Maestro 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/TransactionRefundsWebhooks" status: $ref: "#/components/schemas/TransactionStatus" action: description: Next action to be performed by merchant (or consumer) to complete the payment. type: object nullable: true 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/maestro/123 createdAt: $ref: "#/components/schemas/Datetime" refunds: $ref: "#/components/schemas/Refunds" - $ref: "#/components/schemas/ReturnUrl" PayPalTransaction: description: PayPal 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/TransactionRefundsWebhooks" status: $ref: "#/components/schemas/TransactionStatus" action: description: Next action to be performed by merchant (or consumer) to complete the payment. type: object nullable: true 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" GiroPayTransaction: description: GiroPay 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/TransactionRefundsWebhooks" status: $ref: "#/components/schemas/TransactionStatus" action: description: Next action to be performed by merchant (or consumer) to complete the payment. type: object nullable: true 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/giropay createdAt: $ref: "#/components/schemas/Datetime" refunds: $ref: "#/components/schemas/Refunds" - $ref: "#/components/schemas/ReturnUrl" IN3Transaction: description: IN3 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 - items - 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" items: $ref: "#/components/schemas/Items" webhooks: $ref: "#/components/schemas/TransactionRefundsWebhooks" status: $ref: "#/components/schemas/TransactionStatus" action: description: Next action to be performed by merchant (or consumer) to complete the payment. type: object nullable: true 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 createdAt: $ref: "#/components/schemas/Datetime" refunds: $ref: "#/components/schemas/Refunds" - $ref: "#/components/schemas/ReturnUrl" KlarnaTransaction: description: Klarna 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 - items - 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" items: $ref: "#/components/schemas/Items" webhooks: $ref: "#/components/schemas/TransactionRefundsWebhooks" status: $ref: "#/components/schemas/TransactionStatus" action: description: Next action to be performed by merchant (or consumer) to complete the payment. type: object nullable: true 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/klarna createdAt: $ref: "#/components/schemas/Datetime" refunds: $ref: "#/components/schemas/Refunds" - $ref: "#/components/schemas/ReturnUrl" GooglePayTransaction: description: | GooglePay 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/TransactionRefundsWebhooks" 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 type: object nullable: true 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. type: object nullable: true 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" BlikTransaction: description: Blik 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/TransactionRefundsWebhooks" status: $ref: "#/components/schemas/TransactionStatus" action: description: Next action to be performed by merchant (or consumer) to complete the payment. type: object nullable: true 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/blik createdAt: $ref: "#/components/schemas/Datetime" refunds: $ref: "#/components/schemas/Refunds" - $ref: "#/components/schemas/ReturnUrl" Przelewy24Transaction: description: Przelewy24 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/TransactionRefundsWebhooks" status: $ref: "#/components/schemas/TransactionStatus" action: description: Next action to be performed by merchant (or consumer) to complete the payment. type: object nullable: true 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/przelewy24 createdAt: $ref: "#/components/schemas/Datetime" refunds: $ref: "#/components/schemas/Refunds" - $ref: "#/components/schemas/ReturnUrl" ELVTransaction: description: ELV 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/TransactionRefundsWebhooks" status: $ref: "#/components/schemas/TransactionStatus" action: description: Next action to be performed by merchant (or consumer) to complete the payment. type: object nullable: true properties: redirect: type: object properties: url: description: URL where consumer should be redirected to by the merchant to perform the payment. In the case of ELV this will redirect to a waiting page to inform the customer we are processing the payment. type: string format: url example: https://checkout.tld/redirect/elv createdAt: $ref: "#/components/schemas/Datetime" refunds: $ref: "#/components/schemas/Refunds" - $ref: "#/components/schemas/ReturnUrl" BelfiusPayButtonTransaction: description: Belfius Pay Button 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/TransactionRefundsWebhooks" status: $ref: "#/components/schemas/TransactionStatus" action: description: Next action to be performed by merchant (or consumer) to complete the payment. type: object nullable: true properties: redirect: type: object properties: url: description: URL where consumer should be redirected to by the merchant to perform the payment. type: string format: url example: https://checkout.tld/redirect/belfius createdAt: $ref: "#/components/schemas/Datetime" refunds: $ref: "#/components/schemas/Refunds" - $ref: "#/components/schemas/ReturnUrl" ApplePayTransaction: description: | ApplePay 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/TransactionRefundsWebhooks" 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 nullable: true 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: - mastercard - visa 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: ApplePay 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. content: application/json: schema: 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..." SepaDirectDebitTransaction: description: Sepa Direct Debit 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/TransactionRefundsWebhooks" status: $ref: "#/components/schemas/TransactionStatus" action: description: Next action to be performed by merchant (or consumer) to complete the payment. type: object nullable: true 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/sepa createdAt: $ref: "#/components/schemas/Datetime" refunds: $ref: "#/components/schemas/Refunds" - $ref: "#/components/schemas/ReturnUrl" BankTransferTransaction: description: Bank Transfer 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/TransactionRefundsWebhooks" status: $ref: "#/components/schemas/TransactionStatus" action: description: Next action to be performed by merchant (or consumer) to complete the payment. type: object nullable: true 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/banktransfer createdAt: $ref: "#/components/schemas/Datetime" refunds: $ref: "#/components/schemas/Refunds" - $ref: "#/components/schemas/ReturnUrl" 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 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 headers: Digest: description: Digest of whole message body schema: $ref: "#/components/schemas/Digest" callbacks: TransactionWebhook: '$request.body#/webhooks/-/url': post: parameters: - in: header name: Digest description: Digest of whole message body example: 'sha-256=M2ZkM2VlMGFlZDViOGE2ZTQ5ZmFiOTJiMWIxZTljZDliNjQ2MGEwYmFmMThiN2JlZWIxZThkZjk5ZTY1ZjgyNQ==' schema: $ref: "#/components/schemas/Digest" requestBody: content: application/json: schema: type: object required: - createdAt - event - transaction - reference properties: createdAt: $ref: "#/components/schemas/Datetime" event: $ref: "#/components/schemas/TransactionWebhookEvent" transaction: $ref: "#/components/schemas/Uuid" reference: $ref: "#/components/schemas/Reference" responses: '2XX': description: Webhook successful. default: description: Webhook failed. Will be retried several times. TransactionWebhookQR: '$request.body#/webhooks/-/url': post: parameters: - in: header name: Digest description: Digest of whole message body example: 'sha-256=M2ZkM2VlMGFlZDViOGE2ZTQ5ZmFiOTJiMWIxZTljZDliNjQ2MGEwYmFmMThiN2JlZWIxZThkZjk5ZTY1ZjgyNQ==' schema: $ref: "#/components/schemas/Digest" requestBody: content: application/json: schema: type: object required: - createdAt - event - transaction - reference properties: createdAt: $ref: "#/components/schemas/Datetime" event: $ref: "#/components/schemas/TransactionWebhookQREvents" transaction: $ref: "#/components/schemas/Uuid" reference: $ref: "#/components/schemas/Reference" payment: $ref: "#/components/schemas/PaymentWebhookQREvents" responses: '2XX': description: Webhook successful. default: description: Webhook failed. Will be retried several times. securitySchemes: oAuth2ClientCredentials: type: oauth2 flows: clientCredentials: tokenUrl: /api/v1/authorization/oauth2/token scopes: { }