QRIS Merchant Presented Mode (MPM) Statis
Apa itu QRIS Merchant Presented Mode (MPM) STATIS?
Quick Response Code Indonesian Standard atau disingkat QRIS (dibaca KRIS) adalah penyatuan berbagai macam QR dari berbagai Penyelenggara Jasa Sistem Pembayaran (PJSP) menggunakan QR Code. QRIS dikembangkan oleh industri sistem pembayaran bersama dengan Bank Indonesia agar proses transaksi dengan QR Code dapat lebih mudah, cepat, dan terjaga keamanannya.
Dengan QRIS, seluruh aplikasi pembayaran dari Penyelenggara manapun baik bank dan nonbank yang digunakan masyarakat, dapat digunakan di seluruh toko, pedagang, warung, parkir, tiket wisata, donasi (merchant) berlogo QRIS, meskipun penyedia QRIS di merchant berbeda dengan penyedia aplikasi yang digunakan masyarakat.
QRIS Merchant Presented Mode (MPM) Statis sendiri adalah kode QR yang dapat dicetak dan digunakan terus menerus tanpa harus melakukan generate setiap ada transaksi dan bersifat open payment.
Contoh Penggunaan API QRIS Merchant Presented Mode (MPM) Statis
QRIS Merchant Presented Mode (MPM) Statis cocok digunakan pada merchant usaha mikro dan kecil yang tidak memiliki device seperti printer ataupun edc. Merchant hanya perlu mencetak kode QR selanjutnya dapat menerima pembayaran dari masyarakat menggunakan aplikasi penyelenggara manapun dengan cara melakukan scan, masukkan nominal, masukkan PIN dan klik bayar.
API Information
Title |
QRIS Merchant Presented Mode (MPM) Statis |
---|---|
Version | v1.0 |
URL Sandbox | https//sandbox.partner.api.bri.co.id |
URL Production | https://partner.api.bri.co.id |
Version Control
Versi Dok | Versi API | Tanggal | Link Dokumen | Deskripsi |
---|---|---|---|---|
v1.0 | v1.0 | 18 January 2022 | Halaman ini | Baseline version. |
Product Description
Product Overview
API QRIS Statis digunakan untuk membuat kode QR yang dapat digunakan tanpa batas waktu sehingga cukup sekali cetak kode QR akan dapat digunakan terus menerus. QRIS statis sangat cocok digunakan untuk penggiat bisnis yang menginginkan pembayaran cashless tanpa harus repot menyediakan alat untuk generate kode QR setiap ada transaksi.
Endpoint
A.Authentication
BRIAPI menggunakan OAuth 2 framework 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.
B.Generate URL
Endpoint Description
API Generate URL digunakan untuk generate url login ke system QRIS Statis.
General Information
HTTP Method |
POST |
---|---|
Path |
|
Tipe Format |
JSON |
Authentication |
OAuth 2.0 |
Header Structure
Key |
Value |
Mandatory |
Length |
Description |
Example |
---|---|---|---|---|---|
X-SIGNATURE |
signature |
M |
64 |
- |
|
X-TIMESTAMP |
timestamp |
M |
- |
ISO 8601 format. Timestamp must be in UTC or GMT +0 timezone. |
2021-10-08T03:42:45.379Z |
Content-Type |
application/json |
M |
- |
|
|
Authorization |
Bearer token |
M |
- |
|
|
X-PARTNER-ID |
|
M |
- |
ID Partner yang diprovide oleh partner |
123123 |
X-EXTERNAL-ID |
|
M |
- |
ID External yang bersifat unik pada setiap transaksi |
098761 |
Request Structure
Field |
Data Type |
Mandatory |
Length |
Description |
Example |
---|---|---|---|---|---|
redirectUri |
String |
M |
|
Redirect URL |
https://thirdparty.co.id |
state |
String |
M |
|
State |
121 |
Response Structure
Field |
Data Type |
Mandatory |
Length |
Description |
Example |
---|---|---|---|---|---|
responseCode |
String |
M |
- |
Kode response |
2004700 |
responseMessage |
String |
M |
- |
Keterangan response |
Successful |
url |
String |
M |
- |
URL |
http://xxx.xxx.xxx.xxx/qris-oauth/public/login? token=14c49711e04387cb00406f9d229d0361 |
additionalInfo |
Object |
M |
- |
Isian dari Object additionalInfo ini dijelaskan pada tabel di bawah |
|
Response Structure Object "additionalInfo"
Field |
Data Type |
Mandatory |
Length |
Description |
Example |
---|---|---|---|---|---|
trxType |
String |
M |
- |
Jenis transaksi |
generate_url |
Request & Response Payload Sample
Request :
{ "redirectUri": "https://thirdparty.co.id", "state":"121" }
Normal Response :
{ "responseCode":"2004700", "responseMessage":"Successful", "url": "https://sandbox.partner.api.bri.co.id/v1.0/qr-auth/login/a19038d2f97dcca85d34f5eadaa99aaf", "additionalinfo": { "trxType": "generate_url" } }
Error Response :
{ "responseCode": "5004700", "responseMessage": "General Error" }
List of Error/Response Code
HTTP Status |
Code |
Status |
Response Description |
Description |
---|---|---|---|---|
200 |
2004700 |
Success |
Successful |
Sukses generate url login ke system QRIS Statis. |
500 |
5004700 |
Failed |
General Error |
General Error |
500 |
5004701 |
Failed |
Unknown Error |
Error yang lainnya |
Seluruh response error yang tidak tercantum dalam list response BRIAPI memiliki status pending dan perlu dilakukan pengecekan
C.Get Merchant Key
Get Merchant Key
Endpoint Description
API Get Merchant Key digunakan untuk get merchant key dari code hasil login.
General Information
HTTP Method |
POST |
---|---|
Path |
|
Type Format |
JSON |
Authentication |
OAuth 2.0 |
Header Structure
Key |
Value |
Mandatory |
Length |
Description |
Example |
---|---|---|---|---|---|
X-SIGNATURE |
signature |
M |
64 |
- |
|
X-TIMESTAMP |
timestamp |
M |
- |
ISO 8601 format. Timestamp must be in UTC or GMT +0 timezone. |
2021-10-08T03:42:45.379Z |
Content-Type |
application/json |
M |
- |
|
|
Authorization |
Bearer token |
M |
- |
|
|
X-PARTNER-ID |
|
M |
- |
ID Partner yang diprovide oleh partner |
123123 |
X-EXTERNAL-ID |
|
M |
- |
ID External yang bersifat unik pada setiap transaksi |
098761 |
Request Structure
Field |
Data Type |
Mandatory |
Length |
Description |
Example |
---|---|---|---|---|---|
code |
String |
M |
- |
Kode |
123456789012345678901 234567890AB |
Response Structure
Field |
Data Type |
Mandatory |
Length |
Description |
Example |
---|---|---|---|---|---|
responseCode |
String |
M |
- |
Kode response |
2004700 |
responseMessage |
String |
M |
- |
Keterangan response |
success |
merchantId |
String |
M |
- |
ID merchant |
051035c359b7a5d2858568894065d7 20 |
createdDate |
String |
M |
- |
Waktu dibuat |
2021-12-15 00:00:00 |
token |
String |
M |
- |
Token |
2824dd9df782c7ec86773f128263a467 |
tokenExpired |
String |
M |
- |
Waktu kadaluarsa token |
2021-12-31 01:10:23= |
state |
String |
M |
- |
State |
null |
additionalInfo |
Object |
M |
- |
Isian dari Object additionalInfo ini dijelaskan pada tabel di bawah |
|
Response Structure Object "additionalInfo"
Field |
Data Type |
Mandatory |
Length |
Description |
Example |
---|---|---|---|---|---|
trxType |
String |
M |
- |
Jenis Transaksi |
get_mkey_by_token |
mpan |
String |
M |
- |
MPAN |
9360000200100971691 |
Request & Response Payload Sample
Request :
{ "code":"123456789012345678901234567890AB" }
Normal Response :
{ "responseCode": "2004700", "responseMessage": "success", "merchantId": "051035c359b7a5d2858568894065d720", "createdDate": "2021-12-15 00:00:00", "token": "2824dd9df782c7ec86773f128263a467", "tokenExpired": "2021-12-31 01:10:23", "state": null, "additionalInfo": { "trxType": "get_mkey_by_token", "mpan": "9360000200100971691", } }
Error Response :
{ "responseCode": "4044708", "responseMessage": "Invalid Merchant" }
List of Error/Response Code
HTTP Status |
Code |
Status |
Response Description |
Description |
---|---|---|---|---|
200 |
2004700 |
Success |
Successful |
Sukses get merchant key dari code hasil login |
404 |
4044708 |
Failed |
Invalid Merchant |
Merchant tidak sesuai |
500 |
5004701 |
Failed |
Unknown Error |
Error yang lainnya |
Seluruh response error yang tidak tercantum dalam list response BRIAPI memiliki status pending dan perlu dilakukan pengecekan
D.Get QR By Merchant Key
Endpoint Description
API Get QR By Merchant Key digunakan untuk generate QR statis berdasarkan merchant key.
General Information
HTTP Method |
POST |
---|---|
Path |
|
Type Format |
JSON |
Authentication |
OAuth 2.0 |
Header Structure
Key |
Value |
Mandatory |
Length |
Description |
Example |
---|---|---|---|---|---|
X-SIGNATURE |
signature |
M |
64 |
- |
|
X-TIMESTAMP |
timestamp |
M |
- |
ISO 8601 format. Timestamp must be in UTC or GMT +0 timezone. |
2021-10-08T03:42:45.379Z |
Content-Type |
application/json |
M |
- |
|
|
Authorization |
Bearer token |
M |
- |
|
|
X-PARTNER-ID |
|
M |
- |
ID Partner yang diprovide oleh partner |
123123 |
X-EXTERNAL-ID |
|
M |
- |
ID External yang bersifat unik pada setiap transaksi |
098761 |
Request Structure
Field |
Data Type |
Mandatory |
Length |
Description |
Example |
---|---|---|---|---|---|
merchantId |
String |
M |
- |
ID Merchant |
223456789012345678901 234567890AB |
Response Structure
Field |
Data Type |
Mandatory |
Length |
Description |
Example |
---|---|---|---|---|---|
responseCode |
String |
M |
- |
Kode response |
2004700 |
responseMes sage |
String |
M |
- |
Keterangan response |
Request has been processed successfully |
referenceNo |
String |
M |
- |
Nomor referensi |
2020102977770000000009 |
partnerRefere nceNo |
String |
M |
- |
Nomor referensi partner |
2020102900000000000001 |
qrContent |
String |
M |
- |
Konten QR |
https://www.investopedia.com/terms/q/quick-response-qr-code.asp |
qrImage |
String |
M |
- |
Gambar QR |
TWFuIGlzIGRpc3Rpbmd1aXNoZWQsIG5vdCBvbmx5IGJ5IGhp cyByZWFzb24sIGJ1dCAuLi4= |
merchantName |
String |
M |
- |
Nama merchant |
Baso Malang |
additionalInfo |
Object |
M |
- |
Isian dari Object additionalInfo ini dijelaskan pada tabel di bawah |
|
Response Structure Object "additionalInfo"
Field |
Data Type |
Mandatory |
Length |
Description |
Example |
---|---|---|---|---|---|
trxType |
String |
M |
- |
Jenis Transaksi |
GetQRByMkey |
merchantCity |
String |
M |
- |
Lokasi merchant |
BANYUWANGI |
Request & Response Payload Sample
Request :
{ "merchantId": "223456789012345678901234567890AB" }
Normal Response :
{ "responseCode": "2004700", "responseMessage": "Request has been processed successfully", "referenceNo": "2020102977770000000009" "partnerReferenceNo": "2020102900000000000001", "qrContent": "https://www.investopedia.com/terms/q/quick-response-qr-code.asp", "qrImage": "TWFuIGlzIGRpc3Rpbmd1aXNoZWQsIG5vdCBvbmx5IGJ5IGhpcyByZWFzb24sIGJ1dCAuLi4=", "merchantName": "Baso Malang", "additionalInfo": { "trxType": "GetQRByMkey", "merchantCity": "BANYUWANGI" } }
Error Response :
{ "responseCode": "4044708", "responseMessage": "Invalid Merchant" }
List of Error/Response Code
HTTP Status |
Code |
Status |
Response Description |
Description |
---|---|---|---|---|
200 |
2004700 |
Success |
Successful |
Sukses generate QR statis berdasarkan merchant key |
404 |
4044708 |
Failed |
Invalid Merchant |
Merchant tidak sesuai |
500 |
5004701 |
Failed |
Unknown Error |
Error yang lainnya |
Seluruh response error yang tidak tercantum dalam list response BRIAPI memiliki status pending dan perlu dilakukan pengecekan
E.List Transaction By Five Merchant Key
Endpoint Description
API List Transaction By Last Five Merchant Key digunakan untuk get lima data terakhir transaksi QRIS Statis.
General Information
HTTP Method |
POST |
---|---|
Path |
|
Type Format |
JSON |
Authentication |
OAuth 2.0 |
Header Structure
Key |
Value |
Mandatory |
Length |
Description |
Example |
---|---|---|---|---|---|
X-SIGNATURE |
signature |
M |
64 |
- |
|
X-TIMESTAMP |
timestamp |
M |
- |
ISO 8601 format. Timestamp must be in UTC or GMT +0 timezone. |
2021-10-08T03:42:45.379Z |
Content-Type |
application/json |
M |
- |
|
|
Authorization |
Bearer token |
M |
- |
|
|
X-PARTNER-ID |
|
M |
- |
ID Partner yang diprovide oleh partner |
123123 |
X-EXTERNAL-ID |
|
M |
- |
ID External yang bersifat unik pada setiap transaksi |
098761 |
Request Structure
Field |
Data Type |
Mandatory |
Length |
Description |
Example |
---|---|---|---|---|---|
merchantId |
String |
M |
- |
ID Merchant |
323456789012345678901 234567890AB |
Response Structure
Field |
Data Type |
Mandatory |
Length |
Description |
Example |
---|---|---|---|---|---|
responseCode |
String |
M |
- |
Kode response |
2004700 |
responseMessage |
String |
M |
- |
Keterangan response |
Request has been processed successfully |
transactionList |
Array |
M |
- |
Isian dari Array transactionList ini dijelaskan pada tabel dibawah |
|
additionalInfo |
Object |
M |
- |
Isian dari Object additionalInfo ini dijelaskan pada tabel di bawah |
|
Response Structure Array"transactionList"
Field |
Data Type |
Mandatory |
Length |
Description |
Example |
---|---|---|---|---|---|
trxDate |
String |
M |
- |
Waktu transaksi |
2021-12-22 13:53:37 |
referenceNum |
String |
M |
- |
Nomor referensi |
|
id |
String |
M |
- |
ID |
1380149 |
trxAmount |
String |
M |
- |
Jumlah transaksi |
20000 |
issName |
String |
M |
- |
Nama iss |
|
invoiceNumber |
String |
M |
- |
Nomor invoice |
|
cpan |
String |
M |
- |
cpan |
|
Response Structure Object"additionalInfo"
Field |
Data Type |
Mandatory |
Length |
Description |
Example |
---|---|---|---|---|---|
trxType |
String |
M |
- |
Jenis Transaksi |
ListTrxLastFive_mkey |
Request & Response Payload Sample
Request :
{ "merchantId": "051035c359b7a5d2858568894065d720" } { { "trxDate": "2021-12-22 13:53:37", "referenceNum": null, "id": 1380149, "trxAmount": "20000", "issName": null, "invoiceNumber": "0", "cpan": null } { "trxDate": "2021-12-22 13:49:47" "referenceNum": null, "id": 1380148, "trxAmount" : "12000", "issName": null, "invoiceNumber": "0", "cpan": null } { "trxDate": "2021-12-22 13:48:39", "referenceNum": null, "id": 1380147, "trxAmount": "12000", "issName": null, "invoiceNumber": null, "cpan": null } { "trxDate": "2021-12-22 13:46:06", "referenceNum": null, "id": 1380146, "trxAmount": "10000", "issName": null, "invoiceNumber": null, "cpan": null } { "trxDate": "2021-12-21 14:43:00", "referenceNum": null, "id": 1380138, "trxAmount": "125000", "issName": null, "invoiceNumber": "0", "cpan": null } ]'
Normal Response :
{ "responseCode": "2004700", "responseMessage": "Request has been processed successfully", "transactionList": }
Error Response :
{ "responseCode": "4044701", "responseMessage": "Transaction Not Found" }
List of Error/Response Code
HTTP Status |
Code |
Status |
Response Description |
Description |
---|---|---|---|---|
200 |
2004700 |
Success |
Successful |
Sukses mendapatkan lima data terakhir transaksi QRIS Statis. |
404 |
4044701 |
Failed |
Transaction Not Found |
Transaksi tidak ditemukan |
404 |
4044708 |
Failed |
Invalid Merchant |
Merchant tidak sesuai |
400 |
4004700 |
Failed |
Bad Request |
Bad Request |
500 |
5004701 |
Failed |
Unknown Error |
Error yang lainnya |
Seluruh response error yang tidak tercantum dalam list response BRIAPI memiliki status pending dan perlu dilakukan pengecekan
F.List Transaction By Merchant Key
Endpoint Description
API List Transaction By Merchant Key digunakan untuk get get data transaksi QRIS Statis.
General Information
HTTP Method |
POST |
---|---|
Path |
|
Type Format |
JSON |
Authentication |
OAuth 2.0 |
Header Structure
Key |
Value |
Mandatory |
Length |
Description |
Example |
---|---|---|---|---|---|
X-SIGNATURE |
signature |
M |
64 |
- |
|
X-TIMESTAMP |
timestamp |
M |
- |
ISO 8601 format. Timestamp must be in UTC or GMT +0 timezone. |
2021-10-08T03:42:45.379Z |
Content-Type |
application/json |
M |
- |
|
|
Authorization |
Bearer token |
M |
- |
|
|
X-PARTNER-ID |
|
M |
- |
ID Partner yang diprovide oleh partner |
123123 |
X-EXTERNAL-ID |
|
M |
- |
ID External yang bersifat unik pada setiap transaksi |
098761 |
Request Structure
Field |
Data Type |
Mandatory |
Length |
Description |
Example |
---|---|---|---|---|---|
merchantId |
String |
M |
- |
ID Merchant |
423456789012345678901 234567890AF |
page |
String |
M |
- |
Halaman |
1 |
limit |
String |
M |
- |
Limit Halaman |
10 |
dateFrom |
String |
M |
- |
Tanggal awal pencarian |
2020-02-06 |
dateUntil |
String |
M |
- |
Tanggal akhir pencarian |
2020-02-07 |
Response Structure
Field |
Data Type |
Mandatory |
Length |
Description |
Example |
---|---|---|---|---|---|
responseCode |
String |
M |
- |
Kode response |
2004700 |
responseMessage |
String |
M |
- |
Keterangan response |
Request has been processed successfully |
transactionList |
Array |
M |
- |
Isian dari Array transactionList ini dijelaskan pada tabel dibawah |
|
page |
Object |
M |
- |
Isian dari Object page ini dijelaskan pada tabel dibawah |
|
additionalInfo |
Object |
M |
- |
Isian dari Object additionalInfo ini dijelaskan pada tabel di bawah |
|
Response Structure Array"transactionList"
Field |
Data Type |
Mandatory |
Length |
Description |
Example |
---|---|---|---|---|---|
trxDate |
String |
M |
- |
Waktu transaksi |
2021-12-22 13:53:37 |
referenceNum |
String |
M |
- |
Nomor referensi |
|
id |
String |
M |
- |
ID |
1380149 |
trxAmount |
String |
M |
- |
Jumlah transaksi |
20000 |
issName |
String |
M |
- |
Nama iss |
|
invoiceNumber |
String |
M |
- |
Nomor invoice |
|
cpan |
String |
M |
- |
cpan |
|
Response Structure Object"page"
Field |
Data Type |
Mandatory |
Length |
Description |
Example |
---|---|---|---|---|---|
totalRecord |
Number |
M |
- |
Total Data |
5 |
totalPage |
Number |
M |
- |
Total Halaman |
1 |
recordPerPage |
String |
M |
- |
Data per halaman |
10 |
currentPage |
String |
M |
- |
Halaman saat ini |
1 |
startRecord |
Number |
M |
- |
Dimulai dari data ke berapa |
1 |
Response Structure Object"additionalInfo"
Field |
Data Type |
Mandatory |
Length |
Description |
Example |
---|---|---|---|---|---|
trxType |
String |
M |
- |
Jenis Transaksi |
ListTrxLastFive_mkey |
Request & Response Payload Sample
Request :
{ "merchantId":"423456789012345678901234567890AF", "page": "1", "limit":"10",` "dateFrom":"2020-02-06", "dateUntil":"2020-02-07" } } ]' "page": { "totalRecord": 5, "totalPage": 1, "recordPerPage": "10", "currentPage": "1", "startRecord": 1 }' "additionalInfo": { "trxType": "ListTrxLastFive_mkey" } }
Normal Response :
{ "responseCode": "2004700", "responseMessage": "Request has been processed successfully", "transactionList": [ { "trxDate": "2021-12-22 13:53:37", "referenceNum": null, "id": 1380149, "trxAmount": "20000", "issName": null, "invoiceNumber": "0", "cpan": null }, { "trxDate": "2021-12-22 13:49:47", "referenceNum": null, "id": 1380148, "trxAmount": "12000", "issName": null, "invoiceNumber": "0", "cpan": null }, { "trxDate": "2021-12-22 13:48:39", "referenceNum": null, "id": 1380147, "trxAmount": "12000", "issName": null, "invoiceNumber": 0, "cpan": null }, { "trxDate": "2021-12-22 13:46:06", "referenceNum": null, "id": 1380146, "trxAmount": "10000", "issName": null, "invoiceNumber": 0, "cpan": null }, { "trxDate": "2021-12-21 14:43:00", "referenceNum": null, "id": 1380138, "trxAmount": "125000", "issName": null, "invoiceNumber": "0", "cpan": null } ], "page": { "totalRecord": 5, "totalPage": 1, "recordPerPage": "10", "currentPage": "1", "startRecord": 1 }, "additionalInfo": { "trxType": "ListTrxLastFive_mkey" } }
Error Response :
{ "responseCode": "4044701", "responseMessage": "Transaction Not Found" }
List of Error/Response Code
HTTP Status |
Code |
Status |
Response Description |
Description |
---|---|---|---|---|
200 |
2004700 |
Success |
Successful |
Sukses mendapatkan data transaksi QRIS Statis |
404 |
4044701 |
Failed |
Transaction Not Found |
Transaksi tidak ditemukan |
404 |
4044708 |
Failed |
Invalid Merchant |
Merchant tidak sesuai |
400 |
4004700 |
Failed |
Bad Request |
Bad Request |
500 |
5004701 |
Failed |
Unknown Error |
Error yang lainnya |
Seluruh response error yang tidak tercantum dalam list response BRIAPI memiliki status pending dan perlu dilakukan pengecekan