ЮKassa — один из самых частых эквайрингов в моих ботах: разовые оплаты услуг, платный доступ, подписки. Ниже — два пути подключения, их ограничения и то, что обычно ломается в первый месяц.
Два способа подключения
| Платежи Telegram (через BotFather) | API ЮKassa | |
|---|---|---|
| Как платит клиент | Форма оплаты внутри Telegram | Страница оплаты ЮKassa по ссылке |
| Что нужно от разработчика | provider_token из BotFather, sendInvoice в рублях | Ключи магазина, создание платежа, приём уведомлений (вебхук) |
| Подписки с автосписанием | Нет | Да, через сохранённый способ оплаты (автоплатежи) |
| СБП | Зависит от формы провайдера | Да, если подключено в магазине |
| Чеки 54-ФЗ | Данные для чека передаются в provider_data | Чек передаётся вместе с платежом |
| Когда выбрать | Простые разовые оплаты | Подписки, сложная логика, сайт и бот с общей оплатой |
Способ 1. Платежи Telegram
- Зарегистрируйте магазин в ЮKassa и пройдите проверку.
- В BotFather откройте Payments, выберите ЮKassa и получите тестовый, а после проверки — боевой provider_token.
- Бот выставляет счёт методом
sendInvoiceв валюте RUB, сумма в копейках. - Бот отвечает на
pre_checkout_queryи выдаёт услугу послеsuccessful_payment. - Для чека передайте в
provider_dataпозиции чека, а контакт покупателя (email или телефон) запросите параметрами счёта.
Этот способ подходит для физических товаров и услуг вне Telegram. Цифровой контент внутри Telegram по правилам платформы продаётся за Stars: как подключить Stars.
Способ 2. API ЮKassa
- Бот создаёт платёж через API ЮKassa с суммой, описанием, адресом возврата и данными для чека.
- Пользователь получает кнопку-ссылку на страницу оплаты.
- ЮKassa присылает уведомление об успешной оплате на ваш сервер (HTTP-уведомление о событии платежа).
- Бот проверяет статус платежа запросом к API и выдаёт доступ.
Подписки с автопродлением
Для подписки при первой оплате сохраняется способ оплаты, а следующие списания бот делает сам по расписанию. Автоплатежи в ЮKassa подключаются отдельно и требуют согласования условий с ЮKassa. Что важно предусмотреть:
- понятное согласие пользователя на автосписание и сумму;
- кнопку отмены подписки в боте;
- повтор списания и уведомление, если карта отклонена;
- закрытие доступа, если оплата так и не прошла.
Чеки по 54-ФЗ
При приёме оплаты от физических лиц нужно выдавать кассовый чек. ЮKassa умеет формировать чеки сама (сервис «Чеки от ЮKassa») или передавать данные в вашу онлайн-кассу. Для чека нужны позиции, НДС и контакт покупателя. Самозанятые выдают чеки через «Мой налог»; как принимать оплату без ИП: отдельный разбор.
Что ломается в первый месяц
- Уведомление не дошло — сервер был недоступен. Нужна сверка: раз в несколько минут проверять незавершённые платежи через API.
- Пользователь оплатил, но закрыл страницу до возврата в бота — доступ должен выдаваться по уведомлению, а не по возврату.
- Тестовый токен на проде или наоборот — разделяйте ключи по окружениям.
- Связь сервера с Telegram оборвалась в момент выдачи доступа — нужен повтор отправки. Почему так бывает: хостинг бота.
Частые вопросы
Как подключить ЮKassa к Telegram-боту?
Самый простой путь — в BotFather в разделе Payments выбрать ЮKassa и получить provider_token. Для подписок и гибкой логики — подключение через API ЮKassa с уведомлениями о платежах.
Можно ли сделать подписку с автосписанием в боте?
Да, через API ЮKassa с сохранением способа оплаты. Автоплатежи подключаются отдельно и согласуются с ЮKassa.
Можно ли принимать оплату по СБП в боте?
Да, если СБП подключена в вашем магазине ЮKassa: пользователь выберет её на странице оплаты.