Skip to main content

QRIS

QRIS adalah standar QR Code yang digunakan untuk pembayaran di Indonesia. QRIS merupakan singkatan dari Quick Response Code Indonesian Standard.

Transaksi QRIS

Generate QRIS MPM

Service ini digunakan untuk membuat QRIS dengan metode Merchant Presented Mode (MPM).

Service Info

Service Code47
Http MethodPOST
Path.../v1.0/qr/qr-mpm-generate

Payload Create QRIS Payment

ParameterTipe DataWajibDeskripsi
partnerReferenceNoStringYNomor transaksi merchant
Length: 5-50
Karakter yang Diizinkan: a-z A-Z 0-9 - _
terminalIdStringNID terminal
Length: 3-16
Karakter yang Diizinkan: a-z A-Z 0-9 - _
amountObjectYTotal
valueStringYNilai transaksi
Length: 1-14
Karakter yang Diizinkan: numeric
currencyStringYKode mata uang
Length: 3
Allowed Value: IDR
validityPeriodStringCWaktu transaksi berakhir
Format: YYYY-MM-DDTHH:mm:ssZ (ISO8601)
Wajib jika additionalInfo.isStatic = false
additionalInfoObjectYObject additionalInfo
isStaticBooleanYStatus QRIS
true = Static
false = Dynamic
{
"partnerReferenceNo": "ref00000000001",
"terminalId": "TERM GIGIH",
"subMerchantId": "170041",
"amount": {
"value": "50000.00",
"currency": "IDR"
},
"validityPeriod": "2023-09-06T23:08:56+07:00",
"additionalInfo": {
"isStatic": false
}
}

Response Create QRIS Payment

ParameterTipe DataDeskripsi
responseCodeStringKode response
responseMessageStringPesan response
partnerReferenceNoStringNomor transaksi merchant
qrContentNull/StringJika merchant onlyISO maka akan muncul ISO text QRIS
qrUrlStringQR Image Url
terminalIdStringID terminal
additionalInfoObjectObject additionalInfo
contractIdStringNomor identifikasi transaksi yang dihasilkan di sistem Winpay
expiredAtStringWaktu kedaluwarsa transaksi dalam Format string ISO8601
isStaticBooleanStatus QRIS
{
"responseCode": "2004700",
"responseMessage": "Success",
"partnerReferenceNo": "ref00000000001",
"qrContent": null,
"qrUrl": "https://sandbox-payment.winpay.id/scqr/get_image_qr?payid=1309cd8ceef30410ed1664c8c8c0bb76",
"terminalId": "TERM GIGIH",
"additionalInfo": {
"contractId": "qr2300a3fe-68b8-414b-bf00-8f44ce1cf5d3",
"expiredAt": "2023-09-06T23:08:56+07:00",
"isStatic": false
}
}

List Response Code Create Payment QRIS

Kode ResponPesan ResponDeskripsi
2004700Success
4004700Invalid response from billerCek responseMessage untuk detail errornya
4004701Invalid field format { field name }
4004702Invalid mandatory field {field name}
4014700Invalid signatureX-Signature salah
4044716Partner not foundX-Partner-ID tidak terdaftar
4094700Cannot use same X-EXTERNAL-ID in same dayX-External-ID sudah pernah digunakan di hari yang sama
4094701Duplicate partnerReferenceNopartnerReferenceNo sudah pernah digunakan

Query Payment

Service ini digunakan untuk cek status pembayaran dari QRIS

Service Info

Service Code51
Http MethodPOST
Path.../v1.0/qr/qr-mpm-query

Payload Query Payment

Nama FieldTipe DataWajibDeskripsi
originalPartnerReferenceNoStringYNomor transaksi sesuai dengan field partnerReferenceNo pada saat create payment
serviceCodeStringYKode service Create QRIS Payment
additionalInfoObjectYInfo tambahan
additionalInfo.contractIdStringYNomor identifikasi transaksi yang dihasilkan di sistem Winpay
{
"originalPartnerReferenceNo": "gigih-00000081",
"serviceCode": "47",
"additionalInfo": {
"contractId": "qr1906dc67-2e28-4d8a-9546-7cb30d73db2c"
}
}

