Generate QRIS

URL and Path
Path/ordersnap/api/v1.0/qr/qr-mpm-generate
HTTP MethodPOST
Versionv1.0
Service Code47

Request Header

Field NameField TypeField Description
Content-TypeString (Required)Type of the content
AuthorizationString (Required)Represents access_token of a request; string starts with keyword “Bearer ” followed by access_token. Can get this token from Access Token B2B response.
X-TIMESTAMPString (Required)Using ISO 8601 as timestamp format.
Transaction date time, in format YYYYMMDDTHH:mm:ss+07:00.
Time must be in GMT+7 (Jakarta time).
X-SIGNATUREString (Required)Created using symmetric signature HMAC_SHA512 algorithm.
X-PARTNER-IDString (Required)Unique ID for a partner (client_id).
X-EXTERNAL-IDString (Required)Merchant’s unique ID per transaction request.
CHANNEL-IDString (Required)PJP’s channel id.
Content-Type: application/json
Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6It9pE72h1M4cdIEkoG0xSuNSJGptEMnlG2GgifWhWDpLDeGvcUh
X-TIMESTAMP: 2022-08-24 11:14:17
X-SIGNATURE: tmVw6o0TJRQCiEjuOdf6/jaX261ronRwMBNGzfoW7K2ERS52sFlVnaE2MtgDS/UpMtGSbIpC+gQv0j72HWb0iA==
X-PARTNER-ID: p00cb12g-w04q-42bb-l2de-e3enf4f487ce3
X-EXTERNAL-ID: 23456789012345
CHANNEL-ID: 98765

Request Body

Field NameField TypeField Description
partnerReferenceNoString(36) (Required)Unique Transaction ID from Merchant.
amountObject (Required)Object data amount.
amount.valueString(16,2) (Required)Transaction Amount.
amount.currencyString(3) (Required)Transaction Currency.
merchantIdString(64) (Optional)Merchant identifier that is unique per each merchant
storeIdString(16) (Optional)Merchant terminal id
validityPeriodString(25) (Required)The time when the QRIS will automatically expire. The time when the payment will be automatically expired. The format is defined by ISO 8601. (Max 3 hours from request time).
additionalInfoObject (Required)Additional information.
additionalInfo.acquirerInteger (Required)Usable ID Acquirer. Read here
additionalInfo.itemsObject of Array (Required)Items Object.
additionalInfo.items.idString (Required)ID Items.
additionalInfo.items.nameString (Required)Items Name.
additionalInfo.items.quantityString (Required)Quantity of items.
additionalInfo.items.priceObject (Required)Price Object.
additionalInfo.items.price.valueString (Required)Price value.
additionalInfo.items.price.currencyString (Required)Transaction currency
additionalInfo.customerDetailsObject (Required)Object Costumer Details.
additionalInfo.customerDetails.emailString (Required)Email Customer.
additionalInfo.customerDetails.firstNameString (Required)First name customer.
additionalInfo.customerDetails.lastNameString (Required)Last name customer.
additionalInfo.customerDetails.phoneString (Required)Phone number customer.
{
  "partnerReferenceNo": "TestPartNo0002",
  "amount": {
    "value": "10000.00",
    "currency": "IDR"
  },
  "merchantId": "",
  "storeId": "",
  "validityPeriod": "2025-12-04T11:00:00+07:00",
  "additionalInfo": {
    "acquirer": 3,
    "items": [
      {
        "id": "idasd1239aks001",
        "name": "Qris",
        "quantity": "1",
        "price": {
          "value": 10,
          "currency": "IDR"
        }
      }
    ],
    "customerDetails": {
      "email": "[email protected]",
      "firstName": "John.",
      "lastName": "Doe",
      "phone": "085688983935"
    }
  }
}


Response Body

Field NameField TypeField Description
additionalInfoObject (Required)Additional information.
additionalInfo.acquirerInteger (Required)Usable ID Acquirer.
additionalInfo.amountObject of Array (Required)Amount Object
additionalInfo.amount.currencyString (Required)Amount currency
additionalInfo.amount.valueString (Required)Amount value
additionalInfo.createdAtObject (Required)Object transaction created
additionalInfo.createdAt.dateTimeString (Required)Datetime transaction created
merchantNameString (Optional)Merchant Name.
partnerReferenceNoString (36) (Optional)partnerReferenceNo from the request body
qrContentString(512) (Conditional)QR String MPM.
If qrContent is null, then qrUrl or qrImage must be filled.
qrImageString (Optional)base64 from image QRIS.
Max length is unlimited.
qrUrlString (Optional)QR URL for download QR Image
referenceNoString(64) (Optional)Transaction identifier on service provider system.
responseCodeString(7) (Required)Response Code (HTTP status code + service code + case code)
responseMessageString(150) (Required)Description of charge result response.
storeIdString (Optional)unique shop id on the merchant side.
terminalIdString (Optional)Merchant terminal id
{
    "additionalInfo": {
        "acquirer": 3,
        "amount": {
            "currency": "IDR",
            "value": "10000.00"
        },
        "createdAt": {
            "dateTime": "2025-12-04T11:23:11+07:00",
            "offset": {
                "totalSeconds": 0
            },
            "zone": {
                "totalSeconds": 0
            }
        },
        "merchantCrossRefId": "",
        "recurring": false,
        "transactionType": "MERCHANT_TRANSACTION"
    },
    "merchantName": "",
    "partnerReferenceNo": "TestPartNo0002",
    "qrContent": "00020101021226580011id.qoin.www01189360084202020002110210Q2023002110303UME51370014ID.CO.QRIS.WWW0215ID0000202300211520458125303360540410005802ID5914Qoin Hub Store6007Jakarta61051321062200112QD00000005810700630459B2",
    "qrImage": "",
    "qrUrl": "",
    "referenceNo": "T25120000152183",
    "responseCode": "2004700",
    "responseMessage": "Successful",
    "storeId": "",
    "terminalId": ""
}

List Response Code

Response CodeHTTP StatusDescription
2004700200Successful
4004700400X-TIMESTAMP is not valid
4004701400Invalid Field Format
4004702400Invalid Mandatory Field
4014700401Unauthorized. [Invalid Signature]
4044708404Invalid Merchant
4044717404Invalid Terminal
4094701409Duplicate partnerReferenceNo
5004701500Internal server error