BIFAST Disbursement API
BI-FAST Disbursement API is a Brick Send Money endpoint for creating bank transfer payouts through the BI-FAST network. Use this API when the recipient bank is eligible for BI-FAST and your transaction fits the BI-FAST transfer requirements for your account.
A BI-FAST disbursement request includes the payout amount, your unique referenceId, recipient bank account details, and sender information required for BI-FAST processing. After creating the request, track the final outcome through callbacks or status endpoints instead of relying only on the initial API response.
When to Use BI-FAST Disbursement
Use BI-FAST Disbursement when:
- the destination bank is supported for BI-FAST;
- the payout amount is within the applicable BI-FAST limit;
- your integration can provide the required sender identity, address, and job information; and
- your system can handle asynchronous status updates through callbacks or status checks.
Request parameters
| Key Parameters | Data Type | Description |
|---|---|---|
| publicAccessToken | String | One time access-token generated using the auth token API |
| referenceId | String | A unique reference ID as a unique identifier |
| amount | Integer | Amount of money to be disbursed |
| recipientEmail | String | Email of the transfer recipient. System will send email and PDF transfer proof to this email. |
| description | String | An arbitrary string attached to the object. Often useful for displaying to users what the transaction was for. Description length limit is 255 chars. |
| type | String | Currently only support "bank_transfer" |
| bankAccountNo | String | Account number of the recipient user |
| bankShortCode | String | Institution short code of the recipient user bank account |
| bankAccountHolderName | String | Account name that the funds are intended to be sent to. |
Additional Request Parameters for BIFAST
| Key Parameters | Data Type | Description | Limitation |
|---|---|---|---|
| name | String | Name of the user that send the money | 1. Alpha Numeric 2. Space Allowed 3. Max 40 Characters |
| identityType | String | Allowed Value only KTP/SIM/KITAS/NPWP | Allowed Value only KTP/SIM/KITAS/NPWP |
| identityNumber | String | Identity Number of the User | 1. Alpha Numeric 2. Min 10 characters 3. Max 16 Characters |
| countryCode | String | Two-letter country code for the sender | Allowed value: 2 uppercase characters |
| provinceCode | String | Two-letter province code for the sender | Allowed value: 2 uppercase characters |
| cityCode | String | Four-letter city code for the sender | Allowed value: 4 uppercase characters |
| jobCode | String | Four-letter job code for the sender | Allowed value: 4 uppercase characters |
| address | String | Address of the user | 1. Alpha Numeric 2. Space Allowed 3. Max 40 Characters |
| placeOfBirth | String | Place of the user birth | 1. Alpha Numeric 2. Space allowed 3. Max 40 Characters |
| dateOfBirth | String | Date of Birth of the user | YYYY-MM-DD Format |
Response parameters
| Key Parameters | Data type | Description |
|---|---|---|
| id | String | Unique identifier |
| type | String | Type of transaction |
| status | String | The status of disbursement |
| createdAt | TimeStamp | Time at which the response was created. |
| failureReason | String | Reason for the failed transaction. This field is shown only when the transaction fails. |
| amount | String | Amount of money to be disbursed |
| feeAmount | String | Fee of the transaction |
| referenceId | String | A unique reference ID as a unique identifier |
| description | String | An arbitrary string attached to the object. Often useful for displaying to users what the transaction was for. Description length limit is 255 chars. |
| disbursementMethodType | String | Currently only support bank transfer |
| bankAccountNo | String | Account number of the user |
| bankShortCode | String | Institution short code of the user |
| bankAccountHolderName | String | Account name that the funds are intended to be sent to. |
| bankName | String | Name of the Institutions |
| settlementStatus | String | Status of Transaction Settlement |
Additional Response Parameters for BIFAST
| Key Parameters | Data Type | Description |
|---|---|---|
| name | String | Name of the user that send the money |
| identityType | String | Allowed Value only KTP/SIM/KITAS/NPWP |
| identityNumber | String | Identity Number of the User |
| countryCode | String | Country Code based on the user |
| provinceCode | String | Province Code based on the user |
| cityCode | String | City Code based on the user |
| jobCode | String | Job Code based on the user |
| address | String | Address of the user |
| placeOfBirth | String | Place of the user birth |
| dateOfBirth | String | Date of Birth of the user |
❗️ Important Note on API Responses
If your system does not receive an HTTP 200 response with a valid transaction status (PROCESSING, COMPLETED, or FAILED), you must not flag the transaction as succeeded or failed.
A non-200 response (e.g., timeout, 5xx error, or no response) means the outcome is uncertain, and you should treat the transaction as pending until you confirm its status via the Status API.
