Menuju live
Checklist uji
Skenario yang perlu lolos di sandbox, lalu langkah pindah dari sandbox ke live.
Gunakan checklist ini sebelum mengajukan live. Semua skenario bisa diuji di sandbox dengan simulasi bayar.
§13 Checklist pengujian#
Uji di sandbox sebelum meminta akses live:
- Buat pembayaran
QRIS→PENDINGdengancheckout.qr_string. - Buat pembayaran
VIRTUAL_ACCOUNT→PENDINGdengancheckout.account_number; nominal di bawah 10.000 →400. - Ulangi request yang sama dengan
Idempotency-Keyyang sama →payment_idsama. - Key sama,
amountberbeda →409. -
external_order_idsama dengan key berbeda →409. - Tanpa
Authorization→401; API key salah →401. -
project_idmilik merchant lain atau acak →404. - Simulasi bayar → webhook
payment.paidditerima, signature V2 valid, pesanan ditandai lunas satu kali. - Kirim webhook yang sama dua kali (kirim ulang dari Dashboard) → pesanan tidak diproses dua kali.
- Ubah satu byte body atau pakai secret salah → server Anda menjawab
401. - Timestamp
tlebih dari 5 menit → server Anda menolak. - Biarkan pembayaran lewat
expires_at→payment.expiredditerima. - Matikan endpoint sementara → delivery dicoba ulang (
PENDING,attempt_countnaik) dan berhasil setelah endpoint hidup. - Event tak dikenal dijawab
2xxdan diabaikan. -
GET /v1/payments/{id}dipakai sebagai cek akhir bila webhook tidak datang.
§2 Checklist sandbox ke live#
Alur onboarding:
- Daftar sandbox sendiri di Dashboard Merchant sandbox (
https://sandbox-merchant.algoritmakitadigital.id/#/daftar, "Belum punya akun? Daftar gratis (sandbox)"): isi nama usaha, kontak, email, telepon, jenis usaha, lalu masukkan kode 6 digit dari email. Akun, project "Proyek utama", QRIS dan Virtual Account, simulasi bayar sandbox, dan satu API key langsung dibuat; Anda otomatis masuk sebagai Pemilik. Halaman sukses menampilkanmerchant_id,project_id, dan API key sandbox. API key hanya ditampilkan sekali di layar itu;merchant_iddanproject_idtetap terlihat di menu Pengembang. Atau minta tim AKD membuatkan akun sandbox. - Integrasi dan uji di sandbox dengan checklist di bawah. Endpoint webhook tidak didaftarkan dari dashboard: kirim URL HTTPS endpoint Anda ke tim AKD (lihat permintaan perubahan di bagian 14); signing secret (
whsec_…) diberikan sekali. - Ajukan Live dari menu Dashboard Merchant sandbox → Ajukan Live (Pemilik): data badan usaha, NIB/NPWP, penanggung jawab, perkiraan volume, dan rekening pencairan. Tidak ada unggahan dokumen; tim AKD meminta dokumen lewat email setelah peninjauan awal.
- Review tim AKD. Status (Diajukan → Sedang ditinjau → Disetujui/Ditolak) tampil di menu Ajukan Live dan dikirim lewat email ke Pemilik. Pengajuan yang ditolak memuat catatan peninjau; Anda dapat mengajukan ulang.
- Setelah disetujui, tim AKD membuat akun live di sistem terpisah: merchant, project, API key live, endpoint webhook live, tarif, rekening, dan undangan Dashboard Merchant live. Kredensial live dibuat dan dikirim oleh tim AKD, tidak dari pendaftaran mandiri. Tidak ada data sandbox yang pindah ke live.
Sandbox:
- Anda punya
merchant_id,project_id, dan API key sandbox (akd_sk_…), dari pendaftaran mandiri atau dari tim AKD. Simpan API key di secret manager server, jangan di aplikasi mobile atau frontend. -
GET /v1/integration-context?project_id=…menjawab200dan menampilkan metode yang Anda pakai. - Endpoint webhook HTTPS Anda sudah didaftarkan oleh tim AKD dan Anda menyimpan signing secret (
whsec_…), yang hanya ditampilkan sekali. - Server Anda memverifikasi
X-AKD-Signature-V2(bagian 8), menolak signature yang salah atau timestamp lebih dari 5 menit, dan menjawab2xxdalam 10 detik. - Server Anda menyimpan
X-AKD-Event-IDyang sudah diproses dan tidak memproses ulang event yang sama. - Setiap pembuatan pembayaran mengirim
Idempotency-Keyunik per pesanan, dan retry memakai key yang sama dengan body yang sama. - Alur bayar
QRISdanVIRTUAL_ACCOUNTdiuji sampaipayment.paid(pakai simulasi), pluspayment.expired. - Penanganan error
400,401,409,429,502dan timeout jaringan sudah diuji (bagian 11). - Pesanan hanya ditandai lunas dari webhook terverifikasi atau dari
GET /v1/payments/{id}yang berstatusPAID, tidak pernah dari redirect browser. - Riwayat webhook di Dashboard Merchant → Pengembang tidak menunjukkan delivery
DEADyang belum dijelaskan.
Live:
- Ajukan akun live dari Dashboard Merchant sandbox → Ajukan Live dan kirim dokumen yang diminta tim AKD lewat email.
- Setelah disetujui, terima API key live,
project_idlive, dan pendaftaran endpoint webhook live dari tim AKD. Secret live berbeda dari sandbox. - Ganti base URL ke
https://api.algoritmakitadigital.id, API key,project_id, dan signing secret. Jangan mencampur nilai sandbox dan live. - Gunakan skema signature
v2(minta tim AKD mengatursignature_schemeendpoint kev2). - Tampilkan QRIS (
checkout.qr_string) atau nomor VA (checkout.account_number) di aplikasi Anda sendiri; live tidak punya halaman bayar AKD. - Lakukan satu transaksi live bernominal kecil, pastikan webhook
payment.paidditerima dan diverifikasi, lalu cek pembayaran di Dashboard Merchant. - Pastikan email owner dan developer di Dashboard Merchant → Tim benar: notifikasi webhook gagal dikirim ke sana.