Virtual Account

Overview

Virtual accounts are temporary bank accounts where the money flows to when a bank transfer payment takes place. The virtual account is generated by our bank and the money is stored in our master account before being transferred into your Cash Account.

Each virtual account created is unique, which allows businesses to easily identify the paying customer and the purpose of payments. Therefore, VAs are extremely effective in accounts reconciliation.

Benefits of using Virtual Accounts

  1. Save time and effort of having to manually reconcile bank transfer payments
  2. No need to open bank accounts across various banks
  3. Get notified almost instantaneously when your customer has made payment

We offer 2 solutions for our Virtual Account payment method:

Dynamic VAs: Suitable for invoices and checkouts

Features:

  • Create a unique VA for each payment
  • Specify the expected payment amount
  • Reject payments made with the incorrect amount
  • Set an expiration for the VA

Use-cases:

  • For marketplaces or social sellers with many one-time customers

Your customer also doesn't need to manually send you a screenshot or inform you of the payment because we will do that for you.

Static VAs: Suitable for each customer and account

Features:

  • Assign a unique VA to each customer or account
  • Customers can make payments of any amount
  • Receive callback notifications when payments are made

Use-cases:

  • For investment platforms, where no fixed amount is needed for deposits
  • For making top-ups to an e-wallet or fund-holding account

Using the Virtual Account payment method

Supported banks

Bank NameBank Short CodeStatic VADynamic VA
BCA"BCA"☑️☑️
BRI"BRI"☑️☑️
BNI"BNI"☑️☑️
Mandiri"MANDIRI"☑️☑️
CIMB Niaga"CIMB_NIAGA"☑️Not supported
Danamon"DANAMON"☑️Not supported
Permata"PERMATA"☑️Not supported
Hana"HANA"☑️Not supported
Bank Sahabat Sampoerna"SAHABAT_SAMPOERNA"☑️☑️
Bank Syariah Indonesia"BSI"Not supported☑️

Payment limits

Minimum amount (IDR)Maximum amount (IDR)
10.000100.000.000

Payment availability

Virtual Accounts are usually available throughout the day.

Payment responses are typically fast. However, if the customer has made a payment using a bank account from a different bank to the Virtual Account, there may be a delay of up to a few working hours.

Payment notifications

When using virtual accounts as a payment method, please note that this will require further customer action to complete the payment. Customers will be required to make the funds transfer through their bank’s online service, or an ATM. For payment methods that require customer action, we recommend setting up callbacks so that you can be notified whether a payment has succeeded or not.

🚧

Payment notification delays

Bank transfer payment notifications may be delayed. In such cases, payment cannot be guaranteed during this delay. The status of the Payment object will be pending until the payment is either successful or failed. It’s common for businesses to hold an order in a pending state during this time and not fulfil the order until the payment is successful.

Refunds

Please note that refunds are not available for bank transfer payment methods at this moment.

Closing a VA

It is currently not possible to close a static VA. Dynamic VAs will be closed or made invalid after their expiration time.

Creating a Dynamic VA for a One-Time Payment

# /api/v4/payments
{
  "data": {
    "attributes": {
      "paymentMethodType": "virtual_bank_account",
      "amount": 10000,
      "currency":"IDR",
      "referenceId": "test_2020100501",
      "expiredAt": "2020-10-20T09:12:48+07:00", // optional parameters
      "description": "test description",
      "paymentMethodOptions": {
        "bankShortCode": "BNI", // choose bank to create the VA
        "displayName": "test name",
        "suffixNo": "12345678"
      }
    }
  }
}

Creating a Static VA for Unlimited Payments

# /api/v4/payment_methods/virtual_bank_accounts
{
  "data": {
    "attributes": {
      "bankShortCode": "BNI", // choose bank to create the VA
      "referenceId": "va_reference_id",
      "displayName": "Nama Tampilan",
      "suffixNo": "12345678"
    }
  }
}