Central Payment Middleware menjadi single integration layer antara aplikasi internal (Membership, Hotel, POS, E-Commerce, dan aplikasi lainnya) dengan layanan BNI SNAP Virtual Account. Integrasi BNI cukup sekali — aplikasi baru tinggal colok.
Setiap aplikasi baru tidak perlu memahami detail SNAP BNI — authentication, signature, endpoint, callback, dan error code semuanya dikelola terpusat di middleware.
Investasi Anda bukan hanya untuk kebutuhan VA aplikasi saat ini, tetapi membangun platform integrasi pembayaran terpusat untuk semua aplikasi ke depannya.
Registrasi aplikasi, API key, secret, dan prefix VA terpisah per aplikasi.
Access token B2B (RSA), create / inquiry / delete VA, signature & security sesuai standar SNAP.
Callback dari BNI diverifikasi (signature & amount), lalu webhook otomatis ke aplikasi asal.
Webhook gagal dikirim ulang otomatis dengan mekanisme retry + manual trigger dari dashboard.
Monitoring transaksi real-time per aplikasi, status pembayaran, dan tren harian.
Seluruh request/response SNAP dan webhook tercatat lengkap untuk rekonsiliasi & audit.
Format internal BNI diubah menjadi standard response yang seragam untuk semua aplikasi.
Dokumentasi API standar + integration guideline untuk onboarding aplikasi baru.
Dari aplikasi membuat request standar, sampai status pembayaran otomatis ter-update setelah notifikasi BNI diterima.
Aplikasi (mis. Membership) memanggil satu endpoint standar middleware.
POST /api/v1/payment/va X-API-KEY: <api-key-aplikasi> { "application_id": "MEMBERSHIP", "customer_id": "CUST001", "transaction_id": "TRX001", "amount": 2200000, "description": "Membership Fee" }
Authentication, validation, mapping, SNAP signature, dan API request — semuanya ditangani middleware.
APP → MIDDLEWARE → BNI SNAP
├── Authentication (API Key)
├── Validation
├── Generate Request
├── SNAP Authentication (B2B)
└── Signature (HMAC/RSA)
Aplikasi tidak perlu tahu format internal BNI. Response seragam untuk semua aplikasi.
{
"status": "SUCCESS",
"transaction_id": "TRX001",
"payment_method": "VIRTUAL_ACCOUNT",
"bank": "BNI",
"va_number": "8808123456789012",
"amount": 2200000,
"expired_at": "2026-09-18T23:59:59+07:00"
}
Saat customer bayar, BNI mengirim callback → middleware verifikasi signature & amount → update status → teruskan ke aplikasi.
BNI → CALLBACK → MIDDLEWARE ├── Verify Signature ├── Validate VA & Amount └── Update Payment MIDDLEWARE → WEBHOOK → APP { "transaction_id": "TRX001", "payment_status": "PAID", "amount": 2200000 }
Misal 6 bulan lagi ada Aplikasi Hotel — developer cukup integrasi ke endpoint ini, tanpa development integrasi BNI dari awal lagi.
| Method | Endpoint | Deskripsi |
|---|---|---|
| POST | /api/v1/payment/va | Create Virtual Account |
| GET | /api/v1/payment/{transaction_id} | Inquiry Payment Status |
| GET | /api/v1/payment/transactions | Transaction History (paginasi + filter) |
| POST | /api/v1/payment/callback | Payment Notification dari BNI SNAP (signature verified) |
Dari uji devsite sandbox Portal ASPI hingga penerbitan SRO dan promote ke production.
Pengujian di sandbox Portal ASPI dengan kredensial devsite BNI.
Uji end-to-end bersama tim BNI: create VA, pembayaran, notification.
Penyusunan dan submit dokumentasi hasil uji ke Portal ASPI.
Uji verifikasi penerapan SNAP di Portal ASPI + IT Security Assessment CISO.
Penerbitan SRO dan promote ke production BNI.
Masuk ke dashboard admin untuk memantau transaksi, mengelola aplikasi & API key, dan melihat log integrasi BNI SNAP secara real-time.