openapi: 3.1.0
info:
  title: Merchant API
  version: 1.0.0
  x-logo:
    url: https://uzumbank.uz/_nuxt/img/uzumbank-logo-light.f4c13a0.svg
    href: /
  description: >
    **Merchant API** allows partners to accept payments through the Uzum Bank
    mobile application. When a customer pays for a service, Uzum Bank sends
    [webhooks](#tag/Webhooks) to your server — HTTP POST requests containing
    payment data.


    To integrate, implement webhook handlers on your side and generate responses
    according to this specification.


    #### ⚙️ Key features

    - Payment eligibility check

    - Payment transaction creation (initiation)

    - Transaction confirmation

    - Transaction cancellation

    - Transaction status checks


    #### 🚀 **Quick start**

    - [Payment flow](#section/Payment-Flow)

    - [Authorization](#section/Authorization)

    - [Request format](#section/Request-Format)

    - [Webhooks](#tag/Webhooks)


    ---

    # Payment Flow


    The payment process consists of three stages:


    1. Verifying the possibility of the payment

    1. Creating a transaction

    1. Confirming the transaction


    ## Verifying Payment Possibility


    After selecting a service and providing the required details, such as an
    account number, the user proceeds to the payment verification stage. At this
    stage, Uzum Bank triggers the [check](#operation/check) webhook on the
    partner's side to confirm the feasibility of processing the payment. The
    data required to complete the payment is passed in the `params` object.


    <a href='/img/merchant-api/en-merchant-verify-transfer.png'
    target='_blank'><img style="display: block; margin: 0 auto; max-width:70%;
    height: auto;"
    src='/img/merchant-api/en-merchant-verify-transfer.png'/></a>.


    ## Creating Transaction


    If the payment verification confirms the possibility of processing the
    payment, Uzum Bank triggers the [create](#operation/create) webhook to
    create a transaction.


    <a href='/img/merchant-api/en-merchant-create-transaction.png'
    target='_blank'><img style="display: block; margin: 0 auto; max-width:70%;
    height:auto;"
    src='/img/merchant-api/en-merchant-create-transaction.png'/></a>.


    ## Confirming Transaction


    After successfully creating the transaction, Uzum Bank debits the funds from
    the user's payment instrument and credits them to your settlement account.
    Uzum Bank then triggers the [confirm](#operation/confirm) webhook to confirm
    the transaction. You must process this request, provide the service to the
    user, and generate a response.


    <a href='/img/merchant-api/en-merchant-confirm-transaction.png'
    target='_blank'><img style="display: block; margin: 0 auto; max-width:70%;
    height:auto;"
    src='/img/merchant-api/en-merchant-confirm-transaction.png'/></a>.


    If a server error occurs on the partner's side or a timeout happens while
    processing the request, Uzum Bank triggers the [status](#operation/status)
    webhook to check the transaction status. This call will be repeated (up to
    10 attempts) until the status `CONFIRMED` or `FAILED` is received.


    # State Model


    A transaction can be in one of three states.


    <a href='/img/merchant-api/merchant-state-model.png' target='_blank'><img
    style="display: block; margin: 0 auto; max-width:40%; height:auto;"
    src='/img/merchant-api/merchant-state-model.png'/></a>.


    If you do not receive the transaction confirmation request within 30 minutes
    of its creation, the transaction is considered unsuccessful. In this case,
    set the transaction status to `FAILED` on your side.


    # Request Format


    Uzum Bank uses the HTTPS protocol to deliver webhooks to the partner.
    Requests are sent via the `POST` method in `application/json` format, and
    responses are also expected in `application/json` format.


    # Authorization


    Authorization is done via the HTTP <a
    href="https://developer.mozilla.org/en/docs/Web/HTTP/Headers/Authorization"
    target="_blank">Authorization</a> header, which must be present in every
    request. The header is generated using the "Basic" scheme and user
    credentials encoded in <a
    href="https://developer.mozilla.org/en/docs/Glossary/Base64"
    target="_blank">base64</a> format: `Authorization: Basic <user
    credentials>`. The user credentials, including the username and password,
    are provided by our team.


    To form the header:


    1. Create a string from the username and password, separated by a colon, for
    example: `"myLogin:myPassword"`;

    2. Encode the string in base64, the result might be
    `YWxhZGRpbjpvcGVuc2VzYW1l`;

    3. Insert the result into the header; make sure there is a space between the
    word `"Basic"` and the encoded credentials.


    The header will look like:


    | Header      | Value                        |

    |--------------------|------------------------------|

    | Authorization | Basic YWxhZGRpbjpvcGVuc2VzYW1l    |
tags:
  - name: Webhooks
    description: >
      These are the requests that Uzum Bank sends to the partner during the
      payment process according to the Merchant API protocol. 
security:
  - BasicAuth: []
webhooks:
  /check:
    post:
      summary: Verifying Payment Possibility
      description: >
        The `/check` webhook is used to verify the possibility of processing a
        payment and to retrieve additional information about the payment or the
        user.
      tags:
        - Webhooks
      operationId: check
      requestBody:
        $ref: '#/components/requestBodies/CheckRequest'
      responses:
        '200':
          $ref: '#/components/responses/CheckResponseSuccess'
        '400':
          $ref: '#/components/responses/CheckResponseError'
  /create:
    post:
      summary: Creating Payment Transaction
      description: >
        The `/create` webhook is used to create a payment transaction in the
        partner's system.
      tags:
        - Webhooks
      operationId: create
      requestBody:
        $ref: '#/components/requestBodies/CreateRequest'
      responses:
        '200':
          $ref: '#/components/responses/CreateResponseSuccess'
        '400':
          $ref: '#/components/responses/CreateResponseError'
  /confirm:
    post:
      summary: Confirming Payment Transaction
      description: >
        The `/confirm` webhook is used to confirm the payment transaction after
        the service has been successfully paid for.
      tags:
        - Webhooks
      operationId: confirm
      requestBody:
        $ref: '#/components/requestBodies/ConfirmRequest'
      responses:
        '200':
          $ref: '#/components/responses/ConfirmResponseSuccess'
        '400':
          $ref: '#/components/responses/ConfirmResponseError'
  /reverse:
    post:
      summary: Cancelling Payment Transaction
      description: >
        The `/reverse` webhook is used to cancel a payment transaction in the
        partner's system.        
      tags:
        - Webhooks
      operationId: reverse
      requestBody:
        $ref: '#/components/requestBodies/ReverseRequest'
      responses:
        '200':
          $ref: '#/components/responses/ReverseResponseSuccess'
        '400':
          $ref: '#/components/responses/ReverseResponseError'
  /status:
    post:
      summary: Checking Payment Transaction Status
      description: >
        The `/status` webhook is used to check the status of a payment
        transaction in the partner's system.
      tags:
        - Webhooks
      operationId: status
      requestBody:
        $ref: '#/components/requestBodies/StatusRequest'
      responses:
        '200':
          $ref: '#/components/responses/StatusResponseSuccess'
        '400':
          $ref: '#/components/responses/StatusResponseError'
components:
  securitySchemes:
    BasicAuth:
      type: http
      scheme: basic
  requestBodies:
    CheckRequest:
      description: |
        JSON object with request parameters.
      required: true
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CheckRequest'
    CreateRequest:
      description: |
        JSON object with request parameters.
      required: true
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CreateRequest'
    ConfirmRequest:
      description: |
        JSON object with request parameters.
      required: true
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ConfirmRequest'
    ReverseRequest:
      description: |
        JSON object with request parameters.
      required: true
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ReverseRequest'
    StatusRequest:
      description: |
        JSON object with request parameters.
      required: true
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/StatusRequest'
  responses:
    CheckResponseSuccess:
      description: |
        Successful response.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Check'
    CheckResponseError:
      description: |
        Error response.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CheckError'
    CreateResponseSuccess:
      description: |
        Successful response.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Create'
    CreateResponseError:
      description: |
        Error response.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CreateError'
    ConfirmResponseSuccess:
      description: |
        Successful response.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Confirm'
    ConfirmResponseError:
      description: |
        Error response.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ConfirmError'
    ReverseResponseSuccess:
      description: |
        Successful response.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Reverse'
    ReverseResponseError:
      description: |
        Error response.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ReverseError'
    StatusResponseSuccess:
      description: |
        Successful response.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Status'
    StatusResponseError:
      description: |
        Error response.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/StatusError'
  schemas:
    CheckRequest:
      type: object
      properties:
        serviceId:
          description: |
            Service ID for which the payment is being made.
          type: integer
          format: int64
          example: 101202
        timestamp:
          description: |
            Time of request (Unix timestamp in milliseconds).
          type: integer
          format: int64
          example: 1698361456728
        params:
          description: >
            An object with additional payment properties, such as the account
            number `account`.
          type: object
          example:
            account: 123456789
      required:
        - serviceId
        - timestamp
        - params
    Check:
      type: object
      properties:
        serviceId:
          description: |
            Service ID for which the payment is being made.
          type: integer
          format: int64
          example: 101202
        timestamp:
          description: |
            Time of payment verification (Unix timestamp in milliseconds).
          type: integer
          format: int64
          example: 1698361457021
        status:
          description: |
            Payment verification status.
          type: string
          enum:
            - OK
          example: OK
        data:
          description: >
            User and payment data (can be an empty object).  

            The `data` object consists of key-value pairs. The key name is
            arbitrary, for example: `account` or `fio`.  

            The value is an object with a single property `value` (type
            `string`).
          type: object
          example:
            account:
              value: '123456789'
            fio:
              value: Ivanov Ivan Ivanovich
      required:
        - serviceId
        - timestamp
        - status
    CheckError:
      type: object
      properties:
        serviceId:
          description: |
            Service ID for which the payment is being made.
          type: integer
          format: int64
          example: 101202
        timestamp:
          description: |
            Time of payment verification (Unix timestamp in milliseconds).
          type: integer
          format: int64
          example: 1698361457021
        status:
          description: |
            Payment verification status.
          type: string
          enum:
            - FAILED
          example: FAILED
        errorCode:
          description: >
            Payment verification Error Codes


            | Error Code | Error Description | Comments |

            |------------|-------------------|----------|

            | 10001      | Access Denied     | Authorization error |

            | 10002      | JSON Parsing Error | Error parsing JSON object with
            request parameters |

            | 10003      | Invalid Operation | Incorrect HTTP method |

            | 10005      | Missing Required Parameters | Required parameters are
            missing in the request |

            | 10006      | Invalid `serviceId` | Incorrect service ID |

            | 10007      | Additional Payment Attribute Not Found | For example:
            account number, phone number, or order number |

            | 10008      | Payment Already Made | For the specified additional
            attributes |

            | 10009      | Payment Cancelled | For the specified additional
            attributes |

            | 99999      | Data Verification Error | Service unavailable, please
            try again later |
          type: string
          example: '10007'
      required:
        - errorCode
    CreateRequest:
      type: object
      properties:
        serviceId:
          description: |
            Service ID for which the payment is being made.
          type: integer
          format: int64
          example: 101202
        timestamp:
          description: |
            Time of request (Unix timestamp in milliseconds).
          type: integer
          format: int64
          example: 1698361456728
        transId:
          description: |
            Transaction ID of the payment created in Uzum Bank.
          type: string
          format: uuid
          example: 5c398d7e-76b6-11ee-96da-f3a095c6289d
        params:
          description: >
            An object with additional payment properties, such as the account
            number `account`.
          type: object
          example:
            account: 123456789
        amount:
          description: |
            Payment amount in tiyin (the smallest currency unit).
          type: integer
          format: int64
          example: 2500000
      required:
        - serviceId
        - timestamp
        - transId
        - params
        - amount
    Create:
      type: object
      properties:
        serviceId:
          description: |
            Service ID for which the payment is being made.
          type: integer
          format: int64
          example: 101202
        transId:
          description: |
            Transaction ID of the payment created in Uzum Bank.
          type: string
          format: uuid
          example: 5c398d7e-76b6-11ee-96da-f3a095c6289d
        status:
          description: |
            Payment transaction status.
          type: string
          enum:
            - CREATED
          example: CREATED
        transTime:
          description: >
            Time of payment transaction creation (Unix timestamp in
            milliseconds).
          type: integer
          format: int64
          example: 1698361458054
        data:
          description: >
            User and payment transaction data (can be an empty object).  

            The `data` object consists of key-value pairs. The key name is
            arbitrary, for example: `account` or `fio`.  

            The value is an object with a single property `value` (type
            `string`).
          type: object
          example:
            account:
              value: '123456789'
            fio:
              value: Ivanov Ivan Ivanovich
        amount:
          description: |
            Payment amount in tiyin (the smallest currency unit).
          type: integer
          format: int64
          example: 2500000
      required:
        - serviceId
        - transId
        - status
        - transTime
        - amount
    CreateError:
      type: object
      properties:
        serviceId:
          description: |
            Service ID for which the payment is being made.
          type: integer
          format: int64
          example: 101202
        transId:
          description: |
            Transaction ID of the payment created in Uzum Bank.
          type: string
          format: uuid
          example: 5c398d7e-76b6-11ee-96da-f3a095c6289d
        status:
          description: |
            Payment transaction status.
          type: string
          enum:
            - FAILED
          example: FAILED
        transTime:
          description: >
            Time of payment transaction creation (Unix timestamp in
            milliseconds).
          type: integer
          format: int64
          example: 1698361458054
        errorCode:
          description: >
            Payment verification Error Codes


            | Error Code | Error Description | Comments |

            |------------|-------------------|----------|

            | 10001      | Access Denied     | Authorization error |

            | 10002      | JSON Parsing Error | Error parsing JSON object with
            request parameters |

            | 10003      | Invalid Operation | Incorrect HTTP method |

            | 10005      | Missing Required Parameters | Required parameters are
            missing in the request |

            | 10006      | Invalid `serviceId` | Incorrect service ID |

            | 10007      | Additional Payment Attribute Not Found | For example:
            account number, phone number, or order number |

            | 10008      | Payment Already Made | For the specified additional
            attributes |

            | 10009      | Payment Cancelled | For the specified additional
            attributes |

            | 99999      | Data Verification Error | Service unavailable, please
            try again later |
          type: string
          example: '10013'
      required:
        - errorCode
    ConfirmRequest:
      type: object
      properties:
        serviceId:
          description: |
            Service ID for which the payment is being made.
          type: integer
          format: int64
          example: 101202
        timestamp:
          description: |
            Time of request (Unix timestamp in milliseconds).
          type: integer
          format: int64
          example: 1698361456728
        transId:
          description: |
            Transaction ID of the payment created in Uzum Bank.
          type: string
          format: uuid
          example: 5c398d7e-76b6-11ee-96da-f3a095c6289d
        paymentSource:
          description: >
            Payment source indicator: UZCARD, HUMO, VISA, MASTERCARD,
            VISA_DOMESTIC, MASTERCARD_DOMESTIC, INSTALLMENT, CASHBACK, ACCOUNT,
            WALLET, VISAUZS, UZUM_DEBIT_VISA.
          type: string
          format: enum
          example: INSTALLMENT
        tariff:
          description: >
            `tariff` is available if the payment source symbol is `INSTALLMENT`;
            otherwise, it is `null`: "003" or "15-0-4" or `null`.
          type: string
          format: string
          example: '003'
        processingReferenceNumber:
          description: >
            Processing reference number. This field is sent only when paying
            with Uzcard, Humo, Visa Uzum Bank, or Visa Kapital Bank cards.
            Otherwise, the value of this field will be `null`.
          type: string
          format: string
          example: '000'
        phone:
          description: |
            Client phone number.
          type: string
          format: string
          example: '998901234567'
        cardType:
          description: >
            Client bank card type (1 - corporate bank card, 2 - private bank
            card).
          type: integer
          format: int32
          example: 2
      required:
        - serviceId
        - timestamp
        - transId
        - paymentSource
        - phone
    Confirm:
      type: object
      properties:
        serviceId:
          description: |
            Service ID for which the payment is being made.
          type: integer
          format: int64
          example: 101202
        transId:
          description: |
            Transaction ID of the payment created in Uzum Bank.
          type: string
          format: uuid
          example: 5c398d7e-76b6-11ee-96da-f3a095c6289d
        status:
          description: |
            Payment transaction status.
          type: string
          enum:
            - CONFIRMED
          example: CONFIRMED
        confirmTime:
          description: >
            Time of payment transaction confirmation (Unix timestamp in
            milliseconds).
          type: integer
          format: int64
          example: 1698361458054
        data:
          description: >
            User and payment transaction data (can be an empty object).  

            The `data` object consists of key-value pairs. The key name is
            arbitrary, for example: `account` or `fio`.  

            The value is an object with a single property `value` (type
            `string`).
          type: object
          example:
            account:
              value: '123456789'
            fio:
              value: Ivanov Ivan Ivanovich
        amount:
          description: |
            Payment amount in tiyin (the smallest currency unit).
          type: integer
          format: int64
          example: 2500000
      required:
        - serviceId
        - transId
        - status
        - confirmTime
        - amount
    ConfirmError:
      type: object
      properties:
        serviceId:
          description: |
            Service ID for which the payment is being made.
          type: integer
          format: int64
          example: 101202
        transId:
          description: |
            Transaction ID of the payment created in Uzum Bank.
          type: string
          format: uuid
          example: 5c398d7e-76b6-11ee-96da-f3a095c6289d
        status:
          description: |
            Payment transaction status.
          type: string
          enum:
            - FAILED
          example: FAILED
        confirmTime:
          description: >
            Time of payment transaction confirmation (Unix timestamp in
            milliseconds).

                 
          type: integer
          format: int64
          example: 1698361458054
        errorCode:
          description: >
            Payment verification Error Codes


            | Error Code | Error Description | Comments |

            |------------|-------------------|----------|

            | 10001      | Access Denied     | Authorization error |

            | 10002      | JSON Parsing Error | Error parsing JSON object with
            request parameters |

            | 10003      | Invalid Operation | Incorrect HTTP method |

            | 10005      | Missing Required Parameters | Required parameters are
            missing in the request |

            | 10006      | Invalid `serviceId` | Incorrect service ID |

            | 10007      | Additional Payment Attribute Not Found | For example:
            account number, phone number, or order number |

            | 10008      | Payment Already Made | For the specified additional
            attributes |

            | 10009      | Payment Cancelled | For the specified additional
            attributes |

            | 99999      | Data Verification Error | Service unavailable, please
            try again later |
          type: string
          example: '10014'
      required:
        - errorCode
    ReverseRequest:
      type: object
      properties:
        serviceId:
          description: |
            Service ID for which the payment is being made.
          type: integer
          format: int64
          example: 101202
        timestamp:
          description: |
            Time of request (Unix timestamp in milliseconds).
          type: integer
          format: int64
          example: 1698361456728
        transId:
          description: |
            Transaction ID of the payment created in Uzum Bank.
          type: string
          format: uuid
          example: 5c398d7e-76b6-11ee-96da-f3a095c6289d
      required:
        - serviceId
        - timestamp
        - transId
    Reverse:
      type: object
      properties:
        serviceId:
          description: |
            Service ID for which the payment is being made.
          type: integer
          format: int64
          example: 101202
        transId:
          description: |
            Transaction ID of the payment created in Uzum Bank.
          type: string
          format: uuid
          example: 5c398d7e-76b6-11ee-96da-f3a095c6289d
        status:
          description: |
            Payment transaction status.
          type: string
          enum:
            - REVERSED
          example: REVERSED
        reverseTime:
          description: >
            Time of payment transaction cancellation (Unix timestamp in
            milliseconds).
          type: integer
          format: int64
          example: 1698361458054
        data:
          description: >
            User and payment transaction data (can be an empty object).  

            The `data` object consists of key-value pairs. The key name is
            arbitrary, for example: `account` or `fio`.  

            The value is an object with a single property `value` (type
            `string`).
          type: object
          example:
            account:
              value: '123456789'
            fio:
              value: Ivanov Ivan Ivanovich
        amount:
          description: |
            Payment amount in tiyin (the smallest currency unit).
          type: integer
          format: int64
          example: 2500000
      required:
        - serviceId
        - transId
        - status
        - confirmTime
        - amount
    ReverseError:
      type: object
      properties:
        serviceId:
          description: |
            Service ID for which the payment is being made.
          type: integer
          format: int64
          example: 101202
        transId:
          description: |
            Transaction ID of the payment created in Uzum Bank.
          type: string
          format: uuid
          example: 5c398d7e-76b6-11ee-96da-f3a095c6289d
        status:
          description: |
            Payment transaction status.
          type: string
          enum:
            - FAILED
          example: FAILED
        reverseTime:
          description: >
            Time of payment transaction cancellation (Unix timestamp in
            milliseconds).

                        
          type: integer
          format: int64
          example: 1698361458054
        errorCode:
          description: >
            Payment verification Error Codes


            | Error Code | Error Description | Comments |

            |------------|-------------------|----------|

            | 10001      | Access Denied     | Authorization error |

            | 10002      | JSON Parsing Error | Error parsing JSON object with
            request parameters |

            | 10003      | Invalid Operation | Incorrect HTTP method |

            | 10005      | Missing Required Parameters | Required parameters are
            missing in the request |

            | 10006      | Invalid `serviceId` | Incorrect service ID |

            | 10007      | Additional Payment Attribute Not Found | For example:
            account number, phone number, or order number |

            | 10008      | Payment Already Made | For the specified additional
            attributes |

            | 10009      | Payment Cancelled | For the specified additional
            attributes |

            | 99999      | Data Verification Error | Service unavailable, please
            try again later |
          type: string
          example: '10017'
      required:
        - errorCode
    StatusRequest:
      type: object
      properties:
        serviceId:
          description: |
            Service ID for which the payment is being made.
          type: integer
          format: int64
          example: 101202
        timestamp:
          description: |
            Time of request (Unix timestamp in milliseconds).
          type: integer
          format: int64
          example: 1698361456728
        transId:
          description: |
            Transaction ID of the payment created in Uzum Bank.
          type: string
          format: uuid
          example: 5c398d7e-76b6-11ee-96da-f3a095c6289d
      required:
        - serviceId
        - timestamp
        - transId
    Status:
      type: object
      properties:
        serviceId:
          description: |
            Service ID for which the payment is being made.
          type: integer
          format: int64
          example: 101202
        transId:
          description: |
            Transaction ID of the payment created in Uzum Bank.
          type: string
          format: uuid
          example: 5c398d7e-76b6-11ee-96da-f3a095c6289d
        status:
          description: |
            Payment transaction status.
          type: string
          enum:
            - CREATED
            - CONFIRMED
            - REVERSED
          example: CONFIRMED
        transTime:
          description: >
            Time of payment transaction creation (Unix timestamp in
            milliseconds).
          type: integer
          format: int64
          example: 1698361458054
        confirmTime:
          description: >
            Time of payment transaction confirmation (Unix timestamp in
            milliseconds).
          oneOf:
            - type: integer
              format: int64
            - type: 'null'
          example: 1698361458054
        reverseTime:
          description: >
            Time of payment transaction cancellation (Unix timestamp in
            milliseconds).
          oneOf:
            - type: integer
              format: int64
            - type: 'null'
          example: null
        data:
          description: >
            User and payment transaction data (can be an empty object).  

            The `data` object consists of key-value pairs. The key name is
            arbitrary, for example: `account` or `fio`.  

            The value is an object with a single property `value` (type
            `string`).
          type: object
          example:
            account:
              value: '123456789'
            fio:
              value: Ivanov Ivan Ivanovich
        amount:
          description: |
            Payment amount in tiyin (the smallest currency unit).
          type: integer
          format: int64
          example: 2500000
      required:
        - serviceId
        - transId
        - status
        - transTime
    StatusError:
      type: object
      properties:
        serviceId:
          description: |
            Service ID for which the payment is being made.
          type: integer
          format: int64
          example: 101202
        transId:
          description: |
            Transaction ID of the payment created in Uzum Bank.
          type: string
          format: uuid
          example: 5c398d7e-76b6-11ee-96da-f3a095c6289d
        status:
          description: |
            Payment transaction status.
          type: string
          enum:
            - FAILED
          example: FAILED
        transTime:
          description: >
            Time of payment transaction creation (Unix timestamp in
            milliseconds).
          type: integer
          format: int64
          example: 1698361458054
        confirmTime:
          description: >
            Time of payment transaction confirmation (Unix timestamp in
            milliseconds).
          oneOf:
            - type: integer
              format: int64
            - type: 'null'
          example: 1698361458054
        reverseTime:
          description: >
            Time of payment transaction cancellation (Unix timestamp in
            milliseconds).
          oneOf:
            - type: integer
              format: int64
            - type: 'null'
          example: null
        errorCode:
          description: >
            Payment verification Error Codes


            | Error Code | Error Description | Comments |

            |------------|-------------------|----------|

            | 10001      | Access Denied     | Authorization error |

            | 10002      | JSON Parsing Error | Error parsing JSON object with
            request parameters |

            | 10003      | Invalid Operation | Incorrect HTTP method |

            | 10005      | Missing Required Parameters | Required parameters are
            missing in the request |

            | 10006      | Invalid `serviceId` | Incorrect service ID |

            | 10007      | Additional Payment Attribute Not Found | For example:
            account number, phone number, or order number |

            | 10008      | Payment Already Made | For the specified additional
            attributes |

            | 10009      | Payment Cancelled | For the specified additional
            attributes |

            | 99999      | Data Verification Error | Service unavailable, please
            try again later |
          type: string
          example: '10014'
      required:
        - errorCode
