P
Рабочая область API GMXAZ Bot Public API · v1
JSON коллекции OpenAPI JSON JSON окружения
AZ EN RU
▦Обзор коллекции

Коллекция Public API GMXAZ Bot

Выберите запрос, заполните параметры и проверьте ответ в той же рабочей области.

Базовый URLhttps://gmx.az/api/v1
АвторизацияX-API-KEY
Лимит запросов60 / минута
ВалютаUSD

Введение

API предоставляет каталог, проверку игрока, покупку ваучеров и пополнений, отслеживание заказов, проверку кодов и подписанные webhook для клиентов. Данные внутренних провайдеров никогда не включаются в ответы API и webhook для клиента.

Environment JSON по назначению содержит только переменные, а не документацию API. Для полной интеграции используйте Collection JSON, OpenAPI JSON или Полный API JSON.

Авторизация и безопасность

Передавайте приватный API ключ в заголовке X-API-KEY каждого защищённого запроса. Храните его только на backend. Не размещайте ключ в браузерном коде, Mini App, мобильной сборке или открытом репозитории.

HTTP header
X-API-KEY: YOUR_API_KEY
Accept: application/json

Идемпотентность

При создании заказа передавайте уникальный UUID в X-Idempotency-Key. Повтор с тем же ключом и телом вернёт существующий заказ. Повтор с другим телом вернёт IDEMPOTENCY_CONFLICT. В сгенерированной коллекции Postman не меняйте ключ операции при повторной попытке; очищайте его только перед новой финансовой операцией.

HTTP header
X-Idempotency-Key: 550e8400-e29b-41d4-a716-446655440000

Процесс заказа

  1. Загрузите игры, категории и товары. Используйте актуальную цену, наличие, список полей и требование проверки игрока.
  2. Проверьте игрока, если supports_player_validation равен true или товар требует обязательную проверку.
  3. Создайте заказ с UUID ключом идемпотентности и при необходимости передайте callback_url и callback_mode.
  4. Отслеживайте заказ через GET /order/{id}, GET /orders или подписанные webhook до финального статуса.

Webhooks

Если API заказ содержит callback_url, платформа отправляет на него подписанные JSON обновления. Webhook содержит только данные заказа, товара, игрока, цены, статуса, выдачи и требуемого действия клиента. Названия, URL, ID заказов и сырые ответы внутренних провайдеров не раскрываются.

Режимы callback

legacy

Отправляет один финальный callback при статусе COMPLETED или CANCELED.

events

Отправляет подписанные изменения статуса PENDING, PROCESSING, COMPLETED и FAILED.

Заголовки webhook

ЗаголовокОписание
X-EPINBULK-Signature-V2Рекомендуется: sha256=HMAC_SHA256(timestamp + "." + event_id + "." + raw_json_body, webhook_secret). Используйте заголовки timestamp и event-id, указанные выше.
X-EPINBULK-Signature-Version2
X-EPINBULK-Signaturesha256=HMAC_SHA256(сырое_тело_json, секрет_webhook)
X-EPINBULK-TimestampВремя отправки webhook в ISO-8601. При проверке подписи V2 проверяйте также актуальность времени.
X-EPINBULK-Event-IdУникальный UUID попытки обратного вызова.
X-EPINBULK-EventActual event name: order.status_changed or qr_login.*

Требования к callback URL

  • Принимаются только HTTPS URL.
  • Принимается только порт 443.
  • Частные, зарезервированные и localhost адреса блокируются.
  • Учётные данные в URL не принимаются.
  • Перенаправления не выполняются.
  • Сервер должен вернуть ответ 2xx.

График повторных попыток

1 → 1 минута → 2 → 5 минут → 3 → 15 минут → 4-6 → 60 минут → 7-20 → 6 часов · Максимум 20 попыток доставки.

Пример финального webhook legacy

{
    "event_id": "47c8c6ba-16a5-4089-9f62-7ae1e51d4c0f",
    "order_id": 8821,
    "client_order_id": "order-10001",
    "status": "COMPLETED",
    "product_name": "Steam Wallet 10 USD",
    "qty": 2,
    "player_id": null,
    "player_name": null,
    "server_id": null,
    "region": null,
    "price": "19.9800",
    "currency": "USD",
    "delivery": [
        "CODE-ONE-XXXX",
        "CODE-TWO-XXXX"
    ],
    "manual_action_required": false,
    "delivery_message": null,
    "timestamp": "2026-07-25T13:31:10+04:00"
}

Пример webhook events

{
    "event_id": "47c8c6ba-16a5-4089-9f62-7ae1e51d4c0f",
    "event": "order.status_changed",
    "callback_mode": "events",
    "order_id": 8821,
    "client_order_id": "order-10001",
    "product_id": 91,
    "product_name": "PUBG Mobile 60 UC",
    "product_type": "TOPUP",
    "game_id": 1,
    "game_name": "PUBG Mobile",
    "player_id": "51515969536",
    "player_name": "PlayerOne",
    "server_id": "1234",
    "region": "TR",
    "qty": 1,
    "price": "0.8800",
    "currency": "USD",
    "delivery": [],
    "manual_action_required": false,
    "delivery_message": null,
    "status": "COMPLETED",
    "message": "Заказ успешно завершён.",
    "timestamp": "2026-07-25T13:30:10+04:00"
}

