GerbangAPI Hub

Public H2H API

Integrasi host-to-host buat reseller: buat order, cek status, lihat produk & saldo — semua pakai saldo wallet GerbangAPI kamu, tanpa perlu akun supplier sendiri. Base URL = domain backend GerbangAPI (tanya admin kalau belum tahu), semua path di bawah relatif ke situ.

Autentikasi

Semua request wajib bawa header X-API-KEY. Key-mu ada di dashboard → Pengaturan Akun (bisa di-regenerate di sana; key lama langsung mati).

curl https://BASE_URL/h2h/v1/balance \
  -H "X-API-KEY: GAH-xxxxxxxxxxxxxxxx"

Rate limit: 60 request/menit per key (lebih dari itu → HTTP 429 + header Retry-After).

Endpoint

GET /h2h/v1/products

Daftar produk yang bisa dibeli (kode, nama, harga jual).

GET /h2h/v1/products/{code}/forms

Field input yang dibutuhkan produk itu (mis. User ID + Zone ID buat MLBB) — kirim balik lewat data saat order.

GET /h2h/v1/balance

{ "success": true, "data": { "balance": 1500000 } }

POST /h2h/v1/order

Buat order. ref_id = ID transaksi versi kamu — alfanumerik/titik/strip/underscore, maks 64 karakter, unik per akun.

POST /h2h/v1/order
Content-Type: application/json
X-API-KEY: GAH-xxxxxxxxxxxxxxxx

{
  "ref_id": "TRX-2026-0001",
  "product_code": "ML86",
  "customer_no": "123456789",
  "data": [{ "key": "zone_id", "value": "1234" }]
}

// 201 Created
{
  "success": true,
  "message": "Order diterima",
  "data": {
    "ref_id": "TRX-2026-0001",
    "status": "processing",
    "sn": "",
    "price": 25000,
    "product_name": "ML 86 Diamonds"
  }
}
Idempoten: kirim ulang ref_id yang sama = balikin hasil order pertama, tidak di-charge ulang. Kalau order gagal dan mau coba lagi, pakai ref_id baru.

GET /h2h/v1/order/{ref_id}

Cek status order. Order yang belum final dicek ulang ke supplier dulu — hasilnya selalu fresh.

{
  "success": true,
  "data": {
    "ref_id": "TRX-2026-0001",
    "status": "success",
    "sn": "SN123456789",
    "price": 25000,
    "customer_no": "123456789",
    "product_code": "ML86",
    "created_at": "2026-07-26 10:00:00"
  }
}

Status & Error Code

Status orderArti
pendingOrder diterima, belum diproses
processingSedang diproses supplier
successSelesai — SN/kode ada di field sn
failedGagal — saldo otomatis di-refund ke wallet
HTTPArti
401X-API-KEY kosong / salah / dicabut
402Saldo wallet tidak cukup
403Akun tidak aktif
404Produk / order tidak ditemukan
429Rate limit (60/menit) — coba lagi nanti

Webhook (opsional)

Isi Webhook URL di Pengaturan Akun → tiap order H2H yang jadi success / failed di-POST ke URL kamu (retry 3× kalau gagal). Verifikasi keasliannya pakai header X-GAH-Signature: HMAC-SHA256 atas body mentah dengan API Secret kamu sebagai kunci (secret ditampilkan sekali saat regenerate key).

POST {webhook_url_kamu}
X-GAH-Event: order.success
X-GAH-Signature: sha256=hex(hmac_sha256(api_secret, body))

{
  "event": "order.success",
  "order_id": "1234",
  "external_ref_id": "TRX-2026-0001",
  "status": "success",
  "sn": "SN123456789",
  "amount": 25000,
  "supplier": "gerbangapi",
  "timestamp": "2026-07-26T10:05:00Z"
}

Webhook bisa terkirim lebih dari sekali — proses secara idempoten berdasarkan external_ref_id. Jangan andalkan webhook doang: tetap sediakan polling GET /h2h/v1/order/{ref_id} sebagai fallback.