BRIVA Push Notification

 

API Information

Judul

API Docs BRIVA Push Notification

Versi

v1.0

URL Sandbox

-

URL Production

-

Version Control

API Version

Tanggal

Link to document

Deskripsi

v1.0 22 Februari 2022 this pages Baseline version.

Product Description

Product Overview

Fitur ini akan memberikan notifikasi kepada partner ketika terdapat pembayaran virtual account.

Akan ada case dimana waktu transaksi pada field “transactionDateTime” saat notifikasi dan get report pada field “paymentDate” memiliki perbedaan waktu pada transaksinya. Apabila mengalami case tersebut maka hal yang perlu menjadi catatan adalah transactionDateTime pada notifikasi merupakan waktu ketika mengirimkan notifikasi transaksinya dan pada paymentDate di get report adalah waktu ketika transaksi tersebut masuk ke proses pembukuan.

Flow API

push notif flow api

Notifikasi

Endpoint Description

Fitur ini akan memberikan notifikasi kepada partner ketika terdapat pembayaran virtual account. Notifikasi ini tidak terdapat proses untuk retry ketika gagal melakukan flagging, sehingga kami sarankan agar tetap melakukan validasi get report untuk transaksi yang telah dibayar tetapi tidak mendapatkan notifikasi Untuk menggunakan fitur ini, partner harus menyediakan url endpoint untuk menerima notifikasi dari BRI, dengan spesifikasi sebagai berikut:

General Information

HTTP Method POST
Path Provided by Partner
Tipe Format JSON
Authentication  

Header Structure

Key

Value

Mandatory

 Length

  Deskripsi

Contoh

BRI-Signature

alphanum

M (Mandatory)

 

Signature

https://developers.bri.co.id
/docs/authenticationi#signature

 

BRI-Timestamp

alphanum

M (Mandatory)

 

Timestamp

 

Request Structure

Field

Data Type

Mandatory

 Length

  Deskripsi

Contoh

brivaNo

String

M

18

VA Number : [CorporateCode]*+[CustomerCode]** *[Corporate Code] : corporate code created by BRI (numeric[5]) **[Customer Code] : customer code created by 3rd parties (Numeric [Max 13])

 

billAmount

String

M

18

The amount of the bill

 

transactionDateTime

String

M

10

Inquiry request time (Format:yyyyMMddHHmmss)

 

journalSeq

String

M

30

Unique ID for each transaction

 

terminalId

String

M

2

Channel ID

1 : Teller
2 : ATM
3 : IB
4 : SMSB
5 : CMS
6 : EDC
7 : RTGS
8 : OTHER
9 : API
 

Response Structure

Field

Data Type 

Mandatory

Length

 Deskripsi

Contoh

responseCode

String

M

 

0000 = Success

0102 = Invalid Signature

 

responseDescription

String

M

     

Request & Response Payload Sample

Request

{
   "brivaNo":"8888001256798654",
   "billAmount":"22000",
   "transactionDateTime":"20201005102753",
   "journalSeq":"2027912345671234567",
   “terminalId”:”1”
}
curl --location -g --request POST '{url}/api/v1.0/notification' \
--header 'BRI-Signature: VaJc6t6Bqjewhgia+QvNoTAEBgX9eEhaBYxPAhSulEM=' \
--header 'BRI-Timestamp: 2021-08-26T09:40:48.818Z' \
--header 'Content-Type: application/json' \
--data-raw '{
 "brivaNo": "8888001256798654",
 "billAmount": "22000",
 "transactionDateTime": "20201005102753",
 "journalSeq": "2027912345671234567",
“terminalId”:”1”
}

Normal Response

{   
    "responseCode": "0000",
    "responseDescription": "Success"
}

Error Response

{
  "responseCode": "0102",
  "responseDescription": "Invalid Signature"
}

Briva WS Notif adalah service yang disediakan oleh BRI untuk memberikan notifikasi kepada partner ketika terdapat pembayaran virtual account.

Agar partner mendapatkan notifikasi dari BRI, terdapat beberapa spesifikasi yang harus disesuaikan oleh partner adalah sebagai berikut:

  1. Header Structure Parameter-parameter yang harus disediakan oleh partner pada header adalah sebagai berikut:
    • BRI-Signature Untuk memastikan bahwa data yang dikirimkan adalah asli dan tidak dapat disanggah, dari sisi kami akan mengirimkan signature dan harus diverifikasi oleh partner. Cara membuat signature, partner dapat merefer ke halaman web https://developers.bri.co.id/docs/documentation#signature.
    • BRI-Timestamp Waktu saat mengirimkan request API. Format waktu harus mengikuti format ISO8601 (yyyy-MM-ddTHH:mm:ss.SSSZ).
    • Content-Type Type JSON pada Content-Type dilengkapi dengan application/json.

 

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 Key sebagai kuncinya. Kemudian, akan dilakukan enkripsi dari signature ini dengan menggunakan Base64. Hasil akhirnya akan diletakkan di atribut BRI-Signature di Header.

Payload

Payload tergabung dari path, verb, token, timestamp, and body. Contoh payload:

path=https://service-vendor.tcd-dev.id/api/briapi/request-inquiry&verb=GET&token=Bearer R04XSUbnm1GXNmDiXx9ysWMpFWBr ×tamp=2019-01-02T13:14:15.678Z&body=

 

Detailnya akan dijelaskan di bawah ini:

1. Path

Nilai dari path diperoleh dari URL partner yang di hit BRI

Contoh:

https://service-vendor.tcd-dev.id/api/briapi/request-inquiry

2. Verb

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

3. Token

Token yang digunakan diambil dari Consumer Key pengguna layanan.

Contoh:

Bearer R04XSUbnm1GXNmDiXx9ysWMpFWBr

4. Timestamp

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

Contoh:

2019-01-02T13:14:15.678Z

Timestamp must be in UTC or GMT +0 timezone

5. Body

Body saat mengirimkan request API . Contoh:

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

Jika tidak ada body requestnya, misalkan menggunakan method GET, biarkan saja kosong. Contoh:

&body=

Parameter-parameter yang harus disediakan oleh partner pada body request adalah sebagai berikut:

  • brivaNo, adalah nomor virtual account, String dengan maksimal karakter adalah 14. Ketentuan Nomor VA :
    [CorporateCode]*+[CustomerCode]** *
    [CorporateCode]
    : kode perusahaan yang dibuat oleh BRI (numeric [5])
    [CustomerCode] : kode pelanggan yang dibuat oleh 3rd party (numeric [Max 13 karakter])
  • billAmount, adalah jumlah tagihan, String dengan maksimal karakter adalah 18
  • transactionDateTime, adalah waktu saat request inquiry, dengan format: yyyyMMddHHmmss
  • journalSeq, adalah ID unik yang dimiliki oleh setiap transaksi, String dengan maksimal karakter adalah 30.
  • terminalId, adalah channel pembayaran yang ada di BRI, String dengan maksimal karakter adalah 1.

List of Error/Response Code

HTTP Status Kode Status Respon Deskripsi Deskripsi
200 0000 Success Success  
400 0102 Failed Invalid Signature  

Simulation

Rekonsiliasi

Pengguna layanan diwajibkan melakukan rekonsiliasi setiap hari terutama untuk pengecekkan transaksi yang bersifat anomali.
Untuk rekonsiliasi dapat menggunakan beberapa opsi sebagai berikut :

  1. Using Get Report Date BRIVA API
  2. Using Get Report Time BRIVA API
  3. Using Account Statement v2.0 API
  4. Using MT940 after the day of transaction