Winpay — Virtual Account
Virtual Account (VA) Winpay memungkinkan pelanggan Anda membayar pesanan melalui transfer bank yang secara otomatis terdeteksi oleh sistem. Nomor VA yang dihasilkan bersifat Closed Payment (nominal harus sesuai, hanya bisa dibayar satu kali).
Bank yang Didukung
BCABRIBNIMANDIRIBSICIMBPERMATAMUAMALATSINARMASBNCMAYBANK
Catatan: Pastikan Anda telah mengaktifkan bank-bank di atas melalui dashboard (menu Routing Rules) sebelum digunakan.
Cara Pembuatan (Create)
Untuk membuat Virtual Account, set method_type menjadi virtual_account dan berikan method_detail yang berisi field bank.
http
POST /v1/payments/createjson
{
"amount": 10000000,
"currency": "IDR",
"method_type": "virtual_account",
"method_detail": {
"type": "virtual_account",
"bank": "BCA"
},
"customer_name": "Budi Santoso",
"customer_phone": "081234567890",
"expiry_minutes": 60
}Catatan Penting Request
- Amount: Gunakan format satuan terkecil (sen). Rp 100.000 ditulis sebagai
10000000. - Nomor HP (
customer_phone): Sangat disarankan untuk diisi. Jika tidak diisi, sistem akan menggunakan nomor dummy (089999999999) sebagai fallback untuk Winpay. - Expiry: Anda dapat mengontrol waktu kadaluarsa pembayaran melalui
expiry_minutes(misalnya 60 untuk 1 jam).
Response
Jika berhasil, Anda akan menerima response berupa objek Payment dengan method_data yang berisi instruksi Virtual Account.
json
{
"success": true,
"data": {
"id": "...",
"status": "pending",
"amount": 10000000,
"expires_at": "2026-07-21T13:00:00Z",
"method_data": {
"type": "virtual_account",
"bank": "BCA",
"va_number": "88880123456789"
}
// ... field lainnya
}
}Data Penting untuk Ditampilkan ke Customer
method_data.va_number: Nomor Virtual Account yang harus ditransfer oleh pelanggan.method_data.bank: Nama bank tujuan.amount: Tampilkan dalam format mata uang lokal (jangan lupa dibagi 100 kembali ke Rupiah penuh).expires_at: Tampilkan hitung mundur batas waktu pembayaran.
Alur Pembayaran End-to-End
- Aplikasi Klien: Mengirim
POST /v1/payments/createke Gerbang Pay. - Gerbang Pay: Mengembalikan
va_number. - Aplikasi Klien: Menampilkan nomor VA, nominal, dan batas waktu di layar/UI pelanggan.
- Pelanggan: Membuka M-Banking/ATM dan mentransfer dana ke nomor VA tersebut.
- Winpay: Mendeteksi dana masuk dan mengirim callback ke Gerbang Pay.
- Gerbang Pay: Mengubah status transaksi menjadi
paiddan mengirimkan Webhook ke server Anda. - Server Anda: Menerima webhook, memperbarui status order di database, lalu (opsional) mengirim push notification/email sukses ke pelanggan.