openapi: 3.1.0
info:
  title: Public API
  version: '2.76'
tags:
- name: Auth
  description: Authentication and authorization.
- name: Payments
  description: Common methods that can be used for payins, top-ups and payouts.
- name: Settlements
  description: Common methods that can be used for settlements.
- name: Incoming payments
  description: Incoming payment (payin) is an operation where money is sent from the
    customer account to the merchant account.
- name: Outgoing payments
  description: Outgoing payment (payout) is an operation where money is sent from
    the merchant account to another account.
- name: Accounts
  description: Accounts.
- name: Merchant info
  description: Merchant information.
- name: Rate lists
  description: Forex rate lists.
- name: Customers
  description: Merchant customers.
servers:
- url: https://api.sandbox.aopay.io/
  description: Sandbox server (uses test data)
- url: https://api.aopay.io/
  description: Live server (uses live data)
paths:
  /payins/!availablePaymentOptions:
    post:
      tags:
      - Incoming payments
      summary: Available payment options.
      description: |-
        Usually the first step when creating a new payment.

        Returns payment methods and payment operators available for the requested amount, currency and (optionally) the customer segment.

        The API documentation describes currently supported list of `paymentMethodCode`.
        Be aware that to return more items than described is classified as a backward-compatible change.
        The list of supported payment methods will grow in the future.
        New payment method is returned only when you have the method configured in your account.

        A complete payment flow description can be found in [Accept Incoming Payment](payin.html) section of our documentation.
      operationId: payinAvailablePaymentOptions
      parameters:
      - name: X-API-Version
        in: header
        description: Required API version. See [Versioning](general.html#versioning)
        required: true
        schema:
          type: integer
          format: int32
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PaymentRequested'
        required: true
      responses:
        '200':
          description: |-
            The list of possible payment options.
            The list always contains at least one payment option.
            If no available payment options are found, an HTTP 406 response is returned with the error code.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AvailablePayinOptionList'
        '400':
          description: |-
            An error has been encountered while validating the input parameters.
            The request is not valid according to this OAS document.

            Some possible mistakes are:

             * wrong data type
             * required field is missing or empty
             * wrong value for field defined by enum
             * maximum length or other constraint violation

            See also [400 Bad Request](responseCodes.html#term-400-Bad-Request).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicError'
        '401':
          description: |-
            Request was not authenticated. Missing or wrong "authorization" token header.
            See [401 Unauthorized](responseCodes.html#term-401-Unauthorized).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicError'
        '403':
          description: |-
            Request was not authorized. Used "authorization" token header does not have permission to process the request.
            See [Fine-grained privileges](general.html#fine-grained-privileges) description or general [403 Forbidden](responseCodes.html#term-403-Forbidden) info.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicError'
        '406':
          description: Input does not meet business validations. See [406 Not Acceptable](responseCodes.html#term-406-Not-Acceptable)
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PostAvailablePayinOptionsError'
        '429':
          description: Too many requests. See [429 Too Many Requests](responseCodes.html#term-429-Too-Many-Requests).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicError'
      security:
      - httpAuth: []
  /payouts/!availablePaymentOptions:
    post:
      tags:
      - Outgoing payments
      summary: Available payment options.
      description: |-
        Usually the first step when creating a new payment.

        Returns payment methods and payment operators available for the requested amount, currency and (optionally) the customer segment.

        The API documentation describes currently supported list of `paymentMethodCode`.
        Be aware that to return more items than described is classified as a backward-compatible change.
        The list of supported payment methods will grow in the future.
        New payment method is returned only when you have the method configured in your account.

        A complete payment flow description can be found in [Accept Outgoing Payment](payout.html) section of our documentation.
      operationId: payoutAvailablePaymentOptions
      parameters:
      - name: X-API-Version
        in: header
        description: Required API version. See [Versioning](general.html#versioning)
        required: true
        schema:
          type: integer
          format: int32
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PaymentRequested'
        required: true
      responses:
        '200':
          description: |-
            The list of possible payment options.
            The list always contains at least one payment option.
            If no available payment options are found, an HTTP 406 response is returned with the error code.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AvailablePayoutOptionList'
        '400':
          description: |-
            An error has been encountered while validating the input parameters.
            The request is not valid according to this OAS document.

            Some possible mistakes are:

             * wrong data type
             * required field is missing or empty
             * wrong value for field defined by enum
             * maximum length or other constraint violation

            See also [400 Bad Request](responseCodes.html#term-400-Bad-Request).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicError'
        '401':
          description: |-
            Request was not authenticated. Missing or wrong "authorization" token header.
            See [401 Unauthorized](responseCodes.html#term-401-Unauthorized).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicError'
        '403':
          description: |-
            Request was not authorized. Used "authorization" token header does not have permission to process the request.
            See [Fine-grained privileges](general.html#fine-grained-privileges) description or general [403 Forbidden](responseCodes.html#term-403-Forbidden) info.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicError'
        '406':
          description: Input does not meet business validations. See [406 Not Acceptable](responseCodes.html#term-406-Not-Acceptable)
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PostAvailablePayoutOptionsError'
        '429':
          description: Too many requests. See [429 Too Many Requests](responseCodes.html#term-429-Too-Many-Requests).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicError'
      security:
      - httpAuth: []
  /payins/{idPayin}:
    get:
      tags:
      - Incoming payments
      summary: Incoming payment detail.
      description: Payment details including payment status and all collected data.
      operationId: getPayin
      parameters:
      - name: X-API-Version
        in: header
        description: Required API version. See [Versioning](general.html#versioning)
        required: true
        schema:
          type: integer
          format: int32
      - name: idPayin
        in: path
        description: Unique Merchant Order ID provided by merchant. See [Request IDs](general.html#request-ids).
        required: true
        schema:
          $ref: '#/components/schemas/IdPayin'
      responses:
        '200':
          description: Detail of incoming payment.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PayinDetail'
        '400':
          description: |-
            An error has been encountered while validating the input parameters.
            The request is not valid according to this OAS document.

            Some possible mistakes are:

             * wrong data type
             * required field is missing or empty
             * wrong value for field defined by enum
             * maximum length or other constraint violation

            See also [400 Bad Request](responseCodes.html#term-400-Bad-Request).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicError'
        '401':
          description: |-
            Request was not authenticated. Missing or wrong "authorization" token header.
            See [401 Unauthorized](responseCodes.html#term-401-Unauthorized).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicError'
        '403':
          description: |-
            Request was not authorized. Used "authorization" token header does not have permission to process the request.
            See [Fine-grained privileges](general.html#fine-grained-privileges) description or general [403 Forbidden](responseCodes.html#term-403-Forbidden) info.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicError'
        '406':
          description: Input does not meet business validations. See [406 Not Acceptable](responseCodes.html#term-406-Not-Acceptable)
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/GetPayinError'
        '410':
          description: Entity not found. See [410 Gone](responseCodes.html#term-410-Gone).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicError'
        '429':
          description: Too many requests. See [429 Too Many Requests](responseCodes.html#term-429-Too-Many-Requests).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicError'
        '500':
          description: Server error. See [5XX Internal Server Error](responseCodes.html#term-5XX-Internal-Server-Error)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicError'
      security:
      - httpAuth: []
    post:
      tags:
      - Incoming payments
      summary: Create payment.
      description: |-
        Create a new payment request (incoming payment - merchant will get money from other account).

        For getting list of the available payment options use [`POST /payins/!availablePaymentOptions`](#operations-Incoming_payments-availablePaymentOptions) API.
        A complete payment flow description can be found in [Accept Payment](payorder.html) section.
      operationId: createPayin
      parameters:
      - name: X-API-Version
        in: header
        description: Required API version. See [Versioning](general.html#versioning)
        required: true
        schema:
          type: integer
          format: int32
      - name: idPayin
        in: path
        description: Unique Merchant Order ID provided by merchant. See [Request IDs](general.html#request-ids).
        required: true
        schema:
          $ref: '#/components/schemas/IdPayin'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Payin'
        required: true
      responses:
        '201':
          description: The payment has been accepted for processing.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PayinAcceptedResponse'
        '400':
          description: |-
            An error has been encountered while validating the input parameters.
            The request is not valid according to this OAS document.

            Some possible mistakes are:

             * wrong data type
             * required field is missing or empty
             * wrong value for field defined by enum
             * maximum length or other constraint violation

            See also [400 Bad Request](responseCodes.html#term-400-Bad-Request).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicError'
        '401':
          description: |-
            Request was not authenticated. Missing or wrong "authorization" token header.
            See [401 Unauthorized](responseCodes.html#term-401-Unauthorized).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicError'
        '403':
          description: |-
            Request was not authorized. Used "authorization" token header does not have permission to process the request.
            See [Fine-grained privileges](general.html#fine-grained-privileges) description or general [403 Forbidden](responseCodes.html#term-403-Forbidden) info.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicError'
        '406':
          description: Input does not meet business validations. See [406 Not Acceptable](responseCodes.html#term-406-Not-Acceptable)
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PostPayinsError'
        '409':
          description: |-
            The provided entity is duplicated. The request has not been accepted.
            For more info about request IDs concepts see our [Request IDs](general.html#request-ids) section of our documentation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicError'
        '429':
          description: Too many requests. See [429 Too Many Requests](responseCodes.html#term-429-Too-Many-Requests).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicError'
        '500':
          description: Server error. See [5XX Internal Server Error](responseCodes.html#term-5XX-Internal-Server-Error)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicError'
      security:
      - httpAuth: []
      callbacks:
        statusChange:
          '{$request.body#/callbackUrl}':
            post:
              description: |
                Status of the given payment has changed.
                Use `GET /payins/{idPayin}` endpoint to obtain the detail information about the payment and its status.
              operationId: createPayin_statusChange
              requestBody:
                required: true
                content:
                  application/json:
                    schema:
                      type: object
                      properties:
                        idEntity:
                          description: Unique payment id provided by merchant.
                          example: ddd013a5d146
                          type: string
                          minLength: 1
                          maxLength: 250
                          pattern: ^[A-Za-z0-9_-]+$
                      required:
                      - idEntity
              responses:
                '200':
                  description: Expected merchant server response code. In case of
                    other response code, the callback will be repeated 4 times with
                    2 minutes interval.
  /payouts/{idPayout}:
    get:
      tags:
      - Outgoing payments
      summary: Outgoing payment detail.
      description: Payment details including payment status and all collected data.
      operationId: getPayout
      parameters:
      - name: X-API-Version
        in: header
        description: Required API version. See [Versioning](general.html#versioning)
        required: true
        schema:
          type: integer
          format: int32
      - name: idPayout
        in: path
        description: Unique Merchant Order ID provided by merchant. See [Request IDs](general.html#request-ids).
        required: true
        schema:
          $ref: '#/components/schemas/IdPayout'
      responses:
        '200':
          description: Detail of outgoing payment.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PayoutDetail'
        '400':
          description: |-
            An error has been encountered while validating the input parameters.
            The request is not valid according to this OAS document.

            Some possible mistakes are:

             * wrong data type
             * required field is missing or empty
             * wrong value for field defined by enum
             * maximum length or other constraint violation

            See also [400 Bad Request](responseCodes.html#term-400-Bad-Request).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicError'
        '401':
          description: |-
            Request was not authenticated. Missing or wrong "authorization" token header.
            See [401 Unauthorized](responseCodes.html#term-401-Unauthorized).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicError'
        '403':
          description: |-
            Request was not authorized. Used "authorization" token header does not have permission to process the request.
            See [Fine-grained privileges](general.html#fine-grained-privileges) description or general [403 Forbidden](responseCodes.html#term-403-Forbidden) info.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicError'
        '406':
          description: Input does not meet business validations. See [406 Not Acceptable](responseCodes.html#term-406-Not-Acceptable)
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/GetPayoutError'
        '410':
          description: Entity not found. See [410 Gone](responseCodes.html#term-410-Gone).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicError'
        '429':
          description: Too many requests. See [429 Too Many Requests](responseCodes.html#term-429-Too-Many-Requests).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicError'
        '500':
          description: Server error. See [5XX Internal Server Error](responseCodes.html#term-5XX-Internal-Server-Error)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicError'
      security:
      - httpAuth: []
    post:
      tags:
      - Outgoing payments
      summary: Create outgoing payment.
      description: |-
        Create a new outgoing payment request (merchant send money to other account).

        A complete payment flow description can be found in [Outgoing Payment](payout.html) section.
      operationId: createPayout
      parameters:
      - name: X-API-Version
        in: header
        description: Required API version. See [Versioning](general.html#versioning)
        required: true
        schema:
          type: integer
          format: int32
      - name: idPayout
        in: path
        description: Unique Merchant Order ID provided by merchant. See [Request IDs](general.html#request-ids).
        required: true
        schema:
          $ref: '#/components/schemas/IdPayout'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Payout'
        required: true
      responses:
        '201':
          description: The outgoing payment has been accepted for processing.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PayoutAccepted'
        '400':
          description: |-
            An error has been encountered while validating the input parameters.
            The request is not valid according to this OAS document.

            Some possible mistakes are:

             * wrong data type
             * required field is missing or empty
             * wrong value for field defined by enum
             * maximum length or other constraint violation

            See also [400 Bad Request](responseCodes.html#term-400-Bad-Request).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicError'
        '401':
          description: |-
            Request was not authenticated. Missing or wrong "authorization" token header.
            See [401 Unauthorized](responseCodes.html#term-401-Unauthorized).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicError'
        '403':
          description: |-
            Request was not authorized. Used "authorization" token header does not have permission to process the request.
            See [Fine-grained privileges](general.html#fine-grained-privileges) description or general [403 Forbidden](responseCodes.html#term-403-Forbidden) info.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicError'
        '406':
          description: Input does not meet business validations. See [406 Not Acceptable](responseCodes.html#term-406-Not-Acceptable)
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PostPayoutsError'
        '409':
          description: |-
            The provided entity is duplicated. The request has not been accepted.
            For more info about request IDs concepts see our [Request IDs](general.html#request-ids) section of our documentation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicError'
        '429':
          description: Too many requests. See [429 Too Many Requests](responseCodes.html#term-429-Too-Many-Requests).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicError'
        '500':
          description: Server error. See [5XX Internal Server Error](responseCodes.html#term-5XX-Internal-Server-Error)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicError'
      security:
      - httpAuth: []
      callbacks:
        statusChange:
          '{$request.body#/callbackUrl}':
            post:
              description: |
                Status of the given outgoing payment has changed.
                Use `GET /payouts/{idPayout}` endpoint to obtain the detail information about the outgoing payment status.
              operationId: createPayout_statusChange
              requestBody:
                required: true
                content:
                  application/json:
                    schema:
                      type: object
                      properties:
                        idEntity:
                          description: Unique payment id provided by merchant.
                          example: ddd013a5d146
                          type: string
                          minLength: 1
                          maxLength: 250
                          pattern: ^[A-Za-z0-9_-]+$
                      required:
                      - idEntity
              responses:
                '200':
                  description: Expected merchant server response code. In case of
                    other response code, the callback will be repeated 4 times with
                    2 minutes interval.
  /topups/!availablePaymentOptions:
    post:
      tags:
      - Incoming payments
      summary: Available top up payment options.
      description: |-
        Usually the first step when creating a new payment.

        Returns payment methods and payment operators available for the requested amount, currency and (optionally) the customer segment.

        The API documentation describes currently supported list of `paymentMethodCode`.
        Be aware that to return more items than described is classified as a backward-compatible change.
        The list of supported payment methods will grow in the future.
        New payment method is returned only when you have the method configured in your account.

        A complete payment flow description can be found in [Accept Incoming Payment](payin.html) section of our documentation.
      operationId: topupAvailablePaymentOptions
      parameters:
      - name: X-API-Version
        in: header
        description: Required API version. See [Versioning](general.html#versioning)
        required: true
        schema:
          type: integer
          format: int32
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TopUpRequested'
        required: true
      responses:
        '200':
          description: |-
            The list of possible top up payment options.
            The list always contains at least one top up option.
            If no available payment options are found, an HTTP 406 response is returned with the error code.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AvailableTopUpOptions'
        '400':
          description: |-
            An error has been encountered while validating the input parameters.
            The request is not valid according to this OAS document.

            Some possible mistakes are:

             * wrong data type
             * required field is missing or empty
             * wrong value for field defined by enum
             * maximum length or other constraint violation

            See also [400 Bad Request](responseCodes.html#term-400-Bad-Request).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicError'
        '401':
          description: |-
            Request was not authenticated. Missing or wrong "authorization" token header.
            See [401 Unauthorized](responseCodes.html#term-401-Unauthorized).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicError'
        '403':
          description: |-
            Request was not authorized. Used "authorization" token header does not have permission to process the request.
            See [Fine-grained privileges](general.html#fine-grained-privileges) description or general [403 Forbidden](responseCodes.html#term-403-Forbidden) info.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicError'
        '406':
          description: Input does not meet business validations. See [406 Not Acceptable](responseCodes.html#term-406-Not-Acceptable)
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PostAvailableTopUpOptionsError'
        '429':
          description: Too many requests. See [429 Too Many Requests](responseCodes.html#term-429-Too-Many-Requests).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicError'
      security:
      - httpAuth: []
  /topups/{idTopUp}:
    get:
      tags:
      - Incoming payments
      summary: Top up payment detail.
      description: Payment details including payment status and all collected data.
      operationId: getTopup
      parameters:
      - name: X-API-Version
        in: header
        description: Required API version. See [Versioning](general.html#versioning)
        required: true
        schema:
          type: integer
          format: int32
      - name: idTopUp
        in: path
        description: Unique Merchant Order ID provided by merchant. See [Request IDs](general.html#request-ids).
        required: true
        schema:
          $ref: '#/components/schemas/IdPayin'
      responses:
        '200':
          description: Detail of topup payment.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TopUpDetail'
        '400':
          description: |-
            An error has been encountered while validating the input parameters.
            The request is not valid according to this OAS document.

            Some possible mistakes are:

             * wrong data type
             * required field is missing or empty
             * wrong value for field defined by enum
             * maximum length or other constraint violation

            See also [400 Bad Request](responseCodes.html#term-400-Bad-Request).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicError'
        '401':
          description: |-
            Request was not authenticated. Missing or wrong "authorization" token header.
            See [401 Unauthorized](responseCodes.html#term-401-Unauthorized).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicError'
        '403':
          description: |-
            Request was not authorized. Used "authorization" token header does not have permission to process the request.
            See [Fine-grained privileges](general.html#fine-grained-privileges) description or general [403 Forbidden](responseCodes.html#term-403-Forbidden) info.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicError'
        '406':
          description: Input does not meet business validations. See [406 Not Acceptable](responseCodes.html#term-406-Not-Acceptable)
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/GetTopupError'
        '410':
          description: Entity not found. See [410 Gone](responseCodes.html#term-410-Gone).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicError'
        '429':
          description: Too many requests. See [429 Too Many Requests](responseCodes.html#term-429-Too-Many-Requests).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicError'
        '500':
          description: Server error. See [5XX Internal Server Error](responseCodes.html#term-5XX-Internal-Server-Error)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicError'
      security:
      - httpAuth: []
    post:
      tags:
      - Incoming payments
      summary: Create a top-up payment.
      description: |-
        Create a new top-up payment request (incoming payment - wallet will get money from other account).

        For getting list of the available payment options use [`POST /payins/!availablePaymentOptions`](#operations-Incoming_payments-availablePaymentOptions) API.
        A complete payment flow description can be found in [Accept Payment](payorder.html) section.
      operationId: createTopup
      parameters:
      - name: X-API-Version
        in: header
        description: Required API version. See [Versioning](general.html#versioning)
        required: true
        schema:
          type: integer
          format: int32
      - name: idTopUp
        in: path
        description: Unique Merchant Order ID provided by merchant. See [Request IDs](general.html#request-ids).
        required: true
        schema:
          $ref: '#/components/schemas/IdTopUp'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TopUp'
        required: true
      responses:
        '201':
          description: The payment has been accepted for processing.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TopUpAcceptedResponse'
        '400':
          description: |-
            An error has been encountered while validating the input parameters.
            The request is not valid according to this OAS document.

            Some possible mistakes are:

             * wrong data type
             * required field is missing or empty
             * wrong value for field defined by enum
             * maximum length or other constraint violation

            See also [400 Bad Request](responseCodes.html#term-400-Bad-Request).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicError'
        '401':
          description: |-
            Request was not authenticated. Missing or wrong "authorization" token header.
            See [401 Unauthorized](responseCodes.html#term-401-Unauthorized).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicError'
        '403':
          description: |-
            Request was not authorized. Used "authorization" token header does not have permission to process the request.
            See [Fine-grained privileges](general.html#fine-grained-privileges) description or general [403 Forbidden](responseCodes.html#term-403-Forbidden) info.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicError'
        '406':
          description: Input does not meet business validations. See [406 Not Acceptable](responseCodes.html#term-406-Not-Acceptable)
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PostPayinsError'
        '409':
          description: |-
            The provided entity is duplicated. The request has not been accepted.
            For more info about request IDs concepts see our [Request IDs](general.html#request-ids) section of our documentation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicError'
        '429':
          description: Too many requests. See [429 Too Many Requests](responseCodes.html#term-429-Too-Many-Requests).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicError'
        '500':
          description: Server error. See [5XX Internal Server Error](responseCodes.html#term-5XX-Internal-Server-Error)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicError'
      security:
      - httpAuth: []
  /payins/{idPayin}/!setExternalReference:
    post:
      tags:
      - Incoming payments
      summary: Set external reference for the payment.
      description: |-
        Set external reference for the payment. Usually offline payments methods require additional payment reference as last step of payment process, these references are provided manully by the customer when payment is completed.
        See list of our [supported payment methods](payin-methods.html) to check which of them require to set the external payment reference.
      operationId: payin_setExternalReference
      parameters:
      - name: X-API-Version
        in: header
        description: Required API version. See [Versioning](general.html#versioning)
        required: true
        schema:
          type: integer
          format: int32
      - name: idPayin
        in: path
        description: Unique Merchant Order ID provided by merchant. See [Request IDs](general.html#request-ids).
        required: true
        schema:
          $ref: '#/components/schemas/IdPayin'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ExternalReference'
        required: true
      responses:
        '204':
          description: External reference has been set.
        '400':
          description: |-
            An error has been encountered while validating the input parameters.
            The request is not valid according to this OAS document.

            Some possible mistakes are:

             * wrong data type
             * required field is missing or empty
             * wrong value for field defined by enum
             * maximum length or other constraint violation

            See also [400 Bad Request](responseCodes.html#term-400-Bad-Request).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicError'
        '401':
          description: |-
            Request was not authenticated. Missing or wrong "authorization" token header.
            See [401 Unauthorized](responseCodes.html#term-401-Unauthorized).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicError'
        '403':
          description: |-
            Request was not authorized. Used "authorization" token header does not have permission to process the request.
            See [Fine-grained privileges](general.html#fine-grained-privileges) description or general [403 Forbidden](responseCodes.html#term-403-Forbidden) info.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicError'
        '410':
          description: Entity not found. See [410 Gone](responseCodes.html#term-410-Gone).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicError'
        '429':
          description: Too many requests. See [429 Too Many Requests](responseCodes.html#term-429-Too-Many-Requests).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicError'
        '500':
          description: Server error. See [5XX Internal Server Error](responseCodes.html#term-5XX-Internal-Server-Error)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicError'
      security:
      - httpAuth: []
  /balances:
    get:
      tags:
      - Accounts
      summary: Account balance.
      description: |-
        Account balances for all selected currencies.
        If no currency is selected, all available are returned.
        If account in selected currency is not available, currency is ignored and no balance is returned.
      operationId: getBalances
      parameters:
      - name: X-API-Version
        in: header
        description: Required API version. See [Versioning](general.html#versioning)
        required: true
        schema:
          type: integer
          format: int32
      - name: currencyCodes
        in: query
        required: false
        schema:
          $ref: '#/components/schemas/CommaSeparatedCurrencyCodes'
      responses:
        '200':
          description: Account balances for all selected currencies.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BalanceList'
        '400':
          description: |-
            An error has been encountered while validating the input parameters.
            The request is not valid according to this OAS document.

            Some possible mistakes are:

             * wrong data type
             * required field is missing or empty
             * wrong value for field defined by enum
             * maximum length or other constraint violation

            See also [400 Bad Request](responseCodes.html#term-400-Bad-Request).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicError'
        '401':
          description: |-
            Request was not authenticated. Missing or wrong "authorization" token header.
            See [401 Unauthorized](responseCodes.html#term-401-Unauthorized).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicError'
        '403':
          description: |-
            Request was not authorized. Used "authorization" token header does not have permission to process the request.
            See [Fine-grained privileges](general.html#fine-grained-privileges) description or general [403 Forbidden](responseCodes.html#term-403-Forbidden) info.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicError'
        '406':
          description: Input does not meet business validations. See [406 Not Acceptable](responseCodes.html#term-406-Not-Acceptable)
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/GetPayoutError'
        '410':
          description: Entity not found. See [410 Gone](responseCodes.html#term-410-Gone).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicError'
        '429':
          description: Too many requests. See [429 Too Many Requests](responseCodes.html#term-429-Too-Many-Requests).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicError'
        '500':
          description: Server error. See [5XX Internal Server Error](responseCodes.html#term-5XX-Internal-Server-Error)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicError'
      security:
      - httpAuth: []
  /payins/{idPayin}/accounts:
    get:
      tags:
      - Incoming payments
      summary: Incoming payment accounts details.
      description: Payment account details including data collected during the payment
        process.
      operationId: payin_accounts
      parameters:
      - name: X-API-Version
        in: header
        description: Required API version. See [Versioning](general.html#versioning)
        required: true
        schema:
          type: integer
          format: int32
      - name: idPayin
        in: path
        description: Unique Merchant Order ID provided by merchant. See [Request IDs](general.html#request-ids).
        required: true
        schema:
          $ref: '#/components/schemas/IdPayin'
      responses:
        '200':
          description: Detail of incoming payment accounts.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaymentAccountDetail'
        '400':
          description: |-
            An error has been encountered while validating the input parameters.
            The request is not valid according to this OAS document.

            Some possible mistakes are:

             * wrong data type
             * required field is missing or empty
             * wrong value for field defined by enum
             * maximum length or other constraint violation

            See also [400 Bad Request](responseCodes.html#term-400-Bad-Request).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicError'
        '401':
          description: |-
            Request was not authenticated. Missing or wrong "authorization" token header.
            See [401 Unauthorized](responseCodes.html#term-401-Unauthorized).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicError'
        '403':
          description: |-
            Request was not authorized. Used "authorization" token header does not have permission to process the request.
            See [Fine-grained privileges](general.html#fine-grained-privileges) description or general [403 Forbidden](responseCodes.html#term-403-Forbidden) info.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicError'
        '406':
          description: Input does not meet business validations. See [406 Not Acceptable](responseCodes.html#term-406-Not-Acceptable)
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/GetPayinError'
        '410':
          description: Entity not found. See [410 Gone](responseCodes.html#term-410-Gone).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicError'
        '429':
          description: Too many requests. See [429 Too Many Requests](responseCodes.html#term-429-Too-Many-Requests).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicError'
        '500':
          description: Server error. See [5XX Internal Server Error](responseCodes.html#term-5XX-Internal-Server-Error)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicError'
      security:
      - httpAuth: []
  /merchant-info:
    get:
      tags:
      - Merchant info
      summary: Merchant information.
      description: Return information about the merchant authorised by [JWT token](general.html#security).
      operationId: getMerchantInfo
      parameters:
      - name: X-API-Version
        in: header
        description: Required API version. See [Versioning](general.html#versioning)
        required: true
        schema:
          type: integer
          format: int32
      responses:
        '200':
          description: Merchant information.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MerchantInfo'
        '400':
          description: |-
            An error has been encountered while validating the input parameters.
            The request is not valid according to this OAS document.

            Some possible mistakes are:

             * wrong data type
             * required field is missing or empty
             * wrong value for field defined by enum
             * maximum length or other constraint violation

            See also [400 Bad Request](responseCodes.html#term-400-Bad-Request).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicError'
        '401':
          description: |-
            Request was not authenticated. Missing or wrong "authorization" token header.
            See [401 Unauthorized](responseCodes.html#term-401-Unauthorized).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicError'
        '403':
          description: |-
            Request was not authorized. Used "authorization" token header does not have permission to process the request.
            See [Fine-grained privileges](general.html#fine-grained-privileges) description or general [403 Forbidden](responseCodes.html#term-403-Forbidden) info.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicError'
        '410':
          description: Entity not found. See [410 Gone](responseCodes.html#term-410-Gone).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicError'
        '429':
          description: Too many requests. See [429 Too Many Requests](responseCodes.html#term-429-Too-Many-Requests).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicError'
        '500':
          description: Server error. See [5XX Internal Server Error](responseCodes.html#term-5XX-Internal-Server-Error)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicError'
      security:
      - httpAuth: []
  /currencies:
    get:
      tags:
      - Payments
      summary: Currencies.
      description: |-
        Return list of currencies available for the current merchant (according to content of the [JWT token](general.html#security)).

        New currency codes may be added without further notice and are considered as non breaking change and do not affect API version.

        Fiat currency codes are based on 3-letter ISO 4217. Crypto currency codes are based on commonly used codes.

        For available currencies please refer to section "available currencies" on merchant detail page in Merchant Back-office. To add new available currency please contact our support.
      operationId: getCurrencies
      parameters:
      - name: X-API-Version
        in: header
        description: Required API version. See [Versioning](general.html#versioning)
        required: true
        schema:
          type: integer
          format: int32
      responses:
        '200':
          description: List of available currencies.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CurrencyList'
        '400':
          description: |-
            An error has been encountered while validating the input parameters.
            The request is not valid according to this OAS document.

            Some possible mistakes are:

             * wrong data type
             * required field is missing or empty
             * wrong value for field defined by enum
             * maximum length or other constraint violation

            See also [400 Bad Request](responseCodes.html#term-400-Bad-Request).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicError'
        '401':
          description: |-
            Request was not authenticated. Missing or wrong "authorization" token header.
            See [401 Unauthorized](responseCodes.html#term-401-Unauthorized).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicError'
        '403':
          description: |-
            Request was not authorized. Used "authorization" token header does not have permission to process the request.
            See [Fine-grained privileges](general.html#fine-grained-privileges) description or general [403 Forbidden](responseCodes.html#term-403-Forbidden) info.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicError'
        '410':
          description: Entity not found. See [410 Gone](responseCodes.html#term-410-Gone).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicError'
        '429':
          description: Too many requests. See [429 Too Many Requests](responseCodes.html#term-429-Too-Many-Requests).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicError'
        '500':
          description: Server error. See [5XX Internal Server Error](responseCodes.html#term-5XX-Internal-Server-Error)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicError'
      security:
      - httpAuth: []
  /segments:
    get:
      tags:
      - Payments
      summary: Segments.
      description: Return list of customer segments available in the system.
      operationId: getSegments
      parameters:
      - name: X-API-Version
        in: header
        description: Required API version. See [Versioning](general.html#versioning)
        required: true
        schema:
          type: integer
          format: int32
      responses:
        '200':
          description: List of available segments.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SegmentList'
        '400':
          description: |-
            An error has been encountered while validating the input parameters.
            The request is not valid according to this OAS document.

            Some possible mistakes are:

             * wrong data type
             * required field is missing or empty
             * wrong value for field defined by enum
             * maximum length or other constraint violation

            See also [400 Bad Request](responseCodes.html#term-400-Bad-Request).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicError'
        '401':
          description: |-
            Request was not authenticated. Missing or wrong "authorization" token header.
            See [401 Unauthorized](responseCodes.html#term-401-Unauthorized).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicError'
        '403':
          description: |-
            Request was not authorized. Used "authorization" token header does not have permission to process the request.
            See [Fine-grained privileges](general.html#fine-grained-privileges) description or general [403 Forbidden](responseCodes.html#term-403-Forbidden) info.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicError'
        '429':
          description: Too many requests. See [429 Too Many Requests](responseCodes.html#term-429-Too-Many-Requests).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicError'
        '500':
          description: Server error. See [5XX Internal Server Error](responseCodes.html#term-5XX-Internal-Server-Error)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicError'
      security:
      - httpAuth: []
  /payment-operators:
    get:
      tags:
      - Payments
      summary: Payment operators.
      description: |-
        Return list of [payment operators](terminology.html#term-Payment-operator) available in the system.

        New payment operators codes may be added without further notice and are considered as non breaking change and do not affect API version.
      operationId: getPaymentOperators
      parameters:
      - name: X-API-Version
        in: header
        description: Required API version. See [Versioning](general.html#versioning)
        required: true
        schema:
          type: integer
          format: int32
      responses:
        '200':
          description: List of available payment operators.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaymentOperatorList'
        '400':
          description: |-
            An error has been encountered while validating the input parameters.
            The request is not valid according to this OAS document.

            Some possible mistakes are:

             * wrong data type
             * required field is missing or empty
             * wrong value for field defined by enum
             * maximum length or other constraint violation

            See also [400 Bad Request](responseCodes.html#term-400-Bad-Request).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicError'
        '401':
          description: |-
            Request was not authenticated. Missing or wrong "authorization" token header.
            See [401 Unauthorized](responseCodes.html#term-401-Unauthorized).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicError'
        '403':
          description: |-
            Request was not authorized. Used "authorization" token header does not have permission to process the request.
            See [Fine-grained privileges](general.html#fine-grained-privileges) description or general [403 Forbidden](responseCodes.html#term-403-Forbidden) info.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicError'
        '429':
          description: Too many requests. See [429 Too Many Requests](responseCodes.html#term-429-Too-Many-Requests).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicError'
        '500':
          description: Server error. See [5XX Internal Server Error](responseCodes.html#term-5XX-Internal-Server-Error)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicError'
      security:
      - httpAuth: []
  /payment-methods:
    get:
      tags:
      - Payments
      summary: Payment methods.
      description: |-
        Return list of [payment methods](terminology.html#term-Payment-method) available in the system.

        New payment method codes may be added without further notice and are considered as non breaking change and do not affect API version.
      operationId: getPaymentMethods
      parameters:
      - name: X-API-Version
        in: header
        description: Required API version. See [Versioning](general.html#versioning)
        required: true
        schema:
          type: integer
          format: int32
      responses:
        '200':
          description: List of available payment methods.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaymentMethodsList'
        '400':
          description: |-
            An error has been encountered while validating the input parameters.
            The request is not valid according to this OAS document.

            Some possible mistakes are:

             * wrong data type
             * required field is missing or empty
             * wrong value for field defined by enum
             * maximum length or other constraint violation

            See also [400 Bad Request](responseCodes.html#term-400-Bad-Request).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicError'
        '401':
          description: |-
            Request was not authenticated. Missing or wrong "authorization" token header.
            See [401 Unauthorized](responseCodes.html#term-401-Unauthorized).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicError'
        '403':
          description: |-
            Request was not authorized. Used "authorization" token header does not have permission to process the request.
            See [Fine-grained privileges](general.html#fine-grained-privileges) description or general [403 Forbidden](responseCodes.html#term-403-Forbidden) info.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicError'
        '429':
          description: Too many requests. See [429 Too Many Requests](responseCodes.html#term-429-Too-Many-Requests).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicError'
        '500':
          description: Server error. See [5XX Internal Server Error](responseCodes.html#term-5XX-Internal-Server-Error)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicError'
      security:
      - httpAuth: []
  /payment-options:
    get:
      tags:
      - Payments
      summary: Payment options.
      description: |2-

        Return [payment options](terminology.html#term-Payment-option) (combination of payment methods and corresponding payment operators) (possibly) available for the merchant specified in the authorization token, optionally filtered by the query parameters.

        The API documentation describes currently supported list of `paymentMethodCode`.
        Be aware that to return more items than described is classified as a backward-compatible change.
        The list of supported payment methods will grow in the future.
        New payment method is returned only when you have the method configured in your account.
      operationId: getPaymentOptions
      parameters:
      - name: X-API-Version
        in: header
        description: Required API version. See [Versioning](general.html#versioning)
        required: true
        schema:
          type: integer
          format: int32
      - name: paymentTypeCode
        in: query
        required: false
        schema:
          type: string
          enum:
          - PAYIN
          - PAYOUT
      - name: paymentMethodCodes
        in: query
        required: false
        schema:
          description: |-
            Comma separated list of requested payment method codes.
            See request body for `paymentMethodCode` description and [Query for multiple values](general.html#query-for-multiple-values) section.
          examples:
          - OFFLINE,ONLINE
          type: string
      - name: currencyCodes
        in: query
        required: false
        schema:
          $ref: '#/components/schemas/CommaSeparatedCurrencyCodes'
      - name: segmentCodes
        in: query
        required: false
        schema:
          description: |-
            Comma separated list of requested segment codes.
            See [`GET /segments`](#operations-Payments-getSegments) API and [Query for multiple values](general.html#query-for-multiple-values) section.
          type: string
      - name: paymentOperatorCodes
        in: query
        required: false
        schema:
          description: |-
            Comma separated list of payment operator codes.
            See request body for `paymentOperators` description and [Query for multiple values](general.html#query-for-multiple-values) section.
          examples:
          - IDR_003,IDR_004
          type: string
      responses:
        '200':
          description: List of (possibly) available payment options.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaymentOptionsList'
        '400':
          description: |-
            An error has been encountered while validating the input parameters.
            The request is not valid according to this OAS document.

            Some possible mistakes are:

             * wrong data type
             * required field is missing or empty
             * wrong value for field defined by enum
             * maximum length or other constraint violation

            See also [400 Bad Request](responseCodes.html#term-400-Bad-Request).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicError'
        '401':
          description: |-
            Request was not authenticated. Missing or wrong "authorization" token header.
            See [401 Unauthorized](responseCodes.html#term-401-Unauthorized).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicError'
        '403':
          description: |-
            Request was not authorized. Used "authorization" token header does not have permission to process the request.
            See [Fine-grained privileges](general.html#fine-grained-privileges) description or general [403 Forbidden](responseCodes.html#term-403-Forbidden) info.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicError'
        '406':
          description: Input does not meet business validations. See [406 Not Acceptable](responseCodes.html#term-406-Not-Acceptable)
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/GetPaymentOptionsError'
        '410':
          description: Entity not found. See [410 Gone](responseCodes.html#term-410-Gone).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicError'
        '429':
          description: Too many requests. See [429 Too Many Requests](responseCodes.html#term-429-Too-Many-Requests).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicError'
        '500':
          description: Server error. See [5XX Internal Server Error](responseCodes.html#term-5XX-Internal-Server-Error)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicError'
      security:
      - httpAuth: []
  /topup-options:
    get:
      tags:
      - Payments
      summary: Topup options.
      description: |2-

        Return [topup options](terminology.html#term-Payment-option) (combination of payment methods and corresponding payment operators) (possibly) available for topups for the tenant specified in the authorization token, optionally filtered by the query parameters.

        The API documentation describes currently supported list of `paymentMethodCode`.
        Be aware that to return more items than described is classified as a backward-compatible change.
        The list of supported payment methods will grow in the future.
        New payment method is returned only when you have the method configured in your account.
      operationId: getTopupOptions
      parameters:
      - name: X-API-Version
        in: header
        description: Required API version. See [Versioning](general.html#versioning)
        required: true
        schema:
          type: integer
          format: int32
      - name: paymentMethodCodes
        in: query
        required: false
        schema:
          description: |-
            Comma separated list of requested payment method codes.
            See request body for `paymentMethodCode` description and [Query for multiple values](general.html#query-for-multiple-values) section.
          examples:
          - OFFLINE,ONLINE
          type: string
      - name: currencyCodes
        in: query
        required: false
        schema:
          $ref: '#/components/schemas/CommaSeparatedCurrencyCodes'
      - name: paymentOperatorCodes
        in: query
        required: false
        schema:
          description: |-
            Comma separated list of payment operator codes.
            See request body for `paymentOperators` description and [Query for multiple values](general.html#query-for-multiple-values) section.
          examples:
          - IDR_003,IDR_004
          type: string
      responses:
        '200':
          description: List of (possibly) available payment options.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WalletTopUpOptionsList'
        '400':
          description: |-
            An error has been encountered while validating the input parameters.
            The request is not valid according to this OAS document.

            Some possible mistakes are:

             * wrong data type
             * required field is missing or empty
             * wrong value for field defined by enum
             * maximum length or other constraint violation

            See also [400 Bad Request](responseCodes.html#term-400-Bad-Request).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicError'
        '401':
          description: |-
            Request was not authenticated. Missing or wrong "authorization" token header.
            See [401 Unauthorized](responseCodes.html#term-401-Unauthorized).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicError'
        '403':
          description: |-
            Request was not authorized. Used "authorization" token header does not have permission to process the request.
            See [Fine-grained privileges](general.html#fine-grained-privileges) description or general [403 Forbidden](responseCodes.html#term-403-Forbidden) info.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicError'
        '406':
          description: Input does not meet business validations. See [406 Not Acceptable](responseCodes.html#term-406-Not-Acceptable)
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/GetPaymentOptionsError'
        '410':
          description: Entity not found. See [410 Gone](responseCodes.html#term-410-Gone).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicError'
        '429':
          description: Too many requests. See [429 Too Many Requests](responseCodes.html#term-429-Too-Many-Requests).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicError'
        '500':
          description: Server error. See [5XX Internal Server Error](responseCodes.html#term-5XX-Internal-Server-Error)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicError'
      security:
      - httpAuth: []
  /auth-tokens-by-action:
    post:
      tags:
      - Auth
      summary: Authorization token via action specification.
      description: |2

        Issues JSON Web Token (JWT) that can be used to call authorized payment API.

        Expects action and idPayment on input. If fine-grained control is needed, use [`POST /auth-tokens`](#operations-authTokens) API.

        Validates the signature and responds with a JWT allowing the given merchant access to the given endpoints.

        For more info about security concepts see the [Security](general.html#security) section.

        For more info about payment web app integration security see the [Payment Web App - Auth Token](payin-webapp.html#get-a-authorization-token) section.

        For more info about direct integration security see the [Direct integration - Authentication and Authorization](payin-common.html) section.
      operationId: createAuthTokenByAction
      parameters:
      - name: X-API-Version
        in: header
        description: Required API version. See [Versioning](general.html#versioning)
        required: true
        schema:
          type: integer
          format: int32
      - name: X-Signature
        in: header
        description: Signature of the request. See [Security](general.html#security)
        required: false
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AuthTokenByActionRequest'
        required: true
      responses:
        '200':
          description: Auth token for required operations. The Auth token payload
            can be decoded at [JWT official website](https://jwt.io/).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuthTokenResponse'
        '400':
          description: |-
            An error has been encountered while validating the input parameters.
            The request is not valid according to this OAS document.

            Some possible mistakes are:

             * wrong data type
             * required field is missing or empty
             * wrong value for field defined by enum
             * maximum length or other constraint violation

            See also [400 Bad Request](responseCodes.html#term-400-Bad-Request).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicError'
        '403':
          description: |-
            Request was not authorized.
            See [403 Forbidden](responseCodes.html#term-403-Forbidden).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicError'
        '406':
          description: Input does not meet business validations. See [406 Not Acceptable](responseCodes.html#term-406-Not-Acceptable)
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PostAuthTokensError'
        '500':
          description: Server error. See [5XX Internal Server Error](responseCodes.html#term-5XX-Internal-Server-Error)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicError'
  /auth-tokens:
    post:
      tags:
      - Auth
      summary: Authorization token.
      description: |2

        Issues JSON Web Token (JWT) that can be used to call authorized payment API.

        Validates the signature and responds with a JWT allowing the given merchant access to the given endpoints.

        For more info about security concepts see the [Security](general.html#security) section.

        For more info about payment web app integration security see the [Payment Web App - Auth Token](payin-webapp.html#get-a-authorization-token) section.

        For more info about direct integration security see the [Direct integration - Authentication and Authorization](payin-common.html) section.
      operationId: createAuthToken
      parameters:
      - name: X-API-Version
        in: header
        description: Required API version. See [Versioning](general.html#versioning)
        required: true
        schema:
          type: integer
          format: int32
      - name: X-Signature
        in: header
        description: Signature of the request. See [Security](general.html#security)
        required: false
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AuthTokenRequest'
        required: true
      responses:
        '200':
          description: Auth token for required operations. The Auth token payload
            can be decoded at [JWT official website](https://jwt.io/).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuthTokenResponse'
        '400':
          description: |-
            An error has been encountered while validating the input parameters.
            The request is not valid according to this OAS document.

            Some possible mistakes are:

             * wrong data type
             * required field is missing or empty
             * wrong value for field defined by enum
             * maximum length or other constraint violation

            See also [400 Bad Request](responseCodes.html#term-400-Bad-Request).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicError'
        '403':
          description: |-
            Request was not authorized.
            See [403 Forbidden](responseCodes.html#term-403-Forbidden).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicError'
        '406':
          description: Input does not meet business validations. See [406 Not Acceptable](responseCodes.html#term-406-Not-Acceptable)
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PostAuthTokensError'
        '500':
          description: Server error. See [5XX Internal Server Error](responseCodes.html#term-5XX-Internal-Server-Error)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicError'
  /fx-rate-pairs:
    get:
      tags:
      - Rate lists
      summary: List of currency pairs.
      description: Method returns a list of currency pairs for which our system usually
        contains valid FX rates.
      operationId: getFxRatePairs
      parameters:
      - name: X-API-Version
        in: header
        description: Required API version. See [Versioning](general.html#versioning)
        required: true
        schema:
          type: integer
          format: int32
      - name: Tenant-Code
        in: header
        required: true
        schema:
          type: string
          minLength: 1
      - name: Merchant-Code
        in: header
        required: true
        schema:
          description: Your Merchant ID. This Merchant ID is obtained upon [Merchant
            enrollment process](sandbox.html#sandbox-account-registration).
          examples:
          - YOUR_MERCHANT_ID
          type: string
          minLength: 1
      responses:
        '200':
          description: |-
            The list of available currency pairs with valid FX rates.
            If no currency pairs are found, an empty list is returned.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AvailableForexCurrencyPairList'
        '400':
          description: |-
            An error has been encountered while validating the input parameters.
            The request is not valid according to this OAS document.

            Some possible mistakes are:

             * wrong data type
             * required field is missing or empty
             * wrong value for field defined by enum
             * maximum length or other constraint violation

            See also [400 Bad Request](responseCodes.html#term-400-Bad-Request).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicError'
        '401':
          description: |-
            Request was not authenticated. Missing or wrong "authorization" token header.
            See [401 Unauthorized](responseCodes.html#term-401-Unauthorized).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicError'
        '403':
          description: |-
            Request was not authorized. Used "authorization" token header does not have permission to process the request.
            See [Fine-grained privileges](general.html#fine-grained-privileges) description or general [403 Forbidden](responseCodes.html#term-403-Forbidden) info.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicError'
        '429':
          description: Too many requests. See [429 Too Many Requests](responseCodes.html#term-429-Too-Many-Requests).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicError'
        '500':
          description: Server error. See [5XX Internal Server Error](responseCodes.html#term-5XX-Internal-Server-Error)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicError'
  /fx-rates:
    get:
      tags:
      - Rate lists
      summary: List of valid FX rates.
      description: Method returns a list of currently valid FX rates.
      operationId: getFxRates
      parameters:
      - name: X-API-Version
        in: header
        description: Required API version. See [Versioning](general.html#versioning)
        required: true
        schema:
          type: integer
          format: int32
      - name: Tenant-Code
        in: header
        required: true
        schema:
          type: string
          minLength: 1
      - name: Merchant-Code
        in: header
        required: true
        schema:
          description: Your Merchant ID. This Merchant ID is obtained upon [Merchant
            enrollment process](sandbox.html#sandbox-account-registration).
          examples:
          - YOUR_MERCHANT_ID
          type: string
          minLength: 1
      - name: baseCurrencyCode
        in: query
        description: |-
          Specific base currency code for which valid FX rates should be returned.
          Fiat currency codes are based on 3-letter ISO 4217. Crypto currency codes are based on commonly used codes.
        required: false
        schema:
          $ref: '#/components/schemas/CurrencyCode'
      - name: quoteCurrencyCode
        in: query
        description: |-
          Specific quote currency code for which valid FX rates should be returned.
          Fiat currency codes are based on 3-letter ISO 4217. Crypto currency codes are based on commonly used codes.
        required: false
        schema:
          $ref: '#/components/schemas/CurrencyCode'
      responses:
        '200':
          description: |-
            The list of currently valid forex rates.
            The list always contains at least one valid forex rate.
            If no available forex rates are found, one of the query parameters contains invalid currency or currency that is not available and an HTTP 406 response is returned with the error code.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForexRateList'
        '400':
          description: |-
            An error has been encountered while validating the input parameters.
            The request is not valid according to this OAS document.

            Some possible mistakes are:

             * wrong data type
             * required field is missing or empty
             * wrong value for field defined by enum
             * maximum length or other constraint violation

            See also [400 Bad Request](responseCodes.html#term-400-Bad-Request).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicError'
        '401':
          description: |-
            Request was not authenticated. Missing or wrong "authorization" token header.
            See [401 Unauthorized](responseCodes.html#term-401-Unauthorized).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicError'
        '403':
          description: |-
            Request was not authorized. Used "authorization" token header does not have permission to process the request.
            See [Fine-grained privileges](general.html#fine-grained-privileges) description or general [403 Forbidden](responseCodes.html#term-403-Forbidden) info.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicError'
        '406':
          description: Input does not meet business validations. See [406 Not Acceptable](responseCodes.html#term-406-Not-Acceptable)
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/GetFxRatesError'
        '429':
          description: Too many requests. See [429 Too Many Requests](responseCodes.html#term-429-Too-Many-Requests).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicError'
        '500':
          description: Server error. See [5XX Internal Server Error](responseCodes.html#term-5XX-Internal-Server-Error)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicError'
  /settlement-payment-options:
    get:
      tags:
      - Settlements
      summary: Settlement payment options.
      description: |2-

        Return [payment options](terminology.html#term-Payment-option) (combination of payment methods and
        corresponding payment operators) (possibly) available for settlements for the merchant specified
        in the authorization token, optionally filtered by the query parameters.

        The API documentation describes currently supported list of `paymentMethodCode`.
        Be aware that to return more items than described is classified as a backward-compatible change.
        The list of supported payment methods will grow in the future.
        New payment method is returned only when you have the method configured in your account.
      operationId: getSettlementPaymentOptions
      parameters:
      - name: X-API-Version
        in: header
        description: Required API version. See [Versioning](general.html#versioning)
        required: true
        schema:
          type: integer
          format: int32
      - name: currencyCodes
        in: query
        required: false
        schema:
          $ref: '#/components/schemas/CommaSeparatedCurrencyCodes'
      - name: paymentOperatorCodes
        in: query
        required: false
        schema:
          description: |-
            Comma separated list of payment operator codes.
            See request body for `paymentOperators` description and [Query for multiple values](general.html#query-for-multiple-values) section.
          examples:
          - IDR_003,IDR_004
          type: string
      responses:
        '200':
          description: List of (possibly) available settlement payment options.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SettlementPaymentOptionsList'
        '400':
          description: |-
            An error has been encountered while validating the input parameters.
            The request is not valid according to this OAS document.

            Some possible mistakes are:

             * wrong data type
             * required field is missing or empty
             * wrong value for field defined by enum
             * maximum length or other constraint violation

            See also [400 Bad Request](responseCodes.html#term-400-Bad-Request).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicError'
        '401':
          description: |-
            Request was not authenticated. Missing or wrong "authorization" token header.
            See [401 Unauthorized](responseCodes.html#term-401-Unauthorized).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicError'
        '403':
          description: |-
            Request was not authorized. Used "authorization" token header does not have permission to process the request.
            See [Fine-grained privileges](general.html#fine-grained-privileges) description or general [403 Forbidden](responseCodes.html#term-403-Forbidden) info.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicError'
        '406':
          description: Input does not meet business validations. See [406 Not Acceptable](responseCodes.html#term-406-Not-Acceptable)
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/GetPaymentOptionsError'
        '410':
          description: Entity not found. See [410 Gone](responseCodes.html#term-410-Gone).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicError'
        '429':
          description: Too many requests. See [429 Too Many Requests](responseCodes.html#term-429-Too-Many-Requests).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicError'
        '500':
          description: Server error. See [5XX Internal Server Error](responseCodes.html#term-5XX-Internal-Server-Error)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicError'
      security:
      - httpAuth: []
  /customers/{idCustomer}/network-types/{networkType}:
    get:
      tags:
      - Customers
      summary: Get personal network address for specific customer id.
      description: Get personal network address for specific customer id.
      operationId: getCustomerNetworkAddress
      parameters:
      - name: X-API-Version
        in: header
        description: Required API version. See [Versioning](general.html#versioning)
        required: true
        schema:
          type: integer
          format: int32
      - name: Tenant-Code
        in: header
        required: true
        schema:
          type: string
          minLength: 1
      - name: Merchant-Code
        in: header
        required: true
        schema:
          description: Your Merchant ID. This Merchant ID is obtained upon [Merchant
            enrollment process](sandbox.html#sandbox-account-registration).
          examples:
          - YOUR_MERCHANT_ID
          type: string
          minLength: 1
      - name: idCustomer
        in: path
        required: true
        schema:
          type: string
          minLength: 1
      - name: networkType
        in: path
        required: true
        schema:
          description: Network type of a customer specific address.
          type: string
          enum:
          - tron
          - ethereum
          - bitcoin
          - solana
      responses:
        '200':
          description: Instance of personal network address of specified type.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CustomerNetworkAddress'
        '400':
          description: |-
            An error has been encountered while validating the input parameters.
            The request is not valid according to this OAS document.

            Some possible mistakes are:

             * wrong data type
             * required field is missing or empty
             * wrong value for field defined by enum
             * maximum length or other constraint violation

            See also [400 Bad Request](responseCodes.html#term-400-Bad-Request).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicError'
        '401':
          description: |-
            Request was not authenticated. Missing or wrong "authorization" token header.
            See [401 Unauthorized](responseCodes.html#term-401-Unauthorized).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicError'
        '403':
          description: |-
            Request was not authorized. Used "authorization" token header does not have permission to process the request.
            See [Fine-grained privileges](general.html#fine-grained-privileges) description or general [403 Forbidden](responseCodes.html#term-403-Forbidden) info.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicError'
        '410':
          description: Entity not found. See [410 Gone](responseCodes.html#term-410-Gone).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicError'
        '429':
          description: Too many requests. See [429 Too Many Requests](responseCodes.html#term-429-Too-Many-Requests).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicError'
        '500':
          description: Server error. See [5XX Internal Server Error](responseCodes.html#term-5XX-Internal-Server-Error)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicError'
    post:
      tags:
      - Customers
      summary: Create a new personal network address for specific customer id.
      description: Create a new personal network address for specific customer id.
      operationId: createCustomerNetworkAddress
      parameters:
      - name: X-API-Version
        in: header
        description: Required API version. See [Versioning](general.html#versioning)
        required: true
        schema:
          type: integer
          format: int32
      - name: Tenant-Code
        in: header
        required: true
        schema:
          type: string
          minLength: 1
      - name: Merchant-Code
        in: header
        required: true
        schema:
          description: Your Merchant ID. This Merchant ID is obtained upon [Merchant
            enrollment process](sandbox.html#sandbox-account-registration).
          examples:
          - YOUR_MERCHANT_ID
          type: string
          minLength: 1
      - name: idCustomer
        in: path
        required: true
        schema:
          type: string
          minLength: 1
      - name: networkType
        in: path
        required: true
        schema:
          description: Network type of a customer specific address.
          type: string
          enum:
          - tron
          - ethereum
          - bitcoin
          - solana
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CustomerNetworkAddressCreateRequest'
        required: true
      responses:
        '201':
          description: Personal network address of specified type was created.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CustomerNetworkAddress'
        '400':
          description: |-
            An error has been encountered while validating the input parameters.
            The request is not valid according to this OAS document.

            Some possible mistakes are:

             * wrong data type
             * required field is missing or empty
             * wrong value for field defined by enum
             * maximum length or other constraint violation

            See also [400 Bad Request](responseCodes.html#term-400-Bad-Request).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicError'
        '401':
          description: |-
            Request was not authenticated. Missing or wrong "authorization" token header.
            See [401 Unauthorized](responseCodes.html#term-401-Unauthorized).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicError'
        '403':
          description: |-
            Request was not authorized. Used "authorization" token header does not have permission to process the request.
            See [Fine-grained privileges](general.html#fine-grained-privileges) description or general [403 Forbidden](responseCodes.html#term-403-Forbidden) info.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicError'
        '406':
          description: Input does not meet business validations. See [406 Not Acceptable](responseCodes.html#term-406-Not-Acceptable)
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/CustomerNetworkAddressCreateError'
        '409':
          description: |-
            The provided entity is duplicated. The request has not been accepted.
            For more info about request IDs concepts see our [Request IDs](general.html#request-ids) section of our documentation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicError'
        '410':
          description: Entity not found. See [410 Gone](responseCodes.html#term-410-Gone).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicError'
        '429':
          description: Too many requests. See [429 Too Many Requests](responseCodes.html#term-429-Too-Many-Requests).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicError'
        '500':
          description: Server error. See [5XX Internal Server Error](responseCodes.html#term-5XX-Internal-Server-Error)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicError'
components:
  schemas:
    AbsaPayMethod:
      title: ABSA_PAY
      description: |-
        Absa Pay offers a simple, quick and secure way to make payments without needing to input banking login details.<br><br>
        Customers can select their preferred account for payment and securely authorize the transaction through the banking app.<br><br>
        At least one of the following fields must be provided: `accountNumber`, `passportNumber`, or `said`.<br>
      type: object
      required:
      - paymentMethodCode
      properties:
        account:
          $ref: '#/components/schemas/AccountPayinRequestAbsaPay'
        emailAddress:
          description: Your customer's e-mail address in RFC 5322 format that is used
            for identification of the customer's payins.
          examples:
          - yourcustomer@domain.com
          type: string
        passportNumber:
          type: string
          maxLength: 9
          minLength: 8
          pattern: ^[a-zA-Z][0-9]+$
        said:
          type: string
          maxLength: 13
          minLength: 13
          pattern: ^[0-9]*$
        paymentMethodCode:
          type: string
          enum:
          - ABSA_PAY
          const: ABSA_PAY
    AbsaPayMethodResponse:
      title: ABSA_PAY
      type: object
      required:
      - idPayin
      - idPayment
      - money
      - reference
      - returnUrl
      - acceptedAt
      - expireAt
      - paymentMethodCode
      properties:
        idPayin:
          $ref: '#/components/schemas/IdPayin'
        idPayment:
          $ref: '#/components/schemas/IdPayment'
        accounts:
          type: array
          items:
            $ref: '#/components/schemas/AccountCallbackAbsaPay'
        accountCustomer:
          $ref: '#/components/schemas/AccountCustomerResponseAbsaPay'
        accountCustomerUsedForPayment:
          $ref: '#/components/schemas/AccountCustomerUsedForPaymentResponseAbsaPay'
        passportNumber:
          type: string
          maxLength: 9
          minLength: 8
          pattern: ^[a-zA-Z][0-9]+$
        said:
          type: string
          maxLength: 13
          minLength: 13
          pattern: ^[0-9]*$
        money:
          $ref: '#/components/schemas/MoneyPaymentResponse'
        vat:
          $ref: '#/components/schemas/MoneyVat'
        reference:
          description: Reference number of transaction.
          type: string
        returnUrl:
          description: |-
            This is the URL where the customers will be redirected after completing a payment.

            The URL must be either IP or domain-based.
          examples:
          - https://example.com?id=123
          type: string
          maxLength: 1000
        acceptedAt:
          description: Date and time when payment was accepted.
          type: string
          format: date-time
        expireAt:
          description: Date and time of payment expiration. If no money has been transferred
            to this time, payment is considered failed and callback with status change
            event will shortly follow.
          type: string
          format: date-time
        paymentMethodCode:
          type: string
          enum:
          - ABSA_PAY
          const: ABSA_PAY
    AccountCallbackAbsaPay:
      title: AccountCallbackAbsaPay
      description: |-
        Parameters of your customer's bank or wallet account which your customer sends funds from. These account parameters are used for the sender's account verification in processing of the payment.
        Which parameters are mandatory depends on the payment method and the currency your customer choose to pay.
      type: object
      required:
      - accountName
      - accountNumber
      - accountIndex
      properties:
        accountName:
          description: |-
            Account Name is the name of the person who holds the bank or wallet account which your customer sends funds from to make his payment.
            The name should be in the same format as the account holder name of the account. Allows numbers, some special characters and UNICODE symbols, see validation pattern.
          type: string
          maxLength: 64
          minLength: 1
          pattern: ^(\p{L}\p{M}*?|[\d, ;:_'"!%=@#&\-\.\?\$\(\)\+\*\|])*$
        accountNumber:
          description: |-
            Account Name is the name of the person who holds the bank or wallet account which your customer sends funds from to make his payment.
            The name should be in the same format as the account holder name of the account. Allows numbers, some special characters and UNICODE symbols, see validation pattern.
          type: string
        accountIndex:
          type: integer
          format: int32
    AccountCustomerResponseAbsaPay:
      title: AccountCustomerResponseAbsaPay
      description: "Parameters of your customer's bank or wallet account which your\
        \ customer sends funds from. \nThese account parameters are used for the sender's\
        \ account verification in processing of the payment. \nWhich parameters are\
        \ mandatory depends on the payment method and the currency your customer choose\
        \ to pay."
      type: object
      properties:
        accountNumber:
          description: |-
            Number of the bank account where we expect that your customer sends funds to make a payment.
            This parameter is to be shown to your customer in the payment instructions.
          type: string
        accountName:
          description: Account Name is the name of the person who holds the bank or
            wallet account which your customer sends funds from to make his payment.
          type: string
          maxLength: 64
          minLength: 1
          pattern: ^(\p{L}\p{M}*?|[\d, ;:_'"!%=@#&\-\.\?\$\(\)\+\*\|])*$
    AccountCustomerResponseCapitecPay:
      title: AccountCustomerResponseCapitecPay
      description: Parameters of your customer's bank or wallet account which your
        customer sends funds from. These account parameters are used for the sender's
        account verification in processing of the payment.
      type: object
      properties:
        accountName:
          description: Account Name is the name of the person who holds the bank or
            wallet account which your customer sends funds from to make his payment.
          type: string
          maxLength: 64
          minLength: 1
          pattern: ^(\p{L}\p{M}*?|[\d, ;:_'"!%=@#&\-\.\?\$\(\)\+\*\|])*$
        accountNumber:
          description: Account Number is the number of your customer's bank account
            which your customer sends funds from to make his payment.
          type: string
          maxLength: 10
          minLength: 10
          pattern: ^[0-9]*$
    AccountCustomerResponseCodePayment:
      title: AccountCustomerResponseCodePayment
      description: Parameters of your customer's bank or wallet account which your
        customer sends funds from. These account parameters are used for the sender's
        account verification in processing of the payment.
      type: object
      required:
      - accountName
      properties:
        accountName:
          description: Account Name is the name of the person who holds the bank or
            wallet account which your customer sends funds from to make his payment.
          type: string
          maxLength: 64
          minLength: 1
          pattern: ^(\p{L}\p{M}*?|[\d, ;:_'"!%=@#&\-\.\?\$\(\)\+\*\|])*$
    AccountCustomerResponseDuitNow:
      title: AccountCustomerResponseDuitNow
      description: Parameters of your customer's bank or wallet account which your
        customer sends funds from. These account parameters are used for the sender's
        account verification in processing of the payment.
      type: object
      required:
      - accountName
      properties:
        accountName:
          description: Account Name is the name of the person who holds the bank or
            wallet account which your customer sends funds from to make his payment.
          type: string
          maxLength: 64
          minLength: 1
          pattern: ^(\p{L}\p{M}*?|[\d, ;:_'"!%=@#&\-\.\?\$\(\)\+\*\|])*$
        accountNumber:
          description: Account Number is the number of your customer's bank account
            which your customer sends funds from to make his payment.
          type: string
    AccountCustomerResponseMobileMoney:
      title: AccountCustomerResponseMobileMoney
      description: "Parameters of your customer's bank or wallet account which your\
        \ customer sends funds from. \nThese account parameters are used for the sender's\
        \ account verification in processing of the payment."
      type: object
      required:
      - accountName
      properties:
        accountName:
          description: Account Name is the name of the person who holds the bank or
            wallet account which your customer sends funds from to make his payment.
          type: string
          maxLength: 64
          minLength: 1
          pattern: ^(\p{L}\p{M}*?|[\d, ;:_'"!%=@#&\-\.\?\$\(\)\+\*\|])*$
    AccountCustomerResponseNedbankDirectEFT:
      title: AccountCustomerResponseNedbankDirectEFT
      description: "Parameters of your customer's bank or wallet account which your\
        \ customer sends funds from. \nThese account parameters are used for the sender's\
        \ account verification in processing of the payment."
      type: object
      required:
      - accountName
      properties:
        accountName:
          description: Account Name is the name of the person who holds the bank or
            wallet account which your customer sends funds from to make his payment.
          type: string
          maxLength: 64
          minLength: 1
          pattern: ^(\p{L}\p{M}*?|[\d, ;:_'"!%=@#&\-\.\?\$\(\)\+\*\|])*$
    AccountCustomerResponseOffline:
      title: AccountCustomerResponseOffline
      description: "Parameters of your customer's bank or wallet account which your\
        \ customer sends funds from. \nThese account parameters are used for the sender's\
        \ account verification in processing of the payment."
      type: object
      properties:
        accountNumber:
          description: Account Number is the number of your customer's bank account
            which your customer sends funds from to make his payment.
          type: string
    AccountCustomerResponsePayMe:
      title: AccountCustomerResponsePayMe
      description: "Parameters of your customer's bank or wallet account which your\
        \ customer sends funds from. \nThese account parameters are used for the sender's\
        \ account verification in processing of the payment."
      type: object
      required:
      - accountName
      properties:
        accountName:
          description: Account Name is the name of the person who holds the bank or
            wallet account which your customer sends funds from to make his payment.
          type: string
          maxLength: 64
          minLength: 1
          pattern: ^(\p{L}\p{M}*?|[\d, ;:_'"!%=@#&\-\.\?\$\(\)\+\*\|])*$
        accountNumber:
          description: Account Number is the number of your customer's bank account
            which your customer sends funds from to make his payment.
          type: string
    AccountCustomerResponsePayShap:
      title: AccountCustomerResponsePayShap
      description: "Parameters of your customer's bank or wallet account which your\
        \ customer sends funds from. \nThese account parameters are used for the sender's\
        \ account verification in processing of the payment."
      type: object
      properties:
        accountName:
          description: Account Name is the name of the person who holds the bank or
            wallet account which your customer sends funds from to make his payment.
          type: string
          maxLength: 64
          minLength: 1
          pattern: ^(\p{L}\p{M}*?|[\d, ;:_'"!%=@#&\-\.\?\$\(\)\+\*\|])*$
        accountNumber:
          description: Account Number is the number of your customer's bank account
            which your customer sends funds from to make his payment.
          type: string
          pattern: ^[0-9]*$
    AccountCustomerResponsePixQR:
      title: AccountCustomerResponsePixQR
      description: "Parameters of your customer's bank or wallet account which your\
        \ customer sends funds from. \nThese account parameters are used for the sender's\
        \ account verification in processing of the payment."
      type: object
      required:
      - accountName
      properties:
        accountName:
          description: Account Name is the name of the person who holds the bank or
            wallet account which your customer sends funds from to make his payment.
          type: string
          maxLength: 64
          minLength: 1
          pattern: ^(\p{L}\p{M}*?|[\d, ;:_'"!%=@#&\-\.\?\$\(\)\+\*\|])*$
    AccountCustomerResponsePromptPay:
      title: AccountCustomerResponsePromptPay
      description: "Parameters of your customer's bank or wallet account which your\
        \ customer sends funds from. \nThese account parameters are used for the sender's\
        \ account verification in processing of the payment."
      type: object
      required:
      - accountNumber
      properties:
        accountName:
          description: Account Name is the name of the person who holds the bank or
            wallet account which your customer sends funds from to make his payment.
          type: string
          maxLength: 64
          minLength: 1
          pattern: ^(\p{L}\p{M}*?|[\d, ;:_'"!%=@#&\-\.\?\$\(\)\+\*\|])*$
        accountNumber:
          description: Account Number is the number of your customer's bank account
            which your customer sends funds from to make his payment.
          type: string
    AccountCustomerResponsePse:
      title: AccountCustomerResponsePse
      description: "Parameters of your customer's bank or wallet account which your\
        \ customer sends funds from. \nThese account parameters are used for the sender's\
        \ account verification in processing of the payment."
      type: object
      required:
      - accountName
      properties:
        accountName:
          description: Account Name is the name of the person who holds the bank or
            wallet account which your customer sends funds from to make his payment.
          type: string
          maxLength: 64
          minLength: 1
          pattern: ^(\p{L}\p{M}*?|[\d, ;:_'"!%=@#&\-\.\?\$\(\)\+\*\|])*$
    AccountCustomerResponseQrPh:
      title: AccountCustomerResponseQrPh
      description: "Parameters of your customer's bank or wallet account which your\
        \ customer sends funds from. \nThese account parameters are used for the sender's\
        \ account verification in processing of the payment."
      type: object
      properties:
        accountName:
          description: Account Name is the name of the person who holds the bank or
            wallet account which your customer sends funds from to make his payment.
          type: string
          maxLength: 64
          minLength: 1
          pattern: ^(\p{L}\p{M}*?|[\d, ;:_'"!%=@#&\-\.\?\$\(\)\+\*\|])*$
        accountNumber:
          description: Account Number is the number of your customer's bank account
            which your customer sends funds from to make his payment.
          type: string
    AccountCustomerResponseUpiCollect:
      title: AccountCustomerResponseUpiCollect
      description: "Parameters of your customer's bank or wallet account which your\
        \ customer sends funds from. \nThese account parameters are used for the sender's\
        \ account verification in processing of the payment."
      type: object
      required:
      - accountName
      properties:
        accountName:
          description: Account Name is the name of the person who holds the bank or
            wallet account which your customer sends funds from to make his payment.
          type: string
          maxLength: 64
          minLength: 1
          pattern: ^(\p{L}\p{M}*?|[\d, ;:_'"!%=@#&\-\.\?\$\(\)\+\*\|])*$
    AccountCustomerResponseUpiQR:
      title: AccountCustomerResponseUpiQR
      description: "Parameters of your customer's bank or wallet account which your\
        \ customer sends funds from. \nThese account parameters are used for the sender's\
        \ account verification in processing of the payment."
      type: object
      properties:
        accountName:
          description: Account Name is the name of the person who holds the bank or
            wallet account which your customer sends funds from to make his payment.
          type: string
          maxLength: 64
          minLength: 1
          pattern: ^(\p{L}\p{M}*?|[\d, ;:_'"!%=@#&\-\.\?\$\(\)\+\*\|])*$
    AccountCustomerResponseVaPay:
      title: AccountCustomerResponseVaPay
      description: "Parameters of your customer's bank or wallet account which your\
        \ customer sends funds from. \nThese account parameters are used for the sender's\
        \ account verification in processing of the payment."
      type: object
      required:
      - accountName
      properties:
        accountName:
          description: Account Name is the name of the person who holds the bank or
            wallet account which your customer sends funds from to make his payment.
          type: string
          maxLength: 64
          minLength: 1
          pattern: ^(\p{L}\p{M}*?|[\d, ;:_'"!%=@#&\-\.\?\$\(\)\+\*\|])*$
        accountNumber:
          description: Account Number is the number of your customer's bank account
            which your customer sends funds from to make his payment.
          type: string
    AccountCustomerResponseVaPayVerif:
      title: AccountCustomerResponseVaPayVerif
      description: "Parameters of your customer's bank or wallet account which your\
        \ customer sends funds from. \nThese account parameters are used for the sender's\
        \ account verification in processing of the payment."
      type: object
      required:
      - accountNumber
      properties:
        accountName:
          description: Account Name is the name of the person who holds the bank or
            wallet account which your customer sends funds from to make his payment.
          type: string
          maxLength: 64
          minLength: 1
          pattern: ^(\p{L}\p{M}*?|[\d, ;:_'"!%=@#&\-\.\?\$\(\)\+\*\|])*$
        accountNumber:
          description: Account Number is the number of your customer's bank account
            which your customer sends funds from to make his payment.
          type: string
          minLength: 1
          pattern: ^[0-9-]*$
    AccountCustomerUsedForPaymentResponseAbsaPay:
      title: AccountCustomerUsedForPaymentResponseAbsaPay
      description: Contains information about the account used by the customer. This
        is the account that was debited in the transaction.
      type: object
      properties:
        accountNumber:
          description: The customer's account number.
          type: string
    AccountCustomerUsedForPaymentResponseCapitecPay:
      title: AccountCustomerUsedForPaymentResponseCapitecPay
      description: Contains information about the account used by the customer. This
        is the account that was debited in the transaction.
      type: object
      properties:
        accountNumber:
          description: The customer's account number.
          type: string
        bankName:
          description: The name of the bank that holds the customer?s account.
          type: string
          minLength: 1
    AccountCustomerUsedForPaymentResponseOnline:
      title: AccountCustomerUsedForPaymentResponseOnline
      description: Contains information about the account used by the customer. This
        is the account that was debited in the transaction.
      type: object
      properties:
        accountName:
          description: The name of the account holder.
          type: string
          maxLength: 64
          minLength: 1
          pattern: ^(\p{L}\p{M}*?|[\d, ;:_'"!%=@#&\-\.\?\$\(\)\+\*\|])*$
        accountNumber:
          description: The customer's account number.
          type: string
        accountType:
          description: The customer's account type.
          type: string
          maxLength: 64
          minLength: 1
          pattern: ^(\p{L}\p{M}*?|[, ;:_'"!%=@#&\-\.\?\$\(\)\+\*\|])*$
        bankCode:
          description: The bank code of the bank that holds the customer's account.
          type: string
          minLength: 1
        bankName:
          description: The name of the bank that holds the customer's account.
          type: string
          minLength: 1
        bankBranch:
          description: The customer's account type.
          type: string
          minLength: 1
    AccountCustomerUsedForPaymentResponseQrisPay:
      title: AccountCustomerUsedForPaymentResponseQrisPay
      description: Contains information about the account used by the customer. This
        is the account that was debited in the transaction.
      type: object
      properties:
        accountName:
          description: The name of the account holder.
          type: string
          maxLength: 64
          minLength: 1
          pattern: ^(\p{L}\p{M}*?|[\d, ;:_'"!%=@#&\-\.\?\$\(\)\+\*\|])*$
        bankName:
          description: The name of the bank that holds the customer?s account.
          type: string
          minLength: 1
    AccountCustomerUsedForPaymentResponseUpiQR:
      title: AccountCustomerUsedForPaymentResponseUpiQR
      description: Contains information about the account used by the customer. This
        is the account that was debited in the transaction.
      type: object
      properties:
        accountName:
          description: The name of the account holder.
          type: string
          maxLength: 64
          minLength: 1
          pattern: ^(\p{L}\p{M}*?|[\d, ;:_'"!%=@#&\-\.\?\$\(\)\+\*\|])*$
    AccountPayinRequestAbsaPay:
      title: AccountPayinRequestAbsaPay
      description: "Parameters of your customer's bank or wallet account which your\
        \ customer sends funds from. \nThese account parameters are used for the sender's\
        \ account verification in processing of the payment.\nWhich parameters are\
        \ mandatory depends on the payment method and the currency your customer choose\
        \ to pay."
      type: object
      properties:
        accountNumber:
          description: Account Number is the number of your customer's bank account
            which your customer sends funds from to make his payment. Must contain
            only numbers.
          type: string
        accountName:
          description: |-
            Account Name is the name of the person who holds the bank or wallet account which your customer sends funds from to make his payment.
            The name should be in the same format as the account holder name of the account.
          type: string
          maxLength: 64
          minLength: 1
          pattern: ^(\p{L}\p{M}*?|[\d, ;:_'"!%=@#&\-\.\?\$\(\)\+\*\|])*$
    AccountPayinRequestCapitecPay:
      title: AccountPayinRequestCapitecPay
      description: "Parameters of your customer's bank or wallet account which your\
        \ customer sends funds from. \nThis account parameters are used for the sender's\
        \ account verification in processing of the payment.\nWhich parameters are\
        \ mandatory depends on the payment method and the currency your customer choose\
        \ to pay."
      type: object
      properties:
        accountName:
          description: |-
            Account Name is the name of the person who holds the wallet account which your customer sends funds from to make his payment.
            The name should be in the same format as the account holder name of the account. Allows numbers, some special characters and UNICODE symbols, see validation pattern.
          type: string
          maxLength: 64
          minLength: 1
          pattern: ^(\p{L}\p{M}*?|[\d, ;:_'"!%=@#&\-\.\?\$\(\)\+\*\|])*$
        accountNumber:
          description: Account Number is the number of your customer's bank account
            which your customer sends funds from to make his payment. Must contain
            only numbers.
          type: string
          maxLength: 10
          minLength: 10
          pattern: ^[0-9]*$
    AccountPayinRequestCodePayment:
      title: AccountPayinRequestCodePayment
      description: "Parameters of your customer's bank or wallet account which your\
        \ customer sends funds from. \nThese account parameters are used for the sender's\
        \ account verification in processing of the payment.\nWhich parameters are\
        \ mandatory depends on the payment method and the currency your customer choose\
        \ to pay."
      type: object
      required:
      - accountName
      properties:
        accountName:
          description: |-
            Account Name is the name of the person who holds the account which your customer sends funds from to make his payment.
            The name should be in the same format as the account holder name of the account. Allows numbers, some special characters and UNICODE symbols, see validation pattern.
          type: string
          maxLength: 64
          minLength: 1
          pattern: ^(\p{L}\p{M}*?|[\d, ;:_'"!%=@#&\-\.\?\$\(\)\+\*\|])*$
    AccountPayinRequestDuitNow:
      title: AccountPayinRequestDuitNow
      description: "Parameters of your customer's bank or wallet account which your\
        \ customer sends funds from. \nThis account parameters are used for the sender's\
        \ account verification in processing of the payment.\nWhich parameters are\
        \ mandatory depends on the payment method and the currency your customer choose\
        \ to pay."
      type: object
      required:
      - accountName
      properties:
        accountName:
          description: |-
            Account Name is the name of the person who holds the bank or wallet account which your customer sends funds from to make his payment.
            The name should be in the same format as the account holder name of the account. Allows numbers, allows some special characters and UNICODE symbols, see validation pattern.
          type: string
          maxLength: 64
          minLength: 1
          pattern: ^(\p{L}\p{M}*?|[\d, ;:_'"!%=@#&\-\.\?\$\(\)\+\*\|])*$
        accountNumber:
          description: Account Number is the number of your customer's bank account
            which your customer sends funds from to make his payment. Must contain
            only numbers.
          type: string
    AccountPayinRequestEWallet:
      title: AccountPayinRequestEWallet
      description: "Parameters of your customer's bank or wallet account which your\
        \ customer sends funds from. \nThese account parameters are used for the sender's\
        \ account verification in processing of the payment.\nWhich parameters are\
        \ mandatory depends on the payment method and the currency your customer choose\
        \ to pay."
      type: object
      properties:
        accountName:
          description: |-
            Account Name is the name of the person who holds the wallet account which your customer sends funds from to make his payment.
            The name should be in the same format as the account holder name of the account. Allows numbers, some special characters and UNICODE symbols, see validation pattern.
          type: string
          maxLength: 64
          minLength: 1
          pattern: ^(\p{L}\p{M}*?|[\d, ;:_'"!%=@#&\-\.\?\$\(\)\+\*\|])*$
    AccountPayinRequestFpx:
      title: AccountPayinRequestFpx
      description: "Parameters of your customer's bank or wallet account which your\
        \ customer sends funds from. \nThis account parameters are used for the sender's\
        \ account verification in processing of the payment.\nWhich parameters are\
        \ mandatory depends on the payment method and the currency your customer choose\
        \ to pay."
      type: object
      required:
      - accountName
      properties:
        accountName:
          description: |-
            Account Name is the name of the person who holds the bank or wallet account which your customer sends funds from to make his payment.
            The name should be in the same format as the account holder name of the account. Allows numbers, some special characters and UNICODE symbols, see validation pattern.
          type: string
          maxLength: 64
          minLength: 1
          pattern: ^(\p{L}\p{M}*?|[\d, ;:_'"!%=@#&\-\.\?\$\(\)\+\*\|])*$
    AccountPayinRequestIMPS:
      title: AccountPayinRequestIMPS
      description: "Parameters of your customer's bank or wallet account which your\
        \ customer sends funds from. \nThese account parameters are used for the sender's\
        \ account verification in processing of the payment.\nWhich parameters are\
        \ mandatory depends on the payment method and the currency your customer choose\
        \ to pay."
      type: object
      required:
      - accountName
      properties:
        accountName:
          description: "Account Name is the name of the person who holds the bank\
            \ or wallet account which your customer sends funds from to make his payment.\n\
            The name should be in the same format as the account holder name of the\
            \ account. \nAllows numbers, some special characters and UNICODE symbols,\
            \ see validation pattern."
          type: string
          maxLength: 64
          minLength: 1
          pattern: ^(\p{L}\p{M}*?|[\d, ;:_'"!%=@#&\-\.\?\$\(\)\+\*\|])*$
        accountNumber:
          description: Account Number is the number of your customer's bank account
            which your customer sends funds from to make his payment. Must contain
            only numbers.
          type: string
    AccountPayinRequestMobileMoney:
      title: AccountPayinRequestMobileMoney
      description: "Parameters of your customer's bank or wallet account which your\
        \ customer sends funds from. \nThis account parameters are used for the sender's\
        \ account verification in processing of the payment.\nWhich parameters are\
        \ mandatory depends on the payment method and the currency your customer choose\
        \ to pay."
      type: object
      required:
      - accountName
      properties:
        accountName:
          description: "Account Name is the name of the person who holds the bank\
            \ or wallet account which your customer sends funds from to make his payment.\n\
            The name should be in the same format as the account holder name of the\
            \ account. \nAllows numbers, some special characters and UNICODE symbols,\
            \ see validation pattern."
          type: string
          maxLength: 64
          minLength: 1
          pattern: ^(\p{L}\p{M}*?|[\d, ;:_'"!%=@#&\-\.\?\$\(\)\+\*\|])*$
    AccountPayinRequestNedbankDirectEFT:
      title: AccountPayinRequestNedbankDirectEFT
      description: |-
        Parameters of your customer's bank or wallet account which your customer sends funds from. This account parameters are used for the sender's account verification in processing of the payment.
        Which parameters are mandatory depends on the payment method and the currency your customer choose to pay.
      type: object
      required:
      - accountName
      properties:
        accountName:
          description: |-
            Account Name is the name of the person who holds the bank or wallet account which your customer sends funds from to make his payment.
            The name should be in the same format as the account holder name of the account. Allows numbers, some special characters and UNICODE symbols, see validation pattern.
          type: string
          maxLength: 64
          minLength: 1
          pattern: ^(\p{L}\p{M}*?|[\d, ;:_'"!%=@#&\-\.\?\$\(\)\+\*\|])*$
    AccountPayinRequestNetBanking:
      title: AccountPayinRequestNetBanking
      description: "Parameters of your customer's bank or wallet account which your\
        \ customer sends funds from. \nThese account parameters are used for the sender's\
        \ account verification in processing of the payment.\nWhich parameters are\
        \ mandatory depends on the payment method and the currency your customer choose\
        \ to pay."
      type: object
      properties:
        accountName:
          description: "Account Name is the name of the person who holds the bank\
            \ or wallet account which your customer sends funds from to make his payment.\n\
            The name should be in the same format as the account holder name of the\
            \ account. \nAllows numbers, some special characters and UNICODE symbols,\
            \ see validation pattern."
          type: string
          maxLength: 64
          minLength: 1
          pattern: ^(\p{L}\p{M}*?|[\d, ;:_'"!%=@#&\-\.\?\$\(\)\+\*\|])*$
        accountNumber:
          description: Account Number is the number of your customer's bank account
            which your customer sends funds from to make his payment. Must contain
            only numbers.
          type: string
    AccountPayinRequestOffline:
      title: AccountPayinRequestOffline
      description: "Parameters of your customer's bank or wallet account which your\
        \ customer sends funds from. \nThese account parameters are used for the sender's\
        \ account verification in processing of the payment.\nWhich parameters are\
        \ mandatory depends on the payment method and the currency your customer choose\
        \ to pay."
      type: object
      properties:
        accountName:
          description: "Account Name is the name of the person who holds the bank\
            \ or wallet account which your customer sends funds from to make his payment.<br>\n\
            The name should be in the same format as the account holder name of the\
            \ account. \nAllows numbers, some special characters and UNICODE symbols,\
            \ see validation pattern.<br><br>\nIf the currency is **CNY**, **JPY**\
            \ or **KRW**, then `accountName` field is required. Otherwise, it is optional."
          type: string
          maxLength: 64
          minLength: 1
          pattern: ^(\p{L}\p{M}*?|[\d, ;:_'"!%=@#&\-\.\?\$\(\)\+\*\|])*$
        accountNumber:
          description: |-
            Account Number is the number of your customer's bank account which your customer sends funds from to make his payment. Must contain only numbers.<br><br>
            If the currency is **THB**, then `accountNumber` field is required. Otherwise, it is optional.
          type: string
    AccountPayinRequestOnline:
      title: AccountPayinRequestOnline
      description: "Parameters of your customer's bank or wallet account which your\
        \ customer sends funds from. \nThese account parameters are used for the sender's\
        \ account verification in processing of the payment.\nWhich parameters are\
        \ mandatory depends on the payment method and the currency your customer choose\
        \ to pay."
      type: object
      properties:
        accountName:
          description: "Account Name is the name of the person who holds the bank\
            \ or wallet account which your customer sends funds from to make his payment.\n\
            The name should be in the same format as the account holder name of the\
            \ account. \nAllows numbers, some special characters and UNICODE symbols,\
            \ see validation pattern."
          type: string
          maxLength: 64
          minLength: 1
          pattern: ^(\p{L}\p{M}*?|[\d, ;:_'"!%=@#&\-\.\?\$\(\)\+\*\|])*$
        accountNumber:
          description: Account Number is the number of your customer's bank account
            which your customer sends funds from to make his payment. Must contain
            only numbers.
          type: string
    AccountPayinRequestP2AV2:
      title: AccountPayinRequestP2AV2
      description: "Parameters of your customer's bank or wallet account which your\
        \ customer sends funds from. \nThese account parameters are used for the sender's\
        \ account verification in processing of the payment.\nWhich parameters are\
        \ mandatory depends on the payment method and the currency your customer choose\
        \ to pay."
      type: object
      properties:
        accountName:
          description: "Account Name is the name of the person who holds the bank\
            \ or wallet account which your customer sends funds from to make his payment.\n\
            The name should be in the same format as the account holder name of the\
            \ account. \nAllows numbers, some special characters and UNICODE symbols,\
            \ see validation pattern.<br><br>\nIf the currency is **INR**, then `accountName`\
            \ field is required. Otherwise, it is optional."
          type: string
          maxLength: 64
          minLength: 1
          pattern: ^(\p{L}\p{M}*?|[\d, ;:_'"!%=@#&\-\.\?\$\(\)\+\*\|])*$
        accountNumber:
          description: Account Number is the number of your customer's bank account
            which your customer sends funds from to make his payment. Must contain
            only numbers.
          type: string
    AccountPayinRequestPayMe:
      title: AccountPayinRequestPayMe
      description: "Parameters of your customer's bank or wallet account which your\
        \ customer sends funds from. \nThese account parameters are used for the sender's\
        \ account verification in processing of the payment.\nWhich parameters are\
        \ mandatory depends on the payment method and the currency your customer choose\
        \ to pay."
      type: object
      required:
      - accountName
      properties:
        accountName:
          description: "Account Name is the name of the person who holds the bank\
            \ or wallet account which your customer sends funds from to make his payment.\n\
            The name should be in the same format as the account holder name of the\
            \ account. \nAllows numbers, some special characters and UNICODE symbols,\
            \ see validation pattern."
          type: string
          maxLength: 64
          minLength: 1
          pattern: ^(\p{L}\p{M}*?|[\d, ;:_'"!%=@#&\-\.\?\$\(\)\+\*\|])*$
        accountNumber:
          description: Account Number is the number of your customer's bank account
            which your customer sends funds from to make his payment. Must contain
            only numbers.
          type: string
    AccountPayinRequestPayShap:
      title: AccountPayinRequestPayShap
      description: "Parameters of your customer's bank or wallet account which your\
        \ customer sends funds from. \nThis account parameters are used for the sender's\
        \ account verification in processing of the payment.\nWhich parameters are\
        \ mandatory depends on the payment method and the currency your customer choose\
        \ to pay."
      type: object
      properties:
        accountName:
          description: |-
            Account Name is the name of the person who holds the bank or wallet account which your customer sends funds from to make his payment.
            The name should be in the same format as the account holder name of the account.<br><br>
            Allows numbers, some special characters and UNICODE symbols, see validation pattern.
          type: string
          maxLength: 64
          minLength: 1
          pattern: ^(\p{L}\p{M}*?|[\d, ;:_'"!%=@#&\-\.\?\$\(\)\+\*\|])*$
        accountNumber:
          description: |-
            Account Number is the number of your customer's bank account which your customer sends funds from to make his payment. Must contain only numbers.<br><br>
            If `accountNumber` field is provided, you must also fill in `accountName`.
          type: string
          pattern: ^[0-9]*$
    AccountPayinRequestPixQR:
      title: AccountPayinRequestPixQR
      description: "Parameters of your customer's bank or wallet account which your\
        \ customer sends funds from. \nThis account parameters are used for the sender's\
        \ account verification in processing of the payment.\nWhich parameters are\
        \ mandatory depends on the payment method and the currency your customer choose\
        \ to pay."
      type: object
      required:
      - accountName
      properties:
        accountName:
          description: "Account Name is the name of the person who holds the bank\
            \ or wallet account which your customer sends funds from to make his payment.\n\
            The name should be in the same format as the account holder name of the\
            \ account. \nAllows numbers, some special characters and UNICODE symbols,\
            \ see validation pattern."
          type: string
          maxLength: 64
          minLength: 1
          pattern: ^(\p{L}\p{M}*?|[\d, ;:_'"!%=@#&\-\.\?\$\(\)\+\*\|])*$
    AccountPayinRequestPromptPay:
      title: AccountPayinRequestPromptPay
      description: "Parameters of your customer's bank or wallet account which your\
        \ customer sends funds from. \nThese account parameters are used for the sender's\
        \ account verification in processing of the payment.\nWhich parameters are\
        \ mandatory depends on the payment method and the currency your customer choose\
        \ to pay."
      type: object
      required:
      - accountNumber
      properties:
        accountName:
          description: "Account Name is the name of the person who holds the bank\
            \ or wallet account which your customer sends funds from to make his payment.\n\
            The name should be in the same format as the account holder name of the\
            \ account. \nAllows numbers, some special characters and UNICODE symbols,\
            \ see validation pattern."
          type: string
          maxLength: 64
          minLength: 1
          pattern: ^(\p{L}\p{M}*?|[\d, ;:_'"!%=@#&\-\.\?\$\(\)\+\*\|])*$
        accountNumber:
          description: Account Number is the number of your customer's bank account
            which your customer sends funds from to make his payment. Must contain
            only numbers.
          type: string
    AccountPayinRequestPse:
      title: AccountPayinRequestPse
      description: |-
        Parameters of your customer's bank or wallet account which your customer sends funds from. This account parameters are used for the sender's account verification in processing of the payment.
        Which parameters are mandatory depends on the payment method and the currency your customer choose to pay.
      type: object
      required:
      - accountName
      properties:
        accountName:
          description: |-
            Account Name is the name of the person who holds the bank or wallet account which your customer sends funds from to make his payment.
            The name should be in the same format as the account holder name of the account. Allows numbers, some special characters and UNICODE symbols, see validation pattern.
          type: string
          maxLength: 64
          minLength: 1
          pattern: ^(\p{L}\p{M}*?|[\d, ;:_'"!%=@#&\-\.\?\$\(\)\+\*\|])*$
    AccountPayinRequestQrPh:
      title: AccountPayinRequestQrPh
      description: "Parameters of your customer's bank or wallet account which your\
        \ customer sends funds from. \nThis account parameters are used for the sender's\
        \ account verification in processing of the payment.\nWhich parameters are\
        \ mandatory depends on the payment method and the currency your customer choose\
        \ to pay."
      type: object
      properties:
        accountName:
          description: |-
            Account Name is the name of the person who holds the bank or wallet account which your customer sends funds from to make his payment.
            The name should be in the same format as the account holder name of the account. Allows numbers, some special characters and UNICODE symbols, see validation pattern.
          type: string
          maxLength: 64
          minLength: 1
          pattern: ^(\p{L}\p{M}*?|[\d, ;:_'"!%=@#&\-\.\?\$\(\)\+\*\|])*$
        accountNumber:
          description: Account Number is the number of your customer's bank account
            which your customer sends funds from to make his payment. Must contain
            only numbers.
          type: string
    AccountPayinRequestQrisPay:
      title: AccountPayinRequestQrisPay
      description: "Parameters of your customer's bank or wallet account which your\
        \ customer sends funds from. \nThese account parameters are used for the sender's\
        \ account verification in processing of the payment.\nWhich parameters are\
        \ mandatory depends on the payment method and the currency your customer choose\
        \ to pay."
      type: object
      properties:
        accountName:
          description: "Account Name is the name of the person who holds the bank\
            \ or wallet account which your customer sends funds from to make his payment.\n\
            The name should be in the same format as the account holder name of the\
            \ account. \nAllows numbers, some special characters and UNICODE symbols,\
            \ see validation pattern."
          type: string
          maxLength: 64
          minLength: 1
          pattern: ^(\p{L}\p{M}*?|[\d, ;:_'"!%=@#&\-\.\?\$\(\)\+\*\|])*$
        accountNumber:
          description: Account Number is the number of your customer's bank account
            which your customer sends funds from to make his payment. Must contain
            only numbers.
          type: string
    AccountPayinRequestUpiCollect:
      title: AccountPayinRequestUpiCollect
      description: |-
        Parameters of your customer's bank or wallet account which your customer sends funds from. This account parameters are used for the sender's account verification in processing of the payment.
        Which parameters are mandatory depends on the payment method and the currency your customer choose to pay.
      type: object
      required:
      - accountName
      properties:
        accountName:
          description: |-
            Account Name is the name of the person who holds the bank or wallet account which your customer sends funds from to make his payment.
            The name should be in the same format as the account holder name of the account. Allows numbers, some special characters and UNICODE symbols, see validation pattern.
          type: string
          maxLength: 64
          minLength: 1
          pattern: ^(\p{L}\p{M}*?|[\d, ;:_'"!%=@#&\-\.\?\$\(\)\+\*\|])*$
    AccountPayinRequestUpiQR:
      title: AccountPayinRequestUpiQR
      description: "Parameters of your customer's bank or wallet account which your\
        \ customer sends funds from. \nThese account parameters are used for the sender's\
        \ account verification in processing of the payment.\nWhich parameters are\
        \ mandatory depends on the payment method and the currency your customer choose\
        \ to pay."
      type: object
      properties:
        accountName:
          description: "Account Name is the name of the person who holds the bank\
            \ or wallet account which your customer sends funds from to make his payment.\n\
            The name should be in the same format as the account holder name of the\
            \ account. \nAllows numbers, some special characters and UNICODE symbols,\
            \ see validation pattern."
          type: string
          maxLength: 64
          minLength: 1
          pattern: ^(\p{L}\p{M}*?|[\d, ;:_'"!%=@#&\-\.\?\$\(\)\+\*\|])*$
    AccountPayinRequestVaPay:
      title: AccountPayinRequestVaPay
      description: "Parameters of your customer's bank or wallet account which your\
        \ customer sends funds from. \nThese account parameters are used for the sender's\
        \ account verification in processing of the payment.\nWhich parameters are\
        \ mandatory depends on the payment method and the currency your customer choose\
        \ to pay."
      type: object
      properties:
        accountName:
          description: "Account Name is the name of the person who holds the bank\
            \ or wallet account which your customer sends funds from to make his payment.<br>\n\
            The name should be in the same format as the account holder name of the\
            \ account. \nAllows numbers, some special characters and UNICODE symbols,\
            \ see validation pattern.<br><br>\nIf the currency is **TWD**, then `accountName`\
            \ field is optional. Otherwise, it is required."
          type: string
          maxLength: 64
          minLength: 1
          pattern: ^(\p{L}\p{M}*?|[\d, ;:_'"!%=@#&\-\.\?\$\(\)\+\*\|])*$
        accountNumber:
          description: Account Number is the number of your customer's bank account
            which your customer sends funds from to make his payment. Must contain
            only numbers.
          type: string
    AccountPayinRequestVaPayVerif:
      title: AccountPayinRequestVaPayVerif
      description: "Parameters of your customer's bank or wallet account which your\
        \ customer sends funds from. \nThese account parameters are used for the sender's\
        \ account verification in processing of the payment.\nWhich parameters are\
        \ mandatory depends on the payment method and the currency your customer choose\
        \ to pay."
      type: object
      required:
      - accountNumber
      properties:
        accountName:
          description: "Account Name is the name of the person who holds the bank\
            \ or wallet account which your customer sends funds from to make his payment.\n\
            The name should be in the same format as the account holder name of the\
            \ account. \nAllows numbers, some special characters and UNICODE symbols,\
            \ see validation pattern."
          type: string
          maxLength: 64
          minLength: 1
          pattern: ^(\p{L}\p{M}*?|[\d, ;:_'"!%=@#&\-\.\?\$\(\)\+\*\|])*$
        accountNumber:
          description: Account Number is the number of your customer's bank account
            which your customer sends funds from to make his payment.
          examples:
          - 555-666-777
          type: string
          minLength: 1
          pattern: ^[0-9-]*$
    AccountPayoutRequestBankTransfer:
      title: AccountPayoutRequestBankTransfer
      description: Parameters of a customer's bank account where your customer would
        like his funds to be transferred.
      type: object
      required:
      - accountName
      - accountNumber
      properties:
        accountName:
          description: Name of a customer's bank account where your customer would
            like his funds to be transferred.
          type: string
          maxLength: 64
          minLength: 1
          pattern: ^(\p{L}\p{M}*?|[\d, ;:_'"!%=@#&\-\.\?\$\(\)\+\*\|])*$
        accountNumber:
          description: |-
            Number of a customer's bank account where your customer would like his funds to be transferred.<br><br>* If the currency is **ARS**, then the `accountNumber` field must contain 22-30 characters.
            * For other currencies, the `accountNumber` field must contain 1-20 characters.
          type: string
          maxLength: 30
          minLength: 1
          pattern: ^[0-9]*$
        accountType:
          description: |-
            Account type of the receiving bank account.<br><br>
            * If the currency is **JPY**, then `accountType` field is required and requested value has to be "savings", "checking", "private", "corporate", "general" or "current".<br>
            * If the currency is **ZAR** or **NAD**, then `accountType` field is required and requested value has to be "savings", "cheque", "transmission" or "current".<br>
            * If the currency is **COP** or **MXN**, then `accountType` field is required and requested value has to be "savings" or "checking".<br><br>
            Otherwise, `accountType` field is optional.
          type: string
        bankCode:
          description: |-
            Bank code of the bank where your customer would like his funds to be transferred.<br><br>
            If the currency is **INR**, then `bankCode` field is required and requested value has to be an Indian Financial System Code (IFSC bank code). Otherwise, it is optional.
          type: string
          minLength: 1
        bankName:
          description: Name of the bank where your customer would like his funds to
            be transferred.
          type: string
          minLength: 1
        bankBranch:
          description: |-
            Branch name of the bank where your customer would like his funds to be transferred.<br><br>
            If the currency is **JPY** or **TWD**, then `bankBranch` field is required. Otherwise, it is optional.
          type: string
          minLength: 1
        bankCity:
          description: City of the bank where your customer would like his funds to
            be transferred.
          type: string
          minLength: 1
        bankProvince:
          description: Province of the bank where your customer would like his funds
            to be transferred.
          type: string
          minLength: 1
    AccountPayoutRequestCryptoTransfer:
      title: AccountPayoutRequestCryptoTransfer
      description: Parameters of a customer's crypto wallet information where your
        customer would like his funds to be transferred.
      type: object
      required:
      - accountNumber
      properties:
        accountNumber:
          description: Address of a customer's crypto wallet where your customer would
            like his funds to be transferred.
          type: string
          maxLength: 62
          minLength: 1
          pattern: ^[a-zA-Z0-9]*$
    AccountPayoutRequestEmailTransfer:
      title: AccountPayoutRequestEmailTransfer
      description: Parameters of a customer's bank account where your customer would
        like his funds to be transferred.
      type: object
      properties:
        accountName:
          description: |-
            Name of a person who holds a wallet where your customer would like his funds to be transferred.<br><br>
            If the currency is **BRL** then `accountName` field is required. Otherwise, it is optional.
          type: string
          maxLength: 64
          minLength: 1
          pattern: ^(\p{L}\p{M}*?|[\d, ;:_'"!%=@#&\-\.\?\$\(\)\+\*\|])*$
    AccountPayoutRequestPhoneNumberTransfer:
      title: AccountPayoutRequestPhoneNumberTransfer
      description: Parameters of a customer's bank account where your customer would
        like his funds to be transferred.
      type: object
      properties:
        accountName:
          description: |-
            Name of a person who holds a wallet where your customer would like his funds to be transferred.<br><br>
            If the currency is **BRL** then `accountName` field is required. Otherwise, it is optional.
          type: string
          maxLength: 64
          minLength: 1
          pattern: ^(\p{L}\p{M}*?|[\d, ;:_'"!%=@#&\-\.\?\$\(\)\+\*\|])*$
    AccountPayoutRequestRandomKeyTransfer:
      title: AccountPayoutRequestRandomKeyTransfer
      description: Parameters of a customer's bank account where your customer would
        like his funds to be transferred.
      type: object
      properties:
        accountName:
          description: |-
            Name of a person who holds a wallet where your customer would like his funds to be transferred.<br><br>
            If the currency is **BRL** then `accountName` field is required. Otherwise, it is optional.
          type: string
          maxLength: 64
          minLength: 1
          pattern: ^(\p{L}\p{M}*?|[\d, ;:_'"!%=@#&\-\.\?\$\(\)\+\*\|])*$
    AccountPayoutRequestTaxIdTransfer:
      title: AccountPayoutRequestTaxIdTransfer
      description: Parameters of a customer's bank account where your customer would
        like his funds to be transferred.
      type: object
      properties:
        accountName:
          description: |-
            Name of a person who holds a wallet where your customer would like his funds to be transferred.<br><br>
            If the currency is **BRL** then `accountName` field is required. Otherwise, it is optional.
          type: string
          maxLength: 64
          minLength: 1
          pattern: ^(\p{L}\p{M}*?|[\d, ;:_'"!%=@#&\-\.\?\$\(\)\+\*\|])*$
    AccountPayoutRequestWalletTransfer:
      title: AccountPayoutRequestWalletTransfer
      description: Parameters of a customer's wallet information where your customer
        would like his funds to be transferred.
      type: object
      properties:
        accountName:
          description: |-
            Name of a person who holds a wallet where your customer would like his funds to be transferred.<br><br>
            If the currency is **GHS** or **KES** then `accountName` field is required. Otherwise, it is optional.
          type: string
          maxLength: 64
          minLength: 1
          pattern: ^(\p{L}\p{M}*?|[\d, ;:_'"!%=@#&\-\.\?\$\(\)\+\*\|])*$
        accountNumber:
          description: Address of customer's wallet where your customer would like
            his funds to be transferred.
          examples:
          - 123456789@paytm
          type: string
          maxLength: 100
          minLength: 1
          pattern: ^[a-zA-Z0-9_\-\.]+@[a-zA-Z0-9_\.]+$
    AccountResponseCodePayment:
      title: AccountResponseCodePayment
      description: "Parameters of a Convenience Store Payment that your customer use\
        \ to send funds to make a payment. \nThese parameters has to be provided to\
        \ your customer in form of an payment instructions."
      type: object
      required:
      - accountNumber
      properties:
        accountNumber:
          description: |-
            Payment Code that we expect your customer to submit into kiosk in convenience store during the payment.
            This parameter is to be shown to your customer in the payment instructions.
          type: string
          maxLength: 30
          minLength: 1
          pattern: ^[a-zA-Z0-9]*$
    AccountResponseCryptoOffline:
      title: AccountResponseCryptoOffline
      description: "Parameters of a crypto wallet where we expect that your customer\
        \ send funds to make a payment. \nThese parameters has to be provided to your\
        \ customer in form of an payment instructions.\nThe returned parameters are\
        \ depended on the payment method and currency your customer choose to pay."
      type: object
      required:
      - accountNumber
      properties:
        accountNumber:
          description: |-
            Address of the crypto wallet where we expect that your customer sends funds to make a payment.
            This parameter is to be shown to your customer in the payment instructions.
          type: string
    AccountResponseDetail:
      title: AccountResponseDetail
      type: object
      properties:
        accountName:
          description: Name of the bank account.
          type: string
          maxLength: 64
          minLength: 1
          pattern: ^(\p{L}\p{M}*?|[\d, ;:_'"!%=@#&\-\.\?\$\(\)\+\*\|])*$
        accountNumber:
          description: Number of the bank account.
          type: string
        accountType:
          description: Type of the bank account.
          type: string
          maxLength: 64
          minLength: 1
          pattern: ^(\p{L}\p{M}*?|[, ;:_'"!%=@#&\-\.\?\$\(\)\+\*\|])*$
        bankCode:
          description: Bank code of the bank.
          type: string
          minLength: 1
        paymentOperator:
          $ref: '#/components/schemas/PaymentOperatorIncoming'
          description: Payment operator code.
        bankName:
          description: Name of the bank.
          type: string
          minLength: 1
        bankBranch:
          description: Branch name of the bank.
          type: string
          minLength: 1
        bankCity:
          description: City of the bank.
          type: string
          minLength: 1
        bankProvince:
          description: Province of the bank.
          type: string
          minLength: 1
    AccountResponseOffline:
      title: AccountResponseOffline
      description: |-
        Parameters of a bank account where we expect that your customer send funds to make a payment. These account parameters has to be provided to your customer in form of an payment instructions.
        The returned parameters are depended on the payment method and currency your customer choose to pay.
      type: object
      required:
      - accountName
      - accountNumber
      properties:
        accountName:
          description: |-
            Name of the bank account where we expect that your customer sends funds to make a payment.
            This parameter is to be shown to your customer in the payment instructions.
          type: string
          maxLength: 64
          minLength: 1
          pattern: ^(\p{L}\p{M}*?|[\d, ;:_'"!%=@#&\-\.\?\$\(\)\+\*\|])*$
        accountNumber:
          description: |-
            Number of the bank account where we expect that your customer sends funds to make a payment.
            This parameter is to be shown to your customer in the payment instructions.
          type: string
        accountType:
          description: Account type of the receiving bank account e.g. Normal / Current.
            It is used for payments in JPY currency.
          type: string
        bankCode:
          description: |-
            Bank code of the bank where we expect that your customer sends funds to make a payment.
            If this parameter contains any value then show it to your customer in the payment instructions.
          type: string
          minLength: 1
        bankName:
          description: |-
            Name of the bank where we expect that your customer sends funds to make a payment.
            If this parameter contains any value then show it to your customer in the payment instructions.
          type: string
          minLength: 1
        bankBranch:
          description: |-
            Branch name of the bank where we expect that your customer sends funds to make a payment.
            If this parameter contains any value then show it to your customer in the payment instructions.
          type: string
          minLength: 1
        bankCity:
          description: |-
            City of the bank where we expect that your customer sends funds to make a payment.
            If this parameter contains any value then show it to your customer in the payment instructions.
          type: string
          minLength: 1
        bankProvince:
          description: |-
            Province of the bank where we expect that your customer sends funds to make a payment.
            If this parameter contains any value then show it to your customer in the payment instructions.
          type: string
          minLength: 1
    AccountResponseOnlyWithBank:
      title: AccountResponseOnlyWithBank
      description: |-
        Parameters of a bank account where we expect that your customer send funds to make a payment. These account parameters has to be provided to your customer in form of an payment instructions.
        The returned parameters are depended on the payment method and currency your customer choose to pay.
      deprecated: true
      type: object
      properties:
        accountName:
          deprecated: true
          type: string
        accountNumber:
          deprecated: true
          type: string
        bankCode:
          description: |-
            Bank code of the bank where we expect that your customer sends funds to make a payment.
            If this parameter contains any value then show it to your customer in the payment instructions.
          type: string
          minLength: 1
        bankName:
          description: |-
            Name of the bank where we expect that your customer sends funds to make a payment.
            If this parameter contains any value then show it to your customer in the payment instructions.
          type: string
          minLength: 1
        bankBranch:
          description: |-
            Branch name of the bank where we expect that your customer sends funds to make a payment.
            If this parameter contains any value then show it to your customer in the payment instructions.
          deprecated: true
          type: string
          minLength: 1
        bankCity:
          description: |-
            City of the bank where we expect that your customer sends funds to make a payment.
            If this parameter contains any value then show it to your customer in the payment instructions.
          deprecated: true
          type: string
          minLength: 1
        bankProvince:
          description: |-
            Province of the bank where we expect that your customer sends funds to make a payment.
            If this parameter contains any value then show it to your customer in the payment instructions.
          deprecated: true
          type: string
          minLength: 1
    AccountResponseP2AV2:
      title: AccountResponseP2AV2
      description: |-
        Parameters of a bank account where we expect that your customer send funds to make a payment. These account parameters has to be provided to your customer in form of an payment instructions.
        The returned parameters are depended on the payment method and currency your customer choose to pay.
      deprecated: true
      type: object
      properties:
        accountName:
          description: |-
            Name of the bank account where we expect that your customer sends funds to make a payment.
            If this parameter contains any value then show it to your customer in the payment instructions.
          type: string
          maxLength: 64
          minLength: 1
          pattern: ^(\p{L}\p{M}*?|[\d, ;:_'"!%=@#&\-\.\?\$\(\)\+\*\|])*$
        accountNumber:
          description: |-
            Number of the bank account where we expect that your customer sends funds to make a payment.
            If this parameter contains any value then show it to your customer in the payment instructions.
          type: string
        bankCode:
          description: |-
            Bank code of the bank where we expect that your customer sends funds to make a payment.
            If this parameter contains any value then show it to your customer in the payment instructions.
          deprecated: true
          type: string
          minLength: 1
        bankName:
          description: |-
            Name of the bank where we expect that your customer sends funds to make a payment.
            If this parameter contains any value then show it to your customer in the payment instructions.
          deprecated: true
          type: string
          minLength: 1
        bankBranch:
          description: |-
            Branch name of the bank where we expect that your customer sends funds to make a payment.
            If this parameter contains any value then show it to your customer in the payment instructions.
          deprecated: true
          type: string
          minLength: 1
        bankCity:
          description: |-
            City of the bank where we expect that your customer sends funds to make a payment.
            If this parameter contains any value then show it to your customer in the payment instructions.
          deprecated: true
          type: string
          minLength: 1
        bankProvince:
          description: |-
            Province of the bank where we expect that your customer sends funds to make a payment.
            If this parameter contains any value then show it to your customer in the payment instructions.
          deprecated: true
          type: string
          minLength: 1
    AccountResponsePayMe:
      title: AccountResponsePayMe
      description: "Parameters of a bank account where we expect that your customer\
        \ send funds to make a payment. \nThese account parameters has to be provided\
        \ to your customer in form of an payment instructions.\nThe returned parameters\
        \ are depended on the payment method and currency your customer choose to\
        \ pay."
      type: object
      properties:
        accountName:
          description: |-
            Name of the bank account where we expect that your customer sends funds to make a payment.
            This parameter is to be shown to your customer in the payment instructions.
          type: string
          maxLength: 64
          minLength: 1
          pattern: ^(\p{L}\p{M}*?|[\d, ;:_'"!%=@#&\-\.\?\$\(\)\+\*\|])*$
    AccountResponseQrPh:
      title: AccountResponseQrPh
      description: "Parameters of a bank account where we expect that your customer\
        \ send funds to make a payment. \nThese account parameters has to be provided\
        \ to your customer in form of an payment instructions.\nThe returned parameters\
        \ are depended on the payment method and currency your customer choose to\
        \ pay."
      type: object
      required:
      - accountName
      properties:
        accountName:
          description: |-
            Name of the bank account where we expect that your customer sends funds to make a payment.
            This parameter is to be shown to your customer in the payment instructions.
          type: string
          maxLength: 64
          minLength: 1
          pattern: ^(\p{L}\p{M}*?|[\d, ;:_'"!%=@#&\-\.\?\$\(\)\+\*\|])*$
    AccountResponseWithBank:
      title: AccountResponseWithBank
      description: "Parameters of a bank account where we expect that your customer\
        \ send funds to make a payment. \nThese account parameters has to be provided\
        \ to your customer in form of an payment instructions.\nThe returned parameters\
        \ are depended on the payment method and currency your customer choose to\
        \ pay."
      type: object
      required:
      - accountName
      - accountNumber
      properties:
        accountName:
          description: |-
            Name of the bank account where we expect that your customer sends funds to make a payment.
            This parameter is to be shown to your customer in the payment instructions.
          type: string
          maxLength: 64
          minLength: 1
          pattern: ^(\p{L}\p{M}*?|[\d, ;:_'"!%=@#&\-\.\?\$\(\)\+\*\|])*$
        accountNumber:
          description: |-
            Number of the bank account where we expect that your customer sends funds to make a payment.
            This parameter is to be shown to your customer in the payment instructions.
          type: string
        bankCode:
          description: |-
            Bank code of the bank where we expect that your customer sends funds to make a payment.
            If this parameter contains any value then show it to your customer in the payment instructions.
          type: string
          minLength: 1
        bankName:
          description: |-
            Name of the bank where we expect that your customer sends funds to make a payment.
            If this parameter contains any value then show it to your customer in the payment instructions.
          type: string
          minLength: 1
        bankBranch:
          description: |-
            Branch name of the bank where we expect that your customer sends funds to make a payment.
            If this parameter contains any value then show it to your customer in the payment instructions.
          type: string
          minLength: 1
        bankCity:
          description: |-
            City of the bank where we expect that your customer sends funds to make a payment.
            If this parameter contains any value then show it to your customer in the payment instructions.
          type: string
          minLength: 1
        bankProvince:
          description: |-
            Province of the bank where we expect that your customer sends funds to make a payment.
            If this parameter contains any value then show it to your customer in the payment instructions.
          type: string
          minLength: 1
    AccountSettlementRequestCryptoTransfer:
      title: AccountSettlementRequestCryptoTransfer
      description: Parameters of a customer's crypto wallet information where your
        customer would like his funds to be transferred.
      type: object
      required:
      - accountNumber
      properties:
        accountNumber:
          description: Address of a customer's crypto wallet where your customer would
            like his funds to be transferred.
          type: string
          maxLength: 62
          minLength: 1
          pattern: ^[a-zA-Z0-9]*$
    AuthTokenAction:
      title: AuthTokenAction
      description: Action code specifying endpoints that can be called with the issued
        token.
      examples:
      - PAYIN_CREATE
      type: string
      enum:
      - PAYIN_CREATE
      - PAYIN_INFO
      - PAYOUT_CREATE
      - PAYOUT_INFO
      - WALLET_OPERATION_CREATE
    AuthTokenByActionRequest:
      title: AuthTokenByActionRequest
      type: object
      required:
      - merchantCode
      - action
      - idPayment
      properties:
        merchantCode:
          description: Your Merchant ID. This Merchant ID is obtained upon [Merchant
            enrollment process](sandbox.html#sandbox-account-registration).
          examples:
          - YOUR_MERCHANT_ID
          type: string
          minLength: 1
        secret:
          description: See [Merchant Secret Key](terminology.html#term-Merchant-secret).
          examples:
          - YOUR_MERCHANT_SECRET_KEY
          type: string
          maxLength: 1000
          minLength: 1
        validitySecs:
          description: Validity of the token in seconds. Maximum value 3600, default
            value 1800 (30 minutes).
          examples:
          - 600
          type: integer
          format: int32
          minimum: 60
          maximum: 3600
        action:
          $ref: '#/components/schemas/AuthTokenAction'
        idPayment:
          description: Id of the specific payin/payout to allow access to.
          type: string
        money:
          $ref: '#/components/schemas/Money'
          description: If set, you can use the issued token to create a payment with
            the currency and amount exactly as specified in `money`.
        moneyProvided:
          $ref: '#/components/schemas/Money'
          description: Fill to allow only wallet operations with fixed provided amount
            (and calculated required amount).
        currencyCodeRequired:
          $ref: '#/components/schemas/CurrencyCode'
        moneyRequired:
          $ref: '#/components/schemas/Money'
          description: Fill to allow only wallet operations with fixed required amount
            (and calculated provided amount)
        currencyCodeProvided:
          $ref: '#/components/schemas/CurrencyCode'
        settlementMethod:
          $ref: '#/components/schemas/SettlementMethod'
          description: Fill to specify the merchant's crypto wallet to which the incoming
            payment should be transferred.
        timestamp:
          description: Timestamp of the request in seconds since epoch. Required when
            using signature authorization.
          examples:
          - 1745915124
          type: integer
          format: int64
        idCustomer:
          description: Customer identification, will be generated if not set. Used
            for top-ups and personal wallet operations.
          type: string
    AuthTokenRequest:
      title: AuthTokenRequest
      type: object
      required:
      - merchantCode
      properties:
        merchantCode:
          description: Your Merchant ID. This Merchant ID is obtained upon [Merchant
            enrollment process](sandbox.html#sandbox-account-registration).
          examples:
          - YOUR_MERCHANT_ID
          type: string
          minLength: 1
        secret:
          description: See [Merchant Secret Key](terminology.html#term-Merchant-secret).
          examples:
          - YOUR_MERCHANT_SECRET_KEY
          type: string
          maxLength: 1000
          minLength: 1
        validitySecs:
          description: Validity of the token in seconds. Maximum value 3600, default
            value 1800 (30 minutes).
          examples:
          - 600
          type: integer
          format: int32
          minimum: 60
          maximum: 3600
        operations:
          description: Endpoints that can be called with the issued token. See [Fine-grained
            privileges](general.html#fine-grained-privileges) description.
          type: array
          minItems: 1
          items:
            description: Allowed endpoint, format "METHOD url".
            examples:
            - |-
              ```
              [
                "POST /payins/!availablePaymentOptions",
                "POST /payins/TST-112233",
                "GET /payins/TST-112233"
              ]
              ```
            type: string
            maxLength: 1000
            minLength: 1
            pattern: ^(POST|GET|PATCH|PUT|DELETE) /[^ ]+
        money:
          $ref: '#/components/schemas/Money'
          description: If set, you can use the issued token to create a payment with
            the currency and amount exactly as specified in `money`.
        moneyProvided:
          $ref: '#/components/schemas/Money'
          description: Fill to allow only wallet operations with fixed provided amount
            (and calculated required amount).
        currencyCodeRequired:
          $ref: '#/components/schemas/CurrencyCode'
        moneyRequired:
          $ref: '#/components/schemas/Money'
          description: Fill to allow only wallet operations with fixed required amount
            (and calculated provided amount)
        currencyCodeProvided:
          $ref: '#/components/schemas/CurrencyCode'
        settlementMethod:
          $ref: '#/components/schemas/SettlementMethod'
          description: Fill to specify the merchant's crypto wallet to which the incoming
            payment should be transferred.
        timestamp:
          description: Timestamp of the request in seconds since epoch. Required when
            using signature authorization.
          examples:
          - 1745915124
          type: integer
          format: int64
        idCustomer:
          description: Customer identification, will be generated if not set. Used
            for top-ups and personal wallet operations.
          type: string
    AuthTokenResponse:
      title: AuthTokenResponse
      description: Auth token for required operations. The Auth token payload can
        be decoded at [JWT official webiste](https://jwt.io/).
      type: object
      required:
      - token
      properties:
        token:
          description: |-
            The JWT, its content can be [decoded at jwt.io](https://jwt.io/). See also [token content explanation](https://jwt.io/introduction).

            Example content

            ```
            {
              "operations": [
                "POST /payins/123"
              ],
              "idCustomer: "CUSTOMER_ID",
              "exp": 1619518389,
              "jti": "53ee5f14-5ca5-4034-815e-815de85b96c5",
              "iat": 1619514789,
              "sub": "YOUR_MERCHANT_ID"
            }
            ```

            The token contains the following data
             - operations - allowed endpoints, see [Fine-grained privileges](general.html#fine-grained-privileges) for details.
             - idCustomer - customer identification, either provided on input, or automatically generated.
             - exp - expiration time as number of seconds from 1970-01-01T00:00:00Z UTC
             - jti - JWT id
             - iat - issued at, time when the token was created as number of seconds from 1970-01-01T00:00:00Z UTC
             - sub - subject, the [merchant code](terminology.html#term-Merchant-code)
          examples:
          - eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJvcGVyYXRpb25zIjpbIlBPU1QgL3BheW1lbnRzLzEyMyJdLCJleHAiOjE2MTk1MTgzODksImp0aSI6IjUzZWU1ZjE0LTVjYTUtNDAzNC04MTVlLTgxNWRlODViOTZjNSIsImlhdCI6MTYxOTUxNDc4OSwic3ViIjoiWU9VUl9NRVJDSEFOVF9DT0RFIn0.BpeTH0t9eLRKEsuukq8d9o1XTaQhuqfHOpmdTUqGRW0
          type: string
          minLength: 1
    AvailableForexCurrencyPair:
      title: AvailableForexCurrencyPair
      type: object
      required:
      - baseCurrencyCode
      - quoteCurrencyCode
      properties:
        baseCurrencyCode:
          $ref: '#/components/schemas/CurrencyCode'
        quoteCurrencyCode:
          $ref: '#/components/schemas/CurrencyCode'
    AvailableForexCurrencyPairList:
      title: AvailableForexCurrencyPairList
      type: object
      properties:
        data:
          type: array
          uniqueItems: true
          items:
            $ref: '#/components/schemas/AvailableForexCurrencyPair'
    AvailablePayinOption:
      title: AvailablePayinOption
      type: object
      required:
      - paymentMethodCode
      properties:
        paymentMethodCode:
          $ref: '#/components/schemas/PayinMethodCode'
        paymentOperators:
          type: array
          items:
            $ref: '#/components/schemas/PaymentOperatorIncoming'
            description: |-
              PaymentOperator is a financial institution that manages transactions in your customer's account (such as banks, card payment processors, mobile wallets and so on).
              The payment operators are assigned to the payment methods according to your account configuration.

              For supported payment operators please refer to [`GET /payment-operators`](#operations-Payments-getPaymentOperators).
        segmentCode:
          $ref: '#/components/schemas/SegmentCode'
    AvailablePayinOptionList:
      title: AvailablePayinOptionList
      description: |-
        The list of possible payment options.
        The list always contains at least one payment option.
        If no available payment options are found, an HTTP 406 response is returned with the error code.
      type: object
      properties:
        data:
          type: array
          uniqueItems: true
          items:
            $ref: '#/components/schemas/AvailablePayinOption'
        dataVariantCurrencies:
          type: array
          uniqueItems: true
          items:
            $ref: '#/components/schemas/AvailablePayinOptionVariantCurrency'
    AvailablePayinOptionVariantCurrency:
      title: AvailablePayinOptionVariantCurrency
      type: object
      required:
      - paymentMethodCode
      - money
      properties:
        paymentMethodCode:
          $ref: '#/components/schemas/PayinMethodCode'
        paymentOperators:
          type: array
          items:
            $ref: '#/components/schemas/PaymentOperatorIncoming'
            description: |-
              PaymentOperator is a financial institution that manages transactions in your customer's account (such as banks, card payment processors, mobile wallets and so on).
              The payment operators are assigned to the payment methods according to your account configuration.

              For supported payment operators please refer to [`GET /payment-operators`](#operations-Payments-getPaymentOperators).
        segmentCode:
          $ref: '#/components/schemas/SegmentCode'
        money:
          $ref: '#/components/schemas/Money'
    AvailablePayoutOption:
      title: AvailablePayoutOption
      type: object
      required:
      - paymentMethodCode
      properties:
        paymentMethodCode:
          $ref: '#/components/schemas/PayoutMethodCode'
        paymentOperators:
          type: array
          items:
            $ref: '#/components/schemas/PaymentOperatorOutgoing'
        segmentCode:
          $ref: '#/components/schemas/SegmentCode'
    AvailablePayoutOptionList:
      title: AvailablePayoutOptionList
      description: |-
        The list of possible payment options.
        The list always contains at least one payment option.
        If no available payment options are found, an HTTP 406 response is returned with the error code.
      type: object
      properties:
        data:
          type: array
          uniqueItems: true
          items:
            $ref: '#/components/schemas/AvailablePayoutOption'
    AvailableTopUpOption:
      title: AvailableTopUpOption
      type: object
      required:
      - moneyPay
      - moneyReceive
      - paymentMethodCode
      properties:
        moneyPay:
          $ref: '#/components/schemas/Money'
        moneyReceive:
          $ref: '#/components/schemas/Money'
        paymentMethodCode:
          $ref: '#/components/schemas/PayinMethodCode'
        paymentOperators:
          type: array
          items:
            $ref: '#/components/schemas/PaymentOperatorIncoming'
            description: |-
              PaymentOperator is a financial institution that manages transactions in your customer's account (such as banks, card payment processors, mobile wallets and so on).
              The payment operators are assigned to the payment methods according to your account configuration.

              For supported payment operators please refer to [`GET /payment-operators`](#operations-Payments-getPaymentOperators).
    AvailableTopUpOptions:
      title: AvailableTopUpOptions
      description: |-
        The list of possible top up options.
        The list always contains at least one payment option.
        If no available payment options are found, an HTTP 406 response is returned with the error code.
      type: object
      properties:
        options:
          type: array
          items:
            $ref: '#/components/schemas/AvailableTopUpOption'
    Balance:
      title: Balance
      type: object
      required:
      - currencyCode
      - balance
      - availableBalance
      - pendingSettlementAmount
      - pendingPayoutAmount
      - lastBalanceMovement
      properties:
        currencyCode:
          $ref: '#/components/schemas/CurrencyCode'
        balance:
          description: Current balance, may include pending payouts or settlements.
          examples:
          - 42.05
          type: number
          minimum: -9223372036854775808
          maximum: 9223372036854775807
        availableBalance:
          description: Available balance, ready to use for payouts, settlements or
            other movements. It is calculated as balance - (pendingSettlementAmount
            + pendingPayoutAmount).
          examples:
          - 42.05
          type: number
          minimum: -9223372036854775808
          maximum: 9223372036854775807
        pendingSettlementAmount:
          description: Amount of settlements waiting to be processed.
          examples:
          - 42.05
          type: number
          minimum: -9223372036854775808
          maximum: 9223372036854775807
        pendingPayoutAmount:
          description: Amount of payouts waiting to be processed.
          examples:
          - 42.05
          type: number
          minimum: -9223372036854775808
          maximum: 9223372036854775807
        lastBalanceMovement:
          description: Date and time of last update of balance or available balance
            on this account.
          type: string
          format: date-time
    BalanceList:
      title: BalanceList
      description: The list of account balances by currency.
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/Balance'
    BankTransferMethod:
      title: BANK_TRANSFER
      description: |-
        Payment method for sending funds from your account to external bank account using a country specific payment system to process bank transfers.<br>
        It requires a customer to provide a receiving bank account details which are required by a local payment system to process bank transfers.
      type: object
      required:
      - account
      - paymentMethodCode
      properties:
        account:
          $ref: '#/components/schemas/AccountPayoutRequestBankTransfer'
        identifyingReference:
          $ref: '#/components/schemas/IdentifyingReference'
          description: |-
            Government-issued ID to verify a person's identity.<br><br>If the currency is **COP**, then the `identifyingReference` field must contain one of following identifying references: **citizenship id / tax id / foreigner id / passport number**.<br>
            If the currency is **ARS**, then the `identifyingReference` field must contain a tax payer identification number of a customer.
        paymentOperatorCode:
          description: |-
            One of following can serve as Payment Operator:

             * Financial or other institution (such as bank, card payment processor, ...) that manages transactions for your customers
             * Mobile wallet
             * Blockchain protocol for crypto currency payments

            Customer is informed with the payment instructions where funds have to be transferred efficiently based on the selected Payment operator.
            For getting list of the available payment options for payins use [POST /payins/!availablePaymentOptions](#operations-Incoming_payments-availablePaymentOptions) API,
            for payouts use [POST /payouts/!availablePaymentOptions](#operations-Outgoing_payments-availablePaymentOptions) API.<br><br>If the currency is **ARS**, then the `paymentOperatorCode` field is optional. Otherwise, it is required.
          examples:
          - IDR_003
          type: string
          maxLength: 30
          minLength: 1
          pattern: ^[A-Za-z0-9_-]+$
        emailAddress:
          description: Your customer's e-mail address in RFC 5322 format that is used
            for identification of the customer's payins.<br><br>If the currency is
            **COP**, then the `emailAddress` field is required. Otherwise, it is optional.
          examples:
          - yourcustomer@domain.com
          type: string
        phoneNumber:
          description: Your customer's mobile phone number in full international telephone
            number format, including country code.<br><br>If the currency is **COP**,
            then the `phoneNumber` field is required. Otherwise, it is optional.
          examples:
          - '+628113912103'
          type: string
          maxLength: 16
          minLength: 7
          pattern: ^\+?[0-9]+$
        remark:
          type: string
        paymentMethodCode:
          type: string
          enum:
          - BANK_TRANSFER
          const: BANK_TRANSFER
    BankTransferMethodResponse:
      title: BANK_TRANSFER
      type: object
      required:
      - idPayout
      - idPayment
      - paymentMethodCode
      - reference
      properties:
        idPayout:
          $ref: '#/components/schemas/IdPayout'
        idPayment:
          $ref: '#/components/schemas/IdPayment'
        paymentMethodCode:
          type: string
          enum:
          - BANK_TRANSFER
          const: BANK_TRANSFER
        reference:
          description: Reference number of transaction.
          type: string
    BasicError:
      title: BasicError
      type: object
      properties:
        description:
          type: string
    CapitecPayMethod:
      title: CAPITEC_PAY
      description: "Capitec Pay is an easy, fast and safe way to pay without having\
        \ to enter the bank card details or share banking login information. \nThe\
        \ customer can choose the account he wants to pay from and authenticate the\
        \ payment safely in the banking app.<br><br>\nAt least one of the following\
        \ fields must be filled in: `accountNumber`, `phoneNumber`, or `said`."
      type: object
      required:
      - paymentMethodCode
      properties:
        account:
          $ref: '#/components/schemas/AccountPayinRequestCapitecPay'
        emailAddress:
          description: Your customer's e-mail address in RFC 5322 format that is used
            for identification of the customer's payins.
          examples:
          - yourcustomer@domain.com
          type: string
        phoneNumber:
          description: Your customer's mobile phone number, starting with 0.
          examples:
          - '0888777666'
          type: string
          maxLength: 10
          minLength: 10
        said:
          type: string
          maxLength: 13
          minLength: 13
          pattern: ^[0-9]*$
        paymentMethodCode:
          type: string
          enum:
          - CAPITEC_PAY
          const: CAPITEC_PAY
    CapitecPayMethodResponse:
      title: CAPITEC_PAY
      type: object
      required:
      - idPayin
      - idPayment
      - money
      - merchantName
      - reference
      - returnUrl
      - acceptedAt
      - expireAt
      - paymentMethodCode
      properties:
        idPayin:
          $ref: '#/components/schemas/IdPayin'
        idPayment:
          $ref: '#/components/schemas/IdPayment'
        money:
          $ref: '#/components/schemas/MoneyPaymentResponse'
        vat:
          $ref: '#/components/schemas/MoneyVat'
        merchantName:
          type: string
        accountCustomer:
          $ref: '#/components/schemas/AccountCustomerResponseCapitecPay'
        accountCustomerUsedForPayment:
          $ref: '#/components/schemas/AccountCustomerUsedForPaymentResponseCapitecPay'
        phoneNumber:
          description: Your customer's mobile phone number, starting with 0.
          examples:
          - '0888777666'
          type: string
          maxLength: 10
          minLength: 10
        said:
          type: string
          maxLength: 13
          minLength: 13
          pattern: ^[0-9]*$
        reference:
          description: Reference number of transaction.
          type: string
        returnUrl:
          description: |-
            This is the URL where the customers will be redirected after completing a payment.

            The URL must be either IP or domain-based.
          examples:
          - https://example.com?id=123
          type: string
          maxLength: 1000
        acceptedAt:
          description: Date and time when payment was accepted.
          type: string
          format: date-time
        expireAt:
          description: Date and time of payment expiration. If no money has been transferred
            to this time, payment is considered failed and callback with status change
            event will shortly follow.
          type: string
          format: date-time
        paymentMethodCode:
          type: string
          enum:
          - CAPITEC_PAY
          const: CAPITEC_PAY
    ChannelInfo:
      title: ChannelInfo
      description: |-
        Merchant information which is supposed to be displayed to a customer during payment process in the [Payment Web App](payin-webapp.html) or your UI supporting payment flow.
        Merchant information setup is available in the Merchant BackOffice portal.
      type: object
      required:
      - name
      properties:
        name:
          examples:
          - YOUR_MERCHANT_CHANNEL_NAME
          type: string
          maxLength: 1000
          minLength: 1
    CitizenshipIdentifyingReference:
      title: CITIZENSHIP_ID
      description: ID issued to citizens of a country. Citizenship ID of a customer.
      type: object
      required:
      - citizenshipId
      - identifyingReferenceCode
      properties:
        citizenshipId:
          type: string
        identifyingReferenceCode:
          type: string
          enum:
          - CITIZENSHIP_ID
          const: CITIZENSHIP_ID
    CodePaymentMethod:
      title: CODE_PAYMENT
      description: |-
        Convenience Store Payments. Payment method which requires customer to copy Payment Code from the Payment application right after the payment is submitted into kiosk in convenience store during the payment on the cashier.<br><br>
        Each Payment Code is assigned to one and only pne payment and should be used only once.
      type: object
      required:
      - paymentOperatorCode
      - emailAddress
      - phoneNumber
      - paymentLocation
      - paymentMethodCode
      properties:
        account:
          $ref: '#/components/schemas/AccountPayinRequestCodePayment'
        paymentOperatorCode:
          description: |-
            One of following can serve as Payment Operator:

             * Financial or other institution (such as bank, card payment processor, ...) that manages transactions for your customers
             * Mobile wallet
             * Blockchain protocol for crypto currency payments

            Customer is informed with the payment instructions where funds have to be transferred efficiently based on the selected Payment operator.
            For getting list of the available payment options for payins use [POST /payins/!availablePaymentOptions](#operations-Incoming_payments-availablePaymentOptions) API,
            for payouts use [POST /payouts/!availablePaymentOptions](#operations-Outgoing_payments-availablePaymentOptions) API.
          examples:
          - IDR_003
          type: string
          maxLength: 30
          minLength: 1
          pattern: ^[A-Za-z0-9_-]+$
        emailAddress:
          description: Your customer's e-mail address in RFC 5322 format that is used
            for identification of the customer's payins.
          examples:
          - yourcustomer@domain.com
          type: string
        phoneNumber:
          description: Your customer's mobile phone number in full international telephone
            number format, including country code.
          examples:
          - '+628113912103'
          type: string
          maxLength: 16
          minLength: 7
          pattern: ^\+?[0-9]+$
        paymentLocation:
          $ref: '#/components/schemas/PaymentLocation'
          description: Specifies location where a customer is making the payment (e.g.
            address of a store / any other point of sale).
        paymentMethodCode:
          type: string
          enum:
          - CODE_PAYMENT
          const: CODE_PAYMENT
    CodePaymentMethodResponse:
      title: CODE_PAYMENT
      type: object
      required:
      - idPayin
      - idPayment
      - account
      - accountCustomer
      - emailAddress
      - phoneNumber
      - paymentLocationCustomer
      - money
      - reference
      - returnUrl
      - paymentOperator
      - acceptedAt
      - expireAt
      - paymentMethodCode
      properties:
        idPayin:
          $ref: '#/components/schemas/IdPayin'
        idPayment:
          $ref: '#/components/schemas/IdPayment'
        account:
          $ref: '#/components/schemas/AccountResponseCodePayment'
        accountCustomer:
          $ref: '#/components/schemas/AccountCustomerResponseCodePayment'
        emailAddress:
          description: Your customer's e-mail address in RFC 5322 format that is used
            for identification of the customer's payins.
          examples:
          - yourcustomer@domain.com
          type: string
        phoneNumber:
          description: Your customer's mobile phone number in full international telephone
            number format, including country code.
          examples:
          - '+628113912103'
          type: string
          maxLength: 16
          minLength: 7
          pattern: ^\+?[0-9]+$
        paymentLocationCustomer:
          $ref: '#/components/schemas/PaymentLocation'
          description: Specifies location where a customer is making the payment (e.g.
            address of a store / any other point of sale).
        money:
          $ref: '#/components/schemas/MoneyPaymentResponse'
        vat:
          $ref: '#/components/schemas/MoneyVat'
        reference:
          description: Reference number of transaction.
          type: string
        returnUrl:
          description: |-
            This is the URL where the customers will be redirected after completing a payment.

            The URL must be either IP or domain-based.
          examples:
          - https://example.com?id=123
          type: string
          maxLength: 1000
        paymentOperator:
          $ref: '#/components/schemas/SelectedPaymentOperatorIncoming'
          description: |-
            PaymentOperator is a financial institution that manages transactions in your customer's account (such as banks, card payment processors, mobile wallets and so on).
            The payment operators are assigned to the payment methods according to your account configuration.

            For supported payment operators please refer to [`GET /payment-operators`](#operations-Payments-getPaymentOperators).
        acceptedAt:
          description: Date and time when payment was accepted.
          type: string
          format: date-time
        expireAt:
          description: Date and time of payment expiration. If no money has been transferred
            to this time, payment is considered failed and callback with status change
            event will shortly follow.
          type: string
          format: date-time
        paymentMethodCode:
          type: string
          enum:
          - CODE_PAYMENT
          const: CODE_PAYMENT
    CommaSeparatedCurrencyCodes:
      title: CommaSeparatedCurrencyCodes
      description: |-
        List of requested currencies.

        How to send multiple values please refer to  [Query for multiple values](general.html#query-for-multiple-values) section.

        For supported currencies please refer to [`GET /currencies`](#operations-Payments-getCurrencies).
      examples:
      - EUR,USD
      type: string
    CryptoOfflineMethod:
      title: CRYPTO_OFFLINE
      description: Crypto Offline is a payment method that allows customers to pay
        by crypto currency from they crypto wallet to an address that they are provided.
      type: object
      required:
      - paymentOperatorCode
      - paymentMethodCode
      properties:
        paymentOperatorCode:
          description: |-
            One of following can serve as Payment Operator:

             * Financial or other institution (such as bank, card payment processor, ...) that manages transactions for your customers
             * Mobile wallet
             * Blockchain protocol for crypto currency payments

            Customer is informed with the payment instructions where funds have to be transferred efficiently based on the selected Payment operator.
            For getting list of the available payment options for payins use [POST /payins/!availablePaymentOptions](#operations-Incoming_payments-availablePaymentOptions) API,
            for payouts use [POST /payouts/!availablePaymentOptions](#operations-Outgoing_payments-availablePaymentOptions) API.
          examples:
          - IDR_003
          type: string
          maxLength: 30
          minLength: 1
          pattern: ^[A-Za-z0-9_-]+$
        emailAddress:
          description: Your customer's e-mail address in RFC 5322 format that is used
            for identification of the customer's payins.
          examples:
          - yourcustomer@domain.com
          type: string
        paymentMethodCode:
          type: string
          enum:
          - CRYPTO_OFFLINE
          const: CRYPTO_OFFLINE
    CryptoOfflineMethodResponse:
      title: CRYPTO_OFFLINE
      type: object
      required:
      - idPayin
      - idPayment
      - account
      - money
      - merchantName
      - reference
      - qrName
      - qrCode
      - paymentOperator
      - returnUrl
      - acceptedAt
      - expireAt
      - paymentMethodCode
      properties:
        idPayin:
          $ref: '#/components/schemas/IdPayin'
        idPayment:
          $ref: '#/components/schemas/IdPayment'
        account:
          $ref: '#/components/schemas/AccountResponseCryptoOffline'
        money:
          $ref: '#/components/schemas/MoneyPaymentResponse'
        vat:
          $ref: '#/components/schemas/MoneyVat'
        merchantName:
          type: string
        reference:
          description: Reference number of transaction.
          type: string
        qrName:
          description: |-
            The name of the QR code image to be scanned by a wallet or payment service compatible with this payment method. The QR code of the image can be labeled by qrName to increase the clarity of the payment instruction.
            If this parameter contains any value, include it in the payment instructions for your customer.
          type: string
        qrCode:
          description: |-
            The URL of the QR code image to be scanned by a wallet or payment service compatible with this payment method. The QR code encodes the instructions how make a payment.
            If this parameter contains any value, include it in the payment instructions for your customer.
          examples:
          - https://domain/CAR/1/GPAY_QR
          type: string
        paymentOperator:
          $ref: '#/components/schemas/SelectedPaymentOperatorIncoming'
          description: |-
            PaymentOperator is a financial institution that manages transactions in your customer's account (such as banks, card payment processors, mobile wallets and so on).
            The payment operators are assigned to the payment methods according to your account configuration.

            For supported payment operators please refer to [`GET /payment-operators`](#operations-Payments-getPaymentOperators).
        returnUrl:
          description: |-
            This is the URL where the customers will be redirected after completing a payment.

            The URL must be either IP or domain-based.
          examples:
          - https://example.com?id=123
          type: string
          maxLength: 1000
        acceptedAt:
          description: Date and time when payment was accepted.
          type: string
          format: date-time
        expireAt:
          description: Date and time of payment expiration. If no money has been transferred
            to this time, payment is considered failed and callback with status change
            event will shortly follow.
          type: string
          format: date-time
        paymentMethodCode:
          type: string
          enum:
          - CRYPTO_OFFLINE
          const: CRYPTO_OFFLINE
    CryptoTransferMethod:
      title: CRYPTO_TRANSFER
      description: |-
        Payment method for sending funds from your crypto wallet to external crypto wallet.<br><br>
        It requires a customer to provide a receiving crypto wallet details in format related to chosen blockchain protocol.
      type: object
      required:
      - account
      - paymentOperatorCode
      - paymentMethodCode
      properties:
        account:
          $ref: '#/components/schemas/AccountPayoutRequestCryptoTransfer'
        paymentOperatorCode:
          description: |-
            One of following can serve as Payment Operator:

             * Financial or other institution (such as bank, card payment processor, ...) that manages transactions for your customers
             * Mobile wallet
             * Blockchain protocol for crypto currency payments

            Customer is informed with the payment instructions where funds have to be transferred efficiently based on the selected Payment operator.
            For getting list of the available payment options for payins use [POST /payins/!availablePaymentOptions](#operations-Incoming_payments-availablePaymentOptions) API,
            for payouts use [POST /payouts/!availablePaymentOptions](#operations-Outgoing_payments-availablePaymentOptions) API.
          examples:
          - IDR_003
          type: string
          maxLength: 30
          minLength: 1
          pattern: ^[A-Za-z0-9_-]+$
        remark:
          type: string
        paymentMethodCode:
          type: string
          enum:
          - CRYPTO_TRANSFER
          const: CRYPTO_TRANSFER
    CryptoTransferMethodResponse:
      title: CRYPTO_TRANSFER
      type: object
      required:
      - idPayout
      - idPayment
      - paymentMethodCode
      - reference
      properties:
        idPayout:
          $ref: '#/components/schemas/IdPayout'
        idPayment:
          $ref: '#/components/schemas/IdPayment'
        paymentMethodCode:
          type: string
          enum:
          - CRYPTO_TRANSFER
          const: CRYPTO_TRANSFER
        reference:
          description: Reference number of transaction.
          type: string
    Currency:
      title: Currency
      type: object
      required:
      - code
      properties:
        code:
          $ref: '#/components/schemas/CurrencyCode'
    CurrencyCode:
      title: CurrencyCode
      description: For supported currencies please refer to [`GET /currencies`](#operations-Payments-getCurrencies).
      examples:
      - USD
      type: string
      minLength: 1
    CurrencyList:
      title: CurrencyList
      description: List of available currencies.
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/Currency'
    CustomerDetail:
      title: CustomerDetail
      description: Customer related to this payment.
      type: object
      properties:
        idCustomer:
          $ref: '#/components/schemas/IdCustomer'
    CustomerNetworkAddress:
      title: CustomerNetworkAddress
      type: object
      required:
      - networkType
      - networkAddress
      - qrCode
      properties:
        networkType:
          $ref: '#/components/schemas/CustomerNetworkTypes'
        networkAddress:
          description: A customer network address available on a specified network
            type.
          examples:
          - '0x6Cc9397c3B38739daCbfaA68EaD5F5D77Ba5F455'
          type: string
        qrCode:
          description: |-
            The URL of the QR code image to be scanned by a wallet or payment service compatible with this payment method. The QR code encodes the instructions how make a payment.
            If this parameter contains any value, include it in the payment instructions for your customer.
          examples:
          - https://domain/CAR/1/GPAY_QR
          type: string
    CustomerNetworkAddressCreateError:
      title: CustomerNetworkAddressCreateError
      type: object
      required:
      - code
      properties:
        code:
          description: |-
            Business validation error codes:

             - FEATURE_NOT_SUPPORTED - Personal Address feature is not supported.
          type: string
          enum:
          - FEATURE_NOT_SUPPORTED
        description:
          description: Optional error description.
          type: string
        attrCode:
          description: Optional identification of the request attribute name that
            caused the error.
          type: string
        attrValue:
          description: Optional request attribute value that caused the error.
          type: string
    CustomerNetworkAddressCreateRequest:
      title: CustomerNetworkAddressCreateRequest
      type: object
      required:
      - callbackUrl
      properties:
        callbackUrl:
          description: |-
            This is the URL where the system will send the transaction final status after payment has been completed.

            The URL must be either IP or domain-based.
          examples:
          - https://example.com/order-status-change
          type: string
          maxLength: 1000
    CustomerNetworkTypes:
      title: CustomerNetworkTypes
      description: Network type of a customer specific address.
      type: string
      enum:
      - tron
      - ethereum
      - bitcoin
      - solana
    CustomerTransactionFee:
      title: CustomerTransactionFee
      description: Additional fee for customer not included in transaction amount.
        E.g. gas fee for crypto transactions.
      type: object
      properties:
        minFee:
          $ref: '#/components/schemas/Money'
        maxFee:
          $ref: '#/components/schemas/Money'
    DuitNowMethod:
      title: DUITNOW
      description: Payment method which requires customer to scan QR code from the
        Payment application by Customer's Payment service application right after
        the payment is submitted.
      type: object
      required:
      - account
      - paymentMethodCode
      properties:
        account:
          $ref: '#/components/schemas/AccountPayinRequestDuitNow'
        paymentOperatorCode:
          description: |-
            One of following can serve as Payment Operator:

             * Financial or other institution (such as bank, card payment processor, ...) that manages transactions for your customers
             * Mobile wallet
             * Blockchain protocol for crypto currency payments

            Customer is informed with the payment instructions where funds have to be transferred efficiently based on the selected Payment operator.
            For getting list of the available payment options for payins use [POST /payins/!availablePaymentOptions](#operations-Incoming_payments-availablePaymentOptions) API,
            for payouts use [POST /payouts/!availablePaymentOptions](#operations-Outgoing_payments-availablePaymentOptions) API.
          examples:
          - IDR_003
          type: string
          maxLength: 30
          minLength: 1
          pattern: ^[A-Za-z0-9_-]+$
        emailAddress:
          description: Your customer's e-mail address in RFC 5322 format that is used
            for identification of the customer's payins.
          examples:
          - yourcustomer@domain.com
          type: string
        paymentMethodCode:
          type: string
          enum:
          - DUITNOW
          const: DUITNOW
    DuitNowPayMethodResponse:
      title: DUITNOW
      type: object
      required:
      - idPayin
      - idPayment
      - accountCustomer
      - money
      - merchantName
      - reference
      - qrName
      - qrCode
      - returnUrl
      - acceptedAt
      - expireAt
      - paymentMethodCode
      properties:
        idPayin:
          $ref: '#/components/schemas/IdPayin'
        idPayment:
          $ref: '#/components/schemas/IdPayment'
        accountCustomer:
          $ref: '#/components/schemas/AccountCustomerResponseDuitNow'
        money:
          $ref: '#/components/schemas/MoneyPaymentResponse'
        vat:
          $ref: '#/components/schemas/MoneyVat'
        moneyRequired:
          $ref: '#/components/schemas/MoneyRequired'
        merchantName:
          type: string
        reference:
          description: Reference number of transaction.
          type: string
        qrName:
          description: |-
            The name of the QR code image to be scanned by a wallet or payment service compatible with this payment method. The QR code of the image can be labeled by qrName to increase the clarity of the payment instruction.
            If this parameter contains any value, include it in the payment instructions for your customer.
          type: string
        qrCode:
          description: |-
            The URL of the QR code image to be scanned by a wallet or payment service compatible with this payment method. The QR code encodes the instructions how make a payment.
            If this parameter contains any value, include it in the payment instructions for your customer.
          examples:
          - https://domain/CAR/1/GPAY_QR
          type: string
        paymentOperator:
          $ref: '#/components/schemas/SelectedPaymentOperatorIncoming'
          description: |-
            PaymentOperator is a financial institution that manages transactions in your customer's account (such as banks, card payment processors, mobile wallets and so on).
            The payment operators are assigned to the payment methods according to your account configuration.

            For supported payment operators please refer to [`GET /payment-operators`](#operations-Payments-getPaymentOperators).
        returnUrl:
          description: |-
            This is the URL where the customers will be redirected after completing a payment.

            The URL must be either IP or domain-based.
          examples:
          - https://example.com?id=123
          type: string
          maxLength: 1000
        acceptedAt:
          description: Date and time when payment was accepted.
          type: string
          format: date-time
        expireAt:
          description: Date and time of payment expiration. If no money has been transferred
            to this time, payment is considered failed and callback with status change
            event will shortly follow.
          type: string
          format: date-time
        paymentMethodCode:
          type: string
          enum:
          - DUITNOW
          const: DUITNOW
    EWalletMethod:
      title: EWALLET
      description: "E-Wallet is a payment option on Indonesian market that allows\
        \ customers to use major Indonesian wallets for payments. \nCustomer is either\
        \ automatically redirected to a chosen wallet with all payment details pre-populated\
        \ to finalize the payment or \ndirectly receives push notification to authorize\
        \ the payment in case of OVO wallet."
      type: object
      required:
      - paymentOperatorCode
      - paymentMethodCode
      properties:
        account:
          $ref: '#/components/schemas/AccountPayinRequestEWallet'
        emailAddress:
          description: Your customer's e-mail address in RFC 5322 format that is used
            for identification of the customer's payins.
          examples:
          - yourcustomer@domain.com
          type: string
        phoneNumber:
          description: |-
            Your customer's mobile phone number in full international telephone number format, including country code.<br><br>
            If payment operator code is ID_OVO, then `phoneNumber` field is required. Otherwise, it is optional.
          examples:
          - '+628113912103'
          type: string
          maxLength: 16
          minLength: 7
          pattern: ^\+?[0-9]+$
        paymentOperatorCode:
          description: |-
            One of following can serve as Payment Operator:

             * Financial or other institution (such as bank, card payment processor, ...) that manages transactions for your customers
             * Mobile wallet
             * Blockchain protocol for crypto currency payments

            Customer is informed with the payment instructions where funds have to be transferred efficiently based on the selected Payment operator.
            For getting list of the available payment options for payins use [POST /payins/!availablePaymentOptions](#operations-Incoming_payments-availablePaymentOptions) API,
            for payouts use [POST /payouts/!availablePaymentOptions](#operations-Outgoing_payments-availablePaymentOptions) API.
          examples:
          - IDR_003
          type: string
          maxLength: 30
          minLength: 1
          pattern: ^[A-Za-z0-9_-]+$
        paymentMethodCode:
          type: string
          enum:
          - EWALLET
          const: EWALLET
    EWalletMethodResponse:
      title: EWALLET
      type: object
      required:
      - idPayin
      - idPayment
      - money
      - merchantName
      - reference
      - returnUrl
      - acceptedAt
      - expireAt
      - paymentMethodCode
      properties:
        idPayin:
          $ref: '#/components/schemas/IdPayin'
        idPayment:
          $ref: '#/components/schemas/IdPayment'
        money:
          $ref: '#/components/schemas/MoneyPaymentResponse'
        vat:
          $ref: '#/components/schemas/MoneyVat'
        merchantName:
          type: string
        reference:
          description: Reference number of transaction.
          type: string
        paymentOperator:
          $ref: '#/components/schemas/SelectedPaymentOperatorIncoming'
          description: |-
            PaymentOperator is a financial institution that manages transactions in your customer's account (such as banks, card payment processors, mobile wallets and so on).
            The payment operators are assigned to the payment methods according to your account configuration.

            For supported payment operators please refer to [`GET /payment-operators`](#operations-Payments-getPaymentOperators).
        returnUrl:
          description: |-
            This is the URL where the customers will be redirected after completing a payment.

            The URL must be either IP or domain-based.
          examples:
          - https://example.com?id=123
          type: string
          maxLength: 1000
        acceptedAt:
          description: Date and time when payment was accepted.
          type: string
          format: date-time
        expireAt:
          description: Date and time of payment expiration. If no money has been transferred
            to this time, payment is considered failed and callback with status change
            event will shortly follow.
          type: string
          format: date-time
        paymentMethodCode:
          type: string
          enum:
          - EWALLET
          const: EWALLET
    EmailTransferMethod:
      title: EMAIL_TRANSFER
      description: Payment method for sending funds to bank account/wallet associated
        with provided email address.
      type: object
      required:
      - emailAddress
      - identifyingReference
      - paymentMethodCode
      properties:
        emailAddress:
          description: Your customer's e-mail address in RFC 5322 format that is used
            for identification of the customer's payins.
          examples:
          - yourcustomer@domain.com
          type: string
        account:
          $ref: '#/components/schemas/AccountPayoutRequestEmailTransfer'
        identifyingReference:
          $ref: '#/components/schemas/IdentifyingReference'
          description: Government-issued ID to verify a person's identity.<br><br>If
            the currency is **BRL**, then the `identifyingReference` field must contain
            the tax payer identification number of a customer.
        paymentMethodCode:
          type: string
          enum:
          - EMAIL_TRANSFER
          const: EMAIL_TRANSFER
    EmailTransferMethodResponse:
      title: EMAIL_TRANSFER
      type: object
      required:
      - idPayout
      - idPayment
      - paymentMethodCode
      - reference
      properties:
        idPayout:
          $ref: '#/components/schemas/IdPayout'
        idPayment:
          $ref: '#/components/schemas/IdPayment'
        paymentMethodCode:
          type: string
          enum:
          - EMAIL_TRANSFER
          const: EMAIL_TRANSFER
        reference:
          description: Reference number of transaction.
          type: string
    ExternalProvider:
      title: ExternalProvider
      description: 'TODO: Add description'
      type: object
      required:
      - code
      - name
      properties:
        code:
          type: string
          maxLength: 128
          minLength: 1
        name:
          type: string
          minLength: 1
    ExternalProviders:
      title: ExternalProviders
      type: object
      properties:
        providers:
          type: array
          items:
            $ref: '#/components/schemas/ExternalProvider'
    ExternalReference:
      title: ExternalReference
      description: External payment / transaction reference is a unique identifier
        assigned to a financial transaction. Customers can usually find it in their
        banking service such as mobile wallets, internet banking services or bank
        slips. Example of such refrence is UTR (unique transaction reference) in Indian
        market. Either value collected from customer or obtained during the processing
        on our platform is returned.
      type: object
      required:
      - reference
      properties:
        reference:
          type: string
          maxLength: 512
          minLength: 1
    FailureReasonCode:
      title: FailureReasonCode
      description: |2
         * `SYSTEM` - Internal error. Contact support for more info.
         * `PAYMENT_PROCESS_ERROR` - There has been error in payment process. Contact support for more info.
         * `ENTITY_EXPIRED` - When entity (incoming payment, outgoing payment) has expired.
         * `DIFFERENT_AMOUNT_CONFIRMED` - Customer sent different amount then requested.
         * `CURRENCY_NOT_SUPPORTED` - The selected currency is not supported by merchant.
         * `CURRENCY_PRECISION_EXCEEDED` - The provided payment amount exceeds the smallest fractional unit allowed for the specified currency.
         * `PAYMENT_METHOD_NOT_FOUND` - No payment method has been found for selected payment criteria. Verify your product configuration and contact support for further details.
         * `PAYMENT_METHOD_ERROR` - A processing error has been encountered for payment. An unexpected scenario with required operator intervention, contact support for further details.
         * `PAYMENT_OPERATOR_NOT_FOUND` - The payment operator has not been found.
         * `PAYMENT_OPERATOR_INVALID` - The selected payment operator is not supported for a used payment method.
         * `PAYMENT_OPERATOR_UNAVAILABLE` - The selected payment operator is not available for a used payment method.
         * `PAYMENT_CHANNEL_NO_ACTIVE_FOUND`- No active payment channel that can accept the payment has been found.
         * `PAYMENT_CHANNEL_NO_OPENED_FOUND` - No opened payment channel that can accept the payment has been found.
         * `PAYMENT_CHANNEL_NO_SEGMENT_FOUND` - No payment channel that can accept the payment with the specified segment has been found.
         * `PAYMENT_CHANNEL_AMOUNT_LIMITS` - No payment channel with amount limits suitable for the payment amount has been found.  Limits can be found with [`GET /payment-options`](#operations-Payments-getPaymentOptions) API.
         * `PAYMENT_CHANNEL_DAILY_LIMITS` - All the suitable channels reached their daily limits on payment amount. Select different payment method or contact support for limits adjustments.
         * `IP_DENIED` - The provided IP address is denied. It is either found in the blacklist or is not found in the whitelist.
         * `BALANCE_INSUFFICIENT` - The balance is not sufficient for payment.
         * `INVALID_ACCOUNT_NUMBER` - Account number is invalid or does not exist.
         * `INVALID_ACCOUNT_NAME` - Account name provided in the payment does not match the name assigned to the account.
         * `INVALID_PHONE_NUMBER` - Provided phone number is invalid or does not exist.
         * `INVALID_ID_NUMBER` - Provided ID number is invalid or does not exist.
         * `INCORRECT_CURRENCY` - Paid in different currency than payorder currency.
         * `CUSTOMER_VERIFICATION_REJECTED` - Payment verification was rejected by the customer.
         * `CUSTOMER_VERIFICATION_FAILED` - The customer failed to verify the payment.
         * `ACCOUNT_TYPE_INELIGIBLE` - Account type of provided account cannot be used for this payment.
         * `NAME_SIMILARITY_CHECK_FAILED` - Name similarity check failed. Fraud prevention measure - name match error.
         * `INVALID_IFSC` - Invalid IFSC Code.
         * `FEATURE_UNAVAILABLE` - The payment can't be completed because the customer has either disabled a payment feature or the feature is unavailable on the customer's device.
         * `CUSTOMER_ACCOUNT_LIMIT_EXCEEDED` - Customer account limits reached.
         * `CUSTOMER_VERIFICATION_INACTIVITY` - Customer did not respond to the request in time.
         * `CUSTOMER_NOT_REGISTERED` - Customer is not registered for the service.
      type: string
      enum:
      - SYSTEM
      - PAYMENT_PROCESS_ERROR
      - ENTITY_EXPIRED
      - DIFFERENT_AMOUNT_CONFIRMED
      - CURRENCY_NOT_SUPPORTED
      - CURRENCY_PRECISION_EXCEEDED
      - PAYMENT_METHOD_NOT_FOUND
      - PAYMENT_METHOD_ERROR
      - PAYMENT_OPERATOR_NOT_FOUND
      - PAYMENT_OPERATOR_INVALID
      - PAYMENT_OPERATOR_UNAVAILABLE
      - PAYMENT_CHANNEL_NO_ACTIVE_FOUND
      - PAYMENT_CHANNEL_NO_OPENED_FOUND
      - PAYMENT_CHANNEL_NO_SEGMENT_FOUND
      - PAYMENT_CHANNEL_AMOUNT_LIMITS
      - PAYMENT_CHANNEL_DAILY_LIMITS
      - IP_DENIED
      - BALANCE_INSUFFICIENT
      - INVALID_ACCOUNT_NUMBER
      - INVALID_ACCOUNT_NAME
      - INVALID_PHONE_NUMBER
      - INVALID_ID_NUMBER
      - INCORRECT_CURRENCY
      - CUSTOMER_VERIFICATION_REJECTED
      - CUSTOMER_VERIFICATION_FAILED
      - ACCOUNT_TYPE_INELIGIBLE
      - NAME_SIMILARITY_CHECK_FAILED
      - INVALID_IFSC
      - FEATURE_UNAVAILABLE
      - CUSTOMER_ACCOUNT_LIMIT_EXCEEDED
      - CUSTOMER_VERIFICATION_INACTIVITY
      - CUSTOMER_NOT_REGISTERED
    FailureReasons:
      title: FailureReasons
      type: object
      required:
      - failedAt
      - failureReasonCode
      properties:
        failedAt:
          description: Date and time of the payment failure.
          type: string
          format: date-time
        failureReasonCode:
          $ref: '#/components/schemas/FailureReasonCode'
        message:
          description: Additional description of the failure reason.
          type: string
    ForeignerIdentifyingReference:
      title: FOREIGNER_ID
      description: ID issued to non-citizens living legally in a country (ID on e.g.
        residence permit, foreigner ID card). Foreigner ID of a customer.
      type: object
      required:
      - foreignerId
      - identifyingReferenceCode
      properties:
        foreignerId:
          type: string
        identifyingReferenceCode:
          type: string
          enum:
          - FOREIGNER_ID
          const: FOREIGNER_ID
    ForexRate:
      title: ForexRate
      type: object
      required:
      - baseCurrencyCode
      - quoteCurrencyCode
      properties:
        baseCurrencyCode:
          $ref: '#/components/schemas/CurrencyCode'
        quoteCurrencyCode:
          $ref: '#/components/schemas/CurrencyCode'
        buyRate:
          examples:
          - 42.05
          type: number
          minimum: 0
          maximum: 9223372036854775807
        sellRate:
          examples:
          - 42.05
          type: number
          minimum: 0
          maximum: 9223372036854775807
        validUpTo:
          type: string
          format: date-time
    ForexRateList:
      title: ForexRateList
      type: object
      properties:
        data:
          type: array
          uniqueItems: true
          items:
            $ref: '#/components/schemas/ForexRate'
    FpxMethod:
      title: FPX
      description: "FPX (Financial Process Exchange) is a real-time online payment\
        \ system in Malaysia that enables secure, \ninstant payments by redirecting\
        \ users to their selected FPX-participating banks."
      type: object
      required:
      - account
      - paymentOperatorCode
      - paymentMethodCode
      properties:
        account:
          $ref: '#/components/schemas/AccountPayinRequestFpx'
        paymentOperatorCode:
          description: |-
            One of following can serve as Payment Operator:

             * Financial or other institution (such as bank, card payment processor, ...) that manages transactions for your customers
             * Mobile wallet
             * Blockchain protocol for crypto currency payments

            Customer is informed with the payment instructions where funds have to be transferred efficiently based on the selected Payment operator.
            For getting list of the available payment options for payins use [POST /payins/!availablePaymentOptions](#operations-Incoming_payments-availablePaymentOptions) API,
            for payouts use [POST /payouts/!availablePaymentOptions](#operations-Outgoing_payments-availablePaymentOptions) API.
          examples:
          - IDR_003
          type: string
          maxLength: 30
          minLength: 1
          pattern: ^[A-Za-z0-9_-]+$
        paymentMethodCode:
          type: string
          enum:
          - FPX
          const: FPX
    FpxMethodResponse:
      title: FPX
      type: object
      required:
      - idPayin
      - idPayment
      - money
      - reference
      - returnUrl
      - acceptedAt
      - expireAt
      - paymentMethodCode
      properties:
        idPayin:
          $ref: '#/components/schemas/IdPayin'
        idPayment:
          $ref: '#/components/schemas/IdPayment'
        money:
          $ref: '#/components/schemas/MoneyPaymentResponse'
        vat:
          $ref: '#/components/schemas/MoneyVat'
        reference:
          description: Reference number of transaction.
          type: string
        returnUrl:
          description: |-
            This is the URL where the customers will be redirected after completing a payment.

            The URL must be either IP or domain-based.
          examples:
          - https://example.com?id=123
          type: string
          maxLength: 1000
        acceptedAt:
          description: Date and time when payment was accepted.
          type: string
          format: date-time
        expireAt:
          description: Date and time of payment expiration. If no money has been transferred
            to this time, payment is considered failed and callback with status change
            event will shortly follow.
          type: string
          format: date-time
        paymentMethodCode:
          type: string
          enum:
          - FPX
          const: FPX
    GetFxRatesError:
      title: GetFxRatesError
      type: object
      required:
      - code
      properties:
        code:
          description: |-
            Business validation error codes:

             - INCORRECT_CURRENCY - Query parameters contain incorrect currency.
          type: string
          enum:
          - INCORRECT_CURRENCY
        description:
          description: Optional error description.
          type: string
        attrCode:
          description: Optional identification of the request attribute name that
            caused the error.
          type: string
        attrValue:
          description: Optional request attribute value that caused the error.
          type: string
    GetPayinError:
      title: GetPayinError
      type: object
      required:
      - code
      properties:
        code:
          description: |2

            Business validation error codes:
             - MERCHANT_INACTIVE - The merchant must be activated to get payment detail.
          type: string
          enum:
          - MERCHANT_INACTIVE
        description:
          description: Optional error description.
          type: string
        attrCode:
          description: Optional identification of the request attribute name that
            caused the error.
          type: string
        attrValue:
          description: Optional request attribute value that caused the error.
          type: string
    GetPaymentOptionsError:
      title: GetPaymentOptionsError
      type: object
      required:
      - code
      properties:
        code:
          description: |-
            Business validation error codes:

             - MERCHANT_INACTIVE - The merchant must be activated to get available payment options.
             - PAYMENT_OPERATOR_CODE_INVALID - Invalid filter payment operator code.
             - SEGMENT_CODE_INVALID - Invalid filter segment code.
             - PAYMENT_METHOD_CODE_INVALID - Invalid filter payment method code.
          type: string
          enum:
          - MERCHANT_INACTIVE
          - PAYMENT_OPERATOR_CODE_INVALID
          - SEGMENT_CODE_INVALID
          - PAYMENT_METHOD_CODE_INVALID
        description:
          description: Optional error description.
          type: string
        attrCode:
          description: Optional identification of the request attribute name that
            caused the error.
          type: string
        attrValue:
          description: Optional request attribute value that caused the error.
          type: string
    GetPayoutError:
      title: GetPayoutError
      type: object
      required:
      - code
      properties:
        code:
          description: |2

            Business validation error codes:
             - MERCHANT_INACTIVE - The merchant must be activated to get payment detail.
          type: string
          enum:
          - MERCHANT_INACTIVE
        description:
          description: Optional error description.
          type: string
        attrCode:
          description: Optional identification of the request attribute name that
            caused the error.
          type: string
        attrValue:
          description: Optional request attribute value that caused the error.
          type: string
    GetTopupError:
      title: GetTopupError
      type: object
      required:
      - code
      properties:
        code:
          description: |2

            Business validation error codes:
             - MERCHANT_INACTIVE - The merchant must be activated to get payment detail.
          type: string
          enum:
          - MERCHANT_INACTIVE
        description:
          description: Optional error description.
          type: string
        attrCode:
          description: Optional identification of the request attribute name that
            caused the error.
          type: string
        attrValue:
          description: Optional request attribute value that caused the error.
          type: string
    IMPSMethod:
      title: IMPS
      description: It is India market version of the Offline Bank Transfer which differs
        in the data which need to be collected and used during a Payment process.
      type: object
      required:
      - account
      - paymentMethodCode
      properties:
        account:
          $ref: '#/components/schemas/AccountPayinRequestIMPS'
        emailAddress:
          description: Your customer's e-mail address in RFC 5322 format that is used
            for identification of the customer's payins.
          examples:
          - yourcustomer@domain.com
          type: string
        paymentMethodCode:
          type: string
          enum:
          - IMPS
          const: IMPS
    IMPSMethodResponse:
      title: IMPS
      description: The account parameters for this payment method are used to show
        payment instructions to the customer.
      type: object
      required:
      - idPayin
      - idPayment
      - account
      - money
      - merchantName
      - reference
      - qrCode
      - returnUrl
      - acceptedAt
      - expireAt
      - paymentMethodCode
      properties:
        idPayin:
          $ref: '#/components/schemas/IdPayin'
        idPayment:
          $ref: '#/components/schemas/IdPayment'
        account:
          $ref: '#/components/schemas/AccountResponseWithBank'
        money:
          $ref: '#/components/schemas/MoneyPaymentResponse'
        vat:
          $ref: '#/components/schemas/MoneyVat'
        merchantName:
          type: string
        reference:
          description: Reference number of transaction.
          type: string
        qrCode:
          deprecated: true
          type: string
        returnUrl:
          description: |-
            This is the URL where the customers will be redirected after completing a payment.

            The URL must be either IP or domain-based.
          examples:
          - https://example.com?id=123
          type: string
          maxLength: 1000
        acceptedAt:
          description: Date and time when payment was accepted.
          type: string
          format: date-time
        expireAt:
          description: Date and time of payment expiration. If no money has been transferred
            to this time, payment is considered failed and callback with status change
            event will shortly follow.
          type: string
          format: date-time
        paymentMethodCode:
          type: string
          enum:
          - IMPS
          const: IMPS
    IdCustomer:
      title: IdCustomer
      description: The ID of customer given by merchant.
      type: string
      maxLength: 250
      minLength: 1
    IdPayin:
      title: IdPayin
      description: Unique Merchant Order ID provided by merchant. See [Request IDs](general.html#request-ids).
      type: string
      maxLength: 250
      pattern: ^[A-Za-z0-9_-]+$
    IdPayment:
      title: IdPayment
      description: The Unique reference ID of the Order generated by platform. It
        is alphanumeric and max length is 250 characters.
      type: string
      maxLength: 250
      pattern: ^[A-Za-z0-9_-]+$
    IdPayout:
      title: IdPayout
      description: Unique Merchant Order ID provided by merchant. See [Request IDs](general.html#request-ids).
      type: string
      maxLength: 250
      pattern: ^[A-Za-z0-9_-]+$
    IdTopUp:
      title: IdTopUp
      description: Unique Merchant Order ID provided by merchant. See [Request IDs](general.html#request-ids).
      type: string
      maxLength: 250
      pattern: ^[A-Za-z0-9_-]+$
    IdentifyingReference:
      title: IdentifyingReference
      oneOf:
      - $ref: '#/components/schemas/CitizenshipIdentifyingReference'
      - $ref: '#/components/schemas/ForeignerIdentifyingReference'
      - $ref: '#/components/schemas/PassportNumberIdentifyingReference'
      - $ref: '#/components/schemas/TaxIdentifyingReference'
      discriminator:
        propertyName: identifyingReferenceCode
        mapping:
          CITIZENSHIP_ID: '#/components/schemas/CitizenshipIdentifyingReference'
          FOREIGNER_ID: '#/components/schemas/ForeignerIdentifyingReference'
          PASSPORT_NUMBER: '#/components/schemas/PassportNumberIdentifyingReference'
          TAX_ID: '#/components/schemas/TaxIdentifyingReference'
    IntervalNumberTo:
      title: IntervalNumberTo
      type: object
      properties:
        from:
          examples:
          - 42.05
          type: number
          minimum: 0
          maximum: 9223372036854775807
        to:
          examples:
          - 100
          type: number
          minimum: 0
          maximum: 9223372036854775807
    MerchantInfo:
      title: MerchantInfo
      description: Merchant information.
      type: object
      required:
      - channelInfo
      properties:
        channelInfo:
          $ref: '#/components/schemas/ChannelInfo'
    MobileMoneyMethod:
      title: MOBILE_MONEY
      description: Mobile Money is a payment method which allows customers to simply
        complete a payment from their mobile money wallet.
      type: object
      required:
      - account
      - phoneNumber
      - paymentMethodCode
      properties:
        account:
          $ref: '#/components/schemas/AccountPayinRequestMobileMoney'
        paymentOperatorCode:
          description: |-
            One of following can serve as Payment Operator:

             * Financial or other institution (such as bank, card payment processor, ...) that manages transactions for your customers
             * Mobile wallet
             * Blockchain protocol for crypto currency payments

            Customer is informed with the payment instructions where funds have to be transferred efficiently based on the selected Payment operator.
            For getting list of the available payment options for payins use [POST /payins/!availablePaymentOptions](#operations-Incoming_payments-availablePaymentOptions) API,
            for payouts use [POST /payouts/!availablePaymentOptions](#operations-Outgoing_payments-availablePaymentOptions) API.
          examples:
          - IDR_003
          type: string
          maxLength: 30
          minLength: 1
          pattern: ^[A-Za-z0-9_-]+$
        emailAddress:
          description: Your customer's e-mail address in RFC 5322 format that is used
            for identification of the customer's payins.
          examples:
          - yourcustomer@domain.com
          type: string
        phoneNumber:
          description: Your customer's mobile phone number in full international telephone
            number format, including country code.
          examples:
          - '+628113912103'
          type: string
          maxLength: 16
          minLength: 7
          pattern: ^\+?[0-9]+$
        paymentMethodCode:
          type: string
          enum:
          - MOBILE_MONEY
          const: MOBILE_MONEY
    MobileMoneyMethodResponse:
      title: MOBILE_MONEY
      type: object
      required:
      - idPayin
      - idPayment
      - accountCustomer
      - money
      - merchantName
      - reference
      - returnUrl
      - acceptedAt
      - expireAt
      - paymentMethodCode
      properties:
        idPayin:
          $ref: '#/components/schemas/IdPayin'
        idPayment:
          $ref: '#/components/schemas/IdPayment'
        accountCustomer:
          $ref: '#/components/schemas/AccountCustomerResponseMobileMoney'
        emailAddress:
          description: Your customer's e-mail address in RFC 5322 format that is used
            for identification of the customer's payins.
          examples:
          - yourcustomer@domain.com
          type: string
        money:
          $ref: '#/components/schemas/MoneyPaymentResponse'
        vat:
          $ref: '#/components/schemas/MoneyVat'
        merchantName:
          type: string
        phoneNumber:
          description: Your customer's mobile phone number in full international telephone
            number format, including country code.
          examples:
          - '+628113912103'
          type: string
          maxLength: 16
          minLength: 7
          pattern: ^\+?[0-9]+$
        reference:
          description: Reference number of transaction.
          type: string
        returnUrl:
          description: |-
            This is the URL where the customers will be redirected after completing a payment.

            The URL must be either IP or domain-based.
          examples:
          - https://example.com?id=123
          type: string
          maxLength: 1000
        paymentOperator:
          $ref: '#/components/schemas/SelectedPaymentOperatorIncoming'
          description: |-
            PaymentOperator is a financial institution that manages transactions in your customer's account (such as banks, card payment processors, mobile wallets and so on).
            The payment operators are assigned to the payment methods according to your account configuration.

            For supported payment operators please refer to [`GET /payment-operators`](#operations-Payments-getPaymentOperators).
        acceptedAt:
          description: Date and time when payment was accepted.
          type: string
          format: date-time
        expireAt:
          description: Date and time of payment expiration. If no money has been transferred
            to this time, payment is considered failed and callback with status change
            event will shortly follow.
          type: string
          format: date-time
        paymentMethodCode:
          type: string
          enum:
          - MOBILE_MONEY
          const: MOBILE_MONEY
    Money:
      title: Money
      type: object
      required:
      - amount
      - currencyCode
      properties:
        amount:
          description: |-
            Amount is accepted in the smallest currency unit.<br>
            For fiat currencies the smallest currency unit are based on ISO 4217 (e.g. for USD two decimal places are available so amount can be accepted as 12.34).
            The exceptions are IDR, INR and LAK currencies: zero amount in decimal places are allowed for them (e.g. 42.05 is not allowed, while 42 or 42.00 or 43 or 43.00 are allowed).<br>
            For cryptocurrencies, the smallest currency unit is based on the standard decimal places defined per token or protocol, with exceptions for ETH and SOL where only 8 decimal places are allowed.<br><br>
            If more decimal places than supported is provided request will fail on HTTP 406 error (e.g. for USD the amount 12.345 will not be accepted).
          examples:
          - 42.05
          type: number
          minimum: 0
          maximum: 9223372036854775807
        currencyCode:
          $ref: '#/components/schemas/CurrencyCode'
    MoneyFee:
      title: MoneyFee
      description: Fees charged for this payment.
      type: object
      required:
      - amount
      - currencyCode
      properties:
        amount:
          description: |-
            Amount is accepted in the smallest currency unit.<br>
            For fiat currencies the smallest currency unit are based on ISO 4217 (e.g. for USD two decimal places are available so amount can be accepted as 12.34).
            The exceptions are IDR, INR and LAK currencies: zero amount in decimal places are allowed for them (e.g. 42.05 is not allowed, while 42 or 42.00 or 43 or 43.00 are allowed).<br>
            For cryptocurrencies, the smallest currency unit is based on the standard decimal places defined per token or protocol, with exceptions for ETH and SOL where only 8 decimal places are allowed.<br><br>
            If more decimal places than supported is provided request will fail on HTTP 406 error (e.g. for USD the amount 12.345 will not be accepted).
          examples:
          - 42.05
          type: number
          minimum: 0
          maximum: 9223372036854775807
        currencyCode:
          $ref: '#/components/schemas/CurrencyCode'
    MoneyPaymentRequested:
      title: MoneyPaymentRequested
      type: object
      required:
      - amount
      - currencyCode
      properties:
        amount:
          description: |-
            Requested payment amount.<br><br>Amount is accepted in the smallest currency unit.<br>
            For fiat currencies the smallest currency unit are based on ISO 4217 (e.g. for USD two decimal places are available so amount can be accepted as 12.34).
            The exceptions are IDR, INR and LAK currencies: zero amount in decimal places are allowed for them (e.g. 42.05 is not allowed, while 42 or 42.00 or 43 or 43.00 are allowed).<br>
            For cryptocurrencies, the smallest currency unit is based on the standard decimal places defined per token or protocol, with exceptions for ETH and SOL where only 8 decimal places are allowed.<br><br>
            If more decimal places than supported is provided request will fail on HTTP 406 error (e.g. for USD the amount 12.345 will not be accepted).
          examples:
          - 42.05
          type: number
          minimum: 0
          maximum: 9223372036854775807
        currencyCode:
          $ref: '#/components/schemas/CurrencyCode'
    MoneyPaymentResponse:
      title: MoneyPaymentResponse
      type: object
      required:
      - amount
      - currencyCode
      properties:
        amount:
          description: |-
            Actual amount that end-customer should pay if `paymentMethodResponse.moneyRequired.amount` is not returned.<br><br>Amount is accepted in the smallest currency unit.<br>
            For fiat currencies the smallest currency unit are based on ISO 4217 (e.g. for USD two decimal places are available so amount can be accepted as 12.34).
            The exceptions are IDR, INR and LAK currencies: zero amount in decimal places are allowed for them (e.g. 42.05 is not allowed, while 42 or 42.00 or 43 or 43.00 are allowed).<br>
            For cryptocurrencies, the smallest currency unit is based on the standard decimal places defined per token or protocol, with exceptions for ETH and SOL where only 8 decimal places are allowed.<br><br>
            If more decimal places than supported is provided request will fail on HTTP 406 error (e.g. for USD the amount 12.345 will not be accepted).
          examples:
          - 42.05
          type: number
          minimum: 0
          maximum: 9223372036854775807
        currencyCode:
          $ref: '#/components/schemas/CurrencyCode'
    MoneyReceive:
      title: MoneyReceive
      type: object
      required:
      - amount
      - currencyCode
      properties:
        amount:
          description: The amount of money that the end customer will receive.
          examples:
          - 42.05
          type: number
          minimum: 0
          maximum: 9223372036854775807
        currencyCode:
          $ref: '#/components/schemas/CurrencyCode'
    MoneyRequired:
      title: MoneyRequired
      type: object
      required:
      - amount
      - currencyCode
      properties:
        amount:
          description: |-
            If returned, this field contains the actual amount that the end customer should pay. The amount provided in `paymentMethodResponse.money.amount` will be credited to your account.<br><br>Amount is accepted in the smallest currency unit.<br>
            For fiat currencies the smallest currency unit are based on ISO 4217 (e.g. for USD two decimal places are available so amount can be accepted as 12.34).
            The exceptions are IDR, INR and LAK currencies: zero amount in decimal places are allowed for them (e.g. 42.05 is not allowed, while 42 or 42.00 or 43 or 43.00 are allowed).<br>
            For cryptocurrencies, the smallest currency unit is based on the standard decimal places defined per token or protocol, with exceptions for ETH and SOL where only 8 decimal places are allowed.<br><br>
            If more decimal places than supported is provided request will fail on HTTP 406 error (e.g. for USD the amount 12.345 will not be accepted).
          examples:
          - 42.05
          type: number
          minimum: 0
          maximum: 9223372036854775807
        currencyCode:
          $ref: '#/components/schemas/CurrencyCode'
    MoneyVat:
      title: MoneyVat
      type: object
      required:
      - amount
      - currencyCode
      properties:
        amount:
          description: Amount of Value-Added Tax is returned in case it's levied on
            a payment order.
          examples:
          - 42.05
          type: number
          minimum: 0
          maximum: 9223372036854775807
        currencyCode:
          $ref: '#/components/schemas/CurrencyCode'
    NedbankDirectEFTMethod:
      title: NEDBANK_DIRECT_EFT
      description: "Nedbank Direct EFT is a digital payment method that allows customers\
        \ to pay quickly and securely using their Nedbank app. \nInstead of entering\
        \ bank details, customers simply approve the payment on their phone, making\
        \ the checkout process faster, safer, and more convenient."
      type: object
      required:
      - account
      - said
      - paymentMethodCode
      properties:
        account:
          $ref: '#/components/schemas/AccountPayinRequestNedbankDirectEFT'
        said:
          type: string
          maxLength: 13
          minLength: 13
          pattern: ^[0-9]*$
        emailAddress:
          description: Your customer's e-mail address in RFC 5322 format that is used
            for identification of the customer's payins.
          examples:
          - yourcustomer@domain.com
          type: string
        paymentMethodCode:
          type: string
          enum:
          - NEDBANK_DIRECT_EFT
          const: NEDBANK_DIRECT_EFT
    NedbankDirectEFTMethodResponse:
      title: NEDBANK_DIRECT_EFT
      type: object
      required:
      - idPayin
      - idPayment
      - accountCustomer
      - money
      - merchantName
      - said
      - reference
      - returnUrl
      - acceptedAt
      - expireAt
      - paymentMethodCode
      properties:
        idPayin:
          $ref: '#/components/schemas/IdPayin'
        idPayment:
          $ref: '#/components/schemas/IdPayment'
        accountCustomer:
          $ref: '#/components/schemas/AccountCustomerResponseNedbankDirectEFT'
        money:
          $ref: '#/components/schemas/MoneyPaymentResponse'
        vat:
          $ref: '#/components/schemas/MoneyVat'
        merchantName:
          type: string
        said:
          type: string
          maxLength: 13
          minLength: 13
          pattern: ^[0-9]*$
        emailAddress:
          description: Your customer's e-mail address in RFC 5322 format that is used
            for identification of the customer's payins.
          examples:
          - yourcustomer@domain.com
          type: string
        reference:
          description: Reference number of transaction.
          type: string
        returnUrl:
          description: |-
            This is the URL where the customers will be redirected after completing a payment.

            The URL must be either IP or domain-based.
          examples:
          - https://example.com?id=123
          type: string
          maxLength: 1000
        acceptedAt:
          description: Date and time when payment was accepted.
          type: string
          format: date-time
        expireAt:
          description: Date and time of payment expiration. If no money has been transferred
            to this time, payment is considered failed and callback with status change
            event will shortly follow.
          type: string
          format: date-time
        paymentMethodCode:
          type: string
          enum:
          - NEDBANK_DIRECT_EFT
          const: NEDBANK_DIRECT_EFT
    NetBankingMethod:
      title: NETBANKING
      description: "Netbanking, also known as online banking or Net Banking is a payment\
        \ option offered by banks and financial institutions on Indian market that\
        \ allow customers to use banking services over the internet. \nIn our case,\
        \ we take advantage of the Netbanking services to offer your customer UPI\
        \ Payment method to pay funds directly from your customer Net Banking account."
      type: object
      required:
      - paymentMethodCode
      properties:
        account:
          $ref: '#/components/schemas/AccountPayinRequestNetBanking'
        emailAddress:
          description: Your customer's e-mail address in RFC 5322 format that is used
            for identification of the customer's payins.
          examples:
          - yourcustomer@domain.com
          type: string
        phoneNumber:
          description: Your customer's mobile phone number in full international telephone
            number format, including country code.
          examples:
          - '+628113912103'
          type: string
          maxLength: 16
          minLength: 7
          pattern: ^\+?[0-9]+$
        paymentOperatorCode:
          description: |-
            One of following can serve as Payment Operator:

             * Financial or other institution (such as bank, card payment processor, ...) that manages transactions for your customers
             * Mobile wallet
             * Blockchain protocol for crypto currency payments

            Customer is informed with the payment instructions where funds have to be transferred efficiently based on the selected Payment operator.
            For getting list of the available payment options for payins use [POST /payins/!availablePaymentOptions](#operations-Incoming_payments-availablePaymentOptions) API,
            for payouts use [POST /payouts/!availablePaymentOptions](#operations-Outgoing_payments-availablePaymentOptions) API.
          examples:
          - IDR_003
          type: string
          maxLength: 30
          minLength: 1
          pattern: ^[A-Za-z0-9_-]+$
        paymentMethodCode:
          type: string
          enum:
          - NETBANKING
          const: NETBANKING
    NetBankingMethodResponse:
      title: NETBANKING
      type: object
      required:
      - idPayin
      - idPayment
      - money
      - merchantName
      - reference
      - returnUrl
      - acceptedAt
      - expireAt
      - paymentMethodCode
      properties:
        idPayin:
          $ref: '#/components/schemas/IdPayin'
        idPayment:
          $ref: '#/components/schemas/IdPayment'
        money:
          $ref: '#/components/schemas/MoneyPaymentResponse'
        vat:
          $ref: '#/components/schemas/MoneyVat'
        merchantName:
          type: string
        reference:
          description: Reference number of transaction.
          type: string
        returnUrl:
          description: |-
            This is the URL where the customers will be redirected after completing a payment.

            The URL must be either IP or domain-based.
          examples:
          - https://example.com?id=123
          type: string
          maxLength: 1000
        upiId:
          description: Virtual payment address where we expect that your customer
            sends funds to make a payment. This parameter is to be shown to your customer.
          examples:
          - 123456789@paytm
          type: string
          maxLength: 100
          pattern: '[a-zA-Z0-9_\-\.]+@[a-zA-Z0-9_\.]+'
        deepLink:
          description: |-
            It can be used as deep link button target (what is typically known as an intent trigger)
            or to generate a QR code that can be scanned with any UPI enabled app.
          examples:
          - upi://pay?cu=INR&pa=7304154205@idfcfirst&pn=APEX ENTERPRISES&tn=ECLP04211&am=10.00
          type: string
        paymentOperator:
          $ref: '#/components/schemas/SelectedPaymentOperatorIncoming'
          description: |-
            PaymentOperator is a financial institution that manages transactions in your customer's account (such as banks, card payment processors, mobile wallets and so on).
            The payment operators are assigned to the payment methods according to your account configuration.

            For supported payment operators please refer to [`GET /payment-operators`](#operations-Payments-getPaymentOperators).
        acceptedAt:
          description: Date and time when payment was accepted.
          type: string
          format: date-time
        expireAt:
          description: Date and time of payment expiration. If no money has been transferred
            to this time, payment is considered failed and callback with status change
            event will shortly follow.
          type: string
          format: date-time
        paymentMethodCode:
          type: string
          enum:
          - NETBANKING
          const: NETBANKING
    OfflineMethod:
      title: OFFLINE
      description: |-
        Offline Bank Transfer. Payment method which requires customer to copy Payment instruction from the Payment application right after the incoming payment is submitted and create the Payment transfer using the instructions within customer's own payment service such as Internet or mobile banking or wallet.<br><br>
        As the Payment relies on the customer offline Payment transfer processing it can take minutes for Payment to be confirmed and also number of Payment expiration ratio can be higher.
      type: object
      required:
      - paymentMethodCode
      properties:
        account:
          $ref: '#/components/schemas/AccountPayinRequestOffline'
        paymentOperatorCode:
          description: |-
            One of following can serve as Payment Operator:

             * Financial or other institution (such as bank, card payment processor, ...) that manages transactions for your customers
             * Mobile wallet
             * Blockchain protocol for crypto currency payments

            Customer is informed with the payment instructions where funds have to be transferred efficiently based on the selected Payment operator.
            For getting list of the available payment options for payins use [POST /payins/!availablePaymentOptions](#operations-Incoming_payments-availablePaymentOptions) API,
            for payouts use [POST /payouts/!availablePaymentOptions](#operations-Outgoing_payments-availablePaymentOptions) API.<br><br>If the currency is **ARS**, **CNY**, **JPY**, **VND**, **PHP**, **MXN**, **NGN** or **KRW**, then the `paymentOperatorCode` field is optional. Otherwise, it is required.
          examples:
          - IDR_003
          type: string
          maxLength: 30
          minLength: 1
          pattern: ^[A-Za-z0-9_-]+$
        emailAddress:
          description: |-
            Your customer's e-mail address in RFC 5322 format that is used for identification of the customer's payins.<br><br>
            If the currency is **JPY**, then the `emailAddress` field is required. Otherwise, it is optional.
          examples:
          - yourcustomer@domain.com
          type: string
        phoneNumber:
          description: Your customer's mobile phone number in full international telephone
            number format, including country code.
          examples:
          - '+628113912103'
          type: string
          maxLength: 16
          minLength: 7
          pattern: ^\+?[0-9]+$
        productId:
          description: Identification of a product related to a payment order. This
            field is returned only if it is provided in a payment order request.
          type: string
          maxLength: 30
          pattern: ^[A-Za-z0-9_-]+$
        taxId:
          description: Tax payer identification number of a customer.<br><br>If the
            currency is **ARS**, then the `taxId` field is required. Otherwise, it
            is optional.
          examples:
          - 123456789
          type: string
          maxLength: 18
          minLength: 8
        paymentMethodCode:
          type: string
          enum:
          - OFFLINE
          const: OFFLINE
    OfflineMethodResponse:
      title: OFFLINE
      description: The account parameters for this payment method are used to show
        payment instructions to the customer.
      type: object
      required:
      - idPayin
      - idPayment
      - account
      - accountCustomer
      - money
      - reference
      - returnUrl
      - acceptedAt
      - expireAt
      - paymentMethodCode
      properties:
        idPayin:
          $ref: '#/components/schemas/IdPayin'
        idPayment:
          $ref: '#/components/schemas/IdPayment'
        account:
          $ref: '#/components/schemas/AccountResponseOffline'
        accountCustomer:
          $ref: '#/components/schemas/AccountCustomerResponseOffline'
        money:
          $ref: '#/components/schemas/MoneyPaymentResponse'
        moneyRequired:
          $ref: '#/components/schemas/MoneyRequired'
        vat:
          $ref: '#/components/schemas/MoneyVat'
        reference:
          description: Reference number of transaction.
          type: string
        processor:
          $ref: '#/components/schemas/PaymentProcessor'
        qrName:
          description: |-
            The name of the QR code image to be scanned by a wallet or payment service compatible with this payment method. The QR code of the image can be labeled by qrName to increase the clarity of the payment instruction.
            If this parameter contains any value, include it in the payment instructions for your customer.
          type: string
        qrCode:
          description: |-
            The URL of the QR code image to be scanned by a wallet or payment service compatible with this payment method. The QR code encodes the instructions how make a payment.
            If this parameter contains any value, include it in the payment instructions for your customer.

            This parameter is returned for the LAK and VND currency.
          examples:
          - https://domain/CAR/1/GPAY_QR
          type: string
        returnUrl:
          description: |-
            This is the URL where the customers will be redirected after completing a payment.

            The URL must be either IP or domain-based.
          examples:
          - https://example.com?id=123
          type: string
          maxLength: 1000
        paymentOperator:
          $ref: '#/components/schemas/SelectedPaymentOperatorIncoming'
          description: |-
            PaymentOperator is a financial institution that manages transactions in your customer's account (such as banks, card payment processors, mobile wallets and so on).
            The payment operators are assigned to the payment methods according to your account configuration.

            For supported payment operators please refer to [`GET /payment-operators`](#operations-Payments-getPaymentOperators).
        phoneNumber:
          description: Your customer's mobile phone number in full international telephone
            number format, including country code.
          examples:
          - '+628113912103'
          type: string
          maxLength: 16
          minLength: 7
          pattern: ^\+?[0-9]+$
        emailAddress:
          description: Your customer's e-mail address in RFC 5322 format that is used
            for identification of the customer's payins.
          examples:
          - yourcustomer@domain.com
          type: string
        productId:
          description: Identification of a product related to a payment order. This
            field is returned only if it is provided in a payment order request.
          type: string
          maxLength: 30
          pattern: ^[A-Za-z0-9_-]+$
        taxId:
          description: Tax payer identification number of a customer.
          examples:
          - 123456789
          type: string
          maxLength: 18
          minLength: 8
        taxIdCustomer:
          description: Tax payer identification number of a customer.
          examples:
          - 123456789
          type: string
          maxLength: 18
          minLength: 8
        acceptedAt:
          description: Date and time when payment was accepted.
          type: string
          format: date-time
        expireAt:
          description: Date and time of payment expiration. If no money has been transferred
            to this time, payment is considered failed and callback with status change
            event will shortly follow.
          type: string
          format: date-time
        paymentMethodCode:
          type: string
          enum:
          - OFFLINE
          const: OFFLINE
    OnlineMethod:
      title: ONLINE
      description: |-
        Online Bank Transfer. Payment method where Customer is redirected to his own preferred Payment service application right after the payment is submitted and create the Payment transfer with pre-filled Payment instruction.<br><br>
        For ZAR currency, the system validates the transaction using customer's account name sent on the request versus the name on the bank. If the comparison reached above the threshold, transaction will go through, otherwise, it will be rejected. If no accountName was sent, transaction will be processed as normal.
      type: object
      required:
      - paymentMethodCode
      properties:
        account:
          $ref: '#/components/schemas/AccountPayinRequestOnline'
        paymentOperatorCode:
          description: |-
            One of following can serve as Payment Operator:

             * Financial or other institution (such as bank, card payment processor, ...) that manages transactions for your customers
             * Mobile wallet
             * Blockchain protocol for crypto currency payments

            Customer is informed with the payment instructions where funds have to be transferred efficiently based on the selected Payment operator.
            For getting list of the available payment options for payins use [POST /payins/!availablePaymentOptions](#operations-Incoming_payments-availablePaymentOptions) API,
            for payouts use [POST /payouts/!availablePaymentOptions](#operations-Outgoing_payments-availablePaymentOptions) API.
          examples:
          - IDR_003
          type: string
          maxLength: 30
          minLength: 1
          pattern: ^[A-Za-z0-9_-]+$
        emailAddress:
          description: Your customer's e-mail address in RFC 5322 format that is used
            for identification of the customer's payins.
          examples:
          - yourcustomer@domain.com
          type: string
        paymentMethodCode:
          type: string
          enum:
          - ONLINE
          const: ONLINE
    OnlineMethodResponse:
      title: ONLINE
      type: object
      required:
      - idPayin
      - idPayment
      - account
      - money
      - reference
      - returnUrl
      - acceptedAt
      - expireAt
      - paymentMethodCode
      properties:
        idPayin:
          $ref: '#/components/schemas/IdPayin'
        idPayment:
          $ref: '#/components/schemas/IdPayment'
        account:
          $ref: '#/components/schemas/AccountResponseOnlyWithBank'
        accountCustomerUsedForPayment:
          $ref: '#/components/schemas/AccountCustomerUsedForPaymentResponseOnline'
        money:
          $ref: '#/components/schemas/MoneyPaymentResponse'
        moneyRequired:
          $ref: '#/components/schemas/MoneyRequired'
        vat:
          $ref: '#/components/schemas/MoneyVat'
        reference:
          description: Reference number of transaction.
          type: string
        returnUrl:
          description: |-
            This is the URL where the customers will be redirected after completing a payment.

            The URL must be either IP or domain-based.
          examples:
          - https://example.com?id=123
          type: string
          maxLength: 1000
        acceptedAt:
          description: Date and time when payment was accepted.
          type: string
          format: date-time
        expireAt:
          description: Date and time of payment expiration. If no money has been transferred
            to this time, payment is considered failed and callback with status change
            event will shortly follow.
          type: string
          format: date-time
        paymentMethodCode:
          type: string
          enum:
          - ONLINE
          const: ONLINE
    P2AV2Method:
      title: P2A_V2
      description: |-
        Phone to Account. Payment method which requires customer to scan QR code from the Payment application by Customer's Payment service application right after the payment is submitted.<br><br>
        Supported Payment service applications are UPI and GooglePay both on India market.
      type: object
      required:
      - paymentOperatorCode
      - paymentMethodCode
      properties:
        account:
          $ref: '#/components/schemas/AccountPayinRequestP2AV2'
        paymentOperatorCode:
          description: |-
            One of following can serve as Payment Operator:

             * Financial or other institution (such as bank, card payment processor, ...) that manages transactions for your customers
             * Mobile wallet
             * Blockchain protocol for crypto currency payments

            Customer is informed with the payment instructions where funds have to be transferred efficiently based on the selected Payment operator.
            For getting list of the available payment options for payins use [POST /payins/!availablePaymentOptions](#operations-Incoming_payments-availablePaymentOptions) API,
            for payouts use [POST /payouts/!availablePaymentOptions](#operations-Outgoing_payments-availablePaymentOptions) API.
          examples:
          - IDR_003
          type: string
          maxLength: 30
          minLength: 1
          pattern: ^[A-Za-z0-9_-]+$
        emailAddress:
          description: Your customer's e-mail address in RFC 5322 format that is used
            for identification of the customer's payins.
          examples:
          - yourcustomer@domain.com
          type: string
        paymentMethodCode:
          type: string
          enum:
          - P2A_V2
          const: P2A_V2
    P2AV2MethodResponse:
      title: P2A_V2
      description: The account parameters for this payment method are used to show
        payment instructions to the customer.
      type: object
      required:
      - idPayin
      - idPayment
      - account
      - money
      - merchantName
      - paymentAddress
      - qrName
      - qrCode
      - reference
      - returnUrl
      - paymentOperator
      - acceptedAt
      - expireAt
      - paymentMethodCode
      properties:
        idPayin:
          $ref: '#/components/schemas/IdPayin'
        idPayment:
          $ref: '#/components/schemas/IdPayment'
        account:
          $ref: '#/components/schemas/AccountResponseP2AV2'
        money:
          $ref: '#/components/schemas/MoneyPaymentResponse'
        vat:
          $ref: '#/components/schemas/MoneyVat'
        merchantName:
          type: string
        paymentAddress:
          $ref: '#/components/schemas/PaymentAddress'
        qrName:
          description: |-
            The name of the QR code image to be scanned by a wallet or payment service compatible with this payment method. The QR code of the image can be labeled by qrName to increase the clarity of the payment instruction.
            If this parameter contains any value, include it in the payment instructions for your customer.
          type: string
        qrCode:
          description: |-
            The URL of the QR code image to be scanned by a wallet or payment service compatible with this payment method. The QR code encodes the instructions how make a payment.
            If this parameter contains any value, include it in the payment instructions for your customer.
          examples:
          - https://domain/CAR/1/GPAY_QR
          type: string
        reference:
          description: Reference number of transaction.
          type: string
        externalReference:
          $ref: '#/components/schemas/ExternalReference'
        returnUrl:
          description: |-
            This is the URL where the customers will be redirected after completing a payment.

            The URL must be either IP or domain-based.
          examples:
          - https://example.com?id=123
          type: string
          maxLength: 1000
        paymentOperator:
          $ref: '#/components/schemas/SelectedPaymentOperatorIncoming'
          description: |-
            PaymentOperator is a financial institution that manages transactions in your customer's account (such as banks, card payment processors, mobile wallets and so on).
            The payment operators are assigned to the payment methods according to your account configuration.

            For supported payment operators please refer to [`GET /payment-operators`](#operations-Payments-getPaymentOperators).
        acceptedAt:
          description: Date and time when payment was accepted.
          type: string
          format: date-time
        expireAt:
          description: Date and time of payment expiration. If no money has been transferred
            to this time, payment is considered failed and callback with status change
            event will shortly follow.
          type: string
          format: date-time
        paymentMethodCode:
          type: string
          enum:
          - P2A_V2
          const: P2A_V2
    PassportNumberIdentifyingReference:
      title: PASSPORT_NUMBER
      description: Passport number of a customer.
      type: object
      required:
      - passportNumber
      - identifyingReferenceCode
      properties:
        passportNumber:
          type: string
        identifyingReferenceCode:
          type: string
          enum:
          - PASSPORT_NUMBER
          const: PASSPORT_NUMBER
    PayMeMethod:
      title: PAY_ME
      description: "Pay Me is payment method intended for South Africa market which\
        \ allows customers to send payments by scanning \nQR codes from supported\
        \ banks and e-wallets."
      type: object
      required:
      - account
      - paymentMethodCode
      properties:
        account:
          $ref: '#/components/schemas/AccountPayinRequestPayMe'
        emailAddress:
          description: Your customer's e-mail address in RFC 5322 format that is used
            for identification of the customer's payins.
          examples:
          - yourcustomer@domain.com
          type: string
        phoneNumber:
          description: Your customer's mobile phone number in full international telephone
            number format, including country code.
          examples:
          - '+628113912103'
          type: string
          maxLength: 16
          minLength: 7
          pattern: ^\+?[0-9]+$
        paymentMethodCode:
          type: string
          enum:
          - PAY_ME
          const: PAY_ME
    PayMeMethodResponse:
      title: PAY_ME
      type: object
      required:
      - idPayin
      - idPayment
      - account
      - accountCustomer
      - money
      - merchantName
      - reference
      - qrName
      - qrCode
      - returnUrl
      - acceptedAt
      - expireAt
      - paymentMethodCode
      properties:
        idPayin:
          $ref: '#/components/schemas/IdPayin'
        idPayment:
          $ref: '#/components/schemas/IdPayment'
        account:
          $ref: '#/components/schemas/AccountResponsePayMe'
        accountCustomer:
          $ref: '#/components/schemas/AccountCustomerResponsePayMe'
        money:
          $ref: '#/components/schemas/MoneyPaymentResponse'
        moneyRequired:
          $ref: '#/components/schemas/MoneyRequired'
        vat:
          $ref: '#/components/schemas/MoneyVat'
        merchantName:
          type: string
        reference:
          description: Reference number of transaction.
          type: string
        qrName:
          description: |-
            The name of the QR code image to be scanned by a wallet or payment service compatible with this payment method. The QR code of the image can be labeled by qrName to increase the clarity of the payment instruction.
            If this parameter contains any value, include it in the payment instructions for your customer.
          type: string
        qrCode:
          description: |-
            The URL of the QR code image to be scanned by a wallet or payment service compatible with this payment method. The QR code encodes the instructions how make a payment.
            If this parameter contains any value, include it in the payment instructions for your customer.
          examples:
          - https://domain/CAR/1/GPAY_QR
          type: string
        payMeDeepLink:
          description: |-
            It can be used as deep link button target (what is typically known as an intent trigger)
            or to generate a QR code that can be scanned with any UPI enabled app.
          examples:
          - upi://pay?cu=INR&pa=7304154205@idfcfirst&pn=APEX ENTERPRISES&tn=ECLP04211&am=10.00
          type: string
        returnUrl:
          description: |-
            This is the URL where the customers will be redirected after completing a payment.

            The URL must be either IP or domain-based.
          examples:
          - https://example.com?id=123
          type: string
          maxLength: 1000
        acceptedAt:
          description: Date and time when payment was accepted.
          type: string
          format: date-time
        expireAt:
          description: Date and time of payment expiration. If no money has been transferred
            to this time, payment is considered failed and callback with status change
            event will shortly follow.
          type: string
          format: date-time
        paymentMethodCode:
          type: string
          enum:
          - PAY_ME
          const: PAY_ME
    PayShapMethod:
      title: PAYSHAP
      description: |-
        PayShap offers a quick, easy, and secure way to send money without having to input banking login details.<br><br>
        Customers can make payments using just a phone number or account number, with transactions processed instantly.<br>
        It is a convenient solution for everyday payments, designed to simplify and speed up the payment experience.<br><br>
        At least one of the following fields must be provided: `accountNumber` or `phoneNumber`.<br>
        If `accountNumber` field is provided, you must also fill in `accountName`.<br>
        If `phoneNumber` field is provided, you must also fill in `externalProviderCode`.
      type: object
      required:
      - paymentOperatorCode
      - paymentMethodCode
      properties:
        account:
          $ref: '#/components/schemas/AccountPayinRequestPayShap'
        phoneNumber:
          description: Your customer's mobile phone number, starting with 0.
          examples:
          - '0888777666'
          type: string
          maxLength: 10
          minLength: 10
        paymentOperatorCode:
          description: |-
            One of following can serve as Payment Operator:

             * Financial or other institution (such as bank, card payment processor, ...) that manages transactions for your customers
             * Mobile wallet
             * Blockchain protocol for crypto currency payments

            Customer is informed with the payment instructions where funds have to be transferred efficiently based on the selected Payment operator.
            For getting list of the available payment options for payins use [POST /payins/!availablePaymentOptions](#operations-Incoming_payments-availablePaymentOptions) API,
            for payouts use [POST /payouts/!availablePaymentOptions](#operations-Outgoing_payments-availablePaymentOptions) API.
          examples:
          - IDR_003
          type: string
          maxLength: 30
          minLength: 1
          pattern: ^[A-Za-z0-9_-]+$
        externalProviderCode:
          type: string
          minLength: 1
        paymentMethodCode:
          type: string
          enum:
          - PAYSHAP
          const: PAYSHAP
    PayShapMethodResponse:
      title: PAYSHAP
      type: object
      required:
      - idPayin
      - idPayment
      - money
      - merchantName
      - reference
      - returnUrl
      - paymentOperator
      - acceptedAt
      - expireAt
      - paymentMethodCode
      properties:
        idPayin:
          $ref: '#/components/schemas/IdPayin'
        idPayment:
          $ref: '#/components/schemas/IdPayment'
        money:
          $ref: '#/components/schemas/MoneyPaymentResponse'
        vat:
          $ref: '#/components/schemas/MoneyVat'
        merchantName:
          type: string
        accountCustomer:
          $ref: '#/components/schemas/AccountCustomerResponsePayShap'
        phoneNumber:
          description: Your customer's mobile phone number, starting with 0.
          examples:
          - '0888777666'
          type: string
          maxLength: 10
          minLength: 10
        reference:
          description: Reference number of transaction.
          type: string
        returnUrl:
          description: |-
            This is the URL where the customers will be redirected after completing a payment.

            The URL must be either IP or domain-based.
          examples:
          - https://example.com?id=123
          type: string
          maxLength: 1000
        paymentOperator:
          $ref: '#/components/schemas/SelectedPaymentOperatorIncoming'
          description: |-
            PaymentOperator is a financial institution that manages transactions in your customer's account (such as banks, card payment processors, mobile wallets and so on).
            The payment operators are assigned to the payment methods according to your account configuration.

            For supported payment operators please refer to [`GET /payment-operators`](#operations-Payments-getPaymentOperators).
        externalProvider:
          $ref: '#/components/schemas/ExternalProvider'
        acceptedAt:
          description: Date and time when payment was accepted.
          type: string
          format: date-time
        expireAt:
          description: Date and time of payment expiration. If no money has been transferred
            to this time, payment is considered failed and callback with status change
            event will shortly follow.
          type: string
          format: date-time
        paymentMethodCode:
          type: string
          enum:
          - PAYSHAP
          const: PAYSHAP
    Payin:
      title: Payin
      description: |-
        For every payment method there is appropriate payment specific request object in `paymentMethod` attribute.

        If you have used the [`POST /payins/!availablePaymentOptions`](#operations-Incoming_payments-availablePaymentOptions) API to get the list of the available payment options, then it is expected that you use the same input data here to make sure that the payment will be accepted.
      type: object
      required:
      - paymentRequested
      - paymentMethod
      - returnUrl
      properties:
        paymentRequested:
          $ref: '#/components/schemas/PaymentRequested'
        paymentMethod:
          $ref: '#/components/schemas/PayinMethod'
        callbackUrl:
          description: |-
            This is the URL where the system will send the transaction final status after payment has been completed.

            The URL must be either IP or domain-based.
          examples:
          - https://example.com/order-status-change
          type: string
          maxLength: 1000
        returnUrl:
          description: |-
            This is the URL where the customers will be redirected after completing a payment.

            The URL must be either IP or domain-based.
          examples:
          - https://example.com?id=123
          type: string
          maxLength: 1000
        customerIp:
          description: |-
            The IP address of the customer making the payment in either the IPv4 or IPv6 format.

            The IP address is used for validating against the IP address whitelists and blacklists from the merchant settings.
          examples:
          - 172.16.254.1
          type: string
    PayinAcceptedMethodResponse:
      title: MethodResponse
      description: |-
        For every payment method there is appropriate payment specific response object in `paymentMethodResponse` attribute.

        Use data from `paymentMethodResponse` for payment completion (for example show to the customer).
      type: object
      required:
      - paymentRequested
      - paymentMethodResponse
      properties:
        paymentRequested:
          $ref: '#/components/schemas/PaymentRequested'
        paymentMethodResponse:
          $ref: '#/components/schemas/PayinMethodResponse'
    PayinAcceptedRedirectResponse:
      title: RedirectResponse
      description: Customer should be redirected to specified URL for the next payment
        process step.
      type: object
      required:
      - paymentRequested
      - redirectTo
      properties:
        paymentRequested:
          $ref: '#/components/schemas/PaymentRequested'
        redirectTo:
          $ref: '#/components/schemas/Redirection'
    PayinAcceptedResponse:
      title: PayinAcceptedResponse
      oneOf:
      - $ref: '#/components/schemas/PayinAcceptedMethodResponse'
      - $ref: '#/components/schemas/PayinAcceptedRedirectResponse'
    PayinDetail:
      title: PayinDetail
      type: object
      required:
      - paymentRequested
      - process
      - fee
      - paymentMethodResponse
      properties:
        paymentRequested:
          $ref: '#/components/schemas/PaymentRequested'
        process:
          $ref: '#/components/schemas/PaymentProcess'
        fee:
          $ref: '#/components/schemas/MoneyFee'
        paymentMethodResponse:
          $ref: '#/components/schemas/PayinMethodResponse'
        settlement:
          $ref: '#/components/schemas/SettlementMethod'
          description: |-
            Payment method is a payment instrument that your customers use (such as online bank transfers, VA payments, UPI and so on).
            Select a payment method from the list of the methods that you have configured in your account.

            The `settlementMethodCode` represents payment method available for payout payment.
        customer:
          $ref: '#/components/schemas/CustomerDetail'
    PayinMethod:
      title: PayinMethod
      description: |-
        Payment method is a payment instrument that your customers use (such as online bank transfers, VA payments, UPI and so on).<br>
        Select a payment method from the list of the methods that you have configured in your account.<br><br>
        The *paymentMethodCode* represents payment method available for payin payment.
      oneOf:
      - $ref: '#/components/schemas/AbsaPayMethod'
      - $ref: '#/components/schemas/CapitecPayMethod'
      - $ref: '#/components/schemas/CodePaymentMethod'
      - $ref: '#/components/schemas/CryptoOfflineMethod'
      - $ref: '#/components/schemas/DuitNowMethod'
      - $ref: '#/components/schemas/EWalletMethod'
      - $ref: '#/components/schemas/FpxMethod'
      - $ref: '#/components/schemas/IMPSMethod'
      - $ref: '#/components/schemas/MobileMoneyMethod'
      - $ref: '#/components/schemas/NedbankDirectEFTMethod'
      - $ref: '#/components/schemas/NetBankingMethod'
      - $ref: '#/components/schemas/OfflineMethod'
      - $ref: '#/components/schemas/OnlineMethod'
      - $ref: '#/components/schemas/P2AV2Method'
      - $ref: '#/components/schemas/PayMeMethod'
      - $ref: '#/components/schemas/PayShapMethod'
      - $ref: '#/components/schemas/PixQRMethod'
      - $ref: '#/components/schemas/PromptPayMethod'
      - $ref: '#/components/schemas/PseMethod'
      - $ref: '#/components/schemas/QrPhMethod'
      - $ref: '#/components/schemas/QrisPayMethod'
      - $ref: '#/components/schemas/UpiCollectMethod'
      - $ref: '#/components/schemas/UpiIdMethod'
      - $ref: '#/components/schemas/UpiQRMethod'
      - $ref: '#/components/schemas/VaPayMethod'
      - $ref: '#/components/schemas/VaPayVerifMethod'
      - $ref: '#/components/schemas/VietQRMethod'
      discriminator:
        propertyName: paymentMethodCode
        mapping:
          ABSA_PAY: '#/components/schemas/AbsaPayMethod'
          CAPITEC_PAY: '#/components/schemas/CapitecPayMethod'
          CODE_PAYMENT: '#/components/schemas/CodePaymentMethod'
          CRYPTO_OFFLINE: '#/components/schemas/CryptoOfflineMethod'
          DUITNOW: '#/components/schemas/DuitNowMethod'
          EWALLET: '#/components/schemas/EWalletMethod'
          FPX: '#/components/schemas/FpxMethod'
          IMPS: '#/components/schemas/IMPSMethod'
          MOBILE_MONEY: '#/components/schemas/MobileMoneyMethod'
          NEDBANK_DIRECT_EFT: '#/components/schemas/NedbankDirectEFTMethod'
          NETBANKING: '#/components/schemas/NetBankingMethod'
          OFFLINE: '#/components/schemas/OfflineMethod'
          ONLINE: '#/components/schemas/OnlineMethod'
          P2A_V2: '#/components/schemas/P2AV2Method'
          PAYSHAP: '#/components/schemas/PayShapMethod'
          PAY_ME: '#/components/schemas/PayMeMethod'
          PIXQR: '#/components/schemas/PixQRMethod'
          PROMPTPAY: '#/components/schemas/PromptPayMethod'
          PSE: '#/components/schemas/PseMethod'
          QRISPAY: '#/components/schemas/QrisPayMethod'
          QRPH: '#/components/schemas/QrPhMethod'
          UPICOLLECT: '#/components/schemas/UpiCollectMethod'
          UPIID: '#/components/schemas/UpiIdMethod'
          UPIQR: '#/components/schemas/UpiQRMethod'
          VAPAY: '#/components/schemas/VaPayMethod'
          VAPAY_VERIF: '#/components/schemas/VaPayVerifMethod'
          VIETQR: '#/components/schemas/VietQRMethod'
    PayinMethodCode:
      title: PayinMethodCode
      description: "Payment method is a payment instrument that your customers use\
        \ (such as online bank transfers, VA payments, UPI and so on).\nSelect a payment\
        \ method from the list of the methods that you have configured in your account.\n\
        The `PaymentMethodCode` represents payment method available for a payment.\n\
        \n - ABSA_PAY - Absa Pay offers a simple, quick and secure way to make payments\
        \ without needing to input banking login details.\n\n   Customers can select\
        \ their preferred account for payment and securely authorize the transaction\
        \ through the banking app.\n - CAPITEC_PAY - Capitec Pay is an easy, fast\
        \ and safe way to pay without having to enter the bank card details or share\
        \ banking login information.\n\n   The customer can choose the account he\
        \ wants to pay from and authenticate the payment safely in the banking app.\n\
        \ - CODE_PAYMENT - Convenience Store Payments. Payment method which requires\
        \ customer to copy Payment Code from the Payment application right after the\
        \ payment is submitted into kiosk in convenience store during the payment\
        \ on the cashier.\n\n   Each Payment Code is assigned to one and only pne\
        \ payment and should be used only once.\n - CRYPTO_OFFLINE - Crypto Offline\
        \ is a payment method that allows customers to pay by crypto currency from\
        \ they crypto wallet to an address that they are provided.\n - DUITNOW - A\
        \ payment method which requires customer to scan QR code from the Payment\
        \ application by Customer's Payment service application right after the payment\
        \ is submitted.\n - EWALLET - E-Wallet is a payment option on Indonesian market\
        \ that allows customers to use major Indonesian wallets for payments.\n\n\
        \   Customer is either automatically redirected to a chosen wallet with all\
        \ payment details pre-populated to finalize the payment or directly receives\
        \ push notification to authorize the payment in case of OVO wallet.\n - IMPS\
        \ - Is an India market version of the Offline Bank Transfer which differs\
        \ in the data which need to be collected and used during a Payment process.\n\
        \ - MOBILE_MONEY - Mobile Money is a payment method which allows customers\
        \ to simply complete a payment from their mobile money wallet.\n - NETBANKING\
        \ - Netbanking, also known as online banking or Net Banking is a payment option\
        \ offered by banks and financial institutions on Indian market that allow\
        \ customers to use banking services over the internet. In our case, we take\
        \ advantage of the Netbanking services to offer your customer UPI Payment\
        \ method to pay funds directly from your customer Net Banking account.\n -\
        \ OFFLINE - Offline Bank Transfer. Payment method which requires customer\
        \ to copy Payment instruction from the Payment application right after the\
        \ incoming payment is submitted and create the Payment transfer using the\
        \ instructions within customer's own payment service such as Internet or mobile\
        \ banking or wallet.\n\n   As the Payment relies on the customer offline Payment\
        \ transfer processing it can take minutes for Payment to be confirmed and\
        \ also number of Payment expiration ratio can be higher.\n - ONLINE - Online\
        \ Bank Transfer. Payment method where Customer is redirected to his own preferred\
        \ Payment service application right after the payment is submitted and create\
        \ the Payment transfer with pre-filled Payment instruction.\n - P2A_V2 - Phone\
        \ to Account. Payment method which requires customer to scan QR code from\
        \ the Payment application by Customer's Payment service application right\
        \ after the payment is submitted.\n\n   Supported Payment service applications\
        \ are UPI and GooglePay both on India market.\n - PAY_ME - Pay Me is payment\
        \ method intended for South Africa market which allows customers to send payments\
        \ by scanning QR codes from supported banks and e-wallets.\n - PAYSHAP - PayShap\
        \ offers a quick, easy, and secure way to send money without having to input\
        \ banking login details.\n\n   Customers can make payments using just a phone\
        \ number or account number, with transactions processed instantly. It is a\
        \ convenient solution for everyday payments, designed to simplify and speed\
        \ up the payment experience.\n - PROMPTPAY - A payment method which requires\
        \ customer to scan QR code from the Payment application by Customer's Payment\
        \ service application right after the payment is submitted.\n - QRPH - QR\
        \ Ph is payment method intended for Philippine market which allows customers\
        \ to send payments by scanning QR codes from supported banks and e-wallets.\n\
        \ - QRISPAY - QRIS is a payment method intended for the Indonesian market\
        \ which allows users to pay using scanning QR codes by theirs Payment application.\n\
        \ - UPIID - UPI (Unified Payments Interface) is a method of fund transfers\
        \ in India. The mechanism allows two parties to exchange funds using a UPI\
        \ ID without having to share the banking information with the other party.\n\
        \ - UPIQR - UPI QR is payment method intended for the Indian market. This\
        \ payment method requires customers to scan QR code by Customer's Payment\
        \ service application compatible with UPI payment schema.\n - VAPAY - Virtual\
        \ Accounts. Payment method which requires customer to copy Payment instruction\
        \ with generated Virtual Account from the Payment application right after\
        \ the payment is submitted and create the Payment transfer using the instructions\
        \ within customer's own payment service such as Internet or mobile banking,\
        \ wallet or ATM.\n\n   One Virtual account cannot be used for sending funds\
        \ repeatedly.\n - VAPAY_VERIF - Virtual Accounts With Verified Bank Account.\
        \ Payment method which requires customer to copy Payment instruction with\
        \ assigned Virtual Account from the Payment application right after the payment\
        \ is submitted and create the Payment transfer using the instructions within\
        \ customer's own payment service such as Internet or mobile banking, wallet\
        \ or ATM.\n   \n   Each virtual account is assigned to one and only one customers\
        \ bank account and is used for sending funds repeatedly.\n - VIETQR - Viet\
        \ QR is a payment method intended for the Vietnamese market which allows users\
        \ to pay using scanning QR codes by theirs payment application or internet\
        \ banking."
      examples:
      - ONLINE
      type: string
      minLength: 1
    PayinMethodResponse:
      title: PayinMethodResponse
      oneOf:
      - $ref: '#/components/schemas/AbsaPayMethodResponse'
      - $ref: '#/components/schemas/CapitecPayMethodResponse'
      - $ref: '#/components/schemas/CodePaymentMethodResponse'
      - $ref: '#/components/schemas/CryptoOfflineMethodResponse'
      - $ref: '#/components/schemas/DuitNowPayMethodResponse'
      - $ref: '#/components/schemas/EWalletMethodResponse'
      - $ref: '#/components/schemas/FpxMethodResponse'
      - $ref: '#/components/schemas/IMPSMethodResponse'
      - $ref: '#/components/schemas/MobileMoneyMethodResponse'
      - $ref: '#/components/schemas/NedbankDirectEFTMethodResponse'
      - $ref: '#/components/schemas/NetBankingMethodResponse'
      - $ref: '#/components/schemas/OfflineMethodResponse'
      - $ref: '#/components/schemas/OnlineMethodResponse'
      - $ref: '#/components/schemas/P2AV2MethodResponse'
      - $ref: '#/components/schemas/PayMeMethodResponse'
      - $ref: '#/components/schemas/PayShapMethodResponse'
      - $ref: '#/components/schemas/PixQRMethodResponse'
      - $ref: '#/components/schemas/PromptPayMethodResponse'
      - $ref: '#/components/schemas/PseMethodResponse'
      - $ref: '#/components/schemas/QrPhMethodResponse'
      - $ref: '#/components/schemas/QrisPayMethodResponse'
      - $ref: '#/components/schemas/UpiCollectMethodResponse'
      - $ref: '#/components/schemas/UpiIdMethodResponse'
      - $ref: '#/components/schemas/UpiQRMethodResponse'
      - $ref: '#/components/schemas/VaPayMethodResponse'
      - $ref: '#/components/schemas/VaPayVerifMethodResponse'
      - $ref: '#/components/schemas/VietQRMethodResponse'
      discriminator:
        propertyName: paymentMethodCode
        mapping:
          ABSA_PAY: '#/components/schemas/AbsaPayMethodResponse'
          CAPITEC_PAY: '#/components/schemas/CapitecPayMethodResponse'
          CODE_PAYMENT: '#/components/schemas/CodePaymentMethodResponse'
          CRYPTO_OFFLINE: '#/components/schemas/CryptoOfflineMethodResponse'
          DUITNOW: '#/components/schemas/DuitNowPayMethodResponse'
          EWALLET: '#/components/schemas/EWalletMethodResponse'
          FPX: '#/components/schemas/FpxMethodResponse'
          IMPS: '#/components/schemas/IMPSMethodResponse'
          MOBILE_MONEY: '#/components/schemas/MobileMoneyMethodResponse'
          NEDBANK_DIRECT_EFT: '#/components/schemas/NedbankDirectEFTMethodResponse'
          NETBANKING: '#/components/schemas/NetBankingMethodResponse'
          OFFLINE: '#/components/schemas/OfflineMethodResponse'
          ONLINE: '#/components/schemas/OnlineMethodResponse'
          P2A_V2: '#/components/schemas/P2AV2MethodResponse'
          PAYSHAP: '#/components/schemas/PayShapMethodResponse'
          PAY_ME: '#/components/schemas/PayMeMethodResponse'
          PIXQR: '#/components/schemas/PixQRMethodResponse'
          PROMPTPAY: '#/components/schemas/PromptPayMethodResponse'
          PSE: '#/components/schemas/PseMethodResponse'
          QRISPAY: '#/components/schemas/QrisPayMethodResponse'
          QRPH: '#/components/schemas/QrPhMethodResponse'
          UPICOLLECT: '#/components/schemas/UpiCollectMethodResponse'
          UPIID: '#/components/schemas/UpiIdMethodResponse'
          UPIQR: '#/components/schemas/UpiQRMethodResponse'
          VAPAY: '#/components/schemas/VaPayMethodResponse'
          VAPAY_VERIF: '#/components/schemas/VaPayVerifMethodResponse'
          VIETQR: '#/components/schemas/VietQRMethodResponse'
    PaymentAccountDetail:
      title: PaymentAccountDetail
      type: object
      required:
      - customerAccountRequest
      - customerAccountProcess
      properties:
        customerAccountRequest:
          $ref: '#/components/schemas/AccountResponseDetail'
          description: Details of customer's account collected in payment request.
        customerAccountProcess:
          $ref: '#/components/schemas/AccountResponseDetail'
          description: Details of customer's account collected during payment process.
    PaymentAddress:
      title: PaymentAddress
      description: Specifies the payment address (e.g. in UPI payment system) where
        customer can send the payment using theirs wallets or others banking services.
      type: object
      required:
      - name
      - idAddress
      properties:
        name:
          description: The name of the payment address ID e.g. UPI ID/VPA or GPAY
            ID.
          type: string
        idAddress:
          description: The payment address ID where customer can send the payment.
          type: string
    PaymentInstruction:
      title: PaymentInstruction
      description: If not empty then it specifies special instructions for different
        banking services your customers has to follow when entering payment in their
        banking service.
      type: object
      required:
      - bankingService
      - companyCode
      properties:
        bankingService:
          description: It specifies your customer banking service to which companyCode
            belongs. e.g. ATM-MANDIRI - Mandiri Bank ATM banking service.
          examples:
          - ATM-MANDIRI
          type: string
        companyCode:
          description: "It informs your customers that companyCode has to be used\
            \ in their banking service together with Virtual Account Number from accountNumber\
            \ parameter e.g. 82017 + 12903437820 \nfor particular bankingService \
            \ provided that it is specified."
          examples:
          - 82017
          type: string
    PaymentLocation:
      title: PaymentLocation
      type: object
      required:
      - postalCode
      - city
      - district
      properties:
        postalCode:
          description: Postal code where customer is paying at (e.g. store location's
            postal code).
          type: string
          minLength: 1
        city:
          description: City which customer is paying in (e.g. city where store is
            located).
          type: string
          minLength: 1
        district:
          description: Disctrict which customer is paying in (e.g. district where
            store is located).
          type: string
          minLength: 1
    PaymentMethod:
      title: PaymentMethod
      type: object
      required:
      - code
      properties:
        code:
          examples:
          - ONLINE
          type: string
          maxLength: 50
          minLength: 1
    PaymentMethodsList:
      title: PaymentMethodsList
      description: List of available payment methods.
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/PaymentMethod'
    PaymentOperatorIncoming:
      title: PaymentOperatorIncoming
      type: object
      required:
      - code
      - name
      properties:
        code:
          description: |-
            One of following can serve as Payment Operator:

             * Financial or other institution (such as bank, card payment processor, ...) that manages transactions for your customers
             * Mobile wallet
             * Blockchain protocol for crypto currency payments

            Customer is informed with the payment instructions where funds have to be transferred efficiently based on the selected Payment operator.
            For getting list of the available payment options for payins use [POST /payins/!availablePaymentOptions](#operations-Incoming_payments-availablePaymentOptions) API,
            for payouts use [POST /payouts/!availablePaymentOptions](#operations-Outgoing_payments-availablePaymentOptions) API.
          examples:
          - IDR_003
          type: string
          maxLength: 30
          minLength: 1
          pattern: ^[A-Za-z0-9_-]+$
        name:
          examples:
          - Bank Danamon
          type: string
          maxLength: 1000
          minLength: 1
        externalProviders:
          $ref: '#/components/schemas/ExternalProviders'
    PaymentOperatorList:
      title: PaymentOperatorList
      description: List of available payment operators.
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/PaymentOperatorIncoming'
            description: |-
              PaymentOperator is a financial institution that manages transactions in your customer's account (such as banks, card payment processors, mobile wallets and so on).
              The payment operators are assigned to the payment methods according to your account configuration.

              For supported payment operators please refer to [`GET /payment-operators`](#operations-Payments-getPaymentOperators).
    PaymentOperatorOption:
      title: PaymentOperatorOption
      type: object
      required:
      - code
      - isAvailable
      - transactionAmountLimit
      properties:
        code:
          description: |-
            One of following can serve as Payment Operator:

             * Financial or other institution (such as bank, card payment processor, ...) that manages transactions for your customers
             * Mobile wallet
             * Blockchain protocol for crypto currency payments

            Customer is informed with the payment instructions where funds have to be transferred efficiently based on the selected Payment operator.
            For getting list of the available payment options for payins use [POST /payins/!availablePaymentOptions](#operations-Incoming_payments-availablePaymentOptions) API,
            for payouts use [POST /payouts/!availablePaymentOptions](#operations-Outgoing_payments-availablePaymentOptions) API.
          examples:
          - IDR_003
          type: string
          maxLength: 30
          minLength: 1
          pattern: ^[A-Za-z0-9_-]+$
        name:
          examples:
          - Bank Danamon
          type: string
          maxLength: 1000
          minLength: 1
        isAvailable:
          description: If set to false, the payment operator is not actually available,
            please contact merchant support to solve this problem.
          type: boolean
        transactionAmountLimit:
          $ref: '#/components/schemas/IntervalNumberTo'
          description: Interval of transaction amounts this payment operator can be
            used for.
    PaymentOperatorOutgoing:
      title: PaymentOperatorOutgoing
      description: |-
        PaymentOperator is a financial institution that manages transactions in your customer's account (such as banks, card payment processors, mobile wallets and so on).
        The payment operators are assigned to the payment methods according to your account configuration.

        For supported payment operators please refer to [`GET /payment-operators`](#operations-Payments-getPaymentOperators).
      type: object
      required:
      - code
      - name
      properties:
        code:
          description: |-
            One of following can serve as Payment Operator:

             * Financial or other institution (such as bank, card payment processor, ...) that manages transactions for your customers
             * Mobile wallet
             * Blockchain protocol for crypto currency payments

            Customer is informed with the payment instructions where funds have to be transferred efficiently based on the selected Payment operator.
            For getting list of the available payment options for payins use [POST /payins/!availablePaymentOptions](#operations-Incoming_payments-availablePaymentOptions) API,
            for payouts use [POST /payouts/!availablePaymentOptions](#operations-Outgoing_payments-availablePaymentOptions) API.
          examples:
          - IDR_003
          type: string
          maxLength: 30
          minLength: 1
          pattern: ^[A-Za-z0-9_-]+$
        name:
          examples:
          - Bank Danamon
          type: string
          maxLength: 1000
          minLength: 1
        customerTransactionFee:
          $ref: '#/components/schemas/CustomerTransactionFee'
    PaymentOption:
      title: PaymentOption
      type: object
      required:
      - paymentTypeCode
      - paymentMethodCode
      - currencyCode
      - transactionAmountLimit
      - isAvailable
      properties:
        paymentTypeCode:
          description: Payment direction from the merchant's point of view.
          type: string
          enum:
          - PAYIN
          - PAYOUT
        paymentMethodCode:
          $ref: '#/components/schemas/PayinMethodCode'
        currencyCode:
          $ref: '#/components/schemas/CurrencyCode'
        segmentCode:
          $ref: '#/components/schemas/SegmentCode'
        transactionAmountLimit:
          $ref: '#/components/schemas/IntervalNumberTo'
          description: Interval of transaction amounts this payment option can be
            used for.
        isAvailable:
          description: If set to false, the option is not currently available and
            must be activated in administration.
          type: boolean
        paymentOperators:
          description: Payment operators that can be used for paying via this payment
            option.
          type: array
          items:
            $ref: '#/components/schemas/PaymentOperatorOption'
    PaymentOptionsList:
      title: PaymentOptionsList
      description: List of (possibly) available payment options.
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/PaymentOption'
    PaymentProcess:
      title: PaymentProcess
      type: object
      required:
      - status
      - createdAt
      - isTest
      properties:
        status:
          $ref: '#/components/schemas/PaymentStatus'
        failureReasons:
          $ref: '#/components/schemas/FailureReasons'
        createdAt:
          description: Date and time when payment was accepted by platform.
          type: string
          format: date-time
        processedAt:
          description: Date and time when payment was processed by platform.
          type: string
          format: date-time
        isTest:
          description: This flag is set to `true` when payment was done with testing
            merchant or testing channel.
          type: boolean
        processorStatus:
          $ref: '#/components/schemas/ProcessorStatus'
    PaymentProcessor:
      title: PaymentProcessor
      description: |-
        The external processor of the payment. This field is returned only if an external processor is used.

         Possible values:
         * `POC` - PO Coins processor
         * `PAYSTAGE` - PayStage processor
         * `MTPX` - MetapayX processor
         * `TPAY` - Top Pay processor
         * `LCSX` - LCSX processor
         * `PRL` - Pay Royale processor
      examples:
      - POC
      type: string
      enum:
      - POC
      - PAYSTAGE
      - MTPX
      - TPAY
      - LCSX
      - PRL
    PaymentRequested:
      title: PaymentRequested
      description: The requested payment.
      type: object
      required:
      - money
      properties:
        money:
          $ref: '#/components/schemas/MoneyPaymentRequested'
        segmentCode:
          $ref: '#/components/schemas/SegmentCode'
        exchangedToCurrency:
          $ref: '#/components/schemas/CurrencyCode'
    PaymentStatus:
      title: PaymentStatus
      description: |-
        * `PROCESSING` - payment process is not finished yet. Success or failure of payment cannot be determined at this time.
        * `SUCCESS` - payment has been successfully processed.
        * `FAILED` - payment has been accepted by platform and failed during processing. Details can be found in `failureReasons` attribute.
        * `REFUSED` - payment has not been accepted by platform for processing. Details can be found in `failureReasons` attribute.

        For every status change new callback `payment.statusChange` is sent. See more info about [callbacks](general.html#callbacks).
      examples:
      - SUCCESS
      type: string
      enum:
      - PROCESSING
      - SUCCESS
      - FAILED
      - REFUSED
    Payout:
      title: Payout
      description: |-
        For every payment method there is appropriate payment specific request object in `paymentMethod` attribute.

        If you have used the [`POST /payins/!availablePaymentOptions`](#operations-Incoming_payments-availablePaymentOptions) API to get the list of the available payment options, then it is expected that you use the same input data here to make sure that the payment will be accepted.
      type: object
      required:
      - paymentRequested
      - paymentMethod
      properties:
        paymentRequested:
          $ref: '#/components/schemas/PaymentRequested'
        paymentMethod:
          $ref: '#/components/schemas/PayoutMethod'
        callbackUrl:
          description: |-
            This is the URL where the system will send the transaction final status after payment has been completed.

            The URL must be either IP or domain-based.
          examples:
          - https://example.com/order-status-change
          type: string
          maxLength: 1000
        customerIp:
          description: |-
            The IP address of the customer making the payment in either the IPv4 or IPv6 format.

            The IP address is used for validating against the IP address whitelists and blacklists from the merchant settings.
          examples:
          - 172.16.254.1
          type: string
    PayoutAccepted:
      title: PayoutAccepted
      description: The outgoing payment has been accepted for processing.
      type: object
      required:
      - paymentRequested
      - paymentMethodResponse
      properties:
        paymentRequested:
          $ref: '#/components/schemas/PaymentRequested'
        paymentMethodResponse:
          $ref: '#/components/schemas/PayoutMethodResponse'
    PayoutDetail:
      title: PayoutDetail
      type: object
      required:
      - paymentRequested
      - process
      - fee
      - paymentMethodResponse
      properties:
        paymentRequested:
          $ref: '#/components/schemas/PaymentRequested'
        process:
          $ref: '#/components/schemas/PaymentProcess'
        fee:
          $ref: '#/components/schemas/MoneyFee'
        paymentMethodResponse:
          $ref: '#/components/schemas/PayoutMethodResponse'
    PayoutMethod:
      title: PayoutMethod
      description: |-
        Payment method is a payment instrument that your customers use (such as online bank transfers, VA payments, UPI and so on).
        Select a payment method from the list of the methods that you have configured in your account.<br><br>
        The `paymentMethodCode` field represents payment method available for payout payment.
      oneOf:
      - $ref: '#/components/schemas/BankTransferMethod'
      - $ref: '#/components/schemas/CryptoTransferMethod'
      - $ref: '#/components/schemas/EmailTransferMethod'
      - $ref: '#/components/schemas/PhoneNumberTransferMethod'
      - $ref: '#/components/schemas/RandomKeyTransferMethod'
      - $ref: '#/components/schemas/TaxPayerIdTransferMethod'
      - $ref: '#/components/schemas/WalletTransferMethod'
      discriminator:
        propertyName: paymentMethodCode
        mapping:
          BANK_TRANSFER: '#/components/schemas/BankTransferMethod'
          CRYPTO_TRANSFER: '#/components/schemas/CryptoTransferMethod'
          EMAIL_TRANSFER: '#/components/schemas/EmailTransferMethod'
          PHONE_NUMBER_TRANSFER: '#/components/schemas/PhoneNumberTransferMethod'
          RANDOM_KEY_TRANSFER: '#/components/schemas/RandomKeyTransferMethod'
          TAXPAYER_ID_TRANSFER: '#/components/schemas/TaxPayerIdTransferMethod'
          WALLET_TRANSFER: '#/components/schemas/WalletTransferMethod'
    PayoutMethodCode:
      title: PayoutMethodCode
      description: |-
        Payment method is a payment instrument that your customers use (such as online bank transfers, VA payments, UPI and so on).
        Select a payment method from the list of the methods that you have configured in your account.
        The `PaymentMethodCode` represents payment method available for a payment.

         - BANK_TRANSFER - A payment method for sending funds from your account to external bank account using a country specific payment system to process bank transfers. It requires customer to provide a receiving bank account details which are required by local payment system to process bank transfers.
         - CRYPTO_TRANSFER - A payment method for sending funds from your crypto wallet to external crypto wallet. It requires customer to provide a receiving crypto wallet details in format related to a chosen blockchain protocol.
         - WALLET_TRANSFER - A payment method for sending funds from your account to external wallet. It requires customer to provide a receiving wallet details in format related to the provider of a wallet.
      examples:
      - BANK_TRANSFER
      type: string
      minLength: 1
    PayoutMethodResponse:
      title: PayoutMethodResponse
      oneOf:
      - $ref: '#/components/schemas/BankTransferMethodResponse'
      - $ref: '#/components/schemas/CryptoTransferMethodResponse'
      - $ref: '#/components/schemas/EmailTransferMethodResponse'
      - $ref: '#/components/schemas/PhoneNumberTransferMethodResponse'
      - $ref: '#/components/schemas/RandomKeyTransferMethodResponse'
      - $ref: '#/components/schemas/TaxPayerIdTransferMethodResponse'
      - $ref: '#/components/schemas/WalletTransferMethodResponse'
      discriminator:
        propertyName: paymentMethodCode
        mapping:
          BANK_TRANSFER: '#/components/schemas/BankTransferMethodResponse'
          CRYPTO_TRANSFER: '#/components/schemas/CryptoTransferMethodResponse'
          EMAIL_TRANSFER: '#/components/schemas/EmailTransferMethodResponse'
          PHONE_NUMBER_TRANSFER: '#/components/schemas/PhoneNumberTransferMethodResponse'
          RANDOM_KEY_TRANSFER: '#/components/schemas/RandomKeyTransferMethodResponse'
          TAXPAYER_ID_TRANSFER: '#/components/schemas/TaxPayerIdTransferMethodResponse'
          WALLET_TRANSFER: '#/components/schemas/WalletTransferMethodResponse'
    PhoneNumberTransferMethod:
      title: PHONE_NUMBER_TRANSFER
      description: Payment method for sending funds to bank account/wallet associated
        with provided phone number.
      type: object
      required:
      - phoneNumber
      - identifyingReference
      - paymentMethodCode
      properties:
        phoneNumber:
          description: Your customer's mobile phone number in full international telephone
            number format, including country code.
          examples:
          - '+628113912103'
          type: string
          maxLength: 16
          minLength: 7
          pattern: ^\+?[0-9]+$
        account:
          $ref: '#/components/schemas/AccountPayoutRequestPhoneNumberTransfer'
        identifyingReference:
          $ref: '#/components/schemas/IdentifyingReference'
          description: Government-issued ID to verify a person's identity.<br><br>If
            the currency is **BRL**, then the `identifyingReference` field must contain
            the tax payer identification number of a customer.
        paymentMethodCode:
          type: string
          enum:
          - PHONE_NUMBER_TRANSFER
          const: PHONE_NUMBER_TRANSFER
    PhoneNumberTransferMethodResponse:
      title: PHONE_NUMBER_TRANSFER
      type: object
      required:
      - idPayout
      - idPayment
      - paymentMethodCode
      - reference
      properties:
        idPayout:
          $ref: '#/components/schemas/IdPayout'
        idPayment:
          $ref: '#/components/schemas/IdPayment'
        paymentMethodCode:
          type: string
          enum:
          - PHONE_NUMBER_TRANSFER
          const: PHONE_NUMBER_TRANSFER
        reference:
          description: Reference number of transaction.
          type: string
    PixQRMethod:
      title: PIXQR
      description: Pix is a Brazilian payment method which allows customers to send
        payments using their preferred banking app by either scanning QR code or copy-pasting
        Pix EMV code.
      type: object
      required:
      - account
      - taxId
      - paymentMethodCode
      properties:
        account:
          $ref: '#/components/schemas/AccountPayinRequestPixQR'
        taxId:
          description: Brazilian tax payer identification number - CPF for individuals
            / CNPJ for businesses. TaxId should be provided without special characters.
          type: string
          maxLength: 14
          minLength: 14
        paymentMethodCode:
          type: string
          enum:
          - PIXQR
          const: PIXQR
    PixQRMethodResponse:
      title: PIXQR
      type: object
      required:
      - idPayin
      - idPayment
      - money
      - merchantName
      - qrName
      - qrCode
      - qrRawData
      - accountCustomer
      - taxId
      - reference
      - returnUrl
      - acceptedAt
      - expireAt
      - paymentMethodCode
      properties:
        idPayin:
          $ref: '#/components/schemas/IdPayin'
        idPayment:
          $ref: '#/components/schemas/IdPayment'
        money:
          $ref: '#/components/schemas/MoneyPaymentResponse'
        vat:
          $ref: '#/components/schemas/MoneyVat'
        merchantName:
          type: string
        qrName:
          description: |-
            The name of the QR code image to be scanned by a wallet or payment service compatible with this payment method. The QR code of the image can be labeled by qrName to increase the clarity of the payment instruction.
            If this parameter contains any value, include it in the payment instructions for your customer.
          type: string
        qrCode:
          description: |-
            The URL of the QR code image to be scanned by a wallet or payment service compatible with this payment method. The QR code encodes the instructions how make a payment.
            If this parameter contains any value, include it in the payment instructions for your customer.
          examples:
          - https://domain/CAR/1/GPAY_QR
          type: string
        qrRawData:
          description: The raw string / payload encoded within the QR code to be used
            for the Copy and Paste functionality or rendered as a QR code.
          type: string
        accountCustomer:
          $ref: '#/components/schemas/AccountCustomerResponsePixQR'
        taxId:
          description: Brazilian tax payer identification number - CPF for individuals
            / CNPJ for businesses. TaxId should be provided without special characters.
          type: string
          maxLength: 14
          minLength: 14
        reference:
          description: Reference number of transaction.
          type: string
        returnUrl:
          description: |-
            This is the URL where the customers will be redirected after completing a payment.

            The URL must be either IP or domain-based.
          examples:
          - https://example.com?id=123
          type: string
          maxLength: 1000
        acceptedAt:
          description: Date and time when payment was accepted.
          type: string
          format: date-time
        expireAt:
          description: Date and time of payment expiration. If no money has been transferred
            to this time, payment is considered failed and callback with status change
            event will shortly follow.
          type: string
          format: date-time
        paymentMethodCode:
          type: string
          enum:
          - PIXQR
          const: PIXQR
    PostAuthTokensError:
      title: PostAuthTokensError
      type: object
      required:
      - code
      properties:
        code:
          description: |-
            Business validation error codes:

             - MERCHANT_NOT_FOUND - The merchant code seems to be invalid, please contact merchant support.
             - ACTION_INVALID - Invalid action.
             - ID_PAYMENT_MISSING - IdPayment attribute was not set.
             - MERCHANT_INACTIVE - The merchant must be activated to get the token.
             - MONEY_MULTIPLE_DEFINITIONS - Provided multiple money objects.
             - MONEY_CONVERSION_CURRENCY - Invalid conversion currency definition.
             - SETTLEMENT_METHOD - invalid settlement method definition.
          type: string
          enum:
          - MERCHANT_NOT_FOUND
          - MERCHANT_INACTIVE
          - ID_PAYMENT_MISSING
          - ACTION_INVALID
        description:
          description: Optional error description.
          type: string
        attrCode:
          description: Optional identification of the request attribute name that
            caused the error.
          type: string
        attrValue:
          description: Optional request attribute value that caused the error.
          type: string
    PostAvailablePayinOptionsError:
      title: PostAvailablePayinOptionsError
      type: object
      required:
      - code
      properties:
        code:
          description: |-
            Possible error codes:

             * CURRENCY_NOT_SUPPORTED - The selected currency is not supported by merchant.
             * CURRENCY_PRECISION_EXCEEDED - The provided payment amount exceeds the smallest fractional unit allowed for the specified currency.
             * PAYMENT_METHOD_NOT_FOUND - No payment method has been found for selected payment criteria. Verify your product configuration and contact support for further details.
             * PAYMENT_METHOD_ERROR - A processing error has been encountered for payment. An unexpected scenario with required operator intervention, contact support for further details.
             * PAYMENT_CHANNEL_NO_ACTIVE_FOUND - No active payment channel that can accept the payment has been found.
             * PAYMENT_CHANNEL_NO_OPENED_FOUND - No opened payment channel that can accept the payment has been found.
             * PAYMENT_CHANNEL_NO_SEGMENT_FOUND - No payment channel that can accept the payment with the specified segment has been found.
             * PAYMENT_CHANNEL_AMOUNT_LIMITS - No payment channel with amount limits suitable for the payment amount has been found.  Limits can be found with [`GET /payment-options`](#operations-Payments-getPaymentOptions) API.
             * PAYMENT_CHANNEL_DAILY_LIMITS - All the suitable channels reached their daily limits on payment amount. Select different payment method or contact support for limits adjustments.
          type: string
          enum:
          - CURRENCY_NOT_SUPPORTED
          - CURRENCY_PRECISION_EXCEEDED
          - PAYMENT_METHOD_NOT_FOUND
          - PAYMENT_METHOD_ERROR
          - PAYMENT_CHANNEL_NO_ACTIVE_FOUND
          - PAYMENT_CHANNEL_NO_OPENED_FOUND
          - PAYMENT_CHANNEL_NO_SEGMENT_FOUND
          - PAYMENT_CHANNEL_AMOUNT_LIMITS
          - PAYMENT_CHANNEL_DAILY_LIMITS
        description:
          description: Optional error description.
          type: string
        attrCode:
          description: Optional identification of the request attribute name that
            caused the error.
          type: string
        attrValue:
          description: Optional request attribute value that caused the error.
          type: string
    PostAvailablePayoutOptionsError:
      title: PostAvailablePayoutOptionsError
      type: object
      required:
      - code
      properties:
        code:
          description: |-
            Possible error codes:

             * CURRENCY_NOT_SUPPORTED - The selected currency is not supported by merchant.
             * CURRENCY_PRECISION_EXCEEDED - The provided payment amount exceeds the smallest fractional unit allowed for the specified currency.
             * PAYMENT_METHOD_NOT_FOUND - No payment method has been found for selected payment criteria. Verify your product configuration and contact support for further details.
             * PAYMENT_METHOD_ERROR - A processing error has been encountered for payment. An unexpected scenario with required operator intervention, contact support for further details.
             * PAYMENT_CHANNEL_NO_ACTIVE_FOUND - No active payment channel that can accept the payment has been found.
             * PAYMENT_CHANNEL_NO_OPENED_FOUND - No opened payment channel that can accept the payment has been found.
             * PAYMENT_CHANNEL_NO_SEGMENT_FOUND - No payment channel that can accept the payment with the specified segment has been found.
             * PAYMENT_CHANNEL_AMOUNT_LIMITS - No payment channel with amount limits suitable for the payment amount has been found.  Limits can be found with [`GET /payment-options`](#operations-Payments-getPaymentOptions) API.
             * PAYMENT_CHANNEL_DAILY_LIMITS - All the suitable channels reached their daily limits on payment amount. Select different payment method or contact support for limits adjustments.
          type: string
          enum:
          - CURRENCY_NOT_SUPPORTED
          - CURRENCY_PRECISION_EXCEEDED
          - PAYMENT_METHOD_NOT_FOUND
          - PAYMENT_METHOD_ERROR
          - PAYMENT_CHANNEL_NO_ACTIVE_FOUND
          - PAYMENT_CHANNEL_NO_OPENED_FOUND
          - PAYMENT_CHANNEL_NO_SEGMENT_FOUND
          - PAYMENT_CHANNEL_AMOUNT_LIMITS
          - PAYMENT_CHANNEL_DAILY_LIMITS
        description:
          description: Optional error description.
          type: string
        attrCode:
          description: Optional identification of the request attribute name that
            caused the error.
          type: string
        attrValue:
          description: Optional request attribute value that caused the error.
          type: string
    PostAvailableTopUpOptionsError:
      title: PostAvailableTopUpOptionsError
      type: object
      required:
      - code
      properties:
        code:
          description: |-
            Possible error codes:

             * CURRENCY_NOT_SUPPORTED - The selected currency is not supported by merchant.
             * CURRENCY_PRECISION_EXCEEDED - The provided payment amount exceeds the smallest fractional unit allowed for the specified currency.
             * PAYMENT_METHOD_NOT_FOUND - No payment method has been found for selected payment criteria. Verify your product configuration and contact support for further details.
             * PAYMENT_METHOD_ERROR - A processing error has been encountered for payment. An unexpected scenario with required operator intervention, contact support for further details.
             * PAYMENT_CHANNEL_NO_ACTIVE_FOUND - No active payment channel that can accept the payment has been found.
             * PAYMENT_CHANNEL_NO_OPENED_FOUND - No opened payment channel that can accept the payment has been found.
             * PAYMENT_CHANNEL_NO_SEGMENT_FOUND - No payment channel that can accept the payment with the specified segment has been found.
             * PAYMENT_CHANNEL_AMOUNT_LIMITS - No payment channel with amount limits suitable for the payment amount has been found.  Limits can be found with [`GET /payment-options`](#operations-Payments-getPaymentOptions) API.
             * PAYMENT_CHANNEL_DAILY_LIMITS - All the suitable channels reached their daily limits on payment amount. Select different payment method or contact support for limits adjustments.
          type: string
          enum:
          - CURRENCY_NOT_SUPPORTED
          - CURRENCY_PRECISION_EXCEEDED
          - PAYMENT_METHOD_NOT_FOUND
          - PAYMENT_METHOD_ERROR
          - PAYMENT_CHANNEL_NO_ACTIVE_FOUND
          - PAYMENT_CHANNEL_NO_OPENED_FOUND
          - PAYMENT_CHANNEL_NO_SEGMENT_FOUND
          - PAYMENT_CHANNEL_AMOUNT_LIMITS
          - PAYMENT_CHANNEL_DAILY_LIMITS
        description:
          description: Optional error description.
          type: string
        attrCode:
          description: Optional identification of the request attribute name that
            caused the error.
          type: string
        attrValue:
          description: Optional request attribute value that caused the error.
          type: string
    PostPayinsError:
      title: PostPayinsError
      description: Input does not meet business validations. The payment has not been
        accepted. See [406 Not Acceptable](responseCodes.html#term-406-Not-Acceptable)
      type: object
      required:
      - code
      properties:
        code:
          description: |-
            Possible error codes:

             * CURRENCY_NOT_SUPPORTED - The selected currency is not supported by merchant.
             * CURRENCY_PRECISION_EXCEEDED - The provided payment amount exceeds the smallest fractional unit allowed for the specified currency.
             * PAYMENT_METHOD_NOT_FOUND - No payment method has been found for selected payment criteria. Verify your product configuration and contact support for further details.
             * PAYMENT_METHOD_ERROR - A processing error has been encountered for payment. An unexpected scenario with required operator intervention, contact support for further details.
             * PAYMENT_OPERATOR_NOT_FOUND - The payment operator has not been found.
             * PAYMENT_OPERATOR_INVALID - The selected payment operator is not supported by a used payment method.
             * PAYMENT_OPERATOR_REQUIRED - The selected payment method required a payment operator to be provided.
             * PAYMENT_OPERATOR_UNAVAILABLE - The payment operator is not available.
             * PAYMENT_CHANNEL_NO_ACTIVE_FOUND - No active payment channel that can accept the payment has been found.
             * PAYMENT_CHANNEL_NO_OPENED_FOUND - No opened payment channel that can accept the payment has been found.
             * PAYMENT_CHANNEL_NO_SEGMENT_FOUND - No payment channel that can accept the payment with the specified segment has been found.
             * PAYMENT_CHANNEL_AMOUNT_LIMITS - No payment channel with amount limits suitable for the payment amount has been found.  Limits can be found with [`GET /payment-options`](#operations-Payments-getPaymentOptions) API.
             * PAYMENT_CHANNEL_DAILY_LIMITS - All the suitable channels reached their daily limits on payment amount. Select different payment method or contact support for limits adjustments.
             * EMAIL_INVALID - The provided e-mail address is in the wrong format.
             * IP_DENIED - The provided IP address is denied. It is either found in the blacklist or is not found in the whitelist.
             * CLIENT_IP_INVALID - The provided IP address is in the wrong format.
             * SEGMENT_CODE_INVALID - The provided segment code is unknown.
             * INVALID_PHONE_NUMBER - Provided phone number is invalid or does not exist.
             * INVALID_ID_NUMBER - Provided ID number is invalid or does not exist.
             * PAYMENT_METHOD_CODE_INVALID - The provided payment method is unknown.
             * ACCOUNT_TYPE_INELIGIBLE - Account type of provided account cannot be used for this payment.
             * INVALID_ACCOUNT_NUMBER - Provided account number is invalid.
             * NAME_SIMILARITY_CHECK_FAILED - Fraud prevention measure - name match error.
             * FEATURE_UNAVAILABLE - The payment can't be completed because the customer has either disabled a payment feature or the feature is unavailable on the customer's device.
             * CUSTOMER_ACCOUNT_LIMIT_EXCEEDED - Customer account limits reached.
             * CUSTOMER_VERIFICATION_INACTIVITY - Customer did not respond to the request in time.
             * CUSTOMER_NOT_REGISTERED - Customer is not registered for the service.
          type: string
          enum:
          - CURRENCY_NOT_SUPPORTED
          - CURRENCY_PRECISION_EXCEEDED
          - PAYMENT_METHOD_NOT_FOUND
          - PAYMENT_METHOD_ERROR
          - PAYMENT_OPERATOR_NOT_FOUND
          - PAYMENT_OPERATOR_INVALID
          - PAYMENT_OPERATOR_REQUIRED
          - PAYMENT_OPERATOR_UNAVAILABLE
          - PAYMENT_CHANNEL_NO_ACTIVE_FOUND
          - PAYMENT_CHANNEL_NO_OPENED_FOUND
          - PAYMENT_CHANNEL_NO_SEGMENT_FOUND
          - PAYMENT_CHANNEL_AMOUNT_LIMITS
          - PAYMENT_CHANNEL_DAILY_LIMITS
          - EMAIL_INVALID
          - IP_DENIED
          - CLIENT_IP_INVALID
          - SEGMENT_CODE_INVALID
          - INVALID_PHONE_NUMBER
          - INVALID_ID_NUMBER
          - PAYMENT_METHOD_CODE_INVALID
          - ACCOUNT_TYPE_INELIGIBLE
          - INVALID_ACCOUNT_NUMBER
          - NAME_SIMILARITY_CHECK_FAILED
          - FEATURE_UNAVAILABLE
          - CUSTOMER_ACCOUNT_LIMIT_EXCEEDED
          - CUSTOMER_VERIFICATION_INACTIVITY
          - CUSTOMER_NOT_REGISTERED
        description:
          description: Optional error description.
          type: string
        attrCode:
          description: Optional identification of the request attribute name that
            caused the error.
          type: string
        attrValue:
          description: Optional request attribute value that caused the error.
          type: string
    PostPayoutsError:
      title: PostPayoutsError
      description: Input does not meet business validations. The payment has not been
        accepted. See [406 Not Acceptable](responseCodes.html#term-406-Not-Acceptable)
      type: object
      required:
      - code
      properties:
        code:
          description: |-
            A business validation or processing error has been encountered while processing the payment. The payment has not been accepted. Contact Support.

            Possible error codes:

             * CURRENCY_NOT_SUPPORTED - The selected currency is not supported by merchant.
             * CURRENCY_PRECISION_EXCEEDED - The provided payment amount exceeds the smallest fractional unit allowed for the specified currency.
             * PAYMENT_METHOD_NOT_FOUND - No payment method has been found for seleceted payment criteria. Verify your product configuration and contact support for further details.
             * PAYMENT_METHOD_ERROR - A processing error has been encountered for payment. An unexpected scenario with required operator intervention, contact support for further details.
             * PAYMENT_OPERATOR_NOT_FOUND - The payment operator has not been found.
             * PAYMENT_OPERATOR_INVALID - The selected payment operator is not supported by a used payment method.
             * PAYMENT_OPERATOR_REQUIRED - The selected payment method required a payment operator to be provided.
             * PAYMENT_OPERATOR_UNAVAILABLE - The payment operator is not available.
             * PAYMENT_CHANNEL_NO_ACTIVE_FOUND - No active payment channel that can accept the payment has been found.
             * PAYMENT_CHANNEL_NO_OPENED_FOUND - No opened payment channel that can accept the payment has been found.
             * PAYMENT_CHANNEL_NO_SEGMENT_FOUND - No payment channel that can accept the payment with the specified segment has been found.
             * PAYMENT_CHANNEL_AMOUNT_LIMITS - No payment channel with amount limits suitable for the payment amount has been found.  Limits can be found with [`GET /payment-options`](#operations-Payments-getPaymentOptions) API.
             * PAYMENT_CHANNEL_DAILY_LIMITS - All the suitable channels reached their daily limits on payment amount. Select different payment method or contact support for limits adjustments.
             * IP_DENIED - The provided IP address is denied. It is either found in the blacklist or is not found in the whitelist.
             * CLIENT_IP_INVALID - The provided IP address is in the wrong format.
             * BALANCE_INSUFFICIENT - The balance is not sufficient for payout.
             * INVALID_IFSC - Invalid IFSC Code.
             * BANK_CODE_REQUIRED - A bank code is required for the selected payout method and currency.
          type: string
          enum:
          - CURRENCY_NOT_SUPPORTED
          - CURRENCY_PRECISION_EXCEEDED
          - PAYMENT_METHOD_NOT_FOUND
          - PAYMENT_METHOD_ERROR
          - PAYMENT_OPERATOR_NOT_FOUND
          - PAYMENT_OPERATOR_INVALID
          - PAYMENT_OPERATOR_REQUIRED
          - PAYMENT_OPERATOR_UNAVAILABLE
          - PAYMENT_CHANNEL_NO_ACTIVE_FOUND
          - PAYMENT_CHANNEL_NO_OPENED_FOUND
          - PAYMENT_CHANNEL_NO_SEGMENT_FOUND
          - PAYMENT_CHANNEL_AMOUNT_LIMITS
          - PAYMENT_CHANNEL_DAILY_LIMITS
          - IP_DENIED
          - CLIENT_IP_INVALID
          - BALANCE_INSUFFICIENT
          - INVALID_IFSC
          - BANK_CODE_REQUIRED
        description:
          description: Optional error description.
          type: string
        attrCode:
          description: Optional identification of the request attribute name that
            caused the error.
          type: string
        attrValue:
          description: Optional request attribute value that caused the error.
          type: string
    ProcessorStatus:
      title: ProcessorStatus
      description: |-
        If present, this field specifies the status of the payment processing by an external processor.

        Possible values:
         * `ACCEPTED` - The payment was accepted by the processor.
         * `PROCESSED` - The payment has been processed. For the result of the processing, check the `status` field in the response.
      examples:
      - ACCEPTED
      type: string
      enum:
      - ACCEPTED
      - PROCESSED
    PromptPayMethod:
      title: PROMPTPAY
      description: Payment method which requires customer to scan QR code from the
        Payment application by Customer's Payment service application right after
        the payment is submitted.
      type: object
      required:
      - paymentMethodCode
      properties:
        account:
          $ref: '#/components/schemas/AccountPayinRequestPromptPay'
        paymentOperatorCode:
          description: |-
            One of following can serve as Payment Operator:

             * Financial or other institution (such as bank, card payment processor, ...) that manages transactions for your customers
             * Mobile wallet
             * Blockchain protocol for crypto currency payments

            Customer is informed with the payment instructions where funds have to be transferred efficiently based on the selected Payment operator.
            For getting list of the available payment options for payins use [POST /payins/!availablePaymentOptions](#operations-Incoming_payments-availablePaymentOptions) API,
            for payouts use [POST /payouts/!availablePaymentOptions](#operations-Outgoing_payments-availablePaymentOptions) API.
          examples:
          - IDR_003
          type: string
          maxLength: 30
          minLength: 1
          pattern: ^[A-Za-z0-9_-]+$
        emailAddress:
          description: Your customer's e-mail address in RFC 5322 format that is used
            for identification of the customer's payins.
          examples:
          - yourcustomer@domain.com
          type: string
        paymentMethodCode:
          type: string
          enum:
          - PROMPTPAY
          const: PROMPTPAY
    PromptPayMethodResponse:
      title: PROMPTPAY
      type: object
      required:
      - idPayin
      - idPayment
      - accountCustomer
      - money
      - merchantName
      - reference
      - qrName
      - qrCode
      - returnUrl
      - acceptedAt
      - expireAt
      - paymentMethodCode
      properties:
        idPayin:
          $ref: '#/components/schemas/IdPayin'
        idPayment:
          $ref: '#/components/schemas/IdPayment'
        accountCustomer:
          $ref: '#/components/schemas/AccountCustomerResponsePromptPay'
        money:
          $ref: '#/components/schemas/MoneyPaymentResponse'
        vat:
          $ref: '#/components/schemas/MoneyVat'
        moneyRequired:
          $ref: '#/components/schemas/MoneyRequired'
        merchantName:
          type: string
        reference:
          description: Reference number of transaction.
          type: string
        qrName:
          description: |-
            The name of the QR code image to be scanned by a wallet or payment service compatible with this payment method. The QR code of the image can be labeled by qrName to increase the clarity of the payment instruction.
            If this parameter contains any value, include it in the payment instructions for your customer.
          type: string
        qrCode:
          description: |-
            The URL of the QR code image to be scanned by a wallet or payment service compatible with this payment method. The QR code encodes the instructions how make a payment.
            If this parameter contains any value, include it in the payment instructions for your customer.
          examples:
          - https://domain/CAR/1/GPAY_QR
          type: string
        returnUrl:
          description: |-
            This is the URL where the customers will be redirected after completing a payment.

            The URL must be either IP or domain-based.
          examples:
          - https://example.com?id=123
          type: string
          maxLength: 1000
        acceptedAt:
          description: Date and time when payment was accepted.
          type: string
          format: date-time
        expireAt:
          description: Date and time of payment expiration. If no money has been transferred
            to this time, payment is considered failed and callback with status change
            event will shortly follow.
          type: string
          format: date-time
        paymentMethodCode:
          type: string
          enum:
          - PROMPTPAY
          const: PROMPTPAY
    PseMethod:
      title: PSE
      description: "PSE (Pagos Seguros en L?nea) is a real-time online payment system\
        \ in Colombia that enables secure, \ninstant bank transfer payments - customers\
        \ simply log in into their internet banking and authorize pre-populated payment\
        \ details."
      type: object
      required:
      - account
      - emailAddress
      - phoneNumber
      - paymentMethodCode
      properties:
        account:
          $ref: '#/components/schemas/AccountPayinRequestPse'
        emailAddress:
          description: Your customer's e-mail address in RFC 5322 format that is used
            for identification of the customer's payins.
          examples:
          - yourcustomer@domain.com
          type: string
        phoneNumber:
          description: Your customer's mobile phone number in full international telephone
            number format, including country code.
          examples:
          - '+628113912103'
          type: string
          maxLength: 16
          minLength: 7
          pattern: ^\+?[0-9]+$
        paymentMethodCode:
          type: string
          enum:
          - PSE
          const: PSE
    PseMethodResponse:
      title: PSE
      type: object
      required:
      - idPayin
      - idPayment
      - accountCustomer
      - emailAddress
      - phoneNumber
      - money
      - reference
      - returnUrl
      - acceptedAt
      - expireAt
      - paymentMethodCode
      properties:
        idPayin:
          $ref: '#/components/schemas/IdPayin'
        idPayment:
          $ref: '#/components/schemas/IdPayment'
        accountCustomer:
          $ref: '#/components/schemas/AccountCustomerResponsePse'
        emailAddress:
          description: Your customer's e-mail address in RFC 5322 format that is used
            for identification of the customer's payins.
          examples:
          - yourcustomer@domain.com
          type: string
        phoneNumber:
          description: Your customer's mobile phone number in full international telephone
            number format, including country code.
          examples:
          - '+628113912103'
          type: string
          maxLength: 16
          minLength: 7
          pattern: ^\+?[0-9]+$
        money:
          $ref: '#/components/schemas/MoneyPaymentResponse'
        vat:
          $ref: '#/components/schemas/MoneyVat'
        reference:
          description: Reference number of transaction.
          type: string
        returnUrl:
          description: |-
            This is the URL where the customers will be redirected after completing a payment.

            The URL must be either IP or domain-based.
          examples:
          - https://example.com?id=123
          type: string
          maxLength: 1000
        acceptedAt:
          description: Date and time when payment was accepted.
          type: string
          format: date-time
        expireAt:
          description: Date and time of payment expiration. If no money has been transferred
            to this time, payment is considered failed and callback with status change
            event will shortly follow.
          type: string
          format: date-time
        paymentMethodCode:
          type: string
          enum:
          - PSE
          const: PSE
    QrPhMethod:
      title: QRPH
      description: "QR Ph is payment method intended for Philippine market which allows\
        \ customers to send payments \nby scanning QR codes from supported banks and\
        \ e-wallets."
      type: object
      required:
      - paymentMethodCode
      properties:
        account:
          $ref: '#/components/schemas/AccountPayinRequestQrPh'
        emailAddress:
          description: Your customer's e-mail address in RFC 5322 format that is used
            for identification of the customer's payins.
          examples:
          - yourcustomer@domain.com
          type: string
        paymentOperatorCode:
          description: |-
            One of following can serve as Payment Operator:

             * Financial or other institution (such as bank, card payment processor, ...) that manages transactions for your customers
             * Mobile wallet
             * Blockchain protocol for crypto currency payments

            Customer is informed with the payment instructions where funds have to be transferred efficiently based on the selected Payment operator.
            For getting list of the available payment options for payins use [POST /payins/!availablePaymentOptions](#operations-Incoming_payments-availablePaymentOptions) API,
            for payouts use [POST /payouts/!availablePaymentOptions](#operations-Outgoing_payments-availablePaymentOptions) API.
          examples:
          - IDR_003
          type: string
          maxLength: 30
          minLength: 1
          pattern: ^[A-Za-z0-9_-]+$
        phoneNumber:
          description: Your customer's mobile phone number in full international telephone
            number format, including country code.
          examples:
          - '+628113912103'
          type: string
          maxLength: 16
          minLength: 7
          pattern: ^\+?[0-9]+$
        paymentMethodCode:
          type: string
          enum:
          - QRPH
          const: QRPH
    QrPhMethodResponse:
      title: QRPH
      type: object
      required:
      - idPayin
      - idPayment
      - account
      - accountCustomer
      - money
      - merchantName
      - reference
      - qrName
      - qrCode
      - returnUrl
      - acceptedAt
      - expireAt
      - paymentMethodCode
      properties:
        idPayin:
          $ref: '#/components/schemas/IdPayin'
        idPayment:
          $ref: '#/components/schemas/IdPayment'
        account:
          $ref: '#/components/schemas/AccountResponseQrPh'
        accountCustomer:
          $ref: '#/components/schemas/AccountCustomerResponseQrPh'
        money:
          $ref: '#/components/schemas/MoneyPaymentResponse'
        moneyRequired:
          $ref: '#/components/schemas/MoneyRequired'
        vat:
          $ref: '#/components/schemas/MoneyVat'
        merchantName:
          type: string
        reference:
          description: Reference number of transaction.
          type: string
        qrName:
          description: |-
            The name of the QR code image to be scanned by a wallet or payment service compatible with this payment method. The QR code of the image can be labeled by qrName to increase the clarity of the payment instruction.
            If this parameter contains any value, include it in the payment instructions for your customer.
          type: string
        qrCode:
          description: |-
            The URL of the QR code image to be scanned by a wallet or payment service compatible with this payment method. The QR code encodes the instructions how make a payment.
            If this parameter contains any value, include it in the payment instructions for your customer.
          examples:
          - https://domain/CAR/1/GPAY_QR
          type: string
        paymentOperator:
          $ref: '#/components/schemas/SelectedPaymentOperatorIncoming'
          description: |-
            PaymentOperator is a financial institution that manages transactions in your customer's account (such as banks, card payment processors, mobile wallets and so on).
            The payment operators are assigned to the payment methods according to your account configuration.

            For supported payment operators please refer to [`GET /payment-operators`](#operations-Payments-getPaymentOperators).
        returnUrl:
          description: |-
            This is the URL where the customers will be redirected after completing a payment.

            The URL must be either IP or domain-based.
          examples:
          - https://example.com?id=123
          type: string
          maxLength: 1000
        acceptedAt:
          description: Date and time when payment was accepted.
          type: string
          format: date-time
        expireAt:
          description: Date and time of payment expiration. If no money has been transferred
            to this time, payment is considered failed and callback with status change
            event will shortly follow.
          type: string
          format: date-time
        paymentMethodCode:
          type: string
          enum:
          - QRPH
          const: QRPH
    QrisPayMethod:
      title: QRISPAY
      description: QRIS is payment method intended for the Indonesian market which
        allows users to pay using scanning QR codes by theirs Payment application.
      type: object
      required:
      - paymentMethodCode
      properties:
        account:
          $ref: '#/components/schemas/AccountPayinRequestQrisPay'
        emailAddress:
          description: Your customer's e-mail address in RFC 5322 format that is used
            for identification of the customer's payins.
          examples:
          - yourcustomer@domain.com
          type: string
        paymentMethodCode:
          type: string
          enum:
          - QRISPAY
          const: QRISPAY
    QrisPayMethodResponse:
      title: QRISPAY
      type: object
      required:
      - idPayin
      - idPayment
      - money
      - merchantName
      - reference
      - qrName
      - qrCode
      - qrRawData
      - returnUrl
      - acceptedAt
      - expireAt
      - paymentMethodCode
      properties:
        idPayin:
          $ref: '#/components/schemas/IdPayin'
        idPayment:
          $ref: '#/components/schemas/IdPayment'
        accountCustomerUsedForPayment:
          $ref: '#/components/schemas/AccountCustomerUsedForPaymentResponseQrisPay'
        money:
          $ref: '#/components/schemas/MoneyPaymentResponse'
        vat:
          $ref: '#/components/schemas/MoneyVat'
        merchantName:
          type: string
        reference:
          description: Reference number of transaction.
          type: string
        qrName:
          description: |-
            The name of the QR code image to be scanned by a wallet or payment service compatible with this payment method. The QR code of the image can be labeled by qrName to increase the clarity of the payment instruction.
            If this parameter contains any value, include it in the payment instructions for your customer.
          type: string
        qrCode:
          description: |-
            The URL of the QR code image to be scanned by a wallet or payment service compatible with this payment method. The QR code encodes the instructions how make a payment.
            If this parameter contains any value, include it in the payment instructions for your customer.
          examples:
          - https://domain/CAR/1/GPAY_QR
          type: string
        qrRawData:
          description: The raw string / payload encoded within the QR code (e.g. an
            EMVCo string or a custom URI) to be rendered as a QR code.
          type: string
        returnUrl:
          description: |-
            This is the URL where the customers will be redirected after completing a payment.

            The URL must be either IP or domain-based.
          examples:
          - https://example.com?id=123
          type: string
          maxLength: 1000
        acceptedAt:
          description: Date and time when payment was accepted.
          type: string
          format: date-time
        expireAt:
          description: Date and time of payment expiration. If no money has been transferred
            to this time, payment is considered failed and callback with status change
            event will shortly follow.
          type: string
          format: date-time
        paymentMethodCode:
          type: string
          enum:
          - QRISPAY
          const: QRISPAY
    RandomKeyTransferMethod:
      title: RANDOM_KEY_TRANSFER
      description: Payment method for sending funds using a random key as identifier.
      type: object
      required:
      - randomKey
      - identifyingReference
      - paymentMethodCode
      properties:
        randomKey:
          description: 'TODO: Add description.'
          examples:
          - 213758923
          type: string
          maxLength: 1024
          minLength: 1
        account:
          $ref: '#/components/schemas/AccountPayoutRequestRandomKeyTransfer'
        identifyingReference:
          $ref: '#/components/schemas/IdentifyingReference'
          description: Government-issued ID to verify a person's identity.<br><br>If
            the currency is **BRL**, then the `identifyingReference` field mut contain
            the tax payer identification number of a customer.
        paymentMethodCode:
          type: string
          enum:
          - RANDOM_KEY_TRANSFER
          const: RANDOM_KEY_TRANSFER
    RandomKeyTransferMethodResponse:
      title: RANDOM_KEY_TRANSFER
      type: object
      required:
      - idPayout
      - idPayment
      - paymentMethodCode
      - reference
      properties:
        idPayout:
          $ref: '#/components/schemas/IdPayout'
        idPayment:
          $ref: '#/components/schemas/IdPayment'
        paymentMethodCode:
          type: string
          enum:
          - RANDOM_KEY_TRANSFER
          const: RANDOM_KEY_TRANSFER
        reference:
          description: Reference number of transaction.
          type: string
    Redirection:
      title: Redirection
      type: object
      required:
      - method
      - url
      properties:
        method:
          description: The HTTP method that should be used for redirection.
          type: string
          enum:
          - GET
          - POST
        url:
          description: The destination URL for redirect to.
          examples:
          - https://example.com
          type: string
        data:
          description: The optional data in JSON format - a key-value pairs that must
            be used for redirection when POST method is used.
          type: string
    Segment:
      title: Segment
      type: object
      required:
      - code
      properties:
        code:
          $ref: '#/components/schemas/SegmentCode'
    SegmentCode:
      title: SegmentCode
      description: |-
        A customer segment which allows you to divide your customers into groups that reflect similarity among customers in each group.

        The goal of segmenting customers is to decide which payment options and limitation you would like to apply to customers in each segment in order to follow your internal business rules.

        This parameter is applied only when you have configured the segmentation in your account setting.

        For supported segments please refer to [`GET /segments`](#operations-Payments-getSegments) API.
      examples:
      - VIP
      type: string
      minLength: 1
    SegmentList:
      title: SegmentList
      description: List of available segments.
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/Segment'
    SelectedPaymentOperatorIncoming:
      title: SelectedPaymentOperatorIncoming
      type: object
      required:
      - code
      - name
      properties:
        code:
          description: |-
            One of following can serve as Payment Operator:

             * Financial or other institution (such as bank, card payment processor, ...) that manages transactions for your customers
             * Mobile wallet
             * Blockchain protocol for crypto currency payments

            Customer is informed with the payment instructions where funds have to be transferred efficiently based on the selected Payment operator.
            For getting list of the available payment options for payins use [POST /payins/!availablePaymentOptions](#operations-Incoming_payments-availablePaymentOptions) API,
            for payouts use [POST /payouts/!availablePaymentOptions](#operations-Outgoing_payments-availablePaymentOptions) API.
          examples:
          - IDR_003
          type: string
          maxLength: 30
          minLength: 1
          pattern: ^[A-Za-z0-9_-]+$
        name:
          examples:
          - Bank Danamon
          type: string
          maxLength: 1000
          minLength: 1
    SettlementCryptoTransferMethod:
      title: CRYPTO_TRANSFER
      description: |-
        Payment method for sending funds from your crypto wallet to external crypto wallet.
        It requires customer to provide a receiving crypto wallet details in format related to chosen blockchain protocol.
      type: object
      required:
      - account
      - paymentOperatorCode
      - paymentMethodCode
      properties:
        account:
          $ref: '#/components/schemas/AccountSettlementRequestCryptoTransfer'
        paymentOperatorCode:
          description: |-
            One of following can serve as Payment Operator:

             * Financial or other institution (such as bank, card payment processor, ...) that manages transactions for your customers
             * Mobile wallet
             * Blockchain protocol for crypto currency payments

            Customer is informed with the payment instructions where funds have to be transferred efficiently based on the selected Payment operator.
            For getting list of the available payment options for payins use [POST /payins/!availablePaymentOptions](#operations-Incoming_payments-availablePaymentOptions) API,
            for payouts use [POST /payouts/!availablePaymentOptions](#operations-Outgoing_payments-availablePaymentOptions) API.
          examples:
          - IDR_003
          type: string
          maxLength: 30
          minLength: 1
          pattern: ^[A-Za-z0-9_-]+$
        paymentMethodCode:
          type: string
          enum:
          - CRYPTO_TRANSFER
          const: CRYPTO_TRANSFER
        transactionReference:
          description: Reference number of transaction.
          type: string
    SettlementMethod:
      title: SettlementMethod
      oneOf:
      - $ref: '#/components/schemas/SettlementCryptoTransferMethod'
      discriminator:
        propertyName: paymentMethodCode
        mapping:
          CRYPTO_TRANSFER: '#/components/schemas/SettlementCryptoTransferMethod'
    SettlementMethodCode:
      title: SettlementMethodCode
      description: |-
        The `SettlementMethodCode` represents settlement payment method available for a payment.

         - CRYPTO_TRANSFER - A payment method for sending funds from your crypto wallet to external crypto wallet.
      examples:
      - CRYPTO_TRANSFER
      type: string
      minLength: 1
    SettlementPaymentOption:
      title: SettlementPaymentOption
      type: object
      required:
      - paymentMethodCode
      - currencyCode
      - transactionAmountLimit
      - isAvailable
      properties:
        paymentMethodCode:
          $ref: '#/components/schemas/SettlementMethodCode'
        currencyCode:
          $ref: '#/components/schemas/CurrencyCode'
        transactionAmountLimit:
          $ref: '#/components/schemas/IntervalNumberTo'
          description: Interval of transaction amounts this settlement payment option
            can be used for.
        isAvailable:
          description: If set to false, the option is not currently available and
            must be activated in administration.
          type: boolean
        paymentOperators:
          description: Payment operators that can be used for paying via this settlement
            payment option.
          type: array
          items:
            $ref: '#/components/schemas/PaymentOperatorOption'
    SettlementPaymentOptionsList:
      title: SettlementPaymentOptionsList
      description: List of (possibly) available settlement payment options.
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/SettlementPaymentOption'
    TaxIdentifyingReference:
      title: TAX_ID
      description: Tax payer identification number of a customer.
      type: object
      required:
      - taxId
      - identifyingReferenceCode
      properties:
        taxId:
          type: string
        identifyingReferenceCode:
          type: string
          enum:
          - TAX_ID
          const: TAX_ID
    TaxPayerIdTransferMethod:
      title: TAXPAYER_ID_TRANSFER
      type: object
      required:
      - taxId
      - paymentMethodCode
      properties:
        taxId:
          description: Tax payer identification number of a customer.
          examples:
          - 123456789
          type: string
          maxLength: 18
          minLength: 8
        account:
          $ref: '#/components/schemas/AccountPayoutRequestTaxIdTransfer'
        paymentMethodCode:
          type: string
          enum:
          - TAXPAYER_ID_TRANSFER
          const: TAXPAYER_ID_TRANSFER
    TaxPayerIdTransferMethodResponse:
      title: TAXPAYER_ID_TRANSFER
      type: object
      required:
      - idPayout
      - idPayment
      - paymentMethodCode
      - reference
      properties:
        idPayout:
          $ref: '#/components/schemas/IdPayout'
        idPayment:
          $ref: '#/components/schemas/IdPayment'
        paymentMethodCode:
          type: string
          enum:
          - TAXPAYER_ID_TRANSFER
          const: TAXPAYER_ID_TRANSFER
        reference:
          description: Reference number of transaction.
          type: string
    TopUp:
      title: TopUp
      description: |-
        For every payment method there is appropriate payment specific request object in `paymentMethod` attribute.

        If you have used the [`POST /topups/!availablePaymentOptions`](#operations-Incoming_payments-availablePaymentOptions) API to get the list of the available payment options, then it is expected that you use the same input data here to make sure that the payment will be accepted.
      type: object
      required:
      - topUpRequested
      - paymentMethod
      - returnUrl
      properties:
        topUpRequested:
          $ref: '#/components/schemas/TopUpRequested'
        paymentMethod:
          $ref: '#/components/schemas/PayinMethod'
        callbackUrl:
          description: |-
            This is the URL where the system will send the transaction final status after payment has been completed.

            The URL must be either IP or domain-based.
          examples:
          - https://example.com/order-status-change
          type: string
          maxLength: 1000
        returnUrl:
          description: |-
            This is the URL where the customers will be redirected after completing a payment.

            The URL must be either IP or domain-based.
          examples:
          - https://example.com?id=123
          type: string
          maxLength: 1000
        customerIp:
          description: |-
            The IP address of the customer making the payment in either the IPv4 or IPv6 format.

            The IP address is used for validating against the IP address whitelists and blacklists from the merchant settings.
          examples:
          - 172.16.254.1
          type: string
    TopUpAcceptedMethodResponse:
      title: TopUpAcceptedMethodResponse
      description: |-
        For every payment method there is appropriate payment specific response object in `paymentMethodResponse` attribute.

        Use data from `paymentMethodResponse` for payment completion (for example show to the customer).
      type: object
      required:
      - topUpRequested
      - moneyReceive
      - paymentMethodResponse
      properties:
        topUpRequested:
          $ref: '#/components/schemas/TopUpRequested'
        moneyReceive:
          $ref: '#/components/schemas/MoneyReceive'
        paymentMethodResponse:
          $ref: '#/components/schemas/PayinMethodResponse'
    TopUpAcceptedRedirectResponse:
      title: TopUpAcceptedRedirectResponse
      description: Customer should be redirected to specified URL for the next payment
        process step.
      type: object
      required:
      - topUpRequested
      - redirectTo
      properties:
        topUpRequested:
          $ref: '#/components/schemas/TopUpRequested'
        redirectTo:
          $ref: '#/components/schemas/Redirection'
    TopUpAcceptedResponse:
      title: TopUpAcceptedResponse
      oneOf:
      - $ref: '#/components/schemas/TopUpAcceptedMethodResponse'
      - $ref: '#/components/schemas/TopUpAcceptedRedirectResponse'
    TopUpDetail:
      title: TopUpDetail
      type: object
      required:
      - topUpRequested
      - process
      - fee
      - paymentMethodResponse
      properties:
        topUpRequested:
          $ref: '#/components/schemas/TopUpRequestedDetail'
        process:
          $ref: '#/components/schemas/PaymentProcess'
        fee:
          $ref: '#/components/schemas/MoneyFee'
        paymentMethodResponse:
          $ref: '#/components/schemas/PayinMethodResponse'
        settlement:
          $ref: '#/components/schemas/SettlementMethod'
          description: |-
            Payment method is a payment instrument that your customers use (such as online bank transfers, VA payments, UPI and so on).
            Select a payment method from the list of the methods that you have configured in your account.

            The `settlementMethodCode` represents payment method available for payout payment.
        customer:
          $ref: '#/components/schemas/CustomerDetail'
    TopUpRequested:
      title: TopUpRequested
      description: "The requested top up converts the currencies when you want to\
        \ have your account topped up in one currency but are willing to make a payment\
        \ in a different currency. \nDepending on whether you have a certain amount\
        \ to send or you want to have a certain amount to be added to your account,\
        \ use one of the objects in the API request body: \nmoneyProvided with currencyRequired\
        \ filled or moneyRequired with currencyProvided filled."
      oneOf:
      - $ref: '#/components/schemas/TopUpRequestedMoneyProvided'
      - $ref: '#/components/schemas/TopUpRequestedMoneyRequired'
    TopUpRequestedDetail:
      title: TopUpRequestedDetail
      description: The requested payment.
      type: object
      required:
      - money
      properties:
        money:
          $ref: '#/components/schemas/Money'
        exchangedFrom:
          $ref: '#/components/schemas/Money'
    TopUpRequestedMoneyProvided:
      title: TopUpRequestedMoneyProvided
      description: "Provide how much money (amount) and in what currency (currencyCode)\
        \ you want to pay to have your account topped up in a different currency (currencyRequired).\
        \ \nThe API will return how much money will be added to your account."
      type: object
      required:
      - moneyProvided
      properties:
        moneyProvided:
          $ref: '#/components/schemas/Money'
        currencyRequired:
          $ref: '#/components/schemas/CurrencyCode'
    TopUpRequestedMoneyRequired:
      title: TopUpRequestedMoneyRequired
      description: "Provide the currency in which you want to pay (currencyCode) to\
        \ have your account topped up with a certain amount of money (amount) in a\
        \ different currency (currencyProvided). \nThe API will return how much money\
        \ you will pay in your original currency (currencyCode)."
      type: object
      required:
      - moneyRequired
      properties:
        moneyRequired:
          $ref: '#/components/schemas/Money'
        currencyProvided:
          $ref: '#/components/schemas/CurrencyCode'
    UpiCollectMethod:
      title: UPICOLLECT
      description: |-
        UPI Collect is a method of fund transfers in India.
        This payment method allows users to simply authorize payments through their registered UPI app after receiving a payment collection request.
      type: object
      required:
      - account
      - upiId
      - emailAddress
      - phoneNumber
      - paymentMethodCode
      properties:
        account:
          $ref: '#/components/schemas/AccountPayinRequestUpiCollect'
        upiId:
          description: Virtual payment address of the customer on UPI provided by
            the merchant or obtained during the processing on our platform.
          examples:
          - 123456789@paytm
          type: string
          maxLength: 100
          pattern: '[a-zA-Z0-9_\-\.]+@[a-zA-Z0-9_\.]+'
        emailAddress:
          description: Your customer's e-mail address in RFC 5322 format that is used
            for identification of the customer's payins.
          examples:
          - yourcustomer@domain.com
          type: string
        phoneNumber:
          description: Your customer's mobile phone number in full international telephone
            number format, including country code.
          examples:
          - '+628113912103'
          type: string
          maxLength: 16
          minLength: 7
          pattern: ^\+?[0-9]+$
        paymentMethodCode:
          type: string
          enum:
          - UPICOLLECT
          const: UPICOLLECT
    UpiCollectMethodResponse:
      title: UPICOLLECT
      type: object
      required:
      - idPayin
      - idPayment
      - money
      - merchantName
      - upiIdCustomer
      - reference
      - returnUrl
      - acceptedAt
      - expireAt
      - paymentMethodCode
      properties:
        idPayin:
          $ref: '#/components/schemas/IdPayin'
        idPayment:
          $ref: '#/components/schemas/IdPayment'
        accountCustomer:
          $ref: '#/components/schemas/AccountCustomerResponseUpiCollect'
        phoneNumber:
          description: Your customer's mobile phone number in full international telephone
            number format, including country code.
          examples:
          - '+628113912103'
          type: string
          maxLength: 16
          minLength: 7
          pattern: ^\+?[0-9]+$
        money:
          $ref: '#/components/schemas/MoneyPaymentResponse'
        vat:
          $ref: '#/components/schemas/MoneyVat'
        merchantName:
          type: string
        upiIdCustomer:
          description: Virtual payment address of the customer on UPI provided by
            the merchant or obtained during the processing on our platform.
          examples:
          - 123456789@paytm
          type: string
          maxLength: 100
          pattern: '[a-zA-Z0-9_\-\.]+@[a-zA-Z0-9_\.]+'
        reference:
          description: Reference number of transaction.
          type: string
        returnUrl:
          description: |-
            This is the URL where the customers will be redirected after completing a payment.

            The URL must be either IP or domain-based.
          examples:
          - https://example.com?id=123
          type: string
          maxLength: 1000
        acceptedAt:
          description: Date and time when payment was accepted.
          type: string
          format: date-time
        expireAt:
          description: Date and time of payment expiration. If no money has been transferred
            to this time, payment is considered failed and callback with status change
            event will shortly follow.
          type: string
          format: date-time
        paymentMethodCode:
          type: string
          enum:
          - UPICOLLECT
          const: UPICOLLECT
    UpiIdMethod:
      title: UPIID
      description: |-
        UPI (Unified Payments Interface) is a method of fund transfers in India.
        The mechanism allows two parties to exchange funds using a UPI ID without having to share the banking information with the other party.
      type: object
      required:
      - upiId
      - paymentMethodCode
      properties:
        upiId:
          description: Virtual payment address of the customer on UPI provided by
            the merchant or obtained during the processing on our platform.
          examples:
          - 123456789@paytm
          type: string
          maxLength: 100
          pattern: '[a-zA-Z0-9_\-\.]+@[a-zA-Z0-9_\.]+'
        emailAddress:
          description: Your customer's e-mail address in RFC 5322 format that is used
            for identification of the customer's payins.
          examples:
          - yourcustomer@domain.com
          type: string
        paymentMethodCode:
          type: string
          enum:
          - UPIID
          const: UPIID
    UpiIdMethodResponse:
      title: UPIID
      type: object
      required:
      - idPayin
      - idPayment
      - money
      - merchantName
      - reference
      - returnUrl
      - acceptedAt
      - expireAt
      - paymentMethodCode
      properties:
        idPayin:
          $ref: '#/components/schemas/IdPayin'
        idPayment:
          $ref: '#/components/schemas/IdPayment'
        money:
          $ref: '#/components/schemas/MoneyPaymentResponse'
        vat:
          $ref: '#/components/schemas/MoneyVat'
        merchantName:
          type: string
        reference:
          description: Reference number of transaction.
          type: string
        returnUrl:
          description: |-
            This is the URL where the customers will be redirected after completing a payment.

            The URL must be either IP or domain-based.
          examples:
          - https://example.com?id=123
          type: string
          maxLength: 1000
        acceptedAt:
          description: Date and time when payment was accepted.
          type: string
          format: date-time
        expireAt:
          description: Date and time of payment expiration. If no money has been transferred
            to this time, payment is considered failed and callback with status change
            event will shortly follow.
          type: string
          format: date-time
        paymentMethodCode:
          type: string
          enum:
          - UPIID
          const: UPIID
    UpiQRMethod:
      title: UPIQR
      description: "UPI QR is payment method intended for the Indian market. \nThis\
        \ payment method requires customers to scan QR code by Customer's Payment\
        \ service application compatible with UPI payment schema."
      type: object
      required:
      - paymentMethodCode
      properties:
        account:
          $ref: '#/components/schemas/AccountPayinRequestUpiQR'
        upiId:
          description: Virtual payment address of the customer on UPI provided by
            the merchant or obtained during the processing on our platform.
          examples:
          - 123456789@paytm
          type: string
          maxLength: 100
          pattern: '[a-zA-Z0-9_\-\.]+@[a-zA-Z0-9_\.]+'
        emailAddress:
          description: Your customer's e-mail address in RFC 5322 format that is used
            for identification of the customer's payins.
          examples:
          - yourcustomer@domain.com
          type: string
        phoneNumber:
          description: Your customer's mobile phone number in full international telephone
            number format, including country code.
          examples:
          - '+628113912103'
          type: string
          maxLength: 16
          minLength: 7
          pattern: ^\+?[0-9]+$
        paymentOperatorCode:
          description: |-
            One of following can serve as Payment Operator:

             * Financial or other institution (such as bank, card payment processor, ...) that manages transactions for your customers
             * Mobile wallet
             * Blockchain protocol for crypto currency payments

            Customer is informed with the payment instructions where funds have to be transferred efficiently based on the selected Payment operator.
            For getting list of the available payment options for payins use [POST /payins/!availablePaymentOptions](#operations-Incoming_payments-availablePaymentOptions) API,
            for payouts use [POST /payouts/!availablePaymentOptions](#operations-Outgoing_payments-availablePaymentOptions) API.
          examples:
          - IDR_003
          type: string
          maxLength: 30
          minLength: 1
          pattern: ^[A-Za-z0-9_-]+$
        paymentMethodCode:
          type: string
          enum:
          - UPIQR
          const: UPIQR
    UpiQRMethodResponse:
      title: UPIQR
      type: object
      required:
      - idPayin
      - idPayment
      - money
      - merchantName
      - reference
      - qrName
      - qrCode
      - returnUrl
      - acceptedAt
      - expireAt
      - paymentMethodCode
      properties:
        idPayin:
          $ref: '#/components/schemas/IdPayin'
        idPayment:
          $ref: '#/components/schemas/IdPayment'
        accountCustomer:
          $ref: '#/components/schemas/AccountCustomerResponseUpiQR'
        accountCustomerUsedForPayment:
          $ref: '#/components/schemas/AccountCustomerUsedForPaymentResponseUpiQR'
        money:
          $ref: '#/components/schemas/MoneyPaymentResponse'
        vat:
          $ref: '#/components/schemas/MoneyVat'
        merchantName:
          type: string
        reference:
          description: Reference number of transaction.
          type: string
        externalReference:
          $ref: '#/components/schemas/ExternalReference'
        processor:
          $ref: '#/components/schemas/PaymentProcessor'
        qrName:
          description: |-
            The name of the QR code image to be scanned by a wallet or payment service compatible with this payment method. The QR code of the image can be labeled by qrName to increase the clarity of the payment instruction.
            If this parameter contains any value, include it in the payment instructions for your customer.
          type: string
        qrCode:
          description: |-
            The URL of the QR code image to be scanned by a wallet or payment service compatible with this payment method. The QR code encodes the instructions how make a payment.
            If this parameter contains any value, include it in the payment instructions for your customer.
          examples:
          - https://domain/CAR/1/GPAY_QR
          type: string
        upiQrDeepLink:
          description: |-
            It can be used as deep link button target (what is typically known as an intent trigger)
            or to generate a QR code that can be scanned with any UPI enabled app.
          examples:
          - upi://pay?cu=INR&pa=7304154205@idfcfirst&pn=APEX ENTERPRISES&tn=ECLP04211&am=10.00
          type: string
        paymentOperator:
          $ref: '#/components/schemas/SelectedPaymentOperatorIncoming'
          description: |-
            PaymentOperator is a financial institution that manages transactions in your customer's account (such as banks, card payment processors, mobile wallets and so on).
            The payment operators are assigned to the payment methods according to your account configuration.

            For supported payment operators please refer to [`GET /payment-operators`](#operations-Payments-getPaymentOperators).
        upiId:
          description: Virtual payment address where we expect that your customer
            sends funds to make a payment. This parameter is to be shown to your customer.
          examples:
          - 123456789@paytm
          type: string
          maxLength: 100
          pattern: '[a-zA-Z0-9_\-\.]+@[a-zA-Z0-9_\.]+'
        upiIdCustomer:
          description: Virtual payment address of the customer on UPI provided by
            the merchant or obtained during the processing on our platform.
          examples:
          - 123456789@paytm
          type: string
          maxLength: 100
          pattern: '[a-zA-Z0-9_\-\.]+@[a-zA-Z0-9_\.]+'
        phoneNumber:
          description: Your customer's mobile phone number in full international telephone
            number format, including country code.
          examples:
          - '+628113912103'
          type: string
          maxLength: 16
          minLength: 7
          pattern: ^\+?[0-9]+$
        returnUrl:
          description: |-
            This is the URL where the customers will be redirected after completing a payment.

            The URL must be either IP or domain-based.
          examples:
          - https://example.com?id=123
          type: string
          maxLength: 1000
        acceptedAt:
          description: Date and time when payment was accepted.
          type: string
          format: date-time
        expireAt:
          description: Date and time of payment expiration. If no money has been transferred
            to this time, payment is considered failed and callback with status change
            event will shortly follow.
          type: string
          format: date-time
        paymentMethodCode:
          type: string
          enum:
          - UPIQR
          const: UPIQR
    VaPayMethod:
      title: VAPAY
      description: |-
        Virtual Accounts. Payment method which requires customer to copy Payment instruction with generated Virtual Account from the Payment application right after the payment is submitted and create the Payment transfer using the instructions within customer's own payment service such as Internet or mobile banking, wallet or ATM.<br><br>
        One Virtual account cannot be used for sending funds repeatedly.
      type: object
      required:
      - paymentMethodCode
      properties:
        account:
          $ref: '#/components/schemas/AccountPayinRequestVaPay'
        paymentOperatorCode:
          description: |-
            One of following can serve as Payment Operator:

             * Financial or other institution (such as bank, card payment processor, ...) that manages transactions for your customers
             * Mobile wallet
             * Blockchain protocol for crypto currency payments

            Customer is informed with the payment instructions where funds have to be transferred efficiently based on the selected Payment operator.
            For getting list of the available payment options for payins use [POST /payins/!availablePaymentOptions](#operations-Incoming_payments-availablePaymentOptions) API,
            for payouts use [POST /payouts/!availablePaymentOptions](#operations-Outgoing_payments-availablePaymentOptions) API.<br><br>If the currency is **KRW** or **TWD**, then `paymentOperatorCode` field is optional. Otherwise, it is required.
          examples:
          - IDR_003
          type: string
          maxLength: 30
          minLength: 1
          pattern: ^[A-Za-z0-9_-]+$
        emailAddress:
          description: Your customer's e-mail address in RFC 5322 format that is used
            for identification of the customer's payins.<br><br>If the currency is
            **TWD**, then `emailAddress` field is required. Otherwise, it is optional.
          examples:
          - yourcustomer@domain.com
          type: string
        phoneNumber:
          description: Your customer's mobile phone number in full international telephone
            number format, including country code.<br><br>If the currency is **TWD**,
            then `phoneNumber` field is required. Otherwise, it is optional.
          examples:
          - '+628113912103'
          type: string
          maxLength: 16
          minLength: 7
          pattern: ^\+?[0-9]+$
        paymentLocation:
          $ref: '#/components/schemas/PaymentLocation'
          description: Specifies location where a customer is making the payment (e.g.
            address of a store / any other point of sale).<br><br>If the currency
            is **TWD**, then `paymentLocation` field is required. Otherwise, it is
            optional.
        paymentMethodCode:
          type: string
          enum:
          - VAPAY
          const: VAPAY
    VaPayMethodResponse:
      title: VAPAY
      description: The account parameters for this payment method are used to show
        payment instructions to the customer.
      type: object
      required:
      - idPayin
      - idPayment
      - account
      - accountCustomer
      - money
      - reference
      - returnUrl
      - acceptedAt
      - expireAt
      - paymentMethodCode
      properties:
        idPayin:
          $ref: '#/components/schemas/IdPayin'
        idPayment:
          $ref: '#/components/schemas/IdPayment'
        account:
          $ref: '#/components/schemas/AccountResponseWithBank'
        accountCustomer:
          $ref: '#/components/schemas/AccountCustomerResponseVaPay'
        money:
          $ref: '#/components/schemas/MoneyPaymentResponse'
        vat:
          $ref: '#/components/schemas/MoneyVat'
        reference:
          description: Reference number of transaction.
          type: string
        processor:
          $ref: '#/components/schemas/PaymentProcessor'
        returnUrl:
          description: |-
            This is the URL where the customers will be redirected after completing a payment.

            The URL must be either IP or domain-based.
          examples:
          - https://example.com?id=123
          type: string
          maxLength: 1000
        paymentOperator:
          $ref: '#/components/schemas/SelectedPaymentOperatorIncoming'
          description: |
            One of following can serve as Payment Operator:

             * Financial or other institution (such as bank, card payment processor, ...) that manages transactions for your customers
             * Mobile wallet
             * Blockchain protocol for crypto currency payments

            Customer is informed with the payment instructions where funds have to be transferred efficiently based on the selected Payment operator.
            For getting list of the available payment options for payins use [POST /payins/!availablePaymentOptions](#operations-Incoming_payments-availablePaymentOptions) API,
            for payouts use [POST /payouts/!availablePaymentOptions](#operations-Outgoing_payments-availablePaymentOptions) API.

            This field is returned only if `paymentOperatorCode` was provided in the API call.
        phoneNumber:
          description: Your customer's mobile phone number in full international telephone
            number format, including country code.
          examples:
          - '+628113912103'
          type: string
          maxLength: 16
          minLength: 7
          pattern: ^\+?[0-9]+$
        emailAddress:
          description: Your customer's e-mail address in RFC 5322 format that is used
            for identification of the customer's payins.
          examples:
          - yourcustomer@domain.com
          type: string
        paymentLocationCustomer:
          $ref: '#/components/schemas/PaymentLocation'
          description: Specifies location where a customer is making the payment (e.g.
            address of a store / any other point of sale).
        acceptedAt:
          description: Date and time when payment was accepted.
          type: string
          format: date-time
        expireAt:
          description: Date and time of payment expiration. If no money has been transferred
            to this time, payment is considered failed and callback with status change
            event will shortly follow.
          type: string
          format: date-time
        paymentInstructionList:
          type: array
          items:
            $ref: '#/components/schemas/PaymentInstruction'
        paymentMethodCode:
          type: string
          enum:
          - VAPAY
          const: VAPAY
    VaPayVerifMethod:
      title: VAPAY_VERIF
      description: |-
        Virtual Accounts With Verified Bank Account. Payment method which requires customer to copy Payment instruction with assigned Virtual Account from the Payment application right after the payment is submitted and create the Payment transfer using the instructions within customer's own payment service such as Internet or mobile banking, wallet or ATM.<br><br>
        Each virtual account is assigned to one and only one customers bank account and is used for sending funds repeatedly.
      type: object
      required:
      - account
      - paymentOperatorCode
      - paymentMethodCode
      properties:
        account:
          $ref: '#/components/schemas/AccountPayinRequestVaPayVerif'
        paymentOperatorCode:
          description: |-
            One of following can serve as Payment Operator:

             * Financial or other institution (such as bank, card payment processor, ...) that manages transactions for your customers
             * Mobile wallet
             * Blockchain protocol for crypto currency payments

            Customer is informed with the payment instructions where funds have to be transferred efficiently based on the selected Payment operator.
            For getting list of the available payment options for payins use [POST /payins/!availablePaymentOptions](#operations-Incoming_payments-availablePaymentOptions) API,
            for payouts use [POST /payouts/!availablePaymentOptions](#operations-Outgoing_payments-availablePaymentOptions) API.
          examples:
          - IDR_003
          type: string
          maxLength: 30
          minLength: 1
          pattern: ^[A-Za-z0-9_-]+$
        emailAddress:
          description: Your customer's e-mail address in RFC 5322 format that is used
            for identification of the customer's payins.
          examples:
          - yourcustomer@domain.com
          type: string
        paymentMethodCode:
          type: string
          enum:
          - VAPAY_VERIF
          const: VAPAY_VERIF
    VaPayVerifMethodResponse:
      title: VAPAY_VERIF
      type: object
      required:
      - idPayin
      - idPayment
      - account
      - accountCustomer
      - money
      - reference
      - returnUrl
      - paymentOperator
      - acceptedAt
      - expireAt
      - paymentMethodCode
      properties:
        idPayin:
          $ref: '#/components/schemas/IdPayin'
        idPayment:
          $ref: '#/components/schemas/IdPayment'
        account:
          $ref: '#/components/schemas/AccountResponseWithBank'
        accountCustomer:
          $ref: '#/components/schemas/AccountCustomerResponseVaPayVerif'
        money:
          $ref: '#/components/schemas/MoneyPaymentResponse'
        vat:
          $ref: '#/components/schemas/MoneyVat'
        reference:
          description: Reference number of transaction.
          type: string
        returnUrl:
          description: |-
            This is the URL where the customers will be redirected after completing a payment.

            The URL must be either IP or domain-based.
          examples:
          - https://example.com?id=123
          type: string
          maxLength: 1000
        paymentOperator:
          $ref: '#/components/schemas/SelectedPaymentOperatorIncoming'
          description: |-
            PaymentOperator is a financial institution that manages transactions in your customer's account (such as banks, card payment processors, mobile wallets and so on).
            The payment operators are assigned to the payment methods according to your account configuration.

            For supported payment operators please refer to [`GET /payment-operators`](#operations-Payments-getPaymentOperators).
        acceptedAt:
          description: Date and time when payment was accepted.
          type: string
          format: date-time
        expireAt:
          description: Date and time of payment expiration. If no money has been transferred
            to this time, payment is considered failed and callback with status change
            event will shortly follow.
          type: string
          format: date-time
        paymentMethodCode:
          type: string
          enum:
          - VAPAY_VERIF
          const: VAPAY_VERIF
    VietQRMethod:
      title: VIETQR
      description: "Viet QR is a payment method intended for the Vietnamese market\
        \ which allows users to pay using \nscanning QR codes by theirs payment application\
        \ or internet banking."
      type: object
      required:
      - paymentOperatorCode
      - paymentMethodCode
      properties:
        paymentOperatorCode:
          description: |-
            One of following can serve as Payment Operator:

             * Financial or other institution (such as bank, card payment processor, ...) that manages transactions for your customers
             * Mobile wallet
             * Blockchain protocol for crypto currency payments

            Customer is informed with the payment instructions where funds have to be transferred efficiently based on the selected Payment operator.
            For getting list of the available payment options for payins use [POST /payins/!availablePaymentOptions](#operations-Incoming_payments-availablePaymentOptions) API,
            for payouts use [POST /payouts/!availablePaymentOptions](#operations-Outgoing_payments-availablePaymentOptions) API.
          examples:
          - IDR_003
          type: string
          maxLength: 30
          minLength: 1
          pattern: ^[A-Za-z0-9_-]+$
        emailAddress:
          description: Your customer's e-mail address in RFC 5322 format that is used
            for identification of the customer's payins.
          examples:
          - yourcustomer@domain.com
          type: string
        paymentMethodCode:
          type: string
          enum:
          - VIETQR
          const: VIETQR
    VietQRMethodResponse:
      title: VIETQR
      type: object
      required:
      - idPayin
      - idPayment
      - money
      - merchantName
      - reference
      - qrName
      - qrCode
      - returnUrl
      - acceptedAt
      - expireAt
      - paymentMethodCode
      properties:
        idPayin:
          $ref: '#/components/schemas/IdPayin'
        idPayment:
          $ref: '#/components/schemas/IdPayment'
        money:
          $ref: '#/components/schemas/MoneyPaymentResponse'
        vat:
          $ref: '#/components/schemas/MoneyVat'
        merchantName:
          type: string
        reference:
          description: Reference number of transaction.
          type: string
        qrName:
          description: |-
            The name of the QR code image to be scanned by a wallet or payment service compatible with this payment method. The QR code of the image can be labeled by qrName to increase the clarity of the payment instruction.
            If this parameter contains any value, include it in the payment instructions for your customer.
          type: string
        qrCode:
          description: |-
            The URL of the QR code image to be scanned by a wallet or payment service compatible with this payment method. The QR code encodes the instructions how make a payment.
            If this parameter contains any value, include it in the payment instructions for your customer.
          examples:
          - https://domain/CAR/1/GPAY_QR
          type: string
        paymentOperator:
          $ref: '#/components/schemas/SelectedPaymentOperatorIncoming'
          description: |-
            PaymentOperator is a financial institution that manages transactions in your customer's account (such as banks, card payment processors, mobile wallets and so on).
            The payment operators are assigned to the payment methods according to your account configuration.

            For supported payment operators please refer to [`GET /payment-operators`](#operations-Payments-getPaymentOperators).
        returnUrl:
          description: |-
            This is the URL where the customers will be redirected after completing a payment.

            The URL must be either IP or domain-based.
          examples:
          - https://example.com?id=123
          type: string
          maxLength: 1000
        acceptedAt:
          description: Date and time when payment was accepted.
          type: string
          format: date-time
        expireAt:
          description: Date and time of payment expiration. If no money has been transferred
            to this time, payment is considered failed and callback with status change
            event will shortly follow.
          type: string
          format: date-time
        paymentMethodCode:
          type: string
          enum:
          - VIETQR
          const: VIETQR
    WalletTopUpOption:
      title: WalletTopUpOption
      type: object
      required:
      - paymentTypeCode
      - paymentMethodCode
      - currencyCode
      - transactionAmountLimit
      - isAvailable
      properties:
        paymentTypeCode:
          description: Wallet payment direction from the merchant's point of view.
          type: string
          enum:
          - TOPUP_WALLET
        paymentMethodCode:
          $ref: '#/components/schemas/PayinMethodCode'
        currencyCode:
          $ref: '#/components/schemas/CurrencyCode'
        segmentCode:
          $ref: '#/components/schemas/SegmentCode'
        transactionAmountLimit:
          $ref: '#/components/schemas/IntervalNumberTo'
          description: Interval of transaction amounts this payment option can be
            used for.
        isAvailable:
          description: If set to false, the option is not currently available and
            must be activated in administration.
          type: boolean
        paymentOperators:
          description: Payment operators that can be used for paying via this payment
            option.
          type: array
          items:
            $ref: '#/components/schemas/PaymentOperatorOption'
    WalletTopUpOptionsList:
      title: WalletTopUpOptionsList
      description: List of (possibly) available wallet payment options.
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/WalletTopUpOption'
    WalletTransferMethod:
      title: WALLET_TRANSFER
      description: Payment method for sending funds from your account to external
        wallet.
      type: object
      required:
      - account
      - paymentMethodCode
      properties:
        account:
          $ref: '#/components/schemas/AccountPayoutRequestWalletTransfer'
        paymentOperatorCode:
          description: |-
            One of following can serve as Payment Operator:

             * Financial or other institution (such as bank, card payment processor, ...) that manages transactions for your customers
             * Mobile wallet
             * Blockchain protocol for crypto currency payments

            Customer is informed with the payment instructions where funds have to be transferred efficiently based on the selected Payment operator.
            For getting list of the available payment options for payins use [POST /payins/!availablePaymentOptions](#operations-Incoming_payments-availablePaymentOptions) API,
            for payouts use [POST /payouts/!availablePaymentOptions](#operations-Outgoing_payments-availablePaymentOptions) API.
          examples:
          - IDR_003
          type: string
          maxLength: 30
          minLength: 1
          pattern: ^[A-Za-z0-9_-]+$
        emailAddress:
          description: Your customer's e-mail address in RFC 5322 format that is used
            for identification of the customer's payins.
          examples:
          - yourcustomer@domain.com
          type: string
        phoneNumber:
          description: |-
            Your customer's mobile phone number in full international telephone number format, including country code.

            If the currency is **GHS** or **KES** then `phoneNumber` field is required. Otherwise, it is optional.
          examples:
          - '+628113912103'
          type: string
          maxLength: 16
          minLength: 7
          pattern: ^\+?[0-9]+$
        remark:
          type: string
        paymentMethodCode:
          type: string
          enum:
          - WALLET_TRANSFER
          const: WALLET_TRANSFER
    WalletTransferMethodResponse:
      title: WALLET_TRANSFER
      type: object
      required:
      - idPayout
      - idPayment
      - paymentMethodCode
      - reference
      properties:
        idPayout:
          $ref: '#/components/schemas/IdPayout'
        idPayment:
          $ref: '#/components/schemas/IdPayment'
        paymentMethodCode:
          type: string
          enum:
          - WALLET_TRANSFER
          const: WALLET_TRANSFER
        reference:
          description: Reference number of transaction.
          type: string
  securitySchemes:
    httpAuth:
      type: http
      scheme: bearer

