Партнёрская программа TG SuperStars

Перепродавайте Telegram Stars, Premium, SMM-услуги, Robux, гифткарты и Steam по оптовым ценам. Два способа: витрина-бот (готовый Telegram-бот с вашим брендом и оплатой) и API (интеграция в свою систему). Вы вносите депозит на баланс, с него списывается оптовая (партнёрская) цена; конечному клиенту продаёте по своей.

Как это работаетПодключение ботаСвоя касса / касса площадкиОплата (FK/CryptoBot) Если оплата не подтвердиласьБрендингЦены и уровниAPI v1 Коды ошибокЛимитыFAQПравилаУсловияОферта

Как это работает

Модель — предоплата. Вы пополняете партнёрский баланс (депозит), с него автоматически списывается оптовая цена каждого заказа. Оплату конечного клиента вы принимаете сами — на витрине через свой FreeKassa/CryptoBot, или в своей системе через API. Маржа = ваша цена − оптовая. При провале доставки оптовая цена возвращается на баланс автоматически.

Подключение бота (витрина)

  1. Создайте бота у @BotFather, скопируйте токен.
  2. Кабинет → Партнёрка → Бот → Подключить, вставьте токен. Мы проверим его через getMe, настроим вебхук https://pay.tgsuperstars.com/tg/partner/{bot_id} и кнопку меню, открывающую вашу витрину https://pay.tgsuperstars.com/t/{ваш-slug}.
  3. Заполните брендинг и подключите приём оплаты (ниже) — без контакта поддержки и без платёжного драйвера витрина не публикуется.

Если бот перестал отвечать (сменили токен, сбросили вебхук) — кнопка Переподключить в кабинете.

Приём оплаты: своя касса или касса площадки

В настройках бота (Бот → Режим приёма оплаты) выберите, кто принимает деньги покупателя:

 Своя кассаКасса площадки
Кто принимает оплатуВаш FreeKassa / CryptoBotFreeKassa площадки (покупатель видит её название на странице оплаты)
Закупочный балансСписывается оптовая цена при каждой продаже (нужен депозит)Не тратится
Ваш доходРазница «цена покупателя − оптовая цена» приходит на ваш мерчантЗачисляется на счёт «Заработано»: цена покупателя × (1 − эквайринг) − оптовая цена
ЭквайрингЗа ваш счёт (в вашей кассе)За ваш счёт (вычитается из заработка)
Мин. наценкаЛюбая (пол оптовой цены)Не ниже 7% (иначе эквайринг съест заработок)
Ожидание пополнения (on-hold)Есть: при нехватке баланса заказ ждёт депозитаНет: заказ выполняется сразу после оплаты
Вывод средствДепозит невыводимСчёт «Заработано» выводится в USDT (TRC20), фикс. комиссия 3 USDT, мин. 1 000 ₽, курс FKWallet; или перевод в закупочный баланс

Депозиты невыводимы в любом режиме. Выводится только счёт «Заработано» (режим «Касса площадки»). Заявки на вывод обрабатываются вручную в течение 24 часов; курс фиксируется на момент заявки.

Возврат покупателя после оплаты (касса площадки): при оплате картой/СБП покупатель возвращается на страницу-мост вашего магазина с кнопкой «Вернуться в бот». При оплате криптой (SCI) возврат зависит от настроек магазина FreeKassa — если переопределение URL недоступно, покупатель видит стандартную страницу оплаты.

Настройка приёма оплаты (своя касса)

Нужно только для режима «Своя касса». Оплату клиента на витрине принимает ваш платёжный аккаунт. Секреты хранятся зашифрованными и в ответах API никогда не отдаются (виден только merchant_id и флаг «настроено»). {bot_id} — числовой id вашего бота, показан в кабинете. В режиме «Касса площадки» эти настройки не используются.

FreeKassa (FKWallet)

CryptoBot

Кнопка Тест в кабинете проверяет валидность драйвера, не создавая реального платежа.

Если оплата не подтвердилась

Иногда уведомление от кассы к нам не доходит (сбой сети, неверный notification-URL, отказ провайдера) — заказ висит без выполнения, хотя покупатель заплатил. Что происходит:

Брендинг (white-label)

Витрина и тексты бота — под вашим брендом, без упоминаний TG SuperStars. Настраивается в кабинете:

Брендинг проходит модерацию. Администратор может отклонить отдельное поле с указанием причины — вы получите уведомление и сможете исправить.

Цены и уровни

Оптовая цена = себестоимость + скидка вашего уровня от розницы, но не ниже пола маржи (партнёрская цена ≥ себестоимость × 1.05). Уровень определяется оборотом за 30 дней и пересчитывается автоматически.

