Uzum Fiscalization API

In this section, the API provides methods for working with fiscal receipts. `/v2/receipt` method allows you to register a sale operation and generate a fiscal receipt that complies with all legal requirements. `/v2/refund_receipt` method is designed for registering return transactions for goods or services. Similar to the direct receipt fiscalization method, it ensures the generation of a fiscal receipt for the return that also meets all regulatory requirements and can be provided to the customer. `/v2/receipt/{operation_id}/receipt_url` method provides the ability to obtain an electronic copy of the fiscal receipt using the unique operation identifier.

Operations 3

POST /v2/receipt /v2/receipt #
POST /v2/refund_receipt /v2/refund_receipt #
GET /v2/receipt/{operation_id}/receipt_url /v2/receipt/{operation_id}/receipt_url #

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-fiscalization-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 form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

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

OpenAPI Specification

uzum-fiscalization-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Uzum Fiscalization API
  version: 0.0.2
  description: '**Uzum Fiscalization** is a service for fiscalizing receipts and submitting them to the Uzbekistan tax authority via API.'
tags:
- name: Fiscalization
  description: In this section, the API provides methods for working with fiscal receipts.
paths:
  /v2/receipt:
    post:
      tags:
      - Fiscalization
      summary: /v2/receipt
      description: The direct receipt fiscalization method is intended for registering sales transactions in the GNK system.
      parameters:
      - in: header
        name: X-API-Key
        required: true
        schema:
          type: string
        description: Unique API key. We assign and provide this key to each partner.
      operationId: fiscal_receipt_generation_fiscal_receipt_generation_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ReceiptData'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReceiptGenerationResponse'
        '202':
          description: Request accepted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RequestAccepted'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequestResponse'
        '403':
          description: Auth error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuthErrorResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorResponse'
  /v2/refund_receipt:
    post:
      tags:
      - Fiscalization
      summary: /v2/refund_receipt
      description: 'The refund receipt fiscalization method is intended for registering returns in the GNK system.


        For fiscalization of a refund receipt, the following conditions must be met:

        - The `paymentId` of the refund receipt must equal the `paymentId` of the sales receipt.

        - The sales receipt must have been previously fiscalized.'
      parameters:
      - in: header
        name: X-API-Key
        required: true
        schema:
          type: string
        description: Unique API key. We assign and provide this key to each partner.
      operationId: fiscal_receipt_refund_fiscal_receipt_refund_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RefundData'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReceiptRefundResponse'
        '202':
          description: Request accepted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RefundAccepted'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRefundRequestResponse'
        '403':
          description: Auth error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuthErrorResponse'
        '404':
          description: Reciept not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFoundByPaymentIdResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorResponse'
  /v2/receipt/{operation_id}/receipt_url:
    get:
      summary: /v2/receipt/{operation_id}/receipt_url
      description: The method for obtaining a link to the fiscal receipt after its fiscalization.
      parameters:
      - in: path
        name: operation_id
        required: true
        schema:
          type: string
          format: uuid
          example: 61e057d9-b737-42fa-ae33-614a284a5a92
        description: Unique operation identifier.
      - in: header
        name: X-API-Key
        required: true
        schema:
          type: string
        description: Unique API key. We assign and provide this key to each partner.
      operationId: get_receipt_url
      tags:
      - Fiscalization
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetReceiptURLResponse'
        '202':
          description: Request accepted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WaitingForReceiptURLResponse'
        '400':
          description: There is no URL for prepaid/credit receipt
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NoURLForPrepaidCreditReceipt'
        '403':
          description: Auth error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuthErrorResponse'
        '404':
          description: Reciept not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFoundByPAOResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
        '500':
          description: Internal Server Error
