Fund Transfer Internal v3.1

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 BRI Account?

In establishing a business, you will do tons of bank transfer transactions in your business activities, such as doing payrolls, business transactions, to administration payments.

BRI through its open banking initiative BRIAPI is offering a seamless solution to complete your business needs for bank transfer activities directly from your business dashboard. With API Transfer to BRI Account, you can do any financial activities with only a few clicks and no need to go the branch offices.

API Information

Title

Fund Transfer Internal v3.1

Version

v3.1

URL Sandbox

https://sandbox.partner.api.bri.co.id/v3.1/transfer/internal

URL Production

https://partner.api.bri.co.id/v3.1/transfer/internal

Version Control

Doc Version

API Version

Date

Link to document

Description

v1.0

v3.1

1 July 2018

-

Initial version

v2.0 v3.1 1 February 2019 - Structural and URL changes

v3.0

v3.1

12 March 2021

open docs

Added explanation and Response Code

v3.0

v3.1

12 April 2021

open docs

Sandbox URL changes

v3.1

v3.1

9 July 2021

In this page

Changes in the structure of the API and the response code

 

Product Description

Product Overview

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 service is used to make inquiries of Debit and Credit account information that will be used to carry out Fund Transfer instructions. Accounts that can be inquired are Current Accounts that have been registered and Beneficiary Accounts.

General Information

HTTP Method

POST

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

 

Content-Type

application/json

M

 

 

 

Request Structure

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 message description Inquiry success
errorDescription String M   Error Description Empty string for successful inquiry. Also, please see the list of error/response codes.
data Array M     Contains empty if the response error is "Data":{}
sourceAccount String M   Source Account 020601000255504
sourceAccountName String M   Source Account Name Jane Doe
sourceAccountStatus String M   Source Account Status Rekening Aktif
sourceAccountBalance String M   Source Account Balance 1000000.00
beneficiaryAccount String M   Beneficiary Account 020601000003333
beneficiaryAccountName String M   Beneficiary Account Name John Doe
beneficiaryAccountStatus String M   Source account registration status Rekening Aktif

Request & Response Payload Sample

Request :


curl --location --request POST 'https://sandbox.partner.api.bri.co.id/v3.1/transfer/internal/accounts' \
--header 'BRI-Timestamp: ((TIMESTAMP))' \
--header 'BRI-Signature: ((SIGNATURE))' \
--header 'Content-Type: application/json' \
--data-raw '{
"sourceAccount": "020601000255504",
"beneficiaryAccount": "0206010060313061"
}'

Normal Response :

{
    "responseCode": "0100",
    "responseDescription": "Inquiry success",
    "errorDescription": "",
    "data": {
        "sourceAccount": "020601000255504",
        "sourceAccountName": "Jane Doe",
        "sourceAccountStatus": "Rekening Aktif",
        "sourceAccountBalance": "8631682596.05",
        "beneficiaryAccount": "020601006031306",
        "beneficiaryAccountName": "John Doe",
        "beneficiaryAccountStatus": "Rekening Aktif"
    }
}

Error Response :

{
    "responseCode": "0101",
    "responseDescription": "Inquiry failed",
    "errorDescription": "InqRekAsal: Nomor Rekening Tidak Dikenal & InqRekTujuan: 0000020601006031306",
    "data": {
        "sourceAccount": "020601023500255504",
        "beneficiaryAccount": "020601006031306"
    }
}

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

InqRekAsal: <Error Detail> & InqRekTujuan: <Error Detail>

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

Your IP & key has not been registerd

Failed

 

0105

Inquiry can not be processed

Inquiry data must not be empty

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

 
Any error response not listed in the BRIAPI response list is considered pending and requires further investigation.
Notes: Please see also the "Common Errors" page for a list of common errors in BRIAPI.

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

-

Tipe Format

JSON

Authentication

OAuth 2.0 with Access Token

Header Structure

Key

Value

Mandatory

Length

Description

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

20210202126111111111

source
Account

String

M

15

Source Account

020601000255504

beneficiary
Account

String

M

15

Beneficiary Account

020601006031306

amount

String

M

15

Nominal transfer Format ##.##

10000.00

feeType

String

M

 

OUR

 

