Как оформить кассовый чек при оплате через СБП в интернет-магазине

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

Автор: Александр Пылев, Основатель Интернет Касса.

Рабочая схема для сайта: банк или платежный агрегатор подтверждает успешную оплату на сервере → сайт передает данные заказа в кассовый сервис → ККТ формирует чек → сведения уходят в ОФД. Для направления электронного чека покупатель должен предоставить номер телефона или email до расчета.

Когда чек нужен при оплате через СБП

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

При интернет-расчете без непосредственного взаимодействия с покупателем чек формируют не позднее рабочего дня, следующего за днем расчета, но до передачи товара. Однако в интеграции ставьте создание чека сразу после серверного подтверждения успешной оплаты: так платеж не потеряется в очереди, при сбое webhook или ручной сверке.

Не создавайте чек по нажатию кнопки «Оплатить», открытию QR-кода, переходу в банковское приложение или возврату клиента на страницу «Спасибо». Эти действия не подтверждают поступление денег. Триггер для кассы — уведомление банка или агрегатора о завершенном платеже, полученное и проверенное вашим сервером.

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

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

Как оформить чек в сценариях бизнеса

1. Интернет-магазин: СБП на странице оплаты

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

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

2. Сервис услуг: разовая оплата, аванс и возврат

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

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

3. QR-код в офлайн-точке

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

Не откладывайте чек по оплате в торговой точке или на выезде «до вечера». Используйте ККТ в месте расчета либо заранее внедрите технически проверенный сценарий для выездной работы. Выбор оборудования для офлайн-продаж разобран в материале как выбрать кассу для розничного магазина.

Как связать СБП, онлайн-кассу и ОФД

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

В кассу передавайте:

  • номер заказа и внутренний идентификатор клиента;
  • наименование, количество и цену каждой позиции;
  • сумму заказа и ставку НДС, если она применяется;
  • признак предмета расчета и признак способа расчета;
  • форму оплаты для безналичного расчета;
  • телефон или email, если покупатель предоставил их до расчета;
  • референс СБП или другой идентификатор платежа.

Не заменяйте состав корзины одной строкой «Оплата заказа», если кассовый сервис принимает номенклатуру. Передавайте реальные позиции: это упрощает сверку продаж, возвраты и ответы покупателю.

В карточке заказа храните номер заказа, референс СБП, ID webhook, ID запроса в кассу, номер фискального накопителя, номер фискального документа и фискальный признак. Тогда поддержка найдет чек по заказу, времени платежа или банковскому идентификатору.

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

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

Схема Что проверить Преимущество Кому подходит
Готовая связка банка или агрегатора с кассой Передачу позиций, контакта, статусов оплаты и возврата Быстрый старт при типовой CMS Небольшому магазину со стандартной корзиной
Агрегатор и отдельная облачная касса Кто повторяет запросы, разбирает ошибки и ищет чек Можно отдельно выбрать платежный и кассовый сервис Магазину с несколькими способами оплаты
Прямая интеграция с облачной кассой Очередь запросов, идемпотентность, авансы и возвраты Контроль реквизитов и бизнес-логики SaaS и сервисам с нестандартными расчетами
Собственная платежная и кассовая интеграция Мониторинг, журнал событий, резервирование и поддержку Максимальная гибкость Компании со своей командой разработки и большим потоком платежей

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

Пошаговый запуск без срывов чеков

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

Ошибки, которые приводят к пропущенным или лишним чекам

  • Чек создается по клику «Оплатить». Исправление: запускайте фискализацию по подтвержденному серверному статусу платежа.
  • Один webhook создает два чека. Исправление: используйте уникальный ID платежа и проверяйте, был ли чек уже создан, до повторного запроса.
  • Платеж есть, чека нет. Исправление: настройте очередь повторных запросов и уведомление ответственному при ошибке кассового сервиса.
  • Не сохраняется референс СБП. Исправление: записывайте его в заказ и внутренний журнал операций.
  • Возврат оформляется без исходного заказа. Исправление: запускайте возврат из карточки заказа и создавайте в ККТ «возврат прихода» при возврате денег.
  • Покупатель не получил электронный чек. Исправление: проверьте, был ли телефон или email предоставлен до расчета, а также статус отправки и корректность контакта.

Что проверить перед запуском

У банка или агрегатора запросите описание статусов СБП, формат и способ проверки webhook, порядок возвратов, доступные идентификаторы платежа и правила повторной доставки уведомлений. У кассового сервиса проверьте регистрацию ККТ, связь с ОФД, передачу номенклатуры, журнал документов и сценарии предоплат с возвратами.

Разработчику дайте конкретное ТЗ: какой статус создает чек, какие поля уходят в ККТ, как защищен webhook, где хранятся идентификаторы, как обрабатываются повторы и кто получает уведомление об ошибке. Бухгалтеру передайте схему предоплат и возвратов, а поддержке — инструкцию поиска чека по заказу и референсу.

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

Нужна готовая связка для интернет-продаж? Оставьте заявку в Интернет Касса: подключим СБП, облачную кассу и ОФД либо возьмем на сопровождение интеграцию платежей, чеков и возвратов.

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

Нужно ли выдавать чек при оплате через СБП?

Да, если продавец применяет ККТ и принимает через СБП оплату за товар, работу или услугу, чек нужен. Сам способ оплаты через СБП не освобождает от применения ККТ; исключения возможны только при законном освобождении.

Можно ли пробить чек на следующий день после оплаты по СБП?

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

Почему при оплате через СБП не приходит чек?

Проверьте, получил ли кассовый сервис успешный статус платежа и передал ли покупатель телефон или email до расчета для электронной отправки чека. Частые причины — не доставлен webhook, запрос в кассу завершился ошибкой или контакт не сохранен в заказе.

Можно ли по референсу СБП найти фискальный чек?

Да, если референс СБП сохранен в карточке заказа вместе с идентификатором запроса в кассу и реквизитами фискального документа. Если связка не настроена, ищите операцию по номеру заказа, сумме и времени платежа в платежном кабинете, кассовом сервисе и ОФД.