Skip to main content

Generate QRIS

Creates a QRIS payment transaction. The merchant will receive QR data that can be displayed to customers for scan and pay.

Endpoint

POST /api/v1/payin/qris/generate

Request Body

ParameterTypeRequiredDescription
merchantTrxIdstringYesUnique transaction ID from merchant
amountnumberYesPayment amount (in Rupiah)
notifyUrlstringYesWebhook URL to receive transaction status notifications
productNamestringYesProduct/service name

Example Request

{
"merchantTrxId": "{{requestId}}",
"amount": 10000,
"notifyUrl": "https://webhook.site/f793fdb2-3881-4a2f-99bc-50c8d4ffc54f",
"productName": "test aja"
}
Unique Transaction ID

Ensure merchantTrxId is always unique. Duplicate IDs will result in "Transaction ID duplicate" error.

Success Response

{
"logId": "BZPkFn1N7zJCOBOQNaWh",
"status": true,
"message": "QRIS created successfully",
"data": {
"merchantTrxId": "2026011422090788287851188",
"platformTrxId": "2026011415091972123",
"qrData": "00020101021226650013ID.NETZME.WWW01189360081401001086120215ID20240000003170303UKE51440014ID.CO.QRIS.WWW0215ID20240000003170303UKE5204413153033605405110005802ID5908LAVISKA16005DEPOK61051641162690703A010812qris_invoice994200020001323154d168e6d14afd981d420a52828bdc63049739",
"amount": 11000,
"expired": 900
}
}

Response Fields

FieldDescription
merchantTrxIdMerchant transaction ID
platformTrxIdKingsPay platform transaction ID
qrDataQRIS data string to generate QR code
amountFinal amount (may differ due to fee/admin)
expiredQR validity period in seconds

Failed Response (Duplicate)

{
"status": false,
"message": "Transaction ID duplicate",
"logId": "HeKfJGECBgBCBJrDloEe"
}