How is an IBAN actually structured?
An IBAN in Germany consists of
|National bank code
|BBAN (Basic Bank
To summarize it in a simple way:
We can't detect all wrong IBANs with our system, only those where e.g. a number mistake happened while typing or the basic format is not correct. The validation is somewhat better than e.g. with e-mail, where only the format is taken into account, nevertheless e.g. generated fake IBANs cannot be recognized as "wrong".
Therefore, our recommendation is: as often as possible to compare the IBAN with the bank card, we can also include a checkbox with the text "compared with bank card", which can also be mapped e.g. on the dashboard by a widget (% bank card compared - similar to opt-ins).
To describe it in more detail:
The IBAN consists of: 2-digit country code + 2-digit check digit + country-specific BBAN
The BBAN is a number of up to 30 digits, defined differently in each country, consisting of bank code and account number is just one of many examples.
Validated/detected as incorrect (offline):
1. country code (valid and from one of the 78 registered IBAN countries)
2. wrong character e.g. 4234 instead of 1234.
3. left/right offset
4. a large amount of 2 or more wrong characters (but not all)
However, the BBAN is more difficult to check, because at least one different algorithm is used for calculation in each country. In Germany, for example, a complex structure with 143 algorithms is used.