Fee charged to sender (default)  (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

transaction
DateTime

String

M

19

Transaction date and time, format: dd-MM-yyyy HH:mm:ss

09-03-2021 15:08:00

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.

REMARK TEST 20210202126111111111

Response Structure

Field

Data Type

Mandatory

Length

Description

Example

responseCode

String

M

 

Response code

0200

response
Description

String

M

 

Response description

Payment Success

error
Description

String

M

 

Error description

Reference number is already used

journalSeq

String

M

 

Journal sequence

8020001

Request & Response Payload Sample

Request :


curl --location --request POST 'https://sandbox.partner.api.bri.co.id/v3.1/transfer/internal' \
--header 'BRI-Timestamp: ((TIMESTAMP))' \
--header 'BRI-Signature: ((SIGNATURE))' \
--header 'Content-Type: application/json' \
--data-raw '{
	"noReferral": "20210202126111111111",
	"sourceAccount": "020601000255504",
	"beneficiaryAccount": "020601006031306",
	"amount": "10000.00",
	"feeType": "OUR",
	"transactionDateTime": "09-03-2021 15:08:00",
	"remark": "REMARK TEST"
}'	

Normal Response :

{
	"responseCode": "0200",
	"responseDescription": "Payment Success",
	"errorDescription": "",
	"journalSeq": "8020001"
}

Error Response:

{
	"responseCode": "0299",
	"responseDescription": "Payment Failed",
	"errorDescription": "Reference number is not valid"
}

List of Error/Response Code

Response Code Response Description Error Description Status Description
0200 Payment Success     Successful transaction is indicated by this response code
0401 Payment Failed invalid source account or beneficiary account format Failed  
0402 Payment Failed field source account or beneficiary account is mandatory Failed  
0403 Payment Failed Account not active Failed  
0404 Payment Failed Account not found Failed  
0411 Payment Failed Insufficient Balance Failed  
0412 Payment Failed Transaction is not allowed Failed  
0413 Payment Failed Request Failed Failed  
0414 Payment Failed Payment Failed Failed  
0415 Payment Failed Invalid Request Format Failed  
0202 Payment can not be processed Payment Timeout Pending please check your account statement or use check status to identify the transaction status
0288 Payment can not be processed Transaction is being processed Pending please check your account statement or use check status to identify the transaction status
0298 Payment Failed Remark is not valid Failed  
0299 Payment Failed Reference number is not valid Failed  
0902 Unexpected Error Unexpected Error Pending please check your account statement or use check status to identify the transaction status
Any error response not listed in the BRIAPI response list is considered pending and requires further investigation.
Notes: Please see also the "Common Errors" page for a list of common errors in BRIAPI.

C. Check Status

notes: check status service can only be executed outside of EOD (End Of Day) period. for every transfer transactions made in EOD period that resulted in timeout or pending response, account check can be done by 8 AM West Indonesian Time.

Endpoint Description

This endpoint is used to check the status of a previously made transaction. Use this if you did not receive a clear response or encountered an error, such as a timeout, during the transaction. It is important to note that the response from this endpoint does not represent the final status of the transfer process. After obtaining the "internalTransferStatus" and "internalTransferErrorMessage" in the response body, please refer to the list of error codes in the Transfer endpoint to identify whether your transaction was successful, failed, or is pending. As a more reliable alternative, partners can use the Check Bank Statement Status endpoint.

General Information

HTTP Method POST
Path /check
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 Decription Example
noReferral String M 20 The unique reference number used in the transaction. 20210202126111111111

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. Otherwise, please refer to the list of error/response codes.
data Array M   It contains information about the response from the transaction. Empty for error response 'Data':{}
noReferral String M   The unique reference number used in the transaction. 20210202126111111111
journalSeq String M   Journal sequence 8020001
internalTransferStatus String M   Response/Error code from the transfer process. Please refer to the error code list in the Transfer endpoint for a more detailed explanation. 0412
internalTransferErrorMessage String M   Response/Error Description from the transfer process. Please refer to the error code list in the Transfer endpoint for a more detailed explanation. Transaction is not allowed

Request & Response Payload Sample

Request :

curl -X POST 'https://sandbox.partner.api.bri.co.id/v3.1/transfer/internal/check' \
 -H 'Authorization: Bearer {{TOKEN}}' \ -H 'X-BRI-Signature: {{SIGNATURE}}' \ -H 'BRI-Timestamp: {{TIMESTAMP}}' \ -H 'Content-Type: application/json' \ -d '{ "noReferral": "20180212002" }'

Normal Response :

{ "responseCode":"0300", "responseDescription":"Cek Status Sukses", "errorDescription":"", "data": { "noReferral":"20210202126111111111" "journalSeq":"8020001", "internalTransferStatus":"0200", "internalTransferErrorMessage":"", } }

Error Response:

