Bank Transfer Integration Guide

One of the payment methods offered by Faspay is a Bank Transfer/Virtual Account. By using this payment method, customers will have the option to make a payment via bank transfer and Faspay will send real-time notifications when the customer completes the payment.

At this moment, Faspay has integrated with the following bank transfer payment methods:

  1. Permata Virtual Account

  2. BCA Virtual Account

  3. Mandiri Virtual Account

  4. Maybank Virtual Account

  5. BRI Virtual Account

  6. BNI Virtual Account

  7. BSI Virtual Account

  8. Sinarmas Virtual Account

  9. Danamon Virtual Account

  10. CIMB Virtual Account

The basic integration process of Bank Transfer/Virtual Account will be explained below.

Integration Step

  1. Post Data Transaction to Faspay

  2. Display Virtual Account

  3. Payment Notification

1. Post Data Transaction

Post data transactions should be done from the merchant backend, the detailed API reference can be found here

Every Bank Transfer/Virtual Account channel will use the same API request, the difference is only on payment_channel value for each Bank Transfer/Virtual Account

This is an example of post data transaction for a Bank transfer/Virtual Account channel

   "request": "Post Data Transaction",
   "merchant_id":  "99999",
   "merchant": "Sophia Store",
   "bill_no": "20201222101218",
   "bill_reff": "20200324_02-2286704_336",
   "bill_date": "2020-12-19 06:04:29",
   "bill_expired": "2020-12-19 07:04:29",
   "bill_desc": "Payment Online Via Faspay",
   "bill_currency": "IDR",
   "bill_gross": "100000",
   "bill_miscfee": "100000",
   "bill_total": "200000",
   "cust_no": "01",
   "cust_name": "John Doe",
   "payment_channel": "402",
   "pay_type": "01",
   "msisdn": "8562927907",
   "email": "",
   "terminal": "10",
   "billing_address": "Jl Sabang 37",
   "billing_address_city": "Jakarta",
   "billing_address_region": "DKI Jakarta",
   "billing_address_state": "Indonesia",
   "billing_address_poscode": "10170",
   "billing_address_country_code": "ID",
   "receiver_name_for_shipping": "John Doe",
   "shipping_address": "Jl. Sabang 37",
   "shipping_address_city": "Jakarta",
   "shipping_address_region": "DKI Jakarta",
   "shipping_address_state": "Indonesia",
   "shipping_address_poscode": "10170",
   "item": {
      "id": "A001",
      "product": "Invoice #2286704",
      "qty": "1",
      "amount": "100000",
      "payment_plan": "01",
      "tenor": "00"
   "reserve1": "",
   "reserve2": "",
   "signature": "3af2a967a7bf809b651777e376ce81bc20dea249"

Post Data Transaction Response

You will get the post data response like the following

   "response": "Transmission of Purchase Detail Info",
   "trx_id": "7178990000218842",
   "merchant_id": "99999",
   "merchant": "Sophia Store",
   "bill_no": "20201222103305",
   "bill_items": {
      "id": "A001",
      "product": "Invoice #2286704",
      "qty": "1",
      "amount": "100000",
      "payment_plan": "01",
      "merchant_id": "99999",
      "tenor": "00"
   "response_code": "00",
   "response_desc": "Success",
   "redirect_url": ""

2. Displaying Virtual Account

To display the virtual account number there are two options:

  • Displaying Virtual Account at merchant's webpage

  • Redirect to the Faspay page to display Virtual Account, expired time, and how to pay instructions. Read the detailed API reference here or just simply use redirect_url that is retrieved from Post Data Transaction Response (for JSON Format).

To display the Virtual Account on merchant's webpage use the trx_id response from Post Data Transaction as the Virtual Account number

Don't forget to display the expiration time and how to pay instructions too.

3. Payment Notification

Payment notification from Faspay to the Merchant backend will also be triggered in the event of transaction status getting updated, to ensure the merchant is securely informed. Please provide the URL and make sure it's already registered on Faspay system

The detailed API reference can be found here

Last updated