Docs
API ЮKassa
Старые версии API
Помощь
Подключить ЮKassa

Как настроить платежи через бота в Telegram

Для кого эта инструкция
Инструкция подойдёт тем, кто уже написал бота самостоятельно или с помощью разработчика. Если вы используете конструктор (Manybot, Botobot, Botmaker или другой), настраивать платежи нужно будет по инструкции конструктора.
Важный момент: после настройки вы сможете принимать платежи в Telegram с российских банковских карт, из кошельков ЮMoney и с помощью SberPay. Если нужно больше способов, настройте платежи через API ЮKassa
Зарегистрируйте бота
  1. В Telegram откройте диалог с @BotFather, нажмите Начать (команда /start) и выберите /newbot.
  2. Придумайте боту имя и юзернейм. Пример:
    • ЮKassa: платежи — имя бота
    • YooKassaPaymentBot — это юзернейм бота
  3. Если юзернейм не занят, @BotFather пришлёт токен для доступа к боту. Не сообщайте его посторонним — даже службе поддержки ЮKassa или Telegram.
    Как только токен будет у вас, бот готов — можно переходить к следующему шагу.
Подключите своего бота к боту ЮKassa

Важный момент: перед подключением убедитесь, что ваш магазин работает на протоколе API — это можно проверить в настройках, в разделе Магазин
Если в настройках указан другой протокол (или поля с протоколом нет), напишите нам в чате — мы переведём магазин на API. Нужно будет указать ShopID магазина, к которому вы хотите привязать бота.

  1. Отправьте @BotFather команду /mybots. Нажмите на имя своего бота.
  2. Откроется панель управления ботом. Выберите Payments.
  3. Если хотите сразу настроить реальные платежи, в меню выберите Connect ЮKassa: платежи. Если хотите сначала протестировать платежи, выберите Connect ЮKassa: тест (данные банковских карт для тестовых платежей есть на специальной странице).
  4. Откроется диалог с ботом ЮKassa — нажмите Запустить. После этого выберите Войти и выдать доступ, авторизуйтесь в ЮKassa и разрешите боту передавать данные из личного кабинета.
  5. Если захотите сменить магазин, введите /settings и нажмите Сменить магазин. Ещё через эту команду можно отозвать у бота доступ к ЮKassa — для этого выберите нужного бота и нажмите Удалить доступ к ЮKassa.
  6. Вернитесь к диалогу с @BotFather. Он покажет вам токен, который нужен для приёма платежей. Токен всегда можно посмотреть через BotSettings → Payments.
Настройте бота для работы с платежами
  1. Реализуйте метод sendinvoice из платёжного API Telegram: в ответ на этот запрос ваш бот будет отправлять клиенту счёт на оплату. В счёте должна быть стоимость, название, описание товара, параметр payload и параметр provider_token — это тот самый токен, который выдал @BotFather после подключения вашего бота к боту ЮKassa.
    Посмотреть пример запроса sendinvoice
    Если вам нужно получить от клиента адрес для доставки, реализуйте метод Shipping Query. Когда пользователь укажет адрес, на этот запрос нужно ответить методом answerShippingQuery. В этом методе нужно передать способы доставки и их цены.
  2. Когда пользователь подтвердит платёж, Telegram пришлёт вам webhook с Update, который содержит объект PreCheckoutQuery. На этот запрос нужно ответить в течение 10 секунд, вызвав метод answerPreCheckoutQuery.
  3. Если платёж пройдёт успешно, вы получите уведомление от Telegram (webhook с объектом SuccessfulPayment). Бота можно запрограммировать так, чтобы после успешного платежа он совершал определённое действие: например, подключал покупателю услугу или отправлял контент.
    В объекте SuccessfulPayment из уведомления от Telegram найдите параметр provider_payment_charge_id: там будет номер транзакции в ЮKassa. Этот номер лучше сохранить: по нему можно будет найти платёж в личном кабинете.
Если настраивали отправку чеков через ЮKassa, нужно передавать в ЮKassa данные для фискализации
Для этого добавьте в запрос параметры:
  • need_phone_number или need_email
  • send_email_to_provider (если вы запрашивали у клиента эл. почту) илиsend_phone_number_to_provider (если вы запрашивали у клиента телефон),
  • provider_data и в нём объект receipt. Подробности — в API ЮKassa (смотрите раздел Атрибуты — receipt).
Посмотреть пример
Телефон или почту вы можете запросить у клиента раньше, в диалоге с ботом. Тогда первые два параметра не нужны, достаточно provider_data с объектом receipt.
Посмотреть пример
Какими способами сможет заплатить покупатель
Банковской картой российского банка, кошельком ЮMoney или с помощью SberPay.
Как выглядит платёж через бота в Telegram
Чтобы пройти по пути покупателя, используйте бот @YooKassaTestShopBot
  1. Нажмите Начать (команда /start). Вам придёт сообщение с инструкцией и кнопкой оплаты.
  2. Нажмите Заплатить — откроется платёжная форма.
  3. Нажмите Способ оплаты, введите данные карты и нажмите Заплатить.
  4. Подтвердите платёж — снова нажмите Заплатить.
Другие боты ЮKassa
Подходит тем, кто продаёт товары и услуги через мессенджеры или в соцсетях.
  • Счёт и оплата — сразу в чате
  • Детали и возврат платежей — в личном кабинете ЮKassa
  • Когда покупатель оплатит счёт, бот пришлёт уведомление
© 2025, ООО НКО «ЮМани»