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 v1.0 1 July 2018 - Intial version

v2.0

v2.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