Fund Transfer

Account Validation

Endpoint ini digunakan untuk memvalidasi akun sumber dan tujuan yang akan digunakan pada proses transfer. Biasanya, panggilan API ini digunakan sebelum melakukan permintaan transfer dana untuk memastikan akun sudah benar.

curl -X GET 'https://partner.api.bri.co.id/sandbox/v3/transfer/internal/accounts?sourceAccount=888801000003301&beneficiaryAccount=888801000157508' \
  -H 'Authorization: Bearer {{TOKEN}}' \
  -H 'BRI-Signature: {{SIGNATURE}}' \
  -H 'BRI-Timestamp: {{TIMESTAMP}}'
<?php
$NoRek = "888801000157508";
$secret = "YOUR SECRET KEY";
$timestamp = gmdate("Y-m-d\TH:i:s.000\Z");
$token = $accesstoken;
$path = "/sandbox/v3/transfer/internal/accounts;
$verb = "GET";
$body="";

$base64sign = generateSignature($path,$verb,$token,$timestamp,$body,$secret);

$urlGet ="https://partner.api.bri.co.id/sandbox/v3/transfer/internal/accounts?sourceAccount=".$NoRek;
$chGet = curl_init();
curl_setopt($chGet,CURLOPT_URL,$urlGet);

$request_headers = array(
                    "Authorization:Bearer " . $token,
                    "BRI-Timestamp:" . $timestamp,
                    "BRI-Signature:" . $base64sign
                );
curl_setopt($chGet, CURLOPT_HTTPHEADER, $request_headers);
curl_setopt($chGet, CURLINFO_HEADER_OUT, true);

curl_setopt($chGet, CURLOPT_RETURNTRANSFER, true);

$resultGet = curl_exec($chGet);
$httpCodeGet = curl_getinfo($chGet, CURLINFO_HTTP_CODE);
curl_close($chGet);

$jsonGet = json_decode($resultGet, true);

echo "<br/> <br/>";
echo "Response Get : ".$resultGet;
?>
{
  "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"
  }
}

HTTP Request

GET https://partner.api.bri.co.id/sandbox/v3/transfer/internal/accounts?
sourceaccount={{SOURCE_ACCOUNT}&beneficiaryaccount={{DESTINATION_ACCOUNT}}

Query Parameters

Parameter Type Max Char Mandatory Description
sourceAccount Numeric 15 Yes Source account that will be used in transfer. If the account length is less than 15, add 0 at the beginning
beneficiaryAccount Numeric 15 Yes Destination account that will be used in transfer

Transfer

Endpoint ini digunakan untuk melakukan transfer dana antara dua akun. Ada batas maksimal total transaksi dan limit harian yang akan ditetapkan oleh BRI.

curl -X POST 'https://partner.api.bri.co.id/sandbox/v3/transfer/internal' \
  -H 'Authorization: Bearer {{TOKEN}}' \
  -H 'BRI-Signature: {{SIGNATURE}}' \
  -H 'BRI-Timestamp: {{TIMESTAMP}}' \
  -H 'Content-Type: application/json' \
  -d '{
    "NoReferral": "20180212002",
    "sourceAccount": "888801000157508",
    "beneficiaryAccount": "888801000003301",
    "Amount": "1000.00",
    "FeeType": "OUR",
    "transactionDateTime": "12-02-2018 10:18:00",
    "remark": "REMARK TEST"
}'
<?php
$noReff = "12313221";
$sourceAcc = "888801000157508";
$benefAcc = "888801000003301";
$amt = "1000.00";
$feeType = "OUR";
$trxDateTime = "12-02-2019 15:08:00";
$remark = "REMARK TEST";

$datas = array(
    'NoReferral' => $noReff ,
    'sourceAccount' => $sourceAcc,
    'beneficiaryAccount' => $benefAcc,
    'Amount' => $amt,
    'FeeType' => $feeType,
    'transactionDateTime' => $trxDateTime,
    'remark' => $remark 
);
$payload = json_encode($datas, true);

