QRIS Merchant Presented Mode (MPM) Static

Simplify Your Business with BRIAPI

Watch the video and see how BRIAPI can make your business more efficient with BRI Interbank Transfer.

 

Create API Now

 

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

/simulator/qr/qr-mpm-generate-url

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

/simulator/qr/qr-mpm-get-merchant-id

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

/simulator/qr/qr-mpm-generate-qr

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

/simulator/qr/qr-mpm-get-last-five-transaction

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

/simulator/qr/qr-mpm-get-transaction

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.