Referensi
Rate limit
Rate limit serta batas nominal yang berlaku saat membuat permintaan pembayaran. Akun terverifikasi tidak punya batas harian.
Kalau melewati batas, Anda dapat 429 dengan kode rate_limited. Tunggu sebentar lalu coba lagi.
| Endpoint | Batas | Cakupan |
|---|---|---|
Semua /v1/* | 300 request / menit | per API key |
GET /v1/transactions/:id | 1 request / detik | per transaksi, per API key |
| Halaman checkout publik | 120 request / menit | per IP |
Header-nya berbeda per batas. Jawaban GET /v1/transactions/:id membawa RateLimit-Limit, RateLimit-Remaining, dan RateLimit-Reset, dan jawaban 429-nya menambahkan Retry-After dalam detik. Batas 300 request / menit menjawab 429 rate_limited tanpa satu pun header itu, jadi jangan menunggu Retry-After yang tidak akan datang: lakukan backoff dengan jeda yang membesar, dan sisakan jatah untuk membuat pembayaran.
Jangan polling status transaksi — webhook payment.paid memberi tahu begitu dibayar, dan transaksi yang sudah final dijawab dari cache. Alasan batas per transaksi dan cara menyesuaikan diri: batas baca status transaksi sekali per detik. Menangani lonjakan secara umum: rate limit dan lonjakan permintaan.
Batas nominal
Berlaku saat membuat permintaan pembayaran. Nilainya bisa berbeda per akun; di bawah ini nilai default-nya. Jumlah request dan total nominal per hari tidak dibatasi.
| Batas | Default | Ditolak dengan |
|---|---|---|
| Nominal minimum | QRIS Rp1.000 · VA Rp10.000 | 422 amount_too_small |
| Nominal maksimum | Rp10.000.000 | 422 amount_too_large |
| Masa berlaku | 60 menit (maks 24 jam) | 422 expiry_too_long |
Maksimum VA bisa dinaikkan untuk akun Anda: email halo@fintar.id.
Sebelum onboarding aktif
Akun yang onboarding-nya belum aktif dapat jatah tambahan yang berlaku seumur akun. Jatah ini tidak pernah reset: satu-satunya cara membukanya adalah menyelesaikan verifikasi. Pembayaran yang sudah masuk tidak terpengaruh, dan tidak ada yang hilang saat batasnya tercapai — hanya permintaan pembayaran baru yang ditolak sampai verifikasi selesai.
| Batas | Default | Yang dihitung | Ditolak dengan |
|---|---|---|---|
| Permintaan pembayaran, seumur akun | 10 | Semua permintaan pembayaran yang pernah dibuat kecuali yang canceled. Yang expired dan failed tetap dihitung. | 429 unverified_count_cap |
| Total nominal, seumur akun | Rp1.000.000 | Hanya uang yang diterima atau masih mungkin diterima: pending dan succeeded. Permintaan yang expired, failed, atau canceled melepaskan kembali jatahnya. | 429 unverified_amount_cap |
Request di test mode tidak pernah memakai jatah ini dan tidak pernah ditolak olehnya. Beda dengan rate_limited, menunggu tidak mengubah apa pun di sini, jadi logika retry sebaiknya berhenti, bukan backoff.