xendit docs

Eror (Errors)

Kesalahan Umum pada Koleksi

Bagian ini akan menjelaskan kesalahan umum yang mungkin terjadi pada sistem koleksi kami:

Mengirimkan jumlah yang salah

Jika terjadi kesalahan pembayaran jumlah, ada dua kemungkinan skenario yang dapat terjadi:

Skenario A - jumlah yang tidak cocok

atau

Skenario B - jumlah yang cocok dengan invoice yang dihasilkan untuk pengguna yang berbeda karena jumlah yang dikirim dengan tidak sengaja cocok dengan invoice tertentu.

Bagian ini menjelaskan cara menangani Skenario A. Lihat bagian "Membayar Invoice yang Salah" untuk penjelasan tentang cara menangani Skenario B.

Skenario A adalah kejadian yang paling umum. Misalnya seorang pengguna yang seharusnya membayar 100.001 justru membayar 100.002 dan karena itu pembayaran tidak cocok dengan invoice manapun.

Berikut beberapa cara untuk menangani masalah ini:

  • Jika Anda menggunakan non-fixed virtual account , sistem kami akan secara otomatis memberi tahu Anda melalui email ketika sistem mendeteksi jumlah pembayaran yang tidak cocok kepada salah satu nomor virtual account dalam rentang nomor virtual account yang diberikan kepada Anda. Untuk menerima notifikasi melalui email ini, silahkan registrasi email Anda pada Settings > Configuration > Recipients of emails .

  • Jika Anda menggunakan antarmuka invoice kami, kami menemukan pengguna umumnya menghubungi kami melalui live chat tentang status pengiriman mereka. Kemudian kami meminta bukti pembayaran dan masalah diselesaikan dengan mencocokkan jumlah yang dibayar dengan invoice yang sesuai.

  • Jika pengguna tidak menghubungi kami atau jika Anda menggunakan antarmuka invoice Anda sendiri maka yang terjadi adalah sebagai berikut: Ketika jumlah tidak cocok, akan terlihat pada dasbor internal Xendit. Kami menjalankan jumlah yang tidak cocok ini melalui berbagai aturan untuk menemukan invoice yang paling mungkin dan akan menghubungi tim Anda ketika kami mengidentifikasi invoice tersebut milik Anda.

  • Jika kami tidak dapat menemukan ke mana seharusnya uang tersebut dikirimkan, kami meminta bank untuk mengembalikan uang kepada pengirim.

Membayar invoice yang salah

Situasi akan menjadi lebih rumit ketika pengguna mengirimkan jumlah uang yang salah yang cocok dengan sebuah invoice yang dibuat untuk pengguna lain. Pada kasus ini, pengguna pada umumnya akan menghubungi tim customer support kami dan kami akan bekerjasama untuk memindahkan uang ke invoice yang tepat. Kami menyarankan Anda untuk menyediakan chat box untuk mempermudah pengguna menghubungi tim kami ketika hal ini terjadi.

Nomor virtual account tidak valid

Sebuah transaksi akan gagal jika nomor virtual account tidak ada (sama seperti ketika nomor rekening bank yang asli tidak valid). Pada sebagian kasus, nomor virtual account tersedia tapi nomor tersebut mengacu ke transaksi atau pengguna yang berbeda. Untuk skenario ini, kami bergantung kepada pengirim untuk menghubungi customer support untuk memperbaiki pembayaran mereka yang salah. Kami bekerja erat dengan tim Anda untuk memastikan penanganan yang tepat waktu untuk masalah tersebut.

Invoice kedaluwarsa

Setiap invoice yang dibuat memiliki masa berlaku yang Anda tetapkan pada konfigurasi awal. Jika pengguna mengirim uang ketika invoice sudah kedaluwarsa maka kami dapat membantu pengembalian dana. Pengirim (atau tim customer support Anda) harus menghubungi tim kami dan memberi kami nomor rekening bank untuk pengembalian dana.

Kesalahan Umum pada Fitur Pembayaran

Berikut adalah daftar eror umum yang Anda mungkin temui ketika menggunakan API Pembayaran kami. Untuk penjelasan yang singkat, kami membagi eror tersebut menjadi 2 kategori:

  • Response eror yang diterima dari API gateway kami

  • Kode eror yang diterima pada callback kami tentang kegagalan pengiriman

Eror Response (API)

Masukan API tidak valid

Kami akan mengembalikan response eror jika masukan ke dalam API tidak memenuhi Persyaratan validasi API kami.

Mengirim uang kurang dari jumlah minimum atau lebih dari jumlah maksimum

