added

[ID] 2024-04-23 Introducing Disbursement to Virtual Account Destination Feature

Target deployment date: 23rd of April 2024 (Tuesday) at 2:30 PM JKT

Now you can do disbursement to virtual account destination using our Send API. This feature will only cover virtual account destinations from 4 major banks which are: BCA (Bank Central Asia), BRI (Bank Rakyat Indonesia), BNI (Bank Negara Indonesia), and Bank Mandiri.

Feature Details

There is a new value for the parameter bankShortCode when disbursing through our Send API.

Here are the available parameters for bankShortCode:

  • BCA_VA for disbursement to BCA virtual account number
  • BRI_VA for disbursement to BRI virtual account number
  • BNI_VA for disbursement to BNI virtual account number
  • MANDIRI_VA for disbursement to Mandiri virtual account number

List of Impacted API Endpoints

  1. Create a disbursement
  2. Get a disbursement
  3. Get a list of disbursements
  4. Webhook on Send
New ValueMandatory / OptionalImpacted EndpointsExplanation
bankShortCodeMandatorySend APIsCurrently, we will accept only the following codes as input for disbursement to a virtual account:
1. BCA_VA
2. BRI_VA
3. BNI_VA
4. MANDIRI_VA

Sample Create a disbursement API Request

{  
    "data": {  
        "attributes": {  
            "amount": 100500,  
            "referenceId": "transferva_00001",  
            "description": "Disbursement to BCA VA",  
            "disbursementMethod": {  
                "type": "bank_transfer",  
                "bankShortCode": "BCA_VA",  
                "bankAccountNo": "1234123412341234",  
                "bankAccountHolderName": "John Doe"  
            }  
        }  
    }  
}

Sample Create a disbursement API Response

{  
    "data": {  
        "id": "contract_8d2dc5b53bf34265a30dbc1e9b23dd97",  
        "type": "disbursement",  
        "attributes": {  
            "referenceId": "transferva_00001",  
            "description": "Disbursement to BCA VA",  
            "amount": "100500.0",  
            "status": "processing",  
            "currency": "IDR",  
            "createdAt": "2024-04-01T10:00:00+07:00",  
            "fees": "3885.0",  
            "disbursementMethod": {  
                "type": "bank_transfer",  
                "serverBankAccountHolderName": "John Doe",  
                "bankAccountNo": "1234123412341234",  
                "bankShortCode": "BCA_VA",  
                "bankAccountHolderName": "John Doe",  
                "bankName": "Bank Central Asia VA",  
                "failureReason": null,  
                "bankReferenceNumber": "72999c6c-e3e1-4d32-875d-27be67841ac8"  
            }  
        }  
    }  
}

Sample Get a disbursement API

{  
    "data": {  
        "id": "contract_8d2dc5b53bf34265a30dbc1e9b23dd97",  
        "type": "disbursement",  
        "attributes": {  
            "referenceId": "transferva_00001",  
            "description": "Disbursement to BCA VA",  
            "amount": "100500.0",  
            "status": "processing",  
            "currency": "IDR",  
            "createdAt": "2024-04-01T10:00:00+07:00",  
            "fees": "3885.0",  
            "disbursementMethod": {  
                "type": "bank_transfer",  
                "serverBankAccountHolderName": "John Doe",  
                "bankAccountNo": "1234123412341234",  
                "bankShortCode": "BCA_VA",  
                "bankAccountHolderName": "John Doe",  
                "bankName": "Bank Central Asia VA",  
                "failureReason": null,  
                "bankReferenceNumber": "72999c6c-e3e1-4d32-875d-27be67841ac8"  
            }  
        }  
    }  
}

Sample Get a list of disbursements API

{  
    "data": [  
				{  
        "id": "contract_8d2dc5b53bf34265a30dbc1e9b23dd97",  
        "type": "disbursement",  
        "attributes": {  
            "referenceId": "transferva_00001",  
            "description": "Disbursement to BCA VA",  
            "amount": "100500.0",  
            "status": "processing",  
            "currency": "IDR",  
            "createdAt": "2024-04-01T10:00:00+07:00",  
            "fees": "3885.0",  
            "disbursementMethod": {  
                "type": "bank_transfer",  
                "serverBankAccountHolderName": "John Doe",  
                "bankAccountNo": "1234123412341234",  
                "bankShortCode": "BCA_VA",  
                "bankAccountHolderName": "John Doe",  
                "bankName": "Bank Central Asia VA",  
                "failureReason": null,  
                "bankReferenceNumber": "72999c6c-e3e1-4d32-875d-27be67841ac8"  
            }  
        }  
    },  
				{  
        "id": "contract_ba3839c855ce48f3ab9bb57b34dcb1ec",  
        "type": "disbursement",  
        "attributes": {  
            "referenceId": "transferva_00002",  
            "description": "Disbursement to BRI VA",  
            "amount": "100500.0",  
            "status": "processing",  
            "currency": "IDR",  
            "createdAt": "2024-04-01T10:00:00+07:00",  
            "fees": "3885.0",  
            "disbursementMethod": {  
                "type": "bank_transfer",  
                "serverBankAccountHolderName": "Jane Doe",  
                "bankAccountNo": "1234567812345678",  
                "bankShortCode": "BRI_VA",  
                "bankAccountHolderName": "Jane Doe",  
                "bankName": "Bank Rakyat Indonesia VA",  
                "failureReason": null,  
                "bankReferenceNumber": "72999c6c-e3e1-4d32-875d-27be67841ac8"  
            }  
        }  
    }  
		]  
}

Sample Webhook on Send

{  
    "data": {  
        "id": "contract_8d2dc5b53bf34265a30dbc1e9b23dd97",  
        "type": "disbursement",  
        "attributes": {  
            "referenceId": "transferva_00001",  
            "description": "Disbursement to BCA VA",  
            "amount": "100500.0",  
            "status": "completed",  
            "currency": "IDR",  
            "createdAt": "2024-04-01T10:00:00+07:00",  
            "fees": "3885.0",  
            "disbursementMethod": {  
                "type": "bank_transfer",  
                "serverBankAccountHolderName": "John Doe",  
                "bankAccountNo": "1234123412341234",  
                "bankShortCode": "BCA_VA",  
                "bankAccountHolderName": "John Doe",  
                "bankName": "Bank Central Asia VA",  
            }  
        }  
    }  
}

FAQ

1. How do I know if the destination account is a virtual account?

There is no exact formula on how to differentiate between a virtual account and a non-virtual account number, but here is some information that you can use to determine a virtual account number.

BankRegular Bank AccountVirtual Account
BCAHas 10 digit numberTypically has more than 10 digit number
BRIHas 15 digit numberTypically has 15-18 digit number, 16-18 digit must be virtual account, 15 digit virtual account doesn’t start with 0
BNIHas 10 digit numberTypically has 16 digit number
MandiriHas 13 digit numberTypically 13-16 digit with prefixes 86, 87, 88, or 89

2. What happens if I use a regular bank account bank code to disburse to a virtual account?

If you are using an incorrect bank code for disbursement, our API will return an error code 005 Invalid Parameter

You can refer to this documentation for our full list of bank codes.

{
    "errors": [
        {
            "code": "005",
            "title": "Invalid parameter",
            "detail": "Invalid bank account, Mandiri account should not start with 86, 87, 88, 89 and should not have more than 13 digit"
        }
    ]
}