Фискальные чеки и коды ИКПУ при онлайн-оплате в Узбекистане
Практика3 минРедакция Innovialabs
Коротко
При онлайн-оплате в Узбекистане по каждой позиции заказа нужно передавать фискальные данные — код ИКПУ, код упаковки, ставку НДС и цену, — поэтому эти поля должны храниться в каталоге магазина заранее.
Короткий ответ
Когда покупатель платит онлайн, по покупке формируется фискальный чек, и налоговая видит, что именно было продано. Чтобы чек был корректным, для каждой позиции заказа магазин передает код ИКПУ (идентификационный код продукции и услуг), код упаковки (единицы измерения), ставку НДС, количество и цену. Эти данные уходят через платежную систему вместе с платежом или сразу после него. Если в каталоге их нет, интеграцию оплаты не получится довести до конца.
Что такое ИКПУ и зачем он нужен
ИКПУ (по-узбекски MXIK) — это код товара или услуги из единого национального каталога, который ведет налоговая служба. Он однозначно говорит, что за позиция в чеке: не «Футболка синяя М», а конкретная группа товаров с понятным налоговым режимом.
Зачем это нужно:
- налоговая получает структурированные данные о продажах;
- покупатель получает чек, который можно проверить;
- магазин подтверждает выручку и правильно применяет НДС и льготы.
К коду ИКПУ привязаны коды упаковки — единицы, в которых продается товар (штука, килограмм, пачка и т. д.). Их тоже нужно выбрать из справочника для конкретного ИКПУ.
Как данные проходят через платежную систему
Общая схема у разных провайдеров похожа, отличаются названия полей и момент передачи.
- Магазин создает заказ и знает состав корзины.
- При создании платежа или в ответ на запрос платежной системы магазин передает детализацию чека: список позиций с фискальными полями.
- Платежная система проводит оплату и отправляет данные для фискализации.
- Покупатель получает фискальный чек — обычно ссылкой или в приложении платежной системы.
Пример того, как может выглядеть одна позиция в детализации (названия полей условные, точный формат берите из документации своего провайдера):
{
"title": "Футболка хлопковая, размер M",
"price": 15000000,
"count": 1,
"ikpu": "00000000000000000",
"package_code": "0000000",
"vat_percent": 12
}
Обратите внимание на типичные ловушки:
- некоторые провайдеры принимают сумму в тийинах, а не в сумах;
- сумма позиций в чеке должна совпадать с суммой платежа, включая доставку и скидки;
- доставка — это отдельная услуга со своим кодом ИКПУ, а не «часть товара»;
- для маркетплейсов и комиссионной торговли может потребоваться ИНН или ПИНФЛ реального поставщика позиции.
Как подготовить каталог
Главная работа — не в коде интеграции, а в данных. Порядок действий:
- Выгрузите список товаров и услуг с текущими категориями.
- Подберите ИКПУ для каждой группы товаров в официальном каталоге. Удобно делать это по категориям, а не по каждой позиции отдельно.
- Выберите код упаковки для каждого ИКПУ.
- Уточните ставку НДС и наличие льгот вместе с бухгалтером.
- Добавьте поля в карточку товара в CMS или учетной системе, чтобы новые товары нельзя было опубликовать без этих данных.
- Заведите отдельные позиции для доставки, упаковки и других услуг, которые попадают в чек.
| Поле | Где хранить | Кто отвечает |
|---|---|---|
| ИКПУ | Карточка товара или категория | Бухгалтер, контент-менеджер |
| Код упаковки | Карточка товара | Контент-менеджер |
| Ставка НДС | Карточка товара или настройки | Бухгалтер |
| ИНН/ПИНФЛ поставщика | Карточка поставщика | Менеджер по партнерам |
Если товары ведутся в 1С или другой учетной системе, лучше хранить фискальные поля там и синхронизировать с сайтом, чем заполнять их в двух местах.
Частые ошибки
- Один «универсальный» ИКПУ на весь каталог — чек формально проходит, но данные неверны.
- Скидка не распределена по позициям, и сумма чека не сходится с платежом.
- Доставка не попадает в чек.
- Новые товары добавляются без фискальных полей, и оплата по ним падает с ошибкой.
- Не проверены возвраты: при возврате тоже должен формироваться корректный чек.