Skip to main content

Akun Virtual (VA)

Akun Virtual (VA) adalah salah satu metode pembayaran yang disediakan oleh Winpay. VA dapat digunakan untuk melakukan pembayaran melalui mobile banking, internet banking, dan ATM.

Jenis Akun Virtual

VA yang disediakan oleh Winpay terbagi menjadi 3 jenis, yaitu:

  • ONE OFF (c) = VA yang hanya dapat digunakan untuk 1 kali pembayaran.
  • OPEN RECURRING (o) = VA yang dapat digunakan untuk pembayaran berkala dan bersifat open payment (customer input nominal sendiri).
  • CLOSE RECURRING (r) = VA yang dapat digunakan untuk pembayaran berkala dan bersifat close payment (customer tidak dapat input nominal sendiri).

Metode Pembayaran Yang Di Dukung

Berikut adalah metode pembayaran yang didukung oleh masing-masing jenis VA:

Channel CodeInstitusiOne Off (c)Open Recurring (o)Close Recurring (r)
BRIBank Rakyat Indonesia✔️
BNIBank Negara Indonesia✔️
MANDIRIBank Mandiri✔️
PERMATABank Permata✔️✔️✔️
BSIBank Syariah Indonesia✔️✔️✔️
MUAMALATBank Muamalat✔️✔️✔️
BCABank Central ASIA✔️✔️✔️
CIMBBank CIMB NIAGA✔️✔️✔️
SINARMASBank Sinarmas✔️✔️✔️
BNCBank Neo Commerce✔️✔️✔️
INDOMARETIndomaret✔️
ALFAMARTAlfamart✔️

Transaksi Akun Virtual

Create VA

Service ini digunakan untuk membuat akun virtual (VA) baru.

Service Info

Service Code27
Http MethodPOST
Path.../v1.0/transfer-va/create-va

Payload Create VA

ParameterTipe DataWajibDeskripsi
customerNoStringCNomor Virtual Account (if applicable)
Wajib jika virtualAccountTrxType = o / r
Length: 3-14
Karakter yang Diizinkan: numeric
Jika virtualAccountTrxType = c dan nomor VA tidak tersedia, maka nomor VA akan di generate secara acak
virtualAccountNameStringYNama Virtual Account
Length: 5-24
Karakter yang Diizinkan: a-z A-Z 0-9 - _
trxIdStringYNomor transaksi
Length: 5-50
Karakter yang Diizinkan: a-z A-Z 0-9 - _
totalAmountObjectCTotal nominal transaksi
Wajib jika virtualAccountTrxType = c / r
valueStringYNilai transaksi
Length: 1-14
Karakter yang Diizinkan: numeric
currencyStringYKode mata uang
Length: 3
Allowed Value: IDR
virtualAccountTrxTypeStringYJenis transaksi VA
Allowed Value: c / o / r
expiredDateStringCTanggal expired transaksi
Format: YYYY-MM-DDTHH:mm:ss+07:00
Wajib jika virtualAccountTrxType = c / r
additionalInfoObjectYInformasi tambahan
channelStringYKode channel
Allowed Value: BRI / BNI / MANDIRI / PERMATA / BSI / MUAMALAT / BCA / CIMB / SINARMAS / BNC / INDOMARET / ALFAMART
{
"customerNo": "000003212",
"virtualAccountName": "Chus Pandi",
"trxId": "INV-000000023212x2221",
"totalAmount": {
"value": "25000.00",
"currency": "IDR"
},
"virtualAccountTrxType": "c",
"expiredDate": "2023-09-05T19:30:14+07:00",
"additionalInfo": {
"channel": "CIMB"
}
}

Response Create VA

ParameterTipe DataDeskripsi
responseCodeStringKode response
responseMessageStringPesan response
virtualAccountDataObjectData VA yang telah dibuat
partnerServiceIdStringKode BIN dari bank
customerNoStringNomor Customer
virtualAccountNoStringNomor Virtual Account
virtualAccountNameStringNama Virtual Account
trxIdStringNomor transaksi merchant
totalAmountObjectTotal nominal transaksi
valueStringNilai transaksi yang dibayar oleh customer
currencyStringKode mata uang
virtualAccountTrxTypeStringJenis transaksi VA
expiredDateStringTanggal expired transaksi
additionalInfoObjectInformasi tambahan
channelStringKode channel
contractIdStringReferensi transaksi yang dihasilkan oleh Winpay
{
"responseCode": "2002700",
"responseMessage": "Success",
"virtualAccountData": {
"partnerServiceId": " 22691",
"customerNo": "41693898987",
"virtualAccountNo": " 2269141693898987",
"virtualAccountName": "Chus Pandi",
"trxId": "INV-000000023212x2221",
"totalAmount": {
"value": "25000.00",
"currency": "IDR"
},
"virtualAccountTrxType": "c",
"expiredDate": "2023-09-05T19:30:14+07:00",
"additionalInfo": {
"channel": "CIMB",
"contractId": "cia80bff69-1073-4811-b1e1-13b738784d8b"
}
}
}

