Virtual Account SNAP
Payment Virtual Account Notification
Panduan lengkap untuk notifikasi pembayaran Virtual Account menggunakan API Paylabs.
HTTPMethod: POST
URL: ${ROOT_URL}/v1.0/transfer-va/payment
Service Code: 25
Version: 1.0
ServiceGroup: transfer-va
ProductType: payment
Notify when an order is successful
Request
Header
| Parameter | Required | Type | Length | Remarks |
|---|---|---|---|---|
| Content-Type | M | String | - | Fixed value application/json |
| Authorization | C | String | Dynamic | Nilai access_token, jika Anda menggunakan enkripsi symmetric, kolom ini wajib diisi |
| X-TIMESTAMP | M | String | 64 | Waktu Jakarta, format 2021-11-29T09:22:18+07:00 |
| X-PARTNER-ID | M | String | 36 | Merchant ID |
| X-EXTERNAL-ID | M | String | 12 | Request ID |
| X-SIGNATURE | M | String | Dynamic | Signature strings |
| X-IP-ADDRESS | M | String | 15 | Client IP (IPv4) |
Body
| Parameter | Required | Type | Length | Remarks |
|---|---|---|---|---|
| partnerServiceId | M | String | 8 | turunan X-PARTNER-ID, mirip dengan kode perusahaan, 8 digit spasi disebelah kiri |
| customerNo | M | String | 20 | fixed value 00000000000000000000 |
| virtualAccountNo | M | String | 28 | virtualAccountNo |
| virtualAccountName | M | String | 255 | Nama Customer. contoh: Jokul Doe |
| virtualAccountEmail | O | String | 255 | |
| virtualAccountPhone | O | String | 30 | No Hp, Format: 62xxxxxxxxxxxxx |
| trxId | C | String | 64 | Unik ID di generated oleh Partner |
| paymentRequestId | M | String | 128 | Unik ID di generated oleh PJP. Platform Order Number |
| channelCode | O | Number | 4 | kode channel berdasarkan ISO 18245 |
| hashedSourceAccountNo | O | String | 32 | Source account number dalam hash |
| sourceBankCode | O | String | 3 | kode rekening bank |
| +paidAmount | M | Object | ||
| 「Value | M | String (ISO4217) | 16,2 | Jumlah yang Dibayar dengan 2 digit di belakang koma |
| 「Currency | M | String | 3 | Mata Uang. fixed value : IDR |
| +cumulativePaymentAmount | O | Object | ||
| 「Value | M | String (ISO4217) | 16,2 | Transaction Amount |
| 「Currency | M | String | 3 | Mata Uang. fixed value : IDR |
| paidBills | O | String | 6 | tagihan yang di bayar Format Hexadecimal |
| +totalAmount | O | Object | ||
| 「Value | M | String (ISO4217) | 16,2 | Transaction Amount. |
| 「Currency | M | String | 3 | Mata Uang. fixed value : IDR |
| trxDateTime | O | Date | 25 | Tanggal dan waktu sistem internal PJP dengan zona waktu, yang mana mengikuti ISO-8601 standard |
| referenceNo | O | String | 64 | Kode autentikasi pembayaran dihasilkan oleh PJP, Platform Order Number |
| journalNum | O | String | 6 | Urutan nomor jurnal pada Sistem core PJP |
| paymentType | O | String | 1 | Type Payment |
| flagAdvise | O | String | 1 | status callback, N: Deny, Y: Allow |
| subCompany | O | String | 5 | Kode Sub Perusahaan dihasilkan oleh by Partner |
| +billDetails | O | Array of Objects | Array dengan maksimal 24 Object | |
| 「billCode | O | String | 2 | dari Inquiry Response |
| 「billNo | O | String | 18 | dari Inquiry Response |
| 「billName | O | String | 20 | dari Inquiry Response |
| 「billShortName | O | String | 10 | dari Inquiry Response |
| +billDescription | O | Object | dari Inquiry Response | |
| 「english | O | String | 18 | dari Inquiry Response |
| 「indonesia | O | String | 18 | dari Inquiry Response |
| 「billSubCompany | O | String | 5 | dari Inquiry Response |
| +billAmount | O | Object | ||
| 「Value | M | String (ISO4217) | 16,2 | Transaction Amount. dari Inquiry Response |
| 「Currency | M | String | 3 | Mata Uang. fixed value : IDR |
| +additionalInfo | O | Object | unlimited | dari Inquiry Response |
| 「billReferenceNo | O | Number | 15 | kode Bill auth digenerate oleh PJP |
| +freeTexts | O | Array of Objects | Array dengan maksimal 25 Object | |
| 「english | O | String | 32 | Akan ditampilkan di Channel |
| 「indonesia | O | String | 32 | Akan ditampilkan di Channel |
| +additionalInfo | O | Object | ||
| 「transFeeRate | O | Decimal(6,6) | No | Rate Transaksi, mendukung enam angka belakang koma |
| 「transFeeAmount | O | Decimal(12,2) | No | Biaya, mendukung dua angka belakang koma |
| 「totalTransFee | O | Decimal(12,2) | No | Total rate biaya layanan transaksi (tidak termasuk vatFee), mendukung dua angka belakang koma |
| 「vatFee | O | Decimal(12,2) | No | Pajak, mendukung dua angka belakang koma |
| 「payer | O | String(60) | No | Nama dari payer yang sebenarnyaJika jenis pembayaran didukung, nama pembayar akan dikembalikan. Jika tidak didukung, nilai null akan dikembalikan.Saat ini hanya mendukung: INA VA ã€BNC VACatatan: Bukan “payer†yang dikirim oleh merchant saat memulai permintaan. |
| 「accountNo | O | String(32) | No | Nomor rekening dari payer yang sebenarnyaJika jenis pembayaran didukung, nomor rekening pembayar akan dikembalikan. Jika tidak didukung, nilai null akan dikembalikan.Saat ini hanya mendukung: INA VA, BNC VA |
| 「storeId | O | String | 32 | Jika Merchant memiliki cabang dan ingin membuat order dengan ID cabang |
Example
POST .../v1.0/transfer-va/payment HTTP/1.2
Content-type: application/json
X-TIMESTAMP: 2020-12-21T14:56:11+07:00
X-SIGNATURE: 85be817c55b2c135157c7e89f52499bf0c25ad6eeebe04a986e8c862561b19a5
X-ORIGIN: www.hostname.com
X-PARTNER-ID: 010001
X-EXTERNAL-ID: 41807553358950093184162180797837
X-IP-ADDRESS: 172.24.281.24
{
"partnerServiceId":" 088899",
"customerNo":"12345678901234567890",
"virtualAccountNo":" 08889912345678901234567890",
"virtualAccountName":"Jokul Doe",
"virtualAccountEmail":"jokul@email.com",
"virtualAccountPhone":"6281828384858",
"trxId":"abcdefgh1234",
"paymentRequestId":"abcdef-123456-abcdef",
"channelCode":"6011",
"hashedSourceAccountNo":"abcdefghijklmnopqrstuvwxyz123456",
"sourceBankCode":"008",
"paidAmount":{
"value":"12345678.00",
"currency":"IDR",
},
"cumulativePaymentAmount":{
"value":"12345678.00",
"currency":"IDR",
},
"paidBills":"95000",
"totalAmount":{
"value": "12345678.00",
"currency": "IDR"
},
"trxDateTime":"20201231T235959Z",
"referenceNo":"123456789012345",
"journalNum":"123456",
"paymentType":"1",
"flagAdvise":"Y",
"subCompany":"12345",
"billDetails":[
{
"billCode": "01",
"billNo": "123456789012345678",
"billName": "Bill A for Jan",
"billShortName": "Bill A",
"billDescription":{
"english": "Maintenance",
"indonesia": "Pemeliharaan"
},
"billSubCompany": "00001",
"billAmount":{
"value": "12345678.00",
"currency": "IDR"
},
"additionalInfo":{
},
"billReferenceNo": "123456789012345"
}
],
"freeTexts":[
{
"english": "Free text",
"indonesia": "Tulisan bebas"
}
],
"additionalInfo":{
"transFeeRate":"0",
"transFeeAmount":"0",
"totalTransFee":"0",
"vatFee":"0"
}
}Response
Header
| Parameter | Required | Type | Length | Remarks |
|---|---|---|---|---|
| Content-Type | M | String | - | Fixed value application/json |
| X-TIMESTAMP | M | String | 64 | Waktu Jakarta, format 2021-11-29T09:22:18+07:00 |
Body
| Parameter | Required | Type | Length | Remarks |
|---|---|---|---|---|
| responseCode | M | String | 7 | Response Code. response code = HTTP status code + service code + case code |
| responseMessage | M | String | 150 | Response Description |
| +virtualAccountData | M | Object | ||
| +paymentFlagReason | O | Object | Alasan Status Pembayaran multi bahasa | |
| 「indonesia | O | String | 200 | Alasan Status Pembayaran dalam bahasa Inggris |
| 「english | O | String | 200 | Alasan Status Pembayaran dalam bahasa Indonesia |
| 「partnerServiceId | M | String | 8 | turunan X-PARTNER-ID, mirip dengan kode perusahaan, 8 digit spasi disebelah kiri |
| 「customerNo | M | String | 20 | fixed value 00000000000000000000 |
| 「virtualAccountNo | M | String | 28 | No virtualAccount |
| 「virtualAccountName | M | String | 255 | Nama Customer. contoh: Jokul Doe |
| 「virtualAccountEmail | O | String | 255 | Email Customer |
| 「virtualAccountPhone | O | String | 30 | No HP Customer |
| 「trxId | O | String | 32 | dari Payment Request |
| 「paymentRequestId | M | String | 128 | dari Payment Request |
| +paidAmount | O | Object | ||
| 「Value | M | String (ISO4217) | 16,2 | Transaction Amount. |
| 「Currency | M | String | 3 | Mata Uang. fixed value : IDR |
| 「paidBills | O | String | 6 | dari Payment Request |
| +totalAmount | O | Object | ||
| 「Value | M | String (ISO4217) | 16,2 | Transaction Amount.contoh: 10000.00 , static va : 0.00 |
| 「Currency | M | String | 3 | Mata Uang. fixed value : IDR |
| 「trxDateTime | O | Date | 25 | dari Payment Request |
| 「referenceNo | O | String | 15 | dari Payment Request |
| 「journalNum | O | String | 6 | dari Payment Request |
| 「paymentType | O | String | 1 | dari Payment Request |
| 「flagAdvise | O | String | 1 | dari Payment Request |
| 「paymentFlagStatus | O | String | 2 | Status Penandaan Pembayaran dari Partner |
| +billDetails | O | Array of Objects | Array dengan maksimal 24 Object | |
| 「billerReferenceId | O | 64 | dari Inquiry Response | |
| 「billCode | O | String | 2 | dari Inquiry Response |
| 「billNo | O | String | 18 | dari Inquiry Response |
| 「billName | O | String | 20 | dari Inquiry Response |
| 「billShortName | O | String | 10 | dari Inquiry Response |
| +billDescription | O | Object | dari Inquiry Response | |
| 「english | O | String | 18 | dari Inquiry Response |
| 「indonesia | O | String | 18 | dari Inquiry Response |
| 「billSubCompany | O | String | 5 | dari Inquiry Response |
| +billAmount | O | Object | ||
| 「Value | M | String (ISO4217) | 16,2 | Transaction Amount. |
| 「Currency | M | String | 3 | Mata Uang. fixed value : IDR |
| +additionalInfo | O | Object | unlimited | dari Inquiry Response |
| 「status | O | String | 2 | Status pembayaran untuk Tagihan tertentu |
| +reason | O | Object | Alasan Status Pembayaran untuk Tagihan tertentu dengan multi bahasa | |
| 「english | O | String | 64 | Alasan Status Pembayaran untuk Tagihan tertentu dalam bahasa Inggris |
| 「indonesia | O | String | 64 | Alasan Status Pembayaran untuk Tagihan tertentu dalam bahasa Indonesia |
| +freeTexts | O | Array of Objects | Array dengan maksimal 25 Object | |
| 「english | O | String | 32 | Akan ditampilkan di Channel |
| 「indonesia | O | String | 32 | Akan ditampilkan di Channel |
| +additionalInfo | O | Object |
paymentFlagStatus
| Code | DESC |
|---|---|
| 00 | Success |
| 01 | Initiated |
| 02 | Paying |
| 03 | Pending |
| 04 | Refunded |
| 05 | Canceled |
| 06 | Failed |
| 07 | Not found |
Example
Content-type: application/json
X-TIMESTAMP: 2020-12-21T14:36:19+07:00
{
"responseCode":"2002500",
"responseMessage":"Success",
"virtualAccountData":{
"paymentFlagReason":{
"english":"Success",
"indonesia":"Sukses"
},
"partnerServiceId":" 088899",
"customerNo":"12345678901234567890",
"virtualAccountNo":" 08889912345678901234567890",
"virtualAccountName":"Jokul Doe",
"virtualAccountEmail":"jokul@email.com",
"virtualAccountPhone":"6281828384858",
"trxId":"abcdefgh1234",
"paymentRequestId":"abcdef-123456-abcdef",
"paidAmount":{
"value":"12345678.00",
"currency":"IDR",
},
"paidBills":"95000",
"totalAmount":{
"value": "12345678.00",
"currency": "IDR"
},
"trxDateTime":"20201231T235959Z",
"referenceNo":"123456789012345",
"journalNum":"123456",
"paymentType":"1",
"flagAdvise":"Y",
"paymentFlagStatus":"00",
"billDetails":[
{
"billerReferenceId": "123456789012345678",
"billCode": "01",
"billNo": "123456789012345678",
"billName": "Bill A for Jan",
"billShortName": "Bill A",
"billDescription":{
"english": "Maintenance",
"indonesia": "Pemeliharaan"
},
"billSubCompany": "00001",
"billAmount":{
"value": "12345678.00",
"currency": "IDR"
},
"additionalInfo":{
}
"status": "00",
"reason":{
"english": "Success",
"indonesia": "Sukses"
}
}
],
"freeTexts":[
{
"english": "Free text",
"indonesia": "Tulisan bebas"
}
],
},
"additionalInfo":{
}
}