Fund Transfer Internal v3.0
API Information
Title |
Fund Transfer Internal |
---|---|
Version |
v3.0 |
URL Sandbox |
https://sandbox.partner.api.bri.co.id/v3/transfer/internal |
URL Production |
https://partner.api.bri.co.id/v3/transfer/internal |
Version Control
Doc Version |
API Version |
Date |
Link to document |
Description |
---|---|---|---|---|
v1.0 | v3.0 | 1 July 2018 | - | Intial version |
v2.0 |
v3.0 |
1 February 2019 |
- |
Structural and URL changes |
v3.0 |
v3.0 |
12 Maret 2021 |
In this page |
Added explanation and Response Code |
v3.0 |
v3.0 |
12 April 2021 |
In this page |
Sandbox URL changes |
Product Description
This API allows partners to transfer funds between two BRI accounts (internal transfer). The source account is the partner's account. Fund transfer API can only be done for checking accounts and savings accounts.
Flow API
Endpoint
A. Account Validation
Endpoint Description
This endpoint is to validate the source and receiving accounts in order to complete the transfer process. Generally, this endpoint will be called prior to making a fund transfer request, also to ensure that the source and destination accounts are correct.
General Information
HTTP Method |
GET |
---|---|
Path |
/accounts |
Tipe Format |
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:
GEThttps://sandbox.partner.api.bri.co.id/v3/transfer/internal/accounts?sourceaccount={{SOURCE_ACCOUNT}&beneficiaryaccount={{DESTINATION_ACCOUNT}}
Field |
Data Type |
Mandatory |
Length |
Description |
Example |
---|---|---|---|---|---|
sourceAccount |
String |
M |
15 |
source accounts. If the length is less than 15, add the number 0 in front of it |
020601000003301 |
beneficiaryaccount |
String |
M |
15 |
Destination accounts. If the length is less than 15, add the number 0 in front of it |
020601000003333 |
Response Structure
Field |
Data Type |
Mandatory |
Length |
Description |
Example |
---|---|---|---|---|---|
responseCode |
String |
M |
4 |
response code |
0100 |
responseDescription |
String |
M |
|
response description |
Inquiry success |
errorDescription |
String |
|
|
Error Description |
Empty string for successful inquiry. Also, please see the list of error/response codes. |
Data |
Array |
M |
|
Contains source and destination account information. |
Contains empty if the response error is "Data":{} |
sourceAccount |
String |
M |
|
Source Account |
020601000003301 |
sourceAccountName |
String |
M |
|
Source Account Name |
|
sourceAccountStatus |
String |
M |
|
Source Account Status |
Rekening Aktif |
sourceAccountBalace |
String |
M |
|
Source Account Balance |
1000000 |
registrationStatus |
String |
M |
|
Source account registration status |
|
beneficiaryAccount |
String |
M |
|
Beneficiary Account |
020601000003333 |
beneficiaryAccountName |
String |
M |
|
Beneficiary Account Name |
|
beneficiaryAccountStatus |
String |
M |
|
Beneficiary Account Status |
Rekening Aktif |
Request & Response Payload Sample
Request :
curl --location --request GET 'https://sandbox.partner.api.bri.co.id/v3/transfer/internal/accounts?sourceaccount=888801000157508&beneficiaryaccount=888801000157508' \ --header 'BRI-Timestamp: 2021-07-07T07:35:59.009Z' \ --header 'BRI-Signature: 06EqccccVp3Y7PaJCLH2H4z3FJIcHWatfeZ8J9fo=' \ --header 'Authorization: Bearer AW6xxxxCBkoIcuqr2tq1cmyiLq'
Normal Response :
{ "responseCode":"0100", "responseDescription":"Inquiry Success", "errorDescription":"", "Data":{ "sourceAccount":"888801000003301" "sourceAccountName":"BRIAPI SANDBOX", "sourceAccountstatus":"Rekening Aktif", "sourceAccountBalace":"258544125122.98", "registrationStatus":"Rekening terdaftar an. bri", "beneficiaryAccount":"888801000157508", "beneficiaryAccountName":"BRIAPI SANDBOX 2", "beneficiaryAccountStatus":"Rekening Aktif" } }
Error Response :
{ "responseCode":"0111", "responseDescription":"Inquiry can not be processed", "errorDescription":"Source account/beneficiary account must be a number", "Data":{} }
List of Error/Response Code
Response Code |
Response Description |
Error Description |
Status |
Description |
---|---|---|---|---|
0100 |
Inquiry Success |
- |
Success |
Inquiry was successful, data was obtained. |
0101 |
Inquiry failed |
Beneficiary account must be a number |
Failed |
|
0102 |
Inquiry timeout |
- |
Failed |
|
0103 |
Inquiry can not be processed |
Source account/beneficiary account must be a number |
Failed |
|
0104 |
Inquiry can not be processed |
Inquiry data must not be empty |
Failed |
|
0105 |
Inquiry can not be processed |
Source account/beneficiary account must be in IDR |
Failed |
|
0106 |
Inquiry can not be processed |
Source account/beneficiary account must not be empty |
Failed |
|
0109 |
Inquiry can not be processed |
Member ID/participant account not found |
Failed |
|
0110 |
Inquiry can not be processed |
Branch code/source account not found |
Failed |
|
0111 |
Inquiry can not be processed |
Source account/beneficiary account is not registered |
Failed |
|
0112 |
Inquiry can not be processed |
Reference number is not registered |
Failed |
|
81 |
Throw an exception |
*any error description |
Failed |
Unhandled error |
0007 |
Inquiry can not be processed |
Username (institution code) must not be empty |
Failed |
Username, password and source account used will be configured in BRIAPI. If you get this error, please contact our team via email. |
0008 |
Inquiry can not be processed |
Invalid username (institution code) or password (institution key) |
Failed |
|
0009 |
Inquiry can not be processed |
Password (institution key) must not be empty |
Failed |
|
0010 |
Inquiry can not be processed |
Wrong password (institution key). Please enter your correct password |
Failed |
|
0011 |
Inquiry can not be processed |
Accounts not registered in institutional accounts |
Failed |
|
0012 |
Inquiry can not be processed |
Wrong password (institution key). Please enter your correct password |
Failed |
|
B. Transfer
Endpoint Description
This endpoint is used to request funds transfer between two BRI accounts. However, there is a limit for total transactions and daily transactions that is set by BRI.
General Information
HTTP Method |
POST |
---|---|
Path |
/internal |
Tipe Format |
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, sent by partner |
20180212002 |
sourceAccount |
String |
M |
15 |
Source Account |
888801000157508 |
beneficiaryAccount |
String |
M |
15 |
Beneficiary Account |
888801000003301 |
amount |
String |
M |
15 |
Nominal transfer Format ##.## |
1000.00 |
feeType |
String |
M |
|
OUR Fee charged to sender (default) BEN Fee charged to recipient SHA|1000 The fee is divided between the sender and the recipient, with the sender being charged IDR 1000 and the recipient being charged the rest |
OUR |
transactionDateTime |
String |
M |
19 |
Transaction date and time, format: dd-MM-yyyy HH:mm:ss |
14-02-2000 19:30:10 |
remark |
String |
M |
40 |
Transaction mark. For transaction identification purposes, please include a unique value in the remark. It will appear on the checking account. |
Disburse 20201918 |
Response Structure
Field |
Data Type |
Mandatory |
Length |
Description |
Example |
---|---|---|---|---|---|
responseCode |
String |
M |
|
Response code |
0200 |
responseDescription |
String |
M |
|
Response description |
Payment Success |
errorDescription |
String |
M |
|
Error description |
Reference number is already used |
JournalSeq |
String |
M |
|
Journal sequence |
3289331 |
Request & Response Payload Sample
Request :
curl --location --request POST 'https://sandbox.partner.api.bri.co.id/v3/transfer/internal' \ --header 'Content-Type: application/json' \ --header 'BRI-Timestamp: 2021-07-07T07:34:39.402Z' \ --header 'BRI-Signature: bMoAFKKZTi+8P8OdCqQQ7x+swQTT0gFsTUezbzcDfaQ=' \ --header 'Authorization: Bearer AW6oqY1AcCBkoIcuqr2tq1cmyiLq' \ --data-raw '{ "NoReferral": "1231212313", "sourceAccount": "888801000157508", "beneficiaryAccount": "888801000003301", "amount": "1000", "FeeType": "OUR", "transactionDateTime": "12-02-2019 15:08:00", "remark": "REMARK TEST" }'
Normal Response :
{ "responseCode":"0200", "responseDescription":"Payment Success", "errorDescription":"", "JournalSeq":"3289331" }
Error Response :
{ "responseCode":"0209", "responseDescription":"Payment can not be processed", "errorDescription":"Reference number is already used" }
List of Error/Response Code
NOTE : For response status code cases other than SUCCESS, please 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 |
---|---|---|---|---|
0200 |
Payment Success |
- |
Success |
Successful transaction is indicated by this response code |
0201 |
Payment Failed |
Nomor Rekening Tidak Dikenal |
Failed |
|
0201 |
Payment Failed |
Saldo Tidak Cukup |
Failed |
|
0201 |
Payment Failed |
Rekening Sudah Ditutup |
Failed |
|
0201 |
Payment Failed |
Rekening Pasif |
Failed |
|
0201 |
Payment Failed |
Rek Notpool / Tdk Bisa Ditarik |
Failed |
|
0201 |
Payment Failed |
Rekening Dibekukan |
Failed |
|
0201 |
Payment Failed |
Cek/BG diblokir |
Failed |
|
0201 |
Payment Failed |
Deceased customer |
Failed |
|
0201 |
Payment Failed |
Checkbook error |
Failed |
|
0201 |
Payment Failed |
Account closed today |
Failed |
|
0201 |
Payment Failed |
Rekening di blokir |
Failed |
|
0201 |
Payment Failed |
Dalam Rangka Kustodian |
Failed |
|
0201 |
Payment Failed |
Account status is invalid |
Failed |
|
0201 |
Payment Failed |
Overdrawn not allowed |
Failed |
|
0201 |
Payment Failed |
On/Off Balance Sheet not match |
Failed |
|
0201 |
Payment Failed |
Check Not Found |
Failed |
|
0201 |
Payment Failed |
Check Already Paid |
Failed |
|
0201 |
Payment Failed |
Original jrnl seq# not found |
Pending / Need To Check |
Please check your current/saving account to see the transfer status |
0201 |
Payment Failed |
Teller Record in use |
Pending / Need To Check |
Please check your current/saving account to see the transfer status |
0201 |
Payment Failed |
Account in use |
Pending / Need To Check |
Please check your current/saving account to see the transfer status |
0201 |
Payment Failed |
Blokir Kredit |
Failed |
|
0201 |
Payment Failed |
On/Off Balance Sheet not match |
Failed |
|
0201 |
Payment Failed |
Transaction not allowed |
Failed |
|
0201 |
Payment Failed |
Currency discrepancy |
Failed |
|
0201 |
Payment Failed |
REKENING PROTEK |
Failed |
|
0201 |
Payment Failed |
Account is already closed |
Failed |
|
0201 |
Payment Failed |
Trans in incorrect currency |
Failed |
|
0201 |
Payment Failed |
Failed to get the transaction limit parameter, please try again |
Failed |
|
0201 |
Payment Failed |
Amount transaction is less than amount fee |
Failed |
|
0201 |
Payment Failed |
Invalid fee type parameter |
Failed |
|
0201 |
Payment Failed |
Nominal transaction is less than the minimum limit |
Failed |
|
0201 |
Payment Failed |
Nominal transaction is more than the maximum limit |
Failed |
|
0201 |
Payment Failed |
Failed to get the daily limit transaction, please try again |
Failed |
|
0201 |
Payment Failed |
Total nominal daily transaction exceeds more than maximum limit |
Failed |
|
0201 |
Payment Failed |
Payment failed, please try again |
Failed |
|
0201 |
Payment Failed |
Type account number not in current account/IA/saving account |
Failed |
|
0201 |
Payment Failed |
Error: BRINETS connection lost |
Failed |
|
0201 |
Payment Failed |
Transaction Failed |
Pending / Need To Check |
Please check your current/savings account to see the transfer status. *NOTES: This error is an anomaly in the current version. Fixing will be done in the next version. |
0201 |
Payment Failed |
Other Error Description in RC 0201 which not listed above |
Pending / Need To Check |
If you get a response code 0201 and an error description that is not listed above, set your transaction to Pending / need To Check, and check your checking account to get the transfer status. Please contact our team. |
0202 |
Payment can not be processed |
Payment timeout |
Pending / Need To Check |
Due to time out, you will not get the response code and response/error description. Use the "Check Status" endpoint to get the information, and refer back to this table or use a checking account to validate the transfer status. |
0204 |
|
Payment data must not be empty |
Failed |
|
0206 |
|
Amount must be a number |
Failed |
|
0207 |
|
Amount must be more than 0 |
Failed |
|
0208 |
|
Length amount is not valid |
Failed |
|
0209 |
|
Reference number is already used |
Failed |
|
0210 |
|
Reference number must not be empty |
Failed |
|
0211 |
|
Remark must not be empty |
Failed |
|
0212 |
|
Invalid format transaction datetime |
Failed |
|
0213 |
|
Fee type must not be empty |
Failed |
|
0288 |
Payment can not be processed |
Transaction is being processed |
Pending / Need To Check |
Please check your current/saving account to see the transfer status |
81 |
Throw an exception |
(*All error description) |
Pending / Need To Check |
Please check your current/saving account to see the transfer status |
Get HTML Error or HTTP Error |
Pending / Need To Check |
Please check your current/saving account to see the transfer status |
||
Get No Response (Null) |
Pending / Need To Check |
Please check your current/saving account 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. |
C. Check Status
Endpoint Description
This endpoint is used to check the status of transactions that have been made. Please use this when making a transaction you don't get a clear response or error, such as: time out. Please note that the response from this endpoint does not reflect the final status of the transfer process. After getting 'internalTransferStatus" and "internalTransferErrorMessage" in the response body, please refer to the list of error codes in the Transfer endpoint, to identify whether your transaction has been successful, failed, or Pending.
General Information
HTTP Method |
GET |
---|---|
Path |
/internal?norefferal={NoReferral} |
Tipe Format |
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
Example HTTP request:
GET https://partner.api.bri.co.id/sandbox/v3/transfer/internal/accounts?noreferral={{NoReferral}
Field |
Data Type |
Mandatory |
Length |
Description |
Example |
---|---|---|---|---|---|
NoReferral |
String |
M |
20 |
Unique reference number used in transactions |
20181230002 |
Response Structure
Field |
Data Type |
Mandatory |
Length |
Description |
Example |
---|---|---|---|---|---|
responseCode |
String |
M |
4 |
response code |
0300 |
responseDescription |
String |
M |
|
response description |
Status check success |
errorDescription |
String |
|
|
Error Description |
Empty string for successful inquiry. Also, please see the list of error/response codes. |
Data |
Array |
M |
|
contains response information from transactions |
Contains empty if the response error is "Data":{} |
noReferral |
String |
M |
|
Unique reference number used in transactions |
20181230002 |
journalSeq |
String |
M |
|
Journal sequence |
3289331 |
internalTransferStatus |
String |
M |
4 |
Response/Error code of the transfer process. Please see the list of error codes in the Transfer endpoint for a more complete explanation. |
0201 |
internalTransferErrorMessage |
String |
M |
|
Response/Error Description of the transfer process. Please see the list of error codes in the Transfer endpoint for a more complete explanation. |
Original jrnl seq# not found |
Request & Response Payload Sample
Request :
curl --location --request GET 'https://sandbox.partner.api.bri.co.id/v3/transfer/internal?noreferral=1231212313' \ --header 'BRI-Timestamp: 2021-07-07T07:36:13.448Z' \ --header 'BRI-Signature: lDpjVDwmuA7TmxS732TSsYoCoiwqJ2VxleF++WNe06w=' \ --header 'Authorization: Bearer AW6oqY1AcCBkoIcuqr2tq1cmyiLq'
Normal Response :
{ "responseCode":"0300", "responseDescription":"Cek Status Sukses", "errorDescription":"", "Data":{ "NoReferral":"20181230002" "journalSeq":"BRIAPI SANDBOX", "internalTransferStatus":"0201", "internalTransferErrorMessage":"Original jrnl seq# not found", } }
Error Response:
{ "responseCode":"0307", "responseDescription":"", "errorDescription":"No Referral Tidak Ditemukan", "Data":{} }
List of Error/Response Code
NOTE : The response below indicates the status of the endpoint check status and it’s not an indication of a successful or failed transfer t. Please look at the Data fields (internalTransferStatus and internalTransferErrorMessage) and the response list table at the Transfer endpoint to determine whether the transaction is Successful, Failed, or Pending.
Response Code |
Response Description |
Error Description |
Status |
Description |
---|---|---|---|---|
0300 |
Status check success |
- |
Success |
Check the status of success, and the data was received successfully. |
0304 |
|
Status check data must not be empty |
Failed |
|
0307 |
|
Reference number not found |
Pending, need to check the settlement file or current/savings account |
If you get this response code, you need to look at the settlement file or current/savings account to validate the reference number |
0308 |
|
Status check failed |
Failed |
Please try again hit check status |
0388 |
|
Transaction status is pending, please check again tomorrow at 08:00AM WIB |
Failed |
Please try again hit check status |
0399 |
|
There was an error, please consult with your administrator |
Failed |
|