P
GMXAZ Bot API İş Sahəsi Public API · v1
Kolleksiya JSON OpenAPI JSON Mühit JSON
AZ EN RU
▦Kolleksiya icmalı

GMXAZ Bot Public API kolleksiyası

API sorğularını seçin, parametrləri doldurun və cavabı eyni iş sahəsində yoxlayın.

Əsas URLhttps://gmx.az/api/v1
AutentifikasiyaX-API-KEY
Sorğu limiti60 / dəqiqə
ValyutaUSD

Giriş

API kataloqa baxış, oyunçu yoxlaması, vauçer və top-up sifarişləri, sifariş izləmə, redeem yoxlamaları və imzalanmış müştəri webhook-larını təmin edir. Provayder məlumatları daxili məlumatdır və müştəriyə təqdim olunan API cavablarına və ya webhook məlumatlarına heç vaxt daxil edilmir.

Environment JSON qəsdən yalnız dəyişənlər faylıdır və API sənədləşməsi deyil. Tam inteqrasiya istinadı üçün Collection JSON, OpenAPI JSON və ya Full API JSON istifadə edin.

Autentifikasiya və təhlükəsizlik

Hər qorunan sorğuda şəxsi API açarınızı X-API-KEY başlığında göndərin. Açarı yalnız backend-də saxlayın. Onu brauzer kodunda, Mini App-lərdə, mobil paketlərdə və ya açıq repozitoriyalarda heç vaxt paylaşmayın.

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

İdempotentlik

Sifariş yaradarkən X-Idempotency-Key başlığında unikal UUID göndərin. Eyni açar və eyni məlumatlarla təkrar sorğu mövcud sifarişi qaytarır. Eyni açarın fərqli məlumatlarla yenidən istifadəsi IDEMPOTENCY_CONFLICT xətası qaytarır. Hazır Postman kolleksiyasında təkrar cəhd zamanı yaradılmış əməliyyat açarını dəyişməyin; yalnız yeni maliyyə əməliyyatına başlayanda onu təmizləyin.

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

Sifariş axını

  1. Oyunları, kateqoriyaları və məhsulları yükləyin. Cari qiyməti, stok vəziyyətini, dəstəklənən sahələri və doğrulama tələbini yoxlayın.
  2. supports_player_validation true olduqda və ya məhsul doğrulama tələb etdikdə oyunçunu yoxlayın.
  3. UUID idempotentlik açarı ilə sifariş yaradın və tələb olunduqda callback_url ilə callback_mode göndərin.
  4. Yekun status əldə edilənədək sifarişi GET /order/{id}, GET /orders və ya imzalanmış webhook hadisələri vasitəsilə izləyin.

Webhook-lar

API sifarişində callback_url göstərildikdə platforma həmin ünvana imzalanmış JSON yeniləmələri göndərir. Webhook-larda yalnız sifariş, məhsul, oyunçu, qiymət, status, çatdırılma və müştəri əməliyyatı sahələri olur. Yuxarı səviyyəli provayder adları, URL-lər, sifariş ID-ləri və xam cavablar heç vaxt açıqlanmır.

Callback rejimləri

legacy

Sifariş COMPLETED və ya CANCELED yekun statusuna çatdıqda bir dəfə yekun callback göndərir.

events

PENDING, PROCESSING, COMPLETED və FAILED kimi imzalanmış həyat dövrü dəyişikliklərini göndərir.

Webhook başlıqları

BaşlıqAçıqlama
X-EPINBULK-Signature-V2Tövsiyə edilən: sha256=HMAC_SHA256(timestamp + "." + event_id + "." + xam_json_gövdesi, webhook_məxfi_açarı). Yuxarıda göstərilən timestamp və event-id başlıqlarından istifadə edin.
X-EPINBULK-Signature-Version2
X-EPINBULK-Signaturesha256=HMAC_SHA256(xam_json_gövdesi, webhook_məxfi_açarı)
X-EPINBULK-TimestampISO-8601 webhook göndərilmə vaxtı. V2 imzanı yoxlayarkən vaxtın təzəliyini də yoxlayın.
X-EPINBULK-Event-IdUnikal hadisə UUID-si.
X-EPINBULK-EventActual event name: order.status_changed or qr_login.*

Callback URL tələbləri

  • Yalnız HTTPS URL qəbul edilir.
  • Yalnız 443 portu qəbul edilir.
  • Şəxsi və yerli ünvanlar bloklanır.
  • URL daxilində giriş məlumatı qəbul edilmir.
  • Yönləndirmələr izlənmir.
  • Server 2xx cavab qaytarmalıdır.

Təkrar cəhd cədvəli

1 → 1 dəqiqə → 2 → 5 dəqiqə → 3 → 15 dəqiqə → 4-6 → 60 dəqiqə → 7-20 → 6 saat · Maksimum 20 göndərmə cəhdi.

Legacy yekun webhook nümunəsi

{
    "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"
}

Events webhook nümunəsi

{
    "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": "Sifariş uğurla tamamlandı.",
    "timestamp": "2026-07-25T13:30:10+04:00"
}

