| URL and Path | |
|---|---|
| Path | /ordersnap/api/v1.0/qr/qr-mpm-generate |
| HTTP Method | POST |
| Version | v1.0 |
| Service Code | 47 |
Request Header
| Field Name | Field Type | Field Description |
|---|---|---|
| Content-Type | String (Required) | Type of the content |
| Authorization | String (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-TIMESTAMP | String (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-SIGNATURE | String (Required) | Created using symmetric signature HMAC_SHA512 algorithm. |
| X-PARTNER-ID | String (Required) | Unique ID for a partner (client_id). |
| X-EXTERNAL-ID | String (Required) | Merchant’s unique ID per transaction request. |
| CHANNEL-ID | String (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 Name | Field Type | Field Description |
|---|---|---|
| partnerReferenceNo | String(36) (Required) | Unique Transaction ID from Merchant. |
| amount | Object (Required) | Object data amount. |
| amount.value | String(16,2) (Required) | Transaction Amount. |
| amount.currency | String(3) (Required) | Transaction Currency. |
| merchantId | String(64) (Optional) | Merchant identifier that is unique per each merchant |
| storeId | String(16) (Optional) | Merchant terminal id |
| validityPeriod | String(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). |
| additionalInfo | Object (Required) | Additional information. |
| additionalInfo.acquirer | Integer (Required) | Usable ID Acquirer. Read here |
| additionalInfo.items | Object of Array (Required) | Items Object. |
| additionalInfo.items.id | String (Required) | ID Items. |
| additionalInfo.items.name | String (Required) | Items Name. |
| additionalInfo.items.quantity | String (Required) | Quantity of items. |
| additionalInfo.items.price | Object (Required) | Price Object. |
| additionalInfo.items.price.value | String (Required) | Price value. |
| additionalInfo.items.price.currency | String (Required) | Transaction currency |
| additionalInfo.customerDetails | Object (Required) | Object Costumer Details. |
| additionalInfo.customerDetails.email | String (Required) | Email Customer. |
| additionalInfo.customerDetails.firstName | String (Required) | First name customer. |
| additionalInfo.customerDetails.lastName | String (Required) | Last name customer. |
| additionalInfo.customerDetails.phone | String (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 Name | Field Type | Field Description |
|---|---|---|
| additionalInfo | Object (Required) | Additional information. |
| additionalInfo.acquirer | Integer (Required) | Usable ID Acquirer. |
| additionalInfo.amount | Object of Array (Required) | Amount Object |
| additionalInfo.amount.currency | String (Required) | Amount currency |
| additionalInfo.amount.value | String (Required) | Amount value |
| additionalInfo.createdAt | Object (Required) | Object transaction created |
| additionalInfo.createdAt.dateTime | String (Required) | Datetime transaction created |
| merchantName | String (Optional) | Merchant Name. |
| partnerReferenceNo | String (36) (Optional) | partnerReferenceNo from the request body |
| qrContent | String(512) (Conditional) | QR String MPM. If qrContent is null, then qrUrl or qrImage must be filled. |
| qrImage | String (Optional) | base64 from image QRIS. Max length is unlimited. |
| qrUrl | String (Optional) | QR URL for download QR Image |
| referenceNo | String(64) (Optional) | Transaction identifier on service provider system. |
| responseCode | String(7) (Required) | Response Code (HTTP status code + service code + case code) |
| responseMessage | String(150) (Required) | Description of charge result response. |
| storeId | String (Optional) | unique shop id on the merchant side. |
| terminalId | String (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 Code | HTTP Status | Response Message |
|---|---|---|
| 2004700 | 200 | Successful |
| 4004700 | 400 | X-TIMESTAMP is not valid |
| 4004701 | 400 | Invalid Field Format |
| 4004702 | 400 | Invalid Mandatory Field |
| 4014700 | 401 | Unauthorized. [Invalid Signature] |
| 4044708 | 404 | Invalid Merchant |
| 4094701 | 409 | Duplicate partnerReferenceNo |
| 5004701 | 500 | Internal server error |
