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.
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×tamp=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 to
|
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. |