Документация Gamering API V1.0.8
Данный API позволяет партнёрам получать игровые ваучеры, обрабатывать их выдачу, активировать ваучеры, пополнять балансы сервисов, игр и управлять статусами заказов. Ниже представлены основные методы API с примерами, описанием параметров и возможными ошибками.
changelog
V1.0.8 (23.06.2026)
- В метод
/api/gameslistдобавлены поляbrand,country,regionиplatform. - В метод
/api/gameslistдобавлены поляdelivery_time_target_minutesиdelivery_time_max_minutesсо сроками доставки в минутах. - В метод
/api/reviseдобавлена детализация расхождений:revise_payments_not_foundиrevise_payments_mismatches. - Поля каталога возвращаются после
game_name, сроки доставки — послеplatform; порядок остальных полей ответа сохранён. game_nameостаётся исходным названием сервиса, а региональные и платформенные данные передаются отдельными полями.
V1.0.7 (02.06.2026)
- В метод
/api/payдобавлен необязательный параметрext_order_id— номер заказа из системы партнёра. - Повторный запрос
/api/payс тем жеext_order_idв рамках того же партнёра не создаёт новый заказ и возвращает актуальный статус ранее созданного заказа. - В ответах
/api/pay, webhook-уведомлениях и/api/get_order_infoвозвращаетсяext_order_id, если он был передан при создании заказа. - Уточнён порядок публичных полей в примерах ответов
/api/pay, включая повторные запросы сext_order_id. - Добавлено описание поля
delivery_methodи правил передачиaccount: дляvoucher_codeаккаунт передавать нельзя, дляdirect_topupаккаунт обязателен; при нарушении правила/api/payвозвращает400.
V1.0.6 (29.05.2026)
- Актуализирован формат ответа
/api/voucher_available: добавлены публичные поляaccount_format,account_separatorиaccount_fieldsдля сервисов, где аккаунт состоит из нескольких значений. - Уточнено правило передачи аккаунта в
/api/pay: если в/api/voucher_availableуказан формат видаuserid|zoneid, значения передаются в параметреaccountв том же порядке через разделитель|. - Уточнены статусы заказов в обработке: заказ может вернуться со статусом
pendingилиBalance replenishment is in progress, после чего финальный статус можно получить через/api/get_order_infoили через webhook-уведомление, если оно включено. - Уточнена обработка возврата или отмены заказа: финальный ответ возвращается как
order_status=3с текстом ошибки вerror_text. - Синхронизированы примеры и порядок публичных полей в ответах без описания внутренней маршрутизации и технической логики Gamering.
V1.0.5 (25.05.2026)
- Актуализирована логика
/api/payдля production: поддержаны прямое пополнение баланса, покупка и резервирование ваучеров. - Добавлен параметр
test=1для тестовой транзакции в production-среде: запрос ведет себя как реальный сценарий, но не обращается к поставщикам и не списывает баланс партнёра. - Уточнена работа синхронного и асинхронного режима: если у партнёра включены уведомления, первичный ответ по
/api/payвозвращается со статусомpending, а дальнейшие изменения отправляются на webhook партнёра. Если уведомления не включены, API ожидает ответ поставщика до 60 секунд и возвращает финальный статус, либоpendingпри таймауте. - Уточнены правила тестовых операций, pending-ответов, списания средств и возврата средств при ошибке заказа.
- Уточнена логика
/api/order_update,/api/get_order_info,/api/reviseи/api/account_check, включая тестовый режим и ошибочные обращения. - Удалены устаревшие описания отключённых endpoint-ов из HTML-источника документации.
V1.0.4 (09.04.2025)
- Скорректировано описание метода
/api/pay - Добавлен функционал уведомлений (нотификаторов) о статусах заказа, активировать можно через ЛК или службу технической поддержки. На стороне партнёра должен быть реализован обработчик нотификаторов в сервисах, где есть такая возможность.
- Новый endpoint /api/account_check для проверки информации по учётной записи указанного сервиса.
- Bugfix
V1.0.3 (08.04.2025)
- Убран endpoint /api/get_orders, функционал выгрузки списка заказов будет доступен в ЛК
- Убран endpoint /api/voucher_request, функционал резервирования ваучера перенесён в метод /api/pay
V1.0.2 (07.04.2025)
- Убраны endpoint /api/pubg_check, /api/steam_check, /api/steam_pay. Для проверки аккаунтов будет добавлен в следующей версии унифицированный endpoint охватывающий все сервисы поддерживающие проверку аккаунта
V1.0.1 (03.04.2025)
- Изменение логики URL, переход на поддомены для prod и test среды. Теперь сами endpoint одинаковы для prod и test среды
V1.0
- Релизная версия
Доступные endpoint API
/api/auth/login- Авторизация партнёров/api/balance- Получение актуального баланса/api/gameslist- Получение списка игр/сервисов доступных для пополнения через ваучеры или прямым пополнением баланса/api/voucher_available- Получение списка доступных ваучеров по id игры/сервиса/api/pay- универсальный запрос на пополнение баланса или получение ваучера/api/order_update- Обновление статуса заказа/api/get_order_info- Получение статуса и информации о заказе/api/revise- Отправка реестра транзакций для сверки/api/account_check- Проверка информации по учётной записи указанного сервиса.
Авторизация и получение токена
Метод: POST
/api/auth/login
Метод используется для авторизации партнёра. После успешного запроса возвращается JWT-токен, используемый для авторизации в других методах.
Время жизни токена - 1 час
Параметры запроса:
login— Логин партнёраapi_key— API ключ партнёра (строка)
Пример запроса:
{
"login": "login",
"api_key": "password"
}
Поля ответа:
token— JWT-токенexpires_in— Время жизни токена в секундахexpires_at— Дата и время истечения токена
Пример ответа:
{
"token": "eyJhbGciOi...",
"expires_in": 3600,
"expires_at": "2026-04-15 15:30:14"
}
Ошибки:
401— Неверный login или api_key500— Внутренняя ошибка сервера
Получение баланса аккаунта
Метод: GET
/api/balance
Метод используется для получения баланса аккаунта.
Заголовки:
Authorization: Bearer <токен>
Параметры запроса:
- без параметров, данные отправляются на основе авторизации
Поля ответа:
partner_id— id партнёраpartner_name— название партнёраuser_name— логин пользователяuser_id— id пользователяbalance— баланс партнёраcurrency— валюта баланса
Пример ответа:
{
"partner_id": 1,
"partner_name": "dev",
"user_name": "dev",
"user_id": 1,
"balance": 100000,
"currency": "USD"
}
Ошибки:
401— ошибка авторизации500— Внутренняя ошибка сервера
Получение списка игр
Метод: GET
/api/gameslist
Возвращает список доступных партнёру игр и сервисов.
Заголовки:
Authorization: Bearer <токен>
Поля ответа:
available_games— Массив доступных сервисовid— ID сервиса/игрыgame_name— Название сервиса/игрыbrand— Нормализованное название бренда/продукта без региона, страны и номинала. Может бытьnullcountry— ISO-3166 alpha-2 код страны для страновых вариантов. Для глобальных и региональных сервисовnullregion— Региональный код для не-страновых вариантов:GLOBAL,EU,MENA,LATAM,ROW. Для страновых сервисовnullplatform— Платформа или экосистема сервиса, напримерSteam,Xbox,PlayStation. Может бытьnulldelivery_time_target_minutes— Ожидаемый типичный срок доставки в минутахdelivery_time_max_minutes— Максимальный срок доставки в минутах, после которого заказ считается неуспешнымdescription— Описание сервиса. Может бытьnulltype— Тип сервиса:balanceилиvoucheractivation— Тип активации: напримерautoилиmanualcurrency— Валюта расчётов по сервисуavalible— Доступность сервиса для заказаrequest— Возможность предварительного резервирования ваучераaccount_check— Поддерживается ли проверка аккаунта через/api/account_checkdiscount_percent— Скидка партнёра для сервиса типаbalance. Для ваучерных сервисов может бытьnullhas_voucher_discounts— Есть ли индивидуальные скидки по ваучерам внутри сервисаmax_voucher_discount_percent— Максимальная скидка по ваучерам сервиса. Может бытьnullmin_voucher_discount_percent— Минимальная скидка по ваучерам сервиса. Может бытьnull
Пример ответа:
{
"available_games": [
{
"id": 1,
"game_name": "steam",
"brand": "steam",
"country": null,
"region": null,
"platform": "Steam",
"delivery_time_target_minutes": 60,
"delivery_time_max_minutes": 2880,
"description": "Пополнение акаунта Steam",
"type": "balance",
"activation": "auto",
"currency": "USD",
"avalible": true,
"request": false,
"account_check": true,
"discount_percent": 3,
"has_voucher_discounts": false,
"max_voucher_discount_percent": null,
"min_voucher_discount_percent": null
},
{
"id": 2,
"game_name": "pubg mobile",
"brand": "pubg mobile",
"country": null,
"region": null,
"platform": null,
"delivery_time_target_minutes": 5,
"delivery_time_max_minutes": 30,
"description": "Ваучеры на пополнение акаунта, код ваучера",
"type": "voucher",
"activation": "manual",
"currency": "USD",
"avalible": true,
"request": true,
"account_check": false,
"discount_percent": null,
"has_voucher_discounts": true,
"max_voucher_discount_percent": 4,
"min_voucher_discount_percent": 4
}
]
}
Ошибки:
401— Ошибка авторизации404— Нет доступных сервисов
Получение доступных номиналов ваучеров:
Метод: GET
/api/voucher_available
Возвращает список номиналов ваучеров по ID игры.
Заголовки:
Authorization: Bearer <токен>
Параметры:
game_id— ID игры
Поля ответа:
game_id— ID запрошенного сервисаavailable— Массив доступных ваучеровavalible- Доступность для покупкиvoucher_id- ID ваучера (используется для заказа)voucher_name- Название ваучераamount- Сумма к списанию с баланса с учётом скидкиcurrency- Валюта списанияgame_coins- Номинал ваучераorigin_price- Цена ваучера без скидки партнёраorigin_currency- Оригинальная валюта ваучераdiscount_rate- Ваш процент скидкиaccount_need- Необходимость передачи аккаунта при покупкеaccount_check- Поддерживается ли проверка аккаунта для ваучераdelivery_method- Способ доставки заказа:voucher_code— будет выдан код ваучера,direct_topup— будет выполнено прямое пополнение аккаунта без выдачи кодаaccount_format- Формат значенияaccountдля/api/pay, если аккаунт требуетсяaccount_separator- Разделитель для передачи нескольких значений в одном параметреaccount. Передаётся только если аккаунт состоит из нескольких значенийaccount_fields- Описание полей аккаунта для формы партнёра. Передаётся только если аккаунт состоит из нескольких значений
Если account_need=true, значение account в /api/pay должно соответствовать account_format. Например, для формата userid|zoneid нужно передать account=2007843311|6512. Если аккаунт состоит из одного значения, account_fields и account_separator не передаются, а account_format содержит требуемый один идентификатор.
Для товаров с delivery_method=direct_topup параметр account обязателен: заказ пополняет указанный аккаунт и не возвращает voucher_code. Для товаров с delivery_method=voucher_code параметр account передавать нельзя: заказ возвращает код ваучера после успешной обработки.
Пример ответа:
{
"game_id": 426,
"available": [
{
"avalible": true,
"voucher_id": 4013,
"voucher_name": "Monthly Elite Pack",
"amount": 4.58,
"currency": "USD",
"game_coins": 22.88,
"origin_price": 4.77,
"origin_currency": "USD",
"discount_rate": 4,
"account_need": true,
"account_check": false,
"delivery_method": "direct_topup",
"account_format": "userid|zoneid",
"account_separator": "|",
"account_fields": [
{
"name": "userid",
"type": "input",
"label": "User ID",
"prefix": "",
"label_zh": "User ID",
"position": 1,
"multiline": false,
"placeholder": "Please enter User ID"
},
{
"name": "zoneid",
"type": "input",
"label": "Zone ID",
"prefix": "",
"label_zh": "Zone ID",
"position": 2,
"multiline": false,
"placeholder": "Please enter Zone ID"
}
]
}
]
}
Пример ответа для ваучера без передачи аккаунта:
{
"game_id": 2,
"available": [
{
"avalible": true,
"voucher_id": 1,
"voucher_name": "60 UC",
"amount": 0.95,
"currency": "USD",
"game_coins": 60,
"origin_price": 0.99,
"origin_currency": "USD",
"discount_rate": 4,
"account_need": false,
"account_check": false,
"delivery_method": "voucher_code"
}
]
}
Ошибки:
400— Не указанgame_idили передано некорректное значение401— Ошибка авторизации403— Нет доступа к сервису102— Нет доступных ваучеров или у сервиса другой тип пополнения103— Сервис временно недоступен
Покупка ваучера/Пополнение баланса:
Метод: POST
/api/pay
Запрос на создание заказа и получение ваучера или пополнения баланса.
В production-среде запрос проходит проверки авторизации, доступа к сервису, доступности номинала, скидки и баланса партнёра. Если заказ завершился успешно, сумма списывается с баланса партнёра. Если заказ завершился ошибкой, списание по заказу не остаётся на балансе.
Параметр test=1 можно передать в production-среде для тестовой транзакции. В этом режиме заказ создаётся и проходит сценарий API, но без обращения к поставщикам и без списания баланса партнёра.
Если партнёр хочет защититься от повторного создания одного и того же заказа, в запрос можно передавать ext_order_id — номер заказа из системы партнёра. Параметр необязательный: если партнёр не использует такую схему интеграции, его можно не передавать.
Если повторно вызвать /api/pay с тем же ext_order_id в рамках того же партнёра, новый заказ не создаётся. В ответе возвращается текущая информация по ранее созданному заказу: если заказ ещё в обработке — статус pending или другой промежуточный статус, если уже завершён — фактический финальный статус заказа.
Если у партнёра включены уведомления о статусах заказа, первичный ответ по /api/pay возвращается со статусом pending, а финальный результат отправляется на webhook партнёра. Если уведомления не включены, API ожидает финальный ответ до 60 секунд. Если за 60 секунд финальный ответ не получен, API возвращает pending, а актуальный статус можно получить через /api/get_order_info.
Для ваучеров способ доставки определяется полем delivery_method из /api/voucher_available. Значение voucher_code означает выдачу кода ваучера; в этом случае account передавать нельзя. Значение direct_topup означает прямое пополнение аккаунта; в этом случае account обязателен и должен соответствовать account_format.
В ответах /api/pay, /api/get_order_info и webhook-уведомлениях возвращается только публичное поле delivery_method. Поля account_fields и account_format нужно читать заранее из /api/voucher_available.
Заголовки:
Authorization: Bearer <токен>
Параметры:
Общий необязательный параметр:
test— передайте1для тестовой транзакции без обращения к поставщикам и без списания баланса.ext_order_id— номер заказа из системы партнёра. Используется для защиты от повторного создания заказа при повторной отправке запроса. Может содержать цифры, буквы или их комбинацию. Длина до 128 символов. Должен быть уникальным в рамках одного партнёра.
Для пополнения баланса (Категории сервисов с "type": "balance"):
game_id— ID игры/сервисаaccount— Аккаунт для пополнения. В тестовом режиме используйте аккаунт gamering или 77778888 для получения успешного статуса; для остальных значений будет возвращён неуспешный тестовый статус.amount— Сумма пополнения
Поля ответа при пополнении баланса:
Поля ответа возвращаются в указанном ниже порядке. При повторном запросе с тем же ext_order_id формат и порядок полей сохраняются.
success- Статус операцииorder_id- Номер заказаext_order_id- Номер заказа из системы партнёра, если был переданgame_name- Название игры/сервисаgame_id- ID игры/сервисаaccount- Аккаунт пополненияamount- Сумма пополненияamount_currency- Валюта пополненияamount_charged- Сумма списания с балансаamount_charged_currency- Валюта списания с балансаmessage- Сообщение о заказеorder_status- Числовой статус заказа. Передаётся для pending-ответов, webhook-уведомлений, ответов после обработки заказа и/api/get_order_infoorder_status_text- Текстовый статус заказа. Передаётся вместе сorder_statuserror_text- Текст ошибки, если заказ завершился с ошибкой
Пример финального ответа при пополнении баланса:
{
"success": true,
"order_id": "7080",
"ext_order_id": "CLIENT12345",
"game_name": "steam",
"game_id": 1,
"account": "gamering",
"amount": 10.5,
"amount_currency": "USD",
"amount_charged": 9.45,
"amount_charged_currency": "USD",
"message": "The balance has been successfully replenished",
"order_status": 2,
"order_status_text": "success"
}
Пример pending-ответа при пополнении баланса:
{
"success": true,
"order_id": "7081",
"ext_order_id": "CLIENT12346",
"game_name": "steam",
"game_id": 1,
"account": "gamering",
"amount": 10.5,
"amount_currency": "USD",
"amount_charged": 9.45,
"amount_charged_currency": "USD",
"message": "Order accepted and pending processing",
"order_status": 1,
"order_status_text": "pending"
}
При повторном запросе /api/pay с тем же ext_order_id будет возвращён текущий статус этого заказа. Например, если заказ уже был успешно завершён, повторный запрос вернёт order_status = 2 и order_status_text = success.
Пример неуспешного ответа при пополнении баланса:
{
"success": false,
"order_id": "7082",
"ext_order_id": "CLIENT12347",
"game_name": "steam",
"game_id": 1,
"account": "gamering123",
"amount": 10.5,
"amount_currency": "USD",
"amount_charged": 9.45,
"amount_charged_currency": "USD",
"message": "cannot be paid",
"order_status": 3,
"order_status_text": "error",
"error_text": "technical problem"
}
Для получения ваучера (Категории сервисов с "type": "voucher"):
voucher_id— ID ваучераaccount— Аккаунт для прямого пополнения или активации. Дляdelivery_method=direct_topupпараметр обязателен. Дляdelivery_method=voucher_codeпараметр передавать нельзя, потому что партнёр получит код ваучера, а не автоматическое пополнение. Формат берётся изaccount_formatметода/api/voucher_available. Если указано несколько полей, значения передаются в одном параметреaccountв порядке изaccount_fieldsчерезaccount_separator, напримерaccount=2007843311|6512. В тестовом режиме используйте аккаунт gamering или 77778888 для успешного статуса; для остальных значений будет возвращён неуспешный тестовый статус. Если у сервиса нет проверки аккаунта, ответственность за корректность аккаунта остаётся на стороне партнёра.activation- необязательный параметр, 0 (не активируем) или 1 (активируем). Активация выполняется только если сервис поддерживает автоматическую активацию и она была запрошена.request- необязательный параметр, 0 (не резервируем) или 1 (резервируем). Данный функционал доступен только для категорий ваучеров с параметром"request": true. В случае доступности и передачи параметра 1 происходит предварительная резервация ваучера до момента передачи статуса заказа со стороны партнёра. Код ваучера передаётся только после отправки вами статуса об успешной оплате на вашей стороне; при возможности активации ваучера она также выполняется только после получения статуса со стороны партнёра.
Поля ответа при покупке или резервировании ваучера:
Поля ответа возвращаются в указанном ниже порядке. При повторном запросе с тем же ext_order_id формат и порядок полей сохраняются.
success- Статус операцииorder_status- Статус операции1- pending (заказ создан и принят в обработку)2- success (заказ успешно завершён, средства списаны с вашего баланса)3- error (заказ завершился с ошибкой, средства по заказу не удерживаются; причина передаётся вerror_text)4- voucher in the process of activation (По заказу выдан ваучер и происходит его попытка активации в автоматическом режиме, средства списаны с вашего баланса)5- Balance replenishment is in progress (пополнение аккаунта выполняется, финальный статус будет доступен позднее)6- Waiting for payment confirmation (Ожидаем статус оплаты со стороны партнёра, ваучер находится в резерве, средства с вашего баланса не списаны)
order_status_text- Текстовая расшифровка статуса заказаorder_id- Номер заказа в нашей системеext_order_id- Номер заказа из системы партнёра, если был переданgame_name- Название игры/сервисаgame_id- ID игры/сервисаvoucher_id- ID ваучера из каталогаvoucher_name- Название ваучераgame_coins- Номинал ваучера в валюте сервисаgame_currency- Валюта сервисаdelivery_method- Способ доставки заказа:voucher_codeилиdirect_topupaccount- Аккаунт пополнения/активации. Передаётся, если был указан в запросе или требуется выбранным ваучеромamount- Сумма пополнения/стоимость ваучера розничнаяamount_currency- Валюта пополненияamount_charged- Сумма списания с балансаamount_charged_currency- Валюта списания с балансаvoucher_code- код ваучера. Передаётся после успешной выдачи ваучераvoucher_code_2- дополнительный код ваучера, если код состоит из 2х частейneed_activation- Необходимость активации (0 или 1 в зависимости от запроса)expiration_date_voucher- Срок действия ваучераactivation_voucher- wait/true/false результат активации ваучера. Передаётся только если активация запрошена или заказ ожидает подтверждения оплатыmessage- сообщение о результате попытки активации ваучераdiscount_rate- Ваш процент скидкиerror_text- текст ошибки, в случае неудачного проведения заказа.
Для ваучеров, которые являются прямым пополнением аккаунта, коды voucher_code, voucher_code_2 и срок действия ваучера не передаются. В таких заказах need_activation=0, а промежуточный статус пополнения передаётся как order_status=5. Финальный результат будет доступен через /api/get_order_info или webhook-уведомление, если оно включено.
Пример ответа при покупке ваучера:
{
"success": true,
"order_status": 6,
"order_status_text": "Waiting for payment confirmation",
"order_id": "7086",
"ext_order_id": "CLIENT12348",
"game_name": "pubg",
"game_id": 2,
"voucher_id": 20,
"voucher_name": "300 + 25 UC",
"game_coins": 325,
"game_currency": "UC",
"delivery_method": "voucher_code",
"account": "gamering",
"amount": 4.99,
"amount_currency": "USD",
"amount_charged": 4.49,
"amount_charged_currency": "USD",
"need_activation": 1,
"expiration_date_voucher": "2026-12-31T23:59:59Z",
"activation_voucher": "wait",
"message": "Waiting for payment confirmation",
"discount_rate": 10
}
{
"success": true,
"order_status": 2,
"order_status_text": "success",
"order_id": "7087",
"ext_order_id": "CLIENT12349",
"game_name": "pubg",
"game_id": 2,
"voucher_id": 20,
"voucher_name": "300 + 25 UC",
"game_coins": 325,
"game_currency": "UC",
"delivery_method": "voucher_code",
"amount": 4.99,
"amount_currency": "USD",
"amount_charged": 4.49,
"amount_charged_currency": "USD",
"need_activation": 0,
"voucher_code": "ABCD-EFGH-IJKL",
"expiration_date_voucher": "2026-12-31T23:59:59Z",
"message": "Voucher successfully send",
"discount_rate": 10
}
{
"success": false,
"order_status": 3,
"order_status_text": "error",
"order_id": "7088",
"ext_order_id": "CLIENT12350",
"game_name": "Mobile Legends Diamonds",
"game_id": 426,
"voucher_id": 4022,
"voucher_name": "50 Diamonds + 5 Bonus",
"game_coins": 4.63,
"delivery_method": "direct_topup",
"account": "2007843311|6512",
"amount": 0.93,
"amount_currency": "USD",
"amount_charged": 0.89,
"amount_charged_currency": "USD",
"need_activation": 0,
"message": "cannot be paid",
"discount_rate": 4,
"error_text": "Refunded"
}
Пример ответа для прямого пополнения аккаунта, которое ещё выполняется:
{
"success": true,
"order_status": 5,
"order_status_text": "Balance replenishment is in progress",
"order_id": "7089",
"ext_order_id": "CLIENT12351",
"game_name": "Mobile Legends Diamonds",
"game_id": 426,
"voucher_id": 4022,
"voucher_name": "50 Diamonds + 5 Bonus",
"game_coins": 4.63,
"delivery_method": "direct_topup",
"account": "2007843311|6512",
"amount": 0.93,
"amount_currency": "USD",
"amount_charged": 0.89,
"amount_charged_currency": "USD",
"need_activation": 0,
"message": "Balance replenishment is in progress",
"discount_rate": 4
}
Пример первичного ответа при работе через уведомления о статусах заказа или при таймауте синхронного ожидания:
{
"success": true,
"order_status": 1,
"order_status_text": "pending",
"order_id": "7086",
"ext_order_id": "CLIENT12352",
"game_name": "pubg",
"game_id": 2,
"voucher_id": 20,
"voucher_name": "300 + 25 UC",
"game_coins": 325,
"game_currency": "UC",
"delivery_method": "voucher_code",
"account": "gamering",
"amount": 4.99,
"amount_currency": "USD",
"amount_charged": 4.49,
"amount_charged_currency": "USD",
"need_activation": 1,
"expiration_date_voucher": "2026-12-31T23:59:59Z",
"message": "Order accepted and pending processing",
"discount_rate": 10
}
Ошибки:
400— Некорректные параметры запроса: не указанgame_idилиvoucher_id, не указанaccount, некорректная сумма, недоступна активация или резервирование400—ext_order_idдлиннее 128 символов400— Для товара сdelivery_method=direct_topupне передан обязательныйaccount400— Для товара сdelivery_method=voucher_codeпереданaccount, хотя такой товар должен быть доставлен кодом ваучера401— Ошибка авторизации402— Недостаточно средств на балансе партнёра403— Нет доступа к сервису404— Игра/сервис или ваучер не найдены503— Сервис временно недоступен или интеграция сервиса недоступна500— Внутренняя ошибка
Примеры ошибок 400 по передаче аккаунта:
{
"error": 400,
"error_text": "account is required",
"delivery_method": "direct_topup"
}
{
"error": 400,
"error_text": "account must not be sent for voucher_code delivery; this product returns a voucher code",
"delivery_method": "voucher_code"
}
Обновление статуса заказа
Метод: POST
/api/order_update
Используется партнёром для уведомления о результате оплаты по заказам, которые были созданы через /api/pay с параметром request=1 и ожидают подтверждения оплаты.
При передаче status=2 заказ подтверждается. Для ваучера код выдаётся партнёру; если при создании заказа была запрошена активация и сервис её поддерживает, выполняется попытка активации. Если активация не поддерживается или не была запрошена, ваучер просто выдаётся без активации.
При передаче status=3 заказ переводится в ошибку, резерв ваучера снимается, а баланс партнёра не списывается.
Если заказ уже был финально изменён, повторное изменение статуса не выполняется. Повторный вызов status=2 допускается только для повторной попытки активации, если заказ уже успешный, активация была запрошена, сервис её поддерживает и предыдущая попытка завершилась неуспешно.
Заголовки:
Authorization: Bearer <токен>
Параметры запроса:
order_id— ID заказаstatus— 2 — успешно, 3 — ошибка
Пример запроса:
{
"order_id": "32",
"status": 2
}
Поля ответа:
success- Статус операцииorder_status- Числовой статус заказаorder_status_text- Текстовый статус заказаorder_id- Номер заказаgame_name- Название игры/сервисаgame_id- ID игры/сервисаvoucher_id- ID ваучера из каталогаvoucher_name- Название ваучераgame_coins- Номинал ваучера в валюте сервисаgame_currency- Валюта сервисаaccount- Аккаунт пополнения (при передаче данного параметра)amount- Сумма пополнения/стоимость ваучера розничнаяamount_currency- Валюта пополненияamount_charged- Сумма списания с балансаamount_charged_currency- Валюта списания с балансаvoucher_code- код ваучераvoucher_code_2- дополнительный код ваучера (если код состоит из 2х частей)need_activation- Необходимость активации (0 или 1 в зависимости от запроса)expiration_date_voucher- Срок действия ваучераactivation_voucher- true/false результат активации ваучераmessage- сообщение о результате попытки активации ваучераdiscount_rate- Ваш процент скидки
Пример ответа:
{
"success": true,
"order_status": 2,
"order_status_text": "success",
"order_id": "32",
"game_name": "PUBG Mobile",
"game_id": "2",
"voucher_id": "123",
"voucher_name": "600 UC",
"game_coins": 600,
"game_currency": "UC",
"account": "player_123456789",
"amount": 5.99,
"amount_currency": "USD",
"amount_charged": 5,
"amount_charged_currency": "USD",
"voucher_code": "ABCD-EFGH-IJKL",
"voucher_code_2": "MNOP-QRST",
"need_activation": 1,
"expiration_date_voucher": "2026-12-31T23:59:59Z",
"activation_voucher": true,
"message": "Voucher activated successfully",
"discount_rate": 0
}
Ошибки:
400— Некорректный запрос401— Неавторизован402— Недостаточно средств на балансе партнёра404— заказ не найден101— Статус заказа нельзя изменить повторно500— Ошибка сервера
Получение статуса заказа через уведомления
Метод: POST
Отправляется на URL партнёра.
Партнёр может работать в режиме получения статусов заказов. Если в личном кабинете или через службу поддержки активирован соответствующий функционал и указан URL для отправки нотификаций, при обращении к endpoint /api/pay вы получите первичный ответ со статусом pending. Дальнейшие изменения статуса заказа будут отправляться на ваш endpoint.
Тело уведомления совпадает по структуре с ответом /api/pay и /api/get_order_info для соответствующего типа заказа. Уведомление отправляется при изменении статуса заказа, включая промежуточные статусы обработки и финальные статусы success или error. Для успешной доставки endpoint партнёра должен вернуть HTTP 2xx. При временной ошибке выполняются повторные попытки.
Если при создании заказа был передан ext_order_id, он будет возвращаться в уведомлениях. Это позволяет сопоставить заказ Gamering с заказом в системе партнёра.
На стороне партнёра должен быть реализован обработчик нотификаторов. Если для обработчика требуются дополнительные заголовки авторизации, они настраиваются в личном кабинете или через службу технической поддержки.
Пример уведомления:
{
"success": true,
"order_id": "7086",
"ext_order_id": "CLIENT12345",
"game_name": "steam",
"game_id": 1,
"account": "gamering",
"amount": 10.5,
"amount_currency": "USD",
"amount_charged": 9.45,
"amount_charged_currency": "USD",
"message": "The balance has been successfully replenished",
"order_status": 2,
"order_status_text": "success"
}
Получение статуса заказа
Метод: GET
/api/get_order_info
Возвращает информацию по заказу. Формат ответа соответствует ответу /api/pay для соответствующего типа операции: пополнение баланса или ваучер. Метод рекомендуется использовать, если клиент не работает через уведомления, если соединение с /api/pay было прервано до получения финального ответа или если заказ вернулся в промежуточном статусе.
Если при создании заказа был передан ext_order_id, он будет возвращаться в ответе. Для одного и того же заказа повторный запрос /api/pay с тем же ext_order_id и запрос /api/get_order_info возвращают текущий статус этого заказа.
Заголовки:
Authorization: Bearer <токен>
Параметры:
order_id— ID заказа
Статусы заказа:
1— pending, заказ создан и находится в обработке2— success, заказ успешно завершён3— error, заказ завершился ошибкой или был возвращён/отменён4— voucher in the process of activation, ваучер выдан и идёт попытка активации5— Balance replenishment is in progress, пополнение аккаунта в обработке6— Waiting for payment confirmation, заказ ожидает подтверждения оплаты со стороны партнёра
Если заказ был возвращён или отменён после отправки в обработку, метод вернёт order_status=3 и причину в error_text.
Ошибки:
400— Не указан или некорректно переданorder_id401— Ошибка авторизации404— Заказ не найден500— Внутренняя ошибка
Отправка данных по заказам со стороны партнера для сверки
Метод: POST
/api/revise
Используется партнёром для отправки данных по заказам за определённый период и сверки статусов с данными Gamering. По найденным заказам в системе фиксируются данные сверки.
Заголовки:
Authorization: Bearer <токен>
Параметры запроса:
date_from— Начальная дата периода в форматеDD.MM.YYYYилиYYYY-MM-DDdate_to— Дата окончания периода в форматеDD.MM.YYYYилиYYYY-MM-DDpayments— Массив данных по заказамorder_id— Номер заказа внутри элементаpaymentsamount— Сумма, списанная с баланса партнёра; также принимается полеamount_chargedstatus— Статус заказа внутри элементаpayments: 2 — успешно, 3 — ошибкаtransaction_time— Дата и время операции на стороне партнёра
Поля ответа:
success— true/falsepayments_count— Количество принятых в обработку платежейrevise_payments_count— Количество сверенных заказов (количество найденых на стороне Gamering заказов по присланным данным)revise_payments_true— Количество успешно сверенных заказов (статусы совпадают)revise_payments_false— Количество неуспешно сверенных заказов (статусы различаются, в дальнейшем будем разрабатывать методологию работы с расхождениями)revise_payments_not_found— Количество заказов из запроса, которые не найдены на стороне Gamering за указанный период и партнёраrevise_payments_mismatches— Массив заказов с расхождениями. Для каждого элемента возвращаютсяorder_id,mismatch_reason, статусы и суммы со стороны партнёра и Gamering
Пример запроса:
{
"date_from": "21.01.2026",
"date_to": "21.01.2026",
"payments": [
{
"order_id": "32",
"amount": 13164.1,
"status": 2,
"transaction_time": "01.04.2025 16:45:12"
},
{
"order_id": "33",
"amount": 12457.8,
"status": 3,
"transaction_time": "01.04.2025 10:37:52"
},
{
"order_id": "34",
"amount": 13142.32,
"status": 2,
"transaction_time": "01.04.2025 10:37:52"
}
]
}
Пример ответа:
{
"success": true,
"payments_count": 3,
"revise_payments_count": 2,
"revise_payments_true": 0,
"revise_payments_false": 2,
"revise_payments_not_found": 1,
"revise_payments_mismatches": [
{
"order_id": "32",
"mismatch_reason": "status_mismatch",
"partner_status": 2,
"gamering_status": 3,
"partner_amount": 13164.1,
"gamering_amount": 13164.1,
"partner_transaction_time": "01.04.2025 16:45:12",
"gamering_transaction_time": "2026-01-21T12:45:12+00:00"
},
{
"order_id": "33",
"mismatch_reason": "amount_mismatch",
"partner_status": 3,
"gamering_status": 3,
"partner_amount": 12457.8,
"gamering_amount": 12450.8,
"partner_transaction_time": "01.04.2025 10:37:52",
"gamering_transaction_time": "2026-01-21T09:37:52+00:00"
},
{
"order_id": "34",
"mismatch_reason": "not_found",
"partner_status": 2,
"partner_amount": 13142.32,
"partner_transaction_time": "01.04.2025 10:37:52"
}
]
}
Ошибки:
400— Некорректный запрос: не указаны даты, неверный формат дат,date_fromбольшеdate_to,paymentsне является массивом или элементы массива заполнены неверно401— Неавторизован500— Ошибка сервера
Проверка наличия учётной записи в сервисе
Метод: GET
/api/account_check
Возвращает информацию по учётной записи указанного сервиса. Доступно для сервисов с account_check = true.
Для тестовой проверки передайте test=1. В тестовом режиме используйте аккаунт gamering или 77778888 для получения успешного статуса; для остальных значений будет возвращён неуспешный тестовый статус. В production-режиме проверка выполняется для сервисов, где она включена; если проверка временно недоступна, будет возвращён ответ 503.
Заголовки:
Authorization: Bearer <токен>
Параметры:
game_id— ID сервиса. Также принимается совместимый параметрgameidaccount— аккаунт для проверкиtest— необязательный параметр, передайте1для тестовой проверки без обращения к поставщику
Поля ответа:
success— Статус операцииmessage— Сообщение об аккаунтеerror_text— Текст ошибки, если запрос не может быть обработан
Пример ответа:
{
"success": true,
"message": "The account has been found, you can place an order."
}
{
"success": false,
"message": "Account not found, you cannot place an order."
}
Ошибки:
400— Не указан или неверно переданgame_id/gameid, не указанaccountили сервис недоступен партнёру401— Ошибка авторизации404— Сервис не найден или не поддерживает проверку аккаунта503— Сервис временно недоступен или production-интеграция проверки аккаунта ещё не включена500— Внутренняя ошибка