Фискализация (54-ФЗ)
Онлайн-касса и чеки по 54-ФЗ: подключение кассы, что попадает в чек, очередь чеков и боевой режим.
Содержание раздела
Фискализация (54-ФЗ)
Автоматическая отправка кассовых чеков в ОФД: модуль фискализации, состояние и боевой режим, какие платежи фискализируем, что попадает в чек, окно кассы и очередь чеков. Отдельно — пошаговое подключение кассы клиента.
Модуль фискализации 54-ФЗ
Модуль формирует кассовый чек и передаёт его в ОФД при приёме оплаты — согласно Федеральному закону № 54-ФЗ. Чек бьётся собственной кассой организации, реквизиты продавца (ИНН, СНО, ставка НДС) берутся из брендинга компании — единый источник, без дублирования в карточке кассы.
Зачем нужен модуль, какие платежи фискализируем и почему агрегаторы мимо, чек-лист готовности к боевому режиму, карточка кассы и очередь чеков. С озвучкой.
Чек бьём только по своему безналу
Платёжные агрегаторы — ЮKassa, Wallet One — фискализируют оплату своей кассой сами. Если пробить чек ещё и нашей, клиент получит два чека на один платёж, а в ФНС уйдёт двойная выручка; исправляется это только чеками коррекции через налоговую. Поэтому модуль фискализирует только безнал, который мы обрабатываем сами — через банковские выписки.
Состояние и боевой режим
Страница Настройки → Фискализация (/admin/settings/atol_config/)
начинается с ответа на главный вопрос: пробиваются ли чеки прямо сейчас и что мешает.
Под заголовком — сводка очереди: пробито сегодня и за 7 дней, ждут отправки, ждут ответа
ОФД, с ошибкой. Каждое число открывает очередь чеков с этим
состоянием.
Проверки считает сервер при каждом открытии страницы:
| Проверка | Что значит | Кнопка |
|---|---|---|
| Касса пробивает чеки | есть касса АТОЛ с логином, паролем, группой ККТ и ИНН | «Кассы» — к списку касс |
| Связь с ОФД | результат последней проверки связи и когда она была (хранится неделю) | «Проверить» |
| Чеки не пробиты — попытки исчерпаны | отправка не удалась столько раз, сколько задано в «Попыток отправки»; сами такие чеки больше не уйдут. Показывается последняя причина ошибки | «Открыть» — очередь с ошибками |
| Операции ждут отправки с … | операции старше срока досылки: автоматика их не трогает, решение за бухгалтерией | «Открыть» — очередь ждущих |
| Нет кассы: организация (N клиентов) | у организации с клиентами нет своей кассы и нет общей — чеки её клиентов не пробиваются | «Добавить» — окно новой кассы с этой организацией и её ИНН |
| У кассы выключен боевой режим, ИНН кассы не совпадает с организацией | касса есть, но чеки через неё не уйдут или уйдут с ИНН из реквизитов | «Открыть» — окно кассы |
Боевой режим включается и выключается кнопкой в этом блоке, а не тумблером в форме. Обе кнопки спрашивают подтверждение и пишут действие в журнал.
- Включить можно, только когда выполнены обязательные условия (см. ниже). Если чего-то не хватает, кнопка называет, чего именно; сервер отклонит и запрос мимо страницы.
- Выключить — подтверждение предупреждает: платежи за время простоя встанут в очередь, а те, что старше срока досылки, придётся отправлять вручную.
Какие платежи фискализируем
Настройка — отметки «Источники платежей» в блоке «Что попадает в чек». Отмеченный источник попадает в очередь чеков, снятый не попадает в неё вовсе.
| Источник | Кто пробивает чек | По умолчанию |
|---|---|---|
| Банковская выписка | мы | отмечен |
| ЮKassa, Wallet One, платёжная система | агрегатор | снят |
| Ручная проводка, обещанный платёж, периодические списания | — | снят |
Правило действует в двух местах и обойти его через интерфейс нельзя: операция чужого источника не попадает в очередь, а кнопка «Пробить чек» в карточке операции откажет с пояснением. Сохранить страницу без единого отмеченного источника нельзя: пустой список означал бы «все источники», и платежи агрегаторов получили бы второй чек.
Почему источник определяется, а не хранится
В финоперации нет отдельного столбца «источник»: откуда пришли деньги, видно по
совокупности признаков — служебному полю оператора, меткам в описании
([bank_op:N], [txn:…]), типу операции и услуге. Эвристика
собрана в одном месте, поэтому иконка в списке операций и решение о чеке всегда
совпадают. У онлайн-оплат поле оператора пустое — они узнаются по названию системы в
описании и по типам операций «Оплата через платежные системы» и «ЮKassa».
Что попадает в чек
Блок из трёх частей. Значения ниже — рекомендация для провайдера, который фискализирует пополнения счёта из банковских выписок. Поля «Провайдер ОФД» и «Опрос ОФД» со страницы убраны в сборке 3136: первое ни на что не влияло (драйвер задаёт тип кассы), второе тоже — статус чеков опрашивается по расписанию раз в 5 минут.
| Поле | Что указать | Почему |
|---|---|---|
| Какие платежи | ||
| Источники платежей | банковская выписка | См. выше. Хотя бы один источник обязателен. |
| Типы операций | «Все приходы, кроме обещанного платежа» | Источник уже ограничен, поэтому жёсткий список типов не нужен. «Только отмеченные типы» открывает отметки приходных типов — чек пробьётся только по ним (для банковских выписок это «Банковская выписка»). |
| Как выглядит чек | ||
| Куда отправить чек клиенту | на e-mail | Если нужного контакта в карточке нет, берётся другой. |
| Запасной e-mail | ящик организации для чеков | Сюда уходит чек, когда у клиента нет e-mail. Пусто — чек уйдёт на телефон или на e-mail из карточки кассы. |
| Название позиции (тег 1030) |
Пополнение лицевого счёта, договор {договор} |
Пополнение счёта — аванс за услуги связи, обобщённая формулировка корректна по 54-ФЗ. Кнопки «номер договора» и «имя клиента» вставляют подстановки, строка «В чеке» под полем показывает пример. Пусто — «Услуги связи / доступ к сети Интернет». До 128 символов. |
| Брать название из услуги операции | по ситуации | Если у операции указана услуга, в чек пойдёт её название. У зачислений из банковских выписок услуги нет — для них всё равно берётся поле выше. |
| Очередь и оповещения | ||
| Попыток отправки | 5 | Сбой отправки повторяется каждые 10 минут, пока не кончатся попытки. После этого чек сам не уйдёт — его отправляют из очереди. |
| Досылать очередь, дней | 3 | Операции старше этого срока автоматически не отправляются: чек задним числом — решение бухгалтерии. 0 — досылать любые. |
| Сообщить о застрявших чеках через, ч | 6 | Когда у чека кончились попытки и прошло столько часов, в чат администраторов приходит сообщение — не чаще раза в сутки. |
| Отчёт за день в Telegram, час, чат | по желанию | Сводка: пробито, ждут, с ошибкой. Чат — номер группы; пусто — общий чат администраторов из настроек Telegram. Отправить сейчас можно со страницы очереди. |
Кнопка «Сохранить» активна, только когда в блоке есть изменения. Перед записью показывается их список «было → стало»; если меняются источники или типы операций при включённом боевом режиме, подтверждение выделено красным — правило действует для следующего же платежа. Каждое сохранение попадает в журнал действий теми же словами.
Плейсхолдеры в наименовании позиции
Поле «Наименование позиции в чеке» — это не просто статичный текст: в него можно вставить плейсхолдер, и модуль подставит данные конкретной операции при пробитии чека. Так наименование получается персональным для каждого клиента, а не одинаковым на всех чеках.
| Плейсхолдер | Что подставится |
|---|---|
{договор} | Номер договора клиента (contract_number). Синонимы: {contract}, {номер договора}, <номер договора> |
{фио} | ФИО / название клиента. Синонимы: {name}, {абонент} |
- Пример: шаблон
Пополнение лицевого счёта, договор {договор}на чеке превращается в «Пополнение лицевого счёта, договор 1484». - Если у операции нет договора, плейсхолдер убирается, а лишние пробелы схлопываются (не остаётся «висящего» слова).
- Подстановка работает и когда наименование берётся из услуги клиента (отметка «Брать название из услуги операции») — плейсхолдер в названии услуги тоже раскроется.
- Итоговая длина обрезается до 128 символов (тег 1030).
Готовность к боевому режиму
Главный выключатель FISCAL_ENABLED по умолчанию выключен: чеки в ОФД не
уходят. Пока он выключен, блок состояния показывает условия
ниже: обязательные — красным. Кнопка «Включить боевой режим» при невыполненных условиях
называет, чего не хватает; сервер проверяет то же самое и отклонит запрос мимо
страницы.
| Пункт | Блокирует включение | Что означает |
|---|---|---|
| Касса с поддерживаемым типом | да | тип «Другая» драйвера не имеет |
| Логин, пароль и группа ККТ | да | без них ОФД не примет ни одного чека |
| Связь с ОФД | да | для включения нужна проверка не старше 5 минут — нажмите «Проверить связь» прямо перед включением |
| ИНН продавца | да | берётся из реквизитов организации |
| ИНН касс | нет | сравнивается с ИНН организации кассы; в чек уйдёт ИНН из реквизитов |
| Источники платежей | нет | хотя бы один должен быть отмечен |
Очередь чеков
Раздел Отчёты → Очередь чеков (/admin/reports/fiscal_queue/)
показывает, что именно ждёт отправки. Раньше состояние очереди было видно только строкой
счётчиков в настройках, без возможности посмотреть содержимое.
Список построен на единых компонентах: строки подгружаются по мере прокрутки (бесконечная загрузка), действия строки собраны в компактное меню, клик по имени клиента открывает боковую карточку клиента, а на телефоне строки превращаются в карточки с подписями полей. Период задаётся единым выбором дат с пресетами. Клик по имени клиента открывает боковую карточку абонента и сразу прокручивает к блоку «Банк» с его платежами из выписок.
- Состояния — «ждут отправки», «ждут ответа ОФД», «с ошибкой», «пробиты», со счётчиками; те же счётчики на странице настроек стали ссылками сюда.
- Фильтры — период, поиск по клиенту, договору, номеру операции и тексту ошибки.
- Колонка «Источник» — откуда платёж; у выключенных источников подпись зачёркнута.
- Отправка — по одной операции (сразу с ответом ОФД) или пачкой через очередь. Каждая отправка требует подтверждения (чек уходит в ОФД и ФНС) и пишется в журнал аудита. Отправлять может тот, у кого есть право на финансовые настройки.
- Защита отправленных — у операций, чек по которым уже ушёл («ждёт ОФД», «пробит»), меню действий не показывается: повторная отправка означала бы дубль чека в ОФД. Вместо него — прямая ссылка на электронный чек, а у даты на мобильном стоит зелёная галочка «отправлен».
- Значок песочных часов — операция старше порога автоматической досылки; автоматика такие не трогает.
- Убрать из очереди (корзина в строке или массово) — снимает операцию с фискализации: чек по ней не пробьётся, но само движение денег остаётся. Уже пробитые чеки не затрагиваются — в ОФД по ним лежит фискальный документ, его нельзя «удалить», для отмены нужен чек возврата.
- Отчёт в Telegram — кнопка в шапке шлёт сводку в Telegram-группу: пробито за сутки и на какую сумму, сколько ждёт отправки, ошибки. Тот же отчёт уходит автоматически раз в сутки, если включён (настройка «Отчёт в Telegram», час — «Час отправки отчёта»; канал — «chat_id группы», по умолчанию общий админ-чат).
Как работает (поток чека)
flowchart LR A["Приём оплаты
банковская выписка"] --> B{"Источник
подлежит?"} B -->|"нет — агрегатор"| X["Пропуск: чек бьёт
ЮKassa / Wallet One"] B -->|"да — свой безнал"| C["Движок:
состав чека 54-ФЗ"] C --> D["Очередь чеков"] D --> E["АТОЛ → ОФД"] E -->|"done"| F["Чек клиенту
e-mail / SMS / ЛК"] E -->|"fail"| G["Авто-повтор →
Telegram-алерт"]
- Приём оплаты — зачисление банковской выписки создаёт финоперацию.
- Движок проверяет источник, сумму и тип операции, собирает состав чека по 54-ФЗ и ставит задачу в очередь.
- Очередь отправляет чек в ОФД, опрашивает статус, повторяет при сбоях и шлёт Telegram-алерт на застрявшие чеки.
- Чек клиенту — электронный чек на e-mail или телефон, ссылка в личном кабинете и в мобильном приложении, фискальные реквизиты в карточке операции.
Статусы чека
- Ждёт отправки — операция помечена к фискализации.
- Ждёт ответа ОФД — чек ушёл, ОФД обрабатывает; статус опрашивается периодически.
- Пробит — чек зарегистрирован, сохранены № ФД, ФП и ссылка на чек.
- Ошибка — ОФД отклонил или недоступен; авто-повтор до N попыток, затем Telegram-алерт. Причина ошибки сохраняется в операции и видна в очереди и в блоке состояния (до сборки 3136 она терялась). Токен доступа АТОЛ из текста сетевой ошибки вырезается.
Старые операции автоматика не досылает
Досылаются только свежие — не старше порога FISCAL_PENDING_MAX_AGE_DAYS
(по умолчанию 3 дня). По 54-ФЗ чек пробивается в момент расчёта; пробить пачку чеков
задним числом — решение бухгалтерии, а не побочный эффект включения тумблера. Такие
операции остаются в очереди и отправляются вручную.
Касса (доступ к ОФД)
Список касс показывает организацию, состояние («готова», «не настроена» с перечнем, чего нет, «нет связи», «ИНН не совпадает», «выключена»), боевой режим и источники кассы, ИНН, налогообложение и сколько чеков пробито. Касса открывается кликом по названию или из меню строки — там же «Проверить связь» и «Удалить».
Окно кассы разбито на три раздела.
- Организация — чей чек пробивает касса. По 54-ФЗ касса привязана к ИНН юрлица, поэтому у каждой организации должна быть своя. Касса без организации служит запасной для тех, у кого своей нет. Реквизиты продавца (название, ИНН, НДС) правятся в карточке организации на вкладке «Реквизиты» — карандаш рядом со строкой реквизитов ведёт туда напрямую.
- Боевой режим кассы и источники кассы — у каждой кассы свой выключатель и свой набор источников. По умолчанию касса наследует общие настройки; можно переопределить, когда у разных организаций разный статус.
- ИНН — 10 цифр для юрлица, 12 для ИП. Под полем — ИНН организации кассы; кнопка «Из реквизитов» подставляет его. Расхождение подсвечивается сразу и попадает в блок состояния.
- Место расчётов — тег 1187. Для расчётов через интернет туда идёт адрес сайта, зарегистрированного в ОФД, а не улица.
- Пароль — наружу не отдаётся: окно показывает только, сохранён ли он. Пустое поле означает «не менять», отметка «Стереть сохранённый пароль» очищает его.
- Проверить связь в разделе «Подключение» проверяет сохранённые данные: сначала сохраните изменения. Под кнопкой — последняя проверка и её итог.
- Источники кассы выбираются отметками («Общие» или «Свои»), а не вводом ключей через запятую, как раньше.
- Сохранение показывает список изменений «было → стало»; смена типа, ИНН, организации, адреса сервера, боевого режима или источников при включённом общем режиме подтверждается красным. Без изменений окно просто закрывается.
- Ставка НДС — в карточке кассы её нет: она берётся из реквизитов компании, единым источником для всех чеков.
Удалить кассу, к которой привязаны операции с чеками или клиенты, нельзя: чек должен ссылаться на кассу, которой пробит. Окно объясняет это и предлагает выключить боевой режим кассы — тогда операции её организации встают в очередь, но чеки не уходят. До сборки 3136 такое удаление заканчивалось ошибкой сервера.
Боевой режим: общий и по кассе
Чек уходит в ОФД, только когда включён и общий рубильник
(FISCAL_ENABLED), и боевой режим кассы организации платежа.
Касса без явного флага наследует общий — так одна касса работает как раньше, а у
нескольких организаций режим и источники независимы.
flowchart TD
S{"Общий рубильник
FISCAL_ENABLED"} -->|"выключен"| N["Чек не уходит"]
S -->|"включён"| K{"Режим кассы
организации"}
K -->|"наследует общий"| Y["Чек уходит в ОФД"]
K -->|"включён"| Y
K -->|"выключен"| N
Права и журнал
- Страница фискализации, сохранение настроек и проверка связи закрыты правом «Настройки · Финансы».
- Список касс, выпадающий список компаний и счётчики очереди показывают только те организации, которые доступны сотруднику.
- Включение и выключение боевого режима, настройки чека, проверка связи, создание, правка и удаление касс пишутся в журнал аудита словами «было → стало». Пароль в журнал не попадает — только «заменён» или «стёрт».
- Кассу чужой организации нельзя ни изменить, ни удалить, ни создать — даже прямым запросом.
Чек в карточке операции
На странице Финансовые операции в карточке есть секция «Чек» со статусом ОФД, номером ФД/ФП и ссылкой на электронный чек. Клиент видит ссылку на чек в личном кабинете и в мобильном приложении.
Налогообложение
При работе на УСН без НДС в чек передаётся признак «НДС не облагается». Ставка НДС и система налогообложения берутся из реквизитов компании (Брендинг); при переходе на ОСН переключатель ставки уже готов.
Подключение кассы клиента — с нуля
Порядок для внедренца: что подписать, где взять доступы, как проверить чек на тестовом контуре и когда включать боевой режим. Шаги 1–3 делает клиент (это его юрлицо, его касса и его договоры), 4–10 — мы.
Касса всегда принадлежит клиенту
Чек пробивается от имени юрлица, которое получило деньги: в чеке его ИНН, его система налогообложения, его фискальный накопитель. Пробивать чеки клиента нашей кассой нельзя — это чужая выручка в нашей отчётности перед ФНС. Поэтому договор с ОФД, регистрация ККТ и доступы к API — всегда на стороне клиента, мы только настраиваем отправку.
Шаг 1. Касса, фискальный накопитель и договор с ОФД
Клиенту нужна облачная касса — физическая ККТ, размещённая в дата-центре оператора и работающая по API. Для приёма платежей за интернет её достаточно: касса не стоит в офисе, чеки уходят абоненту электронно, на почту или телефон.
Что оформляется у оператора облачных касс (в нашем случае АТОЛ Онлайн):
- Аренда ККТ — сама касса в облаке.
- Фискальный накопитель на 15 или 36 месяцев. Срок зависит от системы налогообложения: на УСН доступен ФН-36, на общей системе — обычно 15 месяцев.
- Договор с ОФД — оператором фискальных данных, который передаёт чеки в налоговую. Часто оформляется тем же счётом, что и аренда кассы; отдельный ОФД выбирают, если у клиента уже есть действующий договор.
Порядок именно такой: сначала касса и накопитель, затем регистрация в ФНС, и только потом появляются реквизиты доступа к API. «Настроить заранее» не выйдет — до регистрации ККТ группы касс не существует.
Шаг 2. Регистрация ККТ в налоговой
Клиент регистрирует кассу в личном кабинете ФНС: подаёт заявление, получает регистрационный номер ККТ, затем фискализирует накопитель. Нужна квалифицированная электронная подпись руководителя. Оператор облачной кассы обычно проводит процедуру вместе с клиентом.
После регистрации у клиента на руках: заводской номер ККТ, регистрационный номер, номер
фискального накопителя и адрес места расчётов. Для облачной кассы адрес места расчётов —
это адрес сайта или личного кабинета, через который клиент платит, например
https://lk.example.ru.
Шаг 3. Реквизиты доступа к API — где их взять
Логин от личного кабинета АТОЛ — это не доступ к API
Учётная запись, по которой заходят на online.atol.ru/lk, к API отношения
не имеет: запрос getToken с ней отвечает «неверный логин или пароль».
Реквизиты интеграции выдаются отдельно при подключении услуги «интернет-магазин»
и приходят письмом. В интерфейсе личного кабинета раздела с ними нет — если письмо
потеряно, доступы восстанавливает поддержка АТОЛ или партнёр, через которого подключались.
Этот шаг регулярно оказывается самым долгим, поэтому запрашивать реквизиты стоит
в первый же день.
От клиента нужны три значения:
| Что | Как выглядит | Где взять |
|---|---|---|
| Логин API | строка вида shop-example |
письмо АТОЛ о подключении интернет-магазина |
| Пароль API | произвольная строка | то же письмо; в личном кабинете не показывается |
| Код группы ККТ | имя-магазина_НОМЕР, например smit34-ru_7201 |
то же письмо. Группа объединяет кассы одного магазина: чек отправляется в группу, а не в конкретную ККТ |
Ещё понадобятся ИНН, система налогообложения и ставка НДС клиента — но вносятся они не в карточку кассы, а в реквизиты компании (Брендинг): в чек уходит ИНН оттуда.
Шаг 4. Карточка кассы в биллинге
Настройки → Фискализация (/admin/settings/atol_config/) →
добавить кассу. Поля:
| Поле | Что указать |
|---|---|
| Тип онлайн-кассы | АТОЛ. У типа «Другая» драйвера нет — с ним чек не уйдёт, и чек-лист готовности заблокирует боевой режим |
| Название | произвольное, для себя: «Касса ООО Ромашка (АТОЛ Онлайн)» |
| Логин, Пароль, Группа ККТ | из письма АТОЛ (шаг 3) |
| ИНН организации | ИНН клиента. В чек всё равно уйдёт ИНН из реквизитов компании — поле нужно, чтобы чек-лист поймал расхождение |
| Место размещения ККТ | адрес места расчётов из регистрации ККТ |
| Организация | юрлицо, которому принадлежит касса. Ключевое поле, когда организаций несколько — см. шаг 10 |
| Тестовый сервер | включить на время настройки: касса
переключится на testonline.atol.ru |
Адрес сервера отдельно задавать не нужно: он подставляется сам — боевой или тестовый, по этому переключателю. Поле «Адрес сервера» нужно только для нестандартного контура.
Шаг 5. Проверка связи
Кнопка «Проверить связь» запрашивает у ОФД токен и сразу показывает результат. Это единственный способ убедиться, что логин, пароль и группа приняты; без успешной проверки чек-лист готовности не пропустит дальше.
| Ответ | Что значит |
|---|---|
| Связь есть | реквизиты верны, токен получен. Результат живёт 5 минут, потом проверку нужно повторить |
| Неверный логин или пароль | почти всегда — попытка использовать учётку личного кабинета вместо реквизитов API (шаг 3) |
| Ошибка группы | опечатка в коде группы либо группа от другого контура: у боевого и тестового серверов они разные |
Проверка пишется в журнал аудита — видно, кто и когда трогал кассу.
Шаг 6. Тестовый чек
На тестовом контуре АТОЛ чек не попадает в ФНС и не расходует фискальный накопитель, поэтому пробный прогон делается именно там.
- В карточке кассы включён тестовый сервер, реквизиты — тестовые:
для
testonline.atol.ruАТОЛ выдаёт отдельную пару логин-пароль и свою группу. - Взять любую подходящую операцию прихода — или провести пробное пополнение на небольшую сумму.
- Сначала посмотреть, что уйдёт, ничего не отправляя:
Команда печатает готовый чек: позиция, сумма, ставка НДС, контакт клиента, реквизиты продавца. Здесь ловятся опечатки в наименовании позиции и неверная ставка.python manage.py fiscalize_finop --op-id 12345 --dry-run - Отправить пробный чек:
python manage.py fiscalize_finop --op-id 12345 - Проверить результат в разделе Отчёты → Очередь чеков: операция должна пройти «ждёт ответа ОФД» → «пробит», в карточке появятся номер фискального документа, фискальный признак и ссылка на электронный чек.
То же самое можно сделать из интерфейса: в очереди чеков есть отправка
по одной операции с подтверждением. Команда удобнее тем, что --dry-run
показывает содержимое чека до отправки.
Что проверить в тестовом чеке: наименование позиции — формулировка вида «Пополнение лицевого счёта, договор 12345»; ставку НДС — на УСН должно быть «НДС не облагается»; контакт клиента — куда уйдёт чек, почта или телефон; ИНН продавца — клиента, а не наш.
Шаг 7. Разбор очереди перед запуском
Пока боевой режим выключен, операции всё равно копятся в очереди чеков — это нормально и сделано специально, чтобы ничего не потерялось. Но перед включением очередь нужно разобрать: после включения она начнёт уходить в боевой ОФД.
- Открыть Отчёты → Очередь чеков и посмотреть, что там лежит.
- Всё, что пробивать не нужно — старые операции, тестовые пополнения, платежи через агрегаторы — снять с фискализации корзиной в строке или массово. Движение денег при этом остаётся, снимается только чек.
- Проверить порог автодосылки
FISCAL_PENDING_MAX_AGE_DAYS(по умолчанию 3 дня): операции старше него автоматика не трогает, они помечены песочными часами.
Шаг 8. Включение боевого режима
Переключение на боевой контур — три действия, и все нужны:
- В карточке кассы снять «тестовый сервер» и заменить реквизиты на боевые: тестовые на боевом контуре не работают.
- Повторить проверку связи — уже с боевыми реквизитами.
- Включить боевой режим. Тумблер ведёт в чек-лист готовности: пока обязательные пункты не выполнены, кнопка заблокирована. Сервер проверяет то же самое — попытка включить режим в обход интерфейса будет отклонена.
Что произойдёт сразу после включения
Накопившиеся операции начнут пробиваться в боевой ОФД, и это необратимо: отменить чек можно только чеком коррекции через налоговую. Именно поэтому шаг 7 идёт раньше шага 8, а не наоборот.
По той же причине ручной забор писем из банка при одновременно включённых автозачислении и боевом режиме требует отдельного подтверждения: письмо каскадом создаёт платежи, а платежи — чеки.
Заодно проверьте настройки, определяющие объём чеков: источники платежей — по умолчанию только банковские выписки, поскольку агрегаторы бьют чек своей кассой, — и список типов операций.
Шаг 9. Первый боевой платёж
Запуск считается состоявшимся не по зелёному чек-листу, а по первому реальному чеку. На первом боевом платеже клиента проверьте: операция в очереди перешла в «пробит»; в карточке есть номер фискального документа и ссылка на чек; чек открывается и в нём верные ИНН, наименование позиции и ставка НДС; клиент получил чек на почту или телефон.
Первые сутки полезно держать открытой очередь чеков: застрявшие в ошибке операции подсвечиваются там же, а при включённых Telegram-уведомлениях приходит алерт.
Шаг 10. Несколько организаций
Когда на одной установке работает несколько юрлиц, у каждого своя касса: по 54-ФЗ чек пробивает то юрлицо, которое получило деньги.
Как система выбирает кассу для операции, по убыванию приоритета:
- касса, явно указанная в самой финоперации;
- касса, закреплённая за клиентом;
- касса организации платежа — обычный путь: организация определяется по счёту получателя из банковской выписки;
- касса без организации — общая, если у организации своей нет.
Чужой кассой чек не уйдёт
Если у организации нет своей кассы, система не возьмёт кассу соседнего юрлица — только общую, без организации. Иначе в чеке оказался бы неверный ИНН. Поэтому касса заводится вместе с организацией, а не «потом».
Боевой режим и источники платежей задаются и глобально, и на каждой кассе. Чек уходит, когда включены оба: главный выключатель и режим конкретной кассы. Это позволяет запускать новую организацию, не трогая работающие: у её кассы боевой режим пока выключен, у остальных включён. Пустое значение на карточке означает «наследовать глобальную настройку».
Список касс ограничен организациями, доступными сотруднику: оператор одного юрлица не видит и не может править кассу другого.
Короткий чек-лист внедрения
| # | Шаг | Кто | Готово, когда |
|---|---|---|---|
| 1 | Аренда облачной ККТ, фискальный накопитель, договор с ОФД | клиент | счёт оплачен, касса выделена |
| 2 | Регистрация ККТ в ФНС, фискализация накопителя | клиент | получен регистрационный номер |
| 3 | Реквизиты API: логин, пароль, код группы | клиент | письмо АТОЛ передано нам |
| 4 | Реквизиты компании: ИНН, система налогообложения, ставка НДС | мы | заполнен брендинг организации |
| 5 | Карточка кассы, тестовый сервер включён | мы | касса сохранена |
| 6 | Проверка связи | мы | «связь есть» |
| 7 | Тестовый чек: --dry-run, затем отправка |
мы | чек «пробит», реквизиты в нём верные |
| 8 | Разбор очереди: лишнее снять с фискализации | мы | в очереди только то, что нужно пробить |
| 9 | Боевые реквизиты, повторная проверка связи | мы | «связь есть» на боевом контуре |
| 10 | Включение боевого режима, первый боевой чек | мы | чек-лист зелёный, клиент получил чек |