$path = "/sandbox/v3/transfer/internal";
$verb = "POST";
$base64sign = generateSignature($path,$verb,$token,$timestamp,$payload,$secret);

$request_headers = array(
    "Content-Type:"."application/json",
    "Authorization:Bearer " . $token,
    "BRI-Timestamp:" . $timestamp,
    "BRI-Signature:" . $base64sign,
);

$urlPost ="https://partner.api.bri.co.id/sandbox/v3/transfer/internal";
$chPost = curl_init();
curl_setopt($chPost, CURLOPT_URL,$urlPost);
curl_setopt($chPost, CURLOPT_HTTPHEADER, $request_headers);
curl_setopt($chPost, CURLOPT_POSTFIELDS, $payload);
curl_setopt($chPost, CURLINFO_HEADER_OUT, true);
curl_setopt($chPost, CURLOPT_RETURNTRANSFER, true);
$resultPost = curl_exec($chPost);
$httpCodePost = curl_getinfo($chPost, CURLINFO_HTTP_CODE);
curl_close($chPost);

$jsonPost = json_decode($resultPost, true);

echo "<br/> <br/>";
echo "Response Post : ".$resultPost;
{
  "responseCode": "0200",
  "responseDescription": "Payment Success",
  "errorDescription": "",
  "JournalSeq": "3289331"
}

HTTP Request

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

Request Header

Key Value Mandatory
Content-Type application/json Yes

Request Body

Field Data Type Max Char Mandatory Description
NoReferral String 20 Yes Unique reference number from sender
sourceAccount String 15 Yes Source account
beneficiaryAccount String 15 Yes Destination account
Amount String 15 Yes Fund transfer amount, format must be #.##, example 10000.00 for ten thousands
FeeType String - Yes 1. OUR
Fee is charged to the sender (default)
2. BEN
Fee is charged to the recipient
3. SHA|1000
Fee is shared between sender and recipient, with sender is charged Rp 1.000,00 and the recipient will be charged the rest
transactionDateTime String 19 Yes Date and time of the transaction, format: dd-MM-yyyy HH:mm:ss
remark String 40 No Remark/transaction description)

Check Transfer Status

Endpoint ini digunakan untuk memeriksa status transaksi transfer yang sudah dibuat.

curl -X GET 'https://partner.api.bri.co.id/sandbox/v3/transfer/internal?noreferral=201802120002' \
  -H 'Authorization: Bearer {{TOKEN}}' \
  -H 'BRI-Signature: {{SIGNATURE}}' \
  -H 'BRI-Timestamp: {{TIMESTAMP}}'
<?php
$noRefferal = "201802120002";
$secret = "YOUR SECRET KEY";
$timestamp = gmdate("Y-m-d\TH:i:s.000\Z");
$token = $accesstoken;
$path = "/sandbox/v3/transfer/internal;
$verb = "GET";
$body = "";

$base64sign = generateSignature($path,$verb,$token,$timestamp,$body,$secret);
$urlGet ="https://partner.api.bri.co.id/sandbox/v3/transfer/internal?noreferral=".$noRefferal;
$chGet = curl_init();

$request_headers = array(
    "Authorization: Bearer " . $token,
    "BRI-Timestamp: " . $timestamp,
    "BRI-Signature: " . $base64sign
);

curl_setopt($chGet,CURLOPT_URL,$urlGet);
curl_setopt($chGet, CURLOPT_HTTPHEADER, $request_headers);
curl_setopt($chGet, CURLINFO_HEADER_OUT, true);
curl_setopt($chGet, CURLOPT_RETURNTRANSFER, true);

$resultGet = curl_exec($chGet);
$httpCodeGet = curl_getinfo($chGet, CURLINFO_HTTP_CODE);
curl_close($chGet);

