ru

Можно ли принимать USDT в мини-приложении Telegram, или всё продаётся только за звёзды?

Опубликовано
29.06.2026
Обновлено
10.09.2026
Мягкая 3D-иллюстрация пользователя, который подтверждает оплату в кошельке внутри Telegram-подобного mini app окружения с абстрактными монетами и узлами сети
Contents

    У вас есть мини-приложение в Telegram, в нём есть что продавать, и вы хотите принимать оплату в USDT. Но вы слышали, что в Telegram всё продаётся за звёзды, и не уверены, разрешена ли здесь криптовалюта вообще.

    Короткий ответ: зависит от того, что покупатель получает за деньги. Всё, что покупатель получает внутри Telegram, продаётся только за звёзды: криптовалюту за такое брать запрещают правила платформы. Всё, что покупатель получает за пределами Telegram, можно продавать за USDT. Прямо внутри мини-приложения оплата в USDT возможна только в сети TON, а по ссылке вне мини-приложения — в любой сети. Что это за сеть и чем она отличается от привычных TRON и Ethereum, мы объяснили в статье о том, что такое сеть TON и сколько стоит перевод в ней.

    Рассказываем, где проходит эта граница, как подключить оплату звёздами и оплату в USDT и сколько стоит каждая. Отдельно разберём, почему платёж в USDT иногда не уходит у покупателя и в какой момент заказ можно считать оплаченным.

    Что вы продаёте: внутри Telegram или снаружи

    Выбор сети и кошелька подождёт. Сначала стоит ответить на один вопрос: что именно покупатель получает за свои деньги и где он этим пользуется. От ответа зависит всё остальное.

    Возьмём для примера Артёма. Он продаёт через мини-приложение настольные игры с доставкой и платный клуб с разборами партий. Один покупатель заплатил за игру, и через три дня курьер принёс ему коробку. Коробка — вещь из физического мира, и Telegram к ней отношения не имеет. Другой покупатель заплатил за клуб, и у него открылся закрытый чат с разборами. Этот чат существует только внутри Telegram.

    Проще говоря, товары у Артёма разные, и платят за них по-разному. За клуб он берёт только звёзды, потому что так требует платформа. За игры с доставкой он может брать USDT. Если у вас один вид товара, вам нужен один способ оплаты, и ниже видно, какой.

    Курьер с коробкой настольной игры и телефон с закрытым чатом внутри Telegram — два вида покупки, за которые платят по-разному

    Что продаётся только за звёзды

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

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

    • Доступ к закрытому каналу или чату. Клуб Артёма с разборами партий — ровно этот случай.
    • Подписка на бота. Любая платная функция, которую пользователь получает в переписке с ботом.
    • Генерации. Картинки, тексты и ответы нейросети, которые бот выдаёт за деньги.
    • Внутренняя валюта игры. Кристаллы, монеты и жизни в игре, открытой в Telegram.
    • Платные функции самого мини-приложения. Расширенный тариф, дополнительные экраны, снятие ограничений.

    Само правило записано в правилах Telegram для разработчиков ботов, а как устроена оплата, описано в документации по платежам звёздами.

    Криптовалюта для таких товаров не «менее удобный вариант», а нарушение. Если повесить на закрытый чат кнопку «Оплатить в USDT», бота за это могут снять. Так что за цифровые товары внутри Telegram берут звёздами, и выбора здесь нет.

    Когда криптовалюту брать можно и где проходит граница

    Когда покупатель получает что-то за пределами Telegram — товар с доставкой, услугу, доступ на внешний сайт, — платёж идёт мимо платформы. Telegram здесь только место, где стоит магазин. Деньги через него не проходят, и комиссию с таких платежей он не берёт: своё берёт тот, кто платёж обрабатывает. В примере из документации Telegram по платежам через сторонних провайдеров карточный провайдер оставляет себе около 3 % плюс 30 центов с каждого успешного платежа. Это цифра из мира карт, к криптовалюте она не относится, но масштаб комиссий она показывает.

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

    • Оплата внутри мини-приложения. Покупатель нажимает кнопку прямо на вашем экране, и кошелёк открывается тут же. Такой платёж возможен только в сети TON, а кошелёк подключается только через TON Connect. Правила Telegram запрещают мини-приложению показывать монеты других сетей: ни BTC, ни USDT в сети TRON, ни любую другую монету за пределами TON. Кнопка, строка текста, переход на другую страницу — всё это нарушение, если ведёт к монете вне сети TON.
    • Оплата по ссылке вне мини-приложения. Отдельная страница оплаты, ваш сайт, сообщение в переписке с покупателем, где вы даёте адрес такой страницы. На экране мини-приложения ничего из этого нет, поэтому запрет сюда не дотягивается: магазин принимает оплату любой монетой в любой сети.

    Разница простая. Отправить покупателю в чат ссылку на страницу оплаты можно, и сеть там может быть любой. Поставить ту же ссылку кнопкой на экран мини-приложения нельзя, если она ведёт к монете вне сети TON.

    Страницу оплаты обычно выдаёт сторонний сервис приёма платежей: он даёт ссылку на неё или виджет для сайта, следит за переводом и зачисляет деньги на ваш счёт у этого сервиса. CryptumPay, например, работает именно так: и ссылка на оплату, и виджет у него открываются вне мини-приложения. Принимает он монету сети TON, а рядом с ней BTC, ETH, USDT, TRX, BNB, SOL, XRP и другие монеты. Ставка — 1 % за успешный платёж, на больших объёмах от 0,5 %, комиссию можно переложить на покупателя, а поступления сразу при зачислении конвертируются в USDT.

    Отсюда частый вопрос: почему бы не вставить виджет сервиса прямо в мини-приложение, оно ведь показывает обычную веб-страницу? Страница и правда обычная, но запрет здесь не технический. Его задаёт раздел 7 правил Telegram для разработчиков ботов. Мини-приложение с любой криптофункцией обязано работать только с сетью TON и подключать кошельки только через TON Connect. Показывать монеты и кошельки других сетей, прямо или косвенно, ему запрещено. Виджет показывает покупателю список монет из нескольких сетей, и внутри мини-приложения это нарушение. Место виджета и платёжной ссылки — ваш сайт и переписка с покупателем.

    Если хочется разобраться, как вообще устроен приём криптовалюты в Telegram, у нас есть отдельная статья.

    Какая сеть и какой кошелёк внутри мини-приложения: только TON и только TON Connect

    Если мини-приложение вообще работает с блокчейном, Telegram разрешает ему одну сеть — TON, а кошелёк подключается только через TON Connect. Если вы читали, какую сеть выбрать для приёма USDT, то знаете: у обычного интернет-магазина выбор широкий. Внутри мини-приложения выбора нет: USDT в сети TON, и всё. Покупателю с USDT в другой сети придётся сначала перевести их в TON, и мини-приложение ему в этом не поможет.

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

    Подойдёт встроенный кошелёк Telegram, Tonkeeper или MyTonWallet: все три умеют подключаться к мини-приложению по TON Connect, а как работают встроенные кошельки, мы разбирали отдельно.

    Сколько вы получите со звезды и когда деньги дойдут

    Посмотрим, что происходит с деньгами после того, как покупатель заплатил звёздами. Пусть клуб Артёма стоит 500 звёзд в месяц.

    Участник купил звёзды в Telegram и заплатил ими за клуб. Артёму с каждой звезды причитается около 1,3 цента. С 500 звёзд это примерно 6,5 доллара, а с сотни участников — около 650 долларов в месяц. Сколько участник заплатил за сами звёзды, на эту цифру не влияет: владелец бота получает вознаграждение, а не сумму покупки.

    Сразу тронуть эти деньги нельзя. Полученные звёзды держат до 21 дня, то есть до трёх недель: их не вывести и не потратить на рекламу. Потом их можно вывести, причём одним-единственным путём: через Fragment и только на адрес в сети TON. Fragment — это отдельный сайт вне мессенджера, где звёзды бота обменивают на Gram, монету сети TON. Внутри самого Telegram деньги за звёзды не выдают. Курс и порог вывода задаёт Telegram и время от времени меняет, поэтому смотрите их в кабинете, а не в статьях. Как звёзды выглядят со стороны бота, описано в справке по звёздам для разработчиков.

    Путь денег со звезды: заморозка до трёх недель, потом вывод через Fragment на адрес в сети TON

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

    Итого путь такой: покупатель нажал кнопку, звёзды легли на баланс бота, до трёх недель полежали, потом через Fragment превратились в Gram на вашем адресе в сети TON.

    Сколько стоит платёж в USDT и почему он срывается у покупателя

    Теперь оплата в USDT внутри мини-приложения. Покупатель выбрал у Артёма настольную игру за 50 USDT, мини-приложение показало кнопку оплаты, кошелёк открылся — и ничего. Кошелёк не даёт отправить перевод. На балансе ровно 50 USDT, покупатель уверен, что денег хватает, и пишет: «У вас не работает оплата».

    У покупателя есть USDT, но нет Gram на комиссию — кошелёк не отправляет перевод

    Оплата работает. У покупателя нет Gram на комиссию. Перевод делает сеть TON, и плату за эту работу она берёт своей монетой, а не USDT. По правилам перевода токенов в TON к переводу USDT прикладывают около 0,1 Gram. Из них на самом деле тратится около 0,02 Gram, а остаток возвращается на кошелёк.

    Точная величина зависит от кошелька покупателя и от того, получал ли ваш адрес USDT раньше. В сети TON под каждый токен у адреса заводится отдельный счёт. Если USDT приходят на ваш адрес впервые, такого счёта ещё нет: сеть сначала создаёт его, а за это берёт чуть больше. В любом случае речь о копейках.

    Но без этих копеек перевод не уйдёт вообще. Если Gram на балансе нет, USDT никуда не уедут, сколько бы их ни лежало. Это та же история, что и с переводом, который не уходит без монеты на комиссию в других сетях, только монета здесь другая.

    Что делать: предупредить покупателя до того, как он откроет кошелёк, а не после. На экране оплаты стоит написать одной строкой: «Оплата в USDT в сети TON. Для комиссии нужно около 0,1 Gram на кошельке». Одна фраза, и самая частая причина сорванной оплаты снята.

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

    Gram, Toncoin и TON: это одно и то же или нет?

    Здесь покупатели путаются, и путаница мешает платить. Кошелёк пишет «Gram», старая статья говорит «Toncoin», а рядом с балансом стоят три буквы «TON». Человек решает, что попал не туда, и закрывает кошелёк.

    Скажем один раз и прямо. Монета сети называется Gram, а её короткое обозначение, такое же, как USD у доллара, — GRAM. Раньше эта же монета называлась Toncoin с коротким обозначением TON. Имя сменили 15 июня 2026 года по итогам голосования сообщества. Никакого обмена, миграции и получения новых монет не было: 10 Toncoin в кошельке сами стали 10 Gram, адреса и балансы не менялись. Сеть при этом по-прежнему зовётся The Open Network, коротко TON. Официальную позицию сети можно посмотреть на сайте TON.

    В старых инструментах, в части кошельков и в статьях ещё попадается прежнее имя, и это нормально. Если покупатель спрашивает, Gram у него или Toncoin, ответ один: это одна и та же монета, платить можно спокойно.

    Само имя Gram старше сети. Так монета называлась ещё в первом описании 2018 года, когда Telegram продавал будущие монеты инвесторам. Эту продажу остановила американская комиссия по ценным бумагам, и в 2020 году Telegram вернул инвесторам больше 1,2 миллиарда долларов и заплатил штраф 18,5 миллиона.

    Как подключить оплату звёздами

    Этот раздел адресован вашему разработчику: в нём имена методов Bot API, то есть команд, которыми бот разговаривает с Telegram. Если вы сами не программируете, передайте раздел разработчику целиком.

    Оплата звёздами — самый простой способ приёма денег у бота. Платёжного провайдера нет, кошельков нет, сети нет. Всё нужное уже лежит в Bot API, и в BotFather отдельно ничего включать не нужно. Платёж проходит так:

    Шаг 1. Выставьте счёт. Бот отправляет покупателю счёт методом sendInvoice. Валюта в счёте — XTR, так звёзды обозначаются в API, а поле provider_token остаётся пустым: для цифровых товаров платёжный провайдер не нужен вообще. Покупатель видит цену в звёздах и кнопку оплаты.

    Шаг 2. Подтвердите заказ за десять секунд. Перед тем как списать звёзды, Telegram спрашивает ваш сервер, всё ли в порядке: есть ли ещё место в клубе, не поменялась ли цена. Ответить нужно методом answerPreCheckoutQuery, и на ответ у сервера десять секунд. Не успели — платёж не состоится.

    Шаг 3. Дождитесь сообщения об оплате. Когда звёзды списаны, Telegram присылает боту сообщение с полем successful_payment. Доступ к товару открывайте только после него.

    Шаг 4. Сохраните идентификатор платежа. В том же объекте successful_payment лежит идентификатор платежа. Запишите его в базу рядом с заказом: без него вы не сможете сделать возврат.

    Шаг 5. Возвращайте деньги методом refundStarPayment. Если покупатель передумал, возврат делается методом refundStarPayment по сохранённому идентификатору. Возврат идёт звёздами на баланс покупателя.

    На этом всё: пять шагов, и цифровой товар продаётся за звёзды.

    Как подключить оплату в USDT внутри мини-приложения: TON Connect и TON Pay

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

    • Платёжный запрос. Мини-приложение собирает реквизиты платежа: сумму, валюту платежа, номер заказа и срок, после которого платёж уже не примут. Без номера заказа деньги придут, а чьи они, вы не разберёте.
    • Подключение кошелька. Кошелёк подключается по TON Connect: покупатель видит в нём сумму и адрес и подписывает перевод.
    • Отслеживание. Ваш сервер следит за переводом в сети, сопоставляет его с заказом и меняет заказу статус.

    Собирать всё это с нуля не обязательно. У сети есть готовый набор TON Pay: в нём два пакета, для сервера и для интерфейса, а в пакете для интерфейса лежит готовая кнопка оплаты TonPayButton. Перевод набор отслеживает сам. Он принимает и Gram, и токены вроде USDT. Мини-приложения он тоже поддерживает. На практике это значит: кнопку писать самому не нужно, а о статусе перевода сервер узнаёт из готового пакета, и писать свою программу, которая постоянно опрашивает сеть, не придётся. Уведомления на сервер у TON Pay тоже есть, но пока в закрытой бете: рассчитывать на них при запуске не стоит, отслеживание перевода надёжнее.

    Одна оговорка про названия. Часть инструментов и документации до сих пор пользуется прежним именем монеты, поэтому до запуска пройдитесь по своему интерфейсу и проверьте, что кнопка, экран оплаты и ответы поддержки называют монету одинаково.

    Когда считать заказ оплаченным

    Покупатель подписал перевод в кошельке и вернулся в мини-приложение. Для него оплата закончилась. Для вас она только началась: подпись в кошельке — это ещё не зачисление.

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

    Сверять платежи глазами при этом не нужно. У перевода на карту нет номера заказа, поэтому суммы приходится сравнивать вручную. У криптоплатежа номер заказа есть с самого начала, и перевод с заказом сопоставляет сервер: перевод с нужной суммой и номером нашёлся — заказ оплачен, не нашёлся — нет. Внутри мини-приложения эту сверку делает ваш сервер или отслеживание TON Pay. Если платёж шёл по ссылке через сервис приёма платежей, сверку ведёт сервис и при каждой смене статуса присылает уведомление на ваш сервер. У CryptumPay статусы такие:

    • created — счёт выставлен, покупатель ещё не платил.
    • pending — перевод найден в сети и ждёт подтверждения.
    • crediting — деньги зачисляются на ваш счёт.
    • finished — всё готово. Товар отправляют только по этому статусу.

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

    Что в итоге

    Всё, что покупатель получает внутри Telegram, продаётся только за звёзды. С каждой звезды вам причитается около 1,3 цента. Эти деньги до трёх недель лежат на балансе бота, а потом выводятся только через Fragment и только в Gram. Всё, что покупатель получает за пределами Telegram, можно продавать за USDT.

    Внутри мини-приложения оплата в USDT идёт только в сети TON, посредника нет, а покупателю нужно немного Gram на комиссию. По ссылке вне мини-приложения сеть может быть любой, а сверку ведёт сервис приёма платежей. CryptumPay берёт за приём 1 % с успешного платежа, а деньги отдаёт уже в USDT.

    Держать оба способа оплаты сразу можно: цифровое за звёзды, всё остальное за USDT. И в любом случае подпись в кошельке — это ещё не зачисление: товар отдают, когда сервер нашёл перевод в сети и сопоставил его с заказом.

    Ответы на частые вопросы

    Мои покупатели держат USDT в TRON. Можно показать им оплату в этой сети? Внутри мини-приложения нет: разрешена только сеть TON и только кошелёк по TON Connect, другие сети нельзя даже показывать. Покупатель может сам перевести USDT в сеть TON через биржу или кошелёк: это его шаг, а не ваш. Или вы отправляете покупателю в переписке ссылку на страницу оплаты: она открывается вне мини-приложения, и там сеть может быть любой.

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

    Мне пишут, что после переименования нужно получить новые монеты GRAM. Это правда? Нет. Получать ничего не нужно: переименование Toncoin в Gram прошло без обмена, балансы не менялись, и Gram уже лежат в кошельке у всех, у кого лежали Toncoin. Любой сайт, который предлагает «забрать новые GRAM» и просит подключить кошелёк, — мошеннический, и подписывать там ничего нельзя.

    Может ли одна кнопка принимать и звёзды, и USDT? Нет, это два разных способа оплаты. Звёзды идут через счёт Telegram, USDT — через кошелёк покупателя в сети TON. Кнопки две, и каждая стоит у своего товара: у закрытого чата одна, у товара с доставкой другая.

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

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

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