Langsung ke konten utama
Give each customer a unique bank account number to transfer money to. SingaPay automatically detects the incoming payment, reconciles it, and credits your account balance — no manual work required.

What is a Virtual Account?

A Virtual Account (VA) is a virtual bank account number that sits in front of your real bank account. Customers transfer money to it exactly as they would any regular bank transfer — via mobile banking, internet banking, or ATM. SingaPay instantly identifies each incoming transfer, reconciles it to the correct account and transaction, and credits the funds in real time. Because every VA number is unique, you always know exactly who paid, how much, and when — even at high volumes.

VA configuration options

Every VA you create is defined along two dimensions:

By lifetime

TypeHow it worksBest for
PermanentThe VA number never expires and can receive multiple payments indefinitely.Recurring customers, subscription top-ups, dedicated payment addresses
TemporaryExpires after a set time. Can also cap the number of accepted payments (1–255) before auto-expiring.One-time invoices, time-sensitive checkout windows

By amount type

TypeHow it worksBest for
ClosedAccepts only the exact amount specified. Any other amount is rejected by the bank.Fixed invoices, specific order totals
OpenAccepts any amount within a min–max range you define.Top-ups, wallet reloads, donations

How the payment flow works

1

Create a Virtual Account

Call the SingaPay API with the bank code, VA type, amount, and optional expiry. A unique VA number is returned to display to your customer.
2

Customer makes the transfer

The customer pays via their bank app, internet banking, or ATM — exactly like a regular bank transfer. No app download or extra setup needed.
3

SingaPay confirms the payment

The moment the transfer arrives, SingaPay validates the amount (for closed-type VAs), records the transaction, and credits your account balance in real time.
4

Your system is notified

A webhook fires to your configured endpoint so you can update order status, send a receipt, or trigger fulfilment automatically.

Supported banks — comparison

Bank CodeMin (IDR)Max (IDR)SettlementSharia
BCA10,00020,000,000*T+1
BNI10,000250,000,000*T+1
BRI10,000250,000,000*T+1
MANDIRI10,000100,000,000*T+1
PERMATA10,00050,000,000*T+1
MAYBANK10,000250,000,000*T+1
CIMB10,00050,000,000*T+1
BSI10,00050,000,000*T+1✓ Islamic
MUAMALAT10,00050,000,000*T+1✓ Islamic
BNC10,00050,000,000*T+1
OCBC10,00050,000,000*T+1
DANAMON10,00050,000,000*T+1
* Maximum limits are configurable per merchant tier. Contact your account manager or customer service to discuss higher limits.
Always include your own internal reference ID in the merchant_reff_no field when creating a VA. This ties every SingaPay transaction record back to your own order system, making reconciliation effortless.