$jsonGet = json_decode($resultGet, true);
echo "Response Get : ".$resultGet;
{
  "responseCode": "0300",
  "responseDescription": "Cek Status sukses",
  "errorDescription": "",
  "Data": {
    "NoReferral": "20181230002",
    "journalSeq": "3289331",
    "internalTransferStatus": "0200",
    "internalTransferErrorMessage": ""
  }
}

HTTP Request

GET https://partner.api.bri.co.id/sandbox/v3/transfer/internal?noreferral={{NO_REFERRAL}}

Query Parameters

Parameter Type Max Char Mandatory Description
NoReferral String 20 Yes Unique reference number that was used on the transaction

Response

Field Data Type Mandatory Description
responseCode String Yes Response code
responseDescription String Yes Response code description
errorDescription String Yes Additional response description
NoReferral String Yes Reference number that was sent
journalSeq String Yes Transaction journal seq that was written in BRI system
internalTransferStatus String Yes Transaction status
internalTransferErrorMessage String Yes Transaction status description

Response Code

BRI menggunakan response code HTTP konvensional untuk menunjukkan apakah permintaan API yang dilakukan sukses atau gagal. Kode dengan awalan 4xx menunjukkan kesalahan pada data yang disediakan (misalnya, parameter yang diperlukan tidak lengkap, pengisian daya gagal, dll.). Kode dalam rentang 5xx menunjukkan kesalahan pada server BRI (ini jarang terjadi). Silahkan melihat daftar response code di bawah ini:

Inquiry

Code Code Description
0001 Wrong message format
0005 Validasi Sukses
0007 Kode institusi kosong atau tidak valid
0008 Institusi tidak dikenali
0009 Key tidak boleh kosong
0010 IP address tidak diijinkan
0011 Rekening tidak terdaftar di rekening institusi
0012 Key SALAH. Mohon masukkan Key yang BENAR
99 API Service Maintenance
81 Thwow An Exception
0100 Inquiry Success
0101 Inquiry Failed
0102 Inquiry Timeout
0103 Source account/beneficiary account must be a number
0104 Data Inquiry ada yang kosong
0105 Nomor Rekening asal/tujuan harus IDR
0106 Source account/beneficiary account must not be empty
0109 ID member/rekening peserta tidak ditemukan
0110 Kode cabang / rekening Institusi tidak ditemukan
0111 Nomor Rekening Tidak Terdaftar
0112 Nomor Refferal Tidak Terdaftar

Transfer

Code Code Description Error Description Transaction Status
0200 Payment Success - Success
0201 Payment Failed - Need To Check
0201 Payment Failed Account Closed Failed
0201 Payment Failed Invalid Beneficiary Accout Failed
0201 Payment Failed Duplicate Journal Seq Need To Check
0201 Payment Failed Original Journal Seq Not Found Need To Check
0201 Payment Failed Rekening Sudah Ditutup Failed
0201 Payment Failed Rekening Pasif Failed
0201 Payment Failed Rekening Dibekukan Failed
0201 Payment Failed Saldo Tidak Cukup Failed
0201 Payment Failed Teller Record in User Need To Check
0201 Payment Failed Type account number not in current account/IA/saving account Failed
0202 Payment can not be processed Payment Timeout Need To Check
0204 Payment can not be processed Data Payment ada yang kosong Failed
0206 Payment can not be processed Amount must be a number Failed
0207 Payment can not be processed Amount must be more than 0 Failed
0208 Payment can not be processed Length amount is not valid Failed
0209 Payment can not be processed Reference number is already used Failed
0210 Payment can not be processed Reference number must not be empty Failed
0211 Payment can not be processed Remark must not be empty Failed
0212 Payment can not be processed Invalid format transaction datetime Failed
0213 Payment can not be processed Fee type must not be empty Failed
0288 Payment can not be processed Transaction is being processed Need To Check
81 Throw an exception* (*All error description) Need To Check
Null Null Null Need To Check
- Get HTML Response   Need to Check

