Documentation

BRIAPI adalah Antarmuka Pemrograman Aplikasi (API) yang dikembangkan oleh BRI yang memungkinkan aplikasi Anda terintegrasi dengan layanan perbankan BRI dengan mudah dan cepat. BRIAPI membantu perusahaan Anda menyederhanakan segala aktivitas keuangan untuk pelanggan Anda.

Documentation Image
Permudah Bisnis Anda dengan BRIAPI

Tonton videonya dan lihat bagaimana BRIAPI dapat membuat bisnis Anda lebih efisien dengan layanan Non SNAP API.

 

Autentikasi

BRIAPI menggunakan OAuth 2framework 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 tokenyang 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": "foo.bar@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 Secretsebagai 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:1
4: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.