Автоматические чеки для самозанятого
Интеграция получает подтверждение оплаты от ЮKassa, повторно проверяет платёж на сервере и только после этого регистрирует доход в «Мой налог». Один идентификатор платежа связывается с одним чеком.
Безопасная схема
Клиентский экран «Оплата прошла» не должен выпускать чек: его можно закрыть или подделать. Надёжная точка запуска — серверное уведомление, проверенное запросом к платёжному провайдеру.
- ЮKassa подтверждает успешный платёж
- сервер сверяет статус, сумму и магазин
- модуль формирует чек НПД
- результат и ссылка сохраняются
- повторное уведомление не создаёт дубль
Как подключить автоматические чеки через ЮKassa
- Создайте аккаунт НПД Чек по email и подтвердите адрес.
- В кабинете укажите shopId и секретный ключ действующего магазина ЮKassa. Секреты вводите только в кабинете, не отправляйте их в переписке.
- Подключите «Мой налог»: войдите на странице ФНС в защищённом временном окне из кабинета.
- Настройте уведомления об оплатах и возвратах по инструкции кабинета. Действующий обработчик вашего проекта не отключайте.
- Проверьте одну оплату, название услуги в готовом чеке и сценарий возврата.
Менять магазин ЮKassa и держать свой компьютер включённым не нужно. Агент работает на сервере НПД Чек.
Как подключается «Мой налог»
НПД Чек использует агента с сохранённой сессией веб-кабинета «Мой налог», а не официальный партнёрский API ФНС. Вход проходит на странице ФНС. Сессия хранится в отдельном хранилище аккаунта на сервере агента. Если ФНС завершит сессию, потребуется повторный вход.
Как передать название услуги из сайта или Telegram-бота
Для каждого оплаченного заказа передайте через API НПД Чек идентификатор платежа ЮKassa, сумму и полное название услуги. Например: «Персональная тренировка» или «Подписка на сервис за ноябрь». Для каждого нового списания подписки нужен отдельный идентификатор заказа.
В Telegram Payments используется provider_payment_charge_id. Название для чека берите из заказа, а не из сокращённого заголовка счёта. Ссылку на готовый чек бот получает опросом API или через подписанное уведомление и отправляет покупателю сам. Для этого может понадобиться изменение кода вашего проекта.
Документация API и модуль для Cloudflare Workers. Стоимость подписки и условия подключения указаны на странице сервиса.
Что происходит при ошибках и возвратах
При недоступности ФНС операции остаются в очереди. Повторное уведомление об одном платеже не должно создавать новый чек. Если результат регистрации неизвестен, сначала нужна проверка в «Мой налог», чтобы не зарегистрировать доход повторно.
Сначала верните деньги покупателю через ЮKassa. После подтверждённого полного возврата можно подтвердить аннулирование чека в НПД Чек. При частичном возврате действие «Заменить на остаток» покажет оставшуюся сумму и запросит подтверждение. Аннулирование чека само по себе не возвращает деньги покупателю.
Подробнее: как аннулировать чек самозанятого.
Частые вопросы
Подходит для Telegram-бота?
Да. Можно использовать действующий магазин ЮKassa, подключённый через Telegram Payments / BotFather. Для передачи названий услуг и получения ссылок на чеки подключите API НПД Чек к серверному коду бота.
Будут ли дубли?
Повторное уведомление об одном платеже обрабатывается по его идентификатору. Если результат регистрации неизвестен, операция требует проверки, чтобы не создать повторный чек.
Можно подключить готовый проект?
Да. Магазин ЮKassa остаётся прежним. Для стандартной схемы начните с настроек кабинета; для передачи данных заказа и отправки чека покупателю может понадобиться изменение кода сайта или бота.
Источники
Материал носит информационный характер. Для спорной ситуации сверяйтесь с ФНС или профильным специалистом.