API reference
Overview & authentication
Environments, API addresses, payment methods, and authentication with an API key.
The API reference comes from the AKD Pay integration guide (docs/API-PARTNER.md), which the Merchant Dashboard → Pengembang (Developer) page also shows in short form. Section numbers (§) follow that guide.
In short: every request carries Authorization: Bearer akd_sk_…. API keys belong to the merchant and work for all of its projects; the project is chosen with project_id in the body. AKD stores only a hash of each key and shows the full key once. A wrong, revoked, or missing key is answered 401 {"error":"unauthorized"}. All amounts are IDR whole numbers and all times are RFC 3339 UTC.
Dokumen ini adalah sumber utama panduan integrasi AKD Pay untuk tim teknis merchant. Halaman Pengembang di Dashboard Merchant menampilkan ringkasan yang sama (GET /api/v1/developer/guide).
Isi:
- Lingkungan dan alamat API
- Checklist sandbox ke live
- Autentikasi dengan API key
- Membuat pembayaran
- Membaca status pembayaran
- Status pembayaran
- Webhook ke server merchant
- Verifikasi signature webhook
- Retry, DEAD, dan kirim ulang
- Idempotensi
- Kode error
- Batas laju (rate limit)
- Checklist pengujian
- Dashboard Merchant: menu Pengembang
- Dashboard Merchant: Daftar, Ajukan Live, dan Tarif
Semua nominal dalam IDR, bilangan bulat (tanpa desimal). Semua waktu dalam RFC 3339 UTC, misalnya 2026-11-01T03:00:00Z.
§1 Lingkungan dan alamat API#
| Sandbox | Live (produksi) | |
|---|---|---|
| Payment API | https://sandbox-api.algoritmakitadigital.id |
https://api.algoritmakitadigital.id |
| Dashboard Merchant | https://sandbox-merchant.algoritmakitadigital.id |
https://merchant.algoritmakitadigital.id |
| Uang | uji coba (Xendit Test mode), tidak ada uang sungguhan | uang sungguhan |
| Simulasi bayar | tersedia (POST /v1/payments/{id}/simulate) |
tidak tersedia |
Halaman bayar AKD (payment_url) |
tersedia | tidak ada; tampilkan QRIS atau nomor VA sendiri |
Sandbox dan live adalah sistem terpisah: merchant, project, API key, webhook endpoint, dan secret masing-masing berbeda. API key sandbox tidak berlaku di live, dan sebaliknya.
Metode pembayaran saat ini:
payment_method |
Keterangan | Minimum |
|---|---|---|
QRIS |
QR dinamis; respons berisi checkout.qr_string |
IDR 1 |
VIRTUAL_ACCOUNT (alias VA) |
nomor virtual account; respons berisi checkout.account_number |
IDR 10.000 |
Metode yang aktif untuk project Anda dapat dicek dengan GET /v1/integration-context?project_id=<project_id>.
§3 Autentikasi dengan API key#
Setiap request ke Payment API memakai header:
Authorization: Bearer akd_sk_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx- API key milik merchant dan berlaku untuk semua project merchant tersebut. Project dipilih lewat
project_iddi body. - AKD hanya menyimpan hash key. Key utuh ditampilkan sekali saat dibuat; Dashboard Merchant hanya menampilkan prefiksnya (misalnya
akd_sk_AbCd1234). - Key yang salah, dicabut (
REVOKED), atau tanpa headerBearerdijawab401 {"error":"unauthorized"}. - Pembuatan dan pencabutan API key dilakukan oleh tim AKD (console). Jika key bocor, minta pencabutan segera. Key baru bisa dibuat sebelum key lama dicabut, sehingga rotasi tidak memutus layanan.