- The Zoef approach to International Banking Numbers-

Norbert Ligterink, Control Engineering, University Twente, The Netherlands,
IBAN stands for international banking number and is concatenated, for each country differently, of the country code, bank details, branch details, and account details, except for the third and fourth digit, these are the checksum. They are comprised of all other details. I wrote a program, to check or generate these number from the rest of the IBAN.
For example, in the UK IBAN is: GB-nn-bank abbreviation-sort code-account number. The sort code indicates the branch, normally written as: 12-34-56. The account number is padded with zeros to a 8 digit number: 123456 would be 00123456. Royal Bank of Scotland would be "RBOS" as bank abbreviation. "nn" is the checksum.
To test a number, download the perl script

iban.pl

(and have a perl interpreter, which is freeware anywhere.)
type for example:

iban.pl GB00RBOS1234561234567890

It returns:

The IBAN: GB00RBOS1234561234567890
should be: GB42RBOS1234561234567890

Hence the checksum is "42".
type:

iban.pl GB42RBOS1234561234567890

it says:

The IBAN: GB42RBOS1234561234567890 is correct


iban.pl to calculate the correct IBAN number

print "USAGE: iban.pl nnnnnnnnnnnnnnn -or- (THIS HELP): iban.pl help

print "The IBAN number is a concatenation of account number, bank details, country details, and the third and fourth digit are the checksum, which is determined from all other details.

This program tests the checksum. If correct, it returns the checksum. If incorrect, it returns the right checksum, corresponding to the number. The IBAN number should be something like: NL56ABNA1234567890, country codes (ISO 2-letters) first.

Note: if you have the wrong account number, it can still generate a correct IBAN number for it!

The BIC (bank identifier code) is something else. It identifies country, bank, and branch.


Samples of IBAN standards in different countries

Country Code Length Example
Andorra AD 24 AD1200012030200359100100
Austria AT 20 AT611904300234573201
Belgium BE 16 BE68539007547034
Spain ES 24 ES9121000418450200051332
Netherlands NL 18 NL91ABNA0417164300
Ireland IE 22 IE29AIBK93115212345678
Iceland IS 26 IS140159260076545510730339
Italy IT 27 IT60X0542811101000000123456
Greece GR 27 GR1601101250000000012300695
Latvia LV 21 LV95HABA0055123456789
Liectenstein LI 21 LI21088100002324013AA
Lithuania LT 20 LT827300010002027432
Luxembourg LU 20 LU280019400644750000
Norway NO 15 NO9386011117947
Poland PL 28 PL61109010140000071219812874
Portugal PT 25 PT50000201231234567890154
France FR 27 FR1420041010050500013M02606
Sweden SE 24 SE3550000000054910000003
Germany DE 22 DE89370400440532013000
Slovenia SI 19 SI56191000000123438
Switzerland CH 21 CH9300762011623852957
Finland FI 18 FI2112345600000785
United Kingdom GB 22 GB29NWBK60161331926819
Denmark DK 18 DK5000400440116243
Czech Republic CZ 24 CZ6508000000192000145399
Hungary HU 28 HU12123456789012345678901234
Tunis TN 24 TN5914207207100707129648

Aufbau von IBAN der europäischen Ländern
Land Länge Struktur
Land
nach
ISO
IBAN
Prüf-
ziffer
Basic Bank Account Number
Int. max. 34 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
Andorra 24 A D p p BLZ Bereich Kontonummer
Belgien 16 B E p p BLZ Kontonummer p p
Bulgarien p p
Dänemark 18 D K p p BLZ Kontonummer p
Deutschland 22 D E p p BLZ Kontonummer
Estland 20 E E p p     Kontonummer p
Finnland 18 F I p p BLZ Kontonummer p
Frankreich 27 F R p p BLZ Bereich Kontonummer p p
Gibraltar 23 G I p p BLZ Kontonummer
Griechenland 27 G R p p BLZ Bereich Kontonummer
Großbritannien 22 G B p p BLZ Bereich Kontonummer
Irland 22 I E p p BLZ Bereich Kontonummer
Island 26 I S p p BLZ Typ Kontonummer Identifikationsnr.
Italien 27 I T p p p BLZ Bereich Kontonummer
Lettland 21 L V p p BLZ Kontonummer
Litauen 20 L T p p BLZ Kontonummer
Luxemburg 20 L U p p BLZ Kontonummer
Malta p p
Niederlande 18 N L p p BLZ Kontonummer
Norwegen 15 N O p p BLZ Kontonummer p
Österreich 20 A T p p BLZ Kontonummer
Polen 28 P L p p BLZ Kontonummer
Portugal 25 P T p p BLZ Bereich Kontonummer p p
Rumänien p p
Schweden 24 S E p p BLZ Kontonummer p
Schweiz 21 C H p p BLZ Kontonummer
Slowakei 24 S K p p BLZ Kto.nr. 1.Teil Kto.nr. 2.Teil
Slowenien 19 S I p p BLZ Kontonummer p p
Spanien 24 E S p p BLZ Bereich p p Kontonummer
Tschechien 24 C Z p p BLZ Kto. 1. Teil Kto. 2. Teil
Ungarn 28 H U p p BLZ Bereich p Kontonummer p
Zypern 28 C Y p p BLZ Bereich Kontonummer
     = Bankleitzahl (BLZ ) [Bank code ],      = Bereich innerhalb der Bank [Branch ],      = Kontonummer [Account number ]
The IBAN standard is issued by http://WWW.ECBS.org/
(UK) BIC numbers can be found here: http://www.bicdirectory.swift.com/biconline/index.cfm