QRIS Merchant Presented Mode (MPM) Static
What is QRIS Merchant Presented Mode (MPM) Static ?
Quick Response Code Indonesian Standard or QRIS is a combined QR code from every kind of QR code Payment Service Provider. QRIS was developed by the payment service provider industry together with Bank Indonesia with the intention of having a QR code payment service that is easy, fast, and secure.
With QRIS, QR code payment from every kind of service provider application including bank or non-bank will be able to be used at every merchant with QRIS logo.
QRIS Merchant Presented Mode (MPM) Static is a QR code that can be printed and being used indefinitely without having to generate the QR every time the transaction was made it also uses an open payment method.
Use Case of API QRIS Merchant Presented Mode (MPM) Static
QRIS Merchant Presented Mode (MPM) Static is suitable for micro and small business merchants that have no access to printing or scanning devices. Merchant only need to print the QR code once and then use the QR code for receiving the payment using any payment service provider application by scanning the QR code, input the amount of payment, input the PIN and click pay..
API Information
Title |
QRIS Merchant Presented Mode (MPM) Static |
---|---|
Version | v1.0 |
URL Sandbox | https://sandbox.partner.api.bri.co.id |
URL Production | https://partner.api.bri.co.id |
Version Control
Doc Version |
API Version |
Date |
Link to document |
Description |
---|---|---|---|---|
v1.0 |
v1.0 |
18 January 2022 |
this pages |
Baseline version. |
Product Description
Product Overview
QRIS Static API function is to generate QR Code that can be used by end customer indefinitely, therefore BRIAPI partner can just print out the QR Code once and use the Code to do every transactions. QRIS Static is very suitable for businesses that like to do cashless transactions without the hassle of providing device to generate QR Code every time there's a transaction.
Endpoint
A.Authentication
BRIAPI uses the OAuth 2 Authorization Framework to grant a third-party access to user accounts on an HTTP service. Before requesting our API, you have to retrieve a token by calling the Get Token endpoint.
To ensure API request safety, BRIAPI generates signatures
to assure that the request or response cannot be intercepted and imitated by unauthorized users. This signature is generated using the SHA256-HMAC algorithm.
B.Generate URL
Endpoint Description
API Generate URL used to generate the login URL to the QRIS Static system.
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 |
- |
Partner ID provided by partner |
123123 |
X-EXTERNAL-ID |
|
M |
- |
External ID that is unique for each transaction |
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 |
- |
Response code |
2004700 |
responseMessage |
String |
M |
- |
Response description |
Successful |
url |
String |
M |
- |
URL |
http://xxx.xxx.xxx.xxx/qris-oauth/public/login? token=14c49711e04387cb00406f9d229d0361 |
additionalInfo |
Object |
M |
- |
Details for the object additionalInfo are listed in the table below |
|
Response Structure in Object "additionalInfo"
Field |
Data Type |
Mandatory |
Length |
Description |
Example |
---|---|---|---|---|---|
trxType |
String |
M |
- |
Transaction type |
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 |
Success |
500 |
5004700 |
Failed |
General Error |
General Error |
500 |
5004701 |
Failed |
Unknown Error |
Another Error |
Any error response not listed in the BRIAPI response list is considered pending and requires further investigation.
C.Get Merchant Key
Endpoint Description
API Get Merchant Key used to get the merchant key from the login code.
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 |
- |
Partner ID provided by partner |
123123 |
X-EXTERNAL-ID |
|
M |
- |
External ID that is unique for each transaction |
098761 |
Request Structure
Field |
Data Type |
Mandatory |
Length |
Description |
Example |
---|---|---|---|---|---|
code |
String |
M |
- |
Code |
123456789012345678901 234567890AB |
Response Structure
Field |
Data Type |
Mandatory |
Length |
Description |
Example |
---|---|---|---|---|---|
responseCode |
String |
M |
- |
Response code |
2004700 |
responseMessage |
String |
M |
- |
Response description |
success |
merchantId |
String |
M |
- |
Merchant ID |
051035c359b7a5d2858568894065d720 |
createdDate |
String |
M |
- |
Created date |
2021-12-15 00:00:00 |
token |
String |
M |
- |
Token |
2824dd9df782c7ec86773f128263a467 |
tokenExpired |
String |
M |
- |
Token expired |
2021-12-31 01:10:23= |
state |
String |
M |
- |
State |
null |
additionalInfo |
Object |
M |
- |
Details for the object additionalInfo are listed in the table below |
|
Response Structure in Object "additionalInfo"
Field |
Data Type |
Mandatory |
Length |
Description |
Example |
---|---|---|---|---|---|
trxType |
String |
M |
- |
Transaction type |
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 |
Success |
404 |
4044708 |
Failed |
Invalid Merchant |
Invalid merchant |
500 |
5004701 |
Failed |
Unknown Error |
Another error |
Any error response not listed in the BRIAPI response list is considered pending and requires further investigation.
D.Get QR By Merchant Key
Endpoint Description
API Get QR By Merchant Key used to generate static QR based on 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 |
- |
Partner ID provided by partner |
123123 |
X-EXTERNAL-ID |
|
M |
- |
External ID that is unique for each transaction |
098761 |
Request Structure
Field |
Data Type |
Mandatory |
Length |
Description |
Example |
---|---|---|---|---|---|
merchantId |
String |
M |
- |
Merchant ID |
223456789012345678901 234567890AB |
Response Structure
Field |
Data Type |
Mandatory |
Length |
Description |
Example |
---|---|---|---|---|---|
responseCode |
String |
M |
- |
Response code |
2004700 |
responseMess age |
String |
M |
- |
Response description |
Request has been processed successfully |
referenceNo |
String |
M |
- |
Reference number |
2020102977770000000009 |
partnerRefere nceNo |
String |
M |
- |
Partner reference number |
2020102900000000000001 |
qrContent |
String |
M |
- |
QR Content |
https://www.investopedia.com/terms/q/quick-response-qr-code.asp |
qrImage |
String |
M |
- |
QR Image |
TWFuIGlzIGRpc3Rpbmd1aXNoZWQsIG5vdCBvbmx5IGJ5IGhpc yByZWFzb24sIGJ1dCAuLi4= |
merchantName |
String |
M |
- |
Merchant name |
Baso Malang |
additionalInfo |
Object |
M |
- |
Details for the object additionalInfo are listed in the table below |
|
Response Structure in Object "additionalInfo"
Field |
Data Type |
Mandatory |
Length |
Description |
Example |
---|---|---|---|---|---|
trxType |
String |
M |
- |
Transaction type |
GetQRByMkey |
merchantCity |
String |
M |
- |
Merchant location (city) |
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 |
Success |
404 |
4044708 |
Failed |
Invalid Merchant |
Invalid merchant |
500 |
5004701 |
Failed |
Unknown Error |
Another error |
Any error response not listed in the BRIAPI response list is considered pending and requires further investigation.
E.List Transaction By Five Merchant Key
Endpoint Description
API List Transaction By Last Five Merchant Key used to get the last five QRIS Static transaction data.
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 |
- |
Partner ID provided by partner |
123123 |
X-EXTERNAL-ID |
|
M |
- |
External ID that is unique for each transaction |
098761 |
Request Structure
Field |
Data Type |
Mandatory |
Length |
Description |
Example |
---|---|---|---|---|---|
merchantId |
String |
M |
- |
Merchant ID |
323456789012345678901 234567890AB |
Response Structure
Field |
Data Type |
Mandatory |
Length |
Description |
Example |
---|---|---|---|---|---|
responseCode |
String |
M |
- |
Response code |
2004700 |
responseMessage |
String |
M |
- |
Response description |
Request has been processed successfully |
transactionList |
Array |
M |
- |
Details for the Array transactionList are listed in the table below |
|
additionalInfo |
Object |
M |
- |
Details for the object additionalInfo are listed in the table below |
|
Response Structure in Array"transactionList"
Field |
Data Type |
Mandatory |
Length |
Description |
Example |
---|---|---|---|---|---|
trxDate |
String |
M |
- |
Transaction date |
2021-12-22 13:53:37 |
referenceNum |
String |
M |
- |
Reference number |
|
id |
String |
M |
- |
ID |
1380149 |
trxAmount |
String |
M |
- |
Transaction amount |
20000 |
issName |
String |
M |
- |
ISS name |
|
invoiceNumber |
String |
M |
- |
Invoice number |
|
cpan |
String |
M |
- |
cpan |
|
Response Structure Object"additionalInfo"
Field |
Data Type |
Mandatory |
Length |
Description |
Example |
---|---|---|---|---|---|
trxType |
String |
M |
- |
Transaction type |
ListTrxLastFive_mkey |
Request & Response Payload Sample
Request :
{ "merchantId": "051035c359b7a5d2858568894065d720" }
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 |
Success |
404 |
4044701 |
Failed |
Transaction Not Found |
Transaction Not Found |
404 |
4044708 |
Failed |
Invalid Merchant |
Invalid Merchant |
400 |
4004700 |
Failed |
Bad Request |
Bad Request |
500 |
5004701 |
Failed |
Unknown Error |
Another error |
Any error response not listed in the BRIAPI response list is considered pending and requires further investigation.
F.List Transaction By Merchant Key
Endpoint Description
API List Transaction By Merchant Key used to get QRIS Static transaction data.
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 |
- |
Partner ID provided by partner |
123123 |
X-EXTERNAL-ID |
|
M |
- |
External ID that is unique for each transaction |
098761 |
Request Structure
Field |
Data Type |
Mandatory |
Length |
Description |
Example |
---|---|---|---|---|---|
merchantId |
String |
M |
- |
Merchant ID |
423456789012345678901 234567890AF |
page |
String |
M |
- |
Page |
1 |
limit |
String |
M |
- |
Page limit |
10 |
dateFrom |
String |
M |
- |
Search start date |
2020-02-06 |
dateUntil |
String |
M |
- |
Search end date |
2020-02-07 |
Response Structure
Field |
Data Type |
Mandatory |
Length |
Description |
Example |
---|---|---|---|---|---|
responseCode |
String |
M |
- |
Response code |
2004700 |
responseMessage |
String |
M |
- |
Response description |
Request has been processed successfully |
transactionList |
Array |
M |
- |
Details for the array transactionList are listed in the table below |
|
page |
Object |
M |
- |
Details for the object page are listed in the table below |
|
additionalInfo |
Object |
M |
- |
Details for the object additionalInfo are listed in the table below |
|
Response Structure in Array"transactionList"
Field |
Data Type |
Mandatory |
Length |
Description |
Example |
---|---|---|---|---|---|
trxDate |
String |
M |
- |
Transaction date |
2021-12-22 13:53:37 |
referenceNum |
String |
M |
- |
Reference number |
|
id |
String |
M |
- |
ID |
1380149 |
trxAmount |
String |
M |
- |
Transaction amount |
20000 |
issName |
String |
M |
- |
ISS Name |
|
invoiceNumber |
String |
M |
- |
Invoice number |
|
cpan |
String |
M |
- |
cpan |
|
Response Structure in Object"page"
Field |
Data Type |
Mandatory |
Length |
Description |
Example |
---|---|---|---|---|---|
totalRecord |
Number |
M |
- |
Total record |
5 |
totalPage |
Number |
M |
- |
Total page |
1 |
recordPerPage |
String |
M |
- |
Record per page |
10 |
currentPage |
String |
M |
- |
Current page |
1 |
startRecord |
Number |
M |
- |
Start record |
1 |
Response Structure in Object"additionalInfo"
Field |
Data Type |
Mandatory |
Length |
Description |
Example |
---|---|---|---|---|---|
trxType |
String |
M |
- |
Transaction type |
ListTrxLastFive_mkey |
Request & Response Payload Sample
Request :
{ "merchantId":"423456789012345678901234567890AF", "page": "1", "limit":"10", "dateFrom":"2020-02-06", "dateUntil":"2020-02-07" }
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": 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", "trxDate": "2021-12-21 14:43:00", "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 |
Success |
404 |
4044701 |
Failed |
Transaction Not Found |
Transaction Not Found |
404 |
4044708 |
Failed |
Invalid Merchant |
Invalid Merchant |
400 |
4004700 |
Failed |
Bad Request |
Bad Request |
500 |
5004701 |
Failed |
Unknown Error |
Another error |
Any error response not listed in the BRIAPI response list is considered pending and requires further investigation.