УровеньОборот 30д, ₽Stars/PremiumSMMGiftcardRobux
L109%15%2%0%
L225 00012%25%3%2%
L3100 00013%33%4%3%
L4300 00015%42%5%4%

Проценты — ваша скидка от розничной цены (актуальную сетку смотрите в GET /me и кабинете). Первый депозит даёт временный буст уровня: ≥10 000 ₽ → L2, ≥50 000 ₽ → L3 (на 30 дней). На витрине можно задать собственную наценку конечным клиентам (общую и по категориям) — она влияет на цену витрины, не на вашу закупку.

API v1

База: https://pay.tgsuperstars.com/api/partner/v1. Аутентификация: Authorization: Bearer pk_live_... (ключ выпускается в кабинете; опционально — IP-whitelist на ключ). Все суммы — рубли. Машиночитаемая спека: openapi.json. Идемпотентность: тот же idempotency_key в POST /orders → тот же заказ и ровно одно списание.

Баланс и уровень

curl -H "Authorization: Bearer $KEY" https://pay.tgsuperstars.com/api/partner/v1/me

Каталог с вашими ценами

curl -H "Authorization: Bearer $KEY" https://pay.tgsuperstars.com/api/partner/v1/products

Проверка получателя (до заказа)

curl -X POST -H "Authorization: Bearer $KEY" -H "Content-Type: application/json" \
 -d '{"type":"stars","username":"@durov"}' \
 https://pay.tgsuperstars.com/api/partner/v1/validate/recipient

Заказ Stars

curl -X POST -H "Authorization: Bearer $KEY" -H "Content-Type: application/json" \
 -d '{"type":"stars","idempotency_key":"ord-1","params":{"quantity":100,"recipient":"@durov"}}' \
 https://pay.tgsuperstars.com/api/partner/v1/orders

Остальные типы

Premium: -d '{"type":"premium","idempotency_key":"ord-2","params":{"months":3,"recipient":"@durov"}}'
SMM:     -d '{"type":"smm","idempotency_key":"ord-3","params":{"service_id":939,"link":"https://t.me/ch","quantity":1000}}'
Giftcard:-d '{"type":"giftcard","idempotency_key":"ord-4","params":{"product_id":123}}'
Steam:   -d '{"type":"steam","idempotency_key":"ord-5","params":{"amount_rub":500,"account":"steamlogin"}}'
Robux:   -d '{"type":"robux","idempotency_key":"ord-6","params":{"robux_amount":1000,"roblox_username":"builderman"}}'

Robux: ответ содержит instructions и expected_gamepass_price — передайте их клиенту, он создаёт в Roblox GamePass с этой ценой, система находит и покупает автоматически (1–5 мин).

Статусы и вебхуки

GET /orders/{id} и GET /orders?status=&type=&from=&to=&cursor=&limit=. Статусы: processing | completed | partial | canceled | failed. Исходящие вебхуки (order.completed | order.failed | order.refunded) подписаны заголовком X-Signature: hex(hmac_sha256(body, ваш webhook_secret)) — проверяйте подпись и обрабатывайте идемпотентно (доставка «как минимум один раз»).

Коды ошибок

Формат: {"code":"...","detail":"..."}.

HTTPcodeЧто значит
401unauthorizedНет/неверный Bearer-ключ
403ip_not_allowedIP не в whitelist ключа
429rate_limitedПревышен лимит запросов — снизьте частоту
400idempotency_requiredНе передан idempotency_key в POST /orders
402insufficient_balanceНе хватает баланса — пополните депозит
400bad_quantity / bad_months / bad_typeНеверные параметры заказа
400recipient_required / recipient_not_foundПолучатель не указан / не найден
400already_premiumУ получателя уже есть Premium
503product_unavailableТовар временно недоступен (напр. Robux)
502resolver_errorСбой резолва получателя — повторите позже

Лимиты

FAQ

Как я получаю деньги от клиента? Оплату принимаете вы — на витрине через свой FreeKassa/CryptoBot, или в своей системе через API. С партнёрского баланса списывается только оптовая цена.

Можно ли вывести депозит? Нет. Депозит — предоплаченный баланс под закупку; выводу/возврату не подлежит. Расходуется на заказы; при провале доставки оптовая цена возвращается на баланс.

Не хватило баланса на витрине? Заказ принимается в статусе «ожидает пополнения» (on-hold) и выдаётся автоматически сразу после депозита.

Что со Stars при сбое Fragment? Ведём как розницу: при недоступности Fragment заказы копятся и досдаются после восстановления — деньги не теряются.

Правила программы

Условия