Mitra H2H
Dokumentasi API
Semua permintaan memakai JSON dan header X-Api-Key.
Kunci diterbitkan admin setelah saldo pertama masuk.
Alamat dasar: https://wila.web.id/api/v1
Batas 120 permintaan per menit per kunci. Melebihi batas dibalas
429.
1. Cek saldo
Dipakai untuk memastikan saldo cukup sebelum membuat pesanan.
curl https://wila.web.id/api/v1/saldo \
-H "X-Api-Key: KUNCI_KAMU"
{
"success": true,
"data": { "saldo": 150000 }
}
2. Daftar produk
Harga yang tampil sudah memakai markup mitra. Saring dengan
?game=slug kalau hanya butuh satu kategori.
curl "https://wila.web.id/api/v1/produk?game=mobile-legends" \
-H "X-Api-Key: KUNCI_KAMU"
{
"success": true,
"data": [
{ "sku": "ml5", "nama": "MOBILE LEGENDS 5 Diamond", "game": "mobile-legends", "harga": 1700, "tersedia": true }
]
}
3. Buat pesanan
ref_id adalah kode unik dari sistemmu.
Kalau dikirim dua kali dengan ref_id yang sama,
pesanan kedua tidak dibuat — jawabannya pesanan yang pertama dengan
"idempoten": true.
curl -X POST https://wila.web.id/api/v1/pesanan \
-H "X-Api-Key: KUNCI_KAMU" \
-H "Content-Type: application/json" \
-d '{
"sku": "ml5",
"target_id": "123456789",
"target_zone": "2001",
"ref_id": "INV-2026-0001"
}'
target_zone hanya untuk game yang memerlukannya,
misalnya Mobile Legends dan Magic Chess.
{
"success": true,
"message": null,
"data": {
"ref_id": "INV-2026-0001",
"kode_pesanan": "WILA-8R4OGX5C",
"sku": "ml5",
"status": "success",
"serial_number": "MOBILE LEGENDS 5 Diamond",
"harga": 1700,
"dibuat": "2026-11-02T10:15:00+07:00",
"idempoten": false
}
}
4. Cek status pesanan
curl https://wila.web.id/api/v1/pesanan/INV-2026-0001 \
-H "X-Api-Key: KUNCI_KAMU"
5. Atur URL callback
Callback dikirim setiap status pesanan berubah. Kosongkan dengan
null kalau belum siap.
curl -X PATCH https://wila.web.id/api/v1/pengaturan \
-H "X-Api-Key: KUNCI_KAMU" \
-H "Content-Type: application/json" \
-d '{"callback_url": "https://situsmu.com/callback"}'
Status pesanan
paid— saldo terpotong, pesanan masuk antrean.processing— sedang diproses ke pemasok.success— selesai,serial_numberberisi keterangan dari penyedia.failed— gagal, saldo otomatis dikembalikan.refunded— dana dikembalikan ke saldo mitra.
Callback
Kiriman berupa POST JSON ke URL callback-mu, dengan header
X-Signature berisi
HMAC-SHA256 dari isi body memakai secret mitra. Secret dikirim terpisah saat kunci diterbitkan.
{
"ref_id": "INV-2026-0001",
"order_code": "WILA-8R4OGX5C",
"sku": "ml5",
"status": "success",
"serial_number": "MOBILE LEGENDS 5 Diamond",
"message": null,
"price": 1700,
"updated_at": "2026-11-02T10:15:30+07:00"
}
Contoh memeriksa tanda tangan di PHP:
$body = file_get_contents("php://input");
$harap = hash_hmac("sha256", $body, $secret);
$terima = $_SERVER["HTTP_X_SIGNATURE"] ?? "";
if (! hash_equals($harap, $terima)) {
http_response_code(401);
exit;
}
Balas dengan HTTP 2xx. Kalau callback gagal, status pesanan tetap bisa dicek lewat endpoint pesanan.
Kode jawaban
200berhasil.201pesanan baru dibuat.401kunci API salah atau tidak aktif.402saldo tidak cukup; jawabannya memuat saldo dan harga.404pesanan tidak ditemukan.422isian tidak lengkap atau SKU tidak tersedia.429melebihi 120 permintaan per menit.