The
International Bank Account Number
(
IBAN) is an international standard for
identifying
bank accounts across
national borders. It was originally adopted by the
European Committee for
Banking Standards, and was later adopted as an international
standard under ISO 13616:1997 and now as ISO 13616:2007. The
official IBAN registrar under ISO 13616:2003 is
SWIFT and the IBAN registry is currently at
SWIFT.
The IBAN was originally developed to facilitate payments within the
European Union but the format is
flexible enough to be applied globally.
The IBAN consists of a
ISO 3166-1
alpha-2 country code, followed by
two
check digits and up to thirty
alphanumeric characters for the domestic bank account number
(incorporating routing information), called the BBAN (Basic Bank
Account Number). It is up to each country's national banking
community to decide on the length of the BBAN for accounts in that
country, but its length must be fixed for any given country.
The IBAN should not contain spaces when transmitted electronically.
However, when printed on paper, the IBAN is expressed in groups of
four characters separated by a single space, the last group being
of variable length.
Background
Before IBAN, customers, especially individuals &
SME, used to be confused by the
differing national standards for bank account identification such
as bank, branch, routing codes and account number. This often led
to necessary routing information being missing from payments.
Furthermore routing information did not contain check digits, so
simple errors of transcription were not detectable and it was not
possible for a sending bank to validate the routing information
prior to submitting the payment. Routing errors were therefore
frequent causing payments to be delayed and incurred extra costs to
the sending and receiving banks and often to intermediate routing
banks also.
IBAN imposes a flexible but regular format sufficient for account
identification and contains validation information to avoid errors
of transcription.
The standard IBAN now carries all the routing information needed to
get a payment from one bank to another wherever it may be. IBAN
contains
check digiting which can be validated in any
country according to a single standard procedure. The IBAN contains
all the key bank account details such as
Bank
Identifier Code,
sort codes and
checksums and where used has reduced
trans-national money transfer errors to under 0.1% of total
payments.
In this way, the validity of a routing destination can be validated
by the sending bank (or its customer) from a single string of data
which contains all the necessary routing data to get money into the
destination account and routing errors in international (or
cross-border) payments are therefore virtually eliminated.
Examples of IBANs in written format.
- Greek IBAN: GR16 0110 1050 0000 1054 7023 795
- British IBAN: GB35 MIDL 4025 3432 1446 70
- Saudi Arabia IBAN: SA80 8000 0375 6080 1019 0160
- Swiss IBAN: CH51 0868 6001 2565 1500 1
- Israeli IBAN: IL30 0113 0300 0009 6339 234
Geographical usage
All banks in
Europe (except for the
Commonwealth of Independent
States) provide an IBAN identifier for their accounts as well
as nationally recognised identifiers.
In addition, Israel
, Tunisia
, Mauritius
, Turkey
, and
Saudi
Arabia
also provide IBAN format account
identifiers.
Banks in
the British dependencies (except Gibraltar
and the Crown Dependencies) do not use the IBAN
format, but this may be due to internal banking regulatory
issues. Banks in the Dutch West Indies also do not use the
IBAN format. Some banks outside Europe may not recognize IBAN,
though as time passes this is expected to diminish. Non-European
banks typically accept IBANs as bank account numbers for accounts
in Europe, although they might not treat IBANs differently to the
way they treat other foreign bank account numbers. In particular,
they might choose not to check that the IBAN is valid prior to
sending the payment.
In the absence of an IBAN it remains necessary to use the current
ISO 9362 Bank Identifier Code system
(
BIC or
SWIFT code) in
conjunction with the BBAN.
Banks in
the United
States
do not provide IBAN format account numbers.
Any adoption of the IBAN standard by U.S. banks would likely be
initiated by
ANSI ASC X9, the U.S.
financial services standards development organization but to date
it has not done so. Hence payments to U.S. bank accounts from
outside the U.S. are prone to errors of routing.
Canadian Credit Unions as a rule don't use SWIFT or IBAN for
transferring money. Canadian banks (mainly because of historical
trading ties to the
European Union)
generally do use IBAN on a limited basis. If you don't have a
commercial banking account some extra effort is required in order
to use the SWIFT transfer system in Canada. There is no formal
governmental or private sector regulatory requirement in Canada for
the major banks to use the SWIFT system or IBAN routing
codes.
Banks in
Australia and New Zealand
have not adopted IBAN, and tend to use Bank State Branch codes for domestic
transfers and SWIFT for
international.
Examples
Note:
kk after the two character ISO country code
represents the check digits calculated from the rest of the IBAN
characters
Algorithms
Calculating and validating IBAN checksums
The checksum is a basic ISO 7064 mod 97-10 calculation where the
remainder must equal 1.
To validate the checksum:
- Check that the total IBAN length is correct as per the country.
If not, the IBAN is invalid.
- Move the four initial characters to the end of the string.
- Replace each letter in the string with two digits, thereby
expanding the string, where A=10, B=11, ..., Z=35.
- Interpret the string as a decimal integer and compute the
remainder of that number on division by 97.
The IBAN number can only be valid if the remainder is 1.
Example (fictitious United Kingdom bank, sort code 12-34-56,
account 98765432):
IBAN: GB82 WEST 1234 5698 7654 32
Rearrange: W E S T12345698765432 G B82
Modulus: 3214282912345698765432161182 mod 97 = 1
The ECBS Standard provided method of calculating the checksum
yields a value in the range 02 to 98. The ranges 00 to 96, 01 to 97
and 03 to 99 would also pass the MOD 97-10 validation test but the
standard is silent as to whether or not these ranges may be used.
It does however issue the warning: "
Generation of the IBAN
shall be the exclusive responsibility of the bank/branch servicing
the account".
The preferred algorithm is:
- Check that the total IBAN length is correct as per the country.
If not, the IBAN is invalid.
- Replace the two checksum digits by 00 (e.g. GB00 for the
UK).
- Move the four initial characters to the end of the string.
- Replace the letters in the string with digits, expanding the
string as necessary, such that A=10, B=11 and Z=35. Each alphabetic
character is therefore replaced by 2 digits.
- Convert the string to an integer (i.e. ignore leading
zeroes).
- Calculate Mod-97 of the new number.
- Subtract the remainder from 98 and, if necessary, pad with a
leading 0 to make a two digit number.
Calculating the modulus of a large number
It is often not practical to perform these calculations directly on
a modern PC. However, by making use of the
modular arithmeticidentities
- :\left( {a + b} \right)\bmod k \equiv \left( {\left( {\left( a
\right)\bmod k} \right) + \left( {\left( b \right)\bmod k} \right)}
\right)\bmod k
- :and
- :\left( {a \times b} \right)\bmod k \equiv \left( {\left(
{\left( a \right)\bmod k} \right) \times \left( {\left( b
\right)\bmod k} \right)} \right)\bmod k
it is easy to show that
- :\left( D \right)\bmod k = \left( {\sum\limits_{i = 0}^n {d_i
a_i } } \right)\bmod k
where
- :D = \sum\limits_{i = 0}^n {d_i \times 10^i }
- :and
- :a_i = \left( {10^i } \right)\bmod k.
The sequence \left\{ {a_i \left| {i = 0 \ldots n} \right.}
\right\}is easily generated using the iterative relationship
- :a_0 = 1;\quad a_{i + 1} = \left( {a_i \times 10} \right)\bmod
k
This algorithm is particularly useful if the large number whose
modulus is to be found is expressed as an ASCII string from which
the elements d_ican easily be extracted rather than as a binary
number. In practice this algorithm can be performed using 16-bit
integer arithmetic even though Ditself might be 30 or more digits
in length.
Security and Privacy
It is possible to publish personal or corporate IBAN bank account
routing information for a bank account, as many businesses do for
their
transit accounts(where payments are routinely
swept outand transferred to the proper internal corporate
account).
Online tools
Although many IBAN calculators exist, a valid IBAN can only be
obtained from the account servicing financial institution. The
underlying ISO demands that only the account servicing financial
institution is entitled to issue an IBAN.
- Free IBAN Validation Service for all 48 countries
that have adopted the IBAN standard, multilingual in 30 languages
(BG,CA,CZ,DA,DE,EL,EN,ES,ET,FI,FR,HR,HU,IT,JA,LT,LV,NL,NO,PL,PT,RO,RU,SK,SL,SQ,SR,SV,TR,ZH),
provided by the UN CEFACT TBG5. The
source code of the verification algorithm is available as a
Javascript file.
See also
External links
References
| Country |
Digits |
IBAN Format |
Comment |
Albania |
28 |
ALkk BBBB BBBB CCCC CCCC CCCC CCCC |
B = bank code, C = account No. |
Andorra |
24 |
ADkk BBBB SSSS CCCC CCCC CCCC |
B = bank code, S = sort code, C = account No. |
Austria |
20 |
ATkk BBBB BCCC CCCC CCCC |
B = bank code, C = account No. |
Belgium |
16 |
BEkk BBBC CCCC CCKK |
The last 12 digits represent: B = bank code (numeric), C =
account No., K = check digits |
Bosnia and Herzegovina |
20 |
BAkk BBBS SSCC CCCC CoKK |
B = bank code, S = sort code, C = account No., K = check
digits |
Bulgaria |
22 |
BGkk BBBB SSSS DDCC CCCC CC |
B = alphanumeric bank code (first four letters of SWIFT BIC), S
= Branch (BAE) number, D = numeric account type, C = alphanumeric
account No. Introduced on June 5, 2006. |
| Channel Islands |
|
|
Bailiwicks of Guernsey and Jersey (Use either
France or UK codes, dependant upon format chosen by
bank) |
Croatia |
21 |
HRkk BBBB BBBC CCCC CCCC C |
B = bank code, C = account No. |
Cyprus |
28 |
CYkk BBBS SSSS CCCC CCCC CCCC CCCC |
B = bank code, S = sort code, C = account No. |
Czech Republic |
24 |
CZkk BBBB SSSS SSCC CCCC CCCC |
B = bank code, S = sort code, C = account No. |
Denmark |
18 |
DKkk BBBB CCCC CCCC CC |
B = bank No., C = account No. (Separate application in Faroe
Islands and Greenland, see separate entries) |
Estonia |
20 |
EEkk BBSS CCCC CCCC CCCK |
B = bank code, S = sort code, C = account No., K = check
digit |
Faroe Islands |
18 |
FOkk CCCC CCCC CCCC CC |
Same as Denmark, except for the country code. |
Finland |
18 |
FIkk BBBB BBCC CCCC CK |
B = bank code, branch number and account type, C = account No.,
K = check digit of the Finnish account numbering scheme. |
France |
27 |
FRkk BBBB BGGG GGCC CCCC CCCC CKK |
B = bank code, G = code guichet
(branch), C = account No., K = clé RIB (key). |
Germany |
22 |
DEkk BBBB BBBB CCCC CCCC CC |
B = sort code (Bankleitzahl/BLZ), C =
account No. |
Gibraltar |
23 |
GIkk BBBB CCCC CCCC CCCC CCC |
B = first part of BIC, C = account No. |
Greece |
27 |
GRkk BBB BBBB CCCC CCCC CCCC CCCC |
K = check digits of the Greek account numbering scheme, B =
bank code and branch number, C = account No. |
Greenland |
18 |
GLkk BBBB CCCC CCCC CC |
Same as Denmark, except for the country code. |
Hungary |
28 |
HUkk BBBB BBBC CCCC CCCC CCCC CCCC |
B = bank code, C = account No. |
Iceland |
26 |
ISkk BBBB SSCC CCCC XXXX XXXX XX |
B = bank code, S = sort code, C = account No., X = holder's
national identification
number. |
Ireland |
22 |
IEkk AAAA BBBB BBCC CCCC CC |
The first 4 alphanumeric characters are the start of the SWIFT
code. Then a 6 digit long sort code and an
8 digit account code follow, both numeric. |
Isle of Man |
|
|
(Uses United Kingdom code) |
Israel |
23 |
ILkk BBBN NNCC CCCC CCCC CCC |
B = bank No. 3 digits, N = branch No. 3 digits, C = account No.
13 digits (typically 6 zeroes followed by a 7 digit No.). It should
be noted that some Israeli banks have recently changed client's
account numbers from 6 to 7 digits. |
Italy |
27 |
ITkk KAAA AABB BBBC CCCC CCCC CCC |
K = check char ("CIN", 1 alpha), A = ABI bank code ("codice
ABI", 5 digits), B = branch number ("CAB", 5 digits), C = account
ID (12 alphanumeric). |
Latvia |
21 |
LVkk BBBB CCCC CCCC CCCC C |
The first four digits are the same as the first four digits of
the SWIFT code of the bank, and the 13 digits
after that are the number of the individual account (and can
include both letters and numbers). |
Liechtenstein |
21 |
LIkk BBBB BCCC CCCC CCCC C |
Same as Switzerland except for the country code. |
Lithuania |
20 |
LTkk BBBB BCCC CCCC CCCC |
B = bank code, C = account No. |
Luxembourg |
20 |
LUkk BBBC CCCC CCCC CCCC |
B = bank code, C = account No. |
Macedonia |
19 |
MKkk BBBC CCCC CCCC CKK |
B = bank code, C = account No., K = check digits |
Malta |
31 |
MTkk BBBB SSSS SCCC CCCC CCCC CCCC CCC |
B = first part of BIC, S = sort code, C = account No. |
Mauritius |
30 |
MUkk BBBB BBSS CCCC CCCC CCCC CCCC CC |
B = bank identifier, S = branch identifier, C = account
number |
Monaco |
27 |
MCkk BBBB BGGG GGCC CCCC CCCC CKK |
Same as France except for the country code. |
Montenegro |
22 |
MEkk BBBC CCCC CCCC CCCC KK |
kk = IBAN digit, B = Bank Code, C = Account number, KK = Check
Digit. |
Netherlands (sometimes referred to as Holland) |
18 |
NLkk BBBB CCCC CCCC CC |
kk = IBAN digit, B = Bank Code, C = Account number (Not
applicable to Netherlands Antilles or Aruba) |
Northern Ireland |
|
|
(uses either UK or Republic of Ireland code, dependant upon
format chosen by bank) |
Norway |
15 |
NOkk BBBB CCCC CCK |
B = bank code, C = account No., K = modulo-11 check digit |
Poland |
28 |
PLkk BBBB BBBk CCCC CCCC CCCC CCCC |
B = bank code (1-3 institution ID, 4-7
branch), C = account No., kk = check
digits. There are no letters in the code. The single "k" after bank
code is the now redundant check digit of the former system,
preserved in IBAN. |
Portugal |
25 |
PTkk BBBB BBBB CCCC CCCC CCCK K |
B = bank code (1-4 bank code, 5-8 branch code), C = account
number, K = BBAN check digits.
Banks that don't identify specific branches use '0000' for digits
5-8.
The Portuguese BBAN (or NIB - Número de Identificação Bancária)
uses the same validation checksum as the IBAN (ISO 7064 mod 97-10
calculation) resulting in the IBAN checksum always being "50". |
Romania |
24 |
ROkk BBBB CCCC CCCC CCCC CCCC |
The first 4 alphanumeric characters represent the bank;
according to a rule established by the Romanian National Bank, the
BBBB code must be the same with the first 4 characters of the
bank's identifier code. The
last 16 represent the specific bank branch and an account, combined
any way the bank decides (typically the first 4 among the 16
identify the branch). Some banks include the ISO 4217 currency identifier somewhere in the
account name. |
San
Marino |
27 |
SMkk KAAA AABB BBBC CCCC CCCC CCC |
Same as Italy except for the country code. |
Saudi Arabia |
24 |
SAkk BBCC CCCC CCCC CCCC CCCC |
B = bank code, C = account No. 2a [country code] 2n [check
digits] 2n [bank identifier] followed by 18c [the basic account
number preceded by zeros, if required]. The issuing start date of
the Saudi Arabia IBAN was July 1, 2008 [2076]. |
Serbia |
22 |
RSkk BBBC CCCC CCCC CCCC KK |
B = bank code, C = account No., K = account check digits |
Slovakia |
24 |
SKkk BBBB SSSS SSCC CCCC CCCC |
B = bank code, S = sort code, C = account No. |
Slovenia |
19 |
SIkk BBBB BCCC CCCC CKK |
The first 2 BB digits represent a bank, the next 3 - the
branch. The last 2 digits (KK) are the check digits. IBAN check
digits (kk) for Slovenia are 5 and 6. |
Spain |
24 |
ESkk BBBB GGGG KKCC CCCC CCCC |
B = bank code, G=Branch/office number, K=Check digits, C =
account No. |
Sweden |
24 |
SEkk BBBB CCCC CCCC CCCC CCCC |
The Bs represent the bank code and the Cs the account
number. |
Switzerland |
21 |
CHkk BBBB BCCC CCCC CCCC C |
B = bank code, C = account No. |
Turkey |
26 |
TRkk BBBB BRCC CCCC CCCC CCCC CC |
The total number of alphanumeric characters including the
country code and the check digits is 26. The first 5 digits
represent a bank. The next alphanumeric character, reserved for
future use, is set to zero. The following 16 alphanumeric
characters represent the specific bank branch and an account. The
issuing start date of the Turkish IBAN was: September 1, 2005
[2077]. |
Tunisia |
24 |
TNkk BBBB BCCC CCCC CCCC CCCC |
B = bank code, C = account No. |
United Kingdom |
22 |
GBkk BBBB SSSS SSCC CCCC CC |
B = alphabetical bank code, S = sort
code (often a specific branch), C = account No. Applies to
whole of Great Britain, not applicable to any British Overseas
Territories. Alternative applications in Northern Ireland, Channel
Islands, Isle of Man, Gibraltar - see separate entries |