QRIS
Cancel QRIS Panduan lengkap untuk membatalkan QRIS menggunakan API Paylabs.
Field Value URL ${ROOT_URL}/payment/v2.3/qris/cancelMethod POST Endpoint /payment/v2.3/qris/cancel
Field Name Type Required Value Content-Type String(30) Yes Isi dengan nilai "application/json;charset=utf-8" X-TIMESTAMP String(29) Yes Waktu saat ini, dengan format 2026-01-30T12:00:00.000+07:00 X-SIGNATURE String(64) Yes Signature. Untuk selengkapnya cek Cara Membuat Signature X-PARTNER-ID String(20) Yes Merchant ID X-REQUEST-ID String(64) Yes ID unik merepresentasikan setiap request yang dikirim
Parameter Type Required Remarks requestId String(64) Yes Kode unik untuk setiap request *catatan : requestId harus sama dengan X-REQUEST-ID merchantId String(20) Yes ID unik yang disediakan oleh payment gateway ke merchant storeId String(30) No Jika Merchant memiliki cabang dan ingin membuat order dengan ID cabang merchantTradeNo String(32) Yes Kode unik yang dibuat oleh Merchant untuk setiap transaksi platformTradeNo String(32) Yes Nomor order di platform Paylabs qrCode String(300) No Kode dari QRIS
Cara Membuat Signature
Field Name Type Value Required Content-Type String(30) Isi dengan nilai "application/json;charset=utf-8" Yes X-TIMESTAMP String(29) Waktu saat ini, dengan format 2022-09-16T16:58:47.964+07:00 Yes X-SIGNATURE String(64) Signature. Untuk selengkapnya cek Yes X-PARTNER-ID String(20) Merchant ID Yes X-REQUEST-ID String(64) ID unik merepresentasikan setiap request yang dikirim Yes
Kode Error
Parameter Type Required Remarks requestId String(64) Yes Kode unik untuk setiap request errCode String(32) Yes 0 adalah sukses, untuk lainnya bisa lihat tabel errCodeDes String(128) No Deskripsi terkait error merchantId String(20) Yes Merchant ID storeId String(30) No Jika Merchant memiliki cabang dan ingin membuat order dengan ID cabang paymentType String(20) Yes Nama dari Jenis Pembayaran, cek tabel Jenis Pembayaran amount decimal(12,2) Yes Nominal dalam Rupiah Indonesia, with 2 decimal places merchantTradeNo String(32) Yes Kode unik yang dibuat oleh Merchant untuk setiap transaksi createTime String(16) No yyyyMMddHHmmss qrCode String(300) No Kode dari QRIS platformTradeNo String(32) No Nomor transaksi di Paylabs expiredTime String(16) No yyyyMMddHHmmss status String(32) No 01 PENDING 09 FAILED 06 CANCEL
Please note after sending cancel QRIS request, there is still possibility customer has paid, hence transaction can from 06 CANCEL, changed to 02 SUCCESS
POST /payment/v2.3/qris/cancel HTTP/1.1
X-TIMESTAMP: 2026-01-30T15:50:35.699+07:00
X-SIGNATURE: DexT ******************** Sw==
X-PARTNER-ID: 010001
X-REQUEST-ID: 20260130XXXXXXXXX
Content-Type: application/json ;charset = utf-8
{
"merchantId" : "010001",
"merchantTradeNo" : "QRIS-20260130XXXXXXXXX",
"requestId" : "20260130XXXXXXXXX",
"platformTradeNo" : "20260130XXXXXXXXXXX"
}
HTTP/1.1 200 OK
Content-Type: application/json ;charset = utf-8
X-REQUEST-ID: 20260130XXXXXXXXX
X-PARTNER-ID: 010001
X-TIMESTAMP: 2026-01-30T15:50:35.699+07:00
X-SIGNATURE: YyIy ******************* NI0=
{
"merchantId" : "010001" ,
"requestId" : "20260130XXXXXXXXX" ,
"errCode" : "0" ,
"paymentType" : "QRIS" ,
"amount" : "10071.00" ,
"merchantTradeNo" : "QRIS-20260130XXXXXXXXX" ,
"createTime" : "20260130155035" ,
"platformTradeNo" : "20260130XXXXXXXXXXX" ,
"expiredTime" : "20260130165035" ,
"status" : "06"
}