Uzum Merchant API

Webhook protocol that lets partners accept payments from inside the Uzum Bank mobile application. Uzum Bank calls five partner-implemented webhooks — check, create, confirm, reverse and status — carrying payment data; the partner implements the handlers and returns responses per the specification. HTTP Basic authorization.

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/uzum-merchant-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

uzum-merchant-openapi.yaml Raw ↑
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)

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

    - [Authorization](#section/Authorization)

    - [Error Codes](#section/Error-Codes)

    - [Webhooks](#tag/Webhooks)


    ---

    # Payment Flow


    The payment acceptance process through the Uzum Bank mobile application
    consists of three main steps:


    1. Checking payment eligibility — [`/check`](#operation/check)

    2. Creating a transaction — [`/create`](#operation/create)

    3. Confirming the payment — [`/confirm`](#operation/confirm)


    The full scenario below describes the actions performed by Uzum Bank and the
    responses that the partner must return at each step.


    <a href='/img/merchant-api/en-merchant-payment-flow.svg'
    target='_blank'><img style="display: block; margin: 0 auto; max-width:90%;
    height:auto;" src='/img/merchant-api/en-merchant-payment-flow.svg'/></a>.


    1. The customer selects a service in the Uzum Bank application and enters
    the data required for payment, such as an account number, phone number, or
    order number.

    2. Uzum Bank sends the [`/check`](#operation/check) webhook to the partner
    to verify whether the payment can be accepted for the provided data.
    Customer data is passed in the `params` object.

    3. The partner validates the data and returns:
       - `status: OK` if the payment can continue;
       - `status: FAILED` and `errorCode` if the payment cannot be accepted.
    4. If the check is successful, Uzum Bank sends the
    [`/create`](#operation/create) webhook with the transaction identifier
    `transId`, amount `amount`, and payment parameters.

    5. The partner creates the transaction on its side and returns:
       - `status: CREATED` if the transaction is created;
       - `status: FAILED` and `errorCode` if the transaction cannot be created.
    6. After the transaction is created successfully, Uzum Bank debits the
    customer's payment instrument and sends the [`/confirm`](#operation/confirm)
    webhook to the partner.

    7. The partner provides the service to the customer, moves the transaction
    to its final state, and returns:
       - `status: CONFIRMED` if the service was provided successfully;
       - `status: FAILED` and `errorCode` if confirmation is not possible.
    8. If a server error or timeout occurs on the partner side while processing
    [`/confirm`](#operation/confirm), Uzum Bank sends the
    [`/status`](#operation/status) webhook to retrieve the actual transaction
    state. The request is repeated up to 10 times until the partner returns
    `CONFIRMED` or `FAILED`.


    # 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    |


    # Error Codes


    If a webhook cannot be processed successfully, return HTTP `400` and a JSON
    error object with the `errorCode` field. The `errorCode` value is returned
    as a string.


    | Error Code | Error Description | Comments | Methods |

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

    | `10001` | Access denied | Authorization error. Check the `Authorization`
    header and issued credentials. | `/check`, `/create`, `/confirm`,
    `/reverse`, `/status` |

    | `10002` | JSON parsing error | The request body is not valid JSON or does
    not match the expected structure. | `/check`, `/create`, `/confirm`,
    `/reverse`, `/status` |

    | `10003` | Invalid operation | Incorrect HTTP method. All webhooks expect
    `POST`. | `/check`, `/create`, `/confirm`, `/reverse`, `/status` |

    | `10005` | Missing required parameters | One or more required parameters
    are missing or empty. | `/check`, `/create`, `/confirm`, `/reverse`,
    `/status` |

    | `10006` | Invalid `serviceId` | The service identifier is unknown or not
    available to the partner. | `/check`, `/create` |

    | `10007` | Additional payment attribute not found | For example: account
    number, phone number, or order number. | `/check`, `/create` |

    | `10008` | Payment already made | The payment for the specified additional
    attributes has already been successfully processed. | `/check`, `/create` |

    | `10009` | Payment cancelled | The payment for the specified additional
    attributes has been cancelled. | `/check`, `/create` |

    | `10010` | Transaction with the specified `transId` has already been
    created | Return this code when transaction creation is repeated with the
    same `transId`. | `/create` |

    | `10011` | Invalid amount | The payment amount does not match the expected
    amount or cannot be accepted. | `/create` |

    | `10012` | Payment amount is below the minimum | The amount is lower than
    the minimum allowed for the service. | `/create` |

    | `10013` | Payment amount exceeds the maximum | The amount is higher than
    the maximum allowed for the service. | `/create` |

    | `10014` | Transaction not found | The transaction with the specified
    `transId` does not exist in the partner system. | `/confirm`, `/reverse`,
    `/status` |

    | `10015` | Transaction cancelled | A cancelled transaction cannot be
    confirmed. | `/confirm` |

    | `10016` | Transaction with the specified `transId` has already been
    confirmed | Repeated confirmation call for an already confirmed transaction.
    | `/confirm` |

    | `10017` | Transaction cannot be cancelled | The transaction cannot be
    cancelled in its current state. | `/reverse` |

    | `10018` | Transaction with the specified `transId` has already been
    cancelled | Repeated cancellation call for an already cancelled transaction.
    | `/reverse` |

    | `99999` | Internal server error | The Uzum Bank service is temporarily
    unavailable or cannot process the request. Try again later. | `/check`,
    `/create`, `/confirm`, `/reverse`, `/status` |
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: >
            Error code for payment eligibility verification. Possible values are
            described in the "Error Codes" section.
          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 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: >
            Error code for payment transaction creation. Possible values are
            described in the "Error Codes" section.
          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 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: >
            Error code for payment transaction confirmation. Possible values are
            described in the "Error Codes" section.
          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 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
        - reverseTime
        - 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: >
            Error code for payment transaction cancellation. Possible values are
            described in the "Error Codes" section.
          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 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

# --- truncated at 32 KB (32 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/uzum/refs/heads/main/openapi/uzum-merchant-openapi.yaml