List ResponseCode Create VA

Kode ResponPesan ResponDeskripsi
2002700Success
4002700Invalid response from billerCek responseMessage untuk detail errornya
4002701Invalid field format { field name }
4002702Invalid mandatory field {field name}
4012700Invalid signatureX-Signature salah
4042716Partner tidak adaX-Partner-ID tidak terdaftar
4092700Cannot use same X-EXTERNAL-ID in same dayX-External-ID sudah pernah digunakan di hari yang sama
4092701Duplicate trxIdtrxId sudah pernah digunakan

Inquiry VA

Service ini digunakan untuk mengecek status virtual akun aktif / tidak.

Service Info

Service Code30
Path.../v1.0/transfer-va/inquiry-va

Payload Inquiry VA

ParameterTipe DataWajibDeskripsi
trxIdStringYNomor transaksi
Length: 5-50
Karakter yang Diizinkan: a-z A-Z 0-9 - _
additionalInfoObjectYInformasi tambahan
contractIdstringYcontractId dari create VA
{
"trxId": "INV-000000023212x22",
"additionalInfo": {
"contractId": "ci302a21c9-bb4b-40c5-880d-e99691ed0af9"
}
}

Response Inquiry VA

ParameterTipe DataDeskripsi
responseCodeStringKode response
responseMessageStringPesan response
virtualAccountDataObjectData VA yang telah dibuat
partnerServiceIdStringKode BIN dari bank
customerNoStringNomor Customer
virtualAccountNoStringNomor Virtual Account
virtualAccountNameStringNama Virtual Account
trxIdStringNomor transaksi merchant
totalAmountObjectTotal nominal transaksi
valueStringNilai transaksi yang dibayar oleh customer
currencyStringKode mata uang
virtualAccountTrxTypeStringJenis transaksi VA
expiredDateStringTanggal expired transaksi
additionalInfoObjectInformasi tambahan
channelStringKode channel
contractIdStringReferensi transaksi yang dihasilkan oleh Winpay
{
"responseCode": "2003000",
"responseMessage": "Success",
"virtualAccountData": {
"virtualAccountNo": "2269186000003212",
"virtualAccountName": "Mas Nchus",
"trxId": "INV-000000023212x22",
"totalAmount": {
"value": "25000.00",
"currency": "IDR"
},
"expiredDate": "2023-09-01T19:30:14+00:00",
"additionalInfo": {
"channel": "CIMB",
"contractId": "ci302a21c9-bb4b-40c5-880d-e99691ed0af9"
}
}
}

List ResponseCode Inquiry VA

Kode ResponPesan ResponDeskripsi
2003000Success
4003000Invalid response from billerCek responseMessage untuk detail errornya
4003001Invalid field format { field name }
4003002Invalid mandatory field {field name}
4013000Invalid signatureX-Signature salah
4043001Transaction tidak adatrxId dan contractId tidak ditemukan
4043016Partner tidak adaX-Partner-ID tidak terdaftar
4093000Cannot use same X-EXTERNAL-ID in same dayX-External-ID sudah pernah digunakan di hari yang sama
4093001Duplicate trxIdtrxId sudah pernah digunakan
5003002reqbill tidak adacontractId tidak ditemukan

Inquiry Status

Layanan ini digunakan untuk memeriksa status transaksi virtual akun

Service Info

Service Code26
Path.../v1.0/transfer-va/status

Payload Inquiry Status

ParameterTipe DataWajibDeskripsi
virtualAccountNoStringYNomor Virtual Akun
trxIdStringYId Transaksi
Length: 5-50
Karakter yang Diizinkan: a-z A-Z 0-9 - _
additionalInfoObjectYInformasi tambahan
contractIdstringYcontractId from create VA
{
"virtualAccountNo": " 2269141708949044",
"additionalInfo": {
"contractId": "ciaf1b982a-9d06-4e27-ba39-a6aefd9e813d",
"channel": "CIMB",
"trxId": "xxxxxxxxxxx13"
}
}

Response Inquiry Status

ParameterTipe DataDeskripsi
responseCodeStringKode Respon
responseMessageStringPesan Respon
virtualAccountDataObjectData VA yang telah dibuat
virtualAccountNoStringNomor Virtual Akun
virtualAccountNameStringNama Virtual Akun
paymentFlagStatusStringStatus Transaksi VA (00 - paid, 01 - unpaid, 02 - check)
transactionDateStringTanggal Transaksi
referenceNoStringNomor referensi pembayaran
totalAmountObjectTotal jumlah transaksi
valueStringNilai transaksi yang dibayarkan oleh pelanggan
currencyStringKode mata uang
additionalInfoObjectInformasi tambahan
channelStringKode Chanel
contractIdStringReferensi transaksi yang dihasilkan oleh Winpay
trxIdStringNomor transaksi merchant
{
"responseCode": "2002600",
"responseMessage": "Successful",
"virtualAccountData": {
"virtualAccountNo": "2269141708949044",
"virtualAccountName": "Valid 14",
"paymentFlagStatus": "00",
"transactionDate": "2024-02-26T19:04:51+00:00",
"referenceNo": "50966",
"totalAmount": {
"value": "15000.00",
"currency": "IDR"
}
},
"additionalInfo": {
"contractId": "ciaf1b982a-9d06-4e27-ba39-a6aefd9e813d",
"channel": "CIMB",
"trxId": "xxxxxxxxxxx13"
}
}