Check Status

Code Code Description
0300 Cek Status sukses
0304 Data Cek Status ada yang kosong
0307 Reference Number Not Found
0308 Check Status gagal
0900 Request Success
0901 Not a VA
0902 Request Timeout
0903 Not Found

Postman Collection

Ini adalah langkah terakhir untuk mengintegrasikan BRIAPI ke dalam aplikasi Anda. Semua endpoint dalam BRIAPI berbasis REST dan menggunakan format JSON. Kami merekomendasikan penggunaan Postman untuk memudahkan integrasi dengan API kami.

Postman Collection

Silakan unduh Postman collection untuk mencoba menggunakan semua layanan dalam direct-debit.

Postman Environment

Silakan unduh Postman environment untuk memasukkan data consumer key dan consumer secret Anda. Impor file yang telah diunduh ke dalam Postman Anda.

Isi bagian id_key dengan Consumer Key dan secret_key dengan Consumer Secret Anda.

Input Key and Secret

Setelah selesai mengimpor dan mengisi key dan secret Anda bisa mulai melakukan permintaan layanan BRIAPI. Pertama-tama, klik permintaan Get Token. Setiap endpoint akan memeriksa apakah token ini resmi atau tidak.

Input Key and Secret

 

 

 

Other Bank Fund Transfer

API ini memungkinkan Anda untuk melakukan transfer dana dari rekening BRI ke rekening bank lain. Akun sumber harus akun rekening perusahaan Anda.

Account Validation

Endpoint ini digunakan untuk memvalidasi akun rekening tujuan yang akan ditransfer.

curl -X GET 'https://partner.api.bri.co.id/sandbox/v2/transfer/external/accounts?bankcode=014&beneficiaryaccount=12345678' \
  -H 'Authorization: Bearer {{TOKEN}}' \
  -H 'BRI-Signature: {{SIGNATURE}}' \
  -H 'BRI-Timestamp: {{TIMESTAMP}}'

Contoh respon:

{
  "responseCode": "0600",
  "responseDescription": "Transaksi Anda Sukses",
  "Name": "DUMMY ACCOUNT"
}

HTTP Request

GET https://partner.api.bri.co.id/sandbox/v2/transfer/external/accounts?
bankcode={{BANK_CODE}}&beneficiaryaccount={{BENEFICIARY_ACCOUNT}}

Query Parameters

Parameter Type Max Char Mandatory Description
bankcode Numeric 3 Yes Destination bank code
beneficiaryaccount Numeric 15 Yes Destination bank account number

Transfer

Endpoint ini digunakan untuk mentransfer dana dari rekening BRI ke rekening bank lain. Jumlah maksimum batas total transaksi dan batas harian akan ditentukan oleh BRI. Sumber rekening tidak bisa menggunakan virtual account.

curl -X POST 'https://partner.api.bri.co.id/sandbox/v2/transfer/external' \
  -H 'Authorization: Bearer {{TOKEN}}' \
  -H 'BRI-Signature: {{SIGNATURE}}' \
  -H 'BRI-Timestamp: {{TIMESTAMP}}' \
  -H 'Content-Type: application/json' \
  -d '{
    "noReferral":"20180212006",
    "bankCode":"014",
    "sourceAccount":"888801000003301",
    "beneficiaryAccount":"12345678",
    "beneficiaryAccountName":"DUMMY ACCOUNT",
    "Amount":"10002.00"
}'

Contoh respon:

{
  "responseCode": "0700",
  "responseDescription": "Transaksi Anda Sukses",
  "errorDescription": "",
  "JurnalSeq": "0024473"
}

HTTP Request

POST https://partner.api.bri.co.id/sandbox/v2/transfer/external

Request Header

Key Value Mandatory
Content-Type application/json Yes

Request Body

