Чеки при оплате в приложении: схема работы, ошибки и запуск

чеки при оплате в приложении — При оплате в мобильном приложении формируйте чек по факту расчёта, а не при создании заказа. Для полной онлайн-оплаты это подтверждённое принятие денег. Для предоплаты потребуется отдельный чек при поступлении денег и отдельный чек зачёта предоплаты при передаче товара или оказании услуги.

Приложение не заменяет ККТ. Оно передаёт данные в вашу фискальную схему, ККТ формирует фискальный документ, а ОФД передаёт сведения в налоговый контур. Базовые правила применения ККТ установлены Федеральным законом № 54-ФЗ; официальные сервисы и материалы доступны на сайте ФНС России.

Когда формировать чек при оплате в приложении

Привязывайте фискализацию к конкретному событию расчёта. Корзина, созданный заказ, неуспешное списание и отмена до принятия денег не требуют кассового чека.

Для каждого события назначьте один источник фискального запроса: например, сервер приложения или кассовый сервис. ККТ либо облачная ККТ формирует документ, а платёжный провайдер может передавать статус оплаты и идентификатор платежа. Если один и тот же платёж отправляют в кассу и сервер приложения, и эквайринг, вы получите риск двойного чека.

Четыре сценария, которые нужно разделить

1. Полная онлайн-оплата товара или услуги

Клиент оплатил заказ картой, через СБП или другим дистанционным способом, а товар либо услуга предоставляются в рамках этого расчёта. После подтверждения оплаты отправьте в ККТ состав заказа и сформируйте чек с признаком способа расчёта «полный расчёт».

Не передавайте только итоговую сумму. В запросе должны быть позиции, количество, цена, скидка, доставка при наличии, сумма и контакт покупателя для электронного чека.

2. Предоплата с последующей доставкой или оказанием услуги

Если деньги поступили до передачи товара или оказания услуги, при поступлении денег сформируйте чек с признаком способа расчёта, соответствующим вашей модели предоплаты. Когда товар передан покупателю или услуга оказана, сформируйте второй документ — чек зачёта предоплаты.

Не заменяйте второй чек повторной фискализацией первоначальной оплаты. В карте событий заранее укажите, какое событие подтверждает передачу: статус вручения, выдача заказа, активация доступа или завершение услуги.

3. Оплата курьеру при вручении

Если клиент платит курьеру при получении, чек формируйте в момент фактического приёма денег. Не создавайте чек на этапе сборки или передачи заказа в доставку.

Если до доставки была внесена предоплата, разделите операции: первый чек — на поступившую предоплату, далее — зачёт предоплаты и доплата при вручении, если она есть. Смешивание этих событий в один статус «заказ оплачен» приводит к неверным документам.

4. Полный и частичный возврат

При возврате денег покупателю сформируйте документ «возврат прихода» на возвращаемую сумму и позиции. Для частичного возврата передавайте только возвращаемые товары или услуги, их количество и сумму.

Возврат в эквайринге без кассового документа оставляет расхождение между деньгами и фискальными данными. Порядок поиска таких расхождений разобран в статье «Расхождение кассы и эквайринга: как найти причину и исправить».

Что передавать из приложения в кассу

Передавайте в ККТ номенклатуру, цену, количество, сумму, признак предмета расчёта, признак способа расчёта, форму оплаты и контакт покупателя для отправки электронного чека. Номер заказа и идентификатор платежа эквайринга добавляйте как служебные связки для поиска операции.

Храните связку «заказ — платёж — фискальный документ». Она позволяет быстро ответить на три вопроса: деньги приняты, чек сформирован, возврат оформлен.

Добавьте идемпотентность в обработчик уведомлений. При повторном webhook от эквайринга система должна вернуть результат уже созданного документа, а не направить вторую команду на фискализацию.

Платёжный модуль и его статусы нужно настроить до кассовой интеграции. Используйте пошаговый материал как подключить интернет-эквайринг для магазина и сервиса.

Как выбрать схему фискализации

Критерий ККТ в торговой точке Облачная касса Фискализация в платёжном решении
Подходит, если Есть постоянная офлайн-точка и кассир Основные оплаты проходят в приложении или на сайте Провайдер берёт на себя фискальную часть по договору
Масштаб Удобнее при небольшом числе онлайн-заказов и работе точки по графику Удобнее при круглосуточных и удалённых онлайн-расчётах Подходит при совместимости вашего сценария с возможностями провайдера
Стоимость владения Оборудование, ФН, обслуживание и поддержка рабочего места Аренда или сервис ККТ, ФН, ОФД и интеграция Тариф сервиса и условия фискализации; сравните с отдельной ККТ
Офлайн-продажи Подходит для продаж на кассе Потребуется отдельное решение для точки или связанный сценарий Проверьте, поддерживает ли сервис офлайн-расчёты
Возвраты Кассир или учётная система отправляет «возврат прихода» Возврат запускается через API или личный кабинет Уточните, кто инициирует возврат и где виден статус документа
Ответственность поддержки Продавец отвечает за связку кассы и приложения Разделите ответственность между разработчиком и кассовым сервисом Зафиксируйте в договоре, кто устраняет сбой и кто формирует документ

