Dokumentasi

BRIAPI adalah Application Programming Interfaces (APIs) yang dikembangkan oleh BRI untuk memungkinkan integrasi antara aplikasi Anda dan layanan BRI. BRIAPI memungkinkan perusahaan Anda untuk memudahkan pengalaman bertransaksi bagi pelanggan Anda.

Autentikasi

BRIAPI menggunakan OAuth 2 framework sebagai proses otorisasi dalam menentukan hak akses pihak ketiga. Sebelum melakukan proses API request ke produk BRIAPI, Anda harus mendapatkan token dengan cara memanggil endpoint Get Token.

Sebagai tambahan penjagaan keamanan dalam setiap API request, BRIAPI menggunakan signature untuk memastikan bahwa data di dalam setiap request dan response tidak bisa dibajak dan ditiru oleh pengguna yang tidak sah. Signature ini dihasilkan dengan menggunakan algoritma SHA256-HMAC.

Parameter di bawah ini harus disertakan dalam header request di setiap panggilan API (kecuali untuk endpoint Get Token):

Key Value
Authorization Bearer {{TOKEN}}
BRI-Signature {{SIGNATURE}}
BRI-Timestamp {{TIMESTAMP}}

Token

Endpoint ini digunakan untuk menghasilkan token yang harus disertakan di setiap panggilan API. Letakkan token ini pada atribut Authorization yang ada di Header.

Masa berlaku token ini adalah 50 jam. Anda dapat membuat token berulang kali tanpa membuat token sebelumnya menjadi tidak berlaku, selama belum kadaluarsa (belum lebih dari 50 jam).

HTTP Request

POST https://sandbox.partner.api.bri.co.id/oauth/client_credential/accesstoken?grant_type=client_credentials

Request Header

Key Value Mandatory
Content-Type application/x-www-form-urlencoded Yes

Request Body

Field Data Type Mandatory Deskripsi
client_id string Yes Consumer key
client_secret string Yes Consumer secret

Contoh Request


curl --location --request POST 'https://sandbox.partner.api.bri.co.id/oauth/client_credential/accesstoken?grant_type=client_credentials' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'client_id=xxxxxxxxxxxxxxxxxxx7kuJAyQkWpt' \
--data-urlencode 'client_secret=123xxxxxxxxxxxxxOx'

Contoh Response

{
	"refresh_token_expires_in": "0",
	"api_product_list": "[inquiry-sandbox]",
	"api_product_list_json": [
		"inquiry-sandbox"
	],
	"organization_name": "bri",
	"developer.email": "furkorsan.gantheng@xyz.com",
	"token_type": "BearerToken",
	"issued_at": "1557891212144",
	"client_id": "8E20dpP7KtakFkShw5tQHOFf7FFAU01o",
	"access_token": "R04XSUbnm1GXNmDiXx9ysWMpFWBr",
	"application_name": "317d0b2f-6536-4cac-a5f0-3bc9908815b3",
	"scope": "",
	"expires_in": "179999",
	"refresh_count": "0",
	"status": "approved"
}

Signature

Signature memastikan data yang dikirimkan adalah asli dan tidak bisa disanggah. Signature dihasilkan oleh pemakai layanan dan diverifikasi oleh penerima layanan.

Signature dibentuk dari payload yang sudah ditentukan, dengan mengimplementasikan algoritma SHA256-HMAC dengan Consumer Secret sebagai kuncinya. Kemudian, akan dilakukan enkripsi dari signature ini dengan menggunakan Base64. Hasil akhirnya akan diletakkan di atribut BRI-Signature di Header.

Payload

Payload terdiri dari path, verb, token, timestamp, dan body. Contoh payload:


path=/v1/inquiry/888801000157508&verb=GET&token=Bearer R04XSUbnm1GXNmDiXx9ysWMpFWBr&timestamp=2019-01-02T13:14:15.678Z&body=

Detail setiap elemen di dalam payload dijelaskan di bawah ini:

Payload Deskripsi Contoh
Path

Value pada path yaitu URL setelah hostname dan port tanpa Query Parameters

from https://sandbox.partner.api.bri.co.id/v1/transfer/internal?noreferral=12345

to

/v1/transfer/internal

Verb Metode HTTP dalam huruf besar GET, POST, PUT, PATCH, and DELETE.
Token Token digunakan untuk Authorization header. Bearer R04XSUbnm1GXNmDiXx9ysWMpFWBr

Note: Jangan lupa untuk menambahkan Bearer sebelum Token
Timestamp Timestamp saat Anda memanggil API. Format Timestamp harus mengikuti format ISO8601 (yyyy-MM-ddTHH:mm:ss.SSSZ) dan harus dalam offset UTC nol. 2019-01-02T13:14:15.678Z

Note: Timestamp harus dalam format UTC atau GMT +0 timezone.
Body Request body yang dikirim untuk API Call &body={"hello":"world"}Jika tidak ada request body, seperti hit GET, maka biarkan kosong. &body=

Note: Ketahuilah bahwa Anda harus memasukkan body yang sama persis dengan yang Anda kirim. Karena perbedaan huruf, spasi, dan garis dapat menyebabkan perbedaan Signature.

Signature Simulation

Kami telah membuat script untuk Postman collection dan environment untuk menghasilkan signature. Pada collection tersebut, Anda dapat menemukan payload yang sesuai dan signature yang dihasilkan setiap Anda membuat panggilan API.