54-ФЗ — один из ключевых юридических вопросов при запуске интернет-магазина в России. Если сайт на WooCommerce принимает оплату от покупателей, недостаточно просто подключить банковские карты или СБП. В большинстве случаев необходимо организовать фискализацию: передавать сведения о расчёте в онлайн-кассу, формировать фискальный чек и отправлять его покупателю в электронной форме.
Для владельца магазина это выглядит как одна операция — покупатель оплатил заказ. Но технически между WooCommerce и ФНС участвует несколько систем: сайт, платёжный сервис, онлайн-касса, фискальный накопитель и оператор фискальных данных.
В этой статье разберём, как правильно настроить связку WooCommerce + интернет-эквайринг + онлайн-касса по 54-ФЗ, какие данные должен передавать сайт, когда нужен второй чек и какие ошибки чаще всего допускают при интеграции.
Важно: статья носит информационный характер. Конкретные обязанности продавца зависят от организационно-правовой формы, системы налогообложения, вида товара и схемы расчётов. Перед запуском магазина рекомендуем подтвердить налоговую модель с бухгалтером или налоговым специалистом.
Что такое 54-ФЗ и зачем интернет-магазину онлайн-касса
Федеральный закон № 54-ФЗ регулирует применение контрольно-кассовой техники при расчётах. Для интернет-магазина главное практическое требование заключается в том, что при расчёте с покупателем в предусмотренных законом случаях необходимо сформировать фискальный документ и передать сведения о расчёте в налоговую.
При онлайн-продаже схема в упрощённом виде выглядит так:
Покупатель → WooCommerce → платёжный сервис → онлайн-касса → ОФД → ФНС
При этом покупателю должен быть предоставлен электронный чек.
Онлайн-касса не обязательно должна выглядеть как физический кассовый аппарат рядом с компьютером. Для интернет-магазина можно использовать облачное решение: касса работает удалённо, а сайт передаёт ей данные о заказе.
Например, сервисы для интернет-магазинов предлагают облачную фискализацию без установки физического аппарата в офисе. CloudPayments описывает CloudKassir как облачное решение для формирования электронных чеков по 54-ФЗ, а ЮKassa предлагает варианты работы как со сторонними онлайн-кассами, так и со своим решением «Чеки от ЮKassa».
Когда интернет-магазину нужна онлайн-касса
В первую очередь необходимо определить, кто продаёт товар и каким способом принимается оплата.
Наличие интернет-магазина само по себе не определяет необходимость кассы. Важны характер расчёта и статус продавца.
В типичной ситуации интернет-магазин, принадлежащий ООО или ИП и принимающий оплату от физических лиц через сайт, должен организовать фискализацию в соответствии с 54-ФЗ.
При этом существуют специальные режимы и исключения, поэтому нельзя использовать универсальную формулу «есть WooCommerce — значит обязательно нужна касса».
Какие способы оплаты нужно учитывать
При проектировании магазина необходимо рассматривать не только оплату банковской картой.
Например:
- банковские карты;
- СБП;
- электронные кошельки;
- платёжные сервисы;
- рассрочки и кредитные продукты;
- оплату при получении;
- предоплату;
- частичную оплату;
- оплату юридическими лицами;
- подарочные сертификаты и бонусы;
- рекуррентные платежи.
Для каждого сценария необходимо определить, когда именно возникает расчёт и какой фискальный документ должен быть сформирован.
Именно поэтому интеграцию кассы желательно проектировать одновременно с платёжной системой, а не подключать её после завершения разработки магазина.
Как устроена интеграция WooCommerce с онлайн-кассой
Сам WooCommerce не является онлайн-кассой.
WooCommerce отвечает за интернет-магазин:
- каталог;
- корзину;
- оформление заказа;
- цены;
- скидки;
- доставку;
- статусы заказов;
- данные покупателя.
Платёжный модуль отвечает за взаимодействие с платёжной системой.
Онлайн-касса отвечает за фискализацию.
ОФД передаёт фискальные данные в ФНС.
Поэтому правильная архитектура обычно выглядит примерно так:
┌──────────────────┐
│ Покупатель │
└────────┬─────────┘
│
▼
┌──────────────────┐
│ WooCommerce │
│ корзина / заказ │
└────────┬─────────┘
│
данные заказа
│
▼
┌──────────────────┐
│ Платёжный сервис │
│ ЮKassa / │
│ CloudPayments │
│ и др. │
└────────┬─────────┘
│
данные чека
│
▼
┌──────────────────┐
│ Онлайн-касса │
└────────┬─────────┘
│
▼
┌──────────────────┐
│ ОФД │
└────────┬─────────┘
│
▼
┌──────────────────┐
│ ФНС │
└──────────────────┘
В некоторых решениях часть этой цепочки объединена в одном сервисе.
Какие данные WooCommerce должен передавать для чека
Одна из самых распространённых ошибок — передать в кассу только общую сумму заказа.
Для корректной фискализации недостаточно сказать:
«Заказ №123 на 5 000 рублей оплачен».
Системе фискализации требуется информация о составе расчёта.
В зависимости от выбранного решения и требований к чеку необходимо передавать, в частности:
- наименование товара;
- количество;
- цену;
- сумму;
- ставку НДС;
- признак предмета расчёта;
- признак способа расчёта;
- данные покупателя в необходимых случаях;
- информацию о доставке;
- сведения о скидках;
- сведения об оплате.
Платёжные сервисы предоставляют справочники соответствующих параметров. Например, в документации ЮKassa отдельно описываются коды системы налогообложения, ставки НДС, признаки предмета и способа расчёта и другие параметры чека.
Следовательно, задача веб-студии — не просто установить плагин оплаты, а обеспечить корректное соответствие данных WooCommerce требованиям платёжной системы и фискализации.
НДС: почему его нужно правильно настроить ещё в WooCommerce
Налоговые настройки WooCommerce напрямую влияют на данные, которые могут попасть в чек.
Если в магазине неверно настроена ставка НДС, платёжный модуль может передать в онлайн-кассу неправильную информацию.
Особое внимание этому вопросу необходимо уделить в 2026 году: с 1 января 2026 года основная ставка НДС в России составляет 22%, поэтому старые настройки магазина со ставкой 20% необходимо проверить и при необходимости обновить. В документации ЮKassa для 2026 года также указаны новые коды ставок 22% и 22/122.
Перед запуском магазина нужно проверить:
- систему налогообложения продавца;
- применяемую ставку НДС;
- налоговый статус товаров;
- налогообложение доставки;
- сопоставление ставок WooCommerce и платёжного модуля;
- отображение налогов в заказе;
- итоговую сумму заказа;
- данные, которые фактически уходят в чек.
Если магазин использует несколько налоговых ставок, необходимо проверить каждый сценарий отдельно.
Что такое «предмет расчёта» и «способ расчёта»
В интеграциях с онлайн-кассами встречаются два важных параметра:
Признак предмета расчёта — что именно продаётся или оплачивается.
Например, это может быть товар или услуга.
Признак способа расчёта — каким образом происходит расчёт.
Например:
- предоплата;
- полная предоплата;
- частичная оплата;
- полный расчёт;
- аванс.
Платёжные модули WooCommerce позволяют передавать эти параметры в чек. Например, в официальной документации модуля ЮKassa для WooCommerce отдельно описана настройка «Предмета и способа расчёта».
Это особенно важно для интернет-магазинов, которые используют предоплату.
Первый и второй чек: когда он нужен
Рассмотрим типичный интернет-магазин.
Покупатель оформляет заказ на сайте и сразу оплачивает его картой. Магазин получает деньги, после чего отправляет товар.
В некоторых сценариях одного чека недостаточно.
Если покупатель сначала вносит предоплату, а окончательный расчёт происходит позднее, необходимо корректно реализовать фискальный сценарий с соответствующими признаками расчёта.
Например:
Первый чек
Покупатель внёс предоплату.
Заказ → Предоплата → Первый чек
Второй чек
Товар фактически передан покупателю.
Отгрузка → Полный расчёт → Закрывающий чек
ЮKassa прямо указывает сценарий с двумя чеками: при предоплате формируется первый чек, а после передачи товара — второй, закрывающий.
Для разработчика это означает, что нельзя бездумно привязать формирование чека только к событию «платёж успешно выполнен».
Необходимо понимать бизнес-логику магазина.
Как подключить 54-ФЗ к WooCommerce
Рассмотрим типовой порядок работ.
Шаг 1. Определить налоговую модель
До технической настройки необходимо выяснить:
- ООО или ИП;
- систему налогообложения;
- применяется ли НДС;
- какие ставки используются;
- кто покупатели;
- какие товары продаются;
- есть ли доставка;
- есть ли предоплата;
- требуется ли маркировка;
- какие способы оплаты будут доступны.
Без этой информации разработчик не сможет корректно настроить фискальные параметры.
Шаг 2. Выбрать схему онлайн-кассы
Условно можно выделить два варианта.
Вариант 1. Отдельная облачная онлайн-касса
Платёжный сервис передаёт данные в стороннюю кассу.
Схема:
WooCommerce
↓
Платёжный сервис
↓
Облачная касса
↓
ОФД
↓
ФНС
ЮKassa, например, поддерживает работу со сторонними онлайн-кассами и передаёт им данные для формирования чеков в момент оплаты.
Вариант 2. Фискализация как часть платёжного решения
Некоторые платёжные сервисы предлагают собственное решение для чеков.
Преимущество такого подхода — меньше отдельных компонентов, которые нужно администрировать.
Например, ЮKassa указывает, что при использовании «Чеков от ЮKassa» сервис берёт на себя формирование чеков и связанные с кассой процессы.
Какой вариант выбрать, зависит от конкретного бизнеса, тарифов, используемого эквайринга и технических требований.
Шаг 3. Зарегистрировать и подготовить кассу
Если используется собственная или сторонняя онлайн-касса, необходимо пройти предусмотренные процедуры регистрации и подключения.
В зависимости от выбранного решения могут потребоваться:
- ККТ;
- фискальный накопитель;
- договор с ОФД;
- электронная подпись;
- регистрация кассы в ФНС;
- настройки кассового ПО;
- параметры подключения к платёжному сервису.
Если используется облачная модель, часть этих операций может выполняться поставщиком сервиса.
Шаг 4. Установить платёжный модуль WooCommerce
Для WooCommerce существуют готовые модули платёжных систем.
Например, официальный модуль ЮKassa для WooCommerce поддерживает работу с облачными кассами по 54-ФЗ.
CloudPayments также предоставляет модуль для WordPress/WooCommerce с поддержкой онлайн-касс, признаков предмета и способа расчёта, а также сценариев с закрывающим чеком.
На этом этапе необходимо:
- установить модуль;
- подключить магазин к платёжной системе;
- настроить API-ключи;
- включить необходимые способы оплаты;
- указать параметры магазина;
- включить передачу данных для чеков;
- настроить уведомления;
- проверить налоговые параметры.
Шаг 5. Настроить чеки в платёжном модуле
В типичной интеграции нужно настроить:
Ставку НДС
Например:
Товар → НДС 22%
Предмет расчёта
Товар → Товар
Способ расчёта
Оплата → Полный расчёт
или для соответствующего сценария:
Оплата → Предоплата
Данные покупателя
В зависимости от требований конкретного сценария.
В официальной инструкции ЮKassa для WooCommerce настройки чеков включают сопоставление налоговых ставок, а также настройку предмета и способа расчёта.
Шаг 6. Проверить доставку
Доставка — отдельная зона риска.
Например, заказ может состоять из:
Товар №1 4 000 ₽
Товар №2 3 000 ₽
Доставка 500 ₽
-----------------------
Итого 7 500 ₽
Необходимо заранее определить, как доставка должна отражаться в фискальных данных.
Если доставка облагается налогом, её настройки должны соответствовать налоговой политике магазина. В документации ЮKassa для WooCommerce отдельно указывается необходимость настройки налогового статуса доставки, если на неё распространяется налог.
Шаг 7. Настроить webhook и статусы заказов
Это уже непосредственно зона ответственности разработчика.
WooCommerce должен понимать, что произошло с платежом.
Например:
Pending payment
↓
Оплата инициирована
↓
Processing
↓
Платёж подтверждён
↓
Чек сформирован
↓
Заказ передан в обработку
Конкретные статусы зависят от платёжного модуля.
Критически важно не создавать чек повторно при повторной обработке webhook.
Например, платёжный сервис может несколько раз отправить уведомление о событии. Если код сайта каждый раз создаёт новый чек, можно получить дублирование фискальных операций.
Поэтому интеграция должна быть идемпотентной.
То есть повторная доставка одного и того же уведомления не должна приводить к повторному финансовому действию.
Как должна выглядеть правильная логика оплаты
Упрощённо процесс можно представить следующим образом:
1. Покупатель оформляет заказ
↓
2. WooCommerce создаёт заказ
↓
3. Покупатель переходит к оплате
↓
4. Платёжный сервис принимает платёж
↓
5. Платёж подтверждается
↓
6. Данные заказа передаются для фискализации
↓
7. Онлайн-касса формирует чек
↓
8. Чек передаётся через ОФД
↓
9. Данные поступают в ФНС
↓
10. Электронный чек отправляется покупателю
В реальной интеграции часть операций может происходить параллельно.
Что происходит, если касса недоступна
Это важный вопрос, который часто забывают при разработке.
Представим ситуацию:
Покупатель оплатил заказ, но онлайн-касса в этот момент не отвечает.
Что должен делать сайт?
Поведение зависит от выбранного платёжного решения.
Например, ЮKassa позволяет настроить сценарий, при котором платёж проходит, а данные для чека затем отправляются в кассу. Другой вариант — сначала отправить данные в кассу и провести платёж только после успешного ответа кассы.
Для интернет-магазина с физическими товарами и доставкой может использоваться один сценарий, а для цифрового товара — другой.
Поэтому в техническом задании желательно отдельно прописать:
- что делать при недоступности кассы;
- что делать при ошибке формирования чека;
- отправлять ли уведомление администратору;
- блокировать ли выдачу товара;
- как повторить фискализацию;
- где видеть ошибочные операции.
Тестирование интеграции 54-ФЗ
Перед запуском интернет-магазина нельзя ограничиваться проверкой:
«Карта успешно списала деньги».
Необходимо проверить весь фискальный цикл.
Минимальный набор тестов
1. Обычная оплата
Товар → оплата → чек → заказ
2. Несколько товаров
Проверить, что в чеке отображаются все позиции.
3. Скидка
Проверить соответствие:
Цена в WooCommerce
=
Цена в платёжном сервисе
=
Сумма в чеке
4. Доставка
Проверить отображение стоимости доставки.
5. Разные ставки НДС
Проверить корректность налоговых параметров каждой позиции.
6. Отмена заказа
Проверить, как обрабатывается возврат денег и возвратный чек.
7. Полный возврат
Проверить, что фискальные данные соответствуют операции возврата.
8. Частичный возврат
Особенно важно для магазинов, где покупатель может вернуть один товар из нескольких.
9. Предоплата
Проверить первый чек.
10. Отгрузка предоплаченного заказа
Проверить закрывающий чек.
11. Повторный webhook
Убедиться, что один платёж не создаёт два чека.
12. Ошибка кассы
Проверить поведение сайта при недоступности фискального сервиса.
Отдельно проверяем возвраты
Возврат — это не просто изменение статуса заказа в WooCommerce с Processing на Refunded.
Финансовая операция должна быть корректно отражена в платёжной системе и фискализации.
Поэтому при разработке необходимо определить:
Покупатель запросил возврат
↓
WooCommerce фиксирует возврат
↓
Платёжный сервис возвращает деньги
↓
Формируется возвратный фискальный документ
↓
Информация передаётся дальше
При этом возможности конкретного WooCommerce-модуля могут отличаться. Например, в инструкции ЮKassa для WooCommerce отмечается, что полноценный возврат непосредственно из модуля выполнить нельзя: возврат выполняется в личном кабинете ЮKassa, при этом статус в модуле автоматически не изменяется.
Это нужно учитывать при проектировании административного процесса магазина.
Частые ошибки при настройке 54-ФЗ на WooCommerce
Ошибка №1. Установить плагин и считать работу законченной
Установка платёжного модуля — только часть интеграции.
Нужно ещё проверить:
- кассу;
- ОФД;
- налоговые ставки;
- состав чека;
- статусы заказа;
- webhook;
- возвраты;
- доставку;
- предоплату;
- отправку чеков.
Ошибка №2. Передавать в чек только сумму заказа
Чек должен содержать корректные данные о составе расчёта.
Если WooCommerce передаёт в платёжный сервис неполную или неправильную структуру заказа, автоматическая фискализация может работать некорректно.
Ошибка №3. Не учитывать доставку
Стоимость доставки может влиять на итоговую сумму и состав чека.
Особенно часто проблема возникает, когда WooCommerce считает доставку отдельно от товаров, а разработчик передаёт в платёжный сервис только товары.
Ошибка №4. Не обновить НДС
В 2026 году особенно важно проверить старые настройки магазина из-за изменения основной ставки НДС с 20% до 22%.
Если магазин был разработан раньше, необходимо проверить:
- настройки WooCommerce;
- налоговые классы;
- товары;
- платёжный модуль;
- кассу;
- тестовые чеки;
- шаблоны документов.
Ошибка №5. Формировать чек на неправильном событии
Нельзя просто написать:
if ($order->is_paid()) {
create_receipt();
}
и считать задачу решённой.
Нужно учитывать конкретную схему расчёта, повторные уведомления, возвраты, предоплату и статус заказа.
Ошибка №6. Не тестировать повторные уведомления
Webhook может прийти повторно.
Если обработчик не защищён от повторной обработки, возможны дублирующиеся операции.
Ошибка №7. Не предусмотреть ручную обработку ошибок
Даже хорошо настроенная интеграция может столкнуться с:
- временной недоступностью API;
- ошибкой авторизации;
- неверной ставкой НДС;
- некорректным товаром;
- ошибкой кассы;
- ошибкой ОФД;
- неправильными данными покупателя.
Администратор должен понимать, какой заказ не прошёл фискализацию и что делать дальше.
Как мы рекомендуем строить интеграцию в веб-студии
Для нового WooCommerce-проекта мы рекомендуем разделять задачу на несколько уровней.
Уровень 1. Бизнес-логика
До программирования фиксируем:
- кто продавец;
- что продаётся;
- кто покупатель;
- как принимается оплата;
- когда происходит расчёт;
- как оформляется доставка;
- какие бывают возвраты;
- используется ли предоплата.
Уровень 2. Налоговая модель
Фиксируем:
- систему налогообложения;
- ставки НДС;
- налоговый статус товаров;
- налоговый статус доставки;
- необходимые реквизиты чека.
Уровень 3. Платёжная инфраструктура
Выбираем:
- платёжный сервис;
- онлайн-кассу;
- ОФД;
- схему фискализации.
Уровень 4. Интеграция WooCommerce
Настраиваем:
- платёжный модуль;
- API;
- webhook;
- статусы заказов;
- передачу состава заказа;
- параметры чека.
Уровень 5. Тестирование
Проверяем:
- оплату;
- чек;
- возврат;
- частичный возврат;
- доставку;
- скидки;
- НДС;
- предоплату;
- повторные уведомления;
- ошибки кассы.
ЮKassa и CloudPayments: примеры интеграции с WooCommerce
Для WooCommerce существуют готовые решения, поэтому не всегда необходимо разрабатывать интеграцию с нуля.
ЮKassa предоставляет официальный модуль для WooCommerce. В нём можно подключить магазин, настроить способы оплаты и параметры чеков, включая налоговые ставки и признаки предмета/способа расчёта.
CloudPayments также предоставляет интеграцию с WordPress/WooCommerce. В документации указана поддержка 54-ФЗ, признаков предмета и способа расчёта, а также закрывающего чека.
При выборе решения мы рекомендуем ориентироваться не только на комиссию за эквайринг. Важно сравнить:
- возможности фискализации;
- поддержку нужных способов оплаты;
- API;
- работу с возвратами;
- поддержку предоплаты;
- документацию;
- возможности WooCommerce-модуля;
- стабильность webhook;
- инструменты диагностики;
- стоимость онлайн-кассы;
- стоимость фискализации.
Нужно ли писать собственный плагин?
Не всегда.
Если платёжная система предоставляет актуальный WooCommerce-модуль и он поддерживает необходимые бизнес-сценарии, разумнее использовать готовое решение.
Собственная разработка может понадобиться, если:
- требуется нестандартная логика оплаты;
- используется собственный платёжный шлюз;
- несколько платёжных систем;
- сложная схема предоплаты;
- нестандартные возвраты;
- интеграция с ERP/CRM;
- сложная система скидок;
- особая логика доставки;
- требуется объединить несколько источников платежей.
При этом собственная разработка должна учитывать официальные требования платёжной системы и кассовой инфраструктуры.
Что должна включать техническая задача для разработчика
Хорошее ТЗ на интеграцию 54-ФЗ для WooCommerce должно содержать минимум следующие пункты:
1. Организационная форма
2. Система налогообложения
3. Ставки НДС
4. Типы товаров
5. Способы оплаты
6. Способ оплаты доставки
7. Сценарий предоплаты
8. Сценарий полного расчёта
9. Возвраты
10. Частичные возвраты
11. Требования к чеку
12. Онлайн-касса
13. ОФД
14. Платёжный сервис
15. Webhook
16. Статусы WooCommerce
17. Обработка ошибок
18. Логирование
19. Тестовые сценарии
20. Порядок запуска
Такой подход позволяет избежать ситуации, когда сайт технически принимает деньги, но фискальная часть оказывается недоработанной.
Чек-лист перед запуском интернет-магазина
- Определена схема применения 54-ФЗ.
- Проверен статус продавца и система налогообложения.
- Выбрана онлайн-касса или сервис фискализации.
- Подключён ОФД, если он необходим для выбранной схемы.
- Касса зарегистрирована и настроена.
- Подключён платёжный сервис.
- Установлен актуальный WooCommerce-модуль.
- Настроена передача данных о товарах.
- Проверены ставки НДС.
- Проверены налоговые настройки доставки.
- Настроены признаки предмета и способа расчёта.
- Настроена отправка электронных чеков.
- Проверена обычная оплата.
- Проверена предоплата, если она используется.
- Проверен закрывающий чек, если он необходим.
- Проверен полный возврат.
- Проверен частичный возврат.
- Проверены скидки.
- Проверена доставка.
- Проверены повторные webhook.
- Проверена обработка ошибок.
- Настроено логирование.
- Проведены тестовые платежи.
Сколько времени занимает настройка 54-ФЗ
Если используется стандартный WooCommerce и готовый модуль платёжной системы, техническая часть обычно значительно проще, чем разработка собственной интеграции.
Но сроки зависят от количества сценариев.
Простой магазин:
WooCommerce
+ один способ эквайринга
+ обычная оплата
+ облачная касса
можно интегрировать относительно быстро.
Сложный магазин:
несколько способов оплаты
+ предоплата
+ доставка
+ скидки
+ частичные возвраты
+ подписки
+ CRM/ERP
+ несколько налоговых сценариев
потребует полноценного проектирования и тестирования.
Поэтому оценивать такую задачу только как «установить плагин онлайн-кассы» неправильно.
Итог
Настройка 54-ФЗ в интернет-магазине на WooCommerce — это не отдельная галочка в панели WordPress, а связка нескольких систем.
Правильная архитектура должна обеспечить согласованную работу:
WooCommerce → платёжная система → онлайн-касса → ОФД → ФНС → покупатель.
При этом разработчику важно контролировать не только успешность платежа, но и состав фискальных данных, НДС, признаки расчёта, доставку, возвраты, предоплату, повторные уведомления и ошибки интеграции.
Для типового интернет-магазина оптимальным вариантом часто становится готовый WooCommerce-модуль платёжной системы с поддержкой облачной фискализации. Например, официальные решения ЮKassa и CloudPayments уже предусматривают интеграцию с WooCommerce и передачу необходимых данных для работы с 54-ФЗ.
Главный принцип при разработке такого проекта простой: сначала определить юридическую и платёжную модель, затем спроектировать фискальные сценарии и только после этого настраивать WooCommerce.
Если сделать наоборот — сначала подключить оплату, а затем пытаться «прикрутить кассу», — именно на этапе запуска чаще всего обнаруживаются проблемы с чеками, НДС, возвратами и статусами заказов.
Для веб-студии это также означает важный момент: интеграцию 54-ФЗ лучше закладывать в проект интернет-магазина ещё на этапе технического задания. Тогда платёжная система, WooCommerce, CRM и касса проектируются как единый процесс, а не как несколько независимых модулей.
Материал актуализирован с учётом изменений, действующих в 2026 году. Перед запуском конкретного магазина необходимо проверить актуальные требования законодательства и настройки выбранного оператора/платёжного сервиса.



