At least in the UK, it is often best to pay money to people via bank transfer. This is the process where the payer enters the bank account number of the payee into some system and then the money is moved directly from bank account to bank account. It is easy and costs nothing (in the UK). I used to use it all the time for paying rent and similar bills.
It is surprising to hear that errors regularly occur in this process. People type in an incorrect bank account number and so the wrong person receives the money. Obviously in some distress, the payer contacts the bank to fix the problem, but the bank doesn’t see it as their problem. Pushing or getting the media involved often gets the required results (see here, here, here and many more online stories).
I’m not surprised people type the account number incorrectly; that is always going to happen. I’m surprised that such an error results in a valid bank account. If the bank account number included a checksum, then an incorrectly transcribed number is unlikely to still be valid. Credit cards use a checksum algorithm and this is why when you type one incorrectly the response is “invalid card number” rather than the wrong account being charged. However, bank account numbers seem to rarely use this simple error-checking technology (codes by country are listed here). Why not? Perhaps when the bank account system was established many decades ago, checksums were not seem as important. Either because there was a person (the local bank manager) in the loop to double check the numbers, or because checksums were too computationally costly (especially if humans had to do the calculation themselves as computers weren’t available). Of course now people use the Internet to make transfers and the whole process is performed by computers without human interference, and the cost of using checksums is miniscule on even relatively old processors.
Banks could add checksums now, placing an optional extra character to the end of bank account numbers (several countries have done this). In the UK this would be a huge act of customer service. However, from experience I would doubt the banks interest in serving their customers. At the moment any errors cost the banks little and changing the system would be expensive. The core computer programs handling bank accounts and transfers between them are ancient COBOL programs (at least at the bank where I worked). Rules like the number of digits in a bank account are hardcoded and changing them would cascade through various systems. Testing the change would be a massive task in itself. I can’t imagine any bank voluntarily undertaking such a project - especially as most banks are determined to reduced IT costs. Too bad for bank customers.