Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Gambaran Umum Disbursement

Disbursement API memungkinkan merchant untuk melakukan transfer dana ke rekening bank tujuan secara terprogram. Menggunakan mekanisme dua langkah (inquiry → payment) untuk memastikan validitas rekening sebelum dana dikirim.

Endpoint

EndpointMetodeKeterangan
POST /api/v1/merchant/disbursement/inquiryPOSTValidasi rekening tujuan (tidak memotong saldo)
POST /api/v1/merchant/disbursement/paymentPOSTEksekusi transfer dana
POST /api/v1/merchant/disbursement/statusPOSTCek status transaksi disbursement

Karakteristik

  • Protokol: HTTP POST
  • Format Data: JSON / Content-Type: application/json
  • Autentikasi: API Key via header X-API-Key
  • Keamanan Tambahan: Signature Validation (opsional)
  • Timeout Request: 8 detik

Alur Transaksi

Merchant                              Sistem
  │                                      │
  │  POST /disbursement/inquiry          │
  │─────────────────────────────────────>│
  │                                      │  validasi rekening ke biller
  │  200 OK { inquiry_reff,              │
  │           account_name, fee }        │
  │<─────────────────────────────────────│
  │                                      │
  │  POST /disbursement/payment          │
  │─────────────────────────────────────>│
  │                                      │  potong saldo, kirim ke bank tujuan
  │  200 OK { status, ref_id }           │
  │<─────────────────────────────────────│
  │                                      │
  │  (opsional) POST /disbursement/status│
  │─────────────────────────────────────>│
  │  200 OK { status final }             │
  │<─────────────────────────────────────│

Poin Penting

  1. Inquiry tidak memotong saldo — hanya memvalidasi rekening dan mendapatkan informasi fee.
  2. Payment memotong saldo — jika rc: "000" atau rc: "00", saldo langsung berkurang.
  3. Status PENDING — terjadi jika biller belum konfirmasi final. Gunakan /status untuk polling.
  4. Jangan kirim payment ulang sebelum cek status — risiko double transfer.
  5. Idempotency via req_id — retry aman dengan req_id yang sama jika terjadi timeout.

Validasi Request

  • Nominal (amount) harus berupa string digit (contoh: "100000"), tidak boleh negatif, desimal, atau scientific notation.
  • Minimal transfer: Rp 10.000 ("10000").
  • Field yang tidak dikenal dalam JSON body akan ditolak dengan HTTP 422.

Kode Bank Umum

KodeNama Bank
002Bank Rakyat Indonesia (BRI)
008Mandiri
009Bank Negara Indonesia (BNI)
014Bank Central Asia (BCA)
022CIMB Niaga
028Wulandari Kencana (OCBC NISP)
032Bank Tabungan Pensiun Nasional (BTPN)
036Bank Tabungan Negara (BTN)
046DKI Jakarta
200Danamon
213BTPN Syariah
426Mega
451Syariah Indonesia (BSI)
484Sahabat Sampoerna
553BRI Syariah / BSI
898Nobu (National Nobu)

Gunakan endpoint Katalog Produk untuk mendapatkan daftar produk transfer yang tersedia (kode bank dapat juga diambil dari sana).