Открывая интернет-магазин, предприниматель обычно думает о дизайне, фотографиях товаров и кнопке оплаты. О фискальном чеке вспоминают позже — после первой проверки или вопроса покупателя «а где чек?». Между тем в Узбекистане продажи потребителям, в том числе через интернет, должны сопровождаться фискальным чеком, зарегистрированным в налоговых органах. Разберём, как работают виртуальная касса и фискализация через Click и Payme.
Что такое фискальный чек и при чём здесь онлайн-продажи
Фискальный чек подтверждает, что данные о продаже переданы в налоговую систему. В обычном магазине его печатает онлайн-ККМ, а в интернет-магазине эту роль выполняет виртуальная касса или сервис, работающий через оператора фискальных данных (ОФД). В чеке указаны продавец, каждая позиция, цена, налог и способ оплаты, а QR-код позволяет покупателю проверить его подлинность в налоговой службе.
В онлайн-торговле нет кассира: чек формируется в электронном виде при списании денег и приходит покупателю по SMS, email или в приложении. Если сайт принимает оплату, но чек не выдаёт, продажа остаётся неучтённой, а это грозит штрафами.
Как работает фискализация через платёжную систему
Click, Payme и другие крупные платёжные системы предлагают продавцам фискализацию. Магазин передаёт вместе с запросом на оплату состав корзины, а после оплаты провайдер формирует электронный чек и отправляет покупателю ссылку или QR-код.
Но «автоматически» не значит «без участия магазина». Провайдер превращает в чек только то, что вы прислали: если код товара неверный или суммы не сходятся, чек выйдет с ошибкой или не выйдет вовсе. Основная ответственность остаётся за кодом сайта и каталогом товаров.
Какие данные нужны для каждой позиции
Каждая строка чека — отдельный товар или услуга. Главное поле — код ИКПУ (MXIK) из национального классификатора; его ищут по названию товара на tasnif.soliq.uz. Вместе с ним указывается код упаковки или единицы измерения.
| Поле | Значение |
|---|---|
| Код ИКПУ (MXIK) | Код товара или услуги по национальному классификатору |
| Код упаковки / единицы | Штука, килограмм, услуга и т. д., привязан к ИКПУ |
| Цена и количество | Цена за единицу и число единиц; суммы обычно в тийинах |
| Скидка | Сумма скидки, относящаяся к этой позиции |
| Ставка НДС | Зависит от налогового режима продавца |
| Код маркировки | Для товаров с обязательной маркировкой |
Пример состава заказа
JSON ниже — иллюстрация с обобщёнными именами полей, а не API конкретной платёжной системы. Точный формат — в документации провайдера.
{
"order_id": "SMQ-10425",
"total": 36520000,
"items": [
{
"title": "Хлопковая рубашка, размер M",
"mxik": "КОД_ИКПУ",
"package_code": "КОД_УПАКОВКИ",
"price": 18900000,
"count": 2,
"discount": 3780000,
"vat_percent": 12
},
{
"title": "Услуга доставки",
"mxik": "КОД_ИКПУ_УСЛУГИ",
"package_code": "КОД_УПАКОВКИ",
"price": 2500000,
"count": 1,
"discount": 0,
"vat_percent": 12
}
]
}
Сумма всех строк (цена × количество минус скидка) должна совпадать с общей суммой платежа до тийина, иначе многие системы отклонят оплату или сформируют чек с ошибкой.
Пример: магазин одежды в Самарканде
Небольшой магазин одежды в Самарканде принимает оплату на сайте через Payme. Покупатель берёт две хлопковые рубашки по 189 000 сумов, применяет промокод на 10% и выбирает доставку за 25 000 сумов. Скидка в 37 800 сумов распределяется на строку с рубашками, поэтому в чеке две позиции: рубашки на 340 200 сумов и доставка на 25 000 сумов, итого 365 200 сумов.
Через неделю покупатель возвращает одну рубашку, и магазин вместе с возвратом денег формирует чек возврата на 170 100 сумов — это реальная цена одной рубашки после скидки. Без него продажа останется учтённой полностью.
Наличные и оплата курьеру
Если покупатель платит при получении, чек должен выдаваться в месте оплаты, то есть у курьера должна быть мобильная или виртуальная касса. Другой вариант — терминал или ссылка на оплату картой, тогда чек формирует платёжная система.
Типичные ошибки
- Одна общая строка «Оплата заказа» вместо перечня товаров.
- Неверный ИКПУ, например код электроники для одежды.
- Доставка не выделена отдельной строкой, из-за чего суммы не сходятся.
- Ошибки округления при распределении скидки — расхождение в несколько тийинов.
- Нет чека возврата.
Что подготовить до запуска
- Найдите ИКПУ и код упаковки для каждого товара и услуги и храните их в отдельных полях каталога.
- Подключите фискализацию у платёжной системы и изучите формат полей в её документации.
- Считайте суммы в тийинах и распределяйте скидку по строкам с учётом остатка округления.
- Сохраняйте ссылку на чек в истории заказа.
- Протестируйте возвраты, включая частичные.
Уведомления (callback) платёжной системы теряются, если сервер недоступен, поэтому важен надёжный хостинг. sayt.uz предоставляет хостинг для интернет-магазинов и помогает с настройкой интеграции Click и Payme. И помните, что фискальные требования периодически обновляются: перед запуском проконсультируйтесь с бухгалтером и сверьтесь с актуальной документацией провайдера.