QRIS

Cancel QRIS

Panduan lengkap untuk membatalkan QRIS menggunakan API Paylabs.

Request URL

FieldValue
URL${ROOT_URL}/payment/v2.3/qris/cancel
MethodPOST
Endpoint/payment/v2.3/qris/cancel

Request

Field NameTypeRequiredValue
Content-TypeString(30)YesIsi dengan nilai "application/json;charset=utf-8"
X-TIMESTAMPString(29)YesWaktu saat ini, dengan format 2026-01-30T12:00:00.000+07:00
X-SIGNATUREString(64)YesSignature. Untuk selengkapnya cek Cara Membuat Signature
X-PARTNER-IDString(20)YesMerchant ID
X-REQUEST-IDString(64)YesID unik merepresentasikan setiap request yang dikirim

Body

ParameterTypeRequiredRemarks
requestIdString(64)YesKode unik untuk setiap request
*catatan : requestId harus sama dengan X-REQUEST-ID
merchantIdString(20)YesID unik yang disediakan oleh payment gateway ke merchant
storeIdString(30)NoJika Merchant memiliki cabang dan ingin membuat order dengan ID cabang
merchantTradeNoString(32)YesKode unik yang dibuat oleh Merchant untuk setiap transaksi
platformTradeNoString(32)YesNomor order di platform Paylabs
qrCodeString(300)NoKode dari QRIS

Response

Header

Cara Membuat Signature

Field NameTypeValueRequired
Content-TypeString(30)Isi dengan nilai "application/json;charset=utf-8"Yes
X-TIMESTAMPString(29)Waktu saat ini, dengan format 2022-09-16T16:58:47.964+07:00Yes
X-SIGNATUREString(64)Signature. Untuk selengkapnya cekYes
X-PARTNER-IDString(20)Merchant IDYes
X-REQUEST-IDString(64)ID unik merepresentasikan setiap request yang dikirimYes

Body

Kode Error

ParameterTypeRequiredRemarks
requestIdString(64)YesKode unik untuk setiap request
errCodeString(32)Yes0 adalah sukses, untuk lainnya bisa lihat tabel
errCodeDesString(128)NoDeskripsi terkait error
merchantIdString(20)YesMerchant ID
storeIdString(30)NoJika Merchant memiliki cabang dan ingin membuat order dengan ID cabang
paymentTypeString(20)YesNama dari Jenis Pembayaran, cek tabel Jenis Pembayaran
amountdecimal(12,2)YesNominal dalam Rupiah Indonesia, with 2 decimal places
merchantTradeNoString(32)YesKode unik yang dibuat oleh Merchant untuk setiap transaksi
createTimeString(16)NoyyyyMMddHHmmss
qrCodeString(300)NoKode dari QRIS
platformTradeNoString(32)NoNomor transaksi di Paylabs
expiredTimeString(16)NoyyyyMMddHHmmss
statusString(32)No01 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

Example

Request

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"
}

Response

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"
}