Как принимать оплату криптовалютой в Telegram-боте (USDT пошагово)
Telegram-боты и платные сообщества живут за счёт мгновенной выдачи. Как подключить криптовалютный платёжный шлюз к боту, чтобы пользователи платили в USDT и получали доступ автоматически.

Чтобы принимать оплату криптовалютой в Telegram-боте, пусть бэкенд бота создаёт счёт через API криптовалютного платёжного шлюза, когда пользователь нажимает «Купить», отправляет полученную ссылку на оплату inline-кнопкой и слушает подписанный вебхук шлюза. Когда платёж подтверждён, бот автоматически выдаёт товар, ключ или приглашение в канал.
Telegram-боты и платные сообщества — одни из самых естественных сценариев для криптовалютной оплаты: пользователи из разных стран, у многих уже есть USDT, и они ждут выдачи за секунды. В этом руководстве — архитектура, поток сообщений и детали, которые делают схему надёжной.
Почему криптовалюта так хорошо подходит Telegram-ботам
- Глобальная аудитория: пользователи ботов приходят отовсюду; одна цена в USDT подходит всем.
- Оплата с телефона: размещённая страница оплаты открывается во встроенном браузере Telegram, а приложение кошелька может отсканировать QR-код или скопировать адрес.
- Мгновенная автоматизация: подписанный вебхук позволяет боту выдавать заказ без ручной проверки в обозревателе блоков.
- Быстрые сети: в TRON и BNB Smart Chain платежи обычно подтверждаются примерно за минуту.
Telegram-боты и платные сообщества — один из ключевых сценариев, под которые создан mistKET, наряду с SaaS, хостингом и цифровыми товарами.
Архитектура: три компонента
| Компонент | Роль |
|---|---|
| Telegram-бот (через Bot API) | Общается с пользователем: меню, кнопки, сообщения о выдаче |
| Ваш бэкенд | Хранит заказы, вызывает API шлюза, принимает вебхуки, хранит секреты |
| Шлюз mistKET | Размещённая страница оплаты, мониторинг блокчейна, подтверждения, зачисление |
Какой бы фреймворк вы ни использовали, схема приёма криптовалюты в Telegram-боте одна и та же. Бот и бэкенд обычно — один небольшой сервис. Главное, чтобы секреты API и вебхуков хранились на сервере — никогда в сообщениях или клиентском коде. Официальная документация Telegram для ботов — на core.telegram.org.
Пошагово: приём оплаты криптовалютой в Telegram-боте
- Пользователь выбирает товар — например, «Доступ на 1 месяц» через inline-клавиатуру. Бэкенд создаёт заказ с Telegram ID пользователя.
- Бэкенд создаёт счёт — один подписанный
POST /api/v1/invoicesс суммой, валютой, ID заказа и callback-URL. - Бот отправляет кнопку оплаты — inline-кнопку со ссылкой на полученный
checkout_urlи короткую подсказку: «Отправьте точную сумму в выбранной сети». - Пользователь платит — на размещённой странице выбирает USDT в TRON, BSC, Ethereum или Arbitrum (или TRX, BNB, ETH) и платит из кошелька или с биржи.
- Приходит вебхук — после подтверждений ваш callback получает подписанное событие
invoice.confirmedс ID заказа. - Бот выдаёт заказ — проверьте подпись, отметьте заказ оплаченным и отправьте в чат пользователя лицензионный ключ, файл или одноразовую ссылку-приглашение в канал.
Минимальная модель данных
Для платного бота не нужна сложная база данных. Трёх таблиц хватает для большинства случаев:
| Таблица | Ключевые поля | Назначение |
|---|---|---|
| users | telegram_id, username, access_until | У кого есть доступ и до какого числа |
| orders | order_id, telegram_id, product, amount, status | Одна строка на каждую попытку покупки |
| invoices | order_id, invoice_uuid, checkout_url, network, paid_amount | Связь между вашим заказом и счётом шлюза |
Когда приходит вебхук, найдите заказ по order_id, убедитесь, что он ещё не выдан, обновите статус и напишите пользователю по telegram_id. Это весь цикл выдачи.
Примеры текстов сообщений
Понятные формулировки в чате сокращают число обращений в поддержку. Последовательность, которая хорошо работает:
- Сообщение со счётом: «Ваш заказ: доступ на 1 месяц, 15 USD. Нажмите «Оплатить», чтобы открыть защищённую страницу оплаты. Отправьте точную сумму в выбранной сети».
- Оплачено: «Платёж обнаружен. Ждём подтверждений сети — обычно это минута-две».
- Подтверждено: «Платёж подтверждён. Вот ваша ссылка-приглашение — она срабатывает один раз».
- Недоплата: «Мы получили меньше суммы счёта. Откройте ту же страницу оплаты, чтобы доплатить остаток».
- Истёк: «Срок действия счёта истёк. Нажмите ниже, чтобы получить новый».
Поддержка без скриншотов
Когда пользователь спрашивает о платеже, просите только номер заказа. Открыв счёт в панели мерчанта, вы видите ожидаемую и полученную сумму, сеть и хеш транзакции, поэтому скриншоты и адреса кошельков от пользователя не нужны. Кнопка «Поддержка» в боте может передавать номер заказа автоматически — и большинство вопросов об оплате решается за десять секунд вместо долгой переписки.
Хорошие UX-паттерны в чате
- Отправляйте обновления статуса. На
invoice.paidотвечайте «Платёж виден, ждём подтверждений»; наinvoice.confirmed— выдавайте заказ. - Показывайте цену в долларах, а конвертацию оставьте шлюзу. Курс зафиксирован на всё время жизни счёта.
- Один раз объясните таймер, чтобы пользователи не пугались обратного отсчёта.
- Добавьте кнопку «Проверить статус», которая запрашивает счёт через API, — пригодится, если пользователь вернётся позже.
- Вежливо обрабатывайте недоплату. На
invoice.underpaidсообщите, сколько не хватает; частичные платежи суммируются до полной суммы. - Обрабатывайте истечение. На
invoice.expiredпредложите новый счёт одним нажатием.
Подписки и платные сообщества
Для помесячного доступа создавайте новый счёт к концу каждого периода и отправляйте его как напоминание о продлении за несколько дней. Когда придёт invoice.confirmed, продлите дату доступа пользователя в базе. Если до конца периода оплаты нет — закройте доступ. Криптопереводы инициирует плательщик, поэтому продление — это всегда счёт, который пользователь оплачивает сам: автоматического списания, как с карты, нет.
Чек-лист надёжности
- Идемпотентность: вебхуки повторяются с нарастающей задержкой в течение нескольких часов, поэтому одно и то же событие может прийти дважды. Перед отправкой чего-либо проверьте, не выдан ли заказ.
- Проверка подписи: проверяйте
X-Mistket-Signature(HMAC-SHA256 от timestamp и «сырого» тела с вашим секретом вебхука), прежде чем доверять событию. - Сообщения в чате — не доказательство. Фраза «я оплатил» или скриншот никогда не заменяют вебхук.
- Белый список IP: ограничьте доступ к API сервером вашего бота в панели мерчанта.
- Логи: в панели видны журналы доставки вебхуков, ожидаемые и полученные суммы и хеши транзакций для разбора обращений.
Полные примеры кода для подписи и проверки — в статье интеграция API криптовалютных платежей.
Пока нет разработчика? Начните с платёжных ссылок
Если вы ведёте небольшую платную группу вручную, создавайте счета в панели мерчанта и отправляйте ссылку в личных сообщениях. Когда увидите подтверждённую оплату в панели, добавьте участника вручную. Это не масштабируется, зато позволяет проверить цену до разработки бота. Подробнее — в статье платёжные ссылки и счета в криптовалюте.
С чего начать
Готовы принимать оплату криптовалютой в своём Telegram-боте? Подайте заявку на аккаунт мерчанта через Telegram @mistnetwork, указав ссылку на бота или сообщество и ожидаемый объём. После одобрения API-ключи выдаются в тот же день. Примеры запросов и вебхуков смотрите в разделе для разработчиков, а ключами управляйте через вход для мерчантов.


