Активация кодов

Вы можете активировать коды двумя способами:

  • Из базы данных: API берет код из базы данных и активирует его для вас. База данных синхронизируется с ботом, поэтому вы или ваши пользователи можете добавлять туда коды, не беспокоясь о хранении.
  • Напрямую: Вы предоставляете код с каждым запросом. Это дает полный контроль над вашими кодами, но добавляет сложности при ошибках, поскольку нужно решать, что делать с неудачными кодами.

Начнем с метода через базу данных, поскольку он проще. Прямую активацию рассмотрим после.

Выполнение запроса

Используйте эндпоинт POST /redeem для активации кода. Вот как:

1from kokos_activator_api import AsyncKokosApi
2from kokos_activator_api.environment import KokosApiEnvironment
3from kokos_activator_api.redeem import RedeemCodeFromDbRequest, ActivationErrorResponse
4from kokos_activator_api.core.api_error import ApiError
5
6client = AsyncKokosApi(
7 token="YOUR_TOKEN",
8 environment=KokosApiEnvironment.PRODUCTION,
9)
10
11try:
12 result = await client.redeem.redeem_code(
13 request=RedeemCodeFromDbRequest(
14 player_id="51709255708",
15 denomination=60,
16 require_receipt=True,
17 game_id="pubg_mobile",
18 )
19 )
20
21 print("Активация успешна! Имя игрока:", result.name)
22except ActivationErrorResponse as error:
23 print("Ошибка активации:", error.body.error_code)
24 # обработать ошибку...
25except ApiError as error:
26 print("Неизвестная ошибка:", error.body)
27 # обработать ошибку...

Разберем ключевые параметры:

requireReceipt

Раньше этот параметр контролировал, будете ли вы получать email/пароль при активации. Сейчас этот параметр ни на что не влияет и должен оставаться равным true. Он сохранен только для обратной совместимости.

playerId

Это внутриигровой ID персонажа игрока (строка из цифр).

Используйте эндпоинт GET /character для проверки ID игрока сначала. Он возвращает имя игрока, что помогает пользователям убедиться, что они ввели правильный ID.

Узнать больше

gameId

Сейчас наш сервис поддерживает активацию кодов для 3 игр:

  • PUBG Mobile (pubg_mobile)
  • Honor of Kings (honor_of_kings)
  • Garena Free Fire (free_fire)

Интерфейс API практически идентичен, и вы можете легко переключаться между играми.

База данных отдельная для каждой игры. Это значит, что для всех игр, кроме pubg_mobile, активация возможна только с codeOverride.

Поддержка управления базами данных для других игр появится в ближайшее время.

Понимание ответа

Когда активация проходит успешно, вы получите объект ActivationReceipt:

Ответ
1{
2 "type": "ActivationReceipt",
3 "id": 100407,
4 "createdAt": "2026-09-13T08:27:18.520Z",
5 "warning": false,
6 "took": 6250,
7 "playerId": "51709255708",
8 "code": "r3h4xcJ72f2056g7h7",
9 "openid": "0320648646774837",
10 "name": "『NT』ярый",
11 "gameId": "pubg_mobile",
12 "userId": 42,
13 "productName": "UC*600",
14 "amount": 660,
15 "uid": "U2463icbmr4k8h",
16 "email": "[email protected]",
17 "password": "KOKOS1_H1HA5CT1"
18}

Вот что означает каждое поле:

ID

Каждый чек имеет уникальный ID. Вы можете получить ее позже с помощью GET /history/{id}, или использовать команду /receipt_{id} в боте для просмотра.

Email и password

Вы получите учетные данные аккаунта Midasbuy, использованного для активации. Вы можете использовать их для входа и самостоятельной проверки транзакции. Обычно безопасно делиться ими с пользователями, но помните, что на одном аккаунте может быть несколько активаций.

Если вы не можете войти в аккаунт, обратитесь в поддержку для сброса пароля.

Для игр Garena (Free Fire) email - это внутренний ID аккаунта игрока, а password - это токен сессии, использованный для активации.

Warning

После активации мы проверяем, появляется ли “полный чек” на аккаунте.

Чтобы увидеть чек самостоятельно: войдите в Midasbuy, нажмите на свой аккаунт, затем “Order Center”. Каждый элемент там - это “полный чек”.

Для игр Garena warning всегда должен быть false.

Поле warning равно true, когда мы по какой-то причине не можем найти полный чек. Это происходит редко, но все же возможно в некоторых случаях (обычно из-за проблем с сетью на стороне игрового провайдера или на нашей).

Amount

Это показывает, сколько UC/алмазов/валюты было активировано. Это поле может отсутствовать в некоторых случаях, когда мы не можем точно определить сумму.

Обработка ошибок

Мы подробно рассмотрим все ошибки позже, но вот основы.

Когда активация не удается, вы получите ActivationErrorResponse, содержащий объект ActivationError с полем errorCode. errorCode - это конкретный тип ошибки из фиксированного набора вариантов. Например, CHARACTER_NOT_FOUND означает, что playerId неверен или поиск игрока не удался.

Подробнее читайте в гайде Обработка ошибок.

Прямая активация

Если вы предпочитаете не использовать базу данных, можете предоставлять коды напрямую с каждым запросом.

Отправьте RedeemCodeDirectRequest вместо RedeemCodeFromDbRequest. (В HTTP API опустите denomination и используйте codeOverride вместо этого.)

1from kokos_activator_api.redeem import RedeemCodeDirectRequest
2
3await client.redeem.redeem_code(
4 request=RedeemCodeDirectRequest(
5 require_receipt=True,
6 player_id="51709255708",
7 code_override="YMLKsXxG2B207euaK6",
8 game_id="pubg_mobile",
9 )
10)

Следующие шаги

Узнайте о всех возможных ошибках и как их обрабатывать.