APIDOCS Oauth SNAP BI (Internal version v1.1)

Access Token and Signature

Informasi API

Title Oauth SNAP BI
Version v1.0
URL Sandbox https://sandbox.partner.api.bri.co.id
URL Production  

Kendali Versi 

Versi API Tanggal  Tautan Dokumen  Deskripsi
v1.0 2 December 2021 Halaman ini. Baseline version.

v2.0

18 April 2022

Halaman ini.

Update Field Format

Deskripsi Produk

Gambaran Produk

Fitur ini berfungsi untuk mendapatkan access token yang berfungsi sebagai otentikasi saat ingin mengakses API yang lain

Endpoint

A. Get Token

Endpoint Description

Fitur ini digunakan untuk mendapatkan access token yang berfungsi sebagai otentikasi saat ingin mengakses API yang lain. Get token ini bisa diakses setiap minimal 10 atau hingga 15 menit sekali untuk mendapatkan access token . partner tidak  disarankan melakukan  get token  setiap  akan mengakses  endpoint pada setiap layanan produk

General Information

HTTP Method POST
Path /snap/v1.0/access-token/b2b
Tipe Format JSON
Authentication Digital Signature

Header Structure 

Key

Value

Format

Mandatory

Length

Deskripsi

Contoh

X-SIGNATURE

 

 

M

 

Dengan algoritma asymmetric signature SHA256withRSA

 

(Private_Key, stringToSign). stringToSign = client_ID + “|” + X-TIMESTAMP

 

X-CLIENT-KEY

 

Alphanumeric

M

 

Client’s client_id (Nama PJP) (diberikan pada saat proses registrasi selesai

)

 

X-TIMESTAMP

 

Datetime

M

 

Waktu lokal klien saat ini yyyy-MM- ddTHH:mm:ss.SSSTZD format

 

Content-Type

application

/json

 

M

 

 

 

Request Structure

Field

Data Type

Format

Mandatory

Length

Deskripsi

Contoh

grantType

String

Alphabet

M

 

“client_credentials” : klien dapat meminta token akses hanya menggunakan kredensial kliennya ( atau cara otentikasi lain yang didukung) ketika klien meminta akses ke sumber daya yang dilindungi di bawah kendalinya (OAuth 2.0: RFC 6749 & 6750)

client_credentials

Response Structure

Field

Data Type

Format

Mandatory

Length

Deskripsi

Contoh

responseCode

String

Numeric

C

 

Kode respon

 

response Message

String

Alphabet

C

 

Respon deskripsi

 

accessToken

String

Alphanumeric

M

 

Jenis token akses menyediakan klien dengan informasi yang diperlukan untuk berhasil menggunakan token akses untuk melindungi resource request (bersama dengan atribut tipe- spesifik) Tipe jenis token: • “Bearer”: termasuk token akses string saat request • “Mac”: mengeluarkan pesan kunci kode otentikasi (MAC) bersama dengan token akses yang digunakan untuk menandatangani komponen tertentu dari permintaan HTTP Referensi: OAuth2.0 RFC 6749 & 6750

 

Token Type

String

Alphabet

M

 

 

 

expiresIn

String

Alphanumeric

M

 

Sesi berakhir dalam hitungan detik : 900 (15 menit)

 

Request & Response Payload Sample

Request :

    {
        "grantType": "client_credentials"
    } 

Normal Response :

{
    "accessToken": "jwy7GgloLqfqbZ9OnxGxmYOuGu85",
    "tokenType": "BearerToken",
    "expiresIn": "899"
}    

Error Response :

{
    "responseCode": "4007301",
    "responseMessage": "Invalid Field Format"
}

List of Error/Response Code

HTTP Status Code Status Response Description Deskripsi
200 - Success -  
400 4007300 Failed Bad Request  
400 4007301 Failed Invalid Field Format  
401 4017300 Failed Unauthorized Client  
401 4017300 Failed Unauthorized stringToSign  
401 4017300 Failed Unauthorized Signature  
401 4017301 Failed Invalid Token (B2B)  
500 500000 Failed General Error  

B. Signature API Access

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 HMAC_SHA512 dengan clientSecret sebagai kuncinya. 

 

Payload

Payload tergabung dari verb, path, token, timestamp, and body. Dengan format Symetric-Signature:

HMAC_SHA512 (clientSecret, stringToSign) dengan formula stringToSign = HTTPMethod+”:“+ EndpointUrl +":"+ AccessToken+":“

+ Lowercase(HexEncode(SHA-256(minify(RequestBody))))+ ":“ +TimeStamp

Contoh payload:

POST:/snap/v1.0/dummy:muhpwhwOkPRU9nNXYnyYHj8t54x3:8b4e9e83b5231cff4f84358ec8ca81951cfe9f999f635b1566452a501d5c23b2:2021-11-29T09:22:18.172+07:00

Detailnya akan dijelaskan dibawah ini:

1. Path

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

Contoh: 

/snap/v1.0/dummy

2. Verb

HTTP method harus menggunakan huruf kapital, i.e. GET, POST, PUT, PATCH, and DELETE.

3. Token

Token yang digunakan diambil dari header Authorization. 

Contoh:

Bearer R04XSUbnm1GXNmDiXx9ysWMpFWBr

4. Timestamp

Waktu saat mengirimkan request API. Format waktu harus mengikuti ISO8601 format (yyyy-MM-ddTHH:mm:ss.SSSZ).

Contoh:

2021-11-02T13:14:15.678+07:00

Timestamp must be in UTC or GMT +0 timezone.

5. Body

Body saat mengirimkan request API. Lowercase(HexEncode(SHA-256(minify(RequestBody))))

Contoh: &body={"hello":"world"}

Hasil SHA256 : muhpwhwOkPRU9nNXYnyYHj8t54x3

Jika tidak terdapat  body request, contoh menggunakan metode GET, biarkan saja kosong.

Contoh: &body=