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 Code | 47 |
Http Method | POST |
Path | .../v1.0/qr/qr-mpm-generate |
Payload Create QRIS Payment
Parameter | Tipe Data | Wajib | Deskripsi |
---|---|---|---|
partnerReferenceNo | String | Y | Nomor transaksi merchant Length: 5-50 Karakter yang Diizinkan: a-z A-Z 0-9 - _ |
terminalId | String | N | ID terminal Length: 3-16 Karakter yang Diizinkan: a-z A-Z 0-9 - _ |
amount | Object | Y | Total |
value | String | Y | Nilai transaksi Length: 1-14 Karakter yang Diizinkan: numeric |
currency | String | Y | Kode mata uang Length: 3 Allowed Value: IDR |
validityPeriod | String | C | Waktu transaksi berakhir Format: YYYY-MM-DDTHH:mm:ssZ (ISO8601) Wajib jika additionalInfo.isStatic = false Harus lebih dari 1 menit dan maksimal 3 bulan dari waktu request |
additionalInfo | Object | Y | Object additionalInfo |
isStatic | Boolean | Y | Status 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
Parameter | Tipe Data | Deskripsi |
---|---|---|
responseCode | String | Kode response |
responseMessage | String | Pesan response |
partnerReferenceNo | String | Nomor transaksi merchant |
qrContent | Null/String | Jika merchant onlyISO maka akan muncul ISO text QRIS |
qrUrl | String | QR Image Url |
terminalId | String | ID terminal |
additionalInfo | Object | Object additionalInfo |
contractId | String | Nomor identifikasi transaksi yang dihasilkan di sistem Winpay |
expiredAt | String | Waktu kedaluwarsa transaksi dalam Format string ISO8601 |
isStatic | Boolean | Status 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 Respon | Pesan Respon | Deskripsi |
---|---|---|
2004700 | Success | |
4004700 | Invalid response from biller | Cek responseMessage untuk detail errornya |
4004701 | Invalid field format { field name } | |
4004702 | Invalid mandatory field {field name} | |
4014700 | Invalid signature | X-Signature salah |
4044716 | Partner not found | X-Partner-ID tidak terdaftar |
4094700 | Cannot use same X-EXTERNAL-ID in same day | X-External-ID sudah pernah digunakan di hari yang sama |
4094701 | Duplicate partnerReferenceNo | partnerReferenceNo sudah pernah digunakan |
Query Payment
Service ini digunakan untuk cek status pembayaran dari QRIS
Service Info
Service Code | 51 |
Http Method | POST |
Path | .../v1.0/qr/qr-mpm-query |
Payload Query Payment
Nama Field | Tipe Data | Wajib | Deskripsi |
---|---|---|---|
originalPartnerReferenceNo | String | Y | Nomor transaksi sesuai dengan field partnerReferenceNo pada saat create payment Length: 5-50 Karakter yang Diizinkan: huruf (a-z, A-Z), angka (0-9), garis bawah (_) dan tanda hubung (-) |
serviceCode | String | Y | Kode service Create QRIS Payment |
additionalInfo | Object | Y | Info tambahan |
additionalInfo.contractId | String | Y | Nomor identifikasi transaksi yang dihasilkan di sistem Winpay |
{
"originalPartnerReferenceNo": "gigih-00000081",
"serviceCode": "47",
"additionalInfo": {
"contractId": "qr1906dc67-2e28-4d8a-9546-7cb30d73db2c"
}
}
Response Query Payment
Parameter | Tipe Data | Deskripsi |
---|---|---|
responseCode | String | Kode response |
responseMessage | String | Pesan response |
originalPartnerReferenceNo | String | ID transaksi pada sistem Merchant. |
serviceCode | String | Kode service Create QRIS Payment |
latestTransactionStatus | String | 00 - Success, 01 - Initiated, 02 - Paying, 03 - Pending, 04 - Refunded, 05 - Canceled, 06 - Failed, 07 - Not found. |
amount | Object | |
value | String | Jumlah total nominal transaksi. |
currency | String | Mata uang. |
feeAmount | Object | |
value | String | Jumlah nominal admin. |
currency | String | Mata uang. |
terminalId | String | Kode NMID dari QRIS merchant. |
additionalInfo | Object | Informasi tambahan. |
issuer | String | Nama brand issuer. |
rrn | String | Kode rrn dari issuer. |
buyerRef | String | Nama 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"
}
}
List Response Code Query Payment QRIS
Kode Respon | Pesan Respon | Deskripsi |
---|---|---|
2005100 | Success | |
4005100 | Invalid response from biller | Cek responseMessage untuk detail errornya |
4005101 | Invalid field format { field name } | |
4005102 | Invalid mandatory field {field name} | |
4015100 | Invalid signature | X-Signature salah |
4045116 | Partner not found | X-Partner-ID tidak terdaftar |
4095100 | Cannot use same X-EXTERNAL-ID in same day | X-External-ID sudah pernah digunakan di hari yang sama |
4095101 | Duplicate partnerReferenceNo | partnerReferenceNo sudah pernah digunakan |
Cancel Payment
Service ini digunakan untuk membatalkan pembayaran dari QRIS
Service Info
Service Code | 77 |
Http Method | POST |
Path | .../v1.0/qr/qr-mpm-cancel |
Payload Cancel Payment
Field Name | Tipe Data | Wajib | Deskripsi |
---|---|---|---|
originalPartnerReferenceNo | String | Y | Nomor transaksi sesuai dengan field partnerReferenceNo pada saat create payment Length: 5-50 Karakter yang Diizinkan: huruf (a-z, A-Z), angka (0-9), garis bawah (_) dan tanda hubung (-) |
reason | String | Y | Alasan membatalkan pembayaran |
additionalInfo | Object | Y | Object additionalInfo |
additionalInfo.contractId | String | Y | Informasi tambahan |
{
"originalPartnerReferenceNo":"abctoxfzxctpww",
"reason":"Gagal",
"additionalInfo":{
"contractId": "qre9162f14-b282-4325-a72b-25c755db7322"
}
}
Response Cancel Payment
Parameter | Tipe Data | Deskripsi |
---|---|---|
responseCode | String | Kode response |
responseMessage | String | Pesan response |
originalPartnerReferenceNo | String | Nomor transaksi sesuai dengan field partnerReferenceNo pada saat create payment |
cancelTime | String | Waktu pembatalan |
additionalInfo | Object | Object additionalInfo |
additionalInfo.contractId | String | Informasi tambahan |
{
"responseCode": "2007700",
"responseMessage": "Request has been processed successfully",
"originalPartnerReferenceNo": "abctoxfzxctpww",
"cancelTime": "2024-05-30T18:08:05+07:00",
"additionalInfo": {
"contractId": "qre9162f14-b282-4325-a72b-25c755db7322"
}
}
List Response Code Cancel Payment QRIS
Kode Respon | Pesan Respon | Deskripsi |
---|---|---|
2007700 | Success | |
4007700 | Invalid response from biller | Cek responseMessage untuk detail errornya |
4007701 | Invalid field format { field name } | |
4007702 | Invalid mandatory field {field name} | |
4017700 | Invalid signature | X-Signature salah |
4047716 | Partner not found | X-Partner-ID tidak terdaftar |
4097700 | Cannot use same X-EXTERNAL-ID in same day | X-External-ID sudah pernah digunakan di hari yang sama |
4097701 | Duplicate partnerReferenceNo | partnerReferenceNo sudah pernah digunakan |
Refund QR
Service ini digunakan untuk pengembalian dana pembayaran dari QRIS
Service Info
Service Code | 78 |
Http Method | POST |
Path | .../v1.0/qr/qr-mpm-refund |
Payload Refund QR
Field Name | Tipe Data | Wajib | Deskripsi |
---|---|---|---|
originalPartnerReferenceNo | String | Y | Nomor transaksi sesuai dengan field partnerReferenceNo pada saat create payment Length: 5-50 Karakter yang Diizinkan: huruf (a-z, A-Z), angka (0-9), garis bawah (_) dan tanda hubung (-) |
partnerRefundNo | String | Y | ID transaksi pada sistem penyedia layanan |
refundAmount | Object | Y | Informasi refundAmount |
value | String | Y | Jumlah total nominal transaksi |
currency | String | Y | Mata uang |
reason | String | Y | Alasan pengembalian dana pembayaran |
{
"originalPartnerReferenceNo":"73960",
"partnerRefundNo":"QlUNRhxJPh2",
"refundAmount":{
"value":"10000.00",
"currency":"IDR"
},
"reason":"Refund QRIS Test"
}
Response Refund QR
Parameter | Tipe Data | Deskripsi |
---|---|---|
responseCode | String | Kode response |
responseMessage | String | Pesan response |
originalPartnerReferenceNo | String | ID transaksi pada sistem penyedia layanan |
referenceNo | String | Kode referensi pada sistem penyedia layanan |
partnerRefundNo | String | Nomor transaksi sesuai dengan field partnerReferenceNo pada saat create payment |
refundAmount | Object | Informasi refundAmount |
value | String | Jumlah total nominal transaksi |
currency | String | Mata uang |
refundTime | String | Waktu pengembalian dana |
{
"responseCode": "2007800",
"responseMessage": "Request has been processed successfully",
"originalPartnerReferenceNo": "73960",
"referenceNo": "17225167794af1ea705908578b138fe268",
"partnerRefundNo": "QlUNRhxJPh2",
"refundAmount": {
"value": "10000.00",
"currency": "IDR"
},
"refundTime": "2024-08-01T19:52:59+07:00"
}
List Response Code Refund QR
Kode Respon | Pesan Respon | Deskripsi |
---|---|---|
2007800 | Success | |
4007800 | Invalid response from biller | Cek responseMessage untuk detail errornya |
4007801 | Invalid field format { field name } | |
4007802 | Invalid mandatory field {field name} | |
4017800 | Invalid signature | X-Signature salah |
4047816 | Partner not found | X-Partner-ID tidak terdaftar |
4097800 | Cannot use same X-EXTERNAL-ID in same day | X-External-ID sudah pernah digunakan di hari yang sama |
4097801 | Duplicate partnerReferenceNo | partnerReferenceNo sudah pernah digunakan |
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 Code | 52 |
HTTP Method | POST |
Path | {{yoururl}}/v1.0/qr/qr-mpm-notify |
Struktur Header
Header | Value | Deskripsi |
---|---|---|
Content-Type | application/json | |
X-Timestamp | 2023-08-24T17:07:05+07:00 | ISO8601 String |
X-Partner-ID | {partnerId} | |
X-Signature | {signature} | |
X-External-ID | {externalId} | |
Channel-ID | {channelId} |
Callback Payload
Parameter | Tipe Data | Deskripsi |
---|---|---|
originalReferenceNo | String | ID transaksi pada sistem penyedia layanan. |
originalPartnerReferenceNo | String | ID transaksi pada sistem Merchant. |
latestTransactionStatus | String | 00 - Success 01 - Initiated 02 - Paying 03 - Pending 04 - Refunded 05 - Canceled 06 - Failed 07 - Not found. |
amount | Object | |
value | String | Jumlah total nominal transaksi. |
currency | String | Mata uang. |
additionalInfo | Object | Informasi tambahan. |
channel | String | Kode bank dari bank tujuan pembayaran. |
contractId | String | Kode referensi untuk request terkait. |
brandName | String | Nama brand issuer. |
rrn | String | Kode rrn dari issuer. |
buyerRef | String | Nama user dari issuer. |
nmid | String | Kode NMID dari QRIS merchant. |
terminalId | String | Kode 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"
}