Setiap bank memiliki jumlah minimum dan maksimum transaksi. Kami akan mengembalikan response eror jika jumlah pengiriman yang diminta tidak memenuhi batas yang sudah ditentukan. Di bawah merupakan tabel yang berisi jumlah minimum dan maksimum pengiriman yang terbaru untuk setiap pengiriman untuk bank tujuan tertentu:

BANK TUJUAN BCA, MANDIRI, BNI, BRI, SINARMAS, CIMB, PERMATA BANK LAIN
Karakter

Angka bulat

Angka bulat

Jumlah maksimum pengiriman (tiap pengiriman)

Tidak ada batas***

Rp 25.000.000

Jumlah minimum pengiriman (tiap pengiriman)

Tidak ada batas

Rp 10.000

*** Meskipun secara teori tidak ada batas maksimum pengiriman untuk bank-bank tersebut, kami mungkin harus melaporkan semua transaksi dengan jumlah di atas Rp 100.000.000 kepada pihak yang berwenang di Indonesia dengan melampirkan dokumentasi pendukung terkait transaksi tersebut.

Server Error

Kami akan mengembalikan respon error SERVER_ERROR jika server kami mengalami gangguan dan tidak dapat memberi konfirmasi status dari pembayaran Anda.

Mohon cek status pembayaran terkait terlebih dahulu sebelum Anda mencoba ulang pembayaran yang sama. Anda dapat melakukan pengecekan melalui Dashboard atau menggunakan API Get disbursements by external_id. Apabila permintaan pembayaran Anda tidak diterima oleh sistem kami, kami rekomendasikan untuk mengirim ulang permintaan pembayaran dalam waktu 1-2 jam.

Kode Eror ( Callbacks )

Kami mengembalikan kode eror dalam callback kami di mana pembayaran gagal untuk alasan tertentu. Penting Anda ketahui setiap kode eror secara detail untuk menentukan aksi yang harus dilakukan. Berikut adalah daftar semua kemungkinan kode eror yang mungkin Anda terima, dengan sedikit penjelasan tentang arti dan aksi yang disarankan dan seusai untuk setiap kode eror.

S/N KODE EROR PENJELASAN DETAIL REKOMENDASI PERCOBAAN ULANG
1. INSUFFICIENT_BALANCE

Saldo tidak mencukupi


Tidak terdapat cukup saldo di akun Anda untuk melakukan pembayaran dengan jumlah yang diinginkan.

Haruskah saya mencoba lagi ? ✅


Iya, silakan lakukan pembayaran kembali setelah memastikan bahwa Anda memiliki saldo yang cukup pada akun Anda.

2. UNKNOWN_BANK_NETWORK_ERROR

Eror tidak diketahui bank


Kasus ini berarti bank menyampaikan eror yang mereka belum dokumentasikan, kami belum pernah menemukannya sebelumnya atau bank menentukan mereka tidak yakin apa yang harus dilakukan. Menurut definisi, eror ini berarti bank tidak mengetahui masalah tersebut.

Haruskah saya mencoba lagi ? ❗


Sangat disayangkan kami tidak dapat memprediksi apakah pembayaran akan berhasil ketika Anda mencoba lagi dengan permintaan pembayaran yang sama. Akan tetapi, Anda dapat memilih untuk mencoba lagi permintaan pembayaran yang sama paling cepat satu jam setelah menerima callback kami dengan kebijaksanaan Anda sendiri.

3. TEMPORARY_BANK_NETWORK_ERROR

Downtime tak terduga


Kami memiliki rutinitas downtime bank pada sistem kami dan menyimpan permintaan yang diterima untuk sementara selama periode ini sehingga ketika server bank kembali bekerja, semua pembayaran dapat segera dilakukan. Akan tetapi, bank di Indonesia secara rutin mengalami downtime tak terduga yang berdurasi 1-3 jam. Hal ini mungkin terjadi karena adanya pemeliharaan tak terduga atau pusat data yang berhenti bekerja.

Haruskah saya mencoba lagi ? ✅


Iya, silakan lakukan pembayaran kembali dalam 1-3 jam.

4. SWITCHING_NETWORK_ERROR

Masalah perpindahan jaringan


Perpindahan jaringan membantu pembayaran yang bersangkutan untuk pengiriman instan. Dengan demikian, saat penyedia perpindahan jaringan memiliki masalah, pengiriman dana akan gagal.

Haruskah saya mencoba lagi ? ✅


Iya, silakan lakukan pembayaran kembali dalam 1-3 jam.

5. INVALID_DESTINATION

Akun tujuan tidak valid


Eror ini terjadi ketika channel perbankan memberi tahu kami bahwa akun tersebut tidak valid. Umumnya, hal ini berarti akun belum terdaftar pada bank tujuan atau bank memblokir akun tersebut. Hal ini juga terjadi untuk akun bank yang baru saja dibuat yang belum dimasukkan ke dalam basis data nasional.

