Skip to content

Фискализация чеков

Платежная система (ПС) OCTO предоставляет услугу фискализации чеков для магазинов.

Регистрация фискальных данных

Мерчанту необходимо предварительно зарегистрировать фискальные данные в базе данных OCTO.

Последовательность регистрации следующая:

  1. Мерчант предоставляет персональному банковскому менеджеру информацию по товару:
  • Полное название магазина.
  • ИНН/PINFL мерчанта(inn или pinfl).
  • Код упаковки(package_code).
  • Код ИКПУ(spic).
  • Информация о наличии НДС на товар(nds).
  1. Банковский менеджер вносит данные по товару в базу данных OCTO.

  2. После внесения данных в базу, мерчант может отправлять внесенные данные в параметре basket метода prepare_payment.

Примечание:

Если мерчант будет отправлять в параметре basket данные, не внесённые в базу данных, то в ответ он получит ошибку следующего вида:

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. Для более подробного ознакомление свяжитесь с технической поддержкой сервиса"
}

Указание email или телефона

При инициации платежа (/prepare_payment) Партнёр обязан передать в параметре user_data один из следующих элементов:

  • Email: Для отправки чека с ссылкой на фискальный чек, зарегистрированный в ГНК.
  • Номер телефона: Для регистрации фискального чека на данный номер в ГНК.

Изменения в процессе фискализации с 01.08.2025

Техническая команда OCTO внесла изменения в процесс фискализации по методу prepare_payment в целях повышения удобства использования и в соответствии с нормативными требованиями Государственного налогового комитета (ГНК).

  • для юридических лиц изменен на следующий:
json
{
  "position_desc": "Solyonaya ili solonovataya ryba",
  "count": 1,
  "price": 100.0,
  "spic": "00305001001000000",
  "inn": "123456",
  "package_code": "1425207",
  "nds": 1
}
  • для ИП(физических лиц) изменен на следующий:
json
{
  "position_desc": "Solyonaya ili solonovataya ryba",
  "count": 1,
  "price": 100.0,
  "spic": "00305001001000000",
  "pinfl": "123451246",
  "package_code": "1425207",
  "nds": 1
}

Примечание:

Изменения не затрагивают мерчантов оказывающих услуги по одному виду товара. Для данных мерчантов как и ранее нет необходимости отправлять параметр basket. Система Octo будет использовать активные товара добавленные, с помощью личного кабинета, менеджером мерчанта. Система выберет первый из активных товаров и отправит данные на фискализацию по данному товару.

Метод получение данных фискального чека /fiscal-data

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

Пример запроса

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

Параметры запроса

ПараметрТипОбязательностьОписание
octo_shop_idIntegerДаУникальный ID магазина (доступен в личном кабинете магазина).
octo_secretStringДаПерсональный секретный ключ магазина.
payment_uuidStringДаУникальный идентификатор платежа, созданный системой OCTO.

Пример успешного ответа

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"
    }
}

Параметры успешного ответа

ПараметрТипОбязательностьОписание
errorIntegerДаКод ошибки.
errMessageStringДаСообщение об ошибке.
dataObjectНетОсновные данные транзакции.
phoneStringДаНомер телефона пользователя.
codeIntegerДаКод подтверждения операции.
messageStringДаСообщение о статусе операции.
terminalIDStringДаИдентификатор терминала, на котором была проведена операция.
receiptIdIntegerДаИдентификатор чека для операции.
dateTimeStringДаДата и время операции в формате YYYYMMDDHHMMSS.
fiscalSignStringДаФискальный признак документа.
qrCodeURLStringДаURL для доступа к QR-коду чека.

Пример неуспешного ответа

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