Text Link
Generate QRIS
Text Link
Query QRIS
Text Link
Payment Notifications
Text Link
Mock QRIS Data in Demo Environment

Generate QRIS

Generate a QRIS transaction and display it to end user through this API.

‍

Environment Method URL
Production POST https://partner-b2x.dipay.id/snap/v2.1/qr/qr-mpm-generate
Demo POST https://api-b2x-demo.dipay.id/snap/v2.1/qr/qr-mpm-generate

Header Parameters

Header Data Type Length Required Description
Content-Type String - Mandatory Content type, value always application/json
Authorization String 2048 Mandatory Access token obtained from the Get Access Token API
Value: Bearer {{accessToken}}
X-TIMESTAMP YYYY-MM-DDTHH:mm:ss+07:00 25 Mandatory Request timestamp in ISO 8601 format.
X-SIGNATURE String 256 Mandatory Symmetric signature generated using HMAC-SHA512.
X-PARTNER-ID String 36 Mandatory Unique identifier generated by Dipay for the partner. Equal to Client Key.
X-EXTERNAL-ID Alphanumeric 36 Mandatory Unique reference identifier generated by partner and should be unique within the same day.
CHANNEL-ID String 5 Mandatory Channel ID, value always: DPAPI

Request Body

Field Type Length Mandatory Description
partnerReferenceNo string 32 M Partner reference number
amount object   M Transaction amount
amount.value string 16.2 M Transaction amount value
Min. Amount: 10.000
Max. Amount: 10.000.000
amount.currency string 3 M Currency of the amount (IDR)
merchantId string 10 M Merchant ID from registration to PTEN
validityPeriod string 25 O Validity period of the QR, 1-60 minutes.
terminalId string 10 O Terminal ID

Response Body

Field Type Description
responseCode string Response code
responseMessage string Response message
qrContent string QR content
merchantName string Merchant name

Response Code List

Code Description
2004700 Request has been processed successfully
4004700 Bad Request, invalid merchant config
4004701 Invalid field format
4004702 Invalid field mandatory
4014700 Unauthorized
4014701 Invalid Bearer Token
4014702 Invalid Authorization Customer
4044708 Invalid Merchant ID
{
  "partnerReferenceNo": "PARTNER-ID",
  "amount": {
    "value": "10000.00",
    "currency": "IDR"
  },
  "validityPeriod": "2026-09-08T00:00:05+07:00",
  "merchantId": "92786258"
}
Request Samples
2004700
{
    "merchantName": "Merchant Testing",
    "qrContent": "00020101021226560012ID.DIPAY.WWW0117936008260927862580208927862580303UKE51290014ID.CO.QRIS.WWW02072685096520460125303360540810000.005802ID5924Merchant Quadrakill Edit6015KOTA JAKARTA SE610512130628105255ec277c0e0094f4780b19314c0703A0199410025d067153232f947e2bad7131bc01089278625863044D00",
    "responseCode": "2004700",
    "responseMessage": "Successful"
}
4004701
{
    "responseCode": "4004701",
    "responseMessage": "Invalid Field Format validityPeriod"
}
4014700
{
    "responseCode": "4014700",
    "responseMessage": "Unauthorized. Invalid Signature."
}
4044708
{
    "responseCode": "4044708",
    "responseMessage": "Merchant ID not found"
}
Response Samples

Query QRIS

Check the status of QRIS transaction via Query QRIS API

‍

Environment Method URL
Production POST https://partner-b2x.dipay.id/snap/v2.1/qr/qr-mpm-query
Demo POST https://api-b2x-demo.dipay.id/snap/v2.1/qr/qr-mpm-query

Header Parameters