İmzanın yoxlanılması

API girişi ilə birlikdə verilmiş webhook_secret məlumatından istifadə edərək sorğunun dəyişdirilməmiş xam JSON gövdəsi üzərində HMAC SHA-256 hesablayın. Nəticəni bu sənəddə göstərilən imza başlığı ilə zamanlama hücumlarına davamlı üsulla müqayisə edin.

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);

Statusların həyat dövrü

StatusTerminalAçıqlama
PENDING Xeyr Sifariş emal gözləyir.
PROCESSING Xeyr Sifariş emal olunur.
COMPLETED Bəli Sifariş tamamlanıb.
FAILED Bəli Sifariş uğursuz olub.
CANCELED Bəli Sifariş ləğv edilib.
REFUNDED Bəli Məbləğ geri qaytarılıb.

Xəta kodları

CodeHTTPAçıqlama
API_DISABLED503Public API admin tərəfindən deaktiv edilib.
API_KEY_MISSING401X-API-KEY başlığı göndərilməyib.
CLIENT_ORDER_ID_CONFLICT409Eyni client_order_id artıq başqa sifarişə təyin edilib.
GAME_NOT_FOUND404Oyun tapılmadı və ya aktiv deyil.
IDEMPOTENCY_CONFLICT409Eyni açar fərqli sorğu ilə istifadə edilib.
IDEMPOTENCY_KEY_INVALID422Idempotency açarı yanlışdır və ya 128 simvoldan uzundur.
IDEMPOTENCY_KEY_REQUIRED422Bu əməliyyat üçün stabil idempotency açarı tələb olunur.
INSUFFICIENT_FUNDS400Balans kifayət etmir.
INVALID_API_KEY401API açarı yanlışdır, passivdir və ya müştəri passivdir.
INVALID_QUANTITY422Say icazə verilən limiti keçir.
IP_NOT_ALLOWED403Sorğu edən IP ünvanına icazə verilməyib.
ORDER_FAILED409Sifariş emal edilə bilmədi.
ORDER_NOT_FOUND404Sifariş tapılmadı və ya bu istifadəçiyə aid deyil.
OUT_OF_STOCK409Sifariş emal edilə bilmədi.
PLAYER_ID_REQUIRED422player_id sahəsi məcburidir.
PLAYER_NOT_FOUND404Oyunçu yoxlanmadı.
PRODUCT_NOT_FOUND404Top-up məhsulu tapılmadı.
RATE_LIMIT_EXCEEDED429Dəqiqəlik sorğu limiti keçilib.
REDEEM_CHECK_FAILED422Kod yoxlaması uğursuz oldu.
SECURITY_ERROR400Geri çağırış URL-si təhlükəsizlik qaydalarına uyğun deyil.
SERVER_ID_REQUIRED422server_id sahəsi məcburidir.
VALIDATION_ERROR422type və ya q parametrinin formatı yanlışdır.
Error response shape
{
    "success": false,
    "error": {
        "code": "VALIDATION_ERROR",
        "message": "product_id sahəsi məcburidir.",
        "details": {
            "max": 1
        }
    }
}

Limitlər və təkrar cəhd qaydaları

Təyin edilmiş dəqiqəlik sorğu limitinə əməl edin. 429 və müvəqqəti 5xx cavablarını eksponensial gecikmə ilə təkrar yoxlayın. Eyni sifariş sorğusunu təkrar göndərərkən yeni idempotentlik açarı yaratmayın.

Sorğu limiti60 / dəqiqə
max_per_page100
max_voucher_qty500
max_topup_qty1
default_callback_modelegacy

Yükləmələr və Postman faylları

Postman Collection JSON

Bütün endpoint-ləri, parametrləri, sorğu gövdələrini, uğurlu cavabları, xəta nümunələrini, testləri, idempotentlik emalını və webhook qəbuledicisi nümunələrini ehtiva edir.

Postman Environment JSON

Yalnız dəyişənləri ehtiva edir. Kolleksiya ilə birlikdə idxal edin, sonra x_api_key, webhook_secret, callback_url və test identifikatorlarını doldurun.

OpenAPI JSON

Marşrutlar, sxemlər, təhlükəsizlik, xəta cavabları və webhook təriflərini ehtiva edən maşın tərəfindən oxuna bilən OpenAPI 3.1 spesifikasiyası.

Tam API JSON

Endpoint-lər, parametrlər, nümunələr, statuslar, webhook siyasəti, limitlər, xətalar və dəyişiklik tarixçəsi daxil olmaqla sənədləşmə modelinin tam ixracı.

Sorğu

URL yolu və sorğu parametrlərini burada idarə edin.

AçarDəyərYerAçıqlama
API açarı
X-API-KEY
Açar yalnız cari səhifə sessiyasında saxlanılır.

Sistem başlıqları avtomatik əlavə olunur.

BaşlıqDəyərAçıqlama

JSON gövdəsini redaktə edin.

Vəziyyət: — Vaxt: — Ölçü: —
Sorğu göndərildikdən sonra cavab burada görünəcək.