← Kembali ke akun

API Reseller

Beli key otomatis dari bot / website kamu. Khusus akun reseller. Pembelian memotong saldo web dengan harga reseller. Buat API key di Akun → API.

Autentikasi

Kirim API key di header X-Api-Key. Semua respons JSON: sukses {"ok": true, ...}, gagal {"ok": false, "error": "kode", "message": "..."}. Batas 60 permintaan / menit per akun. Key bisa dibatasi ke IP tertentu.

curl -H "X-Api-Key: ck_xxxxxxxx" https://DOMAIN-KAMU/api/v1/balance

GET /api/v1/balance

Saldo web saat ini.

{"ok": true, "balance": 150000}

GET /api/v1/products

Daftar produk, varian, harga reseller, dan stok (in_stock).

{"ok": true, "products": [{"id": "...", "name": "DRIP APKMOD",
  "variants": [{"id": "uuid-varian", "label": "1 Day", "price": 8100, "in_stock": true}]}]}

POST /api/v1/order

Beli satu key. Body JSON:

variant_idID varian dari /products.
refKode unik buatanmu (8–64 karakter: huruf, angka, . _ : -). Kunci idempoten: mengirim ulang ref yang sama tidak memotong saldo lagi dan mengembalikan pesanan yang sama.
curl -X POST https://DOMAIN-KAMU/api/v1/order \
  -H "X-Api-Key: ck_xxxxxxxx" -H "Content-Type: application/json" \
  -d '{"variant_id":"uuid-varian","ref":"pesanan-0001"}'

{"ok": true, "balance": 141900, "order": {"id": "CK...", "ref": "pesanan-0001",
 "status": "success", "product": "DRIP APKMOD", "variant": "1 Day", "price": 8100, "key": "ABCD-1234"}}

status: success (key ada di field key), processing (saldo terpotong, key sedang disiapkan — cek lagi lewat GET order), failed (stok habis; saldo otomatis dikembalikan, refunded: true).

Kalau koneksi putus / timeout, kirim ulang dengan ref yang sama — aman, tidak beli dua kali.

GET /api/v1/order/{id atau ref}

Status & key pesanan. Pesanan processing akan dicoba dikirim ulang saat dicek.

Kode galat

HTTPerrorArti
401unauthorizedAPI key salah / dicabut / akun bukan reseller
403unauthorizedIP tidak diizinkan untuk key ini
400bad_requestvariant_id / ref tidak valid
402insufficient_balanceSaldo kurang (balance, need ada di respons)
404variant_unavailable / not_foundVarian atau pesanan tidak ada
409out_of_stock / maintenanceStok habis (saldo tidak dipotong) atau produk maintenance
429rate_limitTerlalu banyak permintaan

Contoh (Node.js)

const r = await fetch('https://DOMAIN-KAMU/api/v1/order', {
  method: 'POST',
  headers: { 'X-Api-Key': process.env.CK_KEY, 'Content-Type': 'application/json' },
  body: JSON.stringify({ variant_id: 'uuid-varian', ref: 'pesanan-' + orderId }),
});
const j = await r.json();
if (j.ok && j.order.key) console.log('Key:', j.order.key);