Автор Stendly2 мин чтения

Как принимать стейблкоины в Telegram-боте

Платежный flow для Telegram-бота, который продает подписку, кредиты или цифровой доступ.

Telegram-бот может принимать стейблкоины без просьбы отправить tx hash в поддержку. Бот создает checkout или открывает постоянную платежную ссылку, передает ID пользователя и ждет подписанное событие перед выдачей доступа.

Выбор схемы зависит от того, насколько надежной должна быть привязка.

Простая платежная ссылка

Для фиксированного тарифа бот отправляет постоянный URL:

https://app.stendly.com/p/pl_example?client_reference_id=tg_123456

После оплаты шлюз возвращает reference в webhook. Продавец находит Telegram-аккаунт и выдает роль, кредиты или время подписки.

Значение видно в URL. Пользователь может заменить его и оплатить другой аккаунт. Для подарочной подписки это может быть допустимо. Для доступа к приватным данным или конкретному заказу — нет.

Доверенная checkout session

Если связь должна быть надежной, backend бота создает checkout session через authenticated API. Telegram user ID или внутренний account ID передается с сервера. В ответ бот получает одноразовую ссылку и отправляет ее в чат.

Покупатель не может подменить доверенный reference через браузер. Backend также задает точную цену, заказ и return page.

Доступ нельзя выдавать по success page

Browser redirect можно закрыть, обновить или подделать. Бот должен ждать подписанный webhook платежного сервиса. Обработчик проверяет подпись, event ID и только после этого обновляет entitlement.

Обычно сохраняют Telegram user ID, price ID, payment event ID, срок доступа и transaction reference.

Telegram Stars или стейблкоины

Telegram Stars встроены в экосистему Telegram и могут быть проще для цифровых товаров, которые полностью продаются внутри приложения, с учетом правил Telegram и мобильных платформ. Стейблкоины полезны, если у продукта есть веб-версия, crypto-native аудитория или нужен settlement вне Stars.

Можно поддерживать оба варианта. Не стоит заставлять обычного пользователя заводить криптокошелек, если он предпочитает нативную покупку Telegram.

Что дает Stendly

В Stendly есть постоянные Payment Links, server-created checkout sessions и подписанные webhooks. Через один billing layer можно продавать разовый доступ, внутренние кредиты или recurring plan.

Бот может начать с публичной ссылки, а затем перейти на API, когда понадобится доверенная привязка. Доступны SDK для Node.js, Python и .NET, но для простой ссылки SDK не нужен.

Пример обработчика

if (event.type === "payment.succeeded") {
  const userId = event.data.clientReferenceId;
  await grantTelegramAccess(userId, event.data.priceId);
}

В production также нужны проверка подписи, идемпотентность и сверка оплаченного price.

Источники

Платежи Telegram Bot API

Telegram Stars

Документация Stendly