Checking and calculating an IBAN: what the 22 characters really mean

An IBAN is more than a long string of digits: the 22 characters of a German account number hold a country code, a check digit, a bank code and an account number, all built according to fixed rules. Once you understand that, you can spot typos, calculate the IBAN yourself from the bank code and account number and work out the matching BIC. This article explains, in plain terms, the structure, the Modulo 97 check method and the roughly 150 account-number check schemes, and shows how you can do all of it in seconds with the new IBAN tool on CalcSI. As of 2026.

IBAN, BIC and bank code: who does what

Since February 2016 you only need the IBAN for transfers within Germany and the SEPA area. It replaced the earlier combination of account number and bank code, but both are still contained within it. The IBAN is therefore not a new number, but a standardized packaging of the familiar details.

The BIC (Business Identifier Code, formerly SWIFT code) identifies a bank internationally. Within the SEPA area it is no longer needed today, because it can be derived from the IBAN. For payments to some countries outside the European Economic Area it is still required.

The bank code (Bankleitzahl, BLZ) finally is the eight-digit identifier of the bank that is contained in every German IBAN. Through it you can look up which institution an account belongs to and which BIC goes with it.

How an IBAN is structured

The IBAN is standardized under the ISO 13616 norm. Its length is fixed per country: in Germany it is 22 characters, in Austria 20, in the Netherlands 18. This fixed length is the first simple plausibility check, a German IBAN with 21 or 23 characters is guaranteed to be wrong.

A German IBAN breaks down into four blocks: the country code DE, a two-digit check digit, the eight-digit bank code and the account number padded to ten digits with leading zeros. From DE89 3704 0044 0532 0130 00 you can therefore read out the bank code 37040044 and the account number 0532013000.

The grouping into blocks of four serves only better readability. Technically the IBAN is one continuous string without spaces; when typing it into a banking app it makes no difference whether you separate the blocks with spaces or not.

The check digit: why typos show up immediately

The heart of every IBAN is the two-digit check digit in the third and fourth positions. It is calculated from the rest of the IBAN using the Modulo 97 method and makes the number self-checking. If you mistype a single digit, the checksum almost always no longer matches, and the banking app rejects the entry.

The calculation is surprisingly simple: the first four characters move to the end of the string, each letter is replaced by a number (A becomes 10, B becomes 11, up to Z becoming 35), and the resulting huge number is divided by 97. For a correct IBAN there is always a remainder of 1. Any other remainder means an error.

This method comes from the ISO 7064 norm and is so robust that it detects not only individual wrong digits but also most transposed digits. That is exactly why far fewer transfers land on the wrong account by accident today than back in the days of the plain account number.

Calculating an IBAN from bank code and account number

If you only have an old account number and the bank code, you can calculate the IBAN yourself. To do so you append the eight-digit bank code and the account number padded to ten digits. From this 18-digit number plus the country code, the Modulo 97 method calculates the check digit, which is placed between DE and the bank code.

For the vast majority of banks this standard calculation delivers the correct IBAN. There is, however, one important caveat: some institutions use special IBAN rules from the Deutsche Bundesbank, in which certain account numbers or bank codes are re-keyed before the calculation. This affects historical special cases, for example accounts from bank mergers.

So the rule is: if your bank is one of these special cases, you should compare the calculated IBAN with your bank statement or your bank's official IBAN before using it for the first time. In everyday life this is rarely necessary, because most banks have long used the standard rule.

The account-number check digit and its roughly 150 methods

Not only the IBAN but also the German account number itself contains a check digit. Unlike with the IBAN, however, there is not just one method for this, but roughly 150 different calculation methods. Which one applies depends on the bank and is stored for every bank code in the official Bundesbank bank-code file.

These methods carry codes such as 00, 13 or C7 and differ in their details: some weight the digits alternately with two and one, others calculate modulo 11 instead of modulo 10, and still others check only certain positions of the account number. For laypeople this is hard to grasp, but for a program it is unambiguously solvable.

