Выбор решается не вкусом, а тем, что вы продаёте и где покупатель это получает. Цифровой контент, который потребляется прямо внутри Telegram — платные стикеры, разблокировка уровня в игре-боте, доступ к каналу, генерации внутри мини-приложения, — по правилам платформы оплачивается звёздами. Всё, что человек получает за пределами мессенджера: консультация, занятие с преподавателем, доставка товара, подписка на внешний сервис, — оплачивается обычными платёжными методами.
Дальше — честный разбор обеих сторон: где звёзды удобны, где они превращаются в проблему, что происходит с деньгами и как жить, если в проекте нужны оба способа.
Правило платформы простыми словами
Telegram различает два типа продаж. Первый — цифровые товары и услуги, которые существуют только внутри мессенджера и не имеют ценности снаружи. Второй — физические товары и услуги реального мира, а также цифровые продукты, живущие за пределами Telegram.
Для первого типа платформа требует использовать Stars, и попытка увести такую оплату на внешнюю ссылку — не хитрость, а нарушение правил, за которое бота ограничивают. Для второго типа звёзды, наоборот, не предназначены: там работают обычные платёжные провайдеры и платёжные ссылки.
Границу определяет не техника, а то, что получает покупатель. Одна и та же кнопка «Оплатить 500 ₽» может относиться к разным типам продаж — смотрите на товар, а не на интерфейс.
Где Stars уместны
- Игровой бот. Жизни, подсказки, ускорение, косметика — всё это существует только внутри вашей игры.
- Платный функционал мини-приложения. Снятие лимита на генерации, премиум-фильтры, расширенная статистика.
- Донаты автору канала. Реакции, платные сообщения, поддержка — сценарий, под который звёзды и делались.
- Микроплатежи. Покупка на 30–100 ₽ через внешний платёж почти всегда выглядит громоздко, а в звёздах это два касания.
- Международная аудитория. Звёзды одинаково работают у пользователя из любой страны, и вам не нужно думать о его банке.
Техническая сторона проще, чем у внешней интеграции: бот выставляет счёт через Bot API, Telegram сам показывает форму, а результат приходит апдейтом. Отдельного платёжного провайдера, ключей и колбэков нет.
Где звёзды не подходят
Список короткий, но именно он определяет выбор для большинства коммерческих проектов:
- Услуги реального мира. Консультация, урок английского, стрижка, ремонт, доставка еды.
- Физические товары. Всё, что едет курьером или почтой.
- Крупные суммы. Курс за 30 000 ₽ или корпоративный тариф в звёздах покупатель оплачивать не станет: ему нужно пополнить баланс на сумму, сопоставимую с зарплатной картой.
- B2B и оплата от компании. Бухгалтерии нужен понятный платёж с назначением, а не покупка внутриигровой валюты.
- Продукт, который живёт вне Telegram. Веб-сервис, приложение, лицензия — бот здесь только канал продаж.
Отдельный практический аргумент — цена входа для покупателя. Чтобы заплатить звёздами, человек сначала покупает их, и на этом шаге теряется часть аудитории, особенно взрослой и непривычной к игровым валютам. Для внешней оплаты по СБП такого шага нет: покупатель нажимает кнопку и подтверждает перевод в приложении своего банка. Как это выглядит в деталях, разобрано в статье об оплате в Telegram-боте через СБП.
Что происходит с деньгами
Здесь два способа отличаются сильнее всего, и разницу лучше понять до запуска.
Звёзды — это внутренняя валюта. Покупатель приобретает их у Telegram (нередко через магазин приложений, который берёт свою долю), тратит у вас, а вы получаете баланс в звёздах. Чтобы превратить его в деньги, нужен вывод по правилам платформы, и он доступен не сразу: действует период удержания. Актуальные условия и сроки смотрите в документации Telegram — они менялись не раз.
Внешняя оплата — это обычные деньги на вашем счёте. Комиссия известна заранее и зависит от условий подключения, которые подтверждает модерация. Валюта — рубли, зачисление идёт по расписанию выплат, а каждая транзакция видна в личном кабинете с суммой, статусом и order_id. Для сверки с бухгалтерией это принципиально: у вас есть выгрузка, которую можно сопоставить с заказами. Как её строить, описано в материале о сверке платежей.
Таблица: когда что выбирать
| Сценарий | Способ | Почему так |
|---|---|---|
| Подсказка в игре-боте за 50 ₽ | Stars | Цифровое, внутри Telegram, микросумма |
| Премиум-режим мини-приложения | Stars | Потребляется внутри мессенджера |
| Курс на 12 занятий за 24 000 ₽ | Внешняя оплата | Крупная сумма, обучение с живым преподавателем |
| Консультация юриста | Внешняя оплата | Услуга реального мира |
| Печатный мерч из бота-магазина | Внешняя оплата | Физический товар с доставкой |
| Подписка на внешний SaaS | Внешняя оплата | Продукт живёт вне Telegram |
| Донат автору канала | Stars | Поддержка внутри платформы |
Оба способа в одном проекте
Это нормальная и частая конфигурация. Бот-фоторедактор продаёт пакеты генераций звёздами, а фирменный альбом с печатью — по внешней ссылке. Ничего согласовывать между способами не нужно, но два правила стоит соблюдать.
Первое: одна и та же покупка не должна быть доступна двумя способами «на выбор». Это выглядит как попытка увести оплату мимо правил платформы и создаёт путаницу в учёте. Второе: заказы обоих типов пишите в одну таблицу с полем source (stars или external). Иначе вы никогда не соберёте честный отчёт по выручке.
Момент выдачи товара в каждой схеме
Механики разные, но вывод одинаковый: право открыть доступ даёт сервер, а не действие пользователя.
У звёзд бот сначала получает pre_checkout_query — это вопрос «можно ли проводить платёж», на который нужно ответить в течение десяти секунд. Клуб настольных игр открывал доступ прямо в этом обработчике и полгода раздавал платные материалы людям, у которых оплата дальше не проходила. Реальное подтверждение приходит следующим апдейтом — сообщением с полем successful_payment, где лежат telegram_payment_charge_id и ваш invoice_payload. Вот по нему и выдавайте товар.
У внешней оплаты роль такого апдейта играет колбэк payment.paid с заголовком X-Signature: HMAC-SHA256 от X-Timestamp, точки и сырого тела запроса. Подпись считается до разбора JSON и сравнивается constant-time — разбор с примерами есть в статье о проверке подписи вебхука.
Чек, налоги и статус продавца
Выбор способа оплаты не меняет ваших обязанностей перед налоговой. Доход, полученный звёздами, остаётся доходом, и учитывать его нужно так же, как поступления на счёт. Статус продавца, чек и возвраты — ваша ответственность; платёжный сервис отвечает за техническую часть подключения.
Самозанятый формирует чек в приложении «Мой налог» и следит за лимитом 2,4 млн ₽ в год. Если продажи растут, считайте лимит заранее — переход через него посреди года ломает планы сильнее, чем кажется. Что делать без ИП и какие способы доступны, разобрано в решении платежи без ИП, а общий сценарий для бота — в решении платежи в Telegram-боте.