Выбирайте решение по потоку расчётов, а не по названию услуги. Если вам нужна облачная фискализация для приложения, обратитесь в Интернет Касса: разберём оплату, предоплату, выдачу заказа и возвраты до начала разработки интеграции.

Пошаговый запуск

  1. Составьте карту событий. Отдельно внесите полную оплату, предоплату, передачу товара или услуги, доплату, отмену до списания, полный и частичный возврат.
  2. Укажите документ для каждого события. Для полной оплаты — чек полного расчёта; для поступления предоплаты — чек предоплаты; для исполнения — чек зачёта предоплаты; для возврата денег — «возврат прихода».
  3. Назначьте источник команды. Выберите одну систему, которая отправляет фискальный запрос на конкретное событие, и исключите параллельную отправку из других систем.
  4. Настройте состав данных. Передавайте позиции, суммы, признаки расчёта, контакты, номер заказа и идентификатор платежа.
  5. Подключите ККТ, ОФД и эквайринг. Проверьте, что статусы платежа доходят до назначенного источника фискального запроса.
  6. Проведите тесты до релиза. Сверьте документы в кассовом кабинете, ОФД, эквайринге и в карточке заказа.

Ошибки, из-за которых чеки не сходятся

Фискализация по созданию заказа. В кассу уходят неоплаченные корзины. Исправление: запускайте кассовый сценарий только по событию, которое соответствует вашему фактическому расчёту.

Нет чека зачёта предоплаты. Деньги фискализированы при заказе, но товар выдан позднее без второго документа. Исправление: передайте в кассу событие выдачи или оказания услуги и настройте отдельный сценарий зачёта.

Два источника отправляют один платёж. Эквайринг и сервер приложения одновременно создают запрос в ККТ. Исправление: оставьте один источник команды и используйте уникальный ключ операции.

Возврат проведён только в банке. Покупатель получил деньги, но в кассе нет «возврата прихода». Исправление: включите кассовый возврат в тот же бизнес-процесс, что и возврат в эквайринге.

В чеке не совпадают позиции и сумма. После оплаты меняются скидка, доставка или состав заказа. Исправление: фискализируйте сохранённый снимок оплаченного заказа, а изменения после оплаты оформляйте отдельными событиями.

Проверка перед релизом

  • Полная онлайн-оплата: правильный тип документа, признак «полный расчёт», позиции и сумма.
  • Предоплата: первый чек на поступление денег и второй — на зачёт предоплаты при выдаче товара или оказании услуги.
  • Отмена до успешного списания: кассовый документ не создаётся.
  • Полный возврат: формируется «возврат прихода» на всю возвращаемую сумму.
  • Частичный возврат: в документе только возвращаемые позиции и корректная сумма.
  • Электронный чек: контакт покупателя принят, чек отправлен, документ виден в ОФД.
  • Повторное уведомление: второй чек не появляется.

Для бизнеса, который совмещает приложение и офлайн-продажи, дополнительно пригодится материал об онлайн-кассе для ИП: выборе ККТ, запуске и контроле чеков. Если нужна рабочая карта интеграции, оставьте заявку в Интернет Касса — поможем выбрать схему и подготовить тестовые сценарии для разработчика.

Частые вопросы

Нужен ли чек, если клиент оплатил заказ в приложении?

Да, сформируйте чек после подтверждённого расчёта с покупателем за товар, работу или услугу. Для предоплаты и последующей передачи товара нужны разные кассовые события: чек предоплаты и чек зачёта предоплаты.

Нужно ли формировать чек при отмене платежа?

Нет, не формируйте чек, если списание не завершилось и деньги не были приняты. Если расчёт уже состоялся и деньги возвращаются покупателю, сформируйте кассовый документ «возврат прихода».

Кто формирует чек: приложение, касса или платёжный сервис?

Назначьте один источник фискального запроса на каждое событие, а фискальный документ формирует ККТ или облачная ККТ. Сервер продавца, кассовый сервис или платёжная интеграция могут инициировать запрос, но два источника на один платёж создадут дубли.

Можно ли отправлять чек только на e-mail, без SMS?

Да, направьте электронный чек на e-mail покупателя. Получите e-mail до расчёта и передайте его в кассовую интеграцию; если покупатель сообщил телефон, используйте номер телефона для отправки.

Что проверить перед запуском оплаты в приложении?

Проведите полную оплату, предоплату с зачётом, полный возврат и частичный возврат. В каждом тесте проверьте тип документа, признак расчёта, номенклатуру, сумму, доставку чека, запись в ОФД и отсутствие дубля.