Документация Gamering API V1.0.8

Данный API позволяет партнёрам получать игровые ваучеры, обрабатывать их выдачу, активировать ваучеры, пополнять балансы сервисов, игр и управлять статусами заказов. Ниже представлены основные методы API с примерами, описанием параметров и возможными ошибками.

changelog

V1.0.8 (23.06.2026)

V1.0.7 (02.06.2026)

V1.0.6 (29.05.2026)

V1.0.5 (25.05.2026)

V1.0.4 (09.04.2025)

V1.0.3 (08.04.2025)

V1.0.2 (07.04.2025)

V1.0.1 (03.04.2025)

V1.0

Доступные endpoint API

  1. /api/auth/login - Авторизация партнёров
  2. /api/balance - Получение актуального баланса
  3. /api/gameslist - Получение списка игр/сервисов доступных для пополнения через ваучеры или прямым пополнением баланса
  4. /api/voucher_available - Получение списка доступных ваучеров по id игры/сервиса
  5. /api/pay - универсальный запрос на пополнение баланса или получение ваучера
  6. /api/order_update - Обновление статуса заказа
  7. /api/get_order_info - Получение статуса и информации о заказе
  8. /api/revise - Отправка реестра транзакций для сверки
  9. /api/account_check - Проверка информации по учётной записи указанного сервиса.
Скачать postman collection

Авторизация и получение токена

Метод: POST

/api/auth/login

Метод используется для авторизации партнёра. После успешного запроса возвращается JWT-токен, используемый для авторизации в других методах.

Время жизни токена - 1 час

Параметры запроса:
Пример запроса:
{
  "login": "login",
  "api_key": "password"
 }
Поля ответа:
Пример ответа:
{
  "token": "eyJhbGciOi...",
  "expires_in": 3600,
  "expires_at": "2026-04-15 15:30:14"
 }
Ошибки:

Получение баланса аккаунта

Метод: GET

/api/balance

Метод используется для получения баланса аккаунта.

Заголовки:
Параметры запроса:
Поля ответа:
Пример ответа:
{
     "partner_id": 1,
     "partner_name": "dev",
     "user_name": "dev",
     "user_id": 1,
     "balance": 100000,
     "currency": "USD"
}
Ошибки:

Получение списка игр

Метод: GET

/api/gameslist

Возвращает список доступных партнёру игр и сервисов.

Заголовки:
Поля ответа:
Пример ответа:
{
    "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
        }
    ]
}
Ошибки:

Получение доступных номиналов ваучеров:

Метод: GET

/api/voucher_available

Возвращает список номиналов ваучеров по ID игры.

Заголовки:
Параметры:
Поля ответа:

Если 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"
        }
    ]
}
Ошибки:

Покупка ваучера/Пополнение баланса:

Метод: 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.

Заголовки:
Параметры:

Общий необязательный параметр:

Для пополнения баланса (Категории сервисов с "type": "balance"):

Поля ответа при пополнении баланса:

Поля ответа возвращаются в указанном ниже порядке. При повторном запросе с тем же ext_order_id формат и порядок полей сохраняются.

Пример финального ответа при пополнении баланса:
{
    "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"):

Поля ответа при покупке или резервировании ваучера:

Поля ответа возвращаются в указанном ниже порядке. При повторном запросе с тем же ext_order_id формат и порядок полей сохраняются.

Для ваучеров, которые являются прямым пополнением аккаунта, коды 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 по передаче аккаунта:
{
    "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 допускается только для повторной попытки активации, если заказ уже успешный, активация была запрошена, сервис её поддерживает и предыдущая попытка завершилась неуспешно.

Заголовки:
Параметры запроса:
Пример запроса:
{
  "order_id": "32",
  "status": 2
 }
Поля ответа:
Пример ответа:
{
  "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
}
Ошибки:

Получение статуса заказа через уведомления

Метод: 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 возвращают текущий статус этого заказа.

Заголовки:
Параметры:
Статусы заказа:

Если заказ был возвращён или отменён после отправки в обработку, метод вернёт order_status=3 и причину в error_text.

Ошибки:

Отправка данных по заказам со стороны партнера для сверки

Метод: POST

/api/revise

Используется партнёром для отправки данных по заказам за определённый период и сверки статусов с данными 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"
        }
    ]
 }
Ошибки:

Проверка наличия учётной записи в сервисе

Метод: GET

/api/account_check

Возвращает информацию по учётной записи указанного сервиса. Доступно для сервисов с account_check = true.

Для тестовой проверки передайте test=1. В тестовом режиме используйте аккаунт gamering или 77778888 для получения успешного статуса; для остальных значений будет возвращён неуспешный тестовый статус. В production-режиме проверка выполняется для сервисов, где она включена; если проверка временно недоступна, будет возвращён ответ 503.

Заголовки:
Параметры:
Поля ответа:
Пример ответа:
{
    "success": true,
    "message": "The account has been found, you can place an order."
}
{
    "success": false,
    "message": "Account not found, you cannot place an order."
}
Ошибки: