Transfer Virtual Account
API Name | Virtual Account Transfer |
---|---|
Function | Proses pengiriman dana dari satu akun ke rekening melalui virtual account. API ini memungkinkan merchant untuk melakukan transfer ke nomor rekening virtual account melalui PakaiLink Bisnis. Layanan ini berjalan secara real-time. Pastikan saldo mencukupi untuk melakukan transfer. FAQ : Jumlah minimum adalah IDR 10.000,00 Jumlah maksimal adalah IDR 50.000.000,00 |
Service Code | 46 |
Method | POST |
URL | /snap/v1.0/transfer-va/payment |
Content Type | application/json |
Related Service | Transfer Virtual Account |
Request
Header
No | Name | Type | Length | Required | Condition | Remarks |
---|---|---|---|---|---|---|
1 | Content-Type | String | Variable, 127 max | Wajib | – | Tipe konten, nilai selalu application/json |
2 | Authorization | String | Variable | Wajib | – | Berisi B2B Bearer JWT Token, yang telah Anda peroleh dari Access Token B2B |
3 | X-TIMESTAMP | String | Fixed, 25 max | Wajib | – | Tanggal dan waktu transaksi, dalam format. YYYY-MM-DDTHH:mm:ss+07:00. Waktu harus dalam format GMT+7 (Jakarta time) |
4 | X-PARTNER-ID | String | Variable, 36 max | Wajib | – | ID untuk mitra yang dihasilkan oleh PakaiLink. ID unik untuk setiap mitra. |
5 | X-EXTERNAL-ID | String | Variable, 36 max | Wajib | – | ID referensi pesan unik yang dihasilkan oleh merchant. String numerik. Nomor referensi yang harus unik dalam satu hari yang sama. |
6 | CHANNEL-ID | String | Variable, 5 max | Wajib | – | Identifikasi perangkat tempat layanan API diakses oleh pengguna akhir (pelanggan) saat ini. Daftar Channel ID dapat dilihat di sini. |
7 | X-SIGNATURE | String | Variable | Wajib | – | Signature harus dihasilkan dengan metode Symmetric Signature |
Body
No | Name | Type | Length | Required | Condition | Remarks |
---|---|---|---|---|---|---|
1 | partnerServiceId | String | Variable, 8 max | Wajib | – | Turunan dari X-PARTNER-ID, mirip dengan kode perusahaan, spasi kiri 8 digit. partnerServiceId + customerNo atau virtualAccountNo |
2 | customerNo | String | Variable, 20 max | Wajib | – | Nomor unik (hingga 20 digit). partnerServiceId + customerNo atau virtualAccountNo |
3 | inquiryRequestId | String | Variable, 64 max | Wajib | – | Kode unik yang merepresentasikan proses inquiry sebelumnya. |
4 | virtualAccountNo | String | Variable, 28 max | Wajib | – | Nomor Rekening VA yang akan dilakukan proses pengecekan. |
5 | sourceBankCode | String | Variable, 28 max | Wajib | – | Kode untuk mengidentifikasi bank yang mengeluarkan kode VA |
6 | amount | money | Variable | Wajib | – | Jumlah dana yang terlibat dalam suatu transaksi |
7 | additionalInfo | String | Variable | Wajib | – | Informasi tambahan yang disertakan dalam suatu transaksi |
8 | additionalInfo.callbackUrl | String | Variable, text | Optional | – | URL yang digunakan oleh sistem untuk mengirimkan respons atau notifikasi otomatis setelah suatu transaksi atau proses selesai |
9 | additionalInfo.remark | String | Variable, text | Optional | – | Keterangan tambahan yang disertakan dalam suatu transaksi |
Contoh Request
POST /snap/v1.0/transfer-va/payment
Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJpc3MiOiJQQUtBSUxJTksiLCJqdGkiOiIyNDc0NzdlNjk0ZGM3N2FhZDU5YzA4MjA1NzdmZmViNyIsImV4cCI6MTE3NDAyOTc2NzgsImFzIjoicGFydG5lciIsImlkIjoiUFRSMDAwMDAwMyJ9.XmUxHExWILJCHJG74Af8TPJljX2aOmUz4UwJXumxkqxW9uDsIrSX_M_j0uRzPOmaBkk2_rQiHIo_OX_qxv45Mg
Content-Type: application/json
X-TIMESTAMP: 2025-01-30T12:38:12+07:00
X-PARTNER-ID: PTR0000003
X-EXTERNAL-ID: 1159034104
X-SIGNATURE: AaE7rxaiIFPQYryj+JxwOi826dQG4e8RbzagEBaAywS4ETa490Cy/3b1/Ljqput67EF+OgE0V1GDw2t/lxqEJw==
CHANNEL-ID: 95221
{
"partnerServiceId": " 34737",
"customerNo": "34343444",
"inquiryRequestId": "DNqGRh5wcH1b0E4",
"virtualAccountNo" : "8870800187732330",
"sourceBankCode": "013",
"amount": {
"value": "32000.00",
"currency": "IDR"
},
"additionalInfo": {
"callbackUrl": "http://127.0.0.1:10007/callback/partner",
"remark": ""
}
}
Response
Body
No | Name | Type | Length | Required | Condition | Remarks |
---|---|---|---|---|---|---|
1 | responseCode | String | Fixed, 7 max | Wajib | – | Lihat daftar kode respons. |
2 | responseMessage | String | Variable, 150 max | Wajib | – | Lihat daftar kode respons. |
3 | virtualAccountData | JSON object | variable | wajib | – | Berisi data transaksi transfer virtual akun (VA) |
4 | partnerServiceId | String | variable 8 max | Wajib | – | Derivative of X-PARTNER-ID, similar to company code, 8 digit left padding space. partnerServiceId + customerNo or virtualAccountNo |
5 | customerNo | String | variable 20 max | Wajib | – | Unique number (up to 20 digits). partnerServiceId + customerNo or virtualAccountNo |
6 | inquiryRequestId | String | variable 128 max | Wajib | – | Kode unik yang digunakan untuk identifikasi proses inquiry oleh partner |
7 | virtualAccountNo | String | Variable, 28 max | Wajib | – | Nomor Rekening VA yang akan dilakukan proses pengecekan. |
8 | sourceBankCode | String | Variable, 10 max | Wajib | – | Kode untuk mengidentifikasi bank yang mengeluarkan kode VA |
9 | amount | money | Variable | Wajib | – | Jumlah uang yang terlibat dalam suatu transaksi |
10 | feeAmount | money | Variable | Wajib | – | Jumlah biaya yang dikenakan dalam suatu transaksi |
11 | additionalInfo | JSON Object | Variable | Wajib | – | informasi tambahan yang disertakan dalam suatu transaksi |
12 | additionalInfo.transactionStatus | String | Variable, 32 Max | Wajib | – | Kode status transaksi: 00: Success 03: Pending 06: Failed |
13 | additionalInfo.transactionStatusDesc.english | String | Variable, 32 Max | Wajib | – | Deskripsi status transaksi dalam bahasa Inggris: 00: Success 03: Pending 06: Failed |
14 | additionalInfo.transactionStatusDesc.indonesia | String | Variable, 32 Max | Wajib | – | Deskripsi status transaksi dalam bahasa Indonesia: 00: Sukses 03: Tertunda 06: Gagal |
15 | additionalInfo.referenceNo | string | variable 10 max | wajib | ID transaksi yang dibuat oleh provider yang merepresentasikan transaksi yang sedang berlangsung | |
16 | additionalInfo.balance | money | Variable | Wajib | – | Jumlah uang yang tersedia dalam suatu akun |
17 | additionalInfo.callbackUrl | String | Variable, text | Optional | – | URL yang digunakan oleh sistem untuk mengirimkan response atau notifikasi otomatis setelah suatu transaksi atau proses selesai |
18 | additionalInfo.remark | String | Variable, text | Optional | – | Keterangan tambahan yang disertakan dalam suatu transaksi |
Contoh Response
{
"responseCode": "2004600",
"responseMessage": "Successful",
"virtualAccountData": {
"partnerServiceId": " 34737",
"customerNo": "34343444",
"inquiryRequestId": "DNqGRh5wcH1b0E4",
"virtualAccountNo": "8870800187732330",
"sourceBankCode": "013",
"amount": {
"value": "32000.00",
"currency": "IDR"
},
"feeAmount": {
"value": "3000.00",
"currency": "IDR"
},
"additionalInfo": {
"transactionStatus": "03",
"transactionStatusDesc": {
"english": "Pending",
"indonesia": "Tertunda"
},
"referenceNo": "VAO000002U",
"callbackUrl": "http://127.0.0.1:10007/callback/partner",
"remark": "",
"balance": {
"value": "914000.00",
"currency": "IDR"
}
}
}
}
Kode dan Pesan Response
No | Response Kode | Response Pesan | Keterangan |
---|---|---|---|
1 | 2004600 | Successful | Request telah berhasil diproses tanpa ada masalah |
2 | 4004601 | Invalid Field Format | Panjang informasi tidak boleh melebihi 150 karakter |
3 | 4004602 | Invalid Wajib Field | Kolom atau field yang wajib diisi tidak lengkap atau formatnya tidak sesuai dengan yang diharapkan |
4 | 4014600 | Unauthorized. [reason] | Kesalahan umum yang terjadi ketika pengguna atau sistem tidak memiliki izin untuk mengakses tindakan tertentu |
5 | 4014601 | Invalid Token (B2B) | Token akses yang digunakan untuk otentikasi tidak sah atau sudah kedaluwarsa |
6 | 4034601 | Feature Not Allowed | Fitur yang diminta tidak diizinkan atau tidak tersedia |
7 | 4034602 | Exceeds Transaction Amount Limit | Jumlah uang terkecil atau terbesar yang dapat diproses dalam transaksi |
8 | 4034603 | Invalid Transaction | Transaksi yang dilakukan tidak sah atau tidak valid |
9 | 4044603 | Bank Not Supported By Switch | Bank yang digunakan tidak didukung oleh sistem |
10 | 4044611 | invalid account | Akun tidak valid atau inquiryRequestId tidak dapat ditemukan dalam sistem |
11 | 4094600 | Conflict | X-EXTERNAL-ID tidak dapat digunakan lebih dari sekali dalam satu hari yang sama |
12 | 5004602 | Backend system failure | Kesalahan yang terjadi di server saat mencoba memproses request |