List ResponseCode Inquiry Status

Kode ResponPesan ResponDeskripsi
2002600Success
4002600Invalid response from billerCek responseMessage untuk detail error
4002601Invalid field format { field name }
4002602Invalid mandatory field {field name}
4012600Invalid signatureX-Signature salah
4042601Transaction tidak adatrxId dan contractId tidak ada
4042616Partner tidak adaX-Partner-ID tidak terdaftar
4092600Cannot use same X-EXTERNAL-ID in same dayX-External-ID sudah digunakan pada hari yang sama
4092601Duplicate trxIdtrxId sudah digunakan pada hari yang sama ...
5002602reqbill tidak adacontractId tidak ada

Delete VA

Layanan ini digunakan untuk membatalkan virtual account dengan status unpaid

Service Info

Service Code31
Path.../v1.0/transfer-va/delete-va

Payload Delete VA

ParameterTipe DataWajibDeskripsi
virtualAccountNoStringYNomor Virtual Akun
trxIdStringYId Transaksi
Length: 5-50
Karakter yang Diizinkan: a-z A-Z 0-9 - _
additionalInfoObjectYInformasi tambahan
contractIdstringYcontractId dari create VA
channelStringKode channel
{
"virtualAccountNo": " 2269131710748503",
"trxId": "XINV-000000170104",
"additionalInfo": {
"contractId": "ci067a0336-4ddf-4001-9cef-3eb107c331f4",
"channel": "CIMB"
}
}

Response Delete VA

ParameterTipe DataDeskripsi
responseCodeStringKode Respon
responseMessageStringPesan Respon
virtualAccountDataObjectData VA yang telah dibuat
trxIdStringNomor transaksi merchant
additionalInfoObjectInformasi tambahan
contractIdStringReferensi transaksi yang dihasilkan oleh Winpay
channelStringKode Channel
{
"responseCode": "2003100",
"responseMessage": "Success",
"virtualAccountData": {
"trxId": "xxxxxxxxxxx20"
},
"additionalInfo": {
"contractId": "si4390d6cb-5e9f-41fb-bfa3-51f6e7c9e4b4",
"channel": "BSI"
}
}

List ResponseCode Delete VA

Kode ResponPesan ResponDeskripsi
2003100Success
4003100Invalid response from billercek responseMessage untuk detail error
4003101Invalid field format { field name }
4003102Invalid mandatory field {field name}
4013100Invalid signatureX-Signature salah
4043101Transaction tidak adatrxId dan contractId tidak ada
4043116Partner tidak adaX-Partner-ID tidak terdaftar
4093100Cannot use same X-EXTERNAL-ID in same dayX-External-ID telah digunakan pada hari yang sama
4093101Duplicate trxIdtrxId sudah pernah digunakan
5003102reqbill tidak adacontractId tidak ada

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 Code25
HTTP MethodPOST
Path{{yoururl}}/v1.0/transfer-va/payment

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
partnerServiceIdStringKode BIN dari bank
customerNoStringNomor Customer
virtualAccountNoStringNomor Virtual Account
virtualAccountNameStringNama Virtual Account
trxIdStringNomor transaksi merchant
paymentRequestIdStringNomor transaksi pembayaran
PaidAmountObjectTotal nominal transaksi
valueStringNilai transaksi yang dibayar oleh customer
currencyStringKode mata uang
trxDateTimeStringTanggal transaksi
referenceNoStringNomor referensi pembayaran
additionalInfoObjectInformasi tambahan
channelStringKode channel
contractIdStringReferensi transaksi yang dihasilkan oleh Winpay
{
"partnerServiceId": " 22691",
"customerNo": "41693903614",
"virtualAccountNo": " 2269141693903614",
"virtualAccountName": "Bayar 2269141693903614",
"trxId": "INV-000000023212x2224",
"paymentRequestId": "88889123",
"paidAmount": {
"value": "10000",
"currency": "IDR"
},
"trxDateTime": "2023-09-05T22:47:00+07:00",
"referenceNo": 36238,
"additionalInfo": {
"channel": "CIMB",
"contractId": "ci71a51730-2373-455f-b538-3f9912fefb73"
}
}

Expected Response

Response yang diharapkan dari merchant adalah sebagai berikut:

{
"responseCode": "2002500",
"responseMessage": "Successful"
}