Dokumentasi
Raya API adalah Application Programming Interfaces (APIs) yang dikembangkan Bank Raya untuk memungkinkan integrasi antara aplikasi Anda dan layanan Bank Raya. Raya API memungkinkan perusahaan Anda memberikan pengalaman kemudahan bertransaksi bagi pelanggan.
Autentikasi
Raya API menggunakan OAuth 2 framework sebagai proses otorisasi dalam menentukan hak akses pihak ketiga. Sebelum melakukan permintaan (request) API ke produk Raya API, Anda harus mendapatkan token dengan cara request endpoint Get Token.
Sebagai tambahan keamanan dalam setiap API request, Raya API 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 HMAC_SHA512.
Parameter di bawah ini harus disertakan dalam header permintaan (request) di setiap panggilan API (kecuali untuk endpoint Get Token):
Key | Value |
---|---|
Accept | Application/json |
Content-type | Application/json |
Authorization | Bearer <String: Token> |
X-SIGNATURE | <String: Signature> |
X-TIMESTAMP | <String: Timestamp> |
X-PARTNER-ID | <String: Partner ID> |
X-EXTERNAL-ID | <String: External ID> |
CHANNEL-ID | <String: Channel ID> |
Token
Endpoint ini untuk menghasilkan token yang harus disertakan di setiap panggilan API. Letakkan token ini pada atribut Authorization yang ada di Header.
HTTP Request
POST https://api.sandbox.bankraya.co.id/oauth/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://api.sandbox.bankraya.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": "bankraya",
"developer.email": "[email protected]",
"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 dibentuk dari payload yang sudah ditentukan, dengan Symmetric-Signature format: HMAC_SHA512 (clientSecret, stringToSign) dan formula stringToSign = HTTPMethod+”:“+ EndpointUrl +":"+ AccessToken+":“+ Lowercase(HexEncode(SHA-256(minify(RequestBody))))+ ":“ +TimeStamp"
Hasil akhirnya akan diletakkan di atribut X-SIGNATURE di Header.
Payload
Payload terdiri dari path, verb, path, token, timestamp, dan body. Contoh payload:
POST:/snap/v1.0/balance-inquiry:PyzdfxJfX9J9031yRvlgHlGe0RK9:2e7f527e3a923fd906168cf4d2dd132eb080f2189a0e08935083bb6122925527:2022-12-09T03:45:20.741Z
Elemen Payload
Nama | Deskripsi | Contoh |
---|---|---|
Path | Value in path i.e. URL after hostname and port without Query Parameters |
from https://api.sandbox.bankraya.co.id/snap/v1.0/balance-inquiry to /snap/v1.0/balance-inquiry |
Verb | HTTP method in uppercase | GET, POST |
Token | The token is used for the Authorization header | Bearer miGNKBeg1H9efJ75kQAvbnbGRdGZ |
Timestamp | Timestamp when you call the API. Timestamp format must follow ISO8601 format (yyyy-MM-ddTHH:mm:ss.SSSZ) | 2022-08-09T13:47:56.726Z |
Body | Request body that used for API Call |
{"accountNo":"001001000060300"} Note: Be aware that you must enter the exact same body you are submitting. Due to the difference in letters, spaces, and lines may cause different Signatures. |