ru

Как подключить оплату криптой в Телеграм-боте

Опубликовано
04.10.2026
Обновлено
04.10.2026
Обжарщик кофе в фартуке смотрит в телефон и опускает пакет кофе в коробку для отправки; рядом парит сообщение со знаком Telegram и монетой USDT с зелёной галочкой
Обжарщик кофе в фартуке смотрит в телефон и опускает пакет кофе в коробку для отправки; рядом парит сообщение со знаком Telegram и монетой USDT с зелёной галочкой
Contents

    Сам Телеграм криптовалюту в ботах не принимает: его встроенные платежи — это звёзды и фиатные провайдеры. Поэтому оплата криптой в Телеграм-боте почти всегда собирается из трёх частей: бот присылает покупателю ссылку или QR-код на оплату, покупатель платит из своего кошелька, а платёжный сервис сообщает серверу бота, что деньги пришли. Ниже разбираем, из чего это собрать, как не выдать товар раньше денег и что об этом говорят правила Телеграма и закон.

    Что в Телеграм-боте уже есть и где начинается криптовалюта

    У бота в Телеграме два встроенных способа взять деньги, и ни один из них не про криптовалюту:

    • Звёзды (Telegram Stars). Это внутренняя валюта Телеграма: покупатель покупает звёзды в приложении, бот выставляет счёт в звёздах, покупатель платит в один клик. По правилам Телеграма для ботов (документация Bot Payments и условия для разработчиков, на октябрь 2026) цифровые товары и услуги, которые продаются в приложениях Телеграма, оплачиваются только звёздами — независимо от того, какие сайты, приложения, сервисы и платёжные провайдеры у вас есть вне Телеграма. Что считается цифровым, Телеграм берёт из определений Apple и Google: так он выполняет требования App Store и Google Play.
    • Фиатный провайдер. Для физических товаров и услуг бот подключает платёжную систему через BotFather: банковские карты и платёжные сервисы разных стран. Счёт покупатель видит прямо в чате, но деньги идут через провайдера, а не через Телеграм.

    Криптовалюта в этот список не входит, и подключается она снаружи. Бот просто отправляет сообщение со ссылкой на оплату, а всё остальное — счёт, проверка перевода, уведомление — происходит у платёжного сервиса. Телеграм эту оплату не видит и не считает; для него это обычное сообщение с кнопкой.

    Из правила про звёзды следует практический вывод, и критерий в нём — вид товара: условия Телеграма для разработчиков делят продажи на физические товары и услуги и на цифровые. Цифровое — доступ в закрытый канал, функции бота, файлы, подписка на онлайн-сервис — продаётся в боте только за звёзды; на вопрос, можно ли вместо звёзд принять криптовалюту, Телеграм в своей документации отвечает «нет». Криптовалюта по ссылке подходит боту, который продаёт физический товар или услугу в реальном мире: доставку, ремонт, бронирование, работу мастера. Как сочетать звёзды, ботов и платёжные ссылки в одном магазине, мы разбирали в обзоре о том, как принимать оплату в криптовалюте через Телеграм.

    Три способа принять криптовалюту в боте

    Боты принимают криптовалюту по-разному, и различаются способы одним: кто проверяет, что деньги пришли.

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

    Между вторым и третьим путём есть ещё один, которым соблазняются разработчики: написать всю проверку переводов самому. Открытых библиотек хватает, и первая версия пишется за вечер. Дальше начинаются сети, подтверждения, недоплаты, поддельные уведомления и ночные падения ноды, и это уже не вечер, а отдельная работа. Что из этого стоит брать на себя, а что отдать, мы сравнивали в разборе, делать свой платёжный шлюз или подключить готовый сервис.

    У CryptumPay третий путь устроен так. Сервер бота вызывает API и создаёт заказ с суммой и валютой; из номера заказа собирается ссылка на платёжную страницу, и её бот отправляет покупателю в чат — виджет для этого не нужен. К заказу прикладываются свои идентификаторы: номер пользователя в Телеграме, номер заказа в вашей системе, произвольная строка данных, чтобы потом сопоставить оплату с покупателем. Покупателю аккаунт в CryptumPay не нужен: он открывает ссылку и платит из своего кошелька. Комиссия сервиса — 1 % за успешный платёж, от 0,5 % на больших объёмах, и её можно переложить на покупателя.

    Как проходит оплата криптой в Телеграм-боте, шаг за шагом

    Для покупателя всё выглядит как пара нажатий. Для вашего сервера это цепочка из шести шагов:

    1. Покупатель нажимает «Купить». Бот знает, кто нажал (идентификатор пользователя в Телеграме) и что он выбрал.
    2. Сервер бота создаёт заказ. Сервер отправляет платёжному сервису сумму, валюту и свои метки: кто покупатель и что за заказ. В ответ приходит номер заказа и ссылка на оплату.
    3. Бот присылает ссылку. В сообщении — кнопка «Оплатить» со ссылкой на страницу оплаты или QR-код; на странице покупатель видит адрес, сумму и сеть.
    4. Покупатель платит из кошелька. Он сканирует QR-код или копирует адрес и отправляет перевод из любого кошелька или с биржи.
    5. Сервис замечает перевод. Платёжный сервис видит перевод в сети, ждёт подтверждений и присылает на сервер бота уведомление о каждом изменении статуса.
    6. Бот выдаёт товар. Сервер проверяет уведомление, помечает заказ оплаченным и отправляет покупателю подтверждение: номер заказа, дату доставки или брони.
    Мужчина за столом наводит телефон на QR-код в сообщении Telegram-бота на экране ноутбука; в сообщении — знак Telegram, монета USDT и кнопка оплаты

    Один нюанс в шаге 4: покупатель платит не боту, а на адрес, который выдал платёжный сервис, и платит обычным переводом в сети. Ограничения тут не у Телеграма, а у сети: перевод нельзя отменить, а если покупатель выбрал не ту сеть или перевёл не ту сумму, это станет видно только после отправки. Проверьте в документации своего сервиса, сколько действует счёт: перевод, отправленный после закрытия счёта, сервис может не связать с заказом.

    Как бот узнаёт, что деньги пришли

    Главная деталь любой схемы — уведомление об оплате, которое платёжный сервис присылает на ваш сервер. Разработчики называют его вебхуком: это обычный запрос на адрес, который вы указали в настройках, и в нём написано, что с заказом произошло. Сервер бота принимает запрос, обновляет заказ и уже сам решает, что делать дальше.

    Проще говоря, вебхук — это звонок из банка «деньги пришли». И как со звонком, главный вопрос — точно ли это банк. Адрес вебхука обычно легко угадать или подсмотреть, и если сервер верит любому запросу на этот адрес, товар можно получить бесплатно одним запросом с чужого компьютера. Поэтому у нормального сервиса каждый вебхук подписан, и подпись проверяется до того, как сервер что-то меняет в заказе.

    Вторая ловушка — повторы. Сеть может моргнуть, ваш сервер не ответить, и сервис пришлёт то же событие ещё раз. Если бот на каждое уведомление списывает товар со склада или отправляет заказ в доставку, один платёж превратится в две посылки. Как принимать уведомления так, чтобы ни подделка, ни повтор не прошли, мы собрали в разборе о том, как безопасно обрабатывать вебхуки криптоплатежей.

    Телефон с чатом Telegram, сервер со щитом и зелёной галочкой и страница оплаты с монетой USDT стоят в ряд, а над ними летит запечатанный конверт с зелёной печатью-галочкой

    У CryptumPay вебхук приходит на каждом шаге оплаты:

    • Заказ создан. Сервис зарегистрировал заказ, оплата ожидается; номер заказа сервер к этому моменту уже получил в ответе API при создании.
    • Перевод замечен в сети. Покупатель отправил деньги, перевод ждёт подтверждений.
    • Средства зачисляются. Платёж получен точно, идёт зачисление.
    • Платёж завершён. Средства зачислены, заказ оплачен.

    Защита у вебхуков CryptumPay та же, что описана выше. Адрес для уведомлений — только HTTPS с действительным сертификатом; каждый вебхук подписан (заголовок X-Signature), и подпись нужно проверить до обработки. Повторы отсекаются по ключу события в заголовке X-IDMP-Key: одно и то же событие может прийти дважды с тем же ключом. Если сервер ответил не 2xx, сервис повторяет отправку — до 12 попыток примерно за час, так что короткое падение бота заказ не потеряет. Товар документация велит выдавать на статусах Paid (средства зачислены) и Crediting (зачисление идёт, платёж получен точно); на статусах In progress и Under review заказ не выполняется, а переход покупателя на страницу успеха оплатой не считается — статус проверяется на сервере.

    Когда выдавать товар, а когда подождать

    Самая дорогая ошибка в платных ботах — выдавать товар не по статусу заказа, а по косвенному признаку. Три признака, которым верить нельзя:

    • Покупатель вернулся в чат. Со страницы оплаты можно вернуться и не заплатив.
    • Покупатель нажал «Я оплатил». Кнопка говорит о намерении, а не о переводе.
    • Страница оплаты показала галочку. Страницу успеха открывают по адресу, а адрес легко подделать.

    Признак один: сервер бота получил от платёжного сервиса статус, который сервис сам называет оплатой, и проверил подпись этого уведомления.

    Отдельный случай — покупатель заплатил не столько, сколько в счёте. Биржа удержала комиссию за вывод, и вместо 50 USDT пришло 49. Станет ли такой перевод оплатой, зависит от сервиса и его настроек: у одних любая недостача — это недоплата, и заказ оплаченным не станет; у других продавец задаёт допуск в процентах, разница в его пределах подтверждается сама, а за пределами покупателя просят доплатить. Проверьте, как это настроено у вас, и научите бота не молчать: если платёж завис как недоплата, написать покупателю, сколько пришло и сколько не хватает, и дать способ доплатить или связаться с вами. Что делать с недоплатами, переплатами и переводами не в той сети, мы разбирали в статье про возврат криптовалютного платежа.

    На каком языке писать бота: Python, Node.js или любой другой

    Язык бота на выбор платёжного сервиса не влияет. Создание заказа и приём вебхука — это обычные HTTP-запросы, а их умеет любой язык, на котором пишут Телеграм-ботов: Python с aiogram или python-telegram-bot, Node.js, PHP, Go. Готовая библиотека от сервиса экономит вечер, но без неё обойтись можно: в документации описаны адреса, параметры и формат ответа, и обёртку из двух функций — «создать заказ» и «проверить подпись вебхука» — вы напишете сами.

    Чего без документации не обойти — это подпись запросов. Сервисы требуют подписывать вызовы API секретным ключом, и алгоритм подписи у каждого свой: что складывать в строку, каким методом считать, в каком заголовке передавать. Ещё одна частая мелочь — время: подпись обычно включает отметку времени, и запрос с «уехавшими» часами сервера сервис отклонит. Проверить алгоритм лучше на тестовом заказе до того, как бот увидят покупатели: ошибка в подписи выглядит как молчание сервиса, и искать её на живых платежах неприятно. Список того, что стоит проверить в документации до начала работы, у нас есть в разборе, что проверить в API криптоплатежей перед подключением.

    У CryptumPay готовый SDK есть только для Node.js. Алгоритм подписи запросов описан в документации пошагово без привязки к языку, поэтому бот на Python или PHP вызывает API напрямую. Запрос старше одной минуты отклоняется, так что часы сервера должны быть синхронизированы.

    Что говорит закон о приёме криптовалюты в боте

    Телеграм — одна платформа на все страны, а право у каждой страны своё. Правила Телеграма про звёзды мы назвали выше, это правила платформы, а не закон. Можно ли вам как продавцу принимать криптовалюту в качестве оплаты, решает законодательство страны, где вы ведёте бизнес.

    Для продавца в России ответ на октябрь 2026 года такой. С 1 сентября 2026 года действует Федеральный закон от 04.08.2026 № 282-ФЗ «О цифровых валютах и цифровых правах»: по части 6 статьи 1 принимать цифровые валюты в качестве средства платежа за товары, работы и услуги в России запрещено. Исключения перечислены в части 7 той же статьи, и первое из них — расчёты по внешнеторговым договорам между резидентами и нерезидентами. Проще говоря, бот, который продаёт за USDT покупателям внутри России, под запрет попадает, а внешнеторговый договор с иностранным клиентом — отдельный разговор с юристом. Как с этим в Беларуси, Казахстане и Европе, мы разбирали в статье о том, можно ли принимать оплату в криптовалюте по закону.

    Коротко

    Оплата криптой в Телеграм-боте — это внешняя оплата по ссылке, а не встроенная функция мессенджера. Бот создаёт заказ у платёжного сервиса, присылает покупателю ссылку, а товар выдаёт только после подписанного уведомления со статусом «оплачено». Цифровые товары и услуги, которые продаются в Телеграме, по правилам платформы оплачиваются только звёздами, какие бы сайты и сервисы ни стояли у вас вне Телеграма; криптовалюта по ссылке — для физических товаров и услуг в реальном мире. Можно ли принимать криптовалюту вообще, решает закон страны продавца.

    Вопросы и ответы

    Как сделать платного бота с подпиской?

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

    Можно ли выставлять счета клиентам прямо через бота?

    Да, и это та же схема, только вместо кнопки «Купить» заказ создаёт команда или ваше сообщение: бот по команде создаёт заказ на нужную сумму и присылает клиенту ссылку на оплату. Так удобно брать оплату за ремонт, монтаж, уборку и другие услуги в реальном мире, где сумма каждый раз своя. Статус оплаты бот получает тем же вебхуком, и вам не нужно сверять переводы руками.

    Может ли покупатель заплатить с биржи, а не из кошелька?

    Может: он оформляет на бирже вывод на адрес и сумму из счёта, как перевод на любой другой адрес. Два момента, о которых стоит предупредить в сообщении бота: сеть вывода должна совпадать с сетью в счёте, а комиссию за вывод биржа может удержать из суммы, и тогда придёт меньше, чем в счёте. Чтобы не было недоплаты, покупателю стоит указывать сумму с запасом на комиссию биржи.

    Чем оплата звёздами отличается от оплаты криптой?

    Звёзды — это внутренняя валюта Телеграма: покупатель покупает их в приложении, а бот выставляет счёт в звёздах, и всё происходит внутри мессенджера. Криптовалюта в бот не встроена: покупатель платит переводом в сети на адрес платёжного сервиса. Про мини-приложения вопрос стоит отдельно: там тоже действует правило про звёзды, и мы разбирали, можно ли принимать USDT в мини-приложении Телеграма.

    Эта статья не является юридической или налоговой консультацией: нормы меняются, и перед запуском платного бота стоит свериться с актуальным законодательством своей страны или с юристом.

    Начните приём криптовалют сейчас

    Создайте аккаунт и подключите оплату самостоятельно, или свяжитесь с нами и мы поможем всё настроить