Перепродавайте Telegram Stars, Premium, SMM-услуги, Robux, гифткарты и Steam по оптовым ценам. Два способа: витрина-бот (готовый Telegram-бот с вашим брендом и оплатой) и API (интеграция в свою систему). Вы вносите депозит на баланс, с него списывается оптовая (партнёрская) цена; конечному клиенту продаёте по своей.
Модель — предоплата. Вы пополняете партнёрский баланс (депозит), с него автоматически списывается оптовая цена каждого заказа. Оплату конечного клиента вы принимаете сами — на витрине через свой FreeKassa/CryptoBot, или в своей системе через API. Маржа = ваша цена − оптовая. При провале доставки оптовая цена возвращается на баланс автоматически.
getMe,
настроим вебхук https://pay.tgsuperstars.com/tg/partner/{bot_id} и кнопку меню, открывающую вашу
витрину https://pay.tgsuperstars.com/t/{ваш-slug}.Если бот перестал отвечать (сменили токен, сбросили вебхук) — кнопка Переподключить в кабинете.
В настройках бота (Бот → Режим приёма оплаты) выберите, кто принимает деньги покупателя:
| Своя касса | Касса площадки | |
|---|---|---|
| Кто принимает оплату | Ваш FreeKassa / CryptoBot | FreeKassa площадки (покупатель видит её название на странице оплаты) |
| Закупочный баланс | Списывается оптовая цена при каждой продаже (нужен депозит) | Не тратится |
| Ваш доход | Разница «цена покупателя − оптовая цена» приходит на ваш мерчант | Зачисляется на счёт «Заработано»: цена покупателя × (1 − эквайринг) − оптовая цена |
| Эквайринг | За ваш счёт (в вашей кассе) | За ваш счёт (вычитается из заработка) |
| Мин. наценка | Любая (пол оптовой цены) | Не ниже 7% (иначе эквайринг съест заработок) |
| Ожидание пополнения (on-hold) | Есть: при нехватке баланса заказ ждёт депозита | Нет: заказ выполняется сразу после оплаты |
| Вывод средств | Депозит невыводим | Счёт «Заработано» выводится в USDT (TRC20), фикс. комиссия 3 USDT, мин. 1 000 ₽, курс FKWallet; или перевод в закупочный баланс |
Депозиты невыводимы в любом режиме. Выводится только счёт «Заработано» (режим «Касса площадки»). Заявки на вывод обрабатываются вручную в течение 24 часов; курс фиксируется на момент заявки.
Возврат покупателя после оплаты (касса площадки): при оплате картой/СБП покупатель возвращается на страницу-мост вашего магазина с кнопкой «Вернуться в бот». При оплате криптой (SCI) возврат зависит от настроек магазина FreeKassa — если переопределение URL недоступно, покупатель видит стандартную страницу оплаты.
Нужно только для режима «Своя касса». Оплату клиента на витрине принимает ваш платёжный аккаунт.
Секреты хранятся зашифрованными и в ответах API никогда не отдаются (виден только merchant_id и флаг
«настроено»). {bot_id} — числовой id вашего бота, показан в кабинете. В режиме «Касса площадки» эти
настройки не используются.
https://pay.tgsuperstars.com/partner-pay/fk/{bot_id}https://pay.tgsuperstars.com/partner-pay/cryptobot/{bot_id}Кнопка Тест в кабинете проверяет валидность драйвера, не создавая реального платежа.
Иногда уведомление от кассы к нам не доходит (сбой сети, неверный notification-URL, отказ провайдера) — заказ висит без выполнения, хотя покупатель заплатил. Что происходит:
Витрина и тексты бота — под вашим брендом, без упоминаний TG SuperStars. Настраивается в кабинете:
primary / bg / accent.Брендинг проходит модерацию. Администратор может отклонить отдельное поле с указанием причины — вы получите уведомление и сможете исправить.
Оптовая цена = себестоимость + скидка вашего уровня от розницы, но не ниже пола маржи (партнёрская цена ≥ себестоимость × 1.05). Уровень определяется оборотом за 30 дней и пересчитывается автоматически.
| Уровень | Оборот 30д, ₽ | Stars/Premium | SMM | Giftcard | Robux |
|---|---|---|---|---|---|
| L1 | 0 | 9% | 15% | 2% | 0% |
| L2 | 25 000 | 12% | 25% | 3% | 2% |
| L3 | 100 000 | 13% | 33% | 4% | 3% |
| L4 | 300 000 | 15% | 42% | 5% | 4% |
Проценты — ваша скидка от розничной цены (актуальную сетку смотрите в GET /me и кабинете).
Первый депозит даёт временный буст уровня: ≥10 000 ₽ → L2, ≥50 000 ₽ → L3 (на 30 дней).
На витрине можно задать собственную наценку конечным клиентам (общую и по категориям) — она влияет на цену
витрины, не на вашу закупку.
База: 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
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":"..."}.
| HTTP | code | Что значит |
|---|---|---|
| 401 | unauthorized | Нет/неверный Bearer-ключ |
| 403 | ip_not_allowed | IP не в whitelist ключа |
| 429 | rate_limited | Превышен лимит запросов — снизьте частоту |
| 400 | idempotency_required | Не передан idempotency_key в POST /orders |
| 402 | insufficient_balance | Не хватает баланса — пополните депозит |
| 400 | bad_quantity / bad_months / bad_type | Неверные параметры заказа |
| 400 | recipient_required / recipient_not_found | Получатель не указан / не найден |
| 400 | already_premium | У получателя уже есть Premium |
| 503 | product_unavailable | Товар временно недоступен (напр. Robux) |
| 502 | resolver_error | Сбой резолва получателя — повторите позже |
/validate/* — 30/мин.Как я получаю деньги от клиента? Оплату принимаете вы — на витрине через свой FreeKassa/CryptoBot, или в своей системе через API. С партнёрского баланса списывается только оптовая цена.
Можно ли вывести депозит? Нет. Депозит — предоплаченный баланс под закупку; выводу/возврату не подлежит. Расходуется на заказы; при провале доставки оптовая цена возвращается на баланс.
Не хватило баланса на витрине? Заказ принимается в статусе «ожидает пополнения» (on-hold) и выдаётся автоматически сразу после депозита.
Что со Stars при сбое Fragment? Ведём как розницу: при недоступности Fragment заказы копятся и досдаются после восстановления — деньги не теряются.