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.