Header Data Type Length Required Description
Content-Type String - Mandatory Content type, value always application/json
Authorization String 2048 Mandatory Access token obtained from the Get Access Token API
Value: Bearer {{accessToken}}
X-TIMESTAMP YYYY-MM-DDTHH:mm:ss+07:00 25 Mandatory Request timestamp in ISO 8601 format.
X-SIGNATURE String 256 Mandatory Symmetric signature generated using HMAC-SHA512.
X-PARTNER-ID String 36 Mandatory Unique identifier generated by Dipay for the partner. Equal to Client Key.
X-EXTERNAL-ID Alphanumeric 36 Mandatory Unique reference identifier generated by partner and should be unique within the same day.
CHANNEL-ID String 5 Mandatory Channel ID, value always: DPAPI

Request Body

Field Type Length Mandatory Description
originalPartnerReferenceNo string 32 M Original partner reference number
serviceCode string 2 M Service code

Response Body

Field Type Description
responseCode string Response code
responseMessage string Response message
originalPartnerReferenceNo string Original partner reference number
originalReferenceNo string Original reference number
serviceCode string Service code
latestTransactionStatus string Latest transaction status
transactionStatusDesc string Transaction status description
amount object Transaction amount
amount.value string Transaction amount value
amount.currency string Currency of the transaction amount
additionalInfo object Additional information related to the transaction
additionalInfo.retrievalReferenceNumber string Retrieval reference number
additionalInfo.merchantCategory string Merchant category
additionalInfo.merchantLocation string Merchant location
additionalInfo.merchantName string Merchant name
additionalInfo.merchantAcquirer string Merchant acquirer
additionalInfo.merchantPAN string Merchant PAN
additionalInfo.customerPAN string Customer PAN
additionalInfo.merchantAcquirerId string Merchant acquirer ID
additionalInfo.issuerId string Issuer ID
additionalInfo.issuer string Issuer
additionalInfo.terminalId string Terminal ID

Response Code List

Code Description
2005100 Request has been processed successfully
4005101 Invalid field format
4005102 Invalid field mandatory
4015100 Unauthorized
4015101 Invalid Bearer Token
4045101 Transaction not found

Transaction Status Descriptions

latestTransactionStatus transactionStatusDesc Description
00 Success QR has been successfully paid
01 Initiated QR has been created but not yet paid
05 Canceled QR has been canceled/not active
{
  "originalPartnerReferenceNo": "PARTNER-ID",
  "serviceCode": "47"
}
Request Samples
2005100
{
    "additionalInfo": {
        "merchantName": "Merchant Testing",
        "retrievalReferenceNumber": "2609QVUUHB50"
    },
    "amount": {
        "currency": "IDR",
        "value": "10000.00"
    },
    "latestTransactionStatus": "00",
    "originalPartnerReferenceNo": "RFL-077",
    "originalReferenceNo": "1881296d-6bb2-415b-a3e2-57ed98996264",
    "responseCode": "2005100",
    "responseMessage": "Successful",
    "serviceCode": "47",
    "transactionStatusDesc": "SUCCESS"
}
4005101
{
    "responseCode": "4005101",
    "responseMessage": "Invalid Field Format serviceCode"
}
4015101
{
    "responseCode": "4015101",
    "responseMessage": "Invalid Bearer Token"
}
4045101
{
    "responseCode": "4045101",
    "responseMessage": "Transaction Not Found"
}
Response Samples

Payment Notifications

Our system will send a callback request to your system only for Success transactions, callback will not be sent if the transactions is Expired.

‍

You can configure your Callback URL in the Business Dashboard:

  1. Open the Settings tab.
  2. Select Developer Options.
  3. Select Callback Configuration.
  4. Enter your Callback URL in the QRIS field.

‍

If Enable Automatic Retry Callback is active, we will resend callback 5 times

  • 1st retry: realtime (after the first failed log received)
  • 2nd retry: 1 min (after callback failed log for the 1st retry is received)
  • 3rd retry: 2 mins (after callback failed log for the 2nd retry is received)
  • 4th retry: 13 mins (after callback failed log for the 3rd retry is received)
  • 5th retry: 47 mins (after callback failed log for the 4th retry is received)

