Mulai cepat
Semua endpoint memakai POST, Content-Type: application/json, dan HTTPS. Ambil UID serta API secret dari halaman profil account.
Gunakan API v2 HMAC untuk seluruh integrasi baru. API v1 legacy dinonaktifkan secara default dan hanya tersedia jika operator mengaktifkannya sementara untuk migrasi client lama.
Semua endpoint memakai POST, Content-Type: application/json, dan HTTPS. Ambil UID serta API secret dari halaman profil account.
X-AF-UIDUID API accountX-AF-TimestampUnix timestamp; toleransi server 5 menitX-AF-NonceNilai acak unik per requestX-AF-Request-IDID unik per request; dapat menjadi idempotency fallbackX-AF-SignatureHex HMAC SHA-256 dari canonical stringSignature dihitung terhadap byte body persis yang dikirim. Nonce dan request ID yang pernah dipakai akan ditolak sebagai replay.
/api/v2/profileMengambil identitas, level, dan saldo account API.
/api/v2/serviceMembaca layanan aktif dengan harga sesuai role. Produk pascabayar mengembalikan price=null dan requires_inquiry=true karena nominal tagihan harus berasal dari inquiry provider.
/api/v2/postpaid-inquiryWajib sebelum order untuk layanan yang requires_inquiry=true. Inquiry terikat pada credential, service, target, reference provider, nominal tagihan, dan hari inquiry. Jangan membuat inquiry baru hanya karena response pembayaran belum pasti.
/api/v2/orderMembuat order dari saldo account. Harga, promo, quantity, dan saldo dihitung ulang server. Untuk pascabayar quantity wajib 1 dan inquiry_token dari endpoint inquiry wajib dikirim.
/api/v2/statusMengambil order milik credential yang sedang digunakan; order milik account lain tidak dapat dibaca.
Jika callback HTTPS publik dikonfigurasi pada account, AF STORES mengirim JSON berikut ketika status dipublikasikan:
Header X-AF-Callback-Signature berisi HMAC SHA-256 terhadap raw JSON body memakai API secret account. Receiver harus memverifikasi signature sebelum memproses payload dan merespons HTTP 2xx.
200 / 201Request berhasil / order dibuat400Payload atau header tidak lengkap401Credential atau signature tidak valid403IP ditolak, timestamp kedaluwarsa, atau replay404Resource milik account tidak ditemukan413Body melewati batas422Data bisnis tidak valid429Rate limit tercapai503Maintenance atau layanan sementara tidak tersediaAPI v1 hanya tersedia jika operator menetapkan API_V1_LEGACY_ENABLED=true. Client lama memakai /api/profile, /api/service, /api/order, dan /api/status dengan key serta sign = md5(UID + API_SECRET). Karena v1 tidak mempunyai replay protection setara v2, aktifkan hanya selama migrasi dan gunakan API v2 HMAC sebagai target akhir. Produk pascabayar legacy tetap memerlukan inquiry_token.