I was recently sitting at lunch with a foreign customer. I explained our payment methods, including virtual accounts and he was extremely puzzled. How could Indonesia’s bank transfer system be so ancient. Here goes.
Banks have typically competed on network effect in the same bank. They are not incentivised to make life easy between banks. If all my friends or business partners are with one bank, then I’m likely to open an account at that bank. This set of incentives has meant very siloed banking infrastructure and high cost of transfers between banks. The Central Bank needed to step in to force the banks to have some interoperability.
For example, BCA, the biggest bank makes life pretty easy if you’re transferring to other BCA customers, it’s free and easy-ish. Their game is to try push users to keep creating BCA bank accounts because everyone else uses BCA bank accounts.
Current state of affairs
This competitive landscape means you have very painful interbank transfers.
- You don’t know who paid you. If you send funds from Bank A to Bank B, Bank B likely doesn’t show you who paid you, the time they paid you nor any useful details for identifying that transaction. You can workaround with manual processes (sender sends screenshot of payment receipt) but this doesn’t scale.See the image below where the description tells you nothing useful. It looks like a random string of information and some identifying ID for the bank but it’s not useful to us.
- Your bank statement is unreliable. For example, our bank statement will say we paid someone, provide references numbers and funds will be deducted from our balance. However, the next day 100 transactions disappear from the bank statement. When you call you find out that the bank also doesn’t know and the best thing to do is wait 2 weeks to “see what happens”
- Cost a lot. The banks charge for this, your team goes crazy trying to identify payments and eventually, your growth is stopped by the sheer volume of manual detections.
Virtual accounts – the current workaround
This set of competitive forces means that banks have come up with a fairly creative solution they can charge you for. We can create temporary virtual accounts that act as a unique identifier for a payment. Let’s say I want to buy a pair of shoes from your website. You’ll create a virtual account 12345-12345678 that I pay into. When money hits that virtual account you know it’s meant to be for the pair of shoes I want. That virtual account can then be decomissioned or used later for a different invoice.
These virtual accounts are available at all the banks and become the default way to detect funds at scale. What our customers find is end user error rates drop from 20-30% down to 5% by moving to virtual accounts. Asking customers to enter in a unique code or pay in manually takes a tonne of time and causes extra cognitive effort on both ends. Virtual accounts are automatic, can detect funds within 2 minutes and are scalable. Incidentally, Xendit supports connections to the major banks: BCA, Mandiri, BNI and BRI.
Fixed vs non-fixed virtual accounts
There are two types of virtual accounts in our world. Fixed virtual accounts are tied to a constant entity and don’t change over time. For example, if I’m a borrower needing to repay a loan, then I want to pay into the same virtual account over and over again.
Non-fixed virtual accounts are tied to an invoice. They’re more relevant for one-off use cases. For example , let’s say you sell shoes but don’t know my identity. In this case, it makes more sense for the virtual account to be tied to an invoice so I can pay into it and then the virtual account can be used again.
Want virtual accounts?
Chat to us instantly on any webpage or email us at firstname.lastname@example.org. We aggregated virtual accounts so one integration with us means you get virtual accounts at the major banks. You don’t have to negotiate with each one nor integrate with each one individually.
The real solution
These are lovely workarounds but don’t represent good solutions. We’ve seen two other models which work to actually solve this problem
Option 1 – share information
In other markets, banks have agreed to share originating account information, e.g. sender name. This would likely need to be enforced by the Central Bank in this competitive context.
Option 2 – autodebit
Another alternative is to allow payments to be pulled directly from the origin. For example, I give the shoe company the right to pull funds from my account to the tune of $50. The digital authorisation means funds can be pulled and payment detected easily without my security compromised.