Проверка подписи

Вычислите HMAC SHA-256 от точного сырого JSON тела, используя webhook_secret, выданный вместе с доступом к API. Сравните результат с заголовком подписи, указанным в этой документации, безопасным по времени методом.

PHP
<?php
$secret = 'YOUR_WEBHOOK_SECRET';
$rawBody = file_get_contents('php://input');
$received = $_SERVER['HTTP_X_GAMEX_SIGNATURE'] ?? '';
$computed = 'sha256=' . hash_hmac('sha256', $rawBody, $secret);

if (!hash_equals($computed, $received)) {
    http_response_code(401);
    exit('Invalid signature');
}

http_response_code(204);

Жизненный цикл статусов

StatusTerminalОписание
PENDING Нет Заказ создан и ожидает обработки.
PROCESSING Нет Заказ обрабатывается.
COMPLETED Да Заказ успешно завершён. Для ваучера возвращаются коды.
FAILED Да Заказ завершился ошибкой или отменён.
CANCELED Да Заказ отменён.
REFUNDED Да Сумма возвращена на баланс.

Коды ошибок

CodeHTTPОписание
API_DISABLED503Public API отключён администратором.
API_KEY_MISSING401Заголовок X-API-KEY не передан.
CLIENT_ORDER_ID_CONFLICT409Этот client_order_id уже назначен другому заказу.
GAME_NOT_FOUND404Игра не найдена или неактивна.
IDEMPOTENCY_CONFLICT409Один ключ использован с другим содержимым запроса.
IDEMPOTENCY_KEY_INVALID422Ключ идемпотентности недействителен или длиннее 128 символов.
IDEMPOTENCY_KEY_REQUIRED422Для этой операции требуется стабильный ключ идемпотентности.
INSUFFICIENT_FUNDS400Недостаточно средств для заказа.
INVALID_API_KEY401API ключ недействителен или отключён, либо клиент неактивен.
INVALID_QUANTITY422Количество превышает лимит товара или API.
IP_NOT_ALLOWED403IP адрес запроса не разрешён.
ORDER_FAILED409Не удалось создать или обработать заказ.
ORDER_NOT_FOUND404Заказ не найден или принадлежит другому API пользователю.
OUT_OF_STOCK409Не удалось создать или обработать заказ.
PLAYER_ID_REQUIRED422Для пополнения требуется player_id.
PLAYER_NOT_FOUND404Игрок не прошёл обязательную проверку.
PRODUCT_NOT_FOUND404Товар пополнения не найден или неактивен.
RATE_LIMIT_EXCEEDED429Превышен лимит запросов в минуту.
REDEEM_CHECK_FAILED422Проверка кода не удалась, сервис отключён или недостаточно средств.
SECURITY_ERROR400URL обратного вызова не соответствует требованиям безопасности.
SERVER_ID_REQUIRED422Для товара требуется server_id.
VALIDATION_ERROR422Параметр type или q имеет неверный формат.
Error response shape
{
    "success": false,
    "error": {
        "code": "VALIDATION_ERROR",
        "message": "Поле product_id обязательно.",
        "details": {
            "max": 1
        }
    }
}

Лимиты и повторы

Соблюдайте лимит запросов в минуту. Повторяйте 429 и временные 5xx с экспоненциальной задержкой. При повторе того же заказа не создавайте новый ключ идемпотентности.

Лимит запросов60 / минута
max_per_page100
max_voucher_qty500
max_topup_qty1
default_callback_modelegacy

Загрузки и файлы Postman

Postman Collection JSON

Содержит все endpoints, параметры, тела запросов, успешные ответы, примеры ошибок, тесты, идемпотентность и примеры приёмника webhook.

Postman Environment JSON

Содержит только переменные. Импортируйте вместе с коллекцией и заполните x_api_key, webhook_secret, callback_url и тестовые идентификаторы.

OpenAPI JSON

Машиночитаемая спецификация OpenAPI 3.1 с путями, схемами, безопасностью, ошибками и webhook.

Полный API JSON

Полный экспорт модели документации: endpoints, параметры, примеры, статусы, политика webhook, лимиты, ошибки и журнал изменений.

Запрос

Управляйте параметрами пути и запроса здесь.

КлючЗначениеРасположениеОписание
API ключ
X-API-KEY
Ключ хранится только в текущей сессии страницы.

Системные заголовки добавляются автоматически.

ЗаголовокЗначениеОписание

Измените JSON тело.

Статус: — Время: — Размер: —
Ответ появится здесь после отправки запроса.