Skip to content

Fiscalization of Receipts

OCTO's Payment System (PC) provides receipt fiscalization services for shops.

Registration of Fiscal Data

The merchant must pre-register fiscal data in the OCTO database.

The registration sequence is as follows:

  1. The merchant provides the personal banking manager with product information:
  • Full name of the store.
  • Merchant's TIN or PINFL(inn или pinfl).
  • Package code(package_code).
  • SPIC code(spic).
  • Information on whether the product includes VAT(nds).
  1. The banking manager enters the product data into the OCTO database

  2. After the data is entered, the merchant can send the registered data in the basket parameter of the prepare_payment method.

Note:

If the merchant sends data in the basket parameter that has not been entered into the database, the response will return an error like the following:

json
{
  "error": 403,
  "errMessage": "Fiscal object with merchant ID 242 spic : 00305001001000000 package code : 1425207 nds : 1 inn : 123456 pinfl : null not contains in system",
  "data": null,
  "errorMessage": "Fiscal object with merchant ID 242 spic : 00305001001000000 package code : 1425207 nds : 1 inn : 123456 pinfl : null not contains in system",
  "apiMessageForDevelopers": "Поле errorMessage устарело, просим перейти на errMessage для унификации ответов. Так же пожалуйста знайте, что в дальнейшем все поля кроме error и errMessage будут передаваться в data. Для более подробного ознакомление свяжитесь с технической поддержкой сервиса"
}

Providing Email or Phone Number

When initiating a payment (/prepare_payment), the Partner must include one of the following elements in the user_data parameter:

  • Email: To send a receipt containing a link to the fiscal receipt registered with the State Tax Committee.
  • Phone Number: To register the fiscal receipt with the State Tax Committee under the provided number.

Changes in the fiscalization process starting from 01.08.2025:

The OCTO technical team has made changes to the fiscalization process using the prepare_payment method to improve user convenience and to comply with the regulatory requirements of the State Tax Committee (STC).

  • For legal entities, it will be changed to the following:
json
{
  "position_desc": "Salted or brackish water fish",
  "count": 1,
  "price": 100.0,
  "spic": "00305001001000000",
  "inn": "123456",
  "package_code": "1425207",
  "nds": 1
}
  • For individual entrepreneurs(private persons), it will be changed to the following:
json
{
  "position_desc": "Salted or brackish water fish",
  "count": 1,
  "price": 100.0,
  "spic": "00305001001000000",
  "pinfl": "123451246",
  "package_code": "1425207",
  "nds": 1
}

Note:

The changes do not affect merchants who provide services for a single type of product. These merchants, as before, are not required to send the basket parameter. The Octo system will use the active products added by the merchant’s manager via the personal account. The system will select the first active product and send its data for fiscalization.

Method for Retrieving Fiscal Receipt Data /fiscal-data

  • URL: https://secure.octo.uz/fiscal-data
  • Method: POST
  • Content-type: application/json

Request Example

json
{
    "octo_shop_id": 10000,
    "octo_secret": "2d45df74-bb95-47cf-a616-8d6dcee2e10d",
    "payment_uuid": "1145df74-bb95-47cf-a616-8d6dcee2e222"
}

Request Parameters

ParameterTypeRequiredDescription
octo_shop_idIntegerYesThe shop's unique ID, available in the shop's Personal Account.
octo_secretStringYesThe shop's personal secret key, generated in the shop's Personal Account.
payment_uuidStringYesThe unique payment ID, generated by the OCTO system.

Successful Response Example

json
{
    "error": 0,
    "errMessage": "",
    "data": {
        "phone": "998781290011",
        "code": 0,
        "message": "accepted",
        "terminalID": "EZ000000000102",
        "receiptId": 2121,
        "dateTime": "20220929013159",
        "fiscalSign": "420808230750",
        "qrCodeURL": "https://ofd.soliq.uz/epi?t=EZ000000000102&r=2121&c=20220929013159&s=420808230750"
    }
}

Successful Response Parameters

ParameterTypeRequiredDescription
errorIntegerYesError code.
errMessageStringNoError message, if any.
dataObjectNoMain transaction data.
phoneStringYesUser’s phone number.
codeIntegerYesConfirmation code for the operation.
messageStringYesStatus message of the operation.
terminalIDStringYesID of the terminal where the operation was performed.
receiptIdIntegerYesReceipt ID for the operation.
dateTimeStringYesDate and time of the operation in YYYYMMDDHHMMSS format.
fiscalSignStringYesFiscal sign of the document.
qrCodeURLStringYesURL for accessing the QR code of the receipt.

Unsuccessful Response Example

json
{
    "error": 1,
    "errMessage": "wrong secret",
    "data": null
}

Unsuccessful Response Parameters

ParameterTypeRequiredDescription
errorIntegerYesError code.
errMessageStringYesError message.
dataObjectNoMain transaction data, if available.

Note

Ensure the octo_secret is securely stored and inaccessible on the shop’s website to avoid misuse. For additional details or troubleshooting, contact technical support.