Field Data Type Max Char Mandatory Description
NoReferral String 20 Yes Unique reference number from sender
bankCode Numeric 3 Yes Destination bank code
sourceAccount String 15 Yes Source account
beneficiaryAccount String 15 Yes Destination account
beneficiaryAccountName String 40 Yes Destination account name
Amount String 20 Yes Fund transfer amount, format must be #.##, example 10000.00 for ten thousands

List Bank Code

Endpoint ini digunakan untuk menampilkan daftar kode bank lain yang dapat Anda jadikan rekening tujuan transfer

curl -X GET 'https://partner.api.bri.co.id/sandbox/v2/transfer/external/accounts' \
  -H 'Authorization: Bearer {{TOKEN}}' \
  -H 'BRI-Signature: {{SIGNATURE}}' \
  -H 'BRI-Timestamp: {{TIMESTAMP}}'

Contoh respon:

{
  "responseCode": "00",
  "responseDescription": "SUCCESS",
  "errorDescription": "",
  "Data": [
    {
        "BankCode": "008",
        "Bankname": "BANK MANDIRI"
    }, {
        "BankCode": "009",
        "Bankname": "BANK BNI"
    }
  ]
}

HTTP Request

GET https://partner.api.bri.co.id/sandbox/v2/transfer/external/accounts

Response Codes

BRI menggunakan response code HTTP konvensional untuk menunjukkan apakah permintaan API yang dilakukan sukses atau gagal. Secara umum: Kode dengan awalan 2xx menunjukkan permintaan sukses. Kode dengan awalan 4xx menunjukkan kesalahan pada data yang disediakan (misalnya, parameter yang diperlukan tidak lengkap, pengisian daya gagal, dll.). Kode dalam rentang 5xx menunjukkan kesalahan pada server BRI (ini jarang terjadi).

Inquiry

Code Code Description
0601 Beneficiary account must be a number
0602 Bank code/beneficiary account must not be empty
0603 Bank code must be a number
0604 Your IP & key has not been registered
0605 This feature cannot be used
0606 Transaction failed during standing mode
0607 Connection lost
0608 Transaction timeout
0609 Beneficiary account not found
0610 Transaction timeout
0611 Duplicate sequence transaction
0612 Debit account number not found
0613 Connection lost
0614 Insufficient balance
0615 Duplicate sequence transaction
0616 Transaction exceeds the limit
0617 Brinets connection is lost
0618 Close account number
0619 Passive account number
0620 Transaction is being processed

Transfer

Code Code Description Transaction Status
0701 Source account/beneficiary account must be a number Failed
0702 Payment data must not be empty Failed
0703 Amount must be a number Failed
0704 Amount must be more than 0 Failed
0705 Reference number is already used Failed
0706 Bank code must be a number Failed
0707 Connection lost, didn't get any response. Please try again Need To Check
0708 Incorrect beneficiary account name Failed

Postman Collection

Ini adalah langkah terakhir untuk mengintegrasikan BRIAPI ke dalam aplikasi Anda. Semua endpoint dalam BRIAPI berbasis REST dan menggunakan format JSON. Kami merekomendasikan penggunaan Postman untuk memudahkan integrasi dengan API kami.

Postman Collection

Silakan unduh Postman collection untuk mencoba menggunakan semua layanan dalam direct-debit.

Postman Environment

Silakan unduh Postman environment untuk memasukkan data consumer key dan consumer secret Anda. Impor file yang telah diunduh ke dalam Postman Anda.

Isi bagian id_key dengan Consumer Key dan secret_key dengan Consumer Secret Anda.

Input Key and Secret

Setelah selesai mengimpor dan mengisi key dan secret, Anda bisa mulai melakukan permintaan layanan BRIAPI. Pertama-tama, klik permintaan Get Token. Setiap endpoint akan memeriksa apakah token ini resmi atau tidak.

Input Key and Secret