Response Query Payment

ParameterTipe DataDeskripsi
responseCodeStringKode response
responseMessageStringPesan response
originalPartnerReferenceNoStringID transaksi pada sistem Merchant.
serviceCodeStringKode service Create QRIS Payment
latestTransactionStatusString00 - Success, 01 - Initiated, 02 - Paying, 03 - Pending, 04 - Refunded, 05 - Canceled, 06 - Failed, 07 - Not found.
amountObject
valueStringJumlah total nominal transaksi.
currencyStringMata uang.
feeAmountObject
valueStringJumlah nominal admin.
currencyStringMata uang.
terminalIdStringKode NMID dari QRIS merchant.
additionalInfoObjectInformasi tambahan.
issuerStringNama brand issuer.
rrnStringKode rrn dari issuer.
buyerRefStringNama user dari issuer.
{
"responseCode": "2005100",
"responseMessage": "Success",
"originalPartnerReferenceNo": "gigih-00000081",
"serviceCode": "47",
"latestTransactionStatus": "00",
"transactionStatusDesc": "Success",
"paidTime": "2023-08-24T17:03:33+07:00",
"amount": {
"value": "2000.00",
"currency": "IDR"
},
"feeAmount": {
"value": "14.00",
"currency": "IDR"
},
"terminalId": "",
"additionalInfo": {
"issuer": "Dana",
"rrn": "810534941939",
"buyerReff": "Winpay"
}
}

Terminal ID Registration

Merchant dapat menggunakan fitur Terminal ID sesuai kebutuhan merchant dengan catatan Terminal ID yang dikirimkan sudah terdaftar pada Winpay. Untuk pendaftaran Terminal ID anda dapat mengisi document berikut [link]

Handle Payment Callback

Setelah customer melakukan pembayaran, Winpay akan mengirimkan callback ke merchant untuk memberitahukan status pembayaran. Merchant harus mengimplementasikan service untuk menerima callback dari Winpay.

Kami akan mengirimkan callback ke merchant 3x sampai merchant meresponse dengan response yang diharapkan. Namun ketika percobaan callback pertama sudah sesuai maka kami tidak akan mengirimkan callback lagi.

Callback Info

Service Code52
HTTP MethodPOST
Path{{yoururl}}/v1.0/qr/qr-mpm-notify

Struktur Header

HeaderValueDeskripsi
Content-Typeapplication/json
X-Timestamp2023-08-24T17:07:05+07:00ISO8601 String
X-Partner-ID{partnerId}
X-Signature{signature}
X-External-ID{externalId}
Channel-ID{channelId}

Callback Payload

ParameterTipe DataDeskripsi
originalReferenceNoStringID transaksi pada sistem penyedia layanan.
originalPartnerReferenceNoStringID transaksi pada sistem Merchant.
latestTransactionStatusString00 - Success
01 - Initiated
02 - Paying
03 - Pending
04 - Refunded
05 - Canceled
06 - Failed
07 - Not found.
amountObject
valueStringJumlah total nominal transaksi.
currencyStringMata uang.
additionalInfoObjectInformasi tambahan.
channelStringKode bank dari bank tujuan pembayaran.
contractIdStringKode referensi untuk request terkait.
brandNameStringNama brand issuer.
rrnStringKode rrn dari issuer.
buyerRefStringNama user dari issuer.
nmidStringKode NMID dari QRIS merchant.
terminalIdStringKode NMID dari QRIS merchant.
{
"originalReferenceNo": "38740",
"originalPartnerReferenceNo": "1013225-1698047338",
"latestTransactionStatus": "00",
"amount": {
"value": "35490",
"currency": "IDR"
},
"additionalInfo": {
"channel": "QRIS",
"contractId": "qraa6e280d-2299-45ed-a040-783af3d4e80c",
"brandName": "DANA",
"rrn": "737659758297",
"buyerRef": "PDAM",
"terminalId": "A01"
}
}

Expected Results

Response yang diharapkan dari merchant adalah sebagai berikut:

{
"responseCode": "2005200",
"responseMessage": "success"
}