Fund Transfer External v2.0
Starting from 1 November 2023, this product will no longer receive support for development. Users can utilize SNAP BI version of the product here
What is Transfer to Other Banks?
With the growing numbers of private and public banks across the country, your need in banking transfer will be more complicated. Consumers does not only do transaction with one bank, they require fund transfer service, either to the same bank or to other banks.
To simplify the fund transfer process to other banks, business owners can implement API Transfer to Other Banks with BRIAPI. With this APIAPI, you can transfer funds to other banks account easily from your business dashboard, without visiting to BRI branch offices or ATM.
API Information
Title |
Other Bank Fund Transfer |
---|---|
Version |
v2.0 |
URL Sandbox |
https://partner.api.bri.co.id/sandbox/v2/transfer/external |
URL Production |
https://partner.api.bri.co.id/v2/transfer/external |
Version Control
Doc Version |
API Version |
Date |
Link to document |
Description |
---|---|---|---|---|
v1.0 |
v2.0 |
1 February 2019 |
Initial version |
|
v2.0 |
v2.0 |
12 Maret 2021 |
this page |
Added explanation and response code |
v2.0 |
v2.0 |
12 April 2021 |
this page |
Sandbox URL changes |
Product Description
Product Overview
This API allows you to transfer funds from your BRI account (only current and savings accounts ) to another bank account. The source account must be your company account.
Flow API
Endpoint
A. Account Validation
Endpoint Description
This endpoint is used to validate the destination account which will be used in transaction. Normally, it is called before making fund transfer request to ensure that destination account (especially the account name) is correct.
General Information
HTTP Method |
GET |
---|---|
Path |
/accounts?bankcode={bankcode}&beneficiaryaccount={beneficiary account} |
Format Type |
JSON |
Authentication |
OAuth 2.0 with Access Token |
Header Structure
Key |
Value |
Mandatory |
Length |
Description |
Example |
---|---|---|---|---|---|
Authorization |
Bearer {token} |
M |
- |
Access Token |
- |
BRI-Timestamp |
- |
M |
- |
Timestamp in ISO8601 format |
- |
BRI-Signature |
- |
M |
64 |
Signature |
- |
Query Param Structure
Sample of HTTP request:
GET https://sandbox.partner.api.bri.co.id/v2/transfer/external/accounts?bankcode={{bankcode}&beneficiaryaccount={{beneficiaryaccount}}
Field |
Data Type |
Mandatory |
Length |
Description |
Example |
---|---|---|---|---|---|
bankcode |
numeric |
M |
3 |
Destination bank code |
014 |
beneficiaryaccount |
numeric |
M |
15 |
destination account |
8888123123 |
Response Structure
Field |
Data Type |
Mandatory |
Length |
Description |
Example |
---|---|---|---|---|---|
responseCode |
String |
M |
4 |
response code |
0600 |
responseDescription |
String |
M |
- |
response description |
Inquiry success |
errorDescription |
String |
M for error response |
- |
Error Description |
Beneficiary account must be a number |
Name |
String |
M for success response |
- |
Beneficiary account name |
|
Request & Response Payload Sample
Request :
curl --location --request GET 'https://sandbox.partner.api.bri.co.id/v2/transfer/external/accounts?bankcode=014&beneficiaryaccount=8888123123' \ --header 'BRI-Timestamp: 2021-07-07T08:19:34.098Z' \ --header 'BRI-Signature: jhkhdLnEkemAhSf683xxxxxM6qWwCAydQnrry5rB0=' \ --header 'Authorization: Bearer xMbxPT4lxxxxxxbmOH3otgev8SXZX'
Normal Response:
{ "responseCode":"0600", "responseDescription":"Inquiry Success", "Name":"John Doe" }
Error Response:
{ "responseCode": "0601", "responseDescription": "Inquiry can not be processed", "errorDescription": "Beneficiary account must be a number" }
List of Error/Response Code
Response Code |
Response Description |
Error Description |
Status |
Description |
---|---|---|---|---|
0600 |
Inquiry Success |
- |
Success |
Inquiry Success, and data can be retrieved |
0601 |
Inquiry can not be processed |
Beneficiary account must be a number |
Failed |
- |
0602 |
Inquiry can not be processed |
Bank code/beneficiary account must not be empty |
Failed |
- |
0603 |
Inquiry can not be processed |
Bank code must be a number |
Failed |
- |
0604 |
Inquiry can not be processed |
Your IP & key has not been registered |
Failed |
- |
0605 |
Inquiry can not be processed |
This feature cannot be used |
Failed |
- |
0607 |
Inquiry can not be processed |
Connection lost |
Failed |
- |
0608 |
Inquiry can not be processed |
Transaction timeout |
Failed |
- |
0609 |
Inquiry can not be processed |
Beneficiary account not found |
Failed |
- |
0613 |
Inquiry can not be processed |
Connection lost |
Failed |
- |
Any error response not listed in the BRIAPI response list is considered pending and requires further investigation
B. Transfer
Endpoint Description
This endpoint is used to request fund transfer from BRI account (current or saving account only) to other bank account. There is maximum total transaction limit and daily limit that will be set by BRI.
General Information
HTTP Method |
POST |
---|---|
Path |
/external |
Format Type |
JSON |
Authentication |
OAuth 2.0 with Access Token |
Header Structure
Key |
Value |
Mandatory |
Length |
Description |
Example |
---|---|---|---|---|---|
Authorization |
Bearer {token} |
M |
- |
Access Token |
- |
BRI-Timestamp |
- |
M |
- |
Timestamp in ISO8601 format |
- |
BRI-Signature |
- |
M |
64 |
Signature |
- |
Content-Type |
application/json |
M |
- |
- |
- |
Request Structure
Field |
Data Type |
Mandatory |
Length |
Description |
Example |
---|---|---|---|---|---|
noReferral |
String |
M |
20 |
Unique reference number |
20180212002 |
bankCode |
Numeric |
M |
3 |
Destination bank code |
014 |
sourceAccount |
String |
M |
15 |
source account |
888801000003301 |
beneficiaryAccount |
String |
M |
15 |
Beneficiary Account |
8888123123 |
beneficiaryAccountName |
String |
M |
40 |
Beneficiary account name. The name itself should has the same value with the name that is retrieved from account validation. deskripsi field amount menjadi Amount format |
John Doe |
amount |
String |
M |
- |
Nominal Format ##.## |
10000.00 (ten thousand) |
Response Structure
Field |
Data Type |
Mandatory |
Length |
Description |
Example |
---|---|---|---|---|---|
responseCode |
String |
M |
- |
Response Code |
0700 |
responseDescription |
String |
M |
- |
Response Description |
Payment Success |
errorDescription |
String |
M |
- |
Error description |
Payment data must not be empty |
journalSeq |
String |
M |
- |
Journal sequence |
3289331 |
Request & Response Payload Sample
Request :
curl --location --request POST 'https://sandbox.partner.api.bri.co.id/v2/transfer/external' \ --header 'Content-Type: application/json' \ --header 'BRI-Timestamp: 2021-07-07T08:23:21.275Z' \ --header 'BRI-Signature: VeLehqlexxxxxxxWRhibH+l6EwLIWASYTsK8Xkz5dzc=' \ --header 'Authorization: Bearer xMbxxxxxxxtlbmOH3otgev8SXZX' \ --data-raw '{ "noReferral": "22222222", "bankCode": "014", "sourceAccount":"888801000003301", "beneficiaryAccount":"12345678", "beneficiaryAccountName":"John Doe"; "amount":"1000.00" }'
Normal Response :
{ "responseCode":"0700", "responseDescription":"Payment Success", "errorDescription":"", "JournalSeq":"3289331" }
Error Response :
{ "responseCode":"0701", "responseDescription":"Payment can not be processed", "errorDescription":"Source account/beneficiary account must be a number" }
List of Error/Response Code
For case response codes other than SUCCESS, use the 3 fields Response Code, Response Description and Error Description to identify the transaction status FAILED or PENDING
Response Code |
Response Description |
Error Description |
Status |
Description |
---|---|---|---|---|
0700 |
Payment success |
|
Success |
Use this to indicate a successful transaction. |
0601 |
Payment can not be processed |
Beneficiary account must be a number |
Failed |
- |
0602 |
Payment can not be processed |
Bank code/beneficiary account must not be empty |
Failed |
- |
0603 |
Payment can not be processed |
Bank code must be a number |
Failed |
- |
0604 |
Payment can not be processed |
Your IP & key has not been registered |
Failed |
- |
0605 |
Payment can not be processed |
This feature cannot be used |
Failed |
- |
0606 |
Payment can not be processed |
Transaction failed during standing mode |
Failed |
- |
0607 |
Payment can not be processed |
Connection lost |
Failed |
- |
0608 |
Payment can not be processed |
Transaction timeout |
Failed |
- |
0610 |
Payment can not be processed |
Transaction timeout |
Pending / Need To Check |
Please check the bank statement to see the transfer status. |
0611 |
Payment can not be processed |
Duplicate sequence transaction |
Failed |
- |
0612 |
Payment can not be processed |
Debit account number not found |
Failed |
- |
0613 |
Payment can not be processed |
Connection lost |
Failed |
- |
0614 |
Payment can not be processed |
Insufficient Balance |
Failed |
- |
0615 |
Payment can not be processed |
Duplicate sequence transaction |
Failed |
- |
0616 |
Payment can not be processed |
Transaction exceeds the limit |
Failed |
- |
0617 |
Payment can not be processed |
Brinets connection is lost |
Failed |
- |
0618 |
Payment can not be processed |
Close account number |
Failed |
- |
0619 |
Payment can not be processed |
Passive account number |
Failed |
- |
0620 |
Payment can not be processed |
Transaction is being processed |
Pending / Need To Check |
Please check the bank statement to see the transfer status. |
0701 |
Payment can not be processed |
Source account/beneficiary account must be a number |
Failed |
- |
0702 |
Payment can not be processed |
Payment data must not be empty |
Failed |
- |
0703 |
Payment can not be processed |
Amount must be a number |
Failed |
- |
0704 |
Payment can not be processed |
Amount must be more than 0 |
Failed |
- |
0705 |
Payment can not be processed |
Reference number is already used |
Failed |
- |
0706 |
Payment can not be processed |
Bank code must be a number |
Failed |
- |
0707 |
Payment can not be processed |
Connection lost, didn't get any response. Please try again |
Failed |
- |
0708 |
Payment can not be processed |
Incorrect beneficiary account name |
Failed |
- |
0709 |
Payment can not be processed |
Invalid length source account |
Failed |
- |
0788 |
Payment can not be processed |
Transaction is being processed |
Pending / Need To Check |
Please check the bank statement to see the transfer status. |
81 |
Throw an exception |
(*All error description) |
Pending / Need To Check |
Please check the bank statement to see the transfer status. |
Get HTML Error or HTTP Error |
Pending / Need To Check |
Please check the bank statement to see the transfer status. |
||
Get No Response (Null) |
Pending / Need To Check |
Please check the bank statement to see the transfer status. |
||
Get response (response code, response desc, error desc) that not listed above |
Pending / Need To Check |
Set the transaction to Pending / Need To Check, and contact our team. |
Any error response not listed in the BRIAPI response list is considered pending and requires further investigation
NOTE: In the list above, you will see response codes in account validation endpoint appears again. It is normal, because in Transfer endpoint, our core system call account validation to validate the beneficiary account name. If the name is invalid or not match, we will send the error.
C. List Bank Code
Endpoint Description
This endpoint is used to get a list of available bank codes
General Information
HTTP Method |
GET |
---|---|
Path |
/external/accounts |
Tipe Format |
JSON |
Authentication |
OAuth 2.0 with Access Token |
Query Param Structure
Sample HTTP request:
GEThttps://sandbox.partner.api.bri.co.id/v2/transfer/external/accounts
Response Structure
Field |
Data Type |
Mandatory |
Length |
Description |
Example |
---|---|---|---|---|---|
responseCode |
String |
M |
4 |
response code |
0600 |
responseDescription |
String |
M |
- |
response description |
Inquiry success |
errorDescription |
String |
M |
- |
Error Description |
Beneficiary account must be a number |
Data |
String |
M |
- |
the data contains a list of bank codes and bank names |
"Data" : [ { "BankCode" : "008", "BankName" : "BANK MANDIRI" }, { "BankCode" : "009", "BankName" : "BANK BNI" } ] |
Request & Response Payload Sample
Request :
curl --location --request GET 'https://sandbox.partner.api.bri.co.id/v2/transfer/external/accounts' \ --header 'BRI-Timestamp: 2021-07-13T09:39:47.674Z' \ --header 'BRI-Signature: COBQovNoz4zNBdahRS5E43590Hkk8ldlJWXKXCNwLeg=' \ --header 'Content-Type: application/x-www-form-urlencoded' \ --header 'Authorization: Bearer GwkfOMbySQHkgqLfYmwjw3oGautp'
Normal Response :
{ "responseCode": "00", "responseDescription": "Get list other bank success", "errorDescription": "", "Data": [ { "BankCode": "008", "Bankname": "BANK MANDIRI" }, { "BankCode": "009", "Bankname": "BANK BNI" } ] }
Any error response not listed in the BRIAPI response list is considered pending and requires further investigation
Additional Notes:
In this product we do not provide a "Check Status" endpoint.