Virtual Account

Virtual Accounts allows businesses to accept payments easily via bank transfer without the usual hassle of manual reconciliation of such payments. Since the majority of payments in the Southeast Asian regions are made through bank transfers, this is an extremely important payment method for your platforms.

Benefits of using Xfers VA

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

Types of Xfers VA

  1. Persistent.
    A persistent VA can be used multiple times. It's open amount which means no need to specify the amount from the beginning. Callback notifications will be fired to you when we detect payments made through the payment method. It's typically used as a top-up channel to your platform's e-wallet, or fund-holding account. Persistent VA is created via Create a Payment Method API.
  2. One-off.
    A one-off VA can only be used one time. It's close amount which means you need to specify the amount from the beginning. Typical use cases are marketplaces, gig platforms and all kinds of e-commerce. Payments made with wrong amount will fail, we suggest you also specify expiry time for this type of VA. One-off VA is created via Create a Payment API.

Available Banks

Bank Name

Bank Short Code

Persistent

One-off

BCA

"BCA"

:ballot-box-with-check:

:ballot-box-with-check:

BRI

"BRI"

:ballot-box-with-check:

:ballot-box-with-check:

BNI

"BNI"

:ballot-box-with-check:

:ballot-box-with-check:

Mandiri

"MANDIRI"

:ballot-box-with-check:

:ballot-box-with-check:

CIMB Niaga

"CIMB_NIAGA"

:ballot-box-with-check:

Not supported

Danamon

"DANAMON"

:ballot-box-with-check:

Not supported

Permata

"PERMATA"

:ballot-box-with-check:

Not supported

Hana

"HANA"

:ballot-box-with-check:

Not supported

Bank Sahabat Sampoerna

"SAHABAT_SAMPOERNA"

:ballot-box-with-check:

:ballot-box-with-check:

Payment Limits

Minimum Amount (IDR)

Maximum Amount (IDR)

10.000

100.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.

  • Delayed (Asynchronous): Bank transfer payments have delayed notification and cannot guarantee payment during the 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, not fulfilling the order until the payment is successful.

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.

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 closed a persistent VA.
One-off VA will be closed or made invalid after it exceed the expiry time.

Code Example

Persistent

# Persistent VA
# /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"
    }
  }
}

One-off

# One-off VA
# /api/v4/payments
{
  "data": {
    "attributes": {
      "paymentMethodType": "virtual_bank_account",
      "amount": 10000,
      "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"
      }
    }
  }
}

Did this page help you?