Бот для платного Telegram-канала: как продавать доступ по подписке и закрывать его автоматически
Короткий ответ: бот для платного канала принимает оплату, выдаёт покупателю персональную ссылку-приглашение, хранит дату окончания доступа, напоминает о продлении и сам убирает из канала тех, кто не продлил. Если вам хватает ежемесячной цены в Telegram Stars, бот можно не делать: у Telegram есть встроенные платные ссылки-приглашения. Свой бот нужен, когда вы хотите несколько тарифов, пробный период, промокоды, свою базу подписчиков и связь с CRM. До запуска проверьте два вопроса, которые не решает код: правила Telegram для цифровых товаров и кассовые чеки по 54-ФЗ.
Как устроен платный канал с ботом?
Канал делают приватным, бота добавляют в него администратором с правом приглашать и удалять участников. Человек пишет боту, выбирает тариф, платит, бот получает подтверждение оплаты и выдаёт ссылку, по которой можно войти один раз. Дальше бот следит за датой окончания.
Вся работа держится на небольшой базе данных. Минимально в ней четыре сущности:
- Подписчик — Telegram ID, имя, контакт для чека, согласие на рассылку.
- Тариф — название, цена, длительность в днях, признак пробного периода.
- Оплата — сумма, способ, статус от платёжного сервиса, номер чека.
- Доступ — канал, дата начала, дата окончания, выданная ссылка и её статус.
Ключ во всех таблицах — Telegram ID, а не имя пользователя. Имя (@username) человек может сменить или удалить в любой момент, а ID остаётся постоянным.
Отдельный процесс — планировщик. Раз в несколько минут или раз в час он проходит по базе: кому пора напомнить, у кого закончился доступ, какие выданные ссылки не использованы и их пора отозвать.
| Способ | Как работает | Плюс | Риск |
|---|---|---|---|
| Общая ссылка-приглашение | Одна постоянная ссылка, которую отправляют всем, кто заплатил | Ничего не нужно программировать | Ссылку пересылают друзьям, и в канал попадают люди без оплаты |
| Ссылка на одного человека | Бот создаёт ссылку с лимитом в одного участника и сроком жизни | Пока покупатель в канале, по ссылке больше никто не войдёт | Лимит считает одновременных участников: если покупатель выйдет, по неотозванной ссылке войдёт другой; если переслал до входа — войдёт не он |
| Заявка на вступление | Ссылка требует одобрения, бот одобряет только того, кто платил | Вход строго по Telegram ID плательщика | Нужно хранить, с какого ID пришла оплата, и обрабатывать заявки без задержек |
| Подписка за Stars | Встроенная платная ссылка Telegram: 30 дней доступа за звёзды | Продление и списание делает сам Telegram | Только Stars и только месячный период, свою логику скидок не добавить |
Как выдавать и отзывать доступ?
Выдавайте каждому покупателю свою ссылку: с лимитом в одного участника и сроком жизни или с заявкой на вступление, которую бот одобряет только для того Telegram ID, с которого пришла оплата. Отзывайте доступ методом, который убирает человека из канала, но не запрещает вернуться после новой оплаты.
Что даёт для этого официальный Bot API на октябрь 2026 года:
- createChatInviteLink создаёт дополнительную ссылку. Параметр member_limit задаёт, сколько вошедших по ней человек могут одновременно состоять в канале (от 1 до 99 999): если участник выйдет, место освободится, expire_date задаёт момент, когда ссылка перестанет работать. Параметр creates_join_request включает заявки на вступление, и тогда лимит участников указать нельзя: это два разных режима.
- approveChatJoinRequest одобряет заявку. Бот получает событие о заявке, в котором есть ID пользователя и ссылка, по которой он пришёл, — по ним и проверяется, что входит именно плательщик.
- revokeChatInviteLink отзывает ссылку. Из-за того что лимит считает одновременных участников, её стоит вызывать сразу после того, как человек вошёл, и по расписанию для ссылок, которыми так и не воспользовались.
- banChatMember исключает участника и запрещает ему возвращаться по ссылкам, пока его не разбанят. Если указать срок бана больше 366 дней или меньше 30 секунд, Telegram считает его вечным.
- unbanChatMember по умолчанию гарантирует, что после вызова человек не состоит в канале, но может войти снова. Для истёкшей подписки это удобный вариант: один вызов убирает из канала и не мешает вернуться после продления.
Для всех этих методов бот должен быть администратором канала с нужными правами. Бот без права приглашать участников продаст доступ, но ссылку не выдаст.
Как работают продление и напоминания?
Продление бывает ручным: бот заранее напоминает, человек снова платит, дата окончания сдвигается. И автоматическим: Telegram или платёжный сервис сам списывает плату каждый период. Ручное проще и прозрачнее, автоматическое избавляет подписчика от лишнего шага, но требует отдельного согласия покупателя и поддержки со стороны платёжного сервиса.
Рабочая схема напоминаний для месячной подписки:
- За 3 дня — сообщение с датой окончания и кнопкой «Продлить».
- За 1 день — повтор с той же кнопкой; здесь уместно предложить тариф на три месяца.
- В день окончания — «доступ закрывается сегодня», без давления.
- После исключения — одно сообщение с возможностью вернуться. Дальше в личку не пишите: человек решил не продлевать.
Учтите ограничение платформы: бот может написать только тому, кто сам начал с ним диалог и не заблокировал его. Если подписчик остановил бота, отметьте в базе, что напоминания не доставляются, и не повторяйте их каждый час.
Продление должно прибавлять дни к текущей дате окончания, а не к дате оплаты. Иначе человек, который продлил за три дня до конца, теряет эти три дня, и вы получаете обоснованную претензию.
Два режима, которые часто просят добавить:
- Пробный период. Выдаётся один раз на Telegram ID, длится 3–7 дней, после него — те же напоминания. Без привязки к ID одни и те же люди берут пробный доступ с новых диалогов снова и снова.
- Промокоды. У каждого кода — скидка, срок действия, лимит использований и тарифы, к которым он применим. Код проверяется до выставления счёта и попадает в отчёт: так видно, какой партнёр привёл подписчиков.
Какие способы оплаты допустимы для цифрового доступа?
Telegram прямо требует продавать цифровые товары и услуги в ботах и мини-приложениях только за Telegram Stars. Доступ к закрытому контенту канала обычно относят к цифровым услугам. Другие валюты и платёжные сервисы платформа разрешает для физических товаров и услуг. Перед запуском сверьте актуальную редакцию правил.
Что сказано на странице о платежах в Stars на октябрь 2026 года:
- цифровые товары и услуги внутри приложений Telegram продаются только за Stars, валюта платежа — XTR;
- правило действует независимо от того, какие сайты, сервисы и платёжные системы вы используете вне Telegram;
- если для цифровых товаров использовать другие валюты или провайдеров, Telegram может перестать показывать бота пользователям мобильных приложений;
- возврат за цифровую покупку бот делает методом refundStarPayment.
Для каналов у Telegram есть и готовый вариант: метод createChatSubscriptionInviteLink создаёт платную ссылку-приглашение. Период сейчас фиксирован — 30 дней (2 592 000 секунд), цена — от 1 до 10 000 Stars за период. Telegram сам списывает плату и продлевает доступ, а бот может создавать такие ссылки, если у него есть право приглашать участников.
- Если аудитория готова платить звёздами и вам достаточно одного месячного тарифа, встроенная подписка закрывает задачу без собственной логики продлений.
- Если вы хотите рубли и карты, схему выбирают с юристом до разработки: где проходит оплата, что именно вы продаёте (консультацию, курс с сопровождением, доступ к материалам) и как это описано в оферте. Мы честно предупреждаем: готовой схемы «карта в боте за доступ к каналу», которую платформа точно не сочтёт нарушением, нет.
- Если вы продаёте не только канал, но и физический товар или очную услугу, это отдельные позиции с другими правилами оплаты; о магазине в боте — в статье «Telegram-бот для продаж».
Чеки и учёт
Если организация или ИП принимает оплату картой или через СБП, по общему правилу ст. 1.2 закона 54-ФЗ покупателю нужно выдать электронный чек. Подписка — это повторяющиеся платежи, поэтому чек нужен на каждое продление, а бот должен заранее собрать e-mail или телефон, куда его отправить.
Опорная норма — статья 1.2 54-ФЗ: контрольно-кассовую технику при расчётах применяют организации и ИП, а при расчётах через интернет чек передаётся покупателю в электронной форме. Подробно о кассах, агрегаторах и данных для чека — в статье «Как принимать оплату на сайте»; для бота схема та же.
Что бот должен передавать и хранить для учёта:
- контакт для чека — запросите его до первой оплаты и дайте возможность изменить;
- наименование позиции так, как его согласовал бухгалтер, например «Доступ к закрытому каналу, 30 дней»;
- признак предмета расчёта и ставку НДС — их выбирает бухгалтер по вашей системе налогообложения;
- связь «оплата — чек — период доступа», чтобы при возврате было видно, за какие дни возвращать деньги.
С оплатой в Stars ситуация другая: деньги покупателя принимает Telegram, а вы получаете звёзды и выводите их по правилам платформы. Как это отражать в учёте и возникает ли у вас обязанность выдать чек, решает бухгалтер, — общего ответа на все случаи мы не даём.
Не забудьте про документы: оферту с условиями подписки, порядком продления и возврата и политику обработки персональных данных. Бот хранит Telegram ID и контакт для чека — это персональные данные, и согласие на их обработку запрашивается отдельно.
Какие ошибки встречаются чаще всего?
Почти все проблемы платных каналов связаны не с оплатой, а с доступом: ссылка уходит посторонним, бот закрывает доступ не тому человеку или не закрывает его вовсе. Проверьте это в тестовом прогоне.
- Доступ по факту возврата в бота, а не по подтверждению оплаты. Человек может вернуться со страницы оплаты, не заплатив. Доступ выдаётся только после подтверждения от платёжного сервиса или события успешного платежа в Telegram.
- Повторная выдача при двойном нажатии. Один платёж — одна ссылка; повторное уведомление о том же платеже не должно создавать вторую.
- Бан вместо исключения. После banChatMember человек не вернётся даже после оплаты, пока его не разбанят. В итоге он платит и пишет в поддержку.
- Человек вышел сам до окончания. Бот должен уметь выдать новую ссылку в пределах оплаченного срока, не требуя повторной оплаты.
- Часовые пояса. Даты хранятся в одном поясе, а в сообщениях показываются понятно: «доступ до 30 ноября включительно».
- Массовое исключение в одну секунду. Если сотни подписок заканчиваются в один день, исключение и напоминания распределяют по времени, а не отправляют пачкой.
- Ручные правки без следа. Если администратор продлил кому-то доступ вручную, это должно попасть в базу, иначе планировщик закроет доступ по старой дате.
Когда отдельный бот не нужен?
Бот не нужен, если подписчиков немного и вы готовы вести их вручную, если хватает встроенной месячной подписки за Stars или если вы продаёте разовый доступ без продлений. В этих случаях проще настроить то, что уже есть в Telegram, чем заказывать разработку.
- Десятки подписчиков. Таблица с датами и пять минут в неделю дешевле бота, пока сверка не отнимает часы.
- Один тариф, оплата в звёздах. Встроенная платная ссылка-приглашение уже делает продление и исключение.
- Разовая продажа. Если доступ по условиям продукта не ограничен сроком, достаточно выдать персональную ссылку после оплаты; планировщик и напоминания не нужны.
| Критерий | Готовый сервис | Свой бот |
|---|---|---|
| Запуск | В тот же день, по шаблону сервиса | От 1–2 дней на базовый бот, подписочная логика добавляет объём |
| Деньги | Часто сначала поступают сервису, затем выводятся вам | Платёжное подключение оформлено на вас |
| Комиссия | Своя комиссия сервиса плюс комиссия платёжной системы | Только комиссия платёжной системы, разработка оплачивается один раз |
| База подписчиков | Хранится у сервиса, выгрузка — по его правилам | Ваша база: ID, оплаты, даты окончания |
| Тарифы, пробный период, промокоды | В пределах настроек сервиса | Любая логика, которую вы опишете |
| Связь с CRM и таблицами | Если сервис её поддерживает | Одна система входит в базовый тариф бота |
| Кто отвечает за работу | Сервис, без доступа к его коду | Вы и подрядчик на поддержке |
Готовый сервис или свой бот?
Готовый сервис подходит, чтобы быстро проверить, будут ли люди платить за ваш канал. Свой бот нужен, когда подписка стала заметной частью выручки и вы хотите свою базу, свои тарифы, свою платёжную схему и связь с CRM без посредника и его комиссии.
Если выбираете готовый сервис, задайте ему четыре вопроса: на чей счёт поступают деньги и когда их можно вывести; кто выдаёт чеки; можно ли выгрузить базу подписчиков с датами окончания; что происходит с доступами, если вы уходите с сервиса.
Про свой бот — по нашему прайсу. Базовый Telegram-бот стоит от 16 000 ₽ и делается за 1–2 дня: в тариф входят меню и сценарии, приём оплаты в боте (Telegram Payments или ЮKassa), рассылки по подписчикам, интеграция с одной системой — CRM или Google Sheets, хостинг и запуск на вашем аккаунте. Подписочная логика — планировщик, пробный период, промокоды, несколько тарифов — добавляет объём, поэтому точную цену и срок называем после брифа и фиксируем в договоре до старта. Подробно о том, что ещё платить после запуска, — в статье «Сколько стоит Telegram-бот под ключ».
Что важно в договоре и после запуска:
- оплата 50/50: половина до старта, половина после приёмки; на приёмку — 5 рабочих дней;
- до 2 раундов правок — на карте сценариев и после сборки бота;
- 7 дней бесплатной поддержки после запуска, дальше — по абонентской подписке от 7 900 ₽/мес;
- гарантия по договору — 30 календарных дней с даты акта, отдельно от поддержки;
- бот работает на вашем Telegram-аккаунте и токене, платёжное подключение оформлено на вас, исходники или конфигурацию бота вы получаете для переноса; исключительное право на код остаётся у исполнителя, а вам после полной оплаты — лицензия на весь срок действия права: любой сервер, любые подрядчики.
Похожий принцип есть в нашем кейсе BanRadar: это Telegram-бот с кабинетом, где часть возможностей, например анализ графа контрагентов второго уровня, открыта только в Premium. Для платного канала логика та же: доступ определяется статусом подписчика в базе.
Что подготовить к брифу?
К брифу достаточно ответить на шесть вопросов, и по ним видно, хватит ли встроенной подписки Telegram или нужен свой бот, а если нужен — какой у него состав.
- Что именно получает подписчик: посты в канале, чат, эфиры, материалы, консультации.
- Какие тарифы и сроки: месяц, три месяца, год; нужен ли пробный период.
- Как планируете принимать оплату: Stars, карта, СБП — и что по этому поводу сказал юрист.
- Кто выдаёт чеки и есть ли у вас онлайн-касса или решение для чеков платёжного сервиса.
- Сколько подписчиков сейчас и как вы их ведёте: таблица, другой сервис, вручную.
- Куда отправлять данные об оплатах: CRM, таблица, уведомление вам в Telegram.
Если подписчики уже есть, захватите выгрузку с Telegram ID и датами окончания: тогда при переезде на свой бот никто не потеряет оплаченные дни. Обсудить задачу можно на странице разработки Telegram-ботов.
Короткие ответы на частые вопросы
Можно ли сделать платный Telegram-канал без бота?
Да. В настройках канала можно создать ссылку-приглашение с ежемесячной платой в Telegram Stars: Telegram сам принимает оплату, продлевает доступ и убирает тех, кто не продлил. Бот нужен, если вы хотите принимать оплату в рублях, давать пробный период, промокоды или несколько тарифов.
Как бот удаляет из канала тех, у кого закончилась подписка?
Бот должен быть администратором канала. По расписанию он находит подписки с истёкшей датой и вызывает метод исключения участника. Удобнее метод unbanChatMember: он убирает человека из канала, но оставляет возможность вернуться по новой ссылке после оплаты.
Что делать, если подписчик переслал ссылку-приглашение другу?
Выдавайте каждому ссылку с лимитом в одного участника и коротким сроком жизни или ссылку с заявкой на вступление, которую бот одобряет только для Telegram ID плательщика. Общую постоянную ссылку для платного канала использовать не стоит.
Можно ли принимать за доступ в канал оплату картой в рублях?
Telegram требует продавать цифровые товары и услуги внутри своих приложений только за Stars. Доступ к закрытому контенту обычно относят к цифровым услугам, поэтому до запуска сверьте актуальные правила платформы и схему оплаты с юристом.
Нужен ли кассовый чек при продаже подписки на канал?
Если вы принимаете оплату картой или через СБП как организация или ИП, по общему правилу 54-ФЗ покупателю нужен электронный чек, причём на каждое продление. Исключения и данные чека определяет бухгалтер.
Сколько стоит бот для платного канала?
Базовый Telegram-бот у нас — от 16 000 ₽ за 1–2 дня, приём оплаты в боте входит в тариф. Пробный период, промокоды, несколько тарифов и автопродление добавляют объём, поэтому точную смету называем после брифа и фиксируем в договоре.
Услуги и кейсы по теме: Telegram-боты под ключ · кейс BanRadar · цены и сроки
Расскажите, что вы продаёте в канале, сколько стоит месяц доступа и как сейчас принимаете оплату, — разберём, хватит ли встроенной подписки Telegram или нужен свой бот, и назовём состав работ.
Рассчитать проект →Оценку срока и цены по брифу делаем бесплатно, обычно отвечаем в течение часа в рабочее время. Типовой договор — посмотреть до оплаты.