components:
  schemas:
    InternalServerErrorResponse:
      title: Internal Server Error
      required:
      - message
      type: object
      properties:
        message:
          type: string
          example: Server encountered an unexpected condition that prevented it from fulfilling the request. Please, contact support
    AuthErrorResponse:
      title: AuthErrorResponse
      type: object
      properties:
        message:
          title: Operation Id
          type: string
          format: string
          description: "Available Values:\n * Multiple auth headers are defined\n * Auth header is not defined\n * User is not found\n"
    ValidationError:
      title: ValidationError
      required:
      - loc
      - msg
      - type
      type: object
      properties:
        loc:
          title: Location
          type: array
          items:
            anyOf:
            - type: string
            - type: integer
        msg:
          title: Message
          type: string
        type:
          title: Error Type
          type: string
    RequestAccepted:
      title: Request Accepted
      required:
      - message
      - code
      type: object
      properties:
        payment_id:
          title: Payment Id
          type: string
          format: uuid
          example: 61e057d9-b737-42fa-ae33-614a284a5a92
          description: Unique payment identifier in the electronic payment system. Returned if the `payment_id` is not provided in the fiscalization request.
        code:
          title: Code
          type: integer
          description: "Possible values\n * 0 - Didn't receive a timely response from an ofd.soliq.uz server. Your request was accepted and receipt will be fiscalized as soon as ofd.soliq.uz is available. You can either retry request later, call /v2/receipt_url/{operation_id} method or subscribe to callbacks\n * 1 - Error occurred in communications with ofd.soliq.uz. We will retry it later. You can either retry request later, call /v2/receipt_url/{operation_id} method or subscribe to callbacks\n * 2 - Didn't fiscalized receipt yet. We're in process of retrying it. You can either retry request later, call /v2/receipt_url/{operation_id} method or subscribe to callbacks\n"
        message:
          title: Message
          type: string
          description: "Possible values\n * Didn't receive a timely response from an ofd.soliq.uz server. Your request was accepted and receipt will be fiscalized as soon as ofd.soliq.uz is available. You can either retry request later, call /v2/receipt_url/{operation_id} method or subscribe to callbacks\n * Error occurred in communications with ofd.soliq.uz. We will retry it later. You can either retry request later, call /v2/receipt_url/{operation_id} method or subscribe to callbacks\n * Didn't fiscalized receipt yet. We're in process of retrying it. You can either retry request later, call /v2/receipt_url/{operation_id} method or subscribe to callbacks\n"
          example: Didn't receive a timely response from an ofd.soliq.uz server. Your request was accepted and receipt receipt will be fiscalized as soon as ofd.soliq.uz is available. You can either retry request later, call /v2/receipt_url/{operation_id} method or subscribe to callbacks
    RefundData:
      title: RefundData
      required:
      - payment_id
      - operation_id
      - cash_amount
      - card_amount
      - date_time
      - items
      type: object
      properties:
        payment_id:
          title: Payment Id
          type: string
          format: uuid
          example: 61e057d9-b737-42fa-ae33-614a284a5a92
          description: Unique payment identifier.
        operation_id:
          title: Operation Id
          type: string
          format: uuid
          example: 61e057d9-b737-42fa-ae33-614a284a5a92
          description: Unique operation identifier.
        cash_amount:
          title: Cash Amount
          type: integer
          minimum: 0
          description: Amount of cash refund in tiyns before discount. Tiyn is the fractional monetary unit equal to 1/100 of the Uzbek som. Accordingly, if the cash refund amount is 1,000 som, you need to pass the value of 100,000 tiyns (1,000 * 100).
        card_amount:
          title: Card Amount
          type: integer
          minimum: 0
          description: Amount of card refund in tiyns before discount. Tiyn is the fractional monetary unit equal to 1/100 of the Uzbek som. Accordingly, if the card refund amount is 1,000 som, you need to pass the value of 100,000 tiyns (1,000 * 100).
        date_time:
          title: Date Time
          type: string
          description: 'Date and time should be specified in ISO 8601 format. If the time zone is not specified, the service will interpret them according to the time of Tashkent city. Specify the date and time within 24 hours after receiving confirmation of the successful payment.

            '
          format: date-time
        ppt_id:
          title: PPT ID
          type: string
          description: Unique transaction identifier assigned by the payment processing center.
        card_type:
          title: Card Type
          description: "Type of card used for the transaction:\n* `1` – Corporate card  \n* `2` – Personal card\n"
          type: integer
          enum:
          - 1
          - 2
        items:
          title: Items
          type: array
          items:
            $ref: '#/components/schemas/ReceiptDataItem'
          description: List of items to be returned.
    HTTPValidationError:
      title: HTTPValidationError
      type: object
      properties:
        detail:
          title: Detail
          type: array
          items:
            $ref: '#/components/schemas/ValidationError'
    NotFoundByPAOResponse:
      title: Reciept not found by PAO
      required:
      - message
      type: object
      properties:
        message:
          title: message
          type: string
          example: Receipt with {payment id} payment id and {operation id} operation id was not found
    ReceiptRefundResponse:
      title: RefundReceiptGenerationResponse
      type: object
      required:
      - receipt_url
      - receipt_id
      properties:
        receipt_id:
          title: Receipt Id
          type: integer
          example: 209726
          description: Receipt number in the tax committee (GNC).
        receipt_url:
          title: Receipt URL
          type: string
          example: https://ofd.soliq.uz/epi?t=EZ000000000296&r=51&c=20230807182725&s=176112857133
          description: Link to the receipt; not provided in the case of advance or credit receipts.
    ReceiptGenerationResponse:
      title: ReceiptGenerationResponse
      type: object
      required:
      - payment_id
      - receipt_id
      properties:
        receipt_id:
          title: Receipt Id
          type: integer
          example: 209726
          description: Receipt number in the tax committee (GNC).
        payment_id:
          title: Payment Id
          type: string
          format: uuid
          example: 61e057d9-b737-42fa-ae33-614a284a5a92
          description: Unique payment identifier in the electronic payment system. It is generated on our side if `payment_id` is not specified in the fiscalization request.
        receipt_url:
          title: Receipt URL
          type: string
          example: https://ofd.soliq.uz/epi?t=EZ000000000296&r=51&c=20230807182725&s=176112857133
          description: Link to the receipt; not provided in the case of advance or credit receipts.
    NotFoundByPaymentIdResponse:
      title: Reciept not found by PaymentId
      required:
      - message
      type: object
      properties:
        message:
          title: message
          type: string
          example: Receipt with {payment id} payment id was not found
    BadRequestResponse:
      title: Bad Request
      required:
      - code
      - message
      type: object
      properties:
        code:
          type: integer
          enum:
          - 1
          - 2
          description: "Sort order:\n * 1 - Invalid spic/package code. Please check values and resend request\n * 2 - Receipt with the same payment_id and receipt_type was already send. Please check values and resend request\n"
        message:
          type: string
          example: Invalid spic/package code. Please check values and resend request
    ReceiptDataItem:
      title: ReceiptDataItem
      required:
      - product_name
      - price
      - count
      - spic
      - package_code
      - vat_percent
      type: object
      properties:
        product_name:
          title: Product Name
          type: string
          description: Name of the product or service.
          maxLength: 63
        price:
          title: Price
          type: integer
          minimum: 0
          description: The cost of the product in tyiyn. Tyiyn is the subunit of the Uzbek sum, equal to 1/100 of a sum. Accordingly, if the cost of the product is 1,000 sum, you should send the value of 100,000 tyiyn (1,000 * 100).
        discount:
          title: Discount
          type: integer
          minimum: 0
          description: The total discount amount for all units of this product in the cart, expressed in tyiyn. Tyiyn is the subunit of the Uzbek sum, equal to 1/100 of a sum. Accordingly, if the discount amount is 1,000 sum, you should send the value of 100,000 tyiyn (1,000 * 100).
        voucher:
          title: Voucher
          type: integer
          minimum: 0
          description: The total marketplace discount amount, calculated based on the number of products and expressed in tyiyn. This discount does not reduce the total check amount, but it is not charged to the customer during the checkout payment. Tyiyn is the subunit of the Uzbek sum, equal to 1/100 of a sum. Accordingly, if the discount amount is 1,000 sum, you should send the value of 100,000 tyiyn (1,000 * 100).
        count:
          title: Count
          type: number
          mininum: 0
          format: double
          example: 1.998
          description: The quantity of the product in the order.
        spic:
          title: Spic
          type: string
          description: IKPU code.
        package_code:
          title: Package Code
          type: string
          description: Packaging code.
          minLength: 0
          maxLength: 20
        vat_percent:
          title: Vat Percent
          type: integer
          minimum: 0
          description: VAT rate in % for this item.
        commission_info:
          title: Commission Info
          allOf:
          - $ref: '#/components/schemas/ReceiptDataCommissionInfo'
          description: Payer data.
        owner_type:
          title: Owner Type
          type: integer
          description: 'Product/Service owner type: * 0 - Resale * 1 - In-house production * 2 - Service

            '
          enum:
          - 0
          - 1
          - 2
    GetReceiptURLResponse:
      required:
      - receipt_url
      title: GetReceiptURLResponse
      type: object
      properties:
        receipt_url:
          title: Receipt Url
          type: string
    ReceiptDataCommissionInfo:
      title: ReceiptDataCommissionInfo
      type: object
      properties:
        TIN:
          title: Tin
          type: string
          description: Taxpayer Identification Number (TIN) of the principal. It is mandatory if PINF is not provided. Simultaneous filling of both TIN and PINF is not allowed.
        PINFL:
          title: Pinfl
          maxLength: 14
          minLength: 14
          type: string
          description: PINF of the principal. It is mandatory if TIN is not provided. Simultaneous filling of both PINF and TIN is not allowed.
    ReceiptData:
      title: ReceiptData
      required:
      - operation_id
      - date_time
      - cash_amount
      - card_amount
      - items
      type: object
      properties:
        payment_id:
          title: Payment Id
          type: string
          format: uuid
          example: 61e057d9-b737-42fa-ae33-614a284a5a92
          description: Unique payment identifier. When using the Uzum checkout, this identifier corresponds to the `order_id`. In the case of cash payments, the transfer of the identifier is not required; the `payment_id` will be automatically assigned by our system.
        operation_id:
          title: Operation Id
          type: string
          format: uuid
          example: 61e057d9-b737-42fa-ae33-614a284a5a92
          description: Unique transaction identifier that you must generate in your system.
        date_time:
          title: Date Time
          type: string
          description: 'The date and time should be provided in ISO 8601 format. If the time zone is not specified, the service will interpret them according to Tashkent time. The date and time should be within 24 hours after receiving confirmation of successful payment.


            Time zone of Tashkent: "2023-11-01T14:00:00+05:00".

            Without specifying the time zone: "2023-11-01T14:00:00".

            Coordinated Universal Time: "2023-11-01T09:00:00Z".

            '
          format: date-time
          example: '2023-08-07T20:00:35+05:00'
        cash_amount:
          title: Cash Amount
          type: integer
          minimum: 0
          description: The cash payment amount in tyiins before any discounts are applied. A tyiin is the fractional monetary unit, equal to 1/100 of an Uzbek sum. Therefore, if the cash payment amount is 1,000 sums, the value to be transmitted should be 100,000 tyiins (1,000 * 100).
        card_amount:
          title: Card Amount
          type: integer
          minimum: 0
          description: The card payment amount in tyiins before any discounts are applied. A tyiin is the fractional monetary unit, equal to 1/100 of an Uzbek sum. Therefore, if the card payment amount is 1,000 sums, the value to be transmitted should be 100,000 tyiins (1,000 * 100).
        phone_number:
          title: Phone Number
          type: string
          maxLength: 12
          example: 998991234567
          description: 'The customer''s phone number in international format, for example, `''998940202903''`.


            It is allowed to use numbers from Russia and Kazakhstan, such as `''79991116921''`. If there is no phone number or if a number from Russia or Kazakhstan is used, cashback will not be credited.

            '
        ppt_id:
          title: PPT ID
          type: string
          description: Unique transaction identifier assigned by the payment processing center.
        card_type:
          title: Card Type
          description: "Type of card used for the transaction:\n* `1` – Corporate card  \n* `2` – Personal card\n"
          type: integer
          enum:
          - 1
          - 2
        receipt_type:
          title: Receipt Type
          default: 0
          description: "Receipt type:\n  * 0 - Sale\n  * 1 - Advance\n  * 2 - Credit\n"
          type: integer
          enum:
          - 0
          - 1
          - 2
        items:
          title: Items
          type: array
          items:
            $ref: '#/components/schemas/ReceiptDataItem'
          description: Detailed list of products or services included in the customer's cart.
    WaitingForReceiptURLResponse:
      title: Waiting For Receipt URL Response
      required:
      - message
      type: object
      properties:
        message:
          title: message
          type: string
          example: Your request was accepted, but receipt still not has been fiscalized. Retry later, please
    BadRefundRequestResponse:
      title: Bad Refund Request
      required:
      - message
      type: object
      properties:
        message:
          type: string
          example: Refund is unavailable due to expiration
    RefundAccepted:
      title: Refund Request Accepted
      required:
      - message
      - code
      type: object
      properties:
        code:
          title: Code
          type: integer
          description: "Possible values\n * 0 - Didn't receive a timely response from an ofd.soliq.uz server. Your request was accepted and receipt will be fiscalized as soon as ofd.soliq.uz is available. You can either retry request later, call /v2/receipt_url/{operation_id} method or subscribe to callbacks\n * 1 - Error occurred in communications with ofd.soliq.uz. We will retry it later. You can either retry request later, call /v2/receipt_url/{operation_id} method or subscribe to callbacks\n * 2 - Didn't fiscalized receipt yet. We're in process of retrying it. You can either retry request later, call /v2/receipt_url/{operation_id} method or subscribe to callbacks\n"
        message:
          title: Message
          type: string
          description: "Possible values\n * Didn't receive a timely response from an ofd.soliq.uz server. Your request was accepted and receipt will be fiscalized as soon as ofd.soliq.uz is available. You can either retry request later, call /v2/receipt_url/{operation_id} method or subscribe to callbacks\n * Error occurred in communications with ofd.soliq.uz. We will retry it later. You can either retry request later, call /v2/receipt_url/{operation_id} method or subscribe to callbacks\n * Didn't fiscalized receipt yet. We're in process of retrying it. You can either retry request later, call /v2/receipt_url/{operation_id} method or subscribe to callbacks\n"
          example: Didn't receive a timely response from an ofd.soliq.uz server. Your request was accepted and receipt receipt will be fiscalized as soon as ofd.soliq.uz is available. You can either retry request later, call /v2/receipt_url/{operation_id} method or subscribe to callbacks
    NoURLForPrepaidCreditReceipt:
      title: No URL For Prepaid/Credit Receipt
      required:
      - message
      type: object
      properties:
        message:
          title: message
          type: string
          example: URL for prepaid/credit receipt does not exists
x-tagGroups:
- name: API
  description: hi
  tags:
  - Check Service Status
  - Fiscalization
  - Submit QR Code Payment Receipt to Tax Authorities
- name: Testing
  tags:
  - Testing
- name: Additional information
  tags:
  - Updates