Tribute
Tribute продаёт доступ подпиской на Telegram-канал: сам списывает деньги, сам продлевает и присылает боту вебхук. По нему бот выдаёт подписку в панели.
Как это устроено
Заголовок раздела «Как это устроено»- Каждый тариф бота привязан к своей подписке Tribute. У подписки есть периоды (неделя, месяц, 3 месяца, полгода, год) со своими ценами.
- Покупатель выбирает в боте тариф → «🎁 Оплатить через Tribute» → на странице Tribute выбирает период и платит.
- По вебхуку бот определяет тариф по подписке, срок — по периоду, и выдаёт доступ. Так же и при каждом продлении.
Покупатель платит цену Tribute, а не цену из бота. Бот цены не сверяет — держите их одинаковыми.
Настройка в Tribute
Заголовок раздела «Настройка в Tribute»- Канал. Создайте приватный канал (можно пустой) и подключите его в Tribute — без канала подписку не создать. Tribute попросит добавить своего бота в канал администратором.
- Подписка. Дэшборд автора → Подписки → канал → Подписка: название, описание → периоды, цены и валюта (₽, $ или €) → Создать (инструкция Tribute). Каждому тарифу бота — своя подписка, а её периоды должны совпадать со сроками тарифа (см. таблицу).
- Ссылка. У подписки откройте Ссылки и скопируйте Telegram-ссылку (
t.me/tribute/app?startapp=…), а не веб-ссылку (web.tribute.tg/s/…). Через веб покупатель может войти по почте — тогда Tribute не передаст его Telegram ID, и выдать подписку будет некому (про ссылки). - API-ключ и вебхук. Дэшборд автора → Настройки (меню «⋯») → API-ключи: создайте ключ и укажите вебхук
https://ВАШ_ДОМЕН/webhook/tribute. Про домен — Вебхуки и reverse-proxy.
Настройка в боте
Заголовок раздела «Настройка в боте»Продажи → 🎁 Tribute:
- тумблер — показывать ли Tribute покупателям. Оплаты, пришедшие при выключенном тумблере, всё равно выдаются: деньги уже приняты;
- 🔑 API-ключ — ключ из Tribute. По нему бот проверяет подпись вебхука и получает список ваших подписок. Без ключа вебхуки отклоняются, но Tribute повторяет доставку около суток — впишите ключ вовремя, и оплата не потеряется;
- 🔗 Ссылка «Базового» — Telegram-ссылка на подписку тарифа «Базовый».
🎁 Tribute → 🧾 Тарифы и подписки — все тарифы с метками:
| Метка | Значение |
|---|---|
| ✅ | у тарифа есть кнопка Tribute |
| ⚠️ | привязка неполная — нет подписки или ссылки |
| ➖ | не привязан |
| ♻️ | прежняя подписка тарифа: кнопки нет, но её подписчики продолжают получать этот тариф |
| ♻️ … ❌ | подписка удалённого тарифа — оплаты по ней отклоняются |
В карточке тарифа:
- 📋 Выбрать из Tribute — список ваших подписок с периодами (🔒 — уже занята другим тарифом). После выбора бот покажет, какие периоды подходят к срокам тарифа, а какие будут отклоняться;
- 🔢 Ввести ID — если список не загрузился. ID подписки есть в журнале платежей, в строке
webhook: «подписка #ID»; - 🔗 Ссылка оплаты — Telegram-ссылка на эту подписку;
- 🗑 Отвязать подписку — см. ниже.
Кнопка «Оплатить через Tribute» появляется у тарифа, когда заданы и подписка, и ссылка. «Базовому» достаточно ссылки.
Периоды и сроки
Заголовок раздела «Периоды и сроки»| Период Tribute | Что выдаёт бот | Какой срок нужен в тарифе |
|---|---|---|
неделя (weekly) |
7 дней | 1 месяц — условия берутся от него |
месяц (monthly) |
1 месяц | 1 месяц |
3 месяца (quarterly) |
3 месяца | 3 месяца |
полгода (halfyearly) |
6 месяцев | 6 месяцев |
год (yearly) |
12 месяцев | 12 месяцев |
onetime, trial и любые другие |
не выдаётся | — |
Из срока тарифа берутся трафик, лимит устройств и сквады, поэтому он должен быть с ценой. Если срока нет, оплата не выдаётся, а вам и покупателю приходит уведомление. Заводите в Tribute только те периоды, что есть в тарифе — карточка тарифа подсветит лишние.
Бесплатные события Tribute (пробный период, подарок, нулевая сумма) подписку не выдают — у бота свой триал.
Что видит покупатель
Заголовок раздела «Что видит покупатель»- Кнопку «🎁 Оплатить через Tribute» в чате, мини-аппе и веб-кабинете и список подходящих сроков. Если ни один период подписки не подходит к тарифу, кнопки нет.
- Платить нужно тем же Telegram-аккаунтом, что в боте. Поэтому в кабинете, куда вошли по почте без привязки Telegram, Tribute недоступен.
- После оплаты бот сам присылает «подписка активна» со ссылкой.
Продления, отмена, автосписание
Заголовок раздела «Продления, отмена, автосписание»- Продление. Tribute продлевает подписку сам, бот продлевает срок по текущим условиям тарифа.
- Отмена. Отмена в Tribute выключает только автопродление: оплаченный срок дорабатывает, бот доступ не отбирает.
- Автопродление картой. Если у покупателя было включено автопродление через ЮKassa, после оплаты через Tribute бот его выключает и сообщает об этом — иначе за один срок списали бы дважды.
- Недельная оплата. Трафик и лимиты — как у месячного срока тарифа. Продление того же тарифа неделей трафик не обнуляет — его сбрасывает стратегия сброса тарифа.
- Смена тарифа. Остаток текущей подписки пересчитывается так же, как при других способах оплаты.
Перепривязка, отвязка, удаление
Заголовок раздела «Перепривязка, отвязка, удаление»- Другая подписка у тарифа или 🗑 Отвязать подписку. Прежняя подписка остаётся за тарифом (♻️): кнопки у неё нет, но её подписчики продолжают платить и получать этот тариф. Ссылка оплаты тарифа сбрасывается — задайте её заново.
- Удаление тарифа. Его подписка остаётся в списке с ❌, оплаты по ней отклоняются с уведомлением. Отмените такие подписки в Tribute или привяжите их к другому тарифу.
- ♻️ Забыть подписку (с подтверждением) — убирает подписку из привязок совсем, дальше она считается непривязанной. Подписку, закреплённую за тарифом, нельзя привязать к другому, пока её не забыть; текущую сначала отвяжите.
Подписки без привязки и чужие каналы
Заголовок раздела «Подписки без привязки и чужие каналы»По умолчанию подписка Tribute без привязки к тарифу выдаёт «Базовый» по периоду.
Вебхук приходит обо всех ваших подписках Tribute, и подписчики других ваших каналов тоже получили бы «Базовый». Чтобы этого не было, задайте ID подписки и у «Базового»: тогда непривязанные подписки ничего не выдают, а вам приходит уведомление. Ссылка «Базового» в этом случае должна вести именно на эту подписку. Отвязка у «Базового» возвращает прежний режим.
Отказы и уведомления
Заголовок раздела «Отказы и уведомления»| Ситуация | Что делает бот |
|---|---|
| Подпись не сошлась или не задан API-ключ | отклоняет, Tribute повторяет доставку около суток; в журнале sign_error |
| Повторная доставка уже выданной оплаты | пропускает |
| Пробный период, подарок, нулевая сумма | не выдаёт |
| Неизвестный период, в тарифе нет нужного срока, тариф удалён, непривязанная подписка при заданном ID «Базового» | не выдаёт, уведомляет вас и покупателя |
| Нет Telegram ID (покупатель вошёл в Tribute по почте) | не выдаёт, уведомляет вас — найдите покупателя в кабинете Tribute и выдайте доступ вручную |
| Тариф выключен или недоступен покупателю | выдаёт (деньги приняты) и уведомляет вас |
| Панель или база недоступны | Tribute повторит доставку позже |
Всё пишется в журнал: 📒 История платежей → 🧾 Лог заказа, поиск по Telegram ID покупателя. В строке webhook — событие, период, сумма, ID покупателя в Tribute (trb=…), @username и подписка.
- Ссылка работает и вне бота. Режим доступности тарифа («только новым», «по списку» и т. п.) её не закрывает. Если тариф оплатил тот, кому он недоступен, подписка выдаётся, а вам приходит уведомление.
- Новая цена в Tribute действует только для новых подписчиков. Старые продлеваются по старой цене, а бот выдаёт текущие условия тарифа.
- Лимиты Tribute: минимальный платёж — 100 ₽ / 1 $ / 1 €, комиссия — около 10% (комиссии и лимиты). Недельная цена не может быть ниже минимума.
- Суммы в журнале — то, что заплатил покупатель, до комиссии Tribute. Платежи в $ и € не попадают в рублёвую выручку и в процент рефереру: бот не конвертирует валюты.
- Чеки «Мой налог» по Tribute не формируются — только по ЮKassa.
- Откат версии бота. Старые версии не знают про привязки: при первом сохранении настроек они сотрутся, и все подписки снова будут выдавать «Базовый» по периоду.
Проверка
Заголовок раздела «Проверка»- Отправьте из Tribute тестовое событие. В журнале платежей должно появиться «тестовый вебхук принят, подпись верна»;
sign_error— ключ в боте не тот. - Оформите подписку сами с того же Telegram, что в боте, и проверьте, что пришло «подписка активна», а в панели нужный тариф и срок.