Format galat
HTTP/1.1 409 Conflict
{ "error": "order_id sudah dipakai" }
Pesan galat ditulis dalam bahasa Indonesia untuk ditampilkan ke pengguna. Untuk logika program, andalkan kode HTTP, bukan teks pesan.
Kode HTTP
| Kode | Arti | Tindakan |
|---|---|---|
200 / 201 | Berhasil | — |
400 | Permintaan tidak valid | Periksa field wajib |
401 | Tidak terautentikasi | Periksa API key |
403 | Dilarang | Endpoint hanya untuk dasbor, atau simulasi di luar sandbox |
404 | Tidak ditemukan | Periksa ID |
409 | Konflik | order_id dipakai atau nominal sedang menunggu |
413 | Berkas terlalu besar | Khusus unggah logo (maks. 512 KB) |
422 | Nilai tidak valid | Nominal di luar batas, URL bukan https |
429 | Terlalu banyak permintaan | Tunggu lalu coba lagi |
502 | Gateway QRIS bermasalah | Coba lagi sesaat |
500 | Galat server | Hubungi kami bila berulang |
Batas laju
| Cakupan | Batas |
|---|---|
| Semua permintaan terautentikasi per merchant | 240 per menit |
| Pembuatan invoice per merchant | 30 per menit |
| Pengecekan gateway per invoice | 30 per menit |
| Halaman bayar publik per IP | 120 per menit |
| API key salah per IP | 20 kegagalan per 10 menit |
| Login gagal per akun | 5 kegagalan per 10 menit |
| Daftar dan masuk per IP | 10 per 10 menit |
| Tes webhook | 5 per menit |
| Pengajuan penarikan | 10 per jam; PIN salah 5 kali per 15 menit |
| Health check per IP | 60 per menit |
Untuk API key salah, login, dan PIN, hanya percobaan gagal yang dihitung, sehingga integrasi yang benar tidak pernah terkena batas ini.
Health check
GET/api/health
{ "ok": true, "db": true, "mode": "sandbox", "latency_ms": 4, "time": 1767225210 }
Tanpa autentikasi. Cocok untuk pemantau uptime.