- Коротко про головне
- Что такое Telegram Stars и зачем это нужно разработчику
- Что можно продавать за Stars: форматы и ограничения
- Пошаговая настройка: от BotFather до первого платежа
- Рабочий код бота на Python
- Хостинг и запуск в продакшене
- Сравнение способов монетизации Telegram-ботов
- Вывод Stars: как получить реальные деньги
- Риски и кому это не подойдёт
- Частые вопросы
- Нужен ли платёжный провайдер (Stripe, ЮKassa) для приёма Stars?
- Как вывести Telegram Stars в реальные деньги?
- Обязателен ли обработчик pre_checkout_query?
- Можно ли продавать физические товары за Telegram Stars?
- Какую минимальную цену можно поставить в Stars?
- Похожие материалы
- 🔥 Читайте также:
Коротко про головне
Для кого: разработчики и авторы с действующим Telegram-ботом, которые хотят монетизировать его через продажу цифрового контента или доступа к функциям — без подключения сторонних платёжных шлюзов.
Что нужно на старт: зарегистрированный бот в BotFather, базовое знание Python или другого языка с поддержкой Telegram Bot API, хостинг для непрерывной работы бота.
Реалистичный результат: минимальный рабочий приём платежей поднимается за один вечер; уровень дохода определяется размером аудитории и ценностью продукта, а не сложностью интеграции.
Главный риск: Stars — внутренняя валюта Telegram, и их конвертация в реальные деньги происходит через инструменты платформы с комиссией; прямого вывода в фиат нет.
Кому не подойдёт: ботам с физическими товарами, проектам, которым критически важен прямой расчёт в фиате, а также сервисам в юрисдикциях с ограничениями на криптовалютные операции.
Что такое Telegram Stars и зачем это нужно разработчику
Telegram Stars — внутренняя валюта мессенджера, запущенная в 2024 году. Пользователи покупают Stars за реальные деньги через App Store или Google Play, а затем тратят их внутри Telegram: отправляют в чатах, оплачивают цифровые товары в ботах, разблокируют функции каналов.
Для разработчика бота это открывает доступ к платёжной инфраструктуре без необходимости регистрировать юридическое лицо под приём карточных платежей, заключать договор с эквайером и проходить PCI DSS. Telegram берёт на себя всю техническую сторону транзакций, обработку покупок через магазины приложений и фрод-мониторинг. Разработчик получает только событие об успешной оплате и количество Stars.
Важное ограничение: Stars нельзя принимать за физические товары, реальные услуги вне платформы или что-либо, нарушающее правила App Store и Google Play. Формально Stars предназначены для цифрового контента — подписок, виртуальных предметов, доступа к функциям бота, эксклюзивных материалов.
С точки зрения рыночной логики: аудитория Telegram огромна, порог входа для покупателя низкий (Stars покупаются в несколько нажатий прямо в приложении), а для разработчика интеграция занимает в разы меньше времени, чем подключение классического эквайринга.
Что можно продавать за Stars: форматы и ограничения
Платформа достаточно чётко разграничивает допустимые категории. На практике Stars хорошо подходят для следующих продуктов:
- Подписки на расширенный функционал бота: снятие лимитов, премиум-режим, приоритетная обработка запросов.
- Разовые цифровые товары: доступ к курсу, PDF-документу, архиву файлов, промокоду.
- Виртуальные предметы в играх и квестах внутри Telegram.
- Эксклюзивный контент: статьи, видео, аудиозаписи, закрытые каналы.
- Разовые сессии: генерация изображений с лимитом, AI-запросы, автоматизированные консультации.
Продавать физические товары, криптовалюту, услуги реального мира — нельзя. Это нарушает правила платформы и может привести к блокировке бота без предупреждения.
Пошаговая настройка: от BotFather до первого платежа
- Откройте BotFather в Telegram. Выберите нужного бота командой
/mybots→ Bot Settings. - Перейдите в раздел Payments. Для Stars внешний провайдер не нужен — выберите «Telegram Stars» из списка. Никаких ключей API провайдера не требуется.
- Скопируйте токен бота (если ещё не сделали). Он нужен в коде.
- Установите библиотеку:
pip install python-telegram-botверсии 20 и выше — в ней асинхронный интерфейс, который используется в примере ниже. - Реализуйте три обязательных обработчика: отправку инвойса, подтверждение
pre_checkout_queryи обработкуsuccessful_payment. - Задеплойте бота на VPS или serverless-хостинг. Для тестирования подойдёт локальный запуск через polling.
- Проверьте оплату: BotFather позволяет отправить тестовые Stars, чтобы убедиться в корректной работе обработчиков перед выходом в продакшен.
Ключевой момент, который часто упускают: в отличие от обычных платёжных провайдеров, для Stars поле provider_token в инвойсе оставляют пустым или вовсе не передают. Платёж идёт напрямую через Telegram.
Рабочий код бота на Python
Минимальный воспроизводимый пример на python-telegram-bot v20+. Обрабатывает команду /buy, формирует инвойс в Stars, проверяет платёж и выдаёт доступ пользователю.
import asyncio
from telegram import Update, LabeledPrice
from telegram.ext import (
Application,
CommandHandler,
PreCheckoutQueryHandler,
MessageHandler,
filters,
ContextTypes,
)
BOT_TOKEN = "ВАШ_ТОКЕН_ЗДЕСЬ"
# Цена в Stars (1 единица = 1 Star)
PRICE_STARS = 100
PRODUCT_PAYLOAD = "premium_30_days"
async def start(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
await update.message.reply_text(
"Привет! Введите /buy, чтобы получить премиум-доступ за Telegram Stars."
)
async def buy(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
await context.bot.send_invoice(
chat_id=update.effective_chat.id,
title="Премиум-доступ на 30 дней",
description="Снимает все лимиты и открывает расширенные функции бота.",
payload=PRODUCT_PAYLOAD,
currency="XTR", # XTR — официальный код Telegram Stars в Bot API
prices=[LabeledPrice("Премиум", PRICE_STARS)],
# provider_token не передаётся для Stars — это намеренно
)
async def precheckout(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
"""
Обязательный обработчик. Без него Telegram отменит платёж через 10 секунд.
Здесь проверяем корректность payload и наличие товара.
"""
query = update.pre_checkout_query
if query.invoice_payload != PRODUCT_PAYLOAD:
await query.answer(ok=False, error_message="Неизвестный товар.")
return
await query.answer(ok=True)
async def successful_payment(
update: Update, context: ContextTypes.DEFAULT_TYPE
) -> None:
payment = update.message.successful_payment
user_id = update.effective_user.id
stars_received = payment.total_amount
# Здесь размещается логика выдачи доступа:
# запись в БД, отправка файла, активация роли и т.д.
await update.message.reply_text(
f"Оплата получена: {stars_received} Stars. Доступ активирован, user_id={user_id}."
)
def main() -> None:
app = Application.builder().token(BOT_TOKEN).build()
app.add_handler(CommandHandler("start", start))
app.add_handler(CommandHandler("buy", buy))
app.add_handler(PreCheckoutQueryHandler(precheckout))
app.add_handler(
MessageHandler(filters.SUCCESSFUL_PAYMENT, successful_payment)
)
app.run_polling()
if __name__ == "__main__":
main()
Несколько пояснений по коду. Валюта XTR — официальный ISO-код Stars в Telegram Bot API, именно его нужно передавать в поле currency. Обработчик precheckout — не опциональная деталь, а обязательное требование: если бот не ответит на pre_checkout_query в течение 10 секунд, транзакция будет автоматически отклонена. В реальном проекте в этом же обработчике стоит проверять наличие товара в базе данных и допустимость покупки для конкретного пользователя (например, не куплено ли уже). Вся бизнес-логика выдачи доступа размещается в successful_payment — именно это событие означает, что деньги списаны и Stars зачислены.
Хостинг и запуск в продакшене
Бот должен работать непрерывно. Есть два режима: polling (бот сам опрашивает сервер Telegram) и webhook (Telegram отправляет обновления на ваш URL). Для продакшена webhook предпочтительнее: он не держит постоянное соединение, лучше масштабируется и потребляет меньше ресурсов при большой нагрузке.
Для webhook нужен HTTPS-домен с валидным сертификатом. На период разработки и тестирования удобен ngrok — он создаёт публичный туннель к локальному порту. В продакшене используют VPS с nginx в качестве reverse proxy.
Минимальный VPS с 512 МБ RAM справляется с ботом, пока аудитория не превышает несколько тысяч одновременно активных пользователей. При росте нагрузки добавляют очередь задач (например, Celery + Redis) и выносят бизнес-логику в отдельный сервис. Актуальные тарифы на хостинг уточняйте у провайдера — они регулярно меняются.
Сравнение способов монетизации Telegram-ботов
| Параметр | Telegram Stars | Внешний шлюз (Stripe, ЮKassa и др.) | TON-платежи |
|---|---|---|---|
| Нужен ли мерчант-аккаунт | Нет | Да | Нет |
| Фиатный вывод | Через Fragment → TON → биржа | Прямо на расчётный счёт | Через биржу |
| Комиссия платформы | Есть (уточняйте на fragment.com) | Обычно 1,5–3% + фиксированная часть | Зависит от сети и биржи |
| Порог входа для разработчика | Низкий | Средний | Средний |
| Интеграция с Telegram Bot API | Встроена нативно | Через Payments API + токен провайдера | Через отдельные библиотеки |
| Подходит для физических товаров | Нет | Да (с ограничениями) | Как правило, нет |
| Зависимость от политики платформы | Высокая | Средняя | Средняя |
Таблица отражает принципиальные различия, а не конкретные ставки: они меняются. Перед выбором схемы проверьте актуальные условия у каждого провайдера и в официальной документации Telegram.
Вывод Stars: как получить реальные деньги
Stars, полученные ботом, накапливаются на балансе. Telegram предоставляет платформу Fragment для работы с ними. Через Fragment Stars конвертируются в TON, а TON выводится на биржу или криптокошелёк. Прямой конвертации Stars в фиат без промежуточного шага нет.
Существует минимальный порог для вывода. Точные условия и размер комиссий стоит проверять непосредственно на fragment.com — они периодически пересматриваются, и любая цифра здесь рискует устареть.
С точки зрения налогов: ситуация зависит от страны. В большинстве юрисдикций доход от криптовалютных операций облагается налогом. Если Stars — значимый источник дохода, имеет смысл заранее проконсультироваться с бухгалтером, работающим с криптовалютными операциями.
Риски и кому это не подойдёт
Несколько реальных проблем, с которыми сталкиваются разработчики.
Зависимость от одной платформы. Telegram может изменить правила работы Stars, комиссии или условия вывода. История знает примеры, когда условия монетизации внутри мессенджеров менялись без длительного переходного периода. Если Stars — единственный источник дохода проекта, это концентрированный платформенный риск.
Цепочка конвертации и волатильность. Stars → TON → фиат — три шага, каждый с комиссией. Курс TON волатилен, и реальный выход в фиат может оказаться заметно меньше номинальной суммы, накопленной в Stars. При небольших объёмах потери на конвертации бывают ощутимыми.
Ограниченная платящая аудитория. Не все пользователи Telegram готовы или умеют покупать Stars. Платящая аудитория — это пересечение пользователей мессенджера с теми, кто уже совершал in-app-покупки. Для ряда ниш этот сегмент оказывается узким.
Нарушение правил. Продажа физических товаров, реальных услуг вне платформы, чего-либо, нарушающего политику App Store или Google Play, — прямой путь к блокировке бота. Telegram не всегда предупреждает об этом заранее.
Кому Stars не подходят: командам, которым нужен предсказуемый фиатный поток без промежуточных конвертаций; проектам, чья аудитория принципиально не использует мобильное приложение Telegram; бизнесам в юрисдикциях, где криптовалютные операции ограничены или запрещены; авторам, которые хотят продавать физические товары или реальные услуги вне Telegram.
Взвешенный вывод: Stars — удобный инструмент для монетизации цифрового контента внутри Telegram, особенно если у вас уже есть работающая аудитория в боте. Интеграция технически несложная, порог входа низкий. Основные ограничения лежат не в технической плоскости, а в схеме вывода средств и зависимости от правил платформы — их стоит изучить до того, как строить бизнес-модель вокруг Stars.
Частые вопросы
Нужен ли платёжный провайдер (Stripe, ЮKassa) для приёма Stars?
Нет. Для Telegram Stars внешний провайдер не нужен — Telegram сам выступает платёжной системой. Поле provider_token в инвойсе оставляется пустым или не передаётся вовсе. Это одно из ключевых отличий Stars от классической интеграции Telegram Payments с картами.
Как вывести Telegram Stars в реальные деньги?
Прямой конвертации Stars в фиат нет. Схема: Stars накапливаются на балансе бота, затем через платформу Fragment конвертируются в TON, а TON выводится на биржу или кошелёк. Каждый этап сопровождается комиссией, актуальные условия стоит проверять на fragment.com.
Обязателен ли обработчик pre_checkout_query?
Да, это обязательное требование Telegram Bot API. Если бот не ответит на pre_checkout_query в течение 10 секунд, платёж будет автоматически отменён. В обработчике нужно вызвать query.answer(ok=True) после проверки корректности товара и пользователя.
Можно ли продавать физические товары за Telegram Stars?
Нет. Правила Telegram и магазинов приложений запрещают использование Stars для оплаты физических товаров и услуг реального мира. Нарушение может привести к блокировке бота. Stars предназначены исключительно для цифрового контента и виртуальных услуг внутри платформы.
Какую минимальную цену можно поставить в Stars?
Минимальная цена — 1 Star. На практике размер ценника стоит привязывать к воспринимаемой ценности продукта, а не к минимальному порогу. Для значимых покупок (доступ, подписка) обычно выставляют от 50 Stars и выше; текущий курс Stars к доллару стоит проверять отдельно, он меняется.