Создавайте плагины и автоматизации для TDUgame
/v1/*.429.https://tdugame.ru/api. Методы начинаются с /v1./rent и /extend защищает от двойного списания при повторе запроса.X-Api-Key для запросов к /v1/*Сгенерируйте ключ выше, затем используйте его в заголовке X-Api-Key:
Подключается к FunPayCardinal и работает только через этот API — по вашему ключу.
★ Единственный с мини-приложением в Telegram. Автосоздание лотов, автовыдача, коды Steam Guard, продление, умное скрытие лотов без наличия, журнал ошибок с советами и автообновление. Смотреть скриншоты и возможности →
!кодстим.!друг.Плагин работает внутри программы FunPay Cardinal — она сама заходит на ваш аккаунт FunPay и управляет лотами. Сначала ставим Cardinal, потом подключаем плагин.
Cardinal должен работать круглосуточно, иначе заказы не будут выдаваться автоматически. Подойдёт арендованный виртуальный сервер (Ubuntu 22–24) или обычный компьютер, который не выключается.
Официальный репозиторий: github.com/sidor0912/FunPayCardinal. Выберите свою систему:
wget https://raw.githubusercontent.com/sidor0912/FunPayCardinal/main/install-fpc.sh -O install-fpc.sh && bash install-fpc.sh
Setup.bat, дождитесь установки пакетов, затем Start.bat.При первом запуске Cardinal задаст несколько вопросов в консоли:
/newbot и вставьте выданный токен.После настройки запустите Cardinal ещё раз, откройте своего бота в Telegram и отправьте ему пароль — бот станет вашей панелью управления.
Скачайте плагин кнопкой выше, затем в диалоге со своим ботом отправьте команду /menu и нажмите «🧩 Плагины»:
Так выглядит меню вашего бота. В списке плагинов нажмите «Добавить плагин»:
Нажмите «➕ Добавить плагин» и отправьте боту скачанный файл TDUgameResellPlugin.py как документ:
После загрузки перезапустите Cardinal командой /restart, чтобы плагин подключился.
Сгенерируйте ключ в блоке «API-ключ» выше на этой странице и пополните баланс — аренды списываются с баланса ключа. В боте откройте «🧩 Плагины» → TDUgameResell → «⚙️ Настройки» → «🔑 API ключ» и отправьте ключ сообщением:
Меню плагина. Нажмите «🔑 API ключ» — бот попросит прислать ключ:
Откройте «📦 Создание лотов». При первом запуске пройдите короткий мастер (тексты лота, сроки аренды, наценка), затем нажмите «➕ Создать недостающие» — плагин покажет план и создаст лоты на FunPay.
Кнопка «🆕 Новые игры» включает автосоздание лотов на новые игры каталога, «🚫 Исключения» — список игр, которые создавать не нужно.
Скриншоты сделаны в настоящем боте с плагином (ключ и баланс на них заменены). Внешний вид Telegram у вас может немного отличаться.
Аккаунт FunPay должен быть в рублях. FunPay разрешает создавать не больше 500 новых лотов за 24 часа — плагин сам следит за лимитом и продолжит позже.
search (query, необязательно) — поиск по названию игры
Точечный доступ вместо вытягивания всего каталога — удобно, если плагин работает с конкретной игрой.
404 not_found — игры с таким ID нет
Точный расчёт стоимости — та же формула, что при оформлении заказа, скидка за длительность нелинейная.
X-Api-Key. Аренда, управление активными арендами, логин/пароль, код Steam Guard — для автоматизаций (например, плагин FunPayCardinal).То же самое, что публичный /products, но с ключом — для единообразия остального reseller-API.
Идентично публичному /products/{id}, но с ключом.
Идентично публичному /products/{id}/quote.
Цены «игра × срок» одним запросом — чтобы не вызывать /quote на каждую пару. Нужно для массового выставления лотов; цены ориентировочные, точная сумма списания приходит в ответе /v1/rent и считается в /v1/products/{id}/quote.
hours — сроки в часах через запятую (до 40 значений); без параметра — стандартный набор от 1 часа до 30 дней.
В какой раздел FunPay обычно выставляют конкретную игру и какие поля формы для неё нужны. productId — тот же id, что в /v1/products. Используется плагином для автосоздания лотов.
Списывает стоимость с баланса ключа и сразу арендует.
Idempotency-Key (необязательно, но рекомендуется) — свой уникальный ID запроса. Повторный вызов с тем же ключом (например, при ретрае после таймаута) вернёт тот же результат и не спишет деньги повторно.
Точечная проверка вместо сканирования всего списка активных аренд.
Одноразовый код, меняется при каждом запросе.
Idempotency-Key (необязательно) — так же, как в /v1/rent, защищает от двойного списания при ретрае.
/v1/rentals.Настройте URL ниже (доступно, если уже сгенерирован API-ключ) — при каждом событии мы отправим на него POST с телом:
| event | Когда |
|---|---|
| rental.created | сразу после успешного /v1/rent |
| rental.extended | сразу после успешного /v1/rentals/{uid}/extend |
| rental.expiring_soon | примерно за час до истечения (разово) |
| rental.expired | срок аренды истёк и не продлился автоматически |
| rental.terminated | аренда завершена досрочно через /v1/rentals/{uid}/terminate |
Каждый запрос подписан заголовком X-TDUgame-Signature — HMAC-SHA256 от тела запроса на вашем webhookSecret:
| HTTP | Error | Описание |
|---|---|---|
| 401 | invalid_api_key | Ключ отсутствует, неверен или отозван |
| 403 | account_disabled | Аккаунт заблокирован |
| 403 | not_active | Аренда не активна (истекла/завершена) |
| 400 | insufficient_balance | Недостаточно средств на балансе |
| 400 | no_stock | Нет свободных аккаунтов на нужное количество |
| 404 | not_found | Товар или аренда не найдены / не принадлежат вам |
| 409 | operation_inflight | Код уже запрашивается, подождите |
| 429 | rate_limited | Превышен лимит запросов |
| 502 | catalog_unavailable | Технический сбой, попробуйте позже |
OpenAPI-спецификация: открыть · сырой .json