Header Parameters

Header Data Type Length Required Description
Content-Type String - Mandatory Content type, value always application/json
X-TIMESTAMP YYYY-MM-DDTHH:mm:ss+07:00 25 Mandatory Request timestamp in ISO 8601 format.
X-SIGNATURE String 256 Mandatory Symmetric signature generated using HMAC-SHA512.
X-PARTNER-ID String 36 Mandatory Based on Partner ID value (filled by partner) in Developer Option > SNAP Callback
X-EXTERNAL-ID Alphanumeric 36 Mandatory Unique reference identifier generated by partner and should be unique within the same day.
CHANNEL-ID String 5 Mandatory Channel ID, value always: DPAPI

Callback Parameters

Field Type Length Mandatory Description
latestTransactionStatus string 2 M Latest transaction status. See list of transaction status
originalReferenceNo string 64 M Original reference number
originalPartnerReferenceNo string 32 M Original partner reference number
transactionStatusDesc string 50 M Transaction status description
originalExternalId string 32 M Original external identifier
amount object - M Transaction amount
amount.value string 16.2 M Transaction amount
amount.currency string 3 M Currency of the transaction amount
additionalInfo object - O Additional information related to the transaction
additionalInfo.retrievalReferenceNumber string 255 O Retrieval reference number
additionalInfo.merchantCategory string 32 O Merchant category
additionalInfo.merchantLocation string 64 O Merchant location
additionalInfo.merchantName string 64 O Merchant name
additionalInfo.merchantAcquirer string 255 O Merchant acquirer
additionalInfo.merchantPAN string 19 O Merchant PAN
additionalInfo.customerPAN string 255 O Customer PAN
additionalInfo.merchantAcquirerId string 20 O Merchant acquirer ID
additionalInfo.issuerId string 20 O Issuer ID
additionalInfo.issuer string 255 O Issuer name
additionalInfo.terminalId string 20 O Terminal ID

Transaction Status Description

latestTransactionStatus transactionStatusDesc Description
00 Success QR has been successfully paid
01 Initiated QR has been created but not yet paid
05 Canceled QR has been canceled/not active
{
  "originalPartnerReferenceNo": "PARTNER-ID",
  "latestTransactionStatus": "00",
  "transactionStatusDesc": "SUCCESS",
  "originalExternalId": "1710882825",
  "amount": {
    "currency": "IDR",
    "value": "10000.00"
  },
  "additionalInfo": {
    "retrievalReferenceNumber": "2608UI4O2USD",
    "merchantName": "Merchant Testing"
  }
}
Request Samples
Response Samples

Mock QRIS Data in Demo Environment

The Demo Environment is provided for integration and testing purposes. Transactions performed in this environment do not result in actual QRIS transaction.

Mock Data

To facilitate integration and testing, the QRIS API provides mock data in the Demo Environment based on the Merchant ID and Original Partner Reference No porovided in the request. This allows you to simulate various transaction outcomes without executing real transactions.

‍

Generate QRIS

merchantId Test Scenario
635012218 Generate QRIS Success
635012250 Generate QRIS Failed — Merchant ID Not Found
635012260 Too Many Requests
635012270 Internal Server Error
635012280 Timeout

Query QRIS

originalPartnerReferenceNo Test Scenario
48591635012260 Too Many Requests
48591635012270 Internal Server Error
48591635012280 Timeout

‍

Simulate Payment

To simulate QRIS payment, in Demo environment

  1. Make sure to input your Payment Notifications url in: Settings > Developer Option > Callback Configuration > QRIS
  2. Trigger Simulate Payment in: Settings > QRIS Callback
    1. Transaction Type: QRIS SNAP
    2. Partner Transaction ID: partnerReferenceNo (Generate QRIS)
    3. Send Callback

Our system will send the Payment Notifications to your url.

Request Samples
Response Samples