Haruskah saya mencoba lagi ? ❗


Sangat kecil kemungkinan Anda untuk berhasil jika mencoba lagi permintaan pembayaran yang sama.
Akan tetapi, ada kalanya bank dengan keliru memberitahu kami bahwa sebuah akun bank yang sudah ada sebenarnya tidak ada. Ini merupakan masalah integritas bank di Indonesia dan terkadang diselesaikan dengan mencoba kembali transaksi paling cepat satu jam setelah menerima callback kami atau dengan menghubungi bank tujuan secara langsung untuk informasi lebih lanjut.

6. REJECTED_BY_BANK

Pengiriman ditolak oleh bank


Baik bank pengirim maupun bank tujuan dapat menolak pengiriman dana untuk berbagai alasan. Hal ini merupakan eror bank yang umum dan bank tidak harus memberi kami detail untuk kegagalan tersebut.

Haruskah saya mencoba lagi ? ❗


Sangat disayangkan kami tidak dapat memprediksi apakah pembayaran akan berhasil ketika Anda mencoba lagi dengan permintaan pembayaran yang sama. Akan tetapi, Anda dapat memilih untuk mencoba lagi permintaan pembayaran yang sama paling cepat satu jam setelah menerima callback kami dengan kebijaksanaan Anda sendiri.

7. TRANSFER_ERROR

Eror fatal


Kami menemukan kesalahan yang fatal saat memroses pembayaran tersebut. Umumnya, eror ini berarti adanya masukan API dalam permintaan yang tidak valid.

Haruskah saya mencoba lagi ? ❗


Kecil kemungkinan permintaan pembayaran yang sama akan berhasil jika Anda mencoba lagi. Silahkan hubungi tim customer support kami untuk informasi lebih lanjut.

8. TEMPORARY_TRANSFER_ERROR

Eror sementara


Kami menemukan sebuah masalah ketika mencoba memroses pembayaran tersebut. Umumnya masalah ini dapat diselesaikan dalam 1-2 jam setelahnya.

Haruskah saya mencoba lagi ? ✅


Iya, silahkan mencoba lagi pembayaran dalam 1-2 jam.

Pertanyaan?

Masih memiliki pertanyaan? Dengan senang hati kami akan membantu Anda. Kirimkan email atau pesan melalui live chat .

Common Errors on Collections

This section will cover some of the common errors that can occur on our collections system:

Transferring incorrect amounts

If someone pays an incorrect amount, two possible scenarios can occur:

Scenario A - the amount is unmatched

or

Scenario B - the amount is matched to an invoice generated for a different user because the transferred amount accidentally matches with that particular invoice.

This section deals with Scenario A. See “Paying the Wrong Invoice” section for how to resolve Scenario B.

Scenario A is by far the most common. For example, a user, who is meant to pay 100.001, pays 100.002 instead, and therefore the payment does not match any of the invoices generated.

Here are several ways of how we resolve this error:

  • If you are using our non-fixed VA,our system will automatically notify you via email when system detect unmatched amount paid to one of the virtual account number in the virtual account number range allocated for you. To receive this email notification, please go to Settings > Configuration > Recipients of emails and register your emails.

  • If you are using our invoice UI, we find that users will typically reach out to our live chat to ask about the status of their transfer. We can then request a proof of payment and the issue is resolved by matching the amount paid to the relevant invoice.

  • If users do not reach out to us or if you are using your own invoice UI, then the following occurs: When an amount is unmatched it shows up in Xendit’s internal dashboard. We run this unmatched amount through various rules to locate the most likely invoices and will contact your team when we think it’s yours.

  • If we cannot figure out where the money is meant to go, we engage the bank to return the money back to the sender.

Paying the wrong invoice

Things get more complicated when a user sends an incorrect amount of money that matches an invoice generated for a different user. In this case, the user will usually contact our customer support team and we would work together to reroute the money to the correct invoice. We recommend that you provide a chat box to make it easier for users to contact our team when these things happen.

Invalid virtual account number

A transaction will fail if a virtual account number does not exist (just like it would if the real bank account number was invalid). In some cases, the virtual account number is available but it refers to different transaction/user. In that scenario, we rely on the sender reaching out to customer support (yours or ours) to rectify their incorrect payment. We work closely with your team to ensure timely resolution of these errors.

Expired invoice

Every invoice issued has an expiration time that you set upon initial configuration. If the sender transfers the money when the invoice is expired then we can help refund the money. The sender (or your customer support team) will have to contact our team and give us the bank account number for the refund.

Common Errors in Disbursements

Below is a list of common errors you may encounter while using our Disbursements APIs . For simple understanding, we’ve split them into 2 categories:

  • Error responses received from our API gateway

  • Error codes received in our callbacks in respect of failed disbursements

