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