> ## Documentation Index
> Fetch the complete documentation index at: https://docs.singapay.id/llms.txt
> Use this file to discover all available pages before exploring further.

# Virtual Account

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

| Type          | How it works                                                                                         | Best for                                                               |
| ------------- | ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------- |
| **Permanent** | The VA number never expires and can receive multiple payments indefinitely.                          | Recurring customers, subscription top-ups, dedicated payment addresses |
| **Temporary** | Expires 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

| Type       | How it works                                                                       | Best for                              |
| ---------- | ---------------------------------------------------------------------------------- | ------------------------------------- |
| **Closed** | Accepts only the exact amount specified. Any other amount is rejected by the bank. | Fixed invoices, specific order totals |
| **Open**   | Accepts any amount within a min–max range you define.                              | Top-ups, wallet reloads, donations    |

***

## How the payment flow works

<Steps>
  <Step title="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.
  </Step>

  <Step title="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.
  </Step>

  <Step title="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.
  </Step>

  <Step title="Your system is notified">
    A webhook fires to your configured endpoint so you can update order status, send a receipt, or trigger fulfilment automatically.
  </Step>
</Steps>

***

## Supported banks — comparison

| Bank Code    | Min (IDR) | Max (IDR)     | Settlement | Sharia |
| ------------ | --------- | ------------- | ---------- | ------ |
| **BCA**      | 10,000    | 20,000,000\*  | T+1        | —      |
| **BNI**      | 10,000    | 250,000,000\* | T+1        | —      |
| **BRI**      | 10,000    | 250,000,000\* | T+1        | —      |
| **MANDIRI**  | 10,000    | 100,000,000\* | T+1        | —      |
| **PERMATA**  | 10,000    | 50,000,000\*  | T+1        | —      |
| **MAYBANK**  | 10,000    | 250,000,000\* | T+1        | —      |
| **CIMB**     | 10,000    | 50,000,000\*  | T+1        | —      |
| **BSI**      | 10,000    | 250,000,000\* | T+1        | ✓      |
| **MUAMALAT** | 10,000    | 250,000,000\* | T+1        | ✓      |
| **BNC**      | 10,000    | 250,000,000\* | T+1        | —      |
| **OCBC**     | 10,000    | 250,000,000\* | T+1        | —      |
| **DANAMON**  | 10,000    | 250,000,000\* | T+1        | —      |

\* Maximum limits are configurable per merchant tier. Contact your account manager or customer service to discuss higher limits.

<Note>
  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.
</Note>

***