{ "responseCode":"0307", "responseDescription":"Reference number not found",
 "errorDescription":"", "data":{} }

List of Error/Response Code

Response Code Response Description Error Description Status Description
0300 Status check success   Success Status check successful, and the data has been received successfully.
0304   Status check data must not be empty Failed  
0307   Reference number not found Pending If you receive this response code, you need to check the settlement file or bank statement to validate the reference number.
0308   Status check failed Failed Please repeat the status check.
0388   Transaction status is pending, please check again tomorrow at 08:00AM WIB Failed Please repeat the status check.
0399   There was an error, please consult with your administrator Failed  
0299 Payment Failed Reference number is not valid Failed  
0601 - Invalid token Failed  
0602 - Invalid signature Failed  
0902 Unexpected Error Unexpected Error Pending Please check the bank statement to view the transfer status.
Any error response not listed in the BRIAPI response list is considered pending and requires further investigation.
Notes: Please see also the "Common Errors" page for a list of common errors in BRIAPI.

D. Check Bank Statement Status

notes: check status service can only be executed outside of EOD (End Of Day) period. for every transfer transactions made in EOD period that resulted in timeout or pending response, account check can be done by 8 AM West Indonesian Time.

Endpoint Description

This endpoint is used to determine the status of transfer transactions between BRI accounts previously carried out based on the results of checking the checking account. Account checking is available in 15 minutes after the transaction was made.

General Information

HTTP Method POST
Path /check-rekening
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 Decription Example
noReferral String M 20 Unique reference number ABCD2021033112369
transactionDate String M 10 Transaction date 01-04-2021

 

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 ABCD2021033112369
journalSeq String M   Journal sequence 7001302
amount String M   Nominal transfer Format ##.## 1000.00
remark String M   Transaction mark. For transaction identification purposes. REMARK TEST BRIAPI
internalTransfer
Status
String M 4 Response/Code of the transfer process. Please see the list in the List of Transfer Status section 0200
internalTransfer
Description
String M   Response/Code of the transfer process. Please see the list in the List of Transfer Status section Payment success

Request & Response Payload Sample

Request :

curl --location --request POST ''\''https://sandbox.partner.api.bri.co.id/v3.1/transfer/internal/check-rekening' \
--header 'BRI-Timestamp: ((TIMESTAMP))' \
--header 'BRI-Signature: ((SIGNATURE))' \
--header 'Content-Type: application/json' \
--data-raw '{
"noReferral": "ABCD2021033112369",
"transactionDate": "01-04-2021"
}'

Normal Response :

{
"responseCode": "0300",
"responseDescription": "Status check success",
"data": {
	"noReferral": "ABCD2021033112345",
	"journalSeq": "7021301",
	"amount": "10000.00",
	"remark": "REMARK TEST BRIAPI",
	"internalTransferStatus": "0200",
	"internalTransferDescription": "Payment success"
}
}

Error Response:

{
"responseCode": "0212",
"responseDescription": "Request can not be processed",
"errorDescription": "Invalid format transaction datetime",
"data": {}
}	

List of Transfer Status

Use this parameter to determine whether the transactions made success or failure.

Code (internalTransferStatus) Response Description (internalTransferDescription) Status Description
0200 Payment success Success Successful transaction
0201 Payment failed Failed Transaction Failed
0388 Transaction status is pending, please check again tomorrow at 08:00AM WIB Pending Please re-hit the endpoint check status

List of Error/Response Code

Response Code Response Description Error Description Status Description
0300 Status check success   Success Check Status successfull and the data was received successfully. See the internalTransferStatus and internalTransferDescription fields in the table above to determine whether the transaction was successful or failed.
0307   Reference number not found Failed  
0388   Transaction status is pending, please check again tomorrow at 08:00AM WIB Pending Please do hit again endpoint check status. If you get this error at End Of Day, please repeat the next day
0210 Request can not be processed Reference number must not be empty Failed Reference number must not be empty
0212 Request can not be processed Invalid format transaction datetime Failed Invalid format transaction datetime
Any error response not listed in the BRIAPI response list is considered pending and requires further investigation.
Notes: Please see also the "Common Errors" page for a list of common errors in BRIAPI.

E. Reconciliation

As a prerequisite for partners to be able to use the Internal Transfer API production environment, partners are required to carry out the reconciliation process using the Account Statement API or using the mt940 file provided on D+1 . How to use these reconciliation methods can be seen on the following page [Link]. 

F. Additional Information

Partners must also see common BRIAPI errors that apply to all BRIAPI products, and handle errors according to the description provided.