Как работает шаблон
Автоматическая отправка чеков самозанятого через n8n
Workflow для n8n, который автоматически создаёт чек после оплаты и отправляет его клиенту.
Идея простая: после успешной оплаты ваш сайт или платёжная система отправляет данные в webhook n8n, а дальше всё происходит автоматически.
Что умеет workflow
После оплаты он:
- получает сумму, email клиента и название услуги;
- авторизуется в ЛК НПД;
- создаёт чек;
- отправляет чек клиенту на email;
- присылает уведомление в Telegram;
- если API временно недоступно или что-то пошло не так — сохраняет платёж отдельно, чтобы чек не потерялся.
Также workflow умеет сам обновлять токен авторизации. Если обычное обновление токена не сработало, он пробует авторизоваться заново.
То есть в обычной работе вручную заходить в ЛК НПД после каждой оплаты не нужно.
Кому может пригодиться
Подойдёт тем, кто:
- работает как самозанятый;
- принимает оплаты на сайте;
- продаёт цифровые товары или услуги;
- хочет автоматизировать формирование чеков;
- уже использует n8n или хочет собрать подобную автоматизацию.
Как это работает
Схема примерно такая:
Оплата
↓
Webhook в n8n
↓
Проверка авторизации
↓
Создание чека
↓
Отправка чека клиенту
↓
Уведомление в Telegram
Если чек создать не удалось:
Ошибка
↓
Платёж сохраняется
↓
Приходит уведомление
↓
Чек можно обработать повторно
Что нужно для запуска
После импорта workflow понадобится немного настроить его под себя.
Нужно:
- Создать две Data Table в n8n.
- Добавить данные для входа в ЛК НПД.
- Подключить SMTP для отправки писем.
- Указать своего Telegram-бота.
- Указать свой ИНН.
- Подключить webhook к сайту или платёжной системе.
Все личные данные из опубликованного JSON удалены и заменены на понятные placeholders.
Например:
YOUR_TAXPAYER_INN
TELEGRAM_BOT_TOKEN
TELEGRAM_CHAT_ID
LKNPD_TABLE_ID
UNSENT_RECEIPTS_TABLE_ID
Их нужно заменить на свои значения.
Какие таблицы нужны
LKNPD
Здесь хранятся данные авторизации и токены.
Нужные поля:
username
password
token
refreshToken
tokenExpireIn
deviceInfo
Обычно достаточно одной записи, если чеки пробиваются для одного самозанятого.
##Вторая таблица
Unsend_recieps
Сюда попадают платежи, для которых чек не удалось создать сразу.
Поля:
amount
tarif
email
comleted
payment_date
Да, в названиях Unsend_recieps и comleted есть опечатки. Я оставил их специально, чтобы после импорта workflow ничего не сломалось.
Что приходит в webhook
Минимально нужны три значения:
{
"email": "customer@example.com",
"amount": 500,
"tariff": "Название услуги"
}
То есть:
email— куда отправить чек;amount— сумма оплаты;tariff— название товара или услуги.
Что стоит добавить для продакшена
В этом workflow есть сохранение неуспешных чеков, но я бы дополнительно сделал второй workflow для автоматических повторных попыток.
Например:
Каждый час
↓
Берём необработанные платежи
↓
Повторяем создание чека
↓
Если успешно — помечаем запись выполненной
Тогда даже при временных проблемах с API чек будет создан позже автоматически.