Статья

Как подключить ЮKassa к Telegram-боту: разовая оплата и подписки

Яков Окулов7 октября 2026

Коротко: проще всего — подключить ЮKassa как платёжного провайдера в BotFather и выставлять счета прямо в чате. Но автоплатежи для подписок и гибкая работа с чеками доступны только через API ЮKassa: бот создаёт платёж, пользователь платит по ссылке, бот узнаёт об оплате из уведомления.

ЮKassa — один из самых частых эквайрингов в моих ботах: разовые оплаты услуг, платный доступ, подписки. Ниже — два пути подключения, их ограничения и то, что обычно ломается в первый месяц.

Два способа подключения

Платежи Telegram (через BotFather)API ЮKassa
Как платит клиентФорма оплаты внутри TelegramСтраница оплаты ЮKassa по ссылке
Что нужно от разработчикаprovider_token из BotFather, sendInvoice в рубляхКлючи магазина, создание платежа, приём уведомлений (вебхук)
Подписки с автосписаниемНетДа, через сохранённый способ оплаты (автоплатежи)
СБПЗависит от формы провайдераДа, если подключено в магазине
Чеки 54-ФЗДанные для чека передаются в provider_dataЧек передаётся вместе с платежом
Когда выбратьПростые разовые оплатыПодписки, сложная логика, сайт и бот с общей оплатой

Способ 1. Платежи Telegram

  1. Зарегистрируйте магазин в ЮKassa и пройдите проверку.
  2. В BotFather откройте Payments, выберите ЮKassa и получите тестовый, а после проверки — боевой provider_token.
  3. Бот выставляет счёт методом sendInvoice в валюте RUB, сумма в копейках.
  4. Бот отвечает на pre_checkout_query и выдаёт услугу после successful_payment.
  5. Для чека передайте в provider_data позиции чека, а контакт покупателя (email или телефон) запросите параметрами счёта.

Этот способ подходит для физических товаров и услуг вне Telegram. Цифровой контент внутри Telegram по правилам платформы продаётся за Stars: как подключить Stars.

Способ 2. API ЮKassa

  1. Бот создаёт платёж через API ЮKassa с суммой, описанием, адресом возврата и данными для чека.
  2. Пользователь получает кнопку-ссылку на страницу оплаты.
  3. ЮKassa присылает уведомление об успешной оплате на ваш сервер (HTTP-уведомление о событии платежа).
  4. Бот проверяет статус платежа запросом к API и выдаёт доступ.
Не доверяйте только уведомлениюПеред выдачей доступа запросите статус платежа у API ЮKassa по его ID: так защищаетесь от поддельных запросов на ваш адрес уведомлений. И делайте обработку идемпотентной: одно и то же уведомление может прийти несколько раз.

Подписки с автопродлением

Для подписки при первой оплате сохраняется способ оплаты, а следующие списания бот делает сам по расписанию. Автоплатежи в ЮKassa подключаются отдельно и требуют согласования условий с ЮKassa. Что важно предусмотреть:

  • понятное согласие пользователя на автосписание и сумму;
  • кнопку отмены подписки в боте;
  • повтор списания и уведомление, если карта отклонена;
  • закрытие доступа, если оплата так и не прошла.

Чеки по 54-ФЗ

При приёме оплаты от физических лиц нужно выдавать кассовый чек. ЮKassa умеет формировать чеки сама (сервис «Чеки от ЮKassa») или передавать данные в вашу онлайн-кассу. Для чека нужны позиции, НДС и контакт покупателя. Самозанятые выдают чеки через «Мой налог»; как принимать оплату без ИП: отдельный разбор.

Что ломается в первый месяц

  • Уведомление не дошло — сервер был недоступен. Нужна сверка: раз в несколько минут проверять незавершённые платежи через API.
  • Пользователь оплатил, но закрыл страницу до возврата в бота — доступ должен выдаваться по уведомлению, а не по возврату.
  • Тестовый токен на проде или наоборот — разделяйте ключи по окружениям.
  • Связь сервера с Telegram оборвалась в момент выдачи доступа — нужен повтор отправки. Почему так бывает: хостинг бота.

Частые вопросы

Как подключить ЮKassa к Telegram-боту?

Самый простой путь — в BotFather в разделе Payments выбрать ЮKassa и получить provider_token. Для подписок и гибкой логики — подключение через API ЮKassa с уведомлениями о платежах.

Можно ли сделать подписку с автосписанием в боте?

Да, через API ЮKassa с сохранением способа оплаты. Автоплатежи подключаются отдельно и согласуются с ЮKassa.

Можно ли принимать оплату по СБП в боте?

Да, если СБП подключена в вашем магазине ЮKassa: пользователь выберет её на странице оплаты.

Читайте также