Error Responses (APIs)

Invalid API fields

We will return an error response if the input entered into the API fields do not meet our API validation requirements .

Sending money below the minimum amount or above the maximum amount

Every bank has a minimum and maximum transaction amount. We will return an error response if the transfer amount requested does not conform to the prescribed limits. Below is an updated table setting out the minimum and maximum transfer amounts per transfer per destination bank:

DESTINATION BANK BCA, MANDIRI, BNI, BRI, SINARMAS, CIMB, PERMATA OTHER BANKS
Characters

Numerical integers, no decimals

Numerical integers, no decimals

Maximum transfer limit (per transfer)

No limit***

Rp 25.000.000

Minimum transfer limit (per transfer)

No limit

Rp 10.000

*** While there is theoretically no maximum transfer limit for transfers to these banks, please note that we may have to report all transaction amounts above Rp 100.000.000 to the financial authorities in Indonesia along with supporting documentation regarding the underlying transactions.

Server Error

We will return a SERVER_ERROR error response if there was an error connecting to our server when you were attempting to create a disbursement request.

Please check if the disbursement has already been created in our system before deciding whether to try again. You can do so by checking for the disbursement on your Dashboard or via the Get disbursement by external_id API. If the disbursement has not been created, please retry the disbursement request in 1-2 hours.

Error Codes (Callbacks)

We return error codes in our callbacks where disbursements fail for any reason. It is important that you understand each error code in detail in order to decide on the appropriate action to take. Below is a comprehensive list of the possible error codes that you may receive, as well as short commentaries on what they mean and what our corresponding suggested action is.

S/N ERROR CODE DETAILED EXPLANATION RETRY RECOMMENDATION
1. INSUFFICIENT_BALANCE

Insufficient balance


There is insufficient balance in your account to make the disbursement in the desired amount.

Should I retry ? ✅


Yes, please retry the disbursement after ensuring that you have sufficient balance in your account.

2. UNKNOWN_BANK_NETWORK_ERROR

Bank unknown error


This means the bank has delivered an error they haven't documented, we haven't encountered before or the bank has specified they aren't sure what to do. By definition, this means the bank doesn't know the issue.

Should I retry ? ❗


Unfortunately, we are unable to predict whether the disbursement will succeed should you retry the same disbursement request. You may however choose to retry the same disbursement request at least one hour after receiving our callback at your own discretion.

3. TEMPORARY_BANK_NETWORK_ERROR

Unexpected downtime


We have hardwired routine bank downtime in our system and queue requests received during this period so that they may be disbursed as soon as bank servers are back up again. However, Indonesian banks regularly experience unexpected downtime that typically last 1-3 hours. These may be caused by unexpected maintenance or data centres going down.

Should I retry ? ✅


Yes, please retry the disbursement in 1-3 hours.

4. SWITCHING_NETWORK_ERROR

Switching network issue


Switching networks provide the underlying payments rails for instant transfers. As such, when the switching network provider is having issues, the fund transfer will fail.

Should I retry ? ✅


Yes, please retry the disbursement in 1-3 hours.

5. INVALID_DESTINATION

Invalid destination account


This error occurs when a banking channel tells us an account is invalid. Typically, this means that the account is not yet registered at the destination bank or the bank has blocked the account. This also occurs for newly created bank accounts which have yet to be updated to national databases.

Should I retry ? ❗


You are unlikely to succeed if you retry the same disbursement request.
However, there are times when the banks erroneously tell us that an existing bank account doesn't exist. This is an Indonesian bank integrity issue and sometimes is solved by retrying the transaction at least one hour after receiving our callback or by contacting the destination bank directly for more information.

6. REJECTED_BY_BANK

Transfer rejected by bank


Either the sending bank or destination bank can reject fund transfers for a variety of reasons. This is a generic bank error and the banks don't necessarily provide us the details for the failures.

Should I retry ? ❗


Unfortunately, we are unable to predict whether the disbursement will succeed should you retry the same disbursement request. You may however choose to retry the same disbursement request at least one hour after receiving our callback at your own discretion.

7. TRANSFER_ERROR

Fatal error


We’ve encountered a fatal error while processing this disbursement. Normally, this means that certain API fields in your request are invalid.

Should I retry ? ❗


It is unlikely that the same disbursement request will succeed if you retry. Please contact our customer support team for more information.

8. TEMPORARY_TRANSFER_ERROR

Temporary error


We’ve encountered an issue while attempting to process this disbursement. From experience, this issue should be resolved within the next 1-2 hours.

Should I retry ? ✅


Yes, please retry the disbursement in 1-2 hours.

Questions?

Still have more questions? We're always happy to help however we can. Shoot us an email or chat to us in live chat.