openapi: 3.1.1
info:
  title: Payments Gateway API
  description: Common payments API
  version: 1.23.3
  license:
    name: Apache 2.0
    url: https://www.apache.org/licenses/LICENSE-2.0
servers:
  - url: /api/v1
security:
  - oAuth2ClientCredentials: []
tags:
  - name: Authorization
    description: OAuth2.0 Authorization Framework
    externalDocs:
      url: https://tools.ietf.org/html/rfc6749#section-4.4.2
  - name: Checkout
    description: Checkout endpoints for using the CM hosted checkout.
    externalDocs:
      url: https://developers.cm.com/payments-platform
  - name: Bancontact
    description: Bancontact is a popular payment method in Belgium, allowing customers to pay online using their Bancontact card.
    externalDocs:
      url: https://www.bancontact.com/en
  - name: Cards
    description: Creditcard payments allow customers to pay online using their credit or debit cards.
    externalDocs:
      url: https://www.visa.com/ and https://www.mastercard.com/
  - name: iDEAL
    description: iDEAL is a widely used online payment method in the Netherlands, allowing customers to pay directly from their bank accounts.
    externalDocs:
      url: https://www.ideal.nl/en/
  - name: iDEAL-QR
    description: iDEAL-QR codes can be used to initiate a predefined iDEAL transaction by scanning the QR-code by a Consumer mobile device.
    externalDocs:
      url: https://www.ideal.nl/en/
  - name: in3
    description: in3 is a Dutch BNPL method where customers pay in 3 installments, at no extra cost and without having to register with the Bureau Krediet Registratie (BKR). in3 guarantees settlement after receiving the first installment.
    externalDocs:
      url: https://payin3.eu/
  - name: Klarna
    description: Klarna is a payment method that allows customers to pay for their purchases later, either in installments or at a later date.
    externalDocs:
      url: https://www.klarna.com/
  - name: Paymentmethods
    description: Payment methods available in the API.
  - name: PayPal
    description: PayPal is a widely used online payment system that allows customers to pay for goods and services using their PayPal account.
    externalDocs:
      url: https://www.paypal.com/
  - name: Riverty
    description: Riverty is a payment method that allows customers to pay for their purchases in installments or at a later date.
    externalDocs:
      url: https://docs.riverty.com/bnpl
  - name: ApplePay
    description: Apple Pay is a mobile payment and digital wallet service that allows customers to make secure, contactless payments in stores (using NFC), within iOS apps, and on the web.
    externalDocs:
      url: https://www.apple.com/apple-pay/
  - name: GooglePay
    description: Google Pay is a fast and secure payment method that allows customers to pay online using their Google account.
    externalDocs:
      url: https://developers.google.com/pay/api/web/overview
  - name: BelfiusPayButton
    description: Belfius Pay Button is a Belgian online payment method that allows customers to pay securely using their Belfius bank account.
    externalDocs:
      url: https://www.belfius.be/
  - name: SepaDirectDebit
    description: SEPA Direct Debit allows merchants to collect payments directly from customer bank accounts within the SEPA zone.
    externalDocs:
      url: https://www.europeanpaymentscouncil.eu/
  - name: BankTransfer
    description: Bank Transfer payment method allows customers to pay by transferring funds directly from their bank account.
  - name: Utils
    description: Utility endpoints for health checks and other functionalities.
