сайт с оплатой и онлайн-кассой — Сайт с оплатой запускают не с дизайна, а с цепочки «заказ — подтвержденный платеж — чек — ОФД — возврат». Такой порядок нужен интернет-магазину, сервису записи, подписке и бизнесу, который выставляет клиентам платежные ссылки. Сначала опишите каждый расчет, затем выберите эквайринг и ККТ, а после этого подключайте кнопку оплаты.
Автор: Александр Пылев, Основатель Интернет Касса.
Компания «Интернет Касса» помогает собрать эту связку под продажи товаров, услуг и подписок: определить сценарии предоплаты и возврата, выбрать формат ККТ, связать сайт с платежной формой и подготовить тесты. На выходе вы получите карту интеграции, список обязательных статусов заказа и понятный регламент контроля платежей и чеков.
Требования к применению ККТ устанавливает Закон № 54-ФЗ. Официальные материалы и сервисы доступны на сайте ФНС России; практическую основу по применению ККТ также собрали в статье «54-ФЗ для бизнеса: когда нужна ККТ и как запустить работу с чеками».
Создайте таблицу всех способов оплаты. Для каждой строки укажите товар или услугу, плательщика, источник заказа, способ оплаты, момент расчета, тип оплаты, ККТ, сценарий возврата и ответственного сотрудника. Не записывайте все как «онлайн-оплата»: аванс на сайте, доплата по ссылке и банковский перевод между двумя ООО требуют разных статусов и проверок.
В рабочей схеме есть три источника данных:
Источником истины для статуса оплаты должен быть серверный webhook платежного провайдера. Редирект покупателя на страницу «Оплата успешна» показывает только результат в браузере: пользователь может закрыть вкладку, а запрос может не дойти до вашего сайта. Банковское уведомление тоже не заменяет событие от эквайринга.
Обработчик webhook должен проверять подпись уведомления по правилам провайдера, сверять сумму и номер заказа, сохранять идентификатор платежа и работать идемпотентно. Идемпотентность означает простой результат: повторное уведомление по уже обработанному платежу не меняет заказ и не создает второй чек.
Передавайте из корзины в платежный и кассовый контур наименования, количество, цены, скидки, стоимость доставки и контакт покупателя. После webhook со статусом успешной оплаты сервис меняет статус заказа и отправляет его позиции в кассу. Не создавайте чек по одной сумме из платежа, если заказ содержит несколько товаров.
При выдаче уже оплаченного заказа не пробивайте второй чек на всю сумму. Если оплата была предоплатой, настройте отдельный сценарий ее зачета при окончательном расчете. Для товарного бизнеса используйте материал «Касса для интернет-магазина: как выбрать решение под ваш сценарий продаж».
Создавайте платежную ссылку из конкретного заказа. В заказе должны быть номер, услуга, сумма, срок действия ссылки и контакт клиента. Например, вместо ссылки со свободной суммой «Оплата услуг» создайте заказ «Консультация по договору, 1 час — 5 000 ₽» и передайте именно эту позицию в кассу.
Если итоговая цена появляется после согласования работ, сначала подтвердите заказ, затем создайте ссылку с согласованной суммой. Такая последовательность снижает число ручных исправлений и упрощает сверку.
Разделите первый платеж и каждое последующее списание. Для каждого платежа храните тариф, период, сумму, идентификатор операции и статус доступа. Затем настройте отдельное формирование чека на каждое успешное списание. Детали схемы разобраны в статье о запуске рекуррентных платежей.
Разделите в заказе аванс, доплату и окончательный расчет. Безналичные расчеты между организациями и ИП без предъявления электронного средства платежа не требуют применения ККТ по пункту 9 статьи 2 Закона № 54-ФЗ. Однако карта, платежная ссылка или платежная форма не становятся таким исключением только потому, что в заказе указано ООО.
Для агентской схемы, маркетплейса или оплаты физлицом за организацию проверьте договоры и роль каждого участника до включения приема денег. Здесь важно заранее определить, от чьего имени формируется чек.
Сравнивайте не канал продаж, а способ подключения и объем операций, которые останутся у сотрудников. Тарифы и сроки подключения зависят от провайдера и набора интеграций, поэтому запрашивайте их после того, как определили сценарий.
| Критерий | Платежная ссылка + облачная ККТ | Корзина + эквайринг + облачная ККТ | Корзина + эквайринг + собственная ККТ |
|---|---|---|---|
| Кому подходит | Услуги, запись, согласованные заказы, небольшой каталог | Интернет-магазин, сервис, подписка, регулярный поток онлайн-заказов | Бизнес с действующей ККТ и технической возможностью поддерживать ее работу |
| Как создается платеж | Ссылка создается из конкретного заказа | Покупатель оплачивает заказ в корзине или на платежной странице | Покупатель оплачивает заказ в корзине или на платежной странице |
| Роль ККТ | Формирует чек по данным заказа после подтверждения оплаты | Формирует чек автоматически по данным заказа и webhook | Формирует чек через настроенную интеграцию с сайтом |
| Ручные операции | Создание заказа и ссылки; при хорошем обмене чек создается автоматически | Минимальны после настройки статусов и интеграции | Нужен контроль доступности кассы, фискального накопителя и интеграции |
| Что требуется от интеграции | Связать заказ, ссылку, webhook и передачу позиций в кассу | Передавать состав заказа, проверять webhook, обрабатывать повторы и возвраты | То же, плюс обеспечить доступность собственной ККТ и ее программного контура |
| Возврат | Возврат денег в эквайринге + чек возврата прихода | Возврат денег в эквайринге + чек возврата прихода | Возврат денег в эквайринге + чек возврата прихода |
| Главный риск | Свободная сумма без конкретной номенклатуры | Чек по редиректу покупателя или дубль при повторном webhook | Недоступность кассы или ручная обработка с пропусками |
| Стоимость и срок | Сравните тариф эквайринга, ККТ, ОФД и стоимость интеграции | Сравните тариф эквайринга, ККТ, ОФД и стоимость разработки | Учтите оборудование, ФН, ОФД, поддержку и доработку интеграции |
Платежный сервис не всегда берет на себя фискализацию. До подписания договора зафиксируйте, кто передает данные в ККТ, кто отвечает за ошибки обмена, как запускаются возвраты и какие статусы доступны через API. Для дистанционных продаж подробнее сравните варианты в инструкции «Облачная онлайн-касса: выбор, запуск и типовые сценарии для бизнеса».
Возврат нельзя считать завершенным после одного клика менеджера. Сначала создайте возврат по исходному платежу в эквайринге. Затем сформируйте чек возврата прихода в кассовой системе по данным исходного заказа. После этого проверьте финальный статус возврата у эквайера и наличие фискального документа в ККТ и ОФД.
Свяжите возврат с номером заказа, идентификатором исходного платежа и идентификатором операции возврата. Это позволит быстро найти ситуацию, когда деньги вернули, а чек не сформировался, или когда чек есть, но возврат был отклонен банком.
Тест перед запуском не заменяет регулярную сверку. Минимальный регламент — сравнивать за выбранный период три списка: оплаченные заказы в CMS или CRM, успешные платежи в кабинете эквайринга и фискальные документы в кассе или ОФД.
Доступ к кабинету ОФД и журналу ошибок должен быть у конкретного ответственного сотрудника. Если расчет уже оформлен с ошибкой, используйте алгоритм исправления, а не создавайте новые чеки наугад: порядок разобран в статье «Как сделать чек коррекции на кассе: пошаговая инструкция и частые ошибки».
Статус «оплачено» ставят после редиректа покупателя. Исправление: меняйте статус только после проверенного серверного webhook от платежного провайдера.
Повторный webhook создает второй чек. Исправление: храните идентификатор платежа, результат обработки и блокируйте повторную фискализацию одной операции.
Чек пробивает менеджер по уведомлению банка. Исправление: передавайте подтвержденный платеж и состав заказа в кассу автоматически. Ручной режим оставляйте как аварийный, с обязательной записью в журнал сверки.
Ссылка принимает любую сумму. Исправление: создавайте ссылку из заказа. Если клиент должен назвать сумму сам, до оплаты сформируйте заказ с понятным назначением и конкретной позицией для чека.
Предоплату повторно пробивают при выдаче. Исправление: разведите предоплату, зачет предоплаты и окончательный расчет в статусах заказа и проведите тест одного заказа от аванса до исполнения.
Возврат существует только в инструкции менеджера. Исправление: настройте возврат денег через эквайринг и чек возврата прихода как связанные, но отдельно контролируемые действия.
Нужен сайт с оплатой, эквайрингом и ККТ в одной схеме? Обратитесь в Интернет Касса. Разберем ваш сценарий продаж — корзину, ссылку, подписку или B2B-счет, определим роль эквайринга и ККТ, подготовим карту webhook и статусов, а также список тестов и сверок перед запуском.
Да, при продаже товаров или услуг физлицам с оплатой на сайте, по ссылке или через QR-код нужна ККТ, если расчет не подпадает под исключение из 54-ФЗ. До первой оплаты настройте передачу состава заказа в кассу и закрепите в договорной схеме, кто формирует чек.
Да, одна ККТ может обслуживать много товаров и услуг. Создавайте ссылку из конкретного заказа, чтобы в чек ушли наименование, сумма и способ расчета, а не абстрактная позиция «услуга».
Сначала выбирайте автоматизацию цепочки «подтвержденный платеж — чек — возврат». Затем сравните комиссию, сроки зачисления, тариф ККТ и объем ручной работы: ручное пробитие увеличивает риск пропусков и дублей.
Нет, не включайте прием платежей, пока не готова фискализация расчетов, требующих ККТ. Каталог, описание услуг и форма заявки могут работать раньше, но кнопку оплаты откройте после тестов платежа и чека.
Нет, при безналичных расчетах между организациями и ИП без предъявления электронного средства платежа ККТ не применяется. Если представитель оплачивает картой, по ссылке или через платежную форму, настройте кассу под этот способ расчета.
Сохраняйте идентификатор платежа и обрабатывайте webhook идемпотентно. При повторном уведомлении сначала найдите уже обработанный платеж и чек, затем верните успешный ответ без нового фискального документа.
Сделайте два контролируемых действия: возврат денег через эквайринг и формирование чека возврата прихода. Свяжите оба действия с исходным платежом и проверьте их финальные статусы в эквайринге и ОФД.