4

I recently became the bursar of my sports club. My most frequent duty is to make payments. I get a bill, usually on a piece of paper, log in into our bank's online banking interface, and make a SEPA transfer.

Handling these amounts of money makes me somewhat nervous, especially because I'm frequently typing long IBANs into a field. I concentrate as best as I can and triple-check, but I'm not infallible. So I wondered: is there some safeguard against making the transfer to the wrong account? I know that a credit card number contains a kind of error correction, such that a digit must match some mathematical transformation of the other digits. Is this the case for an IBAN? Or is there a chance that I send last winter's swimming pool usage money to somebody else and not the municipality?

If it is possible to mistype a number, is there some system which reduces the chance of human error?

5

Yes IBAN is constructed as 2 Char of ISO Country Code, 2 Char of Mod Check plus BBAN [Basic Bank Account Number]. In quite a few countries the BBAN also has a mod check.

So in short if you type an character/number incorrect, it will not go to wrong payee, but returned as incorrect account number.

More at wiki

  • If he types a number incorrectly in the BBAN, it is still possible for it to go to the wrong payee – Bishop May 11 '15 at 16:20
  • @Bishop the Wikipedia information says that it will catch almost all single digit errors and most two digit errors, no matter in which part. Which case did you have in mind? – rumtscho May 11 '15 at 16:52
  • @rumtscho Any case where the typos in entering the number make the account number equivalent to another valid account. I just wanted to make explicit that it was still possible, although much more unlikely – Bishop May 11 '15 at 17:02
  • @bishop both this answer and Wikipedia state that this won't happen. If you have different information, you can post it in a separate answer and explain why the error correction won't help. – rumtscho May 11 '15 at 17:07
  • 1
    @Bishop of course they are not entirely eliminated, no error checking algorithm in the world can do that. But look at the description of the actual algorithm. An error in the BBAN is not sufficient; I'd have to make a mistake in both the BBAN and in a checking digit, such that the BBAN exists at that bank and the checking digits fit the new account number. The chances of that are astronomically small. – rumtscho May 11 '15 at 17:14
5

IBANs have two check digits calculated by rearranging the other digits and country code, interpreting them as a big number and compute the remainder when dividing by 97, i.e. modulo 97.

The two resulting check digits directly follow the country code in the IBAN.

This is error detection and provides limited correction in theory: A single wrong digit could be corrected because there are no two integer numbers both divisible by 97 which differ by only a digit.

In practice, however, banks will refrain from correcting you, instead just indicating an error in your number, because you may have other digits wrong, and no bank will want to come up for the money if it goes to the wrong destination.

It is therefore your liability to enter the correct number.

Further note: As @Dheer has said, some countries may also have an additional check on the BBAN, which may follow additional structure that also allows for further checks.

For example, German IBANs are made up of a bank code and a zero-padded bank-specific account number. If you have a current and complete list of valid German bank codes, you could tell whether the first IBAN digits can be valid. The bank-specific account number may include check digits, depending on the issuing bank.

Fun fact: 97 was probably chosen because it is the largest two-digit prime number. Prime numbers minimize equal remainders for different dividends, and being close to a 3-figure number makes it very rare to trivially have two wholly divisible numbers (or relatedly, two numbers divisible with same remainders, i.e. "equal modulo 97") that differ in the least significant two digits. You add 97 to almost any number and get an overflow in the hundreds.

  • Thank you, this is a very nice answer. I don't even insist on the bank correcting me, as long as it stops the transaction once an incorrectly typed number is discovered, and as far as I understand, the probability of discovering an incorrect number is very high. – rumtscho May 19 '15 at 11:48
  • @rumtscho: given that there are two numeric check digits, I'd expect the probability of detecting an incorrect number to be exactly 99%. – Michael Borgwardt May 19 '15 at 12:29

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.