BNI Virtual Account

BNI Virtual Account is a bank transfer payment method facilitated by Bank BNI. Despite the name, customers can pay using any Indonesian Bank account to complete payment. Payment can be made trough ATM Bersama, Prima, or Alto ATM networks.

Steps to integrate :

  1. Send the charge API request to Midtrans.
  2. Redirect your customer back to your page by configuring Finish URL in Midtrans's Dashboard > Snap Preferences or via [API Request] (/docs/snap-advanced-feature#custom-finish-url).
  3. Handle notifications.

By default, default expiry time for bank transfer is 24 hours unless specified by merchant (min 20s, max 180 days).




Sample JSON Request Body


{
  "transaction_details": {
    "order_id": "ORDER-101",
    "gross_amount": 10000
  },
  "item_details": [{
    "id": "ITEM1",
    "price": 10000,
    "quantity": 1,
    "name": "Midtrans Bear",
    "brand": "Midtrans",
    "category": "Toys",
    "merchant_name": "Midtrans"
  }],
  "customer_details": {
    "first_name": "TEST",
    "last_name": "MIDTRANSER",
    "email": "[email protected]",
    "phone": "+628123456"
  },
  "enabled_payments": ["bni_va"],
  "bni_va": {
    "va_number": "12345678"
  }
}
ParameterDescription
transaction_details
Transaction Details Object (required)
Unique transaction ID
item_details
Item Details Object (optional)
Shopping item details will be paid by customer
customer_details
Customer Details Object (optional)
Details of the customer
enabled_payments
Array (optional)
Set what payment method to show in Snap's payment list. Value: bni_va
bni_va
BNI Virtual Account (optional)
BNI Virtual Account payment options

For a full list of request body parameters please refer to the Request Body (JSON Parameter) section


Note: Please also refer to the Custom VA Number section if you're looking to define your own VA number for your customers.