paths:
  /authorization/oauth2/token:
    post:
      tags:
        - Authorization
      summary: Obtain access token using OAuth 2.0.
      externalDocs:
        description: RFC 6749 - The OAuth2.0 Authorization Framework
        url: https://tools.ietf.org/html/rfc6749#section-4.4.2
      operationId: obtainAccessTokenViaClientCredentialsGrant
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              required:
                - client_id
                - client_secret
                - grant_type
              properties:
                client_id:
                  description: Client id that was provided for authentication
                  type: string
                  example: 904c5037ad72ec1d1d99a5d14e04d7e0
                client_secret:
                  description: Client secret that was provided for authentication
                  type: string
                  example: 543d8f8b5d6b4c6a8643bbf9a3ba0682
                grant_type:
                  description: Authorization grant type. The only supported value is `client_credentials`.
                  type: string
                  enum:
                    - client_credentials
                  example: client_credentials
      responses:
        '200':
          description: |-
            Successful Response.
            [The OAuth2.0 Authorization Framework - 5.1. Successful Response](https://tools.ietf.org/html/rfc6749#section-5.1)
            The authorization server issues an access token and optional refresh token, and constructs the response by adding the following parameters to the entity-body of the HTTP response with a 200 (OK) status code.
          content:
            application/json:
              schema:
                title: Token
                description: |-
                  Access Token
                  [The OAuth2.0 Authorization Framework - 1.4. Access Token](https://tools.ietf.org/html/rfc6749#section-1.4)
                  Access tokens are credentials used to access protected resources.  An access token is a string representing an authorization issued to the client.  The string is usually opaque to the client.  Tokens represent specific scopes and durations of access, granted by the resource owner, and enforced by the resource server and authorization server.
                type: object
                required:
                  - access_token
                  - token_type
                properties:
                  access_token:
                    description: The access token issued by the authorization server.
                    type: string
                    example: 2YotnFZFEjr1zCsicMWpAA
                  token_type:
                    description: The type of the token issued as described in [Section 7.1](https://tools.ietf.org/html/rfc6749#section-7.1).  Value is case insensitive.
                    type: string
                    example: Bearer
                  expires_in:
                    description: The lifetime in seconds of the access token.  For example, the value "3600" denotes that the access token will expire in one hour from the time the response was generated. If omitted, the authorization server SHOULD provide the expiration time via other means or document the default value.
                    type: integer
                    example: 3600
        4XX:
          description: |-
            Error Response.
            [The OAuth2.0 Authorization Framework - 5.2. Error Response](https://tools.ietf.org/html/rfc6749#section-5.2)
            The authorization server responds with an HTTP 400 (Bad Request) status code (unless specified otherwise) and includes the following parameters with the response.
            Values for the "error" parameter **MUST NOT** include characters outside the set %x20-21 / %x23-5B / %x5D-7E.
          content:
            application/json:
              schema:
                title: TokenError
                description: '[The OAuth2.0 Authorization Framework - 5.2. Error Response](https://tools.ietf.org/html/rfc6749#section-5.2)'
                type: object
                required:
                  - error
                properties:
                  error:
                    description: |-
                      A single ASCII [[USASCII](https://tools.ietf.org/html/rfc6749#ref-USASCII)] error code from the following:
                      | Error Code| Description |
                      |-----------|-------------|
                      | invalid_request | The request is missing a required parameter, includes an unsupported parameter value (other than grant type), repeats a parameter, includes multiple credentials, utilizes more than one mechanism for authenticating the client, or is otherwise malformed. |
                      | invalid_client | Client authentication failed (e.g., unknown client, no client authentication included, or unsupported authentication method).  The authorization server MAY return an HTTP 401 (Unauthorized) status code to indicate which HTTP authentication schemes are supported.  If the client attempted to authenticate via the "Authorization" request header field, the authorization server MUST respond with an HTTP 401 (Unauthorized) status code and include the "WWW-Authenticate" response header field matching the authentication scheme used by the client. |
                      | invalid_grant | The provided authorization grant (e.g., authorization code, resource owner credentials) or refresh token is invalid, expired, revoked, does not match the redirection URI used in the authorization request, or was issued to another client. |
                      | unauthorized_client | The authenticated client is not authorized to use this authorization grant type. |
                      | unsupported_grant_type | The authorization grant type is not supported by the authorization server. |
                      | invalid_scope | The requested scope is invalid, unknown, malformed, or exceeds the scope granted by the resource owner. |
                    type: string
                    enum:
                      - invalid_request
                      - invalid_client
                      - invalid_grant
                      - unauthorized_client
                      - unsupported_grant_type
                      - invalid_scope
                    example: invalid_client
                  error_description:
                    description: Human-readable ASCII [[USASCII](https://tools.ietf.org/html/rfc6749#ref-USASCII)] text providing additional information, used to assist the client developer in understanding the error that occurred.
                    type: string
                    example: Client authentication failed
                  error_uri:
                    description: A URI identifying a human-readable web page with information about the error, used to provide the client developer with additional information about the error.
                    type: string
                    example: http://example.test/client_authentication_failed.html
      security: []
  /paymentmethods:
    get:
      summary: Get an array of all available payment methods.
      description: |-
        Receive a list of all available payments which can be rendered in your checkout. 

        Note: this list is **not** context aware and is only a list of your activated payment methods.
      tags:
        - Paymentmethods
      operationId: getPaymentMethods
      responses:
        '200':
          description: List of available payment methods for the authenticated merchant.
          headers:
            Digest:
              $ref: '#/components/headers/Digest'
          content:
            application/json:
              schema:
                type: array
                minItems: 0
                items:
                  type: string
                example:
                  - bancontact
                  - creditcard
                  - ideal
        4XX:
          $ref: '#/components/responses/UserError'
        5XX:
          $ref: '#/components/responses/InternalError'
  /paymentmethods/bancontact/v1/transactions:
    post:
      operationId: createBancontactTransaction
      description: |-
        Create a new Bancontact transaction (order), that can be paid later with card details or via QR code / Intent URL.
        The **id** field in the response can be used in future calls as **transactionId** to reference this transaction.
      tags:
        - Bancontact
      summary: Create transaction
      requestBody:
        description: Create Bancontact Transaction
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BancontactPayment'
      responses:
        '201':
          description: |-
            The bancontact transaction was created successfully. 

            To handle the payment further one could:
            - On mobile devices redirect the user to the intent URL provided in the response.
            - On desktop devices display the QR code provided in the response.
            - If the user is not able to use the intent URL or QR code, they can continue by entering their card data manually.
          headers:
            Digest:
              $ref: '#/components/headers/Digest'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BanContactTransaction'
              examples:
                openBancontact:
                  $ref: '#/components/examples/openBancontact'
        4XX:
          $ref: '#/components/responses/UserError'
        5XX:
          $ref: '#/components/responses/InternalError'
  /paymentmethods/bancontact/v1/transactions/{transactionId}/start:
    post:
      operationId: startBancontactCardPayment
      description: |-
        Start a Bancontact Card payment transaction. Use the **id** field from the former made create transaction response.

        This endpoint is used to start a Bancontact payment with card details that are encrypted using the CSE library.

        The `encryptedCardDetails` object must be created using the CSE library, which is available at `/paymentmethods/library/cse`.
        The `browserInformation` object is required to provide information about the consumer's browser.

        If the user is not able to use the intent URL or QR code, they can continue by entering their card data manually.
      summary: Start payment with encrypted card details
      tags:
        - Bancontact
      parameters:
        - $ref: '#/components/parameters/TransactionId'
      requestBody:
        description: Start Bancontact Card transaction with encrypted card details
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BancontactCardPayment'
      responses:
        '201':
          description: |-
            The Bancontact Card transaction was started successfully. 

            The response contains the transaction details and a redirect URL to which the consumer needs to be redirected.
          headers:
            Digest:
              $ref: '#/components/headers/Digest'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BancontactStartTransaction'
              examples:
                openBancontact:
                  $ref: '#/components/examples/openBancontactCard'
        4XX:
          $ref: '#/components/responses/UserError'
        5XX:
          $ref: '#/components/responses/InternalError'
  /paymentmethods/bancontact/v1/transactions/{transactionId}:
    get:
      operationId: getBancontactTransaction
      description: Retrieve details for an existing Bancontact transaction, either created in the API directly or through a Bancontact QR-code. This endpoint must be used to obtain the status for a transaction.
      tags:
        - Bancontact
      summary: Fetch transaction
      parameters:
        - $ref: '#/components/parameters/TransactionId'
      responses:
        '200':
          description: Returns the transaction details for the Bancontact transaction.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BanContactFetchTransaction'
              examples:
                openBancontact:
                  $ref: '#/components/examples/openBancontact'
                successBancontact:
                  $ref: '#/components/examples/successBancontact'
                cancelledBancontact:
                  $ref: '#/components/examples/cancelledBancontact'
        4XX:
          $ref: '#/components/responses/UserError'
        5XX:
          $ref: '#/components/responses/InternalError'
  /paymentmethods/bancontact/v1/transactions/{transactionId}/payments/{paymentId}/refunds:
    post:
      description: |-
        Create a refund for an existing Bancontact payment.

        The **paymentId** parameter can be obtained from:
        - The `id` field in the response of the "Start payment with encrypted card details" endpoint.
        - The `payment` field in the webhook payload sent when the payment was made via QR code or intent URL.

        The **amount** field is required and must be a positive value, which is the amount to be refunded.
      tags:
        - Bancontact
      summary: Create refund for payment
      operationId: createBancontactPaymentRefund
      parameters:
        - $ref: '#/components/parameters/TransactionId'
        - $ref: '#/components/parameters/PaymentId'
      requestBody:
        description: Create Bancontact Payment Refund
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Refund'
      responses:
        '201':
          description: The Bancontact payment refund was created successfully. The response contains the refund details.
          headers:
            Digest:
              $ref: '#/components/headers/Digest'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BanContactFetchTransaction'
              examples:
                successBancontactRefund:
                  $ref: '#/components/examples/successBancontactRefund'
        4XX:
          $ref: '#/components/responses/UserError'
        5XX:
          $ref: '#/components/responses/InternalError'
    get:
      description: Retrieve refunds for an existing Bancontact payment.
      tags:
        - Bancontact
      operationId: getBancontactRefunds
      summary: Fetch payment refunds
      parameters:
        - $ref: '#/components/parameters/TransactionId'
        - $ref: '#/components/parameters/PaymentId'
      responses:
        '200':
          description: Details of all refunds belonging to a Bancontact payment.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BancontactRefundsResponse'
        4XX:
          $ref: '#/components/responses/UserError'
        5XX:
          $ref: '#/components/responses/InternalError'
  /paymentmethods/bancontact/v1/transactions/{transactionId}/refunds:
    post:
      deprecated: true
      description: |-
        **This endpoint is deprecated and will be removed in a future release. Please use the payment refunds endpoint
        instead, indicating the specific payment to be refunded.**

        Create a refund for an existing Bancontact transaction. The **transactionId** parameter must be the ID of the
        transaction to be refunded.

        The **amount** field is required and must be a positive value, which is the amount to be refunded.
      tags:
        - Bancontact
      summary: Create refund
      operationId: createBancontactRefund
      parameters:
        - $ref: '#/components/parameters/TransactionId'
      requestBody:
        description: Create Bancontact Refund
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Refund'
      responses:
        '201':
          description: The Bancontact refund was created successfully. The response contains the refund details.
          headers:
            Digest:
              $ref: '#/components/headers/Digest'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BanContactFetchTransaction'
              examples:
                successBancontactRefund:
                  $ref: '#/components/examples/successBancontactRefund'
        4XX:
          $ref: '#/components/responses/UserError'
        5XX:
          $ref: '#/components/responses/InternalError'
    get:
      deprecated: true
      tags:
        - Bancontact
      operationId: getBancontactRefundsDeprecated
      summary: Fetch refunds
      description: |-
        **This endpoint is deprecated and will be removed in a future release. Please use the get payment refunds
        endpoint instead, indicating the specific payment for which you wish to list the refunds.**

        Retrieve refunds for an existing Bancontact transaction.
      parameters:
        - $ref: '#/components/parameters/TransactionId'
      responses:
        '200':
          $ref: '#/components/responses/RefundsResponse'
        4XX:
          $ref: '#/components/responses/UserError'
        5XX:
          $ref: '#/components/responses/InternalError'
  /paymentmethods/bancontact/v1/transactions/{transactionId}/payments:
    get:
      tags:
        - Bancontact
      operationId: getBancontactTransactionPayments
      description: Retrieve a paginated list of payments for an existing BanContact transaction (order).
      summary: Fetch payments
      parameters:
        - $ref: '#/components/parameters/TransactionId'
        - name: pageSize
          in: query
          schema:
            $ref: '#/components/schemas/PaymentPageSize'
        - name: after
          in: query
          schema:
            $ref: '#/components/schemas/After'
      responses:
        '200':
          description: Paginated list of payments for a BanContact transaction was returned successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BancontactPaymentsPaginated'
              examples:
                bancontactTransactionPayments:
                  $ref: '#/components/examples/bancontactTransactionPaymentsPaginated'
        4XX:
          $ref: '#/components/responses/UserError'
        5XX:
          $ref: '#/components/responses/InternalError'
  /paymentmethods/google-pay/v1/sessions:
    post:
      description: |-
        Create/initialize a Google Pay session. Returns a details object containing configuration needed to render the Google Pay button on the checkout UI.
        The **id** field in the response can be used in future calls as **sessionId** to reference this session.
      tags:
        - GooglePay
      summary: Create/initialize Google Pay session
      operationId: createGooglePaySession
      requestBody:
        description: Create Google Pay Session
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GooglePayInitialize'
            examples:
              createGooglePaySession:
                $ref: '#/components/examples/createGooglePaySession'
      responses:
        '201':
          $ref: '#/components/responses/GooglePaySession'
        4XX:
          $ref: '#/components/responses/UserError'
        5XX:
          $ref: '#/components/responses/InternalError'
  /paymentmethods/google-pay/v1/sessions/{sessionId}:
    get:
      description: Retrieve details for an existing Google Pay session. This endpoint must be used to obtain the status for a session.
      tags:
        - GooglePay
      summary: Fetch Google Pay session
      operationId: getGooglePaySession
      parameters:
        - $ref: '#/components/parameters/SessionId'
      responses:
        '200':
          $ref: '#/components/responses/GooglePaySession'
        4XX:
          $ref: '#/components/responses/UserError'
        5XX:
          $ref: '#/components/responses/InternalError'
  /paymentmethods/google-pay/v1/sessions/{sessionId}/transactions:
    post:
      description: |-
        Authorize a transaction for an existing Google Pay session. 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.

        This endpoint creates the actual transaction for the session. A `TRANSACTION_CREATED` webhook will be triggered if subscribed.
      tags:
        - GooglePay
      summary: Authorize Google Pay transaction
      operationId: createGooglePaySessionTransaction
      parameters:
        - $ref: '#/components/parameters/SessionId'
      requestBody:
        description: Authorize Google Pay Transaction
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AuthorizeGooglePayTransaction'
            examples:
              authorizeGooglePay:
                $ref: '#/components/examples/authorizeGooglePay'
      responses:
        '201':
          $ref: '#/components/responses/GooglePaySessionTransaction'
        4XX:
          $ref: '#/components/responses/UserError'
        5XX:
          $ref: '#/components/responses/InternalError'
    get:
      description: Retrieve all transactions for an existing Google Pay session.
      tags:
        - GooglePay
      summary: Fetch Google Pay session transactions
      operationId: getGooglePaySessionTransactions
      parameters:
        - $ref: '#/components/parameters/SessionId'
      responses:
        '200':
          $ref: '#/components/responses/GooglePaySessionTransactions'
        4XX:
          $ref: '#/components/responses/UserError'
        5XX:
          $ref: '#/components/responses/InternalError'
  /paymentmethods/google-pay/v1/sessions/{sessionId}/transactions/{transactionId}:
    get:
      description: Retrieve a specific transaction for an existing Google Pay session.
      tags:
        - GooglePay
      summary: Fetch Google Pay session transaction
      operationId: getGooglePaySessionTransaction
      parameters:
        - $ref: '#/components/parameters/SessionId'
        - $ref: '#/components/parameters/TransactionId'
      responses:
        '200':
          $ref: '#/components/responses/GooglePaySessionTransaction'
        4XX:
          $ref: '#/components/responses/UserError'
        5XX:
          $ref: '#/components/responses/InternalError'
  /paymentmethods/google-pay/v1/sessions/{sessionId}/transactions/{transactionId}/refunds:
    post:
      description: |-
        Create a refund for an existing Google Pay transaction.

        The **transactionId** parameter can be obtained from the `payment` field in the webhook payload sent when the transaction was created.

        The **amount** field is required and must be a positive value, which is the amount to be refunded.
      tags:
        - GooglePay
      summary: Create refund for transaction
      operationId: createGooglePaySessionTransactionRefund
      parameters:
        - $ref: '#/components/parameters/SessionId'
        - $ref: '#/components/parameters/TransactionId'
      requestBody:
        description: Create Google Pay Transaction Refund
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Refund'
      responses:
        '201':
          $ref: '#/components/responses/RefundResponseWithSessionID'
          description: GooglePay refund was created successfully.
        4XX:
          $ref: '#/components/responses/UserError'
        5XX:
          $ref: '#/components/responses/InternalError'
    get:
      description: Retrieve refunds for an existing Google Pay transaction of a session.
      tags:
        - GooglePay
      operationId: getGooglePaySessionTransactionRefunds
      summary: Fetch transaction refunds
      parameters:
        - $ref: '#/components/parameters/SessionId'
        - $ref: '#/components/parameters/TransactionId'
      responses:
        '200':
          $ref: '#/components/responses/RefundsResponseWithSessionID'
        4XX:
          $ref: '#/components/responses/UserError'
        5XX:
          $ref: '#/components/responses/InternalError'
  /paymentmethods/creditcard/v1/transactions:
    post:
      operationId: createCardTransaction
      description: Create a new Credit Card payment transaction. After receiving a HTTP status 201 you have to redirect the consumer to the url given in **action.redirect.url**. The **id** field in the response can be used in future calls as **transactionId** to reference this transaction (for instance in a refund).
      tags:
        - Cards
      summary: Create payment
      requestBody:
        description: Create Card Transaction
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CardPayment'
            examples:
              standard:
                $ref: '#/components/examples/standard'
      responses:
        '201':
          description: Cards transaction details
          headers:
            Digest:
              $ref: '#/components/headers/Digest'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreditCardTransaction'
              examples:
                open:
                  $ref: '#/components/examples/openCard'
        4XX:
          $ref: '#/components/responses/UserError'
        5XX:
          $ref: '#/components/responses/InternalError'
  /paymentmethods/creditcard/v1/transactions/{transactionId}:
    get:
      operationId: getCardTransaction
      description: Retrieve details for an existing Credit Card transaction. This endpoint must be used to obtain the status for a transaction.
      tags:
        - Cards
      summary: Fetch payment
      parameters:
        - $ref: '#/components/parameters/TransactionId'
      responses:
        '200':
          description: 'The Card transaction was created successfully. The response contains the transaction details and a redirect URL to complete the payment.description: The user input was incorrect or something illegal was attempted (eg. using a service without having that service configured for the user, or not being authorized)'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreditCardTransaction'
              examples:
                open:
                  $ref: '#/components/examples/openCard'
                success:
                  $ref: '#/components/examples/successCard'
                refund:
                  $ref: '#/components/examples/refundCard'
        4XX:
          $ref: '#/components/responses/UserError'
        5XX:
          $ref: '#/components/responses/InternalError'
  /paymentmethods/creditcard/v1/transactions/{transactionId}/refunds:
    post:
      operationId: refundCardPayment
      description: Create a refund for a previous made Credit Card transaction. A payment must be fully processed, captured and there shouldn't exist a chargeback to be able to refund them.
      tags:
        - Cards
      summary: Refund payment
      parameters:
        - $ref: '#/components/parameters/TransactionId'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Refund'
      responses:
        '201':
          description: The Credit Card refund was created successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreditCardTransaction'
              examples:
                refund:
                  $ref: '#/components/examples/refundCard'
        4XX:
          $ref: '#/components/responses/UserError'
        5XX:
          $ref: '#/components/responses/InternalError'
    get:
      operationId: getCardRefunds
      description: Retrieve refunds for an existing Credit Card transaction.
      tags:
        - Cards
      summary: Fetch refunds
      parameters:
        - $ref: '#/components/parameters/TransactionId'
      responses:
        '200':
          $ref: '#/components/responses/RefundsResponse'
        4XX:
          $ref: '#/components/responses/UserError'
        5XX:
          $ref: '#/components/responses/InternalError'
  /paymentmethods/ideal/v1/transactions:
    post:
      operationId: createIdealTransaction
      description: Create a new iDEAL payment transaction. After receiving a HTTP status 201 you have to redirect the consumer to the url given in **action.redirect.url**. The **id** field in the response can be used in future calls as **transactionId** to reference this transaction (for instance in a refund).
      tags:
        - iDEAL
      summary: Create payment
      requestBody:
        description: Create iDEAL Transaction
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/IdealPayment'
            examples:
              standardIdeal:
                $ref: '#/components/examples/standardIdeal'
              webhook:
                $ref: '#/components/examples/webhook'
              fastCheckout:
                $ref: '#/components/examples/fastCheckout'
              payFastRequestUserToken:
                $ref: '#/components/examples/payFastRequestUserToken'
              payFast:
                $ref: '#/components/examples/payFast'
      responses:
        '201':
          description: The iDEAL transaction was created successfully. The response contains the transaction details and a redirect URL to complete the payment.
          headers:
            Digest:
              $ref: '#/components/headers/Digest'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IdealTransaction'
              examples:
                openIdeal:
                  $ref: '#/components/examples/openIdeal'
                successIdeal:
                  $ref: '#/components/examples/successIdeal'
                iDEALCheckout:
                  $ref: '#/components/examples/iDEALCheckout'
                payFast:
                  $ref: '#/components/examples/examples-payFast'
        4XX:
          $ref: '#/components/responses/UserError'
        5XX:
          $ref: '#/components/responses/InternalError'
  /paymentmethods/ideal/v1/transactions/{transactionId}:
    get:
      operationId: getIdealTransaction
      description: Retrieve details for an existing iDEAL transaction, either created in de API directly or through an iDEAL QR-code. This endpoint must be used to obtain the status for a transaction.
      tags:
        - iDEAL
      summary: Fetch payment
      parameters:
        - $ref: '#/components/parameters/TransactionId'
      responses:
        '200':
          description: Returns the transaction details for the iDEAL transaction.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IdealTransaction'
              examples:
                openIdeal:
                  $ref: '#/components/examples/openIdeal'
                successIdeal:
                  $ref: '#/components/examples/successIdeal'
                refundIdeal:
                  $ref: '#/components/examples/refundIdeal'
                iDEALCheckout:
                  $ref: '#/components/examples/iDEALCheckout'
                payFast:
                  $ref: '#/components/examples/examples-payFast'
        4XX:
          $ref: '#/components/responses/UserError'
        5XX:
          $ref: '#/components/responses/InternalError'
  /paymentmethods/ideal/v1/transactions/{transactionId}/refunds:
    post:
      operationId: refundIdealPayment
      description: Create a refund for a previous made iDEAL transaction. A payment must be fully processed to be able to refund them. This may take up to 30 minutes.
      tags:
        - iDEAL
      summary: Refund iDEAL payment
      parameters:
        - $ref: '#/components/parameters/TransactionId'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Refund'
      responses:
        '201':
          description: The iDEAL refund was created successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IdealTransaction'
              examples:
                refund:
                  $ref: '#/components/examples/refundIdeal'
        4XX:
          $ref: '#/components/responses/UserError'
        5XX:
          $ref: '#/components/responses/InternalError'
    get:
      operationId: getIdealRefunds
      tags:
        - iDEAL
      summary: Fetch refunds
      description: Retrieve refunds for an iDEAL transaction.
      parameters:
        - $ref: '#/components/parameters/TransactionId'
      responses:
        '200':
          $ref: '#/components/responses/RefundsResponse'
        4XX:
          $ref: '#/components/responses/UserError'
        5XX:
          $ref: '#/components/responses/InternalError'
  /paymentmethods/ideal/v1/transactions/{transactionId}/userToken:
    get:
      operationId: getIdealPayFastUserToken
      parameters:
        - $ref: '#/components/parameters/TransactionId'
      summary: Fetch Pay Fast User Token
      description: |-
        Retrieve the Pay Fast User Token that was generated by iDEAL for this transaction.

        If no User Token was requested, the payment is not successful, the Consumer did not give consent, or the User Token is not yet available, a 404 status is returned.
      tags:
        - iDEAL
      responses:
        '200':
          description: iDEAL Pay Fast User Token which must be used to create an iDEAL Pay Fast payment.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/responses_IdealPayFastUserToken'
        4XX:
          $ref: '#/components/responses/UserError'
        5XX:
          $ref: '#/components/responses/InternalError'
  /paymentmethods/ideal/v1/debtors/{userToken}/preferences:
    get:
      operationId: getIdealPayFastUserPreferences
      summary: Get consumers preferred bank account
      description: Get the preferred bank account of the consumer by userToken before creating a Pay Fast transaction. The response must be rendered in the checkout so that the consumer can review it. If a 404 is returned a new token can be requested.
      parameters:
        - $ref: '#/components/parameters/IdealPayFastUserToken'
      tags:
        - iDEAL
      responses:
        '200':
          description: The preferenced bank account of the consumer.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IDealPayFastDebtorPreferences'
        4XX:
          $ref: '#/components/responses/UserError'
        5XX:
          $ref: '#/components/responses/InternalError'
  /paymentmethods/idealqr/v1/transactions:
    post:
      description: |
        **Reusable** idealQR transactions only have `open` and `expired` statuses.
        When a payment for an idealQR transaction is successful, the transaction status `successful` is updated only for non-reusable idealQR transactions, reusable ones will remain `open` until they expire.
      tags:
        - iDEAL-QR
      summary: Create iDEAL QR payment
      operationId: createIdealQRTransaction
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/IdealQRPayment'
            examples:
              standardIdealQRNonReusable:
                $ref: '#/components/examples/standardIdealQRNonReusable'
              standardIdealQRReusable:
                $ref: '#/components/examples/standardIdealQRReusable'
              standardIdealQRNonReusableWithWebhook:
                $ref: '#/components/examples/standardIdealQRNonReusableWithWebhook'
              standardIdealQRSingleReturnUrl:
                $ref: '#/components/examples/standardIdealQRSingleReturnUrl'
              standardIdealQRChangeableAmount:
                $ref: '#/components/examples/standardIdealQRWithChangeableAmount'
      responses:
        '201':
          description: The iDEAL-QR transaction was created successfully. The response contains the transaction details and a redirect URL to complete the payment.
          headers:
            Digest:
              $ref: '#/components/headers/Digest'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IdealQRTransaction'
              examples:
                openIdeal:
                  $ref: '#/components/examples/openIdealQR'
                successIdeal:
                  $ref: '#/components/examples/successIdealQR'
                openIdealQRWithChangeableAmount:
                  $ref: '#/components/examples/openIdealQRWithChangeableAmount'
        4XX:
          $ref: '#/components/responses/UserError'
        5XX:
          $ref: '#/components/responses/InternalError'
  /paymentmethods/idealqr/v1/transactions/{transactionId}:
    get:
      tags:
        - iDEAL-QR
      operationId: getIdealQRTransaction
      description: Retrieve details for an existing iDEAL-QR transaction. This endpoint must be used to obtain the status for a transaction.
      summary: Fetch payment
      parameters:
        - $ref: '#/components/parameters/TransactionId'
      responses:
        '200':
          description: Returns the transaction details for the iDEAL transaction.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IdealQRTransaction'
              examples:
                openIdeal:
                  $ref: '#/components/examples/openIdealQR'
                successIdeal:
                  $ref: '#/components/examples/successIdealQR'
                openIdealQRWithChangeableAmount:
                  $ref: '#/components/examples/openIdealQRWithChangeableAmount'
        4XX:
          $ref: '#/components/responses/UserError'
        5XX:
          $ref: '#/components/responses/InternalError'
  /paymentmethods/idealqr/v1/transactions/{transactionId}/payments:
    get:
      tags:
        - iDEAL-QR
      operationId: getIdealQRTransactionPayments
      description: Retrieve a paginated list of payment details for an existing iDEAL-QR transaction.
      summary: Fetch payments details
      parameters:
        - $ref: '#/components/parameters/TransactionId'
        - name: pageSize
          in: query
          schema:
            $ref: '#/components/schemas/PaymentPageSize'
        - name: after
          in: query
          schema:
            $ref: '#/components/schemas/After'
      responses:
        '200':
          description: Paginated list of payments for an iDEAL-QR transaction was returned successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IdealQRTransactionPaymentsPaginated'
              examples:
                iDEALQRtransactionWithPayments:
                  $ref: '#/components/examples/IdealQRTransactionPaymentsPaginated'
        4XX:
          $ref: '#/components/responses/UserError'
        5XX:
          $ref: '#/components/responses/InternalError'
  /paymentmethods/idealqr/v1/transactions/{transactionId}/payments/{paymentId}:
    get:
      tags:
        - iDEAL-QR
      description: Retrieve details from a payment for an existing iDEAL-QR transaction.
      summary: Fetch payment details
      operationId: getIdealQRPayment
      parameters:
        - $ref: '#/components/parameters/TransactionId'
        - $ref: '#/components/parameters/PaymentId'
      responses:
        '200':
          description: Details of a payment for an iDEAL-QR transaction were returned successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/responses-IdealQRPayment'
              examples:
                successIdealQRPaymentsPaginated:
                  $ref: '#/components/examples/IdealQRTransactionPaymentsPaginated'
        4XX:
          $ref: '#/components/responses/UserError'
        5XX:
          $ref: '#/components/responses/InternalError'
  /paymentmethods/idealqr/v1/transactions/{transactionId}/summary:
    get:
      tags:
        - iDEAL-QR
      description: Retrieve a summary that contains one or more payments for an iDEAL-QR transaction.
      summary: Fetch payments summary
      operationId: getIdealQRTransactionPaymentsSummary
      parameters:
        - $ref: '#/components/parameters/TransactionId'
        - name: status
          in: query
          description: The status for a transaction.
          schema:
            type: string
            enum:
              - OPEN
              - SUCCESS
              - FAILURE
              - CANCELLED
              - EXPIRED
      responses:
        '200':
          description: Summary of one or more payments for an iDEAL-QR transaction was returned successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IdealQRTransactionPaymentsSummary'
              examples:
                successIdealQRPaymentsSummaryByStatus:
                  $ref: '#/components/examples/IDEALQRPaymentsSummaryByStatus'
                successIdealQRAllPaymentsSummary:
                  $ref: '#/components/examples/IDEALQRAllPaymentsSummary'
        4XX:
          $ref: '#/components/responses/UserError'
        5XX:
          $ref: '#/components/responses/InternalError'
  /paymentmethods/idealqr/v1/transactions/{transactionId}/payments/{paymentId}/refunds:
    post:
      tags:
        - iDEAL-QR
      description: Creates a refund for payment that belongs to an iDEAL-QR transaction.
      summary: Refund a payment for an iDEAL-QR transaction
      operationId: createIdealQRTransactionRefund
      parameters:
        - $ref: '#/components/parameters/TransactionId'
        - $ref: '#/components/parameters/PaymentId'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Refund'
      responses:
        '201':
          description: iDEAL-QR refund transaction was created successfully. The response contains the created transaction details.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IdealQRPaymentRefund'
        4XX:
          $ref: '#/components/responses/UserError'
        5XX:
          $ref: '#/components/responses/InternalError'
    get:
      tags:
        - iDEAL-QR
      operationId: getIdealQRTransactionRefunds
      summary: Fetch refunds for payment
      description: Retrieve details of one or more refunds for an iDEAL transaction were returned successfully.
      parameters:
        - $ref: '#/components/parameters/TransactionId'
        - $ref: '#/components/parameters/PaymentId'
      responses:
        '200':
          $ref: '#/components/responses/RefundsResponse'
        4XX:
          $ref: '#/components/responses/UserError'
        5XX:
          $ref: '#/components/responses/InternalError'
  /paymentmethods/idealqr/v1/bulk:
    post:
      description: |
        Allows the creation of iDEAL-QR transactions in **bulk**.
        Since this is a bulk operation the following rules apply:
        - if at least 1 qr code was created, the response status of the request wil be 200 (status 200 does not guarantee that all the Qr codes have been created, see the response body to get more details over which qr codes have been successfully created)
        - In case none of the qr codes was created, if there is any scenario where the reason might be a request with a client error, then a status 400 wil be given as response code, otherwise a status 500 will be retrieved.
        - The client always has to check the response body to see which Qr codes have been created successfully.
      tags:
        - iDEAL-QR
      operationId: bulkCreateIdealQROrdersController
      summary: Create iDEAL-QR in bulk
      requestBody:
        required: true
        content:
          application/json:
            schema:
              allOf:
                - type: object
                  required:
                    - qrcodes
                  properties:
                    defaults:
                      $ref: '#/components/schemas/IdealQRPayment'
                    qrcodes:
                      $ref: '#/components/schemas/BulkQrCodesRequest'
            examples:
              bulkOperationQRCodes:
                $ref: '#/components/examples/bulkOperationQRCodes'
      responses:
        '200':
          $ref: '#/components/responses/BulkIdealQRResponse'
        '400':
          $ref: '#/components/responses/BulkIdealQRResponse'
        '500':
          $ref: '#/components/responses/BulkIdealQRResponse'
  /paymentmethods/in3/v1/transactions:
    post:
      operationId: createIn3Transaction
      description: Create a new in3 payment transaction. After receiving a HTTP status 201 you have to redirect the consumer to the url given in **action.redirect.url**. The **id** field in the response can be used in future calls as **transactionId** to reference this transaction (for instance in a refund).
      tags:
        - in3
      summary: Create payment
      requestBody:
        description: Create in3 Transaction
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/In3Payment'
            examples:
              basicTransaction:
                $ref: '#/components/examples/BasicTransaction'
              basicTransactionNoItems:
                $ref: '#/components/examples/BasicTransactionNoItems'
      responses:
        '201':
          $ref: '#/components/responses/IN3Transaction'
        4XX:
          $ref: '#/components/responses/UserError'
        5XX:
          $ref: '#/components/responses/InternalError'
  /paymentmethods/in3/v1/transactions/{transactionId}:
    get:
      operationId: getIn3Transaction
      summary: Fetch payment
      tags:
        - in3
      description: Retrieve details for an existing in3 transaction.
      parameters:
        - $ref: '#/components/parameters/TransactionId'
      responses:
        '200':
          $ref: '#/components/responses/IN3Transaction'
        4XX:
          $ref: '#/components/responses/UserError'
        5XX:
          $ref: '#/components/responses/InternalError'
  /paymentmethods/in3/v1/transactions/{transactionId}/refunds:
    post:
      operationId: createIn3Refund
      summary: Create refund
      tags:
        - in3
      description: |-
        Create a refund for an existing in3 transaction. The **transactionId** parameter must be the ID of the transaction to be refunded.

        The **amount** field is required and must be a positive value, which is the amount to be refunded.
      parameters:
        - $ref: '#/components/parameters/TransactionId'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Refund'
      responses:
        '201':
          $ref: '#/components/responses/RefundResponse'
          description: in3 refund was created successfully.
        4XX:
          $ref: '#/components/responses/UserError'
        5XX:
          $ref: '#/components/responses/InternalError'
    get:
      operationId: getIn3Refunds
      tags:
        - in3
      summary: Fetch refunds
      description: Retrieve refunds for an existing in3 transaction.
      parameters:
        - $ref: '#/components/parameters/TransactionId'
      responses:
        '200':
          $ref: '#/components/responses/RefundsResponse'
        4XX:
          $ref: '#/components/responses/UserError'
        5XX:
          $ref: '#/components/responses/InternalError'
  /paymentmethods/klarna/v1/transactions:
    post:
      operationId: createKlarnaTransaction
      description: |-
        Create a new Klarna payment transaction. The **id** field in the response can be used in future calls as **transactionId** to reference this transaction (for instance in a refund).
        This endpoint is used to create a Klarna payment transaction. The `webhooks` object is optional and can be used to specify webhooks for the transaction.
      tags:
        - Klarna
      summary: Create payment
      requestBody:
        description: Create Klarna Transaction
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/KlarnaPayment'
            examples:
              standardKlarna:
                $ref: '#/components/examples/standardKlarna'
      responses:
        '201':
          description: The Klarna transaction was created successfully.
          headers:
            Digest:
              $ref: '#/components/headers/Digest'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/KlarnaTransaction'
              examples:
                standardKlarna:
                  $ref: '#/components/examples/openKlarnaTransaction'
        4XX:
          $ref: '#/components/responses/UserError'
        5XX:
          $ref: '#/components/responses/InternalError'
  /paymentmethods/klarna/v1/transactions/{transactionId}:
    get:
      operationId: getKlarnaTransaction
      description: Retrieve details for an existing Klarna transaction. This endpoint must be used to obtain the status for a transaction.
      summary: Fetch payment
      tags:
        - Klarna
      parameters:
        - $ref: '#/components/parameters/TransactionId'
      responses:
        '200':
          description: Returns the transaction details for the Klarna transaction.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/KlarnaTransaction'
              examples:
                standardKlarna:
                  $ref: '#/components/examples/successKlarnaTransaction'
        4XX:
          $ref: '#/components/responses/UserError'
        5XX:
          $ref: '#/components/responses/InternalError'
  /paymentmethods/klarna/v1/transactions/{transactionId}/refunds:
    post:
      operationId: createKlarnaRefund
      description: |-
        Create a refund for an existing Klarna transaction. The **transactionId** parameter must be the ID of the transaction to be refunded.

        The **amount** field is required and must be a positive value, which is the amount to be refunded.
      summary: Create refund
      tags:
        - Klarna
      parameters:
        - $ref: '#/components/parameters/TransactionId'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Refund'
      responses:
        '201':
          description: The Klarna refund was created successfully. The response contains the refund details.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/KlarnaTransaction'
              examples:
                successKlarnaRefund:
                  $ref: '#/components/examples/successKlarnaRefund'
        4XX:
          $ref: '#/components/responses/UserError'
        5XX:
          $ref: '#/components/responses/InternalError'
    get:
      operationId: getKlarnaRefunds
      tags:
        - Klarna
      summary: Fetch refunds
      description: Retrieve refunds for an existing Klarna transaction.
      parameters:
        - $ref: '#/components/parameters/TransactionId'
      responses:
        '200':
          $ref: '#/components/responses/RefundsResponse'
        4XX:
          $ref: '#/components/responses/UserError'
        5XX:
          $ref: '#/components/responses/InternalError'
  /paymentmethods/apple-pay/v1/sessions:
    post:
      description: |-
        Create/initialize an Apple Pay session. Returns a details object containing configuration needed to render the Apple Pay button on the checkout UI.
        The **id** field in the response can be used in future calls as **sessionId** to reference this session.
      tags:
        - ApplePay
      summary: Create/initialize Apple Pay session
      operationId: createApplePaySession
      requestBody:
        description: Create Apple Pay Session
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AppleInitialize'
            examples:
              standardAppleInitialize:
                $ref: '#/components/examples/StandardAppleInitialize'
      responses:
        '201':
          $ref: '#/components/responses/ApplePaySession'
        4XX:
          $ref: '#/components/responses/UserError'
        5XX:
          $ref: '#/components/responses/InternalError'
  /paymentmethods/apple-pay/v1/sessions/{sessionId}/start:
    post:
      description: Generates a valid Apple Pay payment session by interacting with Apple Pay servers. Use the **id** field from the initialize response as **sessionId**.
      tags:
        - ApplePay
      summary: Start Apple Pay session
      operationId: startApplePaySession
      parameters:
        - $ref: '#/components/parameters/SessionId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/StartApplePaySession'
      responses:
        '201':
          $ref: '#/components/responses/StartApplePaySession'
        4XX:
          $ref: '#/components/responses/UserError'
        5XX:
          $ref: '#/components/responses/InternalError'
  /paymentmethods/apple-pay/v1/sessions/{sessionId}:
    get:
      description: Retrieve details for an existing Apple Pay session. This endpoint must be used to obtain the status for a session.
      tags:
        - ApplePay
      summary: Fetch Apple Pay session
      operationId: getApplePaySession
      parameters:
        - $ref: '#/components/parameters/SessionId'
      responses:
        '200':
          $ref: '#/components/responses/ApplePaySession'
        4XX:
          $ref: '#/components/responses/UserError'
        5XX:
          $ref: '#/components/responses/InternalError'
  /paymentmethods/apple-pay/v1/sessions/{sessionId}/transactions:
    post:
      description: |-
        Authorize a transaction for an existing Apple Pay session. 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.

        This endpoint creates the actual transaction for the session. A `TRANSACTION_CREATED` webhook will be triggered if subscribed.
      tags:
        - ApplePay
      summary: Authorize Apple Pay transaction
      operationId: createApplePaySessionTransaction
      parameters:
        - $ref: '#/components/parameters/SessionId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AuthorizeApplePayTransaction'
      responses:
        '201':
          $ref: '#/components/responses/ApplePaySessionTransaction'
        4XX:
          $ref: '#/components/responses/UserError'
        5XX:
          $ref: '#/components/responses/InternalError'
    get:
      description: Retrieve all transactions for an existing Apple Pay session.
      tags:
        - ApplePay
      summary: Fetch Apple Pay session transactions
      operationId: getApplePaySessionTransactions
      parameters:
        - $ref: '#/components/parameters/SessionId'
      responses:
        '200':
          $ref: '#/components/responses/ApplePaySessionTransactions'
        4XX:
          $ref: '#/components/responses/UserError'
        5XX:
          $ref: '#/components/responses/InternalError'
  /paymentmethods/apple-pay/v1/sessions/{sessionId}/transactions/{transactionId}:
    get:
      description: Retrieve a specific transaction for an existing Apple Pay session.
      tags:
        - ApplePay
      summary: Fetch Apple Pay session transaction
      operationId: getApplePaySessionTransaction
      parameters:
        - $ref: '#/components/parameters/SessionId'
        - $ref: '#/components/parameters/TransactionId'
      responses:
        '200':
          $ref: '#/components/responses/ApplePaySessionTransaction'
        4XX:
          $ref: '#/components/responses/UserError'
        5XX:
          $ref: '#/components/responses/InternalError'
  /paymentmethods/apple-pay/v1/sessions/{sessionId}/transactions/{transactionId}/refunds:
    post:
      description: |-
        Create a refund for an existing Apple Pay transaction.

        The **transactionId** parameter can be obtained from the `payment` field in the webhook payload sent when the transaction was created.

        The **amount** field is required and must be a positive value, which is the amount to be refunded.
      tags:
        - ApplePay
      summary: Create refund for transaction
      operationId: createApplePaySessionTransactionRefund
      parameters:
        - $ref: '#/components/parameters/SessionId'
        - $ref: '#/components/parameters/TransactionId'
      requestBody:
        description: Create Apple Pay Transaction Refund
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Refund'
      responses:
        '201':
          $ref: '#/components/responses/RefundResponseWithSessionID'
          description: ApplePay refund was created successfully.
        4XX:
          $ref: '#/components/responses/UserError'
        5XX:
          $ref: '#/components/responses/InternalError'
    get:
      description: Retrieve refunds for an existing Apple Pay transaction.
      tags:
        - ApplePay
      operationId: getApplePaySessionTransactionRefunds
      summary: Fetch transaction refunds
      parameters:
        - $ref: '#/components/parameters/SessionId'
        - $ref: '#/components/parameters/TransactionId'
      responses:
        '200':
          $ref: '#/components/responses/RefundsResponseWithSessionID'
        4XX:
          $ref: '#/components/responses/UserError'
        5XX:
          $ref: '#/components/responses/InternalError'
  /paymentmethods/belfiuspaybutton/v1/transactions:
    post:
      operationId: createBelfiusPayButtonTransaction
      description: Create a new Belfius Pay Button payment transaction. The **id** field in the response can be used in future calls as **transactionId** to reference this transaction (for instance in a refund).
      tags:
        - BelfiusPayButton
      summary: Create payment
      requestBody:
        description: Create Belfius Pay Button Transaction
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BelfiusPayButtonPayment'
      responses:
        '201':
          description: |-
            The Belfius Pay Button transaction was created successfully.

            The consumer should be redirected to the URL provided in the response to complete the payment.
          headers:
            Digest:
              $ref: '#/components/headers/Digest'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BelfiusPayButtonTransaction'
              examples:
                openBelfiusPayButton:
                  $ref: '#/components/examples/openBelfiusPayButton'
        4XX:
          $ref: '#/components/responses/UserError'
        5XX:
          $ref: '#/components/responses/InternalError'
  /paymentmethods/belfiuspaybutton/v1/transactions/{transactionId}:
    get:
      operationId: getBelfiusPayButtonTransaction
      description: Retrieve details for an existing Belfius Pay Button transaction. This endpoint must be used to obtain the status for a transaction.
      tags:
        - BelfiusPayButton
      summary: Fetch payment
      parameters:
        - $ref: '#/components/parameters/TransactionId'
      responses:
        '200':
          description: Returns the transaction details for the Belfius Pay Button transaction.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BelfiusPayButtonTransaction'
              examples:
                openBelfiusPayButton:
                  $ref: '#/components/examples/openBelfiusPayButton'
                successBelfiusPayButton:
                  $ref: '#/components/examples/successBelfiusPayButton'
        4XX:
          $ref: '#/components/responses/UserError'
        5XX:
          $ref: '#/components/responses/InternalError'
  /paymentmethods/belfiuspaybutton/v1/transactions/{transactionId}/refunds:
    post:
      description: |-
        Create a refund for an existing Belfius Pay Button transaction. The **transactionId** parameter must be the ID of the transaction to be refunded.

        The **amount** field is required and must be a positive value, which is the amount to be refunded.
      tags:
        - BelfiusPayButton
      summary: Create refund
      operationId: createBelfiusPayButtonRefund
      parameters:
        - $ref: '#/components/parameters/TransactionId'
      requestBody:
        description: Create Belfius Pay Button Refund
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Refund'
      responses:
        '201':
          description: The Belfius Pay Button refund was created successfully. The response contains the refund details.
          headers:
            Digest:
              $ref: '#/components/headers/Digest'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BelfiusPayButtonTransaction'
        4XX:
          $ref: '#/components/responses/UserError'
        5XX:
          $ref: '#/components/responses/InternalError'
    get:
      tags:
        - BelfiusPayButton
      operationId: getBelfiusPayButtonRefunds
      summary: Fetch refunds
      description: Retrieve refunds for an existing Belfius Pay Button transaction.
      parameters:
        - $ref: '#/components/parameters/TransactionId'
      responses:
        '200':
          $ref: '#/components/responses/RefundsResponse'
        4XX:
          $ref: '#/components/responses/UserError'
        5XX:
          $ref: '#/components/responses/InternalError'
  /paymentmethods/banktransfer/v1/transactions:
    post:
      operationId: createBankTransferTransaction
      description: Create a new Bank Transfer payment transaction. The **id** field in the response can be used in future calls as **transactionId** to reference this transaction (for instance in a refund).
      tags:
        - BankTransfer
      summary: Create payment
      requestBody:
        description: Create Bank Transfer Transaction
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BankTransferPayment'
      responses:
        '201':
          description: |-
            The Bank Transfer transaction was created successfully.

            The response contains the transaction details including bank account information for the consumer to complete the payment.
          headers:
            Digest:
              $ref: '#/components/headers/Digest'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BankTransferTransaction'
              examples:
                openBankTransfer:
                  $ref: '#/components/examples/openBankTransfer'
        4XX:
          $ref: '#/components/responses/UserError'
        5XX:
          $ref: '#/components/responses/InternalError'
  /paymentmethods/banktransfer/v1/transactions/{transactionId}:
    get:
      operationId: getBankTransferTransaction
      description: Retrieve details for an existing Bank Transfer transaction. This endpoint must be used to obtain the status for a transaction.
      tags:
        - BankTransfer
      summary: Fetch payment
      parameters:
        - $ref: '#/components/parameters/TransactionId'
      responses:
        '200':
          description: Returns the transaction details for the Bank Transfer transaction.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BankTransferTransaction'
              examples:
                openBankTransfer:
                  $ref: '#/components/examples/openBankTransfer'
                successBankTransfer:
                  $ref: '#/components/examples/successBankTransfer'
        4XX:
          $ref: '#/components/responses/UserError'
        5XX:
          $ref: '#/components/responses/InternalError'
  /paymentmethods/banktransfer/v1/transactions/{transactionId}/refunds:
    post:
      description: |-
        Create a refund for an existing Bank Transfer transaction. The **transactionId** parameter must be the ID of the transaction to be refunded.

        The **amount** field is required and must be a positive value, which is the amount to be refunded.
      tags:
        - BankTransfer
      summary: Create refund
      operationId: createBankTransferRefund
      parameters:
        - $ref: '#/components/parameters/TransactionId'
      requestBody:
        description: Create Bank Transfer Refund
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Refund'
      responses:
        '201':
          description: The Bank Transfer refund was created successfully. The response contains the refund details.
          headers:
            Digest:
              $ref: '#/components/headers/Digest'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BankTransferTransaction'
        4XX:
          $ref: '#/components/responses/UserError'
        5XX:
          $ref: '#/components/responses/InternalError'
    get:
      tags:
        - BankTransfer
      operationId: getBankTransferRefunds
      summary: Fetch refunds
      description: Retrieve refunds for an existing Bank Transfer transaction.
      parameters:
        - $ref: '#/components/parameters/TransactionId'
      responses:
        '200':
          $ref: '#/components/responses/RefundsResponse'
        4XX:
          $ref: '#/components/responses/UserError'
        5XX:
          $ref: '#/components/responses/InternalError'
  /paymentmethods/sepadirectdebit/v1/transactions:
    post:
      operationId: createSepaDirectDebitTransaction
      description: Create a new SEPA Direct Debit payment transaction. The **id** field in the response can be used in future calls as **transactionId** to reference this transaction (for instance in a refund).
      tags:
        - SepaDirectDebit
      summary: Create payment
      requestBody:
        description: Create SEPA Direct Debit Transaction
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SepaDirectDebitPayment'
      responses:
        '201':
          description: |-
            The SEPA Direct Debit transaction was created successfully.

            The direct debit will be processed according to SEPA regulations.
          headers:
            Digest:
              $ref: '#/components/headers/Digest'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SepaDirectDebitTransaction'
              examples:
                openSepaDirectDebit:
                  $ref: '#/components/examples/openSepaDirectDebit'
        4XX:
          $ref: '#/components/responses/UserError'
        5XX:
          $ref: '#/components/responses/InternalError'
  /paymentmethods/sepadirectdebit/v1/transactions/{transactionId}:
    get:
      operationId: getSepaDirectDebitTransaction
      description: Retrieve details for an existing SEPA Direct Debit transaction. This endpoint must be used to obtain the status for a transaction.
      tags:
        - SepaDirectDebit
      summary: Fetch payment
      parameters:
        - $ref: '#/components/parameters/TransactionId'
      responses:
        '200':
          description: Returns the transaction details for the SEPA Direct Debit transaction.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SepaDirectDebitTransaction'
              examples:
                openSepaDirectDebit:
                  $ref: '#/components/examples/openSepaDirectDebit'
                successSepaDirectDebit:
                  $ref: '#/components/examples/successSepaDirectDebit'
        4XX:
          $ref: '#/components/responses/UserError'
        5XX:
          $ref: '#/components/responses/InternalError'
  /paymentmethods/sepadirectdebit/v1/transactions/{transactionId}/refunds:
    post:
      description: |-
        Create a refund for an existing SEPA Direct Debit transaction. The **transactionId** parameter must be the ID of the transaction to be refunded.

        The **amount** field is required and must be a positive value, which is the amount to be refunded.
      tags:
        - SepaDirectDebit
      summary: Create refund
      operationId: createSepaDirectDebitRefund
      parameters:
        - $ref: '#/components/parameters/TransactionId'
      requestBody:
        description: Create SEPA Direct Debit Refund
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Refund'
      responses:
        '201':
          description: The SEPA Direct Debit refund was created successfully. The response contains the refund details.
          headers:
            Digest:
              $ref: '#/components/headers/Digest'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SepaDirectDebitTransaction'
        4XX:
          $ref: '#/components/responses/UserError'
        5XX:
          $ref: '#/components/responses/InternalError'
    get:
      tags:
        - SepaDirectDebit
      operationId: getSepaDirectDebitRefunds
      summary: Fetch refunds
      description: Retrieve refunds for an existing SEPA Direct Debit transaction.
      parameters:
        - $ref: '#/components/parameters/TransactionId'
      responses:
        '200':
          $ref: '#/components/responses/RefundsResponse'
        4XX:
          $ref: '#/components/responses/UserError'
        5XX:
          $ref: '#/components/responses/InternalError'
  /paymentmethods/creditcard/v2/transactions:
    post:
      operationId: createCreditCardTransactionV2
      description: |-
        Create a new Credit Card payment transaction using the v2 API. This version supports enhanced consumer data including billing and shipping addresses for improved fraud prevention.

        The **clientSideEncryptedCard** must be encrypted using the provided CSE javascript library. The **id** field in the response can be used in future calls as **transactionId** to reference this transaction (for instance in a refund).
      tags:
        - Cards
      summary: Create payment (v2)
      requestBody:
        description: Create Card Transaction V2
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CardPaymentV2'
      responses:
        '201':
          description: Cards transaction details
          headers:
            Digest:
              $ref: '#/components/headers/Digest'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreditCardTransactionV2'
              examples:
                open:
                  $ref: '#/components/examples/openCardV2'
        4XX:
          $ref: '#/components/responses/UserError'
        5XX:
          $ref: '#/components/responses/InternalError'
  /paymentmethods/creditcard/v2/transactions/initialize:
    post:
      operationId: initializeCreditCardTransactionV2
      description: |-
        Initialize a Credit Card transaction for 3D Secure authentication preparation. This endpoint is used before the actual payment to set up the authentication flow.

        After initialization, you can proceed with the payment by calling the create transaction endpoint with the encrypted card details.
      tags:
        - Cards
      summary: Initialize payment for 3DS (v2)
      requestBody:
        description: Initialize Card Transaction V2
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CardPaymentInitializeV2'
      responses:
        '201':
          description: Cards transaction initialization details
          headers:
            Digest:
              $ref: '#/components/headers/Digest'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreditCardTransactionV2'
              examples:
                initialized:
                  $ref: '#/components/examples/initializedCardV2'
        4XX:
          $ref: '#/components/responses/UserError'
        5XX:
          $ref: '#/components/responses/InternalError'
  /paymentmethods/creditcard/v2/transactions/{transactionId}:
    get:
      operationId: getCreditCardTransactionV2
      description: Retrieve details for an existing Credit Card v2 transaction. This endpoint must be used to obtain the status for a transaction.
      tags:
        - Cards
      summary: Fetch payment (v2)
      parameters:
        - $ref: '#/components/parameters/TransactionId'
      responses:
        '200':
          description: The Card transaction details.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreditCardTransactionV2'
              examples:
                open:
                  $ref: '#/components/examples/openCardV2'
                success:
                  $ref: '#/components/examples/successCardV2'
        4XX:
          $ref: '#/components/responses/UserError'
        5XX:
          $ref: '#/components/responses/InternalError'
  /paymentmethods/creditcard/v2/transactions/{transactionId}/refunds:
    post:
      operationId: createCreditCardRefundV2
      description: Create a refund for a previous made Credit Card v2 transaction. A payment must be fully processed, captured and there shouldn't exist a chargeback to be able to refund them.
      tags:
        - Cards
      summary: Create refund (v2)
      parameters:
        - $ref: '#/components/parameters/TransactionId'
      requestBody:
        description: Create Credit Card Refund V2
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Refund'
      responses:
        '201':
          description: The Credit Card refund was created successfully.
          headers:
            Digest:
              $ref: '#/components/headers/Digest'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreditCardTransactionV2'
        4XX:
          $ref: '#/components/responses/UserError'
        5XX:
          $ref: '#/components/responses/InternalError'
    get:
      operationId: getCreditCardRefundsV2
      description: Retrieve refunds for an existing Credit Card v2 transaction.
      tags:
        - Cards
      summary: Fetch refunds (v2)
      parameters:
        - $ref: '#/components/parameters/TransactionId'
      responses:
        '200':
          $ref: '#/components/responses/RefundsResponse'
        4XX:
          $ref: '#/components/responses/UserError'
        5XX:
          $ref: '#/components/responses/InternalError'
  /paymentmethods/paypal/v1/transactions:
    post:
      operationId: createPayPalTransaction
      description: Create a PayPal transaction. After receiving a HTTP status 201 you have to redirect the consumer to the url given in **action.redirect.url**. The **id** field in the response can be used in future calls as **transactionId** to reference this transaction (for instance in a refund).
      tags:
        - PayPal
      summary: Create PayPal payment
      requestBody:
        description: Create PayPal Transaction
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PayPalPayment'
            examples:
              openPayPal:
                $ref: '#/components/examples/openPayPal'
      responses:
        '201':
          description: The PayPal transaction was created successfully. The response contains the transaction details and a redirect URL to complete the payment.
          headers:
            Digest:
              $ref: '#/components/headers/Digest'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PayPalTransaction'
              examples:
                openPayPal:
                  $ref: '#/components/examples/examples-openPayPal'
        4XX:
          $ref: '#/components/responses/UserError'
        5XX:
          $ref: '#/components/responses/InternalError'
  /paymentmethods/paypal/v1/transactions/{transactionId}:
    get:
      operationId: getPayPalTransaction
      description: Retrieve details for an existing PayPal transaction. This endpoint must be used to obtain the status for a transaction.
      tags:
        - PayPal
      summary: Fetch PayPal payment
      parameters:
        - $ref: '#/components/parameters/TransactionId'
      responses:
        '200':
          description: Returns the transaction details for the PayPal transaction.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PayPalTransaction'
        4XX:
          $ref: '#/components/responses/UserError'
        5XX:
          $ref: '#/components/responses/InternalError'
  /paymentmethods/paypal/v1/transactions/{transactionId}/refunds:
    post:
      operationId: createPayPalRefund
      tags:
        - PayPal
      summary: Create PayPal refund
      description: |-
        Create a refund for an existing PayPal transaction. The **transactionId** parameter must be the ID of the transaction to be refunded.

        The **amount** field is required and must be a positive value, which is the amount to be refunded.
      parameters:
        - $ref: '#/components/parameters/TransactionId'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Refund'
      responses:
        '201':
          description: The PayPal refund was created successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PayPalTransaction'
        4XX:
          $ref: '#/components/responses/UserError'
        5XX:
          $ref: '#/components/responses/InternalError'
    get:
      operationId: getPayPalRefunds
      tags:
        - PayPal
      summary: Fetch refunds
      description: Retrieve refunds for an existing PayPal transaction.
      parameters:
        - $ref: '#/components/parameters/TransactionId'
      responses:
        '200':
          $ref: '#/components/responses/RefundsResponse'
        4XX:
          $ref: '#/components/responses/UserError'
        5XX:
          $ref: '#/components/responses/InternalError'
  /paymentmethods/paypal/v2/transactions:
    post:
      operationId: createPayPalV2Transaction
      description: Create a PayPal transaction. After receiving a HTTP status 201 you have to redirect the consumer to the url given in **action.redirect.url**. The **id** field in the response can be used in future calls as **transactionId** to reference this transaction (for instance in a refund).
      tags:
        - PayPal
      summary: Create PayPal payment
      requestBody:
        description: Create PayPal Transaction
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PayPalV2Payment'
            examples:
              openPayPal:
                $ref: '#/components/examples/openPayPalV2'
      responses:
        '201':
          description: The PayPal transaction was created successfully. The response contains the transaction details and a redirect URL to complete the payment.
          headers:
            Digest:
              $ref: '#/components/headers/Digest'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PayPalV2Transaction'
              examples:
                openPayPal:
                  $ref: '#/components/examples/examples-openPayPalV2'
        4XX:
          $ref: '#/components/responses/UserError'
        5XX:
          $ref: '#/components/responses/InternalError'
  /paymentmethods/paypal/v2/transactions/{transactionId}:
    get:
      operationId: getPayPalV2Transaction
      description: Retrieve details for an existing PayPal transaction. This endpoint must be used to obtain the status for a transaction.
      tags:
        - PayPal
      summary: Fetch PayPal payment
      parameters:
        - $ref: '#/components/parameters/TransactionId'
      responses:
        '200':
          description: Returns the transaction details for the PayPal transaction.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PayPalV2Transaction'
        4XX:
          $ref: '#/components/responses/UserError'
        5XX:
          $ref: '#/components/responses/InternalError'
  /paymentmethods/paypal/v2/transactions/{transactionId}/refunds:
    post:
      operationId: createPayPalV2Refund
      summary: Create refund
      tags:
        - PayPal
      description: |-
        Create a refund for an existing PayPal transaction. The **transactionId** parameter must be the ID of the transaction to be refunded.

        The **amount** field is required and must be a positive value, which is the amount to be refunded.
      parameters:
        - $ref: '#/components/parameters/TransactionId'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PayPalV2Refund'
      responses:
        '201':
          $ref: '#/components/responses/RefundResponse'
          description: PayPal refund was created successfully.
        4XX:
          $ref: '#/components/responses/UserError'
        5XX:
          $ref: '#/components/responses/InternalError'
    get:
      operationId: getPayPalV2Refunds
      tags:
        - PayPal
      summary: Fetch refunds
      description: Retrieve refunds for an existing PayPal transaction.
      parameters:
        - $ref: '#/components/parameters/TransactionId'
      responses:
        '200':
          $ref: '#/components/responses/RefundsResponse'
        4XX:
          $ref: '#/components/responses/UserError'
        5XX:
          $ref: '#/components/responses/InternalError'
  /paymentmethods/riverty/v1/transactions:
    post:
      operationId: createRivertyTransaction
      description: Create a Riverty transaction. After receiving a HTTP status 201 you have to redirect the consumer to the url given in **action.redirect.url**. The **id** field in the response can be used in future calls as **transactionId** to reference this transaction (for instance in a capture, cancellation or refund).
      tags:
        - Riverty
      summary: Create Riverty payment
      requestBody:
        description: Create Riverty Transaction
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RivertyPayment'
            examples:
              standardRiverty:
                $ref: '#/components/examples/standardAuthorization'
      responses:
        '201':
          description: The Riverty transaction was created successfully. The response contains the transaction details and a redirect URL to complete the payment.
          headers:
            Digest:
              $ref: '#/components/headers/Digest'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RivertyTransaction'
              examples:
                pendingRiverty:
                  $ref: '#/components/examples/pendingAuthorization'
                success:
                  $ref: '#/components/examples/successAuthorization'
        4XX:
          $ref: '#/components/responses/UserError'
        5XX:
          $ref: '#/components/responses/InternalError'
  /paymentmethods/riverty/v1/transactions/{transactionId}:
    get:
      operationId: getRivertyTransaction
      description: Retrieve details for an existing Riverty transaction. This endpoint must be used to obtain the status for a transaction.
      tags:
        - Riverty
      summary: Fetch Riverty payment
      parameters:
        - $ref: '#/components/parameters/TransactionId'
      responses:
        '200':
          description: Returns the transaction details for the Riverty transaction.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RivertyTransaction'
              examples:
                standardRiverty:
                  $ref: '#/components/examples/successAuthorization'
        4XX:
          $ref: '#/components/responses/UserError'
        5XX:
          $ref: '#/components/responses/InternalError'
  /paymentmethods/riverty/v1/transactions/{transactionId}/captures:
    post:
      operationId: createRivertyCapture
      description: |-
        **Important:** This endpoint isn't available for customers who enabled auto capture in their Riverty account.

        Create a capture for an existing Riverty transaction. The **transactionId** parameter must be the ID of the transaction to be captured.

        For an amount equal to the full amount of the transaction, **items** is optional, otherwise it has to be provided.
        The amount cannot exceed the remaining uncaptured amount of the transaction.
      tags:
        - Riverty
      summary: Create a Riverty capture
      parameters:
        - $ref: '#/components/parameters/TransactionId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/requestbodies_RivertyCapture'
            examples:
              fullCapture:
                $ref: '#/components/examples/fullCapture'
              partialCapture:
                $ref: '#/components/examples/partialCapture'
      responses:
        '201':
          description: The Riverty capture was created successfully. Money will be transferred to the merchant's account.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RivertyCapture'
              examples:
                fullCaptureResponse:
                  $ref: '#/components/examples/examples-fullCapture'
                partialCaptureResponse:
                  $ref: '#/components/examples/examples-partialCapture'
        4XX:
          $ref: '#/components/responses/UserError'
        5XX:
          $ref: '#/components/responses/InternalError'
    get:
      operationId: getRivertyCaptures
      tags:
        - Riverty
      summary: Fetch Riverty transaction captures
      description: Retrieve captures for an existing Riverty transaction.
      parameters:
        - $ref: '#/components/parameters/TransactionId'
      responses:
        '200':
          description: A list of captures for the specified Riverty transaction.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RivertyCaptures'
        4XX:
          $ref: '#/components/responses/UserError'
        5XX:
          $ref: '#/components/responses/InternalError'
  /paymentmethods/riverty/v1/transactions/{transactionId}/cancellations:
    post:
      operationId: createRivertyCancellation
      description: |-
        Cancel an existing Riverty transaction. The **transactionId** parameter must be the ID of the transaction to be cancelled.

        **Important:** A transaction cannot be cancelled if it has already been partially or fully captured. Cancellation is only possible for authorized transactions that have not yet been captured.

        Leaving the amount field empty will cancel the full amount of the transaction. If an amount is specified, it must be a positive value and not exceed the remaining uncancelled amount of the transaction.
      tags:
        - Riverty
      summary: Cancel an authorization
      parameters:
        - $ref: '#/components/parameters/TransactionId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RivertyCancellation'
            examples:
              fullCancellation:
                $ref: '#/components/examples/fullCancellation'
              partialCancellation:
                $ref: '#/components/examples/partialCancellation'
      responses:
        '201':
          description: The Riverty cancellation was created successfully. Money will be transferred back to the consumers account.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/responses_RivertyCancellation'
              examples:
                fullCancellation:
                  $ref: '#/components/examples/examples-fullCancellation'
                partialCancellation:
                  $ref: '#/components/examples/examples-partialCancellation'
        4XX:
          $ref: '#/components/responses/UserError'
        5XX:
          $ref: '#/components/responses/InternalError'
  /paymentmethods/riverty/v1/transactions/{transactionId}/refunds:
    post:
      operationId: createRivertyRefund
      description: |-
        Create a refund for a specific capture within an existing Riverty transaction.

        The **captureId** field is required for transactions with multiple captures, and optional for transactions with a single capture.

        The **items** field is optional. If omitted, all items of the capture will be refunded.
      tags:
        - Riverty
      summary: Create Riverty refund
      parameters:
        - $ref: '#/components/parameters/TransactionId'
        - in: header
          name: X-Idempotency-Key
          description: |-
            A unique client-supplied key to safely retry a request without creating a duplicate operation.

            Can include letters, numbers, hyphens and underscores, up to 50 characters long.
          required: false
          schema:
            type: string
            maxLength: 50
            pattern: ^[A-Za-z0-9_-]+$
          example: refund-2024-06-01-a1b2c3
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/requestbodies_RivertyRefund'
            examples:
              fullRefundSingleCapture:
                $ref: '#/components/examples/fullRefundSingleCapture'
              fullRefundMultiCapture:
                $ref: '#/components/examples/fullRefundMultiCapture'
              partialRefundSingleCapture:
                $ref: '#/components/examples/partialRefundSingleCapture'
              partialRefundMultiCapture:
                $ref: '#/components/examples/partialRefundMultiCapture'
      responses:
        '201':
          description: The Riverty refund was created successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RivertyRefund'
              examples:
                fullRefund:
                  $ref: '#/components/examples/refund'
                partialRefund:
                  $ref: '#/components/examples/partialRefund'
        4XX:
          $ref: '#/components/responses/UserError'
        5XX:
          $ref: '#/components/responses/InternalError'
    get:
      operationId: getRivertyRefunds
      tags:
        - Riverty
      summary: Fetch Riverty transaction refunds
      description: Retrieve refunds for an existing Riverty transaction.
      parameters:
        - $ref: '#/components/parameters/TransactionId'
      responses:
        '200':
          description: A list of refunds for the specified Riverty transaction.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RivertyRefunds'
        4XX:
          $ref: '#/components/responses/UserError'
        5XX:
          $ref: '#/components/responses/InternalError'
  /health:
    head:
      operationId: headHealthCheck
      security: []
      description: Health check status endpoint to check the API's operational status.
      tags:
        - Utils
      summary: Check API health status
      responses:
        '200':
          description: API is operational and healthy
        '503':
          description: API is currently fully or partially unavailable. All or some services is/are not working properly.
        4XX:
          $ref: '#/components/responses/UserError'
  /paymentmethods/library/cse:
    get:
      operationId: getCSELibrary
      tags:
        - Utils
      description: |
        This endpoint is for documentation purposes. When you call this endpoint the response contains an URL specific to your account. This url can be used to access the Client-Side Encryption library. This is a JavaScript library made to be used in the front-end. The library must be used to encrypt the Card Details of your consumer in their browser.The library MUST NOT be cached since the encryption keys are rotated automatically.
      summary: Get Client-Side Encryption library
      responses:
        '200':
          description: Client side encryption libraries for BanContact and Credit Card transactions
          headers:
            Digest:
              $ref: '#/components/headers/Digest'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ClientSideEncryption'
        4XX:
          $ref: '#/components/responses/UserError'
        5XX:
          $ref: '#/components/responses/InternalError'
  /paymentmethods/checkout/v1/transactions:
    post:
      operationId: createCheckout
      description: Create a new checkout. After receiving a HTTP status 201 you have to redirect the consumer to the url given in **action.redirect.url**. The **id** field in the response can be used in future calls as **transactionId** to reference this transaction (for instance in a refund).
      tags:
        - Checkout
      summary: Create checkout
      requestBody:
        description: Create checkout
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateCheckout'
            examples:
              standardCheckout:
                $ref: '#/components/examples/standardCheckout'
              checkoutSinglePaymentmethod:
                $ref: '#/components/examples/checkoutSinglePaymentmethod'
              checkoutWithWebhook:
                $ref: '#/components/examples/standardCheckoutWithWebhook'
              klarnaCheckout:
                $ref: '#/components/examples/klarnaCheckout'
      responses:
        '201':
          description: The iDEAL transaction was created successfully. The response contains the transaction details and a redirect URL to complete the payment.
          headers:
            Digest:
              $ref: '#/components/headers/Digest'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/responses_CreateCheckout'
              examples:
                standardCheckout:
                  $ref: '#/components/examples/examples-standardCheckout'
                standardCheckoutWithWebhook:
                  $ref: '#/components/examples/examples-standardCheckoutWithWebhook'
                klarnaCheckout:
                  $ref: '#/components/examples/examples-klarnaCheckout'
        4XX:
          $ref: '#/components/responses/UserError'
        5XX:
          $ref: '#/components/responses/InternalError'
  /paymentmethods/checkout/v1/transactions/{transactionId}:
    get:
      operationId: getCheckout
      description: Retrieve details for an existing Checkout transaction. This endpoint must be used to obtain the status for a transaction.
      tags:
        - Checkout
      summary: Fetch payment
      parameters:
        - $ref: '#/components/parameters/TransactionId'
      responses:
        '200':
          description: The Checkout was created successfully. The response contains the transaction details and a redirect URL to load checkout.
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/responses_CreateCheckout'
                  - $ref: '#/components/schemas/CheckoutPayments'
              examples:
                open:
                  $ref: '#/components/examples/examples-standardCheckout'
                multipleAttempts:
                  $ref: '#/components/examples/standardCheckoutMultipleAttempts'
                klarnaSuccess:
                  $ref: '#/components/examples/klarnaSuccessCheckout'
        4XX:
          $ref: '#/components/responses/UserError'
        5XX:
          $ref: '#/components/responses/InternalError'
  /paymentmethods/checkout/v1/transactions/{transactionId}/refunds:
    post:
      operationId: createCheckoutRefund
      description: Create a refund for a previous made Credit Card transaction. A payment must be fully processed, captured and there shouldn't exist a chargeback to be able to refund them.
      tags:
        - Checkout
      summary: Refund payment
      parameters:
        - $ref: '#/components/parameters/TransactionId'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Refund'
      responses:
        '201':
          description: The Checkout refund was created successfully.
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/responses_CreateCheckout'
                  - $ref: '#/components/schemas/CheckoutPayments'
              examples:
                refund:
                  $ref: '#/components/examples/refundCheckout'
        4XX:
          $ref: '#/components/responses/UserError'
        5XX:
          $ref: '#/components/responses/InternalError'
    get:
      operationId: getCheckoutRefund
      tags:
        - Checkout
      summary: Fetch checkout refund
      description: Retrieve refunds for a Checkout transaction.
      parameters:
        - $ref: '#/components/parameters/TransactionId'
      responses:
        '200':
          $ref: '#/components/responses/RefundsResponse'
        4XX:
          $ref: '#/components/responses/UserError'
        5XX:
          $ref: '#/components/responses/InternalError'
webhooks:
  transactionEvent:
    post:
      operationId: createTransactionEvent
      summary: Webhook event for a transaction.
      description: |-
        Webhook that will be called if requested in the initial create transaction request.

        Implement this webhook when you want to receive a notification when a given event occurs. This will give you the advantage of not having to poll the payment method specific `GET` endpoint for status updates.
      tags:
        - Utils
      requestBody:
        description: Transaction event
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TransactionEvent'
            examples:
              statusChanged:
                summary: Payment status change event
                value:
                  transaction: 72149cbf-d4a1-4309-9872-6ec19fa782cc
                  event: STATUS_CHANGE
                  reference: bcbb3733-4d3e-4a4d-9254-1ddb90e6e081
                  createdAt: '2006-01-02T15:04:05Z'
      responses:
        '200':
          description: The webhook has been received.
  iDEALQRPaymentEvent:
    post:
      operationId: createiDEALQRPaymentEvent
      summary: Webhook event for a transaction for an iDEAL-QR payment.
      description: |-
        Webhook that will be called if requested in the initial create transaction request.

        Implement this webhook when you want to receive a notification when a given event occurs. This will give you the advantage of not having to poll the payment method specific `GET` endpoint for status updates.
      tags:
        - Utils
      requestBody:
        description: Transaction event
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/iDEALQRPaymentEvent'
            examples:
              statusChanged:
                summary: Payment status change event
                value:
                  transaction: 72149cbf-d4a1-4309-9872-6ec19fa782cc
                  event: QR_PAYMENT_CREATED
                  reference: bcbb3733-4d3e-4a4d-9254-1ddb90e6e081
                  createdAt: '2006-01-02T15:04:05Z'
                  payment: 193cb243-283a-4760-9c56-8a6444d588b2
      responses:
        '200':
          description: The webhook has been received.
  bancontactPaymentEvent:
    post:
      operationId: createBancontactPaymentEvent
      summary: Webhook event for a BanContact payment.
      description: |-
        Webhook that will be called if requested in the initial create transaction request.

        Implement this webhook when you want to receive a notification when a new payment is created for a BanContact order. This will give you the advantage of not having to poll the payment method specific `GET` endpoint for status updates.
      tags:
        - Utils
      requestBody:
        description: Transaction event
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BancontactPaymentEvent'
            examples:
              paymentCreated:
                summary: Payment created event
                value:
                  transaction: 72149cbf-d4a1-4309-9872-6ec19fa782cc
                  event: PAYMENT_CREATED
                  reference: bcbb3733-4d3e-4a4d-9254-1ddb90e6e081
                  createdAt: '2006-01-02T15:04:05Z'
                  payment: 193cb243-283a-4760-9c56-8a6444d588b2
      responses:
        '200':
          description: The webhook has been received.
  sessionEvent:
    post:
      operationId: createSessionEvent
      summary: Webhook event for a session-based payment (Google Pay, Apple Pay).
      description: |-
        Webhook that will be called if requested in the initial create session request.

        Implement this webhook when you want to receive a notification when a given event occurs on a
        session-based payment flow. Unlike the standard transaction event, this payload uses a `sessionID`
        to identify the session and a `transactionID` to identify the individual transaction within it.
      tags:
        - Utils
      requestBody:
        description: Session event
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SessionEvent'
            examples:
              sessionCreated:
                summary: Transaction created within a session
                value:
                  sessionID: 72149cbf-d4a1-4309-9872-6ec19fa782cc
                  transactionID: 193cb243-283a-4760-9c56-8a6444d588b2
                  event: TRANSACTION_CREATED
                  reference: bcbb3733-4d3e-4a4d-9254-1ddb90e6e081
                  createdAt: '2006-01-02T15:04:05Z'
              statusChanged:
                summary: Session transaction status change
                value:
                  sessionID: 72149cbf-d4a1-4309-9872-6ec19fa782cc
                  transactionID: 193cb243-283a-4760-9c56-8a6444d588b2
                  event: STATUS_CHANGE
                  reference: bcbb3733-4d3e-4a4d-9254-1ddb90e6e081
                  createdAt: '2006-01-02T15:04:05Z'
              refundUpdated:
                summary: Session transaction status change
                value:
                  sessionID: 72149cbf-d4a1-4309-9872-6ec19fa782cc
                  transactionID: 193cb243-283a-4760-9c56-8a6444d588b2
                  event: REFUND_STATUS
                  reference: bcbb3733-4d3e-4a4d-9254-1ddb90e6e081
                  createdAt: '2006-01-02T15:04:05Z'
                  refundID: 193cb243-283a-4760-9c56-8a6444d588b7
      responses:
        '200':
          description: The webhook has been received.
components:
  securitySchemes:
    oAuth2ClientCredentials:
      type: oauth2
      description: OAuth 2.0 Client Credentials Grant.
      flows:
        clientCredentials:
          tokenUrl: /api/v1/authorization/oauth2/token
          scopes: {}
  headers:
    Digest:
      description: Digest of the whole message body. Follow [RFC 3230](https://datatracker.ietf.org/doc/html/rfc3230) for more information.
      schema:
        type: string
        example: sha-256=OWM5MDc3ODYwNzdjYjE5NjU0Y2NjMDM4MzEyYzMxZTA5MTAzMDBjYWM1Y2I1ODM4NTdlMDU2MzhiMzE1ZDhjNw==
  schemas:
    Uuid:
      description: Unique identifier
      type: string
      format: uuid
      minLength: 36
      maxLength: 36
      example: 8db1e7fa-ba8a-4189-92fd-67a20217443d
    ReturnUrls:
      type: object
      description: |-
        URLs where the Consumer is redirected to after completing the transaction at its issuing bank or at the chosen payment method.

        With this object we can redirect consumer to a dedicated page per payment result status. Either this object or the returnUrl field is mandatory.
      required:
        - success
        - cancelled
        - expired
        - failed
      properties:
        success:
          type: string
          format: url
          maxLength: 2000
          example: https://yourdomain.tld/order/payment-success.html
        cancelled:
          type: string
          format: url
          maxLength: 2000
          example: https://yourdomain.tld/order/payment-cancelled.html
        expired:
          type: string
          format: url
          maxLength: 2000
          example: https://yourdomain.tld/order/payment-expired.html
        failed:
          type: string
          format: url
          maxLength: 2000
          example: https://yourdomain.tld/order/payment-failed.html
    ReturnUrl:
      description: |-
        URL where the Consumer is redirected to after completing the transaction at its issuing bank or at the chosen payment method.

        With this implementation you are responsible to fetch the payment status and incorporated into your site.
      type: string
      format: url
      maxLength: 2000
      example: https://yourdomain.tld/order/return?orderID=order123
    ReturnURLOneOf:
      oneOf:
        - type: object
          required:
            - returnUrls
          properties:
            returnUrls:
              $ref: '#/components/schemas/ReturnUrls'
        - type: object
          required:
            - returnUrl
          properties:
            returnUrl:
              $ref: '#/components/schemas/ReturnUrl'
    Reference:
      description: The clients identifier. This value will be sent in the webhook payload alongside the ID you receive as part of the response of a transaction.
      type: string
      minLength: 1
      maxLength: 255
      example: '20210623130413'
    Amount:
      description: Denomination in the smallest currency subunit, as for example euro cents.
      type: integer
      minimum: 1
      maximum: 99999999
      example: 1200
    Currency:
      description: ISO 4217 currency code.
      type: string
      minLength: 3
      maxLength: 3
      default: EUR
      example: EUR
    PaymentWithoutDescriptionExpiresAtLanguageAndWebhooks:
      allOf:
        - $ref: '#/components/schemas/ReturnURLOneOf'
        - type: object
          required:
            - reference
            - amount
          properties:
            reference:
              $ref: '#/components/schemas/Reference'
            amount:
              $ref: '#/components/schemas/Amount'
            currency:
              $ref: '#/components/schemas/Currency'
    Language:
      description: Preferred language for the user interface as ISO 639-1 code. Commonly supported languages are Dutch (nl) and English (en).
      type: string
      example: nl
      minLength: 2
      maxLength: 2
    PaymentWithoutDescriptionExpiresAtAndWebhooks:
      allOf:
        - $ref: '#/components/schemas/PaymentWithoutDescriptionExpiresAtLanguageAndWebhooks'
        - type: object
          properties:
            language:
              $ref: '#/components/schemas/Language'
    BaseWebhook:
      type: object
      description: A single webhook object consists out of an URL to which we need to send the occurred event together with the event that needs to trigger the webhook call.
      required:
        - url
        - events
      properties:
        url:
          description: The URL the request must be send to.
          type: string
          format: url
          example: https://yourdomain.tld/webhooks?purchaseId=order123
        events:
          description: Type of events that will trigger a webhook.
          type: array
          minItems: 1
          items:
            type: string
    StatusChangeEvent:
      description: |
        * `STATUS_CHANGE` - Triggered when the status of a transaction changes.
      type: string
      enum:
        - STATUS_CHANGE
      example: STATUS_CHANGE
    RefundStatusEvent:
      description: |
        * `REFUND_STATUS` - Triggered when a transaction receives an update on one of its requested refunds.
      type: string
      enum:
        - REFUND_STATUS
      example: REFUND_STATUS
    FinalStatusEvent:
      description: |
        * `FINALSTATUS` - This value is deprecated and shouldn't be used anymore. Use `STATUS_CHANGE` instead.
      type: string
      enum:
        - FINALSTATUS
      example: FINALSTATUS
    TransactionWebhook:
      allOf:
        - $ref: '#/components/schemas/BaseWebhook'
        - type: object
          properties:
            events:
              items:
                description: |
                  * `STATUS_CHANGE` - Triggered when the status of a transaction changes.
                  * `REFUND_STATUS` - Triggered when a transaction receives an update on one of its requested refunds.
                  * `FINALSTATUS` - This value is deprecated and shouldn't be used anymore. Use `STATUS_CHANGE` instead.
                oneOf:
                  - $ref: '#/components/schemas/StatusChangeEvent'
                  - $ref: '#/components/schemas/RefundStatusEvent'
                  - $ref: '#/components/schemas/FinalStatusEvent'
                example: STATUS_CHANGE
    TransactionWebhooks:
      description: |
        Array of webhooks that enables receiving a web request once a given event occurs. We won't do preventive rate-limiting in order to have the highest throughput possible. However, we will honor 429 (Too-many-requests) responses per callback. We use the Retry-After header to retry after a certain period. If the header was not set we use our default exponential delay implementation.
      type: array
      items:
        $ref: '#/components/schemas/TransactionWebhook'
      example:
        - url: https://yourdomain.tld/payment-webhooks?purchaseId=order123
          events:
            - STATUS_CHANGE
    PaymentWithoutDescriptionAndExpiresAt:
      allOf:
        - $ref: '#/components/schemas/PaymentWithoutDescriptionExpiresAtAndWebhooks'
        - type: object
          properties:
            webhooks:
              $ref: '#/components/schemas/TransactionWebhooks'
    Description:
      description: Description of the underlying value or reason of the payment.
      type: string
      maxLength: 255
      example: Order at yourdomain.tld
    Datetime:
      type: string
      format: date-time
      minLength: 20
      example: '2006-01-02T15:04:05Z'
      description: ISO 8601 date and time.
    Payment:
      allOf:
        - $ref: '#/components/schemas/PaymentWithoutDescriptionAndExpiresAt'
        - type: object
          required:
            - description
          properties:
            description:
              $ref: '#/components/schemas/Description'
            expiresAt:
              $ref: '#/components/schemas/Datetime'
              description: ISO 8601 date and time. If a transaction is not finalized before this time the status becomes **EXPIRED**.
    Email:
      description: The email address of the consumer.
      type: string
      format: email
      example: john.doe@email.tld
    Phone:
      description: The phonenumber of the consumer (E.164 format).
      type: string
      maxLength: 16
      example: '+31695613259'
    GenderlessConsumer:
      type: object
      properties:
        email:
          $ref: '#/components/schemas/Email'
        phone:
          $ref: '#/components/schemas/Phone'
        dateOfBirth:
          type: string
          format: date
          pattern: ^\d{4}-\d{2}-\d{2}$
          example: '1990-05-23'
          description: Date of birth in ISO 8601 format (YYYY-MM-DD).
    Gender:
      description: The consumers gender.
      type: string
      format: enum
      enum:
        - m
        - f
        - 'null'
      default: null
    Consumer:
      allOf:
        - $ref: '#/components/schemas/GenderlessConsumer'
        - type: object
          properties:
            gender:
              $ref: '#/components/schemas/Gender'
    LastName:
      description: Consumer's last name.
      type: string
      maxLength: 35
      example: Doe
    Name:
      description: Consumer's name.
      type: object
      required:
        - firstName
        - lastName
      properties:
        firstName:
          description: Consumer's first name.
          type: string
          maxLength: 35
          example: John
        lastName:
          $ref: '#/components/schemas/LastName'
        middleName:
          description: Consumer's middle name.
          type: string
          maxLength: 35
          example: A
    Country:
      description: Country of the consumer (ISO-3166)
      type: string
      example: NL
      minLength: 2
      maxLength: 2
    AddressWithoutMandatoryCountry:
      type: object
      description: The consumers address.
      properties:
        street:
          description: The consumers street name.
          type: string
          maxLength: 100
          example: Rustenburgerlaan
        houseNumber:
          description: The consumers house number.
          type: string
          maxLength: 35
          example: '25'
        postalCode:
          description: The consumers postal code.
          type: string
          maxLength: 35
          example: 2012AL
        city:
          description: The consumers city.
          type: string
          maxLength: 35
          example: Haarlem
        countryCode:
          $ref: '#/components/schemas/Country'
    AddressWithStateAndAdditionalData:
      allOf:
        - $ref: '#/components/schemas/AddressWithoutMandatoryCountry'
        - type: object
          properties:
            state:
              description: The state or province of the consumer's billing address associated with the card used for this purchase. The value must be the country subdivision code (e.g., 'NH') or the official state/province name (e.g., 'Noord Holland') as defined in ISO 3166-2.
              type: string
              maxLength: 40
              example: Noord-Holland
            additionalData:
              description: The consumers house number addition.
              type: string
              maxLength: 35
              example: Right-hand portal
    Address:
      allOf:
        - $ref: '#/components/schemas/AddressWithStateAndAdditionalData'
        - type: object
          required:
            - countryCode
    ConsumerBase:
      allOf:
        - $ref: '#/components/schemas/Consumer'
        - type: object
          properties:
            name:
              $ref: '#/components/schemas/Name'
            address:
              $ref: '#/components/schemas/Address'
            businessName:
              description: The consumers company name.
              type: string
              maxLength: 35
              example: CM
    BancontactPayment:
      allOf:
        - $ref: '#/components/schemas/Payment'
        - type: object
          required:
            - language
            - consumer
          properties:
            expiresAt:
              allOf:
                - $ref: '#/components/schemas/Datetime'
                - description: ISO 8601 date and time. If a transaction is not finalized before this time the status becomes EXPIRED. If left empty, the value defaults to 1 hour.
            webhooks:
              $ref: '#/components/schemas/TransactionWebhooks'
            consumer:
              allOf:
                - $ref: '#/components/schemas/ConsumerBase'
                - type: object
                  required:
                    - email
                    - address
                  properties:
                    address:
                      allOf:
                        - $ref: '#/components/schemas/Address'
                        - type: object
                          required:
                            - countryCode
    TransactionId:
      description: ID received in the POST transaction response root object, which can be used in up following calls like refunds or cancellations as transactionId.
      type: string
      format: uuid
      minLength: 36
      maxLength: 36
      example: 8db1e7fa-ba8a-4189-92fd-67a20217443d
    StatusOpen:
      description: The transaction is open and can be paid.
      type: string
      format: enum
      enum:
        - OPEN
      example: OPEN
    StatusAuthorized:
      description: The transaction has been authorized.
      type: string
      format: enum
      enum:
        - AUTHORIZED
      example: AUTHORIZED
    StatusSuccess:
      description: The transaction has been successfully paid.
      type: string
      format: enum
      enum:
        - SUCCESS
      example: SUCCESS
    TransactionStatus:
      type: string
      description: The status of the transaction.
      format: enum
      oneOf:
        - $ref: '#/components/schemas/StatusOpen'
        - $ref: '#/components/schemas/StatusAuthorized'
        - $ref: '#/components/schemas/StatusSuccess'
    TransactionWithoutOrderIdLanguageRefundsCreatedAtAndExpiresAt:
      allOf:
        - $ref: '#/components/schemas/ReturnURLOneOf'
        - type: object
          required:
            - id
            - reference
            - amount
            - currency
            - status
            - description
          properties:
            id:
              $ref: '#/components/schemas/TransactionId'
            reference:
              $ref: '#/components/schemas/Reference'
            amount:
              $ref: '#/components/schemas/Amount'
            currency:
              $ref: '#/components/schemas/Currency'
            status:
              $ref: '#/components/schemas/TransactionStatus'
            webhooks:
              $ref: '#/components/schemas/TransactionWebhooks'
            description:
              $ref: '#/components/schemas/Description'
    TransactionWithoutOrderIdLanguageRefundsAndExpiresAt:
      allOf:
        - $ref: '#/components/schemas/TransactionWithoutOrderIdLanguageRefundsCreatedAtAndExpiresAt'
        - type: object
          required:
            - createdAt
          properties:
            createdAt:
              $ref: '#/components/schemas/Datetime'
              description: ISO 8601 date and time when the transaction was created.
    Refunds:
      description: Details of refunds for a transaction
      type: object
      required:
        - refundedAmount
        - refundedPendingAmount
      properties:
        refundedAmount:
          description: Amount in the smallest currency subunit, as for example euro cents, that has already been refunded.
          type: integer
          minimum: 0
          maximum: 99999999
          example: 300
        refundedPendingAmount:
          description: Amount in the smallest currency subunit, as for example euro cents, that has been requested to be refunded.
          type: integer
          minimum: 1
          maximum: 99999999
          example: 100
    TransactionWithoutOrderId:
      allOf:
        - $ref: '#/components/schemas/TransactionWithoutOrderIdLanguageRefundsAndExpiresAt'
        - type: object
          required:
            - language
            - expiresAt
          properties:
            language:
              $ref: '#/components/schemas/Language'
            expiresAt:
              $ref: '#/components/schemas/Datetime'
              description: ISO 8601 date and time. If a transaction is not finalized before this time the status becomes **EXPIRED**.
            refunds:
              $ref: '#/components/schemas/Refunds'
    Transaction:
      allOf:
        - $ref: '#/components/schemas/TransactionWithoutOrderId'
        - type: object
          required:
            - orderId
          properties:
            orderId:
              allOf:
                - deprecated: true
                - $ref: '#/components/schemas/Uuid'
    StatusCancelled:
      description: The transaction has been cancelled by the consumer.
      type: string
      format: enum
      enum:
        - CANCELLED
      example: CANCELLED
    StatusExpired:
      description: The transaction has expired.
      type: string
      format: enum
      enum:
        - EXPIRED
      example: EXPIRED
    StatusFailure:
      description: The transaction has failed.
      type: string
      format: enum
      enum:
        - FAILURE
      example: FAILURE
    QRCodeAction:
      type: object
      required:
        - url
      description: |
        Action to be performed by the consumer to complete the payment. This action is only available when a payment using the card details was not started.
      properties:
        url:
          description: URL to QR code image to be scanned by consumer to perform the payment. Unavailable when a payment using the card details was started.
          type: string
          format: url
          example: https://qrbackend.tld/images/213981209381209390821.png
    IntentURLAction:
      type: object
      required:
        - url
      description: |
        Action to be performed by the consumer to complete the payment. This action is only available when a payment using the card details was not started.
      properties:
        url:
          description: Intent URL which can be opened by the BanContact by Payconic application on mobile devices. Unavailable when a payment using the card details was started.
          type: string
          format: url
          example: https://docdata.tld/pay?order=123
    BancontactAction:
      type: object
      description: Next action to be performed by the merchant (or consumer) to complete the payment.
      required:
        - qrcode
        - intent
      properties:
        qrcode:
          $ref: '#/components/schemas/QRCodeAction'
        intent:
          $ref: '#/components/schemas/IntentURLAction'
    BanContactTransaction:
      allOf:
        - $ref: '#/components/schemas/Transaction'
        - type: object
          required:
            - country
            - action
            - status
          properties:
            status:
              description: The status of the transaction.
              oneOf:
                - $ref: '#/components/schemas/StatusAuthorized'
                - $ref: '#/components/schemas/StatusCancelled'
                - $ref: '#/components/schemas/StatusExpired'
                - $ref: '#/components/schemas/StatusFailure'
            country:
              $ref: '#/components/schemas/Country'
            action:
              $ref: '#/components/schemas/BancontactAction'
    ShopperIP:
      type: string
      minLength: 1
      maxLength: 39
      description: IPv4 or IPv6 address for the consumer
      example: 1.1.1.1
    BrowserInformation:
      type: object
      required:
        - shopperIp
        - accept
        - userAgent
      properties:
        shopperIp:
          $ref: '#/components/schemas/ShopperIP'
        accept:
          type: string
          description: content-type accepted by the client browser
          example: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
        userAgent:
          type: string
          description: User-Agent of the consumers browser.
          example: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36 Edge/18.18363
    EncryptedCardDetails:
      type: object
      required:
        - data
      properties:
        data:
          type: string
          description: |
            The card data that need to be encrypted (cardHolderName, cardNumber, expiryMonth, expiryYear, securityCode).

            Use the library from `/paymentmethods/library/cse`. This contains a JS library with an exported function called `cseEncrypt`.
            `let encrypted = cseEncrypt(cardHolderName, cardNumber, expiryMonth, expiryYear, securityCode);`
    BancontactCardPayment:
      allOf:
        - type: object
          required:
            - browserInformation
            - encryptedCardDetails
          properties:
            browserInformation:
              $ref: '#/components/schemas/BrowserInformation'
            encryptedCardDetails:
              $ref: '#/components/schemas/EncryptedCardDetails'
    RedirectAction:
      description: URL where consumer should be redirected to by the merchant to perform the payment.
      type: object
      required:
        - url
      properties:
        url:
          description: URL where consumer should be redirected to by the merchant to perform the payment.
          type: string
          format: url
          example: https://issuer.tld/ideal/start?trxid=213981209381209390821&random=wreq0dq90vgq0ew923123
    BancontactCardAction:
      type: object
      description: Next action to be performed by the merchant (or consumer) to complete the payment.
      required:
        - redirect
      properties:
        redirect:
          $ref: '#/components/schemas/RedirectAction'
    BancontactStartTransaction:
      type: object
      required:
        - id
        - action
      properties:
        id:
          $ref: '#/components/schemas/TransactionId'
        action:
          $ref: '#/components/schemas/BancontactCardAction'
    BanContactFetchTransaction:
      allOf:
        - $ref: '#/components/schemas/Transaction'
        - type: object
          required:
            - country
            - action
            - status
          properties:
            status:
              description: The status of the transaction.
              oneOf:
                - $ref: '#/components/schemas/StatusAuthorized'
                - $ref: '#/components/schemas/StatusCancelled'
                - $ref: '#/components/schemas/StatusExpired'
                - $ref: '#/components/schemas/StatusFailure'
            country:
              $ref: '#/components/schemas/Country'
            action:
              type: object
              description: Next action to be performed by the merchant (or consumer) to complete the payment.
              properties:
                qrcode:
                  $ref: '#/components/schemas/QRCodeAction'
                intent:
                  $ref: '#/components/schemas/IntentURLAction'
                redirect:
                  $ref: '#/components/schemas/RedirectAction'
    RefundReason:
      description: |
        The description for the refund for administrative purpose only. This reason will be visible in the portal.
      type: string
      example: Refund required by consumer.
      maxLength: 255
    RefundStatus:
      description: |
        * `SUCCESS`    - Refund has succeeded.
        * `PENDING`    - Refund is waiting to be processed.
        * `FAILURE`    - Refund has failed.
        * `CANCELLED`  - Refund has been cancelled.
      type: string
      enum:
        - SUCCESS
        - PENDING
        - FAILURE
        - CANCELLED
      example: SUCCESS
    RefundDetails:
      description: Details of a refund.
      type: object
      required:
        - id
        - transactionId
        - amount
        - reason
        - status
        - created
        - updated
      properties:
        id:
          $ref: '#/components/schemas/Uuid'
        transactionId:
          $ref: '#/components/schemas/Uuid'
        amount:
          $ref: '#/components/schemas/Amount'
        reason:
          $ref: '#/components/schemas/RefundReason'
        status:
          $ref: '#/components/schemas/RefundStatus'
        created:
          $ref: '#/components/schemas/Datetime'
        updated:
          $ref: '#/components/schemas/Datetime'
    RefundDetailsWithPaymentID:
      allOf:
        - $ref: '#/components/schemas/RefundDetails'
        - type: object
          required:
            - paymentId
          properties:
            paymentId:
              allOf:
                - $ref: '#/components/schemas/Uuid'
              description: Unique identifier for the payment that is being refunded.
    BancontactRefundsResponse:
      type: object
      required:
        - refunds
      properties:
        refunds:
          type: array
          items:
            $ref: '#/components/schemas/RefundDetailsWithPaymentID'
    Refund:
      description: Refund an already successfully processed payment.
      type: object
      properties:
        amount:
          $ref: '#/components/schemas/Amount'
          description: |
            Denomination in the smallest currency subunit, as for example euro cents. If empty, the refund amount will be the remaining available amount of the transaction (i.e., total payment amount minus already refunded amounts minus the amounts of the pending refund requests).
        reason:
          $ref: '#/components/schemas/RefundReason'
    PaymentPageSize:
      description: The number of elements to be returned in the response
      type: integer
      minimum: 10
      maximum: 100
      example: 20
    After:
      allOf:
        - $ref: '#/components/schemas/Datetime'
        - description: Return the elements that were created after this date
        - example: '2022-10-13T14:21:30.478935Z'
    responses_BancontactPayment:
      type: object
      required:
        - id
        - orderId
        - status
        - paidAmount
        - createdAt
        - expiresAt
      properties:
        id:
          $ref: '#/components/schemas/Uuid'
        orderId:
          $ref: '#/components/schemas/Uuid'
        status:
          description: The status of the payment.
          allOf:
            - $ref: '#/components/schemas/StatusOpen'
            - $ref: '#/components/schemas/StatusSuccess'
            - $ref: '#/components/schemas/StatusCancelled'
            - $ref: '#/components/schemas/StatusExpired'
            - $ref: '#/components/schemas/StatusFailure'
        paidAmount:
          allOf:
            - $ref: '#/components/schemas/Amount'
            - description: Amount paid in the smallest currency subunit, as for example euro cents.
        createdAt:
          $ref: '#/components/schemas/Datetime'
        expiresAt:
          $ref: '#/components/schemas/Datetime'
    BancontactPaymentsPaginated:
      type: object
      required:
        - total
        - pageSize
        - payments
      properties:
        total:
          description: The total number of payments that the order has
          type: integer
          example: 6
        pageSize:
          $ref: '#/components/schemas/PaymentPageSize'
        payments:
          type: array
          items:
            allOf:
              - $ref: '#/components/schemas/responses_BancontactPayment'
    TransactionCreatedEvent:
      description: |
        * `TRANSACTION_CREATED` - Triggered when a new transaction is created.
      type: string
      enum:
        - TRANSACTION_CREATED
      example: TRANSACTION_CREATED
    SessionTransactionWebhooks:
      allOf:
        - $ref: '#/components/schemas/BaseWebhook'
        - type: object
          properties:
            events:
              items:
                description: |
                  * `STATUS_CHANGE` - Triggered when the status of a session or a transaction changes.
                  * `REFUND_STATUS` - Triggered when a transaction receives an update on one of its requested refunds.
                  * `TRANSACTION_CREATED` - Triggered when a new transaction is created for a session.
                oneOf:
                  - $ref: '#/components/schemas/StatusChangeEvent'
                  - $ref: '#/components/schemas/RefundStatusEvent'
                  - $ref: '#/components/schemas/TransactionCreatedEvent'
                example: STATUS_CHANGE
    GooglePayInitialize:
      type: object
      required:
        - reference
        - amount
        - description
        - language
      properties:
        reference:
          $ref: '#/components/schemas/Reference'
        description:
          description: |
            Description of the underlying value or reason of the session.
            Ultimately appears on the confirmation (statement and confirmation screen).
          type: string
          maxLength: 255
          example: Order at yourdomain.tld
        amount:
          $ref: '#/components/schemas/Amount'
        currency:
          $ref: '#/components/schemas/Currency'
        expiresAt:
          allOf:
            - $ref: '#/components/schemas/Datetime'
            - description: ISO 8601 date and time. If left empty, the value defaults to 10 mins.
        language:
          $ref: '#/components/schemas/Language'
        consumer:
          $ref: '#/components/schemas/Consumer'
        webhooks:
          $ref: '#/components/schemas/SessionTransactionWebhooks'
        returnUrl:
          $ref: '#/components/schemas/ReturnUrl'
    GooglePaySessionObject:
      type: object
      required:
        - id
        - reference
        - amount
        - currency
        - description
        - expiresAt
        - language
        - status
        - createdAt
      properties:
        id:
          $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'
        consumer:
          description: Consumer details. Only returned on session creation (POST). Not available on session retrieval (GET).
          allOf:
            - $ref: '#/components/schemas/Consumer'
        webhooks:
          $ref: '#/components/schemas/TransactionWebhooks'
        status:
          $ref: '#/components/schemas/TransactionStatus'
        action:
          description: |
            Contains the details necessary to render the Google Pay button in your own checkout page during the initialize session flow.
            In consequent flows the action object will be null.
          anyOf:
            - type: 'null'
            - type: object
              properties:
                googlePayButton:
                  type: object
                  properties:
                    merchantCountry:
                      description: The ISO 3166-1 alpha-2 country code where the transaction is processed.
                      type: string
                      example: NL
                    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: Your Merchant
                    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/
        createdAt:
          $ref: '#/components/schemas/Datetime'
        returnUrl:
          $ref: '#/components/schemas/ReturnUrl'
    PaymentMethod:
      description: The payment method used in the transaction.
      type: string
      format: enum
      enum:
        - creditcard
      example: creditcard
    GooglePayTransactionObject:
      type: object
      required:
        - id
        - sessionId
        - expiresAt
        - status
        - createdAt
      properties:
        id:
          $ref: '#/components/schemas/Uuid'
        sessionId:
          $ref: '#/components/schemas/Uuid'
        expiresAt:
          $ref: '#/components/schemas/Datetime'
        webhooks:
          $ref: '#/components/schemas/TransactionWebhooks'
        status:
          $ref: '#/components/schemas/TransactionStatus'
        action:
          description: Next action to be performed by merchant (or consumer) to complete the transaction. Only present when 3DS authentication is required.
          anyOf:
            - type: 'null'
            - type: object
              properties:
                redirect:
                  type: object
                  properties:
                    url:
                      description: URL where consumer should be redirected to by the merchant to perform the transaction. 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'
        paymentMethod:
          $ref: '#/components/schemas/PaymentMethod'
    AuthorizeGooglePayTransaction:
      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
    RefundDetailsWithSessionID:
      allOf:
        - $ref: '#/components/schemas/RefundDetails'
        - type: object
          required:
            - sessionId
          properties:
            sessionId:
              allOf:
                - $ref: '#/components/schemas/Uuid'
              description: Unique identifier for the session.
              example: bcbb3733-4d3e-4a4d-9254-1ddb90e6e082
    CardProvider:
      type: string
      format: enum
      enum:
        - mastercard
        - visa
        - amex
        - maestro
      description: The card scheme the card belongs to.
      example: mastercard
    CardDetails:
      description: Card details like the cardholders name, PAN, CVC and expiry date.
      type: object
      required:
        - cardProvider
        - browserInformation
        - encryptedCardDetails
      properties:
        cardProvider:
          $ref: '#/components/schemas/CardProvider'
        browserInformation:
          $ref: '#/components/schemas/BrowserInformation'
        encryptedCardDetails:
          $ref: '#/components/schemas/EncryptedCardDetails'
    CardPayment:
      allOf:
        - $ref: '#/components/schemas/Payment'
        - type: object
          required:
            - description
            - language
            - consumer
            - cardDetails
          properties:
            expiresAt:
              allOf:
                - $ref: '#/components/schemas/Datetime'
                - description: ISO 8601 date and time. If a transaction is not finalized before this time the status becomes EXPIRED. If left empty, the value defaults to 30 mins.
            consumer:
              allOf:
                - $ref: '#/components/schemas/ConsumerBase'
                - type: object
                  required:
                    - email
                    - address
                  properties:
                    address:
                      allOf:
                        - $ref: '#/components/schemas/Address'
                        - type: object
                          required:
                            - countryCode
            cardDetails:
              $ref: '#/components/schemas/CardDetails'
    CreditCardTransaction:
      allOf:
        - $ref: '#/components/schemas/Transaction'
        - type: object
          required:
            - country
            - status
            - action
            - cardProvider
          properties:
            status:
              description: The status of the transaction.
              oneOf:
                - $ref: '#/components/schemas/StatusAuthorized'
                - $ref: '#/components/schemas/StatusCancelled'
                - $ref: '#/components/schemas/StatusExpired'
                - $ref: '#/components/schemas/StatusFailure'
            action:
              type: object
              description: Next action to be performed by merchant (or consumer) to complete the payment.
              properties:
                redirect:
                  $ref: '#/components/schemas/RedirectAction'
            country:
              $ref: '#/components/schemas/Country'
            cardProvider:
              $ref: '#/components/schemas/CardProvider'
    PurchaseID:
      description: |-
        Unique identification of the order within the Merchant's system. This value
        appears on the bank statement of the Consumer.

        The purchaseID can only contain letters and numbers.
      type: string
      minLength: 1
      maxLength: 35
      pattern: ^[A-Za-z0-9]{1,35}$
      example: PO1234567
    IDEALDescription:
      maxLength: 35
      description: |
        Description of the underlying value or reason of the payment.

        Ultimately appears on the payment statement and confirmation screen.
    IdealCheckout:
      description: |-
        An iDEAL payment with iDEAL Checkout allow users to centrally manage their shipping, invoice and contact details in an iDEAL profile and provide these to a Merchant as part of the iDEAL payment.

        Use this object to enable the iDEAL Checkout flow and specify the shipping costs and the consumer details to be returned after a successful payment.
      type: object
      properties:
        shippingCost:
          description: |-
            Shipping costs in euro cents.

            This value must be less or equal to the total transaction amount, which includes these shipping costs.
          type: integer
          example: 100
          minimum: 0
          maximum: 99999999
        requestedDetails:
          description: According to GDPR, the merchant is responsible for requesting what is meant 'good enough' data fields for them in order to finalize the order and deliver the goods.
          type: object
          properties:
            debtorContactDetails:
              type: object
              title: DebtorContactDetailsRequestData
              description: With the Debtor Contact Details, you (the merchant) can indicate which data you want to retrieve from iDEAL Checkout in the Create Transaction response.
              properties:
                firstName:
                  type: boolean
                  description: Request to provide the first name of the consumer
                  default: false
                lastName:
                  type: boolean
                  description: Request to provide the last name of the consumer
                  default: false
                phoneNumber:
                  type: boolean
                  description: Request to provide the phone number of the consumer in E.164 format
                  default: false
                email:
                  type: boolean
                  description: Request to provide the e-mail address of the consumer
                  default: false
            shippingAddress:
              type: boolean
              description: Request to provide the shipping address of the consumer
              default: false
            invoiceAddress:
              type: boolean
              description: Request to provide the invoice address of the consumer
              default: false
      required:
        - shippingCost
        - requestedDetails
    IdealPayFastRequestUserToken:
      description: |-
        Requests a User Token for future Pay Fast transactions with the same Consumer.

        When enabled and the Consumer consents, a User Token will be generated that enables push notifications in future transactions.

        Only request User Tokens for Consumers who have established accounts with your service and can be reliably identified on return visits.
      type: boolean
      default: false
    IdealPayFastUserToken:
      description: iDEAL Pay Fast User Token as generated by iDEAL, which is received in the response of a Create iDEAL Transaction when the field `"requestUserToken"` is set to `true`.
      type: string
      minLength: 1
      maxLength: 128
      example: Z7xmaEJlB3rDLpmln9xbUlaQ
    IdealPayFastExpectedDebtor:
      type: object
      description: |-
        If the Merchant is in possession of a User Token, obtained through a previous transaction, and the Consumer has indicated that he wants to reuse the bank account that was displayed after retrieving it from the `getDebtorPreferences`-endpoint, the User Token and browsers user-agent can be provided to enable the enhanced flow.

        The Consumer for which a User Token is used MUST hold an account with the merchant. The Merchant MUST only use the iDEAL User Token that was received in the last transaction for the Consumer.
      required:
        - userToken
      properties:
        userToken:
          $ref: '#/components/schemas/IdealPayFastUserToken'
        userAgent:
          type: string
          description: The User-Agent contains a characteristic string that allows the network protocol peers to identify the application type, operating system, software vendor, or software version of the requesting software user agent.
          minLength: 0
          maxLength: 500
    IdealPayment:
      allOf:
        - $ref: '#/components/schemas/Payment'
        - type: object
          required:
            - purchaseId
            - description
          properties:
            expiresAt:
              allOf:
                - $ref: '#/components/schemas/Datetime'
                - description: ISO 8601 date and time. If a transaction is not finalized before this time the status becomes EXPIRED. If left empty, the value defaults to 30 mins.
            language:
              allOf:
                - $ref: '#/components/schemas/Language'
                - type: string
                  description: Preferred language for the user interface as ISO 639-1 code. If the provided language is not supported the default will be used. Commonly supported languages are Dutch (nl) and English (en).
                  default: nl
            purchaseId:
              $ref: '#/components/schemas/PurchaseID'
            description:
              $ref: '#/components/schemas/IDEALDescription'
            checkout:
              $ref: '#/components/schemas/IdealCheckout'
            requestUserToken:
              $ref: '#/components/schemas/IdealPayFastRequestUserToken'
            expectedDebtor:
              $ref: '#/components/schemas/IdealPayFastExpectedDebtor'
    BIC:
      description: Bank Identification Code
      deprecated: true
      type: string
      minLength: 8
      maxLength: 11
      example: RABONL2U
    IdealAddress:
      type: object
      title: Address
      properties:
        firstName:
          type: string
          description: The first name of the consumer
          example: John
          minLength: 1
        lastName:
          type: string
          description: The last name of the consumer
          example: Doe
          minLength: 1
        companyName:
          type: string
          description: The company name of the consumer
          example: Cookie factory
          minLength: 1
        postalCode:
          type: string
          description: The postal code of the address without spaces
          example: 1234AB
          minLength: 1
        houseNumber:
          type: string
          description: The house number of the address
          example: '100'
          minLength: 1
        addition:
          type: string
          description: The addition of the address
          example: 2B
          minLength: 1
        street:
          type: string
          description: The street of the address
          example: Bankastraat
          minLength: 1
        city:
          type: string
          description: The city of the address
          example: Amsterdam
          minLength: 1
        countryName:
          type: string
          description: Name of the country
          example: Netherlands
          minLength: 1
    IdealConsumer:
      description: contains the Name and IBAN that were used by the consumer that completed the payment. This field is null until the payment is completed.
      type: object
      properties:
        name:
          description: Name of the consumer
          type: string
          example: John
        bic:
          $ref: '#/components/schemas/BIC'
        iban:
          description: IBAN of the consumer
          type: string
          example: NL24RABO8487376045
        checkoutDetails:
          description: |-
            The checkout details defined by the consumer before completing the transaction.

            By default, the invoice address will be the same as the shipping address unless it is explicitly changed by the
            consumer.

            This field is only available if the transaction status is `SUCCESS` and checkout data was requested.
          type: object
          properties:
            contactDetails:
              type: object
              title: DebtorContactDetails
              properties:
                firstName:
                  type: string
                  description: The first name of the consumer (can be different from the first name in the contact details)
                  example: Edsger
                  minLength: 1
                lastName:
                  type: string
                  description: The last name of the consumer (can be different from the last name in the contact details)
                  example: Dijkstra
                  minLength: 1
                phoneNumber:
                  type: string
                  description: The phone number of the consumer in E.164 format
                  pattern: ^\+[1-9][0-9]{1,14}$
                  example: '+31612345678'
                email:
                  type: string
                  description: The e-mail address of the consumer
                  format: email
                  example: edsger@domain.nl
                  minLength: 1
            shippingAddress:
              $ref: '#/components/schemas/IdealAddress'
            invoiceAddress:
              $ref: '#/components/schemas/IdealAddress'
    IdealTransactionId:
      description: |-
        The 16-digit transaction ID within the iDEAL scheme as known by the acquirer and issuing bank, and 
        used in the credit transfer. The value can have leading zeros.
        This value is `null` if the status `FAILURE`.
      type: string
      minLength: 16
      maxLength: 16
      example: '1234567890123456'
    IdealTransaction:
      allOf:
        - $ref: '#/components/schemas/Transaction'
        - type: object
          required:
            - purchaseId
            - action
            - idealTransactionId
            - status
          properties:
            description:
              $ref: '#/components/schemas/IDEALDescription'
            status:
              oneOf:
                - $ref: '#/components/schemas/StatusFailure'
                - $ref: '#/components/schemas/StatusExpired'
                - $ref: '#/components/schemas/StatusCancelled'
            purchaseId:
              $ref: '#/components/schemas/PurchaseID'
            action:
              type: object
              description: Next action to be performed by merchant (or consumer) to complete the payment.
              properties:
                redirect:
                  $ref: '#/components/schemas/RedirectAction'
            issuer:
              $ref: '#/components/schemas/BIC'
            requestUserToken:
              $ref: '#/components/schemas/IdealPayFastRequestUserToken'
            expectedDebtor:
              $ref: '#/components/schemas/IdealPayFastExpectedDebtor'
            notificationResult:
              type: string
              format: enum
              enum:
                - PUSH_SENT_SHOW_WAITING_SCREEN
                - REDIRECT
              description: |-
                The value `PUSH_SENT_SHOW_WAITING_SCREEN` indicates the issuer attempted to send the notification, and the Merchant should show a "waiting for notification"-screen to the Consumer. The value `REDIRECT` indicates the Consumer should be redirected to the `checkoutUrl` as with the normal iDEAL flow.

                This field is only returned when the Pay Fast flow was initiated using the `expectedDebtor`-field.
            consumer:
              $ref: '#/components/schemas/IdealConsumer'
            idealTransactionId:
              $ref: '#/components/schemas/IdealTransactionId'
    responses_IdealPayFastUserToken:
      type: object
      required:
        - transactionId
        - userToken
      properties:
        transactionId:
          $ref: '#/components/schemas/TransactionId'
        userToken:
          $ref: '#/components/schemas/IdealPayFastUserToken'
    IDealPayFastDebtorPreferences:
      type: object
      required:
        - issuerName
        - issuerLogoUrl
        - maskedIban
      properties:
        issuerName:
          description: The name of the issuer bank.
          type: string
          minLength: 1
          maxLength: 36
          example: Test Bank
        issuerLogoUrl:
          description: The logo URL of the issuer bank.
          type: string
          format: uri
          example: https://ideal.ext/logos/issuer.png
        maskedIban:
          description: The masked consumer IBAN.
          type: string
          example: NL44RABO******6789
          minLength: 1
    AmountChangeable:
      description: Contains the minimum and maximum values for the amount of a QR code that a consumer can set themselves after scanning the code.
      type: object
      properties:
        min:
          description: Minimum of the amount. Must be higher than 0
          type: integer
          example: 1
        max:
          description: Maximum of the amount. Must be higher than the minimum and lower than 5000000.
          type: integer
          example: 50000
    IDEALQRReusable:
      description: Indicates the QR code's ability to accept multiple successful payments.
      type: boolean
      default: false
      example: false
    IdealQRPayment:
      allOf:
        - $ref: '#/components/schemas/Payment'
        - type: object
          required:
            - size
          properties:
            amountChangeable:
              $ref: '#/components/schemas/AmountChangeable'
            language:
              $ref: '#/components/schemas/Language'
            purchaseId:
              $ref: '#/components/schemas/PurchaseID'
            description:
              $ref: '#/components/schemas/IDEALDescription'
            reusable:
              $ref: '#/components/schemas/IDEALQRReusable'
            size:
              $ref: '#/components/schemas/PaymentPageSize'
            webhooks:
              $ref: '#/components/schemas/TransactionWebhooks'
    IdealQRTransaction:
      allOf:
        - type: object
          required:
            - id
            - reference
            - amount
            - currency
            - purchaseId
            - description
            - size
            - expiresAt
            - status
            - action
            - createdAt
          properties:
            id:
              $ref: '#/components/schemas/Uuid'
            amountChangeable:
              $ref: '#/components/schemas/AmountChangeable'
            reference:
              $ref: '#/components/schemas/Reference'
            amount:
              $ref: '#/components/schemas/Amount'
            currency:
              $ref: '#/components/schemas/Currency'
            purchaseId:
              $ref: '#/components/schemas/PurchaseID'
            description:
              $ref: '#/components/schemas/IDEALDescription'
            size:
              type: integer
              example: 200
            expiresAt:
              $ref: '#/components/schemas/Datetime'
            reusable:
              $ref: '#/components/schemas/IDEALQRReusable'
            language:
              $ref: '#/components/schemas/Language'
            webhooks:
              $ref: '#/components/schemas/TransactionWebhooks'
            status:
              $ref: '#/components/schemas/TransactionStatus'
            action:
              description: Next action to be performed by merchant (or consumer) to complete the payment.
              type: object
              properties:
                qrcode:
                  type: object
                  properties:
                    id:
                      description: ID of the QR Code known by the iDEAL QR Backend of CM.
                      type: string
                    url:
                      description: URL to QR code image to be scanned by consumer to perform the payment.
                      type: string
                      format: url
                      example: https://qrbackend.tld/images/213981209381209390821.png
                    href:
                      description: URL to which the QR code redirects to perform the payment.
                      type: string
                      format: url
                      example: https://payment-processing-platform.tld/pay/b6d53423-f45c-4e2a-93fd-5c43d351e389
            createdAt:
              $ref: '#/components/schemas/Datetime'
        - $ref: '#/components/schemas/ReturnURLOneOf'
    responses-IdealQRPayment:
      type: object
      required:
        - payment
        - transaction
        - idealTransactionId
        - status
        - createdAt
      properties:
        payment:
          $ref: '#/components/schemas/Uuid'
        transaction:
          $ref: '#/components/schemas/Uuid'
        idealTransactionId:
          $ref: '#/components/schemas/IdealTransactionId'
          description: |-
            The 16-digit transaction ID within the iDEAL-QR scheme as known by the acquirer and issuing bank, and 
            used in the credit transfer. The value can have leading zeros.
            This value is `null` if the status `FAILURE`.
        status:
          oneOf:
            - $ref: '#/components/schemas/StatusFailure'
            - $ref: '#/components/schemas/StatusExpired'
            - $ref: '#/components/schemas/StatusCancelled'
            - $ref: '#/components/schemas/StatusSuccess'
        createdAt:
          $ref: '#/components/schemas/Datetime'
        amount:
          allOf:
            - $ref: '#/components/schemas/Amount'
            - description: |
                Denomination in the smallest currency subunit, as for example eurocents.
                Only present in successful payments.
        consumerName:
          description: Name of the consumer. Only present in successful payments.
          type: string
          example: John
        consumerBic:
          allOf:
            - $ref: '#/components/schemas/BIC'
            - description: Bank Identification Code. Only present in successful payments.
        consumerIban:
          description: IBAN of the consumer. Only present in successful payments.
          type: string
          example: NL24RABO8487376045
    IdealQRTransactionPaymentsPaginated:
      type: object
      required:
        - total
        - pageSize
        - payments
      properties:
        total:
          description: The total of payments that the order has
          type: integer
          example: 150
        pageSize:
          $ref: '#/components/schemas/PaymentPageSize'
        payments:
          type: array
          items:
            allOf:
              - $ref: '#/components/schemas/responses-IdealQRPayment'
    IdealQRTransactionPaymentsSummary:
      description: iDEAL-QR payments summary
      type: object
      properties:
        status:
          oneOf:
            - $ref: '#/components/schemas/StatusOpen'
            - $ref: '#/components/schemas/StatusSuccess'
            - $ref: '#/components/schemas/StatusFailure'
            - $ref: '#/components/schemas/StatusExpired'
            - $ref: '#/components/schemas/StatusCancelled'
        count:
          type: integer
          description: Number of payments with this status for the given transaction
          example: 2
        amount:
          allOf:
            - $ref: '#/components/schemas/Amount'
            - description: |
                Denomination in the smallest currency subunit, as for example eurocents.
                Only present in successful payments.
            - example: 1200
    IdealQRPaymentRefund:
      allOf:
        - $ref: '#/components/schemas/responses-IdealQRPayment'
        - type: object
          properties:
            refunds:
              $ref: '#/components/schemas/Refunds'
    BulkQrCodesRequest:
      description: Array of qr code objects with values to overwrite defaults
      maximum: 100
      minimum: 1
      type: array
      items:
        $ref: '#/components/schemas/IdealQRPayment'
    QRCodeTransactionInBulkResponseItem:
      description: Details of the created iDEAL-QR transaction
      type: object
      properties:
        created:
          type: boolean
          default: true
        transaction:
          type: object
          required:
            - id
            - action
          properties:
            id:
              $ref: '#/components/schemas/Uuid'
              description: ID of the transaction. It can be used to retrieve the details of an iDEAL-QR transaction by using it in combination with other endpoints provided in this API.
            action:
              description: Next action to be performed by merchant (or consumer) to complete the payment.
              type: object
              properties:
                qrcode:
                  type: object
                  properties:
                    id:
                      description: ID of the QR Code known by the iDEAL-QR backend of CM.com.
                      type: string
                    url:
                      description: URL to the iDEAL-QR code image to be scanned by the consumer to perform the payment.
                      type: string
                      format: url
                      example: https://qrbackend.tld/images/213981209381209390821.png
    BulkIdealQRCodeErrorResponseItem:
      description: provides details on errors while creating qr codes in bulk
      type: object
      properties:
        error:
          description: contains the details of an error
          type: object
          required:
            - id
            - message
          properties:
            id:
              type: string
              description: ID of the error
              example: 51365d8a-d3c1-4c5f-9556-e8d7ff383eee
            message:
              type: string
              description: message indicating details of the error
              example: Invalid request message
    ErrorInBulkResponseItem:
      allOf:
        - $ref: '#/components/schemas/BulkIdealQRCodeErrorResponseItem'
        - description: Details of the error about why the requested iDEAL-QR transaction could not be created in the bulk operation.
        - type: object
          properties:
            created:
              type: boolean
              default: false
    BulkIdealQRCodesInResponseItem:
      description: Contains details of an iDEAL-QR transaction created in bulk. In case of an error, in case of an error, it contains details of the error that prevented it from being created correctly.
      anyOf:
        - $ref: '#/components/schemas/QRCodeTransactionInBulkResponseItem'
        - $ref: '#/components/schemas/ErrorInBulkResponseItem'
    BulkIdealQRCodesResponseItem:
      description: provides details qr codes (created or not) in bulk
      type: object
      properties:
        qrcodes:
          description: Array that contains the details of the iDEAL-QR transactions in a bulk operation (created or not).
          type: array
          items:
            allOf:
              - $ref: '#/components/schemas/BulkIdealQRCodesInResponseItem'
    IN3Address:
      type: object
      description: The consumers address.
      allOf:
        - $ref: '#/components/schemas/Address'
        - description: |-
            The address of the consumer.
            It must include all required fields such as street, house number, postal code, city, and country code.
            If the shipping address is different from the billing address, it should be specified in the `shippingAddress` field.
          type: object
          required:
            - street
            - houseNumber
            - postalCode
            - city
            - countryCode
      properties:
        addressedTo:
          type: string
          maxLength: 250
          example: Scenius
          description: The name or entity which shall accept the package/invoice
        houseNumberSuffix:
          type: string
          maxLength: 25
          example: A
    schemas-Consumer:
      description: The person initiating the checkout, typically the buyer who places the order.
      allOf:
        - $ref: '#/components/schemas/GenderlessConsumer'
        - type: object
          required:
            - name
            - email
            - phone
            - shippingAddress
            - dateOfBirth
      properties:
        name:
          type: object
          required:
            - lastName
          properties:
            initials:
              description: Consumer's initials.
              type: string
              maxLength: 20
              example: J
            lastName:
              allOf:
                - $ref: '#/components/schemas/LastName'
                - type: string
                  maxLength: 250
        shippingAddress:
          $ref: '#/components/schemas/IN3Address'
        invoiceAddress:
          $ref: '#/components/schemas/IN3Address'
        business:
          type: object
          properties:
            name:
              type: string
              maxLength: 35
              example: CM
            cocNumber:
              type: string
              maxLength: 20
              example: '70528500'
    Item:
      description: |-
        Item object that can be used to provide details of the items in the order.
        This is only used by payment methods that support it, like Klarna and Riverty.
      type: object
      required:
        - code
        - unitPrice
        - quantity
        - vatAmount
        - vatRate
      properties:
        code:
          description: Merchant Product identification. Each item code must be unique per transaction.
          type: string
          minLength: 1
          maxLength: 50
          example: SDC4/32GB-2ADP
        description:
          description: A human readable description of the item.
          $ref: '#/components/schemas/Description'
        unitPrice:
          description: Unit price (including VAT) of the item, specified in the smallest currency subunit, as for example euro cents.
          $ref: '#/components/schemas/Amount'
        quantity:
          description: The number of items of this type.
          type: integer
          minimum: 1
          maximum: 1000000000
          example: 2
        vatAmount:
          description: |
            Total VAT amount of the orderline, specified in the smallest currency subunit as for example euro cents.
          $ref: '#/components/schemas/Amount'
        vatRate:
          description: |
            Percentage of VAT applied.
            Only the first decimal value will be taken into account, the rest will be ignored.
          type: number
          minimum: 0
          maximum: 99.9
          example: 20
          multipleOf: 0.1
    ItemName:
      description: A human readable name of the item.
      type: string
      maxLength: 50
      example: Kingston microSD 32GB
    IN3Items:
      description: |
        Items included in the order. We request both values 'vatAmount' and 'vatRate' to prevent errors.
      type: array
      minItems: 1
      maxItems: 512
      items:
        allOf:
          - $ref: '#/components/schemas/Item'
          - type: object
            required:
              - description
            properties:
              name:
                $ref: '#/components/schemas/ItemName'
              description:
                description: Additional item description.
                maxLength: 100
    In3Payment:
      allOf:
        - type: object
          required:
            - invoice
            - consumer
            - items
          properties:
            invoice:
              type: object
              required:
                - reference
                - amount
                - description
              properties:
                reference:
                  $ref: '#/components/schemas/Reference'
                amount:
                  $ref: '#/components/schemas/Amount'
                description:
                  $ref: '#/components/schemas/Description'
            expiresAt:
              allOf:
                - $ref: '#/components/schemas/Datetime'
                - description: ISO 8601 date and time. If left empty, the value defaults to 4 hours.
            consumer:
              $ref: '#/components/schemas/schemas-Consumer'
            items:
              $ref: '#/components/schemas/IN3Items'
            webhooks:
              $ref: '#/components/schemas/TransactionWebhooks'
        - $ref: '#/components/schemas/ReturnURLOneOf'
    KlarnaDescription:
      maxLength: 100
    Items:
      description: |
        Items included in the order. We request both values 'vatAmount' and 'vatRate' to prevent errors.
      type: array
      minItems: 1
      maxItems: 512
      items:
        allOf:
          - $ref: '#/components/schemas/Item'
          - type: object
            properties:
              name:
                $ref: '#/components/schemas/ItemName'
              description:
                $ref: '#/components/schemas/KlarnaDescription'
              type:
                description: |
                  The type of order line item. Used by Klarna to classify the order line.
                type: string
                format: enum
                enum:
                  - PHYSICAL
                  - DIGITAL
                  - DISCOUNT
                  - GIFT_CARD
                  - STORE_CREDIT
                  - SHIPPING_FEE
                  - SALES_TAX
                  - SURCHARGE
                example: PHYSICAL
    KlarnaPayment:
      allOf:
        - $ref: '#/components/schemas/Payment'
        - type: object
          required:
            - language
            - items
            - consumer
          properties:
            expiresAt:
              allOf:
                - $ref: '#/components/schemas/Datetime'
                - description: ISO 8601 date and time. If a transaction is not finalized before this time the status becomes EXPIRED. If left empty, the value defaults to 48 hours.
            items:
              $ref: '#/components/schemas/Items'
            consumer:
              allOf:
                - $ref: '#/components/schemas/ConsumerBase'
                - type: object
                  required:
                    - name
                    - email
                    - address
                  properties:
                    address:
                      allOf:
                        - $ref: '#/components/schemas/Address'
                        - type: object
                          required:
                            - street
                            - houseNumber
                            - postalCode
                            - city
                            - countryCode
    KlarnaTransaction:
      allOf:
        - $ref: '#/components/schemas/Transaction'
        - type: object
          required:
            - country
            - items
            - action
            - status
          properties:
            status:
              oneOf:
                - $ref: '#/components/schemas/StatusAuthorized'
                - $ref: '#/components/schemas/StatusCancelled'
                - $ref: '#/components/schemas/StatusExpired'
                - $ref: '#/components/schemas/StatusFailure'
            country:
              $ref: '#/components/schemas/Country'
            items:
              $ref: '#/components/schemas/Items'
            action:
              type: object
              description: Next action to be performed by merchant (or consumer) to complete the payment.
              properties:
                redirect:
                  $ref: '#/components/schemas/RedirectAction'
    AppleInitialize:
      type: object
      required:
        - reference
        - amount
        - description
        - language
      properties:
        reference:
          $ref: '#/components/schemas/Reference'
        description:
          description: |
            Description of the underlying value or reason of the session.
            Ultimately appears on the confirmation (statement and confirmation screen).
          type: string
          maxLength: 255
          example: Order at yourdomain.tld
        amount:
          $ref: '#/components/schemas/Amount'
        currency:
          $ref: '#/components/schemas/Currency'
        expiresAt:
          allOf:
            - $ref: '#/components/schemas/Datetime'
            - description: ISO 8601 date and time. If left empty, the value defaults to 10 mins.
        language:
          $ref: '#/components/schemas/Language'
        consumer:
          $ref: '#/components/schemas/Consumer'
        webhooks:
          $ref: '#/components/schemas/SessionTransactionWebhooks'
        returnUrl:
          $ref: '#/components/schemas/ReturnUrl'
    ApplePaySessionObject:
      type: object
      required:
        - id
        - reference
        - amount
        - currency
        - description
        - expiresAt
        - language
        - status
        - createdAt
      properties:
        id:
          $ref: '#/components/schemas/Uuid'
        reference:
          $ref: '#/components/schemas/Reference'
        amount:
          $ref: '#/components/schemas/Amount'
        currency:
          $ref: '#/components/schemas/Currency'
        description:
          type: string
          example: Some Apple Pay session
        expiresAt:
          $ref: '#/components/schemas/Datetime'
        language:
          $ref: '#/components/schemas/Language'
        consumer:
          description: Consumer details. Only returned on session creation (POST). Not available on session retrieval (GET).
          allOf:
            - $ref: '#/components/schemas/Consumer'
        webhooks:
          $ref: '#/components/schemas/TransactionWebhooks'
        status:
          $ref: '#/components/schemas/TransactionStatus'
        action:
          description: |
            Contains the details necessary to render the Apple Pay button in your own checkout page during the initialize session flow.
            In consequent flows the action object will be null.
          anyOf:
            - type: 'null'
            - type: object
              properties:
                applePayButton:
                  type: object
                  properties:
                    merchantCountry:
                      description: The ISO 3166-1 alpha-2 country code where the transaction is processed.
                      type: string
                      example: NL
                    serverUrl:
                      description: The URL to the Mobile Pay Server.
                      type: string
                      example: https://www.example.com/api/
                    allowedCardNetworks:
                      description: The supported card networks for Payment via Apple Pay.
                      type: array
                      items:
                        type: string
                        enum:
                          - VISA
                          - MAESTRO
                          - MASTERCARD
                    merchantName:
                      description: The name to display on the payment sheet.
                      type: string
                      example: Your Merchant
        createdAt:
          $ref: '#/components/schemas/Datetime'
        returnUrl:
          $ref: '#/components/schemas/ReturnUrl'
    StartApplePaySession:
      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 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 session 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
    ApplePayTransactionObject:
      type: object
      required:
        - id
        - sessionId
        - expiresAt
        - status
        - createdAt
      properties:
        id:
          $ref: '#/components/schemas/Uuid'
        sessionId:
          $ref: '#/components/schemas/Uuid'
        expiresAt:
          $ref: '#/components/schemas/Datetime'
        webhooks:
          $ref: '#/components/schemas/TransactionWebhooks'
        status:
          $ref: '#/components/schemas/TransactionStatus'
        action:
          description: Next action to be performed by merchant (or consumer) to complete the transaction. Only present when 3DS authentication is required.
          anyOf:
            - type: 'null'
            - type: object
              properties:
                redirect:
                  type: object
                  properties:
                    url:
                      description: URL where consumer should be redirected to by the merchant to perform the transaction. 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'
        paymentMethod:
          $ref: '#/components/schemas/PaymentMethod'
    AuthorizeApplePayTransaction:
      type: object
      properties:
        token:
          type: object
          properties:
            paymentData:
              type: object
              properties:
                data:
                  type: string
                  example: xdZ+1yRWkOP9Wdp0Y/nLBzAgvnWAW/QeSd7***7lT5NSEgfrlafBVPN18cF8=
                signature:
                  type: string
                  example: MIAGCSqGSIb3DQEHAqCAMIACAQExDTALBglghkgBZQMEMQswCQYDVQQGEwJVUzAeFw0xOTA1...
                header:
                  type: object
                  properties:
                    publicKeyHash:
                      type: string
                      example: F+0dt8ccfMBlkJWQUCQ5r8XdLNXFi67QezeGdxiaLns=
                    ephemeralPublicKey:
                      type: string
                      example: MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEeVc222rSH8+NvnN2o9qrewBWvFHOFmUYu1pVObDvmRBEavVWpGi3YHY628gLmu9Jq0VNdVJY5mThd49CRL4N3Q==
                    transactionId:
                      type: string
                      example: 991aee4fb7f88bd9c531fdca658628239e22d0239da3069f833f062fb40ba50b
                version:
                  type: string
                  example: EC_v1
            paymentMethod:
              type: object
              properties:
                displayName:
                  type: string
                  example: Visa 0326
                network:
                  type: string
                  example: Visa
                type:
                  type: string
                  example: debit
            transactionIdentifier:
              type: string
              example: 991aee4fb7f88bd9c531fdca658628239e22d0239da3069f833f062fb40ba50b
    BelfiusPayButtonPayment:
      allOf:
        - $ref: '#/components/schemas/Payment'
        - type: object
          required:
            - language
          properties:
            expiresAt:
              allOf:
                - $ref: '#/components/schemas/Datetime'
                - description: ISO 8601 date and time. If a transaction is not finalized before this time the status becomes EXPIRED. If left empty, the value defaults to 1 hour.
            language:
              $ref: '#/components/schemas/Language'
            consumer:
              $ref: '#/components/schemas/Consumer'
    BelfiusPayButtonTransaction:
      allOf:
        - $ref: '#/components/schemas/Transaction'
        - type: object
          required:
            - country
            - action
            - status
          properties:
            status:
              description: The status of the transaction.
              oneOf:
                - $ref: '#/components/schemas/StatusAuthorized'
                - $ref: '#/components/schemas/StatusCancelled'
                - $ref: '#/components/schemas/StatusExpired'
                - $ref: '#/components/schemas/StatusFailure'
            country:
              $ref: '#/components/schemas/Country'
            action:
              anyOf:
                - type: object
                  description: Next action to be performed by the merchant (or consumer) to complete the payment.
                  properties:
                    redirect:
                      $ref: '#/components/schemas/RedirectAction'
                - type: 'null'
    BankTransferPayment:
      allOf:
        - $ref: '#/components/schemas/Payment'
        - type: object
          required:
            - language
            - consumer
          properties:
            expiresAt:
              allOf:
                - $ref: '#/components/schemas/Datetime'
                - description: ISO 8601 date and time. If a transaction is not finalized before this time the status becomes EXPIRED. If left empty, the value defaults to 1 hour.
            language:
              $ref: '#/components/schemas/Language'
            consumer:
              $ref: '#/components/schemas/Consumer'
    BankTransferTransaction:
      allOf:
        - $ref: '#/components/schemas/Transaction'
        - type: object
          required:
            - country
            - action
            - status
          properties:
            status:
              description: The status of the transaction.
              oneOf:
                - $ref: '#/components/schemas/StatusAuthorized'
                - $ref: '#/components/schemas/StatusCancelled'
                - $ref: '#/components/schemas/StatusExpired'
                - $ref: '#/components/schemas/StatusFailure'
            country:
              $ref: '#/components/schemas/Country'
            action:
              anyOf:
                - type: object
                  description: Next action to be performed by the merchant (or consumer) to complete the payment.
                  properties:
                    redirect:
                      $ref: '#/components/schemas/RedirectAction'
                - type: 'null'
    SepaDirectDebitBillingAddress:
      description: |-
        The consumer's billing address. Street, house number, city and country code are required
        so a shopper can be registered with the payment processor.
      allOf:
        - $ref: '#/components/schemas/Address'
        - type: object
          required:
            - street
            - houseNumber
            - city
    SepaDirectDebitConsumer:
      description: |-
        The consumer initiating the SEPA Direct Debit payment. A shopper is registered with the
        payment processor using these details, so the consumer's name, email and a complete billing
        address are required.
      allOf:
        - $ref: '#/components/schemas/Consumer'
        - type: object
          required:
            - name
            - email
            - address
          properties:
            name:
              $ref: '#/components/schemas/Name'
            address:
              $ref: '#/components/schemas/SepaDirectDebitBillingAddress'
    SepaDirectDebitDetails:
      description: Details needed for SEPA direct debit
      type: object
      required:
        - iban
      properties:
        iban:
          type: string
          minLength: 5
          maxLength: 34
          description: IBAN of the consumer
          example: NL91ABNA0417164300
    SepaDirectDebitPayment:
      allOf:
        - $ref: '#/components/schemas/Payment'
        - type: object
          required:
            - language
            - consumer
            - sepaDirectDebitDetails
          properties:
            expiresAt:
              allOf:
                - $ref: '#/components/schemas/Datetime'
                - description: ISO 8601 date and time. If a transaction is not finalized before this time the status becomes EXPIRED. If left empty, the value defaults to 1 hour.
            language:
              $ref: '#/components/schemas/Language'
            consumer:
              $ref: '#/components/schemas/SepaDirectDebitConsumer'
            sepaDirectDebitDetails:
              $ref: '#/components/schemas/SepaDirectDebitDetails'
    SepaDirectDebitTransaction:
      allOf:
        - $ref: '#/components/schemas/Transaction'
        - type: object
          required:
            - action
            - status
          properties:
            status:
              description: The status of the transaction.
              oneOf:
                - $ref: '#/components/schemas/StatusAuthorized'
                - $ref: '#/components/schemas/StatusCancelled'
                - $ref: '#/components/schemas/StatusExpired'
                - $ref: '#/components/schemas/StatusFailure'
            action:
              anyOf:
                - type: object
                  description: Next action to be performed by the merchant (or consumer) to complete the payment.
                  properties:
                    redirect:
                      $ref: '#/components/schemas/RedirectAction'
                - type: 'null'
    CreditCardConsumerV2:
      type: object
      required:
        - billingAddress
      anyOf:
        - required:
            - email
        - required:
            - mobilePhone
      description: |
        Cardholder personal information
        * **Either `email` and/or `MobilePhone` must be provided**
        * `billingAddress` conditional on the market
      properties:
        email:
          type: string
          description: |
            Cardholder email address
          example: johndoe@email.com
        mobilePhone:
          type: object
          properties:
            countryCallingCode:
              type: string
              example: '+31'
              description: Phone number country calling code
            number:
              type: string
              example: '0765727000'
              description: Phone number
        billingAddress:
          description: Cardholder billing address.
          allOf:
            - $ref: '#/components/schemas/Address'
        shippingAddress:
          description: Cardholder shipping address.
          allOf:
            - $ref: '#/components/schemas/Address'
    CardPaymentV2:
      allOf:
        - $ref: '#/components/schemas/Payment'
        - type: object
          required:
            - clientSideEncryptedCard
            - consumer
          properties:
            clientSideEncryptedCard:
              type: string
              description: Encrypted cardholder credit card details using the provided CSE javascript library.
              example: 7cJG1p/j5Dl8FrvMN5rSGVq9IqXVZE3herLkQfpoNbZL1r6sUHXkJLPYH+IbG0tYwvNO2hZZeDdNhOWMHV0tT3sSYVeN5uelgV2RLRkPC3b5XRolW3URk80i8kHoOO2tQoBbIkXc47le0xbTDFl4UNAsIa/SnBWwZbJAFpMYyMHIP1faey9OD5qQ2L+KTQ07ipFHtlDyRvJWG8xDn2Mnz9We7tE0wn6oUilTcGs3fwMX+/14VBhQPRoZCM15OHuTrdK6lwqMJN0xxpfPFBMk9kHcq8VZ2hvLkbRkbvMYBfxkt9f6lxwCF8PdrVvDwHAOsfgIWXZVefCnIFdSHoX8ToMVD/GKWqJzF0nJgl6hLNo7OFBGmbMgXQZbQQKMl9eFx2m1QXYNHN7wpsAJhy+O1pF1aqQa0bnM6C2NTE6Glcik0GmgG4epFIvQnZXrJrRAtKKqYGh8Bs8MNvramaFfRiY+h9ZCHtA+alxKWVyGgES6YeqQZ2iiJCU0aOrdJBSyjpox6DRlnZsnWO/lyKD3OkKh+5XtXqOWhubQQiWL2+hGWy35dzYYhTXSdPot48emzSBtqtgNRREKZ9dtNd6O4d0/y+ruO1dsIpCMLByOr7yO7pMVcGBo1WRbohCEn52QYmo/Zbz8GF919G8uzD1wGaBRAx7vOb6otnhxKyRLLtjw6sV+wmI+eIplpaeaIIitZzIjy6II+TaY1uosBTWZqusdH21VQKo5A7OpHbTzqUJYuX5cXK978WCuA0lGlBJMnXZDJcBFlJLJZ6zNuKpbDZjSoaX7EkJhJznCX8OC6iYKR0Jyf/opDPAc+YlB13DFd5kCcSsEC3g4l/VcqrdQypbMWyTGkGVXKuwuF6Dk1+2VYCBvx9WqcPK3OuhVyCOXm+Y5DDYqsjh4hrszSxkOkjB7C+rMScKaqRxEdigNdKkqnHB/JNkfVKm1zc5HGXaEToVXEGg9sD1Ng/PIz3cn4zG9qQ6gmd0Nyn7w/0Ok8OfEi4pm0ohP1jxQ0c3VMT1Lblfzz+aW18R/+bgERr+Jeo17sxA6LK7u+LmGa4ZjwknaJ1lXKNkpawVlW9/mlm5dRZZqaI5LW4Opqa3gtguyZ8qM5ufQPPN5XkTQZ7m4WPFWhnySzhCZfRKlcjGtu8bi7EHVcdlpo5x/qX6BRrRyvA99S35v8HPISEBvZotsa0y+DVRJyL4HPna08EMdqUc0fXvz2zm57WDfquHzSTcBGEbNx/3K+E86T0esFNcFsU4dQgYg/YWKFfIoiUhvsaC9sA8kNnC5DvDTCbmVWFY/U33QINd7qgpCwfUDISVaqSjXkiF2N9ne/t59gW3EKEkncuzIJn1s3ncsUxHb7iVZHySnvb7fJblMfhp0CQei5WIZPTQaUYMgP8FK4VGSiE4FP27nTH6Ltyk0aiGLvObCDoc9jRi5rqsPSRf2sGlYclz5k3nLBL4e4H9VrpJAfZo/dqbepcShRjAuEECPuhlFKCLmHydRNNWQ4EwT7nqMZHlU2lQjibM3t6Mipn8Fono6z7HlhsUbIad5sX/QKWxbk8PoPmM80qWLjuSTxit0GPuTZZk9MEwVNNmbkomfZyc4YtebWvAPoOM7PkD89gFB/tISG1hgbr0M6Hc6Sax3gPPJA7WTgJhLJdcuAkC7kYReTutomzZ07ZIgt+0f3oJCTvQ9PCYvdKD3E3S280jl1AdtAaylnLQBP0O0ZAfBJKPfqEf5j4e+/8Dm7ALdwB9cFnAy9nfm6lFDk3wSmjdXisuY6s33k1PSYg528LzidEk9UGIJV378DhX2NftktsXjC3y6x7YtLno8m0vmdvCT+5Nb1xv9GiUtUUCjNNB8fdjT0nz299STedUVMYKkH84fpDbYpSJieOr1KxA9T6HoH2a4v6i4Gx3tHVvJtjSKV7OzyvaL7buMa2nNppMAPaZ2gLADLBMGF6YQghES5qBSTt5dBzPttPe1PwJ96yZIO8137b2Ry4iJcqc3fBdSIs4D8k6Ju0xwu+4IA4IH4I2ne715bfs8yEpudE22A1w3iOr+rcYtEzzV+qb53uik/GgQRp1Dx260wXyebbS+YpM5jBxmp9MnXu5rRvkmZGi0/1s7J2hx3d0Rdq1GyAP109dV8SQlTrLMOn3zjxb4lLo7PqZOpn+efPkn2oOMwHHz9VTJ0bII5wh9YwdPNNfp0w9Pfe70VIkEh7mMhVjXYJyaD+3hM3M+5iEi7GYywECvEw==
            consumer:
              $ref: '#/components/schemas/CreditCardConsumerV2'
    CreditCardTransactionV2:
      allOf:
        - $ref: '#/components/schemas/Transaction'
        - type: object
          required:
            - country
            - status
            - action
          properties:
            status:
              description: The status of the transaction.
              oneOf:
                - $ref: '#/components/schemas/StatusAuthorized'
                - $ref: '#/components/schemas/StatusCancelled'
                - $ref: '#/components/schemas/StatusExpired'
                - $ref: '#/components/schemas/StatusFailure'
            action:
              anyOf:
                - type: object
                  description: Next action to be performed by merchant (or consumer) to complete the payment.
                  properties:
                    redirect:
                      $ref: '#/components/schemas/RedirectAction'
                - type: 'null'
            country:
              $ref: '#/components/schemas/Country'
    CardPaymentInitializeV2:
      allOf:
        - $ref: '#/components/schemas/Payment'
        - type: object
          required:
            - consumer
          properties:
            consumer:
              $ref: '#/components/schemas/CreditCardConsumerV2'
    PayPalPayment:
      allOf:
        - $ref: '#/components/schemas/Payment'
        - type: object
          required:
            - consumer
          properties:
            expiresAt:
              allOf:
                - $ref: '#/components/schemas/Datetime'
                - description: ISO 8601 date and time. If a transaction is not finalized before this time the status becomes EXPIRED. If left empty, the value defaults to 6 hours.
            consumer:
              allOf:
                - $ref: '#/components/schemas/ConsumerBase'
                - type: object
                  required:
                    - email
                    - address
                  properties:
                    address:
                      allOf:
                        - $ref: '#/components/schemas/Address'
                        - type: object
                          required:
                            - countryCode
    PayPalTransaction:
      allOf:
        - $ref: '#/components/schemas/Transaction'
        - type: object
          required:
            - country
            - status
            - action
          properties:
            action:
              type: object
              properties:
                redirect:
                  $ref: '#/components/schemas/RedirectAction'
            status:
              oneOf:
                - $ref: '#/components/schemas/StatusAuthorized'
                - $ref: '#/components/schemas/StatusCancelled'
                - $ref: '#/components/schemas/StatusExpired'
                - $ref: '#/components/schemas/StatusFailure'
            country:
              $ref: '#/components/schemas/Country'
    PayPalV2Item:
      description: Item object that can be used to provide details of the items in the order.
      type: object
      required:
        - name
        - unitPrice
        - quantity
      properties:
        name:
          $ref: '#/components/schemas/ItemName'
        unitPrice:
          description: Unit price (including VAT) of the item, specified in the smallest currency subunit, as for example euro cents.
          $ref: '#/components/schemas/Amount'
        quantity:
          description: The number of items of this type.
          type: integer
          minimum: 1
          maximum: 1000000000
          example: 2
        description:
          description: A human readable description of the item.
          $ref: '#/components/schemas/Description'
    PayPalV2Consumer:
      allOf:
        - type: object
          required:
            - email
          properties:
            email:
              $ref: '#/components/schemas/Email'
            address:
              allOf:
                - $ref: '#/components/schemas/Address'
                - type: object
                  required:
                    - countryCode
    PayPalV2Webhooks:
      allOf:
        - $ref: '#/components/schemas/BaseWebhook'
        - type: object
          properties:
            events:
              items:
                description: |
                  * `STATUS_CHANGE` - Triggered when the status of a transaction changes.
                  * `REFUND_STATUS` - Triggered when a transaction receives an update on one of its requested refunds.
                oneOf:
                  - $ref: '#/components/schemas/StatusChangeEvent'
                  - $ref: '#/components/schemas/RefundStatusEvent'
                example: STATUS_CHANGE
    PayPalV2Payment:
      allOf:
        - $ref: '#/components/schemas/PaymentWithoutDescriptionExpiresAtLanguageAndWebhooks'
        - type: object
          required:
            - description
            - currency
          properties:
            description:
              $ref: '#/components/schemas/Description'
            items:
              type: array
              items:
                $ref: '#/components/schemas/PayPalV2Item'
            consumer:
              $ref: '#/components/schemas/PayPalV2Consumer'
            webhooks:
              type: array
              items:
                $ref: '#/components/schemas/PayPalV2Webhooks'
    PayPalV2Transaction:
      allOf:
        - $ref: '#/components/schemas/TransactionWithoutOrderIdLanguageRefundsAndExpiresAt'
        - type: object
          properties:
            items:
              type: array
              items:
                $ref: '#/components/schemas/PayPalV2Item'
            consumer:
              $ref: '#/components/schemas/PayPalV2Consumer'
            action:
              type: object
              properties:
                redirect:
                  $ref: '#/components/schemas/RedirectAction'
            status:
              oneOf:
                - $ref: '#/components/schemas/StatusAuthorized'
                - $ref: '#/components/schemas/StatusCancelled'
                - $ref: '#/components/schemas/StatusExpired'
                - $ref: '#/components/schemas/StatusFailure'
            webhooks:
              type: array
              items:
                $ref: '#/components/schemas/PayPalV2Webhooks'
    PayPalV2Refund:
      allOf:
        - $ref: '#/components/schemas/Refund'
        - type: object
          required:
            - amount
    schemas-Amount:
      allOf:
        - $ref: '#/components/schemas/Amount'
        - description: |
            Total gross amount of order in the smallest currency subunit, as for example euro cents (including taxes and fees).

            This is the amount that will be charged to the consumer.

            The validation will fail if: amount ≠ Σ(unitPrice × quantity)
    NetAmount:
      allOf:
        - $ref: '#/components/schemas/Amount'
        - description: |
            Total net amount of order in the smallest currency subunit, as for example euro cents (excluding taxes and fees).

            The validation will fail if: netAmount ≠ Σ(netUnitPrice × quantity)
    AddressWithOptCountryAndHouseNumberAdditional:
      allOf:
        - $ref: '#/components/schemas/AddressWithoutMandatoryCountry'
        - type: object
          properties:
            houseNumberAdditional:
              description: Field to support addresses that need to add more information about the house number.
              type: string
              maxLength: 10
              example: 674A
    components-schemas-Consumer:
      description: The person initiating the checkout, typically the buyer who places the order.
      allOf:
        - $ref: '#/components/schemas/GenderlessConsumer'
        - type: object
          required:
            - name
            - email
            - phone
            - dateOfBirth
            - billingAddress
            - shopperIp
          properties:
            name:
              allOf:
                - $ref: '#/components/schemas/Name'
                - type: object
                  properties:
                    firstName:
                      maxLength: 50
                    lastName:
                      maxLength: 50
            shopperIp:
              $ref: '#/components/schemas/ShopperIP'
            billingAddress:
              allOf:
                - $ref: '#/components/schemas/AddressWithOptCountryAndHouseNumberAdditional'
                - description: |-
                    The address of the consumer. This is used for shipping and billing purposes.
                    It must include all required fields such as street, house number, postal code, city, and country code.
                    If the shipping address is different from the billing address, it should be specified in the `shippingAddress` field.
                  type: object
                  required:
                    - street
                    - houseNumber
                    - postalCode
                    - city
                    - countryCode
            shippingAddress:
              allOf:
                - $ref: '#/components/schemas/AddressWithOptCountryAndHouseNumberAdditional'
                - type: object
                  properties:
                    type:
                      description: |
                        Type of shipping address. These values don't have an effect on the Riverty processing, but can
                        be used to improve order handling.
                      type: string
                      enum:
                        - Standard
                        - ShipTo
                        - PickUpPoint
                        - InStore
                      example: PickUpPoint
                    pickUpPoint:
                      type: object
                      properties:
                        type:
                          type: string
                          description: Type of pickup point
                          enum:
                            - NotSet
                            - ParcelLocker
                            - ServicePoint
                            - NeighbourhoodPoint
                            - CarrierDepot
                          example: ParcelLocker
                        name:
                          type: string
                          description: Name of the pickup point
                          maxLength: 255
                  required:
                    - street
                    - houseNumber
                    - postalCode
                    - city
                    - countryCode
    RivertyItem:
      allOf:
        - $ref: '#/components/schemas/Item'
        - type: object
          required:
            - description
            - netUnitPrice
          properties:
            netUnitPrice:
              description: Price per unit in cents (excluding vat)
              $ref: '#/components/schemas/Amount'
            imageUrl:
              type: string
              format: url
              example: https://example.com/product-image.jpg
              description: URL for the product image, will be used as a thumbnail in Riverty on the invoice line. Must be rectangular or square with a width between 100-1280 pixels. Supported formats, gif, jpeg(jpg), png, webp
            productUrl:
              type: string
              description: URL to the product page
              format: url
              example: https://example.com/product-page
    RivertyItems:
      description: Array of order items. Maximum allowed 500 items.
      type: array
      minItems: 1
      maxItems: 500
      items:
        $ref: '#/components/schemas/RivertyItem'
    RivertyWebhooks:
      allOf:
        - $ref: '#/components/schemas/BaseWebhook'
        - type: object
          properties:
            events:
              items:
                description: |
                  * `STATUS_CHANGE` - Triggered when the status of a transaction changes.
                allOf:
                  - $ref: '#/components/schemas/StatusChangeEvent'
                example: STATUS_CHANGE
    RivertyPayment:
      allOf:
        - $ref: '#/components/schemas/PaymentWithoutDescriptionExpiresAtAndWebhooks'
        - type: object
          required:
            - orderNumber
            - type
            - netAmount
            - consumer
            - items
          properties:
            orderNumber:
              description: |
                Order number. Unique order number provided by the merchant. A valid order number can include alphanumeric characters, dashes and underscores.
              type: string
              maxLength: 50
              example: order123
            amount:
              $ref: '#/components/schemas/schemas-Amount'
            currency:
              $ref: '#/components/schemas/Currency'
            language:
              description: |
                The language code used for client communication. If not provided, Riverty will default to the language configured for the client.
              format: enum
              enum:
                - 'no'
                - sv
                - fi
                - da
                - en
                - de
                - nl
                - fr
            type:
              type: string
              format: enum
              description: The type of the Riverty payment method.
              enum:
                - Invoice
              example: Invoice
            netAmount:
              $ref: '#/components/schemas/NetAmount'
            merchantImageURL:
              description: |
                Image URL for the merchants brand. This image is shown at the top of the order page in Riverty. Supported image formats are: gif, jpeg (jpg), png, webp.
              type: string
              format: url
              example: https://merchant.tld/images/logo.png
            additionalMerchantData:
              type: string
              maxLength: 4096
              description: |
                Additional information about the merchant Format: Base64 encoded JSON
            consumer:
              $ref: '#/components/schemas/components-schemas-Consumer'
            items:
              $ref: '#/components/schemas/RivertyItems'
            webhooks:
              $ref: '#/components/schemas/RivertyWebhooks'
    RivertyTransaction:
      allOf:
        - $ref: '#/components/schemas/PaymentWithoutDescriptionExpiresAtAndWebhooks'
        - type: object
          required:
            - id
            - status
            - orderNumber
            - type
            - netAmount
            - created
            - updated
            - action
          properties:
            id:
              $ref: '#/components/schemas/TransactionId'
            status:
              $ref: '#/components/schemas/TransactionStatus'
            orderNumber:
              description: Order number. Unique order number provided by the merchant.
              type: string
              maxLength: 50
              example: order123
            type:
              type: string
              format: enum
              description: The type of the Riverty payment method.
              enum:
                - Invoice
              example: Invoice
            netAmount:
              $ref: '#/components/schemas/NetAmount'
            created:
              $ref: '#/components/schemas/Datetime'
              description: ISO 8601 date and time when the transaction was created.
            updated:
              $ref: '#/components/schemas/Datetime'
              description: ISO 8601 date and time when the transaction was last updated.
            merchantImageURL:
              description: |
                Image URL for the merchants brand. This image is shown at the top of the order page in Riverty. Supported image formats are: gif, jpeg (jpg), png, webp.
              type: string
              format: url
              example: https://merchant.tld/images/logo.png
            additionalMerchantData:
              type: string
              maxLength: 4096
              description: 'Additional information about the merchant Format: Base64 encoded JSON'
            consumer:
              $ref: '#/components/schemas/components-schemas-Consumer'
            items:
              $ref: '#/components/schemas/RivertyItems'
            webhooks:
              $ref: '#/components/schemas/RivertyWebhooks'
            action:
              description: Next action to be performed by merchant (or consumer) to complete the payment.
              type: object
              properties:
                redirect:
                  $ref: '#/components/schemas/RedirectAction'
    RivertyCapture:
      type: object
      required:
        - id
        - transactionId
        - amount
        - netAmount
        - created
        - updated
      properties:
        id:
          description: Unique identifier received in the POST capture response root object.
          $ref: '#/components/schemas/Uuid'
        transactionId:
          $ref: '#/components/schemas/TransactionId'
        amount:
          $ref: '#/components/schemas/schemas-Amount'
        netAmount:
          $ref: '#/components/schemas/NetAmount'
        created:
          $ref: '#/components/schemas/Datetime'
          description: ISO 8601 date and time when the capture was created.
        updated:
          $ref: '#/components/schemas/Datetime'
          description: ISO 8601 date and time when the capture was last updated.
        items:
          description: List of items that were captured. Only present for partial captures.
          $ref: '#/components/schemas/RivertyItems'
    RivertyCaptures:
      type: object
      required:
        - captures
      properties:
        captures:
          type: array
          items:
            $ref: '#/components/schemas/RivertyCapture'
    requestbodies_RivertyCapture:
      type: object
      required:
        - amount
        - netAmount
      properties:
        amount:
          $ref: '#/components/schemas/schemas-Amount'
        netAmount:
          $ref: '#/components/schemas/NetAmount'
        items:
          description: |
            List of items to be captured. Mandatory for partial captures. If not provided, the full amount will be captured. If provided, the total amount of all items must match the amount in the capture request.
          $ref: '#/components/schemas/RivertyItems'
    RivertyCancellation:
      type: object
      required:
        - amount
        - netAmount
      properties:
        amount:
          $ref: '#/components/schemas/schemas-Amount'
        netAmount:
          $ref: '#/components/schemas/NetAmount'
        items:
          description: |
            List of items to be cancelled. Mandatory for partial cancellations. If not provided, the full order will be cancelled. If provided, the total amount of all items must match the amount in the cancel request.
          $ref: '#/components/schemas/RivertyItems'
    responses_RivertyCancellation:
      type: object
      required:
        - id
        - transactionId
        - amount
        - netAmount
        - created
        - updated
      properties:
        id:
          description: Unique identifier received in the POST cancellation response root object.
          $ref: '#/components/schemas/Uuid'
        transactionId:
          $ref: '#/components/schemas/TransactionId'
        amount:
          $ref: '#/components/schemas/schemas-Amount'
        netAmount:
          $ref: '#/components/schemas/NetAmount'
        created:
          $ref: '#/components/schemas/Datetime'
          description: ISO 8601 date and time when the cancellation was created.
        updated:
          $ref: '#/components/schemas/Datetime'
          description: ISO 8601 date and time when the cancellation was last updated.
        items:
          description: List of items that were cancelled. Only present for partial cancellations.
          $ref: '#/components/schemas/RivertyItems'
    RivertyRefund:
      type: object
      required:
        - id
        - captureId
        - transactionId
        - status
        - created
        - updated
      properties:
        id:
          description: Unique identifier received in the POST refund response root object.
          $ref: '#/components/schemas/Uuid'
        captureId:
          description: Unique identifier of the capture that was refunded.
          $ref: '#/components/schemas/Uuid'
        transactionId:
          $ref: '#/components/schemas/TransactionId'
        status:
          $ref: '#/components/schemas/RefundStatus'
        created:
          $ref: '#/components/schemas/Datetime'
          description: ISO 8601 date and time when the refund was created.
        updated:
          $ref: '#/components/schemas/Datetime'
          description: ISO 8601 date and time when the refund was last updated.
        items:
          description: List of items that were refunded. Only present for partial refunds.
          $ref: '#/components/schemas/RivertyItems'
    RivertyRefunds:
      type: object
      required:
        - refunds
      properties:
        refunds:
          type: array
          items:
            $ref: '#/components/schemas/RivertyRefund'
    requestbodies_RivertyRefund:
      type: object
      properties:
        captureId:
          description: |
            Unique identifier of the capture to be refunded, received in the capture response.

            Required for transactions with multiple captures.
          $ref: '#/components/schemas/Uuid'
        reason:
          $ref: '#/components/schemas/RefundReason'
        items:
          $ref: '#/components/schemas/RivertyItems'
    ClientSideEncryptionElement:
      type: object
      properties:
        cseUrl:
          description: The URL that contains the script to encrypt the user payment data in your site.
          type: string
          example: https://app-domain.tld/libraries/ps/cse/80117cdb-be80-425f-954d-9696102efa60
        upstream:
          type: string
          example: ps
    ClientSideEncryption:
      description: Client side encryption libraries per payment method.
      type: object
      properties:
        bancontact:
          $ref: '#/components/schemas/ClientSideEncryptionElement'
        creditcard:
          $ref: '#/components/schemas/ClientSideEncryptionElement'
    MerchantOrderReference:
      type: string
      maxLength: 35
      description: Unique identifier, as known by the merchant. This value will end up in the payments portal.
    CheckoutConsumer:
      allOf:
        - $ref: '#/components/schemas/Consumer'
        - type: object
          properties:
            givenName:
              type: string
              maxLength: 35
              description: First name of the consumer.
            middleName:
              type: string
              maxLength: 35
              description: Middle name of the consumer.
            familyName:
              type: string
              maxLength: 35
              description: Last name of the consumer.
            address:
              $ref: '#/components/schemas/AddressWithStateAndAdditionalData'
    MaxRetries:
      description: |
        Maximum number of payment attempts allowed for this checkout order.
        **Values:**
        - **null or omitted**: Defaults to 0 (no retry limit, skip UI with single payment method)
        - **0**: No retry limit enforcement. When combined with a single payment method, the hosted checkout will skip the payment method selection screen and redirect the customer directly to the payment method (e.g., iDEAL, PayPal). Useful for external integrations that have their own checkout UI.
        - **1-255**: Enforces retry limit. After exceeding this number of failed payment attempts, the checkout will be locked out with status `LOCKED_OUT`. The payment method selection screen will be shown normally, even with a single payment method.

        **Use Cases:**
        - **External integrations**: Set to 0 to enable seamless redirect from external checkout to payment provider
        - **Fraud prevention**: Set to 3-5 to limit retry attempts and prevent abuse
        - **Standard checkout**: Set to 10-255 for generous retry limits with fraud protection

        **Important**: `maxRetries=0` does NOT mean "lock out immediately". It means "allow unlimited retries without lockout enforcement".
      type: integer
      minimum: 0
      maximum: 255
      example: 10
    PaymentMethods:
      type: array
      description: List of payment methods used in the checkout. If not provided all available payment methods will be shown.
      items:
        type: string
        enum:
          - apple_pay
          - bancontact
          - bank_transfer
          - creditcard
          - google_pay
          - ideal
          - klarna
          - paypal
          - in3
    OrderItems:
      allOf:
        - $ref: '#/components/schemas/Items'
        - description: 'Items included in the order. Required field for the following payment methods: Klarna, Riverty. We request both values ''vatAmount'' and ''vatRate'' to prevent errors.'
    CreateCheckout:
      allOf:
        - $ref: '#/components/schemas/Payment'
        - type: object
          required:
            - description
            - merchantOrderReference
            - language
          properties:
            expiresAt:
              allOf:
                - $ref: '#/components/schemas/Datetime'
                - description: ISO 8601 date and time. If a transaction is not finalized before this time the status becomes EXPIRED. If left empty, the value defaults to 30 mins.
            amount:
              description: |-
                Denomination in the smallest currency subunit, as for example eurocents.
                Ignored (although required) for requests that include items (e.g. Klarna). In this cases the total amount is calculated internally using item prices.
            merchantOrderReference:
              $ref: '#/components/schemas/MerchantOrderReference'
            consumer:
              $ref: '#/components/schemas/CheckoutConsumer'
            maxRetries:
              $ref: '#/components/schemas/MaxRetries'
            language:
              allOf:
                - $ref: '#/components/schemas/Language'
                - type: string
                  description: Preferred language for the user interface as ISO 639-1 code. If the provided language is not supported the default will be used. Commonly supported languages are Dutch (nl) and English (en).
                  default: nl
            paymentMethods:
              $ref: '#/components/schemas/PaymentMethods'
            orderItems:
              $ref: '#/components/schemas/OrderItems'
            description:
              maxLength: 35
    responses_CreateCheckout:
      allOf:
        - $ref: '#/components/schemas/TransactionWithoutOrderId'
        - type: object
          required:
            - status
            - action
            - expiresAt
            - merchantOrderReference
          properties:
            merchantOrderReference:
              $ref: '#/components/schemas/MerchantOrderReference'
            consumer:
              $ref: '#/components/schemas/CheckoutConsumer'
            status:
              description: The status of the transaction.
              oneOf:
                - $ref: '#/components/schemas/StatusAuthorized'
                - $ref: '#/components/schemas/StatusCancelled'
                - $ref: '#/components/schemas/StatusExpired'
                - $ref: '#/components/schemas/StatusFailure'
            action:
              type: object
              description: Next action to be performed by merchant (or consumer) to complete the payment.
              properties:
                redirect:
                  $ref: '#/components/schemas/RedirectAction'
            paymentMethods:
              $ref: '#/components/schemas/PaymentMethods'
            orderItems:
              $ref: '#/components/schemas/OrderItems'
            maxRetries:
              $ref: '#/components/schemas/MaxRetries'
            refunds:
              $ref: '#/components/schemas/Refunds'
    StatusPending:
      description: The transaction is pending, meaning it could not be completed yet; waiting for something.
      type: string
      format: enum
      enum:
        - PENDING
      example: PENDING
    CheckoutPayments:
      type: object
      properties:
        payments:
          type: array
          description: List of payments created for this checkout.
          items:
            type: object
            description: Payment details. Multiple payment attempts will be returned.
            required:
              - id
              - type
              - status
              - createdAt
            properties:
              id:
                $ref: '#/components/schemas/TransactionId'
              type:
                type: string
                description: The payment method used for this payment attempt.
                enum:
                  - apple_pay
                  - bancontact
                  - bank_transfer
                  - creditcard
                  - google_pay
                  - ideal
                  - klarna
                  - paypal
                  - in3
              status:
                description: The status of the payment attempt.
                oneOf:
                  - $ref: '#/components/schemas/StatusOpen'
                  - $ref: '#/components/schemas/StatusSuccess'
                  - $ref: '#/components/schemas/StatusCancelled'
                  - $ref: '#/components/schemas/StatusExpired'
                  - $ref: '#/components/schemas/StatusFailure'
                  - $ref: '#/components/schemas/StatusAuthorized'
                  - $ref: '#/components/schemas/StatusPending'
              createdAt:
                $ref: '#/components/schemas/Datetime'
    TransactionWebhookEvent:
      description: |
        * `STATUS_CHANGE` - When the status of the transaction changes to any other value.
        * `PAYMENT_CREATED` - When a new payment is created for the transaction.
        * `TRANSACTION_CREATED` - When a new transaction is created for a session (used by Google Pay and Apple Pay).
        * `REFUND_STATUS` - Invoke webhook when a transaction receives an update on one of its requested refunds.
        * `FINALSTATUS` - This value is deprecated and shouldn't be used anymore. Use `STATUS_CHANGE` instead.
      type: string
      enum:
        - STATUS_CHANGE
        - PAYMENT_CREATED
        - TRANSACTION_CREATED
        - REFUND_STATUS
        - FINALSTATUS
      example: STATUS_CHANGE
    TransactionEvent:
      description: Event send by CM.com after a change on a transaction.
      type: object
      required:
        - transaction
        - event
        - reference
        - createdAt
      properties:
        transaction:
          $ref: '#/components/schemas/TransactionId'
        event:
          $ref: '#/components/schemas/TransactionWebhookEvent'
        reference:
          $ref: '#/components/schemas/Reference'
        createdAt:
          $ref: '#/components/schemas/Datetime'
          description: Time when the event occurred.
    TransactionWebhookQREvents:
      description: |
        * `STATUS_CHANGE` - When the status of the transaction changes to any other value.
        * `QR_PAYMENT_CREATED` - When a new payment is created using the qr code.
        * `REFUND_STATUS` - Invoke webhook when a transaction receives an update on one of its requested refunds.
      type: string
      enum:
        - STATUS_CHANGE
        - QR_PAYMENT_CREATED
        - REFUND_STATUS
      example: STATUS_CHANGE
    iDEALQRPaymentEvent:
      allOf:
        - $ref: '#/components/schemas/TransactionEvent'
        - type: object
          properties:
            event:
              $ref: '#/components/schemas/TransactionWebhookQREvents'
            payment:
              $ref: '#/components/schemas/Uuid'
              description: Unique identifier for an iDEAL-QR payment.
      description: Event send by CM.com after a change on an iDEAL-QR transaction.
    TransactionWebhookBancontactEvents:
      description: |
        * `STATUS_CHANGE` - When the status of the transaction changes to any other value.
        * `PAYMENT_CREATED` - When a new payment is created for the BanContact order.
        * `REFUND_STATUS` - Invoke webhook when a transaction receives an update on one of its requested refunds.
        * `FINALSTATUS` - This value is deprecated and shouldn't be used anymore. Use `STATUS_CHANGE` instead.
      type: string
      enum:
        - STATUS_CHANGE
        - PAYMENT_CREATED
        - REFUND_STATUS
        - FINALSTATUS
      example: STATUS_CHANGE
    BancontactPaymentEvent:
      allOf:
        - $ref: '#/components/schemas/TransactionEvent'
        - type: object
          properties:
            event:
              $ref: '#/components/schemas/TransactionWebhookBancontactEvents'
            payment:
              $ref: '#/components/schemas/Uuid'
              description: Unique identifier for a BanContact payment.
      description: Event sent by CM.com after a payment is created on a BanContact transaction.
    SessionEvent:
      description: 'Event sent by CM.com for session-based payment flows (Google Pay, Apple Pay). In this model a session groups one or more payment transactions: `sessionID` identifies the checkout session (order) and `transactionID` identifies the individual payment within it.'
      type: object
      required:
        - sessionID
        - event
        - reference
        - createdAt
      properties:
        sessionID:
          allOf:
            - $ref: '#/components/schemas/Uuid'
          description: Unique identifier for the session. Present for `TRANSACTION_CREATED`, `STATUS_CHANGE`, and `PAYMENT_CREATED` events.
        event:
          $ref: '#/components/schemas/TransactionWebhookEvent'
        reference:
          $ref: '#/components/schemas/Reference'
        createdAt:
          $ref: '#/components/schemas/Datetime'
          description: Time when the event occurred.
        transactionID:
          allOf:
            - $ref: '#/components/schemas/Uuid'
          description: 'Unique identifier for the payment transaction within the session. Present for `TRANSACTION_CREATED`, `STATUS_CHANGE`, and `PAYMENT_CREATED` events.        '
  responses:
    UserError:
      description: The user input was incorrect or something illegal was attempted (eg. using a service without having that service configured for the user, or not being authorized)
      content:
        application/json:
          schema:
            type: object
            required:
              - id
              - message
            properties:
              id:
                $ref: '#/components/schemas/Uuid'
              message:
                type: string
                example: no authorization methods provided
    InternalError:
      description: Internal server error. This can be caused by an unresponsive backend
      content:
        application/json:
          schema:
            type: object
            required:
              - id
              - message
            properties:
              id:
                $ref: '#/components/schemas/Uuid'
              message:
                type: string
                example: Service Unavailable
    RefundsResponse:
      description: Details of all refunds belonging to a transaction.
      content:
        application/json:
          schema:
            type: object
            required:
              - refunds
            properties:
              refunds:
                type: array
                items:
                  $ref: '#/components/schemas/RefundDetails'
    GooglePaySession:
      description: Google Pay session details
      headers:
        Digest:
          $ref: '#/components/headers/Digest'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/GooglePaySessionObject'
          examples:
            initializedGooglePay:
              summary: Initialized Google Pay session (awaiting authorization)
              value:
                id: 11111111-1111-1111-1111-111111111111
                reference: '20240612104501'
                amount: 1200
                currency: EUR
                description: Order at yourdomain.tld
                expiresAt: '2025-06-24T12:48:21Z'
                language: nl
                status: OPEN
                action:
                  googlePayButton:
                    merchantCountry: NL
                    allowedCardNetworks:
                      - MASTERCARD
                      - VISA
                    merchantName: Your Merchant
                    environment: TEST
                createdAt: '2025-06-23T12:48:24Z'
                returnUrl: https://tradename.tld/shop/return/?purchase=PO1234567
    GooglePaySessionTransactions:
      description: Google Pay transactions for a session
      headers:
        Digest:
          $ref: '#/components/headers/Digest'
      content:
        application/json:
          schema:
            type: object
            required:
              - transactions
            properties:
              transactions:
                type: array
                items:
                  $ref: '#/components/schemas/GooglePayTransactionObject'
          examples:
            googlePayTransactions:
              summary: Google Pay transactions for a session
              value:
                transactions:
                  - id: 33333333-3333-3333-3333-333333333333
                    sessionId: 11111111-1111-1111-1111-111111111111
                    expiresAt: '2025-06-24T12:48:21Z'
                    status: SUCCESS
                    createdAt: '2025-06-23T12:48:24Z'
                    paymentMethod: creditcard
    GooglePaySessionTransaction:
      description: Google Pay session transaction
      headers:
        Digest:
          $ref: '#/components/headers/Digest'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/GooglePayTransactionObject'
          examples:
            authorizedGooglePay:
              summary: Authorized Google Pay transaction
              value:
                id: 33333333-3333-3333-3333-333333333333
                sessionId: 11111111-1111-1111-1111-111111111111
                expiresAt: '2025-06-24T12:48:21Z'
                status: AUTHORIZED
                action:
                  redirect:
                    url: https://checkout.tld/3ds/v2/creditcard/33333333-3333-3333-3333-333333333333
                createdAt: '2025-06-23T12:48:24Z'
            successfulGooglePay:
              summary: Successful Google Pay transaction
              value:
                id: 33333333-3333-3333-3333-333333333333
                sessionId: 11111111-1111-1111-1111-111111111111
                expiresAt: '2025-06-24T12:48:21Z'
                status: SUCCESS
                createdAt: '2025-06-23T12:48:24Z'
                paymentMethod: creditcard
    RefundsResponseWithSessionID:
      description: Details of all refunds belonging to a transaction of a session.
      content:
        application/json:
          schema:
            type: object
            required:
              - refunds
            properties:
              refunds:
                type: array
                items:
                  $ref: '#/components/schemas/RefundDetailsWithSessionID'
    RefundResponseWithSessionID:
      description: Refund details
      headers:
        Digest:
          $ref: '#/components/headers/Digest'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/RefundDetailsWithSessionID'
    BulkIdealQRResponse:
      description: iDEAL-QR details when created in bulk. Depending on the scenario, the response might include an error or the array of Qr codes indicating details regarding which qr codes have been successfully created and which ones not. **A 200 response status code does not guarantee that all Qr codes have been created, the client must check the response body**.
      headers:
        Digest:
          $ref: '#/components/headers/Digest'
      content:
        application/json:
          schema:
            oneOf:
              - $ref: '#/components/schemas/BulkIdealQRCodesResponseItem'
              - $ref: '#/components/schemas/BulkIdealQRCodeErrorResponseItem'
          examples:
            IDEALQRBulkOperation:
              $ref: '#/components/examples/IDEALQRBulkOperation'
    IN3Transaction:
      description: IN3 transaction details
      headers:
        Digest:
          $ref: '#/components/headers/Digest'
      content:
        application/json:
          schema:
            allOf:
              - type: object
                required:
                  - id
                  - invoice
                  - reference
                  - amount
                  - consumer
                  - description
                  - expiresAt
                  - items
                  - status
                  - created
                  - updated
                  - action
                properties:
                  id:
                    $ref: '#/components/schemas/Uuid'
                  invoice:
                    type: object
                    required:
                      - reference
                      - description
                      - amount
                    properties:
                      reference:
                        $ref: '#/components/schemas/Reference'
                      amount:
                        $ref: '#/components/schemas/Amount'
                      description:
                        type: string
                        example: Order at yourdomain.tld
                  consumer:
                    $ref: '#/components/schemas/schemas-Consumer'
                  expiresAt:
                    $ref: '#/components/schemas/Datetime'
                  items:
                    $ref: '#/components/schemas/IN3Items'
                  status:
                    $ref: '#/components/schemas/TransactionStatus'
                  action:
                    description: Next action to be performed by merchant (or consumer) to complete the payment.
                    type:
                      - object
                      - 'null'
                    properties:
                      redirect:
                        type: object
                        properties:
                          url:
                            description: URL where consumer should be redirected to by the merchant to perform the payment. This url is only available when a card payment has been started
                            type: string
                            format: url
                            example: https://checkout.tld/redirect/in3
                  created:
                    $ref: '#/components/schemas/Datetime'
                  updated:
                    $ref: '#/components/schemas/Datetime'
                  webhooks:
                    $ref: '#/components/schemas/TransactionWebhooks'
              - $ref: '#/components/schemas/ReturnURLOneOf'
          examples:
            openTransaction:
              $ref: '#/components/examples/examples-BasicTransaction'
            openTransactionNoItems:
              $ref: '#/components/examples/BasicTransactionNoItems'
    RefundResponse:
      description: Refund details
      headers:
        Digest:
          $ref: '#/components/headers/Digest'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/RefundDetails'
    ApplePaySession:
      description: |
        Apple Pay session details
      headers:
        Digest:
          $ref: '#/components/headers/Digest'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApplePaySessionObject'
          examples:
            initializedApplePay:
              summary: Initialized Apple Pay session (awaiting authorization)
              value:
                id: bcbb3733-4d3e-4a4d-9254-1ddb90e6e082
                reference: 5e6baea7-607c-438a-aaba-b06ce0ae7776
                amount: 2000
                currency: EUR
                description: Some Apple Pay session
                expiresAt: '2025-05-21T14:17:44.491Z'
                language: nl
                status: OPEN
                action:
                  applePayButton:
                    merchantCountry: NL
                    allowedCardNetworks:
                      - VISA
                      - MASTERCARD
                    merchantName: Your Merchant
                    serverUrl: https://www.example.com/api/
                createdAt: '2025-05-11T14:17:44.491Z'
                returnUrl: https://tradename.tld/shop/return/?purchase=PO1234666
    StartApplePaySession:
      description: Start Apple Pay session details
      headers:
        Digest:
          $ref: '#/components/headers/Digest'
      content:
        application/json:
          schema:
            allOf:
              - description: Apple Pay start session response. The returned response is the opaque Apple Pay merchant session in string format. This response must be passed as-is to the Apple Pay services in the frontend.
                type: object
                properties:
                  displayName:
                    type: string
                    example: My merchant commercial name
                  domainName:
                    type: string
                    example: https://app-domain.tld
                  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...
    ApplePaySessionTransactions:
      description: Apple Pay transactions for a session
      headers:
        Digest:
          $ref: '#/components/headers/Digest'
      content:
        application/json:
          schema:
            type: object
            required:
              - transactions
            properties:
              transactions:
                type: array
                items:
                  $ref: '#/components/schemas/ApplePayTransactionObject'
          examples:
            applePayTransactions:
              summary: Apple Pay transactions for a session
              value:
                transactions:
                  - id: 44444444-4444-4444-4444-444444444444
                    sessionId: bcbb3733-4d3e-4a4d-9254-1ddb90e6e082
                    expiresAt: '2025-05-21T14:17:44.491Z'
                    status: SUCCESS
                    createdAt: '2025-05-11T14:17:44.491Z'
                    paymentMethod: creditcard
    ApplePaySessionTransaction:
      description: Apple Pay session transaction
      headers:
        Digest:
          $ref: '#/components/headers/Digest'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApplePayTransactionObject'
          examples:
            authorizedApplePay:
              summary: Authorized Apple Pay transaction
              value:
                id: 44444444-4444-4444-4444-444444444444
                sessionId: bcbb3733-4d3e-4a4d-9254-1ddb90e6e082
                expiresAt: '2025-05-21T14:17:44.491Z'
                status: AUTHORIZED
                action:
                  redirect:
                    url: https://checkout.tld/3ds/v2/creditcard/44444444-4444-4444-4444-444444444444
                createdAt: '2025-05-11T14:17:44.491Z'
            successfulApplePay:
              summary: Successful Apple Pay transaction
              value:
                id: 44444444-4444-4444-4444-444444444444
                sessionId: bcbb3733-4d3e-4a4d-9254-1ddb90e6e082
                expiresAt: '2025-05-21T14:17:44.491Z'
                status: SUCCESS
                createdAt: '2025-05-11T14:17:44.491Z'
                paymentMethod: creditcard
  examples:
    openBancontact:
      summary: Open Bancontact transaction
      value:
        id: ce19b9c6-53db-4582-bda2-52c07816f4c9
        orderId: 3a0a59a4-4a82-4e37-865f-15537af44439
        reference: '20210623130413'
        amount: 1200
        currency: EUR
        description: Order at yourdomain.tld
        expiresAt: '2025-06-02T15:04:05Z'
        language: nl
        country: BE
        webhooks:
          - url: https://yourdomain.tld/payment-webhooks?purchaseId=order123
            events:
              - STATUS_CHANGE
          - url: https://yourdomain.tld/payment-webhooks?purchaseId=order123
            events:
              - PAYMENT_CREATED
        status: OPEN
        action:
          qrcode:
            url: https://test.docdatapayments.com/ps_sim/qrcode/image?intentUrl=https://test.docdatapayments.com/ps_sim/tma/transactions/start?merchant_key=ecaa39a2-d280-4330-8bce-3468e94b0baa&order_key=B6834645BF5D2851E134097CE1AE7732&logoPath=https://static.cmpayments.com/ps/images/simulators/bancontact_qr_logo.png
          intent:
            url: https://test.docdatapayments.com/ps_sim/tma/transactions/start?merchant_key=ecaa39a2-d280-4330-8bce-3468e94b0baa&order_key=B6834645BF5D2851E134097CE1AE7732
        createdAt: '2025-05-27T13:03:04Z'
        returnUrl: https://yourdomain.tld/order/return?orderID=order123
    openBancontactCard:
      summary: Open Bancontact Card transaction
      value:
        id: 8567aea7-92fa-471b-bd66-2c39b314c014
        action:
          redirect:
            url: https://checkout.gateway.acceptance.cmpayments.nl/3ds/bancontact/8567aea7-92fa-471b-bd66-2c39b314c014
    successBancontact:
      summary: Successful Bancontact transaction
      value:
        id: ce19b9c6-53db-4582-bda2-52c07816f4c9
        orderId: 3a0a59a4-4a82-4e37-865f-15537af44439
        reference: '20210623130413'
        amount: 1200
        currency: EUR
        description: Order at yourdomain.tld
        expiresAt: '2025-06-02T15:04:05Z'
        language: nl
        country: BE
        webhooks:
          - url: https://yourdomain.tld/payment-webhooks?purchaseId=order123
            events:
              - STATUS_CHANGE
          - url: https://yourdomain.tld/payment-webhooks?purchaseId=order123
            events:
              - PAYMENT_CREATED
        status: SUCCESS
        action: null
        createdAt: '2025-05-28T11:53:32Z'
        returnUrl: https://yourdomain.tld/order/return?orderID=order123
    cancelledBancontact:
      summary: Cancelled Bancontact transaction
      value:
        id: 8567aea7-92fa-471b-bd66-2c39b314c014
        orderId: 3cbbda78-9da1-497e-98cb-e7a7ecb672f6
        reference: '20210623130413'
        amount: 1200
        currency: EUR
        description: Order at yourdomain.tld
        expiresAt: '2025-06-02T15:04:05Z'
        language: nl
        country: BE
        webhooks:
          - url: https://yourdomain.tld/payment-webhooks?purchaseId=order123
            events:
              - STATUS_CHANGE
          - url: https://yourdomain.tld/payment-webhooks?purchaseId=order123
            events:
              - PAYMENT_CREATED
        status: CANCELLED
        action: null
        createdAt: '2025-05-27T13:36:24Z'
        returnUrl: https://yourdomain.tld/order/return?orderID=order123
    successBancontactRefund:
      summary: Successful Bancontact refund
      value:
        id: 620fd54b-1dd9-46a2-a926-2f0a11aca741
        orderId: b3789760-865c-438e-bb5b-498e2cd84334
        reference: '20210623130413'
        amount: 1200
        currency: EUR
        description: Order at yourdomain.tld
        expiresAt: '2025-06-02T15:04:05Z'
        language: nl
        country: BE
        webhooks:
          - url: https://yourdomain.tld/payment-webhooks?purchaseId=order123
            events:
              - STATUS_CHANGE
        status: SUCCESS
        action: null
        createdAt: '2025-05-28T11:53:32Z'
        returnUrl: https://yourdomain.tld/order/return?orderID=order123
        refunds:
          refundedAmount: 0
          refundedPendingAmount: 1200
    bancontactTransactionPaymentsPaginated:
      summary: BanContact transaction payments with pagination
      value:
        total: 3
        pageSize: 10
        payments:
          - id: bdfbea5e-ed6d-44f0-abe7-d126b61e412f
            orderId: ce19b9c6-53db-4582-bda2-52c07816f4c9
            status: SUCCESS
            paidAmount: 1200
            createdAt: '2025-05-27T13:03:04Z'
            expiresAt: '2025-06-02T15:04:05Z'
          - id: fe8560dd-799e-4651-8779-69ab534a3f17
            orderId: ce19b9c6-53db-4582-bda2-52c07816f4c9
            status: OPEN
            paidAmount: 1200
            createdAt: '2025-05-28T11:53:32Z'
            expiresAt: '2025-06-02T15:04:05Z'
          - id: 069d5831-d004-4665-8653-da70298bf36a
            orderId: ce19b9c6-53db-4582-bda2-52c07816f4c9
            status: CANCELLED
            paidAmount: 0
            createdAt: '2025-05-28T12:00:00Z'
            expiresAt: '2025-06-02T15:04:05Z'
    createGooglePaySession:
      summary: Create Google Pay session
      value:
        reference: '20240612104501'
        amount: 1200
        currency: EUR
        description: Order at yourdomain.tld
        expiresAt: '2025-06-24T12:48:21Z'
        language: nl
        consumer:
          email: consumer@example.com
          address:
            countryCode: NL
        returnUrl: https://tradename.tld/shop/return/?purchase=PO1234567
        webhooks:
          - url: https://yourdomain.tld/order-webhooks?purchaseId=order123
            events:
              - STATUS_CHANGE
              - TRANSACTION_CREATED
              - REFUND_STATUS
    authorizeGooglePay:
      summary: Authorize Google Pay payment
      value:
        description: Visa •••• 1111
        info:
          cardDetails: '1111'
          cardNetwork: VISA
        tokenizationData:
          token: '{...GooglePaySignedToken...}'
          type: PAYMENT_GATEWAY
        type: CARD
    standard:
      summary: Standard transaction
      value:
        reference: 5e6baea7-607c-438a-aaba-b06ce0ae7776
        amount: 89999
        description: Your order at My Web Shop.
        expiresAt: '2025-05-21T14:17:44.491Z'
        language: nl
        consumer:
          address:
            countryCode: NL
          email: john.doe@email.tld
        cardDetails:
          cardProvider: visa
          browserInformation:
            shopperIp: 1.1.1.1
            accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
            userAgent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36 Edge/18.18363
          encryptedCardDetails:
            data: VFg2yfiuguitrE4CoGC8IkAlwhDEJKqLLyuW6OnXwh/wtnndR9RDrhTwskv0EdpTnps1X/VMe2Y0vA3duPdKXLAWCzJMlFf8Mfx58OKXcVsTly/odz49t42Z/LP1Ym2Y2qhj8GY7AQBVlM1Un7EQCQFZk4W5rS7lFZmuIKm/VaI9EWpgfwu9QNfqzs8Asy2sLvFJUwVwjXdosCcZuP5sTLx2Qo3REj/lqgbsDssfg9vmH2JJd0fhhUKeUxnQpvbJhZVAxH6ZrOcQsXVPLRJm7Xk32iVqnvEDuZiUai+2T6SEeBiH+h7+7LYcL6OX8+BZ5X53JLN3FxqcjvaP094l0w==|Y2xpZW50c2lkZS0z
        returnUrl: https://tradename.tld/shop/return/?purchase=PO1234567
    openCard:
      summary: Open transaction
      value:
        id: 0264f864-c815-47cb-9e1f-fe7ba4326565
        orderId: 6c166afa-ae48-467d-8eed-fdbbf2f30198
        reference: b63fcd00-6643-4387-a47a-1d0044bb989e
        amount: 89999
        currency: EUR
        cardProvider: visa
        description: Your order at My Web Shop.
        expiresAt: '2025-05-21T13:53:31Z'
        language: nl
        country: NL
        status: OPEN
        action:
          redirect:
            url: https://checkout.gateway.acceptance.cmpayments.nl/3ds/creditcard/0264f864-c815-47cb-9e1f-fe7ba4326565
        createdAt: '2025-05-20T13:53:36Z'
        returnUrl: https://cm.com
    successCard:
      summary: Successful transaction (also applicable for FAILED, EXPIRED or CANCELLED)
      value:
        id: 0264f864-c815-47cb-9e1f-fe7ba4326565
        orderId: 6c166afa-ae48-467d-8eed-fdbbf2f30198
        reference: b63fcd00-6643-4387-a47a-1d0044bb989e
        amount: 89999
        currency: EUR
        cardProvider: visa
        description: Your order at My Web Shop.
        expiresAt: '2025-05-21T13:53:31Z'
        language: nl
        country: NL
        status: SUCCESS
        action: null
        createdAt: '2025-05-20T13:53:36Z'
        returnUrl: https://cm.com
    refundCard:
      summary: Partially pending refunded creditcard transaction
      value:
        id: 0264f864-c815-47cb-9e1f-fe7ba4326565
        orderId: 6c166afa-ae48-467d-8eed-fdbbf2f30198
        reference: b63fcd00-6643-4387-a47a-1d0044bb989e
        amount: 89999
        currency: EUR
        cardProvider: visa
        description: Your order at My Web Shop.
        expiresAt: '2025-05-21T13:53:31Z'
        language: nl
        country: NL
        status: SUCCESS
        action: null
        createdAt: '2025-05-20T13:53:36Z'
        returnUrl: https://cm.com
        refunds:
          refundedAmount: 0
          refundedPendingAmount: 600
    standardIdeal:
      summary: Standard transaction
      value:
        reference: bcbb3733-4d3e-4a4d-9254-1ddb90e6e081
        amount: 5999
        purchaseId: PO1234567
        description: Your order at My Web Shop.
        returnUrl: https://tradename.tld/shop/return/?purchase=PO1234567
    webhook:
      summary: Standard transaction with webhook subscription
      value:
        reference: bcbb3733-4d3e-4a4d-9254-1ddb90e6e081
        amount: 5999
        purchaseId: PO1234567
        description: Your order at My Web Shop.
        returnUrl: https://tradename.tld/shop/return/?purchase=PO1234567
        webhooks:
          - url: https://yourdomain.tld/order-webhooks?purchaseId=order123
            events:
              - STATUS_CHANGE
              - REFUND_STATUS
    fastCheckout:
      summary: Fast Checkout
      value:
        reference: bcbb3733-4d3e-4a4d-9254-1ddb90e6e081
        amount: 5999
        purchaseId: PO1234567
        description: Your order at My Web Shop.
        returnUrl: https://tradename.tld/shop/return/?purchase=PO1234567
        checkout:
          shippingCost: 100
          requestedDetails:
            debtorContactDetails:
              firstName: true
              lastName: true
              phoneNumber: false
              email: true
            shippingAddress: true
            invoiceAddress: false
    payFastRequestUserToken:
      summary: Request a Pay Fast user-token
      value:
        reference: bcbb3733-4d3e-4a4d-9254-1ddb90e6e081
        amount: 5999
        purchaseId: PO1234567
        description: Your order at My Web Shop.
        returnUrl: https://tradename.tld/shop/return/?purchase=PO1234567
        requestUserToken: true
    payFast:
      summary: Pay Fast
      value:
        reference: bcbb3733-4d3e-4a4d-9254-1ddb90e6e081
        amount: 5999
        purchaseId: PO1234567
        description: Your order at My Web Shop.
        returnUrl: https://tradename.tld/shop/return/?purchase=PO1234567
        expectedDebtor:
          userToken: Z7xmaEJlB3rDLpmln9xbUlaQ,
          userAgent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36 Edg/134.0.0.0
    openIdeal:
      summary: Open transaction
      value:
        id: 72149cbf-d4a1-4309-9872-6ec19fa782cc
        orderId: 68dcf257-b15d-4a86-9baa-4cf60c6c8a5c
        reference: bcbb3733-4d3e-4a4d-9254-1ddb90e6e081
        amount: 5999
        currency: EUR
        purchaseId: PO1234567
        description: Your order at My Web Shop.
        expiresAt: '2025-05-08T17:36:50Z'
        language: nl
        idealTransactionId: null
        status: OPEN
        action:
          redirect:
            url: https://ideal.acceptance.cmpayments.nl/issuermock/8153309507457504?ec=7wgoao5EJ7qDo8yT373ic1pOfQY9S81B02xbDRXO
        createdAt: '2025-05-08T17:06:49Z'
        returnUrl: https://tradename.tld/shop/return/?purchase=PO1234567
    successIdeal:
      summary: Successful transaction (also applicable for FAILED, EXPIRED or CANCELLED)
      value:
        id: 72149cbf-d4a1-4309-9872-6ec19fa782cc
        orderId: 68dcf257-b15d-4a86-9baa-4cf60c6c8a5c
        reference: bcbb3733-4d3e-4a4d-9254-1ddb90e6e081
        amount: 5999
        currency: EUR
        purchaseId: PO1234567
        description: Your order at My Web Shop.
        expiresAt: '2025-05-08T17:36:50Z'
        language: nl
        idealTransactionId: '8153248198760451'
        status: SUCCESS
        action: null
        createdAt: '2025-05-08T17:06:49Z'
        returnUrl: https://tradename.tld/shop/return/?purchase=PO1234567
        consumer:
          name: J. Doe
          bic: TESTXX10
          iban: NL57TEST0890594562
    iDEALCheckout:
      summary: Fast Checkout
      value:
        id: 72149cbf-d4a1-4309-9872-6ec19fa782cc
        orderId: 68dcf257-b15d-4a86-9baa-4cf60c6c8a5c
        reference: bcbb3733-4d3e-4a4d-9254-1ddb90e6e081
        amount: 5999
        currency: EUR
        purchaseId: PO1234567
        description: Your order at My Web Shop.
        expiresAt: '2025-05-08T17:36:50Z'
        language: nl
        idealTransactionId: '8153248198760451'
        status: SUCCESS
        action: null
        createdAt: '2025-05-08T17:06:49Z'
        returnUrl: https://tradename.tld/shop/return/?purchase=PO1234567
        checkout:
          shippingCost: 100
          requestedDetails:
            debtorContactDetails:
              firstName: true
              lastName: true
              phoneNumber: false
              email: true
            shippingAddress: true
            invoiceAddress: false
        consumer:
          name: J. Doe
          bic: TESTXX10
          iban: NL57TEST0890594562
          checkoutDetails:
            contactDetails:
              firstName: John
              email: john.doe@cm.com
            shippingAddress:
              firstName: John
              lastName: Doe
              street: Konijnenberg
              houseNumber: '24'
              postalCode: 4825BD
              city: Breda
              countryName: Netherlands
    examples-payFast:
      summary: Pay Fast
      value:
        id: 7893d743-9363-45a9-a63c-9691f07f55ee
        amount: 5999
        purchaseID: PO1234567
        description: Your order at My Web Shop.
        reference: bcbb3733-4d3e-4a4d-9254-1ddb90e6e081
        language: nl
        expiresAt: '2024-07-22T15:34:05Z'
        returnUrl: https://tradename.tld/shop/return/?purchase=PO1234567
        status: OPEN
        expectedDebtor:
          userToken: Z7xmaEJlB3rDLpmln9xbUlaQ
          userAgent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36 Edg/134.0.0.0
        checkoutUrl: https://issuer.tld/ideal/start?trxid=1234567890123456&random=wreq0dq90vgq0ew923123
        notificationResult: PUSH_SENT_SHOW_WAITING_SCREEN
        transactionId: null
        consumer: null
        createdAt: '2024-07-22T15:04:05Z'
        updatedAt: '2024-07-22T15:04:05Z'
    refundIdeal:
      summary: Refund transaction
      value:
        id: 72149cbf-d4a1-4309-9872-6ec19fa782cc
        orderId: 68dcf257-b15d-4a86-9baa-4cf60c6c8a5c
        reference: bcbb3733-4d3e-4a4d-9254-1ddb90e6e081
        amount: 5999
        currency: EUR
        purchaseId: PO1234567
        description: Your order at My Web Shop.
        expiresAt: '2025-05-08T17:36:50Z'
        language: nl
        idealTransactionId: 8153248198760451
        status: SUCCESS
        action: null
        createdAt: '2025-05-08T17:06:49Z'
        returnUrl: https://tradename.tld/shop/return/?purchase=PO1234567
        consumer:
          name: J. Doe
          bic: TESTXX10
          iban: NL57TEST0890594562
        refunds:
          refundedAmount: 3999
          refundedPendingAmount: 2000
    standardIdealQRNonReusable:
      summary: Standard non-reusable QR transaction
      value:
        amount: 998
        currency: EUR
        description: Order at yourdomain.tld
        expiresAt: '2025-09-03T11:30:39.560Z'
        language: nl
        reference: '20250903120956'
        returnUrls:
          success: https://yourdomain.tld/order/payment-success.html
          cancelled: https://yourdomain.tld/order/payment-cancelled.html
          expired: https://yourdomain.tld/order/payment-expired.html
          failed: https://yourdomain.tld/order/payment-failed.html
        size: 200
        purchaseId: order123
        reusable: false
    standardIdealQRReusable:
      summary: Standard reusable QR transaction
      value:
        amount: 998
        currency: EUR
        description: Order at yourdomain.tld
        expiresAt: '2025-09-03T11:30:39.560Z'
        language: nl
        reference: '20250903120956'
        returnUrls:
          success: https://yourdomain.tld/order/payment-success.html
          cancelled: https://yourdomain.tld/order/payment-cancelled.html
          expired: https://yourdomain.tld/order/payment-expired.html
          failed: https://yourdomain.tld/order/payment-failed.html
        size: 200
        purchaseId: order123
        reusable: true
    standardIdealQRNonReusableWithWebhook:
      summary: Standard non-reusable QR transaction with webhook subscription
      value:
        amount: 998
        currency: EUR
        description: Order at yourdomain.tld
        expiresAt: '2025-09-03T12:44:11.471Z'
        language: nl
        reference: '20250903130947'
        returnUrls:
          success: https://yourdomain.tld/order/payment-success.html
          cancelled: https://yourdomain.tld/order/payment-cancelled.html
          expired: https://yourdomain.tld/order/payment-expired.html
          failed: https://yourdomain.tld/order/payment-failed.html
        size: 200
        purchaseId: order123
        reusable: false
        webhooks:
          - url: https://yourdomain.tld/order-webhooks?purchaseId=order123
            events:
              - STATUS_CHANGE
          - url: https://yourdomain.tld/order-webhooks?purchaseId=order123
            events:
              - QR_PAYMENT_CREATED
    standardIdealQRSingleReturnUrl:
      summary: Standard non-reusable QR transaction with a single return URL
      value:
        amount: 998
        currency: EUR
        description: Order at yourdomain.tld
        expiresAt: '2025-09-03T11:30:39.560Z'
        language: nl
        reference: '20250903120956'
        returnUrl: https://yourdomain.tld/order/order-complete.html
        size: 200
        purchaseId: order123
        reusable: false
    standardIdealQRWithChangeableAmount:
      summary: Standard non-reusable QR transaction with changeable amount
      value:
        amountChangeable:
          min: 100
          max: 998
        amount: 998
        description: Order at yourdomain.tld
        expiresAt: '2025-09-04T07:53:41.785Z'
        language: nl
        reference: '20250904080978'
        returnUrls:
          success: https://yourdomain.tld/order/payment-success.html
          cancelled: https://yourdomain.tld/order/payment-cancelled.html
          expired: https://yourdomain.tld/order/payment-expired.html
          failed: https://yourdomain.tld/order/payment-failed.html
        size: 200
        currency: EUR
        purchaseId: order123
        reusable: false
        webhooks:
          - url: https://yourdomain.tld/order-webhooks?purchaseId=order123
            events:
              - STATUS_CHANGE
          - url: https://yourdomain.tld/order-webhooks?purchaseId=order123
            events:
              - QR_PAYMENT_CREATED
    openIdealQR:
      summary: Open iDEAL-QR transaction
      value:
        id: 3bfb2b3f-add7-438d-8769-a17acb78cb9c
        reference: '20250903130947'
        amount: 998
        currency: EUR
        purchaseId: order123
        description: Order at yourdomain.tld
        size: 200
        expiresAt: '2025-09-03T12:44:11Z'
        reusable: false
        language: nl
        webhooks:
          - url: https://cm.com/order-webhooks?purchaseId=order123
            events:
              - STATUS_CHANGE
          - url: https://cm.com/order-webhooks?purchaseId=order123
            events:
              - QR_PAYMENT_CREATED
        status: OPEN
        action:
          qrcode:
            id: 4696ae57-73b7-4577-b866-9f55108cf06a
            url: https://ideal-qr3.acceptance.cmpayments.nl/qrcode/4696ae57-73b7-4577-b866-9f55108cf06a
            href: https://ideal-qr3.acceptance.cmpayments.nl/4696ae57-73b7-4577-b866-9f55108cf06a
        createdAt: '2025-09-03T11:44:11Z'
        returnUrls:
          success: https://yourdomain.tld/order/payment-success.html
          cancelled: https://yourdomain.tld/order/payment-cancelled.html
          expired: https://yourdomain.tld/order/payment-expired.html
          failed: https://yourdomain.tld/order/payment-failed.html
    successIdealQR:
      summary: Successful iDEAL-QR transaction (also applicable for FAILED, EXPIRED or CANCELLED)
      value:
        id: 3bfb2b3f-add7-438d-8769-a17acb78cb9c
        reference: '20250903130947'
        amount: 998
        currency: EUR
        purchaseId: order123
        description: Order at yourdomain.tld
        size: 200
        expiresAt: '2025-09-03T12:44:11Z'
        reusable: false
        language: nl
        webhooks:
          - url: https://cm.com/order-webhooks?purchaseId=order123
            events:
              - STATUS_CHANGE
          - url: https://cm.com/order-webhooks?purchaseId=order123
            events:
              - QR_PAYMENT_CREATED
        status: SUCCESS
        action: null
        createdAt: '2025-09-03T11:44:12Z'
        returnUrls:
          success: https://yourdomain.tld/order/payment-success.html
          cancelled: https://yourdomain.tld/order/payment-cancelled.html
          expired: https://yourdomain.tld/order/payment-expired.html
          failed: https://yourdomain.tld/order/payment-failed.html
    openIdealQRWithChangeableAmount:
      summary: Open iDEAL-QR transaction with changeable amount
      value:
        id: 145d2793-0b63-4900-8186-3c38ebb1495a
        reference: '20250904080978'
        amountChangeable:
          min: 100
          max: 998
        amount: 998
        currency: EUR
        purchaseId: order123
        description: Order at yourdomain.tld
        size: 200
        expiresAt: '2025-09-04T07:53:41Z'
        reusable: false
        language: nl
        webhooks:
          - url: https://yourdomain.tld/order-webhooks?purchaseId=order123
            events:
              - STATUS_CHANGE
          - url: https://yourdomain.tld/order-webhooks?purchaseId=order123
            events:
              - QR_PAYMENT_CREATED
        status: OPEN
        action:
          qrcode:
            id: c38f0fff-50c1-44e4-896f-72d3d2925a3b
            url: https://ideal-qr3.acceptance.cmpayments.nl/qrcode/c38f0fff-50c1-44e4-896f-72d3d2925a3b
            href: https://ideal-qr3.acceptance.cmpayments.nl/c38f0fff-50c1-44e4-896f-72d3d2925a3b
        createdAt: '2025-09-04T06:53:42Z'
        returnUrls:
          success: https://yourdomain.tld/order/payment-success.html
          cancelled: https://yourdomain.tld/order/payment-cancelled.html
          expired: https://yourdomain.tld/order/payment-expired.html
          failed: https://yourdomain.tld/order/payment-failed.html
    IdealQRTransactionPaymentsPaginated:
      summary: iDEAL-QR transaction payments with pagination
      value:
        total: 6
        pageSize: 10
        payments:
          - payment: bdfbea5e-ed6d-44f0-abe7-d126b61e412f
            transaction: cfe90b10-c65f-4b59-a085-19931f6b47e1
            idealTransactionId: '8153735735281444'
            status: SUCCESS
            createdAt: '2025-09-04T10:27:49.236034Z'
            amount: 998
            consumerName: Pino the Bird
            consumerBIC: TESTNL2A
            consumerIBAN: NL44RABO0123456789
          - payment: fe8560dd-799e-4651-8779-69ab534a3f17
            transaction: cfe90b10-c65f-4b59-a085-19931f6b47e1
            idealTransactionId: '8153854535491972'
            status: SUCCESS
            createdAt: '2025-09-04T10:27:56.285859Z'
            amount: 998
            consumerName: Pino the Bird
            consumerBIC: TESTNL2A
            consumerIBAN: NL44RABO0123456789
          - payment: 069d5831-d004-4665-8653-da70298bf36a
            transaction: cfe90b10-c65f-4b59-a085-19931f6b47e1
            idealTransactionId: '8153684217461075'
            status: CANCELLED
            createdAt: '2025-09-04T10:28:07.64271Z'
          - payment: f4f4c527-d655-4d3b-96fb-7bf6def22339
            transaction: cfe90b10-c65f-4b59-a085-19931f6b47e1
            idealTransactionId: null
            status: FAILURE
            createdAt: '2025-09-04T10:28:18.808211Z'
          - payment: e36d4dd4-8a6b-4d16-b9fe-d20bb4c30a2b
            transaction: cfe90b10-c65f-4b59-a085-19931f6b47e1
            idealTransactionId: '8153346629373592'
            status: SUCCESS
            createdAt: '2025-09-04T10:28:26.719312Z'
            amount: 998
            consumerName: Pino the Bird
            consumerBIC: TESTNL2A
            consumerIBAN: NL44RABO0123456789
          - payment: ba197271-7d72-423e-8b32-c8a21999fdea
            transaction: cfe90b10-c65f-4b59-a085-19931f6b47e1
            idealTransactionId: '8153086026371687'
            status: SUCCESS
            createdAt: '2025-09-04T10:28:34.935229Z'
            amount: 998
            consumerName: Pino the Bird
            consumerBIC: TESTNL2A
            consumerIBAN: NL44RABO0123456789
    IDEALQRPaymentsSummaryByStatus:
      summary: iDEAL-QR transaction payments filtered by status
      value:
        - status: SUCCESS
          count: 4
          amount: 3992
    IDEALQRAllPaymentsSummary:
      summary: iDEAL-QR transaction payments without filtering by status
      value:
        - status: EXPIRED
          count: 0
          amount: 0
        - status: CANCELLED
          count: 1
          amount: 998
        - status: SUCCESS
          count: 4
          amount: 3992
        - status: OPEN
          count: 0
          amount: 0
        - status: FAILURE
          count: 1
          amount: 998
    bulkOperationQRCodes:
      summary: Standard creation of a set of iDEAL-QR transactions non-default
      value:
        qrcodes:
          - amountChangeable:
              min: 1
              max: 50000
            reference: reference1
            amount: 1200
            currency: EUR
            purchaseId: order123
            description: Order at yourdomain.tld
            expiresAt: '2025-09-04T07:53:41.785Z'
            reusable: false
            size: 200
            language: nl
            webhooks:
              - url: https://yourdomain.tld/order-webhooks?purchaseId=order123
                events:
                  - STATUS_CHANGE
              - url: https://yourdomain.tld/order-webhooks?purchaseId=order123
                events:
                  - STATUS_CHANGE
              - url: https://yourdomain.tld/payment-webhooks?purchaseId=order123
                events:
                  - QR_PAYMENT_CREATED
            returnUrls:
              success: https://yourdomain.tld/order/payment-success.html
              cancelled: https://yourdomain.tld/order/payment-cancelled.html
              expired: https://yourdomain.tld/order/payment-expired.html
              failed: https://yourdomain.tld/order/payment-failed.html
          - amountChangeable:
              min: 1
              max: 50000
            reference: reference2
            amount: 500
            currency: EUR
            purchaseId: order9876
            description: Order at yourdomain.tld
            expiresAt: '2025-09-04T07:53:41.785Z'
            reusable: false
            size: 200
            language: nl
            webhooks:
              - url: https://yourdomain.tld/order-webhooks?purchaseId=order9876
                events:
                  - STATUS_CHANGE
              - url: https://yourdomain.tld/payment-webhooks?purchaseId=order9876
                events:
                  - QR_PAYMENT_CREATED
            returnUrls:
              success: https://yourdomain.tld/order/payment-success.html
              cancelled: https://yourdomain.tld/order/payment-cancelled.html
              expired: https://yourdomain.tld/order/payment-expired.html
              failed: https://yourdomain.tld/order/payment-failed.html
    IDEALQRBulkOperation:
      summary: Bulk operation response
      value:
        qrcodes:
          - created: true
            transaction:
              id: 193cb243-283a-4760-9c56-8a6444d588b2
              action:
                qrcode:
                  id: effb41f2-e4fe-4f2a-bde5-674e32a69429
                  url: https://ideal-qr3.acceptance.cmpayments.nl/qrcode/effb41f2-e4fe-4f2a-bde5-674e32a69429
          - created: true
            transaction:
              id: 4572f0f6-6fba-4338-a5c8-6be56b9241b0
              action:
                qrcode:
                  id: 48ea462c-5721-48e2-b50d-2eb29d7128dc
                  url: https://ideal-qr3.acceptance.cmpayments.nl/qrcode/48ea462c-5721-48e2-b50d-2eb29d7128dc
    BasicTransaction:
      summary: Standard transaction
      value:
        invoice:
          reference: de890044-b3b7-47e2-9d10-4a52a21a6eb3
          amount: 12000
          description: Order at My Web Shop.
        expiresAt: '2025-09-25T17:03:48.456Z'
        consumer:
          name:
            lastName: Doe
          phone: '+31695613259'
          email: john.doe@email.tld
          dateOfBirth: '1996-12-31'
          shippingAddress:
            street: Rustenburgerlaan
            houseNumber: '25'
            postalCode: 2012AL
            city: Haarlem
            countryCode: NL
        items:
          - code: SDC4/32GB-2ADP
            description: Best seller SD card
            unitPrice: 6000
            quantity: 2
            vatAmount: 1000
            vatRate: 20
        returnUrl: https://yourdomain.tld/order/payment-completed.html
    BasicTransactionNoItems:
      summary: Open in3 transaction without items
      value:
        id: 60a4571e-1711-48d5-808c-50739eb652af
        status: OPEN
        webhooks:
          - url: https://yourdomain.tld/payment-webhooks?purchaseId=order123
            events:
              - STATUS_CHANGE
        returnUrls:
          success: https://yourdomain.tld/order/payment-success.html
          cancelled: https://yourdomain.tld/order/payment-cancelled.html
          expired: https://yourdomain.tld/order/payment-expired.html
          failed: https://yourdomain.tld/order/payment-failed.html
        invoice:
          reference: '202106231304112'
          amount: 12000
          description: Order at yourdomain.tld
        consumer:
          name:
            initials: A
            lastName: Lopez
          phone: '+31695613259'
          email: john.doe@email.tld
          dateOfBirth: '1996-12-31'
          shippingAddress:
            addressedTo: Scenius
            street: Rustenburgerlaan
            houseNumber: '25'
            houseNumberSuffix: A
            postalCode: 2012AL
            city: Haarlem
            countryCode: NL
            state: Noord-Holland
          invoiceAddress:
            addressedTo: Scenius
            street: Rustenburgerlaan
            houseNumber: '25'
            houseNumberSuffix: A
            postalCode: 2012AL
            city: Haarlem
            countryCode: NL
            state: Noord-Holland
          business:
            name: CM
            cocNumber: '70528500'
        expiresAt: '2025-09-17T15:04:05Z'
        items: []
        action:
          redirect:
            url: https://in3.ideal.nl/33110K9tcpeNE79SfAp7bcW132GdC8d5633078c543m0x40f
        created: '2025-09-17T09:30:46Z'
        updated: '2025-09-17T09:30:46Z'
    examples-BasicTransaction:
      summary: Open in3 transaction
      value:
        id: bf4ca95d-3904-474b-bac2-dc25de3647d2
        status: OPEN
        webhooks:
          - url: https://yourdomain.tld/payment-webhooks?purchaseId=order123
            events:
              - STATUS_CHANGE
        returnUrls:
          success: https://yourdomain.tld/order/payment-success.html
          cancelled: https://yourdomain.tld/order/payment-cancelled.html
          expired: https://yourdomain.tld/order/payment-expired.html
          failed: https://yourdomain.tld/order/payment-failed.html
        invoice:
          reference: '202106231304112'
          amount: 12000
          description: Order at yourdomain.tld
        consumer:
          name:
            initials: A
            lastName: Lopez
          phone: '+31695613259'
          email: john.doe@email.tld
          dateOfBirth: '1996-12-31'
          shippingAddress:
            addressedTo: Scenius
            street: Rustenburgerlaan
            houseNumber: '25'
            houseNumberSuffix: A
            postalCode: 2012AL
            city: Haarlem
            countryCode: NL
            state: Noord-Holland
          invoiceAddress:
            addressedTo: Scenius
            street: Rustenburgerlaan
            houseNumber: '25'
            houseNumberSuffix: A
            postalCode: 2012AL
            city: Haarlem
            countryCode: NL
            state: Noord-Holland
          business:
            name: CM
            cocNumber: '70528500'
        expiresAt: '2025-09-17T15:04:05Z'
        items:
          - code: SDC4/32GB-2ADP
            name: Kingston microSD 32GB
            description: Best seller SD card
            unitPrice: 600
            quantity: 2
            vatAmount: 100
            vatRate: 20
        action:
          redirect:
            url: https://in3.ideal.nl/Ue93xA44434161cj1646582d7Naf5RKet8ab3O7553Zf2qv9
        created: '2025-09-17T09:12:37Z'
        updated: '2025-09-17T09:12:37Z'
    standardKlarna:
      summary: Standard transaction
      value:
        reference: '20210623130413'
        description: Order at yourdomain.tld
        expiresAt: '2025-06-02T15:04:05Z'
        language: nl
        consumer:
          name:
            firstName: John
            lastName: Lopez
          address:
            street: Rustenburgerlaan
            houseNumber: '25'
            postalCode: 2012AL
            city: Haarlem
            countryCode: NL
          email: john.doe@email.tld
        items:
          - code: SDC4/32GB-2ADP
            unitPrice: 600
            quantity: 2
            vatAmount: 100
            vatRate: 20
          - type: SHIPPING_FEE
            code: Shipping
            quantity: 1
            unitPrice: 495
            vatRate: 0
            vatAmount: 0
        webhooks:
          - url: https://yourdomain.tld/payment-webhooks?purchaseId=order123
            events:
              - STATUS_CHANGE
        returnUrl: https://yourdomain.tld/order/payment-success.html
    openKlarnaTransaction:
      summary: Open Klarna transaction
      value:
        id: a95e9fab-e779-49fd-9dae-0c962a4321c8
        orderId: 18a62430-566a-419a-9f8b-09bc9a95d312
        reference: '20210623130413'
        amount: 1200
        currency: EUR
        description: Order at yourdomain.tld
        expiresAt: '2025-06-02T15:04:05Z'
        language: nl
        country: NL
        items:
          - code: SDC4/32GB-2ADP
            name: Kingston microSD 32GB
            description: Best seller SD card
            unitPrice: 600
            quantity: 2
            vatAmount: 100
            vatRate: 20
        webhooks:
          - url: https://yourdomain.tld/payment-webhooks?purchaseId=order123
            events:
              - STATUS_CHANGE
        status: OPEN
        action:
          redirect:
            url: https://pay.playground.klarna.com/eu/hpp/payments/3M908Q1
        createdAt: '2025-05-28T13:00:49Z'
        returnUrl: https://yourdomain.tld/order/payment-success.html
    successKlarnaTransaction:
      summary: Successful Klarna transaction
      value:
        id: a95e9fab-e779-49fd-9dae-0c962a4321c8
        orderId: 18a62430-566a-419a-9f8b-09bc9a95d312
        reference: '20210623130413'
        amount: 1200
        currency: EUR
        description: Order at yourdomain.tld
        expiresAt: '2025-06-02T15:04:05Z'
        language: nl
        country: NL
        items:
          - code: SDC4/32GB-2ADP
            name: Kingston microSD 32GB
            description: Best seller SD card
            unitPrice: 600
            quantity: 2
            vatAmount: 100
            vatRate: 20
        webhooks:
          - url: https://yourdomain.tld/payment-webhooks?purchaseId=order123
            events:
              - STATUS_CHANGE
        status: SUCCESS
        action: null
        createdAt: '2025-05-28T13:00:50Z'
        returnUrl: https://yourdomain.tld/order/payment-success.html
    successKlarnaRefund:
      summary: Refund Klarna transaction
      value:
        id: a95e9fab-e779-49fd-9dae-0c962a4321c8
        orderId: 18a62430-566a-419a-9f8b-09bc9a95d312
        reference: '20210623130413'
        amount: 1200
        currency: EUR
        description: Order at yourdomain.tld
        expiresAt: '2025-06-02T15:04:05Z'
        language: nl
        country: NL
        items:
          - code: SDC4/32GB-2ADP
            name: Kingston microSD 32GB
            description: Best seller SD card
            unitPrice: 600
            quantity: 2
            vatAmount: 100
            vatRate: 20
        webhooks:
          - url: https://yourdomain.tld/payment-webhooks?purchaseId=order123
            events:
              - STATUS_CHANGE
        refunds:
          refundedAmount: 0
          refundedPendingAmount: 1200
        status: SUCCESS
        action: null
        createdAt: '2025-05-28T13:00:50Z'
        returnUrl: https://yourdomain.tld/order/payment-success.html
    StandardAppleInitialize:
      summary: Standard Apple initialize
      value:
        reference: 5e6baea7-607c-438a-aaba-b06ce0ae7776
        description: Some Apple Pay session
        amount: 2000
        currency: EUR
        expiresAt: '2025-05-21T14:17:44.491Z'
        language: nl
        consumer:
          address:
            countryCode: NL
          email: john.doe@email.tld
        returnUrl: https://tradename.tld/shop/return/?purchase=PO1234666
        webhooks:
          - url: https://yourdomain.tld/order-webhooks?purchaseId=order123
            events:
              - STATUS_CHANGE
              - TRANSACTION_CREATED
              - REFUND_STATUS
    openBelfiusPayButton:
      summary: Open Belfius Pay Button transaction
      value:
        id: 9a3e15f2-8c7b-4d6e-a1f0-3b8e7c4d9a1e
        orderId: 7f2a8e3d-4c1b-4e9a-8d2f-1a5c3e7b9d4f
        reference: '20210623130413'
        amount: 1500
        currency: EUR
        description: Order at yourdomain.tld
        expiresAt: '2025-06-02T15:04:05Z'
        language: nl
        country: BE
        webhooks:
          - url: https://yourdomain.tld/payment-webhooks?purchaseId=order123
            events:
              - STATUS_CHANGE
        status: OPEN
        action:
          redirect:
            url: https://checkout.gateway.cmpayments.nl/belfiuspaybutton/9a3e15f2-8c7b-4d6e-a1f0-3b8e7c4d9a1e
        createdAt: '2025-05-27T13:03:04Z'
        returnUrl: https://yourdomain.tld/order/return?orderID=order123
    successBelfiusPayButton:
      summary: Successful Belfius Pay Button transaction
      value:
        id: 9a3e15f2-8c7b-4d6e-a1f0-3b8e7c4d9a1e
        orderId: 7f2a8e3d-4c1b-4e9a-8d2f-1a5c3e7b9d4f
        reference: '20210623130413'
        amount: 1500
        currency: EUR
        description: Order at yourdomain.tld
        expiresAt: '2025-06-02T15:04:05Z'
        language: nl
        country: BE
        webhooks:
          - url: https://yourdomain.tld/payment-webhooks?purchaseId=order123
            events:
              - STATUS_CHANGE
        status: SUCCESS
        action: null
        createdAt: '2025-05-28T11:53:32Z'
        returnUrl: https://yourdomain.tld/order/return?orderID=order123
    openBankTransfer:
      summary: Open Bank Transfer transaction
      value:
        id: 1b4c8a2e-9d3f-4a7e-b5c1-6f8d2e3a9b7c
        orderId: 3e7f1a4b-2c8d-4b9e-a6f2-8d1c3b5e7a9f
        reference: '20210623130413'
        amount: 2500
        currency: EUR
        description: Order at yourdomain.tld
        expiresAt: '2025-06-02T15:04:05Z'
        language: nl
        country: NL
        webhooks:
          - url: https://yourdomain.tld/payment-webhooks?purchaseId=order123
            events:
              - STATUS_CHANGE
        status: OPEN
        action:
          redirect:
            url: https://checkout.gateway.cmpayments.nl/banktransfer/1b4c8a2e-9d3f-4a7e-b5c1-6f8d2e3a9b7c
        createdAt: '2025-05-27T13:03:04Z'
        returnUrl: https://yourdomain.tld/order/return?orderID=order123
    successBankTransfer:
      summary: Successful Bank Transfer transaction
      value:
        id: 1b4c8a2e-9d3f-4a7e-b5c1-6f8d2e3a9b7c
        orderId: 3e7f1a4b-2c8d-4b9e-a6f2-8d1c3b5e7a9f
        reference: '20210623130413'
        amount: 2500
        currency: EUR
        description: Order at yourdomain.tld
        expiresAt: '2025-06-02T15:04:05Z'
        language: nl
        country: NL
        webhooks:
          - url: https://yourdomain.tld/payment-webhooks?purchaseId=order123
            events:
              - STATUS_CHANGE
        status: SUCCESS
        action: null
        createdAt: '2025-05-28T11:53:32Z'
        returnUrl: https://yourdomain.tld/order/return?orderID=order123
    openSepaDirectDebit:
      summary: Open SEPA Direct Debit transaction
      value:
        id: 5c9e2f8a-7d1b-4a3e-9f6c-2b8d4e1a7c3f
        orderId: 8d3a1f5b-4c2e-4b7a-a9f6-3e1c5b8d7a2f
        reference: '20210623130413'
        amount: 3500
        currency: EUR
        description: Order at yourdomain.tld
        expiresAt: '2025-06-02T15:04:05Z'
        language: nl
        webhooks:
          - url: https://yourdomain.tld/payment-webhooks?purchaseId=order123
            events:
              - STATUS_CHANGE
        status: OPEN
        action:
          redirect:
            url: https://checkout.gateway.cmpayments.nl/sepadirectdebit/5c9e2f8a-7d1b-4a3e-9f6c-2b8d4e1a7c3f
        createdAt: '2025-05-27T13:03:04Z'
        returnUrl: https://yourdomain.tld/order/return?orderID=order123
    successSepaDirectDebit:
      summary: Successful SEPA Direct Debit transaction
      value:
        id: 5c9e2f8a-7d1b-4a3e-9f6c-2b8d4e1a7c3f
        orderId: 8d3a1f5b-4c2e-4b7a-a9f6-3e1c5b8d7a2f
        reference: '20210623130413'
        amount: 3500
        currency: EUR
        description: Order at yourdomain.tld
        expiresAt: '2025-06-02T15:04:05Z'
        language: nl
        webhooks:
          - url: https://yourdomain.tld/payment-webhooks?purchaseId=order123
            events:
              - STATUS_CHANGE
        status: SUCCESS
        action: null
        createdAt: '2025-05-28T11:53:32Z'
        returnUrl: https://yourdomain.tld/order/return?orderID=order123
    openCardV2:
      summary: Open transaction (v2)
      value:
        id: 4f7a8b2c-9e3d-4a1f-b6c5-8d2e3a7f9b1c
        orderId: 2e8a4f1b-7c3d-4b9e-a5f2-9d1c6b8e3a7f
        reference: c89fbd11-7754-4498-b58b-2e1155cc090f
        amount: 12500
        currency: EUR
        description: Your order at My Web Shop.
        expiresAt: '2025-05-21T13:53:31Z'
        language: nl
        country: NL
        status: OPEN
        action:
          redirect:
            url: https://checkout.gateway.acceptance.cmpayments.nl/3ds/creditcard/v2/4f7a8b2c-9e3d-4a1f-b6c5-8d2e3a7f9b1c
        createdAt: '2025-05-20T13:53:36Z'
        returnUrl: https://tradename.tld/shop/return/?purchase=PO1234567
    initializedCardV2:
      summary: Initialized transaction for 3DS v2
      value:
        id: 6a9c2e4f-8d1b-4c3e-a7f5-3b8d1e6a9c2f
        orderId: 1d5b8e3a-4f2c-4a9e-b6f7-8c3d5b1e9a4f
        reference: d90gce22-8865-5509-c69c-3f2266dd101g
        amount: 15000
        currency: EUR
        description: Your order at My Web Shop.
        expiresAt: '2025-05-21T13:53:31Z'
        language: nl
        country: NL
        status: OPEN
        action:
          redirect:
            url: https://checkout.gateway.acceptance.cmpayments.nl/3ds/creditcard/v2/initialize/6a9c2e4f-8d1b-4c3e-a7f5-3b8d1e6a9c2f
        createdAt: '2025-05-20T13:53:36Z'
        returnUrl: https://tradename.tld/shop/return/?purchase=PO1234567
    successCardV2:
      summary: Successful transaction v2
      value:
        id: 4f7a8b2c-9e3d-4a1f-b6c5-8d2e3a7f9b1c
        orderId: 2e8a4f1b-7c3d-4b9e-a5f2-9d1c6b8e3a7f
        reference: c89fbd11-7754-4498-b58b-2e1155cc090f
        amount: 12500
        currency: EUR
        description: Your order at My Web Shop.
        expiresAt: '2025-05-21T13:53:31Z'
        language: nl
        country: NL
        status: SUCCESS
        action: null
        createdAt: '2025-05-20T13:53:36Z'
        returnUrl: https://tradename.tld/shop/return/?purchase=PO1234567
    openPayPal:
      summary: Open PayPal payment
      value:
        reference: b5910552-7344-4c9c-a0e8-3657d8bc1897
        amount: 89999
        description: Your order at My Web Shop.
        expiresAt: '2025-06-24T12:48:21Z'
        language: nl
        consumer:
          email: tes_1322578370_per@docdatapayments.com
          address:
            countryCode: NL
        returnUrl: https://tradename.tld/shop/return/?purchase=PO1234567
    examples-openPayPal:
      summary: Open PayPal payment
      value:
        id: da7c80bb-a09b-438d-87fa-dfdf27456286
        orderId: bdee1b20-6bca-4018-b4f9-d92cae8fe026
        reference: b5910552-7344-4c9c-a0e8-3657d8bc1897
        amount: 89999
        currency: EUR
        description: Your order at My Web Shop.
        expiresAt: '2025-06-24T12:48:21Z'
        language: nl
        country: NL
        status: OPEN
        action:
          redirect:
            url: https://www.sandbox.paypal.com/checkoutnow?token=4WU71039PV998573X
        createdAt: '2025-06-23T12:48:24Z'
        returnUrl: https://tradename.tld/shop/return/?purchase=PO1234567
    openPayPalV2:
      summary: Open PayPal payment
      value:
        reference: b5910552-7344-4c9c-a0e8-3657d8bc1897
        amount: 123
        currency: EUR
        description: Your order at My Web Shop.
        consumer:
          email: tes_2322578370_per@docdatapayments.com
          address:
            countryCode: NL
        items:
          - name: Kingston microSD 32GB
            description: Kingston microSD 32GB Class 10
            unitPrice: 123
            quantity: 1
        returnUrl: https://tradename.tld/shop/return/?purchase=PO1234567
    examples-openPayPalV2:
      summary: Open PayPal payment
      value:
        id: da7c80bb-a09b-438d-87fa-dfdf27456286
        reference: b5910552-7344-4c9c-a0e8-3657d8bc1897
        amount: 123
        currency: EUR
        description: Your order at My Web Shop.
        status: OPEN
        action:
          redirect:
            url: https://www.sandbox.paypal.com/checkoutnow?token=4WU71039PV998573X
        consumer:
          email: tes_2322578370_per@docdatapayments.com
          address:
            countryCode: NL
        items:
          - name: Kingston microSD 32GB
            description: Kingston microSD 32GB Class 10
            unitPrice: 123
            quantity: 1
        returnUrl: https://tradename.tld/shop/return/?purchase=PO1234567
        createdAt: '2025-06-23T12:48:24Z'
    standardAuthorization:
      summary: Standard transaction with webhook subscription
      value:
        orderNumber: '2106961751126491'
        reference: f372f69c-4ad9-4d22-9de1-dfd3faaa148c
        amount: 42400
        currency: EUR
        type: Invoice
        netAmount: 38000
        consumer:
          email: john.doe@email.tld
          dateOfBirth: '1996-12-01'
          name:
            firstName: John
            lastName: Doe
          phone: '+31695613259'
          billingAddress:
            street: Rustenburgerlaan
            houseNumber: '25'
            postalCode: 2012AL
            city: Haarlem
            countryCode: NL
          shopperIp: 1.1.1.1
        items:
          - description: Order at yourdomain.tld
            quantity: 2
            vatAmount: 200
            vatRate: 20
            code: SDC4/32GB-2ADP
            unitPrice: 1200
            netUnitPrice: 1000
            imageUrl: https://example.com/product-image.jpg
            productUrl: https://example.com/product-page
          - description: Order at yourdomain.tld
            quantity: 1
            vatAmount: 4000
            vatRate: 10
            code: ProLiteXC83494WQSN
            unitPrice: 40000
            netUnitPrice: 36000
            imageUrl: https://example.com/product-image.jpg
            productUrl: https://example.com/product-page
        webhooks:
          - url: https://yourdomain.tld/payment-webhooks?purchaseId=order123
            events:
              - STATUS_CHANGE
        returnUrl: https://yourdomain.tld/order/payment-success.html
    pendingAuthorization:
      summary: Pending Authorization
      value:
        reference: f372f69c-4ad9-4d22-9de1-dfd3faaa148c
        orderNumber: '2106961751126491'
        type: Invoice
        amount: 42400
        netAmount: 38000
        currency: EUR
        created: '2025-10-25T20:38:49Z'
        updated: '2025-10-25T20:38:49Z'
        consumer:
          name:
            firstName: John
            lastName: Doe
          email: john.doe@email.tld
          phone: '+31695613259'
          dateOfBirth: '1996-12-01'
          billingAddress:
            street: Rustenburgerlaan
            houseNumber: '25'
            postalCode: 2012AL
            city: Haarlem
            countryCode: NL
          shopperIp: 1.1.1.1
        items:
          - code: SDC4/32GB-2ADP
            description: Order at yourdomain.tld
            unitPrice: 1200
            netUnitPrice: 1000
            quantity: 2
            vatAmount: 200
            vatRate: 20
            imageUrl: https://example.com/product-image.jpg
            productUrl: https://example.com/product-page
          - code: ProLiteXC83494WQSN
            description: Order at yourdomain.tld
            unitPrice: 40000
            netUnitPrice: 36000
            quantity: 1
            vatAmount: 4000
            vatRate: 10
            imageUrl: https://example.com/product-image.jpg
            productUrl: https://example.com/product-page
        action:
          redirect:
            url: https://hosted-checkout.bnpl-pt.riverty.io/pay/nl/61f11964c5f740e48ebfafa0e2c8e8a4?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6IjIwMjUwNTMwMDg0NjI5In0.eyJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL3dzLzIwMDgvMDYvaWRlbnRpdHkvY2xhaW1zL3ZlcnNpb24iOiIxIiwic2hvcCI6IjAiLCJsYW5ndWFnZSI6Ik5MIiwid2ViU2l0ZSI6Imh0dHBzOi8vYXBpLmJucGwtcHQucml2ZXJ0eS5pby9hcGkvdjMvb3JkZXJzLy9ub3RpZnlTdGF0dXMiLCJleHAiOjE3NDkyMTYyNTcsImlzcyI6IlJpdmVydHkgVGVjaCBPw5wiLCJhdWQiOiJIb3N0ZWQgY2hlY2tvdXQgc2VydmljZSJ9.0IaO1Cx8MxjFEM553Asu3Wa6EjsA5rzqgErtyREJ_nQ
        id: e4b23c76-867f-4839-b7a4-358c3454d59f
        status: PENDING
        webhooks:
          - url: https://yourdomain.tld/payment-webhooks?purchaseId=order123
            events:
              - STATUS_CHANGE
        returnUrl: https://yourdomain.tld/order/payment-success.html
    successAuthorization:
      summary: Successful Authorization
      value:
        reference: 88e850be-118d-47ab-b183-1fb2eba48023
        orderNumber: '3874395132905155'
        type: Invoice
        amount: 2400
        netAmount: 2000
        currency: EUR
        created: '2025-10-25T20:38:49Z'
        updated: '2025-10-25T20:38:49Z'
        consumer:
          name:
            firstName: John
            lastName: Doe
          email: john.doe@email.tld
          phone: '+31695613259'
          dateOfBirth: '1996-12-01'
          billingAddress:
            street: Rustenburgerlaan
            houseNumber: '25'
            postalCode: 2012AL
            city: Haarlem
            countryCode: NL
          shopperIp: 1.1.1.1
        items:
          - code: SDC4/32GB-2ADP
            description: Order at yourdomain.tld
            unitPrice: 1200
            netUnitPrice: 1000
            quantity: 2
            vatAmount: 200
            vatRate: 20
            imageUrl: https://example.com/product-image.jpg
            productUrl: https://example.com/product-page
        action:
          redirect:
            url: https://hosted-checkout.bnpl-pt.riverty.io/pay/nl/431caf2c6b52435694a379e9d51fa623?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6IjIwMjUwNTMwMDg0NjI5In0.eyJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL3dzLzIwMDgvMDYvaWRlbnRpdHkvY2xhaW1zL3ZlcnNpb24iOiIxIiwic2hvcCI6IjAiLCJsYW5ndWFnZSI6Ik5MIiwid2ViU2l0ZSI6Imh0dHBzOi8vYXBpLmJucGwtcHQucml2ZXJ0eS5pby9hcGkvdjMvb3JkZXJzL2JhOTAyNjgwLTkyMDAtNDQzMi04YjcwLTFjMjdiYTdjMmZjNC9ub3RpZnlTdGF0dXMiLCJleHAiOjE3NDg4NzYyNTMsImlzcyI6IlJpdmVydHkgVGVjaCBPw5wiLCJhdWQiOiJIb3N0ZWQgY2hlY2tvdXQgc2VydmljZSJ9.UvUrlHumGlaT99otlrHlj4mWMhd_IPi0lu6HHcxL-YQ
        id: dd698725-6114-4d88-92c8-90b3e4ca7db0
        status: SUCCESS
        webhooks:
          - url: https://yourdomain.tld/payment-webhooks?purchaseId=order123
            events:
              - STATUS_CHANGE
        returnUrl: https://yourdomain.tld/order/return?orderID=order123
    fullCapture:
      summary: Full capture of a Riverty transaction
      value:
        amount: 2400
        netAmount: 2000
    partialCapture:
      summary: Partial capture of a Riverty transaction
      value:
        amount: 1200
        netAmount: 1000
        items:
          - code: SDC4/32GB-2ADP
            description: Order at yourdomain.tld
            unitPrice: 1200
            netUnitPrice: 1000
            quantity: 1
            vatAmount: 200
            vatRate: 20
            imageUrl: https://example.com/product-image.jpg
            productUrl: https://example.com/product-page
    examples-fullCapture:
      summary: Fully captured authorization
      value:
        id: 5b84c8e5-3c8d-45c4-8fe1-7f549c1972b3
        transactionId: 5b84c8e5-3c8d-45c4-8fe1-7f549c1972b3
        amount: 2400
        netAmount: 2000
        created: '2025-10-25T20:38:49Z'
        updated: '2025-10-25T20:38:49Z'
    examples-partialCapture:
      summary: Partially captured authorization
      value:
        id: 19ab319e-01d4-41d4-a6f1-3a41f29547ab
        transactionId: bee7b465-2152-45d7-8545-5354afe4ba59
        amount: 1200
        netAmount: 1000
        created: '2025-10-25T20:38:49Z'
        updated: '2025-10-25T20:38:49Z'
        items:
          - code: SDC4/32GB-2ADP
            description: Order at yourdomain.tld
            unitPrice: 1200
            netUnitPrice: 1000
            quantity: 1
            vatAmount: 200
            vatRate: 20
            imageUrl: https://example.com/product-image.jpg
            productUrl: https://example.com/product-page
    fullCancellation:
      summary: Full cancellation of a Riverty transaction
      value:
        amount: 2400
        netAmount: 2000
    partialCancellation:
      summary: Partial cancellation of a Riverty transaction
      value:
        amount: 1200
        netAmount: 1000
        items:
          - code: SDC4/32GB-2ADP
            description: Order at yourdomain.tld
            unitPrice: 1200
            netUnitPrice: 1000
            quantity: 1
            vatAmount: 200
            vatRate: 20
            imageUrl: https://example.com/product-image.jpg
            productUrl: https://example.com/product-page
    examples-fullCancellation:
      summary: Fully cancelled authorization
      value:
        id: fbd7e1c9-3039-4f79-a57b-bd1257e03c5f
        transactionId: 3fec0a41-6073-452f-b59c-8e7c7faf7b85
        amount: 42400
        netAmount: 38000
        created: '2025-10-25T20:38:49Z'
        updated: '2025-10-25T20:38:49Z'
    examples-partialCancellation:
      summary: Partially cancelled authorization
      value:
        id: fbd7e1c9-3039-4f79-a57b-bd1257e03c5f
        transactionId: 3fec0a41-6073-452f-b59c-8e7c7faf7b85
        amount: 1200
        netAmount: 1000
        created: '2025-10-25T20:38:49Z'
        updated: '2025-10-25T20:38:49Z'
        items:
          - code: SDC4/32GB-2ADP
            description: Order at yourdomain.tld
            unitPrice: 1200
            netUnitPrice: 1000
            quantity: 2
            vatAmount: 200
            vatRate: 20
            imageUrl: https://example.com/product-image.jpg
            productUrl: https://example.com/product-page
    fullRefundSingleCapture:
      summary: Full refund for single-capture transaction (captureId optional)
      value: {}
    fullRefundMultiCapture:
      summary: Full refund for multi-capture transaction (captureId required)
      value:
        captureId: bba62ce5-3d52-4409-aeba-1d21a7c2f784
    partialRefundSingleCapture:
      summary: Partial refund for single-capture transaction (captureId optional)
      value:
        items:
          - description: Order at yourdomain.tld
            quantity: 1
            vatAmount: 4000
            vatRate: 10
            code: ProLiteXC83494WQSN
            unitPrice: 40000
            netUnitPrice: 36000
            imageUrl: https://example.com/product-image.jpg
            productUrl: https://example.com/product-page
    partialRefundMultiCapture:
      summary: Partial refund for multi-capture transaction (captureId required)
      value:
        captureId: bba62ce5-3d52-4409-aeba-1d21a7c2f785
        items:
          - description: Order at yourdomain.tld
            quantity: 1
            vatAmount: 4000
            vatRate: 10
            code: ProLiteXC83494WQSN
            unitPrice: 40000
            netUnitPrice: 36000
            imageUrl: https://example.com/product-image.jpg
            productUrl: https://example.com/product-page
    refund:
      summary: Fully refunded capture
      value:
        id: 76840859-3388-4573-beb6-ed02e10a2679
        transactionId: cb3ae4bb-1085-4c34-9e48-ecb1a31aaef3
        captureId: 385720a9-4118-481b-b431-a4797496c8a9
        status: SUCCESS
        created: '2025-10-19T20:38:49Z'
        updated: '2025-10-19T20:38:49Z'
    partialRefund:
      summary: Partially refunded capture
      value:
        id: 6fa3a570-cb95-484d-83da-d2c7144225a2
        transactionId: 180cad56-0da1-4ee8-ac49-c44d36286f84
        captureId: bba62ce5-3d52-4409-aeba-1d21a7c2f785
        status: SUCCESS
        created: '2025-10-19T20:38:49Z'
        updated: '2025-10-19T20:38:49Z'
        items:
          - code: ProLiteXC83494WQSN
            description: Order at yourdomain.tld
            unitPrice: 40000
            netUnitPrice: 36000
            quantity: 1
            vatAmount: 4000
            vatRate: 10
            imageUrl: https://example.com/product-image.jpg
            productUrl: https://example.com/product-page
    standardCheckout:
      summary: Standard checkout
      value:
        reference: '20210623130413'
        amount: 1200
        merchantOrderReference: order123
        description: Order at yourdomain.tld
        expiresAt: '2026-01-02T15:04:05Z'
        returnUrl: https://yourdomain.tld/order/payment-result.html
        maxRetries: 10
    checkoutSinglePaymentmethod:
      summary: Checkout for dedicated payment method
      value:
        reference: '20210623130413'
        amount: 1200
        merchantOrderReference: order123
        description: Order at yourdomain.tld
        expiresAt: '2026-01-02T15:04:05Z'
        language: nl
        returnUrl: https://yourdomain.tld/order/payment-result.html
        consumer:
          email: john.doe@email.tld
          address:
            countryCode: NL
        maxRetries: 10
        paymentMethods:
          - creditcard
    standardCheckoutWithWebhook:
      summary: Standard checkout with webhook
      value:
        reference: '20210623130413'
        amount: 1200
        maxRetries: 10
        merchantOrderReference: order123
        description: Order at yourdomain.tld
        expiresAt: '2026-01-02T15:04:05Z'
        returnUrl: https://yourdomain.tld/order/payment-result.html
        webhooks:
          - url: https://yourdomain.tld/order-webhooks?purchaseId=order123
            events:
              - STATUS_CHANGE
              - REFUND_STATUS
    klarnaCheckout:
      summary: Checkout with Klarna enabled
      value:
        reference: '20210623130413'
        amount: 1200
        merchantOrderReference: order123
        description: Order at yourdomain.tld
        expiresAt: '2026-01-02T15:04:05Z'
        language: nl
        returnUrl: https://yourdomain.tld/order/payment-result.html
        paymentMethods:
          - klarna
        orderItems:
          - vatRate: 20
            vatAmount: 100
            quantity: 2
            unitPrice: 600
            code: SDC4/32GB-2ADP
        maxRetries: 10
        consumer:
          gender: m
          address:
            street: Rustenburglaan
            houseNumber: '25'
            postalCode: 2012AL
            city: Haarlem
            countryCode: NL
            state: Noord-Holland
          givenName: John
          familyName: Doe
          email: john.doe@gmail.com
          phone: '+31685478569'
    examples-standardCheckout:
      summary: Standard checkout
      value:
        id: 1da50859-59ad-4d7d-a6ac-8554a2f981bc
        reference: '20210623130413'
        amount: 1200
        currency: EUR
        merchantOrderReference: order123
        description: Order at yourdomain.tld
        paymentMethods:
          - bancontact
          - creditcard
          - ideal
          - riverty
        expiresAt: '2026-01-02T15:04:05Z'
        status: OPEN
        action: null
        redirect:
          url: https://checkout.gateway.acceptance.cmpayments.nl/?hostedCheckoutId=1da50859-59ad-4d7d-a6ac-8554a2f981bc
        createdAt: '2025-09-23T11:14:22Z'
        returnUrl: https://yourdomain.tld/order/payment-result.html
        maxRetries: 255
    examples-standardCheckoutWithWebhook:
      summary: Standard checkout with webhook
      value:
        id: 8d9a51a4-9ac6-4c03-ab60-c2cc4276f4e1
        reference: 20210623130413
        amount: 1200
        currency: EUR
        merchantOrderReference: order123
        description: Order at yourdomain.tld
        paymentMethods:
          - bancontact
          - creditcard
          - ideal
          - riverty
        expiresAt: '2026-01-02T15:04:05Z'
        webhooks:
          - url: https://yourdomain.tld/order-webhooks?purchaseId=order123
            events:
              - STATUS_CHANGE
          - url: https://yourdomain.tld/order-webhooks?purchaseId=order123
            events:
              - REFUND_STATUS
        status: OPEN
        action: null
        redirect:
          url: https://checkout.gateway.acceptance.cmpayments.nl/?hostedCheckoutId=8d9a51a4-9ac6-4c03-ab60-c2cc4276f4e1
        createdAt: '2025-09-23T11:15:01Z'
        returnUrl: https://yourdomain.tld/order/payment-result.html
        maxRetries: 255
    examples-klarnaCheckout:
      summary: Checkout with Klarna enabled
      value:
        id: 2a55928c-4b9b-4b1f-88ae-94bd9470b815
        reference: '20210623130413'
        amount: 1200
        currency: EUR
        consumer:
          givenName: John
          familyName: Doe
          email: john.doe@gmail.com
          gender: m
          phone: 31685478569
          address:
            street: Rustenburglaan
            houseNumber: 25
            postalCode: 2012AL
            city: Haarlem
            countryCode: NL
            state: Noord-Holland
        merchantOrderReference: 6
        description: Order at yourdomain.tld
        paymentMethods:
          - klarna
        orderItems:
          - code: SDC4/32GB-2ADP
            unitPrice: 600
            quantity: 2
            vatAmount: 100
            vatRate: 20
        expiresAt: '2026-01-02T15:04:05Z'
        language: nl
        status: OPEN
        action: null
        redirect:
          url: https://checkout.gateway.acceptance.cmpayments.nl/?hostedCheckoutId=2a55928c-4b9b-4b1f-88ae-94bd9470b815
        createdAt: '2025-09-23T11:18:05Z'
        returnUrl: https://yourdomain.tld/order/payment-result.html
        maxRetries: 255
    standardCheckoutMultipleAttempts:
      summary: Standard checkout with multiple payment attempts
      value:
        id: 45be7c8b-e654-4d96-9d23-64d5d66ddfa9
        reference: '20210623130413'
        amount: 1200
        currency: EUR
        consumer:
          email: john.doe@cm.com
          address:
            countryCode: NL
        merchantOrderReference: protocol
        description: Order at yourdomain.tld
        paymentMethods:
          - bancontact
          - creditcard
          - ideal
          - riverty
        expiresAt: '2026-01-02T15:04:05Z'
        status: SUCCESS
        action: null
        createdAt: '2025-09-23T12:25:35Z'
        returnUrl: https://yourdomain.tld/order/payment-result.html
        maxRetries: 255
        payments:
          - id: 2c900dc9-5956-4315-8277-2183d79279f2
            type: ideal
            status: SUCCESS
            createdAt: '2025-09-23T12:30:31Z'
          - id: 92f99bed-07ff-49b6-992c-df6789c5e106
            type: ideal
            status: FAILURE
            createdAt: '2025-09-23T12:25:48Z'
          - id: da4a6322-8c0c-4c1b-b603-a3c183231247
            type: creditcard
            status: CANCELLED
            createdAt: '2025-09-23T12:26:12Z'
    klarnaSuccessCheckout:
      summary: Klarna checkout with success status
      value:
        id: 2a55928c-4b9b-4b1f-88ae-94bd9470b815
        reference: 20210623130413
        amount: 1200
        currency: EUR
        consumer:
          givenName: John
          familyName: Doe
          email: john.doe@gmail.com
          gender: m
          phone: 31685478569
          address:
            street: Rustenburglaan
            houseNumber: 25
            postalCode: 2012AL
            city: Haarlem
            countryCode: NL
            state: Noord-Holland
        merchantOrderReference: 6
        description: Order at yourdomain.tld
        paymentMethods:
          - klarna
        orderItems:
          - code: SDC4/32GB-2ADP
            unitPrice: 600
            quantity: 2
            vatAmount: 100
            vatRate: 20
        expiresAt: '2026-01-02T15:04:05Z'
        language: nl
        status: SUCCESS
        action: null
        createdAt: '2025-09-23T11:18:05Z'
        returnUrl: https://yourdomain.tld/order/payment-result.html
        maxRetries: 255
        payments:
          - id: 193ef231-15c9-4b2e-baf5-b898a4abe574
            type: klarna
            status: SUCCESS
            createdAt: '2025-09-23T11:29:33Z'
    refundCheckout:
      summary: Checkout with a refund
      value:
        id: 36a798e5-c2f5-48f2-bf68-2f58870d7c82
        reference: '20210623130413'
        amount: 1200
        currency: EUR
        merchantOrderReference: bandwidth
        description: Order at yourdomain.tld
        paymentMethods:
          - bancontact
          - creditcard
          - ideal
          - riverty
        expiresAt: '2026-01-02T15:04:05Z'
        status: SUCCESS
        action: null
        createdAt: '2025-09-23T11:52:33Z'
        returnUrl: https://yourdomain.tld/order/payment-result.html
        maxRetries: 255
        payments:
          - id: d821d51f-47ab-4ae6-b18e-dd75b3f2b356
            type: ideal
            status: SUCCESS
            createdAt: '2025-09-23T11:52:42Z'
        refunds:
          refundedAmount: 1200
          refundedPendingAmount: 0
  parameters:
    TransactionId:
      name: transactionId
      description: ID received in the POST transaction response root object, which can be used in up following calls like refunds or cancellations as transactionId.
      in: path
      required: true
      schema:
        $ref: '#/components/schemas/TransactionId'
    PaymentId:
      description: ID received in the POST transaction response root object, which can be used in up following calls like refunds as paymentId.
      name: paymentId
      in: path
      required: true
      schema:
        $ref: '#/components/schemas/Uuid'
    SessionId:
      name: sessionId
      description: ID received in the initialize session response, used to reference the session in subsequent calls.
      in: path
      required: true
      schema:
        $ref: '#/components/schemas/Uuid'
    IdealPayFastUserToken:
      name: userToken
      description: iDEAL Pay Fast User Token as generated by iDEAL, which is received in the response of a Create iDEAL Transaction when the field `"requestUserToken"` is set to `true`.
      in: path
      required: true
      schema:
        $ref: '#/components/schemas/IdealPayFastUserToken'