The IBAN validator on CalcSI automatically recognizes the right method from the bank code and checks the account number accordingly. That way not only an error in the IBAN check digit shows up, but also a transposed digit in the account number itself, a safeguard that the plain IBAN check alone does not offer.

Determining the BIC and bank name from the IBAN

From the eight digits of the bank code in the IBAN the bank can be identified unambiguously. The Deutsche Bundesbank publishes a quarterly file for this that maps each bank code to the bank name, the BIC and the location. Anyone checking an IBAN can thus immediately see whether it really belongs to the expected savings bank, for instance.

That is handy in everyday life: before transferring a larger sum, you can check whether the bank name and location match the company given. If an IBAN supposedly comes from your regional utility company but, according to the check, belongs to a bank in a completely different country, caution is advised.

IBANs across national borders

The IBAN format applies across the entire SEPA area and in over 120 countries worldwide. The structure and Modulo 97 check work the same everywhere; only the length and the internal division into bank and account number differ from country to country. A French IBAN is 27 characters long, a Maltese one even 31, a Norwegian one only 15.

For a pure validity check, the combination of country code, expected length and checksum is therefore enough, and that is exactly what the IBAN validator does for foreign accounts too. The added convenience of automatically showing the bank name and BIC, however, remains reserved for German IBANs, because it relies on the official Bundesbank file and there is no comparable unified source for all countries.

Common mistakes and misunderstandings

The most important misconception: a valid IBAN does not mean that the account exists. Only the structure, length and check digits are verified. Whether there is a real, active account behind the number and who it belongs to is known solely to the account-holding bank. So never rely on a passed check alone when you pay an unknown payee.

A second pitfall is similar-looking characters. An IBAN contains only uppercase letters and digits; a zero is not a capital letter O. Anyone typing an IBAN from a photo or printout should watch for these mix-ups, even though the check digit exposes many of them anyway.

Third, there is a lingering worry that an IBAN is a secret. It is not: it appears on every invoice and every letterhead. A direct debit additionally requires a valid mandate, and in any case no one can trigger a transfer from your account without your consent. Even so, you should not carelessly enter your IBAN into dubious forms.

From checking straight to the GiroCode

Once an IBAN is correct, you often want to use it right away. Handy here is the link to the GiroCode, the QR code for SEPA transfers: from a checked IBAN you can generate, with one click, a payment code that any banking app can scan. The payee and IBAN are then fixed, and the payer no longer has to type anything.

On CalcSI the two tools are interlinked: after a successful check or calculation, a click on Create GiroCode leads straight into the QR code generator, where the IBAN is already pre-filled. That saves the detour of transferring it manually and rules out new typos.

Frequently asked questions

Can I determine the BIC from any IBAN? For German IBANs yes, using the Bundesbank file. For IBANs from other countries, the format, length and checksum can be checked, but a bank name is not shown, because no official German data source exists for that.

Is my bank data stored? With the IBAN tool on CalcSI, the IBAN is only processed for the check, not stored and not passed on to third parties. It is purely about the arithmetic verification, not a query to your bank.

Why is my self-calculated IBAN rejected? In most cases it is due to a transposed digit in the account number or bank code. Less often, your bank is one of the special cases with its own IBAN rule, in which case your bank will give you the correct IBAN directly.

How CalcSI tools help

You handle the whole process with the IBAN calculator and validator: calculate an IBAN, validate it and determine the BIC together with the bank name, including the account-number check digit. From a checked IBAN you create a GiroCode for SEPA transfers directly with the QR code generator. For financial questions around your account, the loan calculator helps with installments and interest, and the VAT calculator with converting between gross and net.

Note: A technically valid IBAN does not mean that the account exists or belongs to a particular person. Check the payee and IBAN carefully before every payment. This article is not a substitute for individual financial or legal advice.

Comments