International Bank Account Number

From BitcoinWiki
This is the approved revision of this page, as well as being the most recent.
Jump to: navigation, search

The International Bank Account Number (IBAN) is an internationally agreed system of identifying bank accounts across national borders to facilitate the communication and processing of cross border transactions with a reduced risk of transcription errors. It was originally adopted by the European Committee for Banking Standards(ECBS), and later as an international standard under ISO 13616:1997. The current standard is ISO 13616:2007, which indicates Society for SWIFT as the formal registrar. Initially developed to facilitate payments within the European Union, it has been implemented by most European countries and numerous countries in the other parts of the world, mainly in the Middle East and in the Caribbean. As of February 2016, 69 countries were using the IBAN numbering system.

In 1997, to overcome these difficulties, the the International Organization for Standardization (ISO) published ISO 13616:1997. This proposal had a degree of flexibility, which the European Committee for Banking Standards (ECBS) believed would make it unworkable, and they produced a "slimmed down" version of the standard which, amongst other things, permitted only upper-case letters and required that the IBAN for each country have a fixed length. ISO 13616-2:2007 describes "the Registration Authority (RA) responsible for the registry of IBAN formats that are compliant with ISO 13616-1 [and] the procedures for registering ISO 13616-compliant IBAN formats". The official IBAN registrar under ISO 13616-2:2007 is SWIFT.

IBAN imposes a flexible but regular format sufficient for account identification and contains validation information to avoid errors of transcription. It carries all the routing information needed to get a payment from one bank to another wherever it may be; it contains key bank account details such as country code, branch codes (known as sort codes in the UK and Ireland) and account numbers, and it contains check digits which can be validated at source according to a single standard procedure. Where used, IBANs have reduced trans-national money transfer errors to under 0.1% of total payments.

Structure[edit]

The IBAN consists of up to 34 alphanumeric characters, as follows:

  • country code using ISO 3166-1 alpha-2 – two letters,
  • check digits – two digits, and
  • Basic Bank Account Number (BBAN) – up to 30 alphanumeric characters that are country-specific. This check is guaranteed to detect any instances where a single character has been omitted, duplicated, mistyped or where two characters have been transposed. Thus routing and account number errors are virtually eliminated. In particular, the computer program that accepts an IBAN will be able to validate:
  • Country code
  • Number of characters in the IBAN correspond to the number specified for the country code
  • BBAN format specified for the country code
  • Account number, bank code and country code combination is compatible with the check digits

The check digits are calculated using MOD-97-10 as per ISO/IEC 7064:2003 (abbreviated to mod-97 in this article), which specifies a set of check character systems capable of protecting strings against errors which occur when people copy or key data. In particular, the standard states that the following can be detected:

  • All single substitution errors (the substitution of a single character for another, for example 4234 for 1234)
  • All or nearly all single (local) transposition errors (the transposition of two single characters, either adjacent or with one character between them, for example 12354 or 12543 for 12345)
  • All or nearly all shift errors (shifts of the whole string to the left or right)
  • High proportion of double substitution errors (two separate single substitution errors in the same string, for example 7234587 for 1234567)
  • High proportion of all other errors

The underlying rules for IBANs is that the account-servicing financial institution should issue an IBAN, as there are a number of areas where different IBANs could be generated from the same account and branch numbers that would satisfy the generic IBAN validation rules. In particular cases where 00 is a valid check digit, 97 will not be a valid check digit, likewise, if 01 is a valid check digit, 98 will not be a valid check digit, similarly with 02 and 99.

The UN CEFACT TBG5 has published a free IBAN validation service in 32 languages for all 57 countries that have adopted the IBAN standard. They have also published the Javascript [[source code of the verification algorithm.

An English language IBAN checker for ECBS member country bank accounts is available on its website.

Algorithms[edit]

Validating the IBAN[edit]

An IBAN is validated by converting it into an integer and performing a basic mod-97 operation (as described in ISO 7064) on it. If the IBAN is valid, the remainder equals 1. The algorithm of IBAN validation is as follows: features that are often not standard. If the application software in use does not provide the ability to handle integers of this size, the modulo operation can be performed in a piece-wise manner (as is the case with the UN CEFACT TBG5 Javascript program).

Piece-wise calculation can be done in many ways. One such way is as follows:

  1. Starting from the leftmost digit of D, construct a number using the first 9 digits and call it N.
  2. Calculate N mod 97.
  3. Construct a new 9-digit N by concatenating above result (step 2) with the next 7 digits of D. If there are fewer than 7 digits remaining in D but at least one, then construct a new N, which will have less than 9 digits, from the above result (step 2) followed by the remaining digits of D
  4. Repeat steps 2–3 until all the digits of D have been processed

The result of the final calculation in step 2 will be D mod 97 = N mod 97.

Example[edit]

In this example, the above algorithm for D mod 97 will be applied to D = 3214282912345698765432161182. (The digits are colour-coded to aid the description below.) If the result is one, the IBAN corresponding to D passes the check digit test.

  1. Construct N from the first 9 digits of D
    N = 321428291
  2. Calculate N mod 97 = 70
  3. Construct a new 9-digit N from the above result (step 2) followed by the next 7 digits of D.
    N = 702345698
  4. Calculate N mod 97 = 29
  5. Construct a new 9-digit N from the above result (step 4) followed by the next 7 digits of D.
    N = 297654321
  6. Calculate N mod 97 = 24
  7. Construct a new N from the above result (step 6) followed by the remaining 5 digits of D.
    N = 2461182
  8. Calculate N mod 97 = 1

From step 8, the final result is D mod 97 = 1 and the IBAN has passed this check digit test.

Adoption[edit]

International bank transactions use either an IBAN or the ISO 9362 Business Identifier Code system (BIC or SWIFT code) in conjunction with the BBAN (Basic Bank Account Number).

EEA and territories[edit]

The banks of most countries in Europe publish account numbers using both the IBAN format and the nationally recognised identifiers, this being mandatory within the European Economic Area.

Day-to-day administration of banking in British Overseas Territories varies from territory to territory — some, such as South Georgia and the South Sandwich Islands, have too small a population to warrant a banking system while others, such as Bermuda, have a thriving financial sector. The use of the IBAN is up to the local government — Gibraltar, being part of the European Union is required to use the IBAN, and the British Virgin Islands have chosen to do so. , no other British Overseas Territories have chosen to use the IBAN. On 16 December 2010, the European Commission published proposed regulations that will make IBAN support mandatory for domestic credit transfer by 2013 and for domestic direct debit by 2014 (with a 12 and 24 months transition period respectively). Some countries have already replaced their traditional bank account scheme by IBAN. This includes Switzerland where IBAN was introduced for national credit transfer on 1 January 2006 and the support for the old bank account numbers has not been required from 1 January 2010.

Based on a 20 December 2011 memorandum, the EU parliament resolved the mandatory dates for the adoption of the IBAN on 14 February 2012. From 1 February 2014, all national systems for credit transfer and direct debit must be abolished and replaced by an IBAN-based system. The first such catalogue was published in June 2013 as a variant of the old bank code catalog ("Bankleitzahlendatei").

Non-EEA[edit]

Banks in numerous non-European countries including most states of the Middle East, North Africa and the Caribbean have implemented the IBAN format for account identification.

The degree to which bank verifies the validity of a recipient's bank account number depends of the configuration of the transmitting bank's software—many major software packages supply bank account validation as a standard function. Some banks outside Europe may not recognize IBAN, though this is expected to diminish with time. Non-European banks usually accept IBANs for accounts in Europe, although they might not treat IBANs differently from other foreign bank account numbers. In particular, they might not check the IBAN's validity prior to sending the transfer.

Banks in the United States do not use IBAN as account numbers for U.S. accounts. 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: a working group (WGAB20) was established as an X9 subcommittee to generate an IBAN construction for U.S. bank accounts.

Canadian financial institutions have not adopted IBAN and use bank transit numbers issued by the Canadian Payments Association for domestic transfers, and SWIFT for international transfers. There is no formal governmental or private sector regulatory requirement in Canada for the major banks to use IBAN.

Australia and New Zealand do not use IBAN. They use Bank State Branch codes for domestic transfers and SWIFT for international transfers.

IBAN formats by country[edit]

This table summarises the IBAN formats by country:

  • The kk after the two-character ISO country code represents the check digits calculated from the rest of the IBAN characters. If it is a constant for the country concerned, this will be stated in the Comments column. This happens where the BBAN has its own check digits that use the same algorithm as the IBAN check digits
  • The BBAN format column shows the format of the BBAN part of an IBAN in terms of upper case alpha characters (A–Z) denoted by "a", numeric characters (0–9) denoted by "n" and mixed case alphanumeric characters (a–z, A–Z, 0–9) denoted by "c". For example, the Bulgarian BBAN (4a,6n,8c) consists of 4 alpha characters, followed by 6 numeric characters, then by 8 mixed-case alpha-numeric characters
  • Descriptions in the Comments field have been standardised with country specific names in brackets. The format of the various fields can be deduced from the BBAN field
  • Countries that are planning to introduce the IBAN are shown in italics with the planned date of introduction in bold
Country Chars BBAN Format IBAN Fields Comment
Albania 28 8n,16c ALkk bbbs sssx cccc cccc cccc cccc b = National bank code
s = Branch code
x = National check digit
c = Account number
Andorra 24 8n,12c ADkk bbbb ssss cccc cccc cccc b = National bank code
s = Branch code
c = Account number
Austria 20 16n ATkk bbbb bccc cccc cccc b = National bank code
c = Account number
Azerbaijan 28 4c,20n AZkk bbbb cccc cccc cccc cccc cccc b = National bank code
c = Account number
Bahrain 22 4a,14c BHkk bbbb cccc cccc cccc cc b = National bank code
c = Account number
Belarus
July 4, 2017
28 4c, 20n BYkk bbbb aaaa cccc cccc cccc cccc b - National bank or branch code
a - Balance account number
c - Account number
Belgium 16 12n BEkk bbbc cccc ccxx b = National bank code
c = Account number
x = National check digits
Bosnia and Herzegovina 20 16n BAkk bbbs sscc cccc ccxx k = IBAN check digits (always 39)
b = National bank code
s = Branch code
c = Account number
x = National check digits
Brazil 29 23n,1a,1c BRkk bbbb bbbb ssss sccc cccc ccct n k = IBAN check digits (Calculated by MOD 97-10)
b = National bank code
s = Branch code
c = Account number
t = Account type (Cheque account, Savings account etc.)
n = Owner account number ("1", "2" etc.)
Bulgaria 22 4a,6n,8c BGkk bbbb ssss ttcc cccc cc BIC bank code
s = Branch (BAE) number
t = Account type
c = Account number
Costa Rica 22 18n CRkk 0bbb cccc cccc cccc cc 0= always zero

b = bank code
c = Account number

Croatia 21 17n HRkk bbbb bbbc cccc cccc c b = Bank code
c = Account number
Cyprus 28 8n,16c CYkk bbbs ssss cccc cccc cccc cccc b = National bank code
s = Branch code
c = Account number
Czech Republic 24 20n CZkk bbbb ssss sscc cccc cccc b = National bank code
s = Account number prefix
c = Account number
Denmark 18 14n DKkk bbbb cccc cccc cc b = National bank code
c = Account number
Dominican Republic 28 4a,20n DOkk bbbb cccc cccc cccc cccc cccc b = Bank identifier
c = Account number
East Timor 23 19n TLkk bbbc cccc cccc cccc cxx k = IBAN check digits (always = "38")
b = Bank identifier
c = Account number
x = National check digit
Estonia 20 16n EEkk bbss cccc cccc cccx b = National bank code
s = Branch code
c = Account number
x = National check digit
Faroe Islands 18 14n FOkk bbbb cccc cccc cx b = National bank code
c = Account number
x = National check digit
Finland 18 14n FIkk bbbb bbcc cccc cx b = Bank and branch code
c = Account number
x = National check digit
France 27 10n,11c,2n FRkk bbbb bsss sscc cccc cccc cxx b = National bank code
s = Branch code (code guichet)
c = Account number
x = National check digits (clé RIB)
Georgia 22 2c,16n GEkk bbcc cccc cccc cccc cc b = National bank code
c = Account number
Germany 22 18n DEkk bbbb bbbb cccc cccc cc b = Bank and branch identifier (Bankleitzahl or BLZ)
c = Account number
Gibraltar 23 4a,15c GIkk bbbb cccc cccc cccc ccc BIC bank code
c = Account number
Greece 27 7n,16c GRkk bbbs sssc cccc cccc cccc ccc b = National bank code
s = Branch code
c = Account number
Greenland 28 4c,20c GTkk bbbb mmtt cccc cccc cccc cccc b = National bank code
c = Account number
m = Currency
t = Account type
Hungary 28 24n HUkk bbbs sssx cccc cccc cccc cccx b = National bank code
s = Branch code
c = Account number
x = National check digit
Iceland 26 22n ISkk bbbb sscc cccc iiii iiii ii b = National bank code
s = Branch code
c = Account number
i = holder's kennitala (national identification number).
Ireland 22 4c,14n IEkk aaaa bbbb bbcc cccc cc BIC bank code
b = Bank/branch code (sort code)
c = Account number
Israel 23 19n ILkk bbbn nncc cccc cccc ccc b = National bank code
n = Branch number
c = Account number 13 digits (padded with zeros)
Italy 27 1a,10n,12c ITkk xbbb bbss sssc cccc cccc ccc x = Check char (CIN]
b = National bank code (Associazione Bancaria Italiana or Codice ABI)
s = Branch code (Coordinate bancarie or CABCodice d'Avviamento Bancario)
c = Account number
Jordan 30 4a,22n JOkk bbbb ssss cccc cccc cccc cccc cc b = National bank code
s = Branch code
c = Account number
Kazakhstan 20 3n,13c KZkk bbbc cccc cccc cccc b = National bank code
c = Account number
Kosovo 20 4n,10n,2n XKkk bbbb cccc cccc cccc b = National bank code
c = Account number
Kuwait 30 4a,22c KWkk bbbb cccc cccc cccc cccc cccc cc b = National bank code
c = Account number.
Latvia 21 4a,13c LVkk bbbb cccc cccc cccc c BIC Bank code
c = Account number
Lebanon 28 4n,20c LBkk bbbb cccc cccc cccc cccc cccc b = National bank code
c = Account number
Liechtenstein 21 5n,12c LIkk bbbb bccc cccc cccc c b = National bank code
c = Account number
Lithuania 20 16n LTkk bbbb bccc cccc cccc b = National bank code
c = Account number
Luxembourg 20 3n,13c LUkk bbbc cccc cccc cccc b = National bank code
c = Account number
Macedonia 19 3n,10c,2n MKkk bbbc cccc cccc cxx k = IBAN check digits (always = "07")
b = National bank code
c = Account number
x = National check digits
Malta 31 4a,5n,18c MTkk bbbb ssss sccc cccc cccc cccc ccc BIC bank code
s = Branch code
c = Account number
Mauritania 27 23n MRkk bbbb bsss sscc cccc cccc cxx k = IBAN check digits (always 13)
b = National bank code
s = Branch code (code guichet)
c = Account number
x = National check digits (clé RIB)
Mauritius 30 4a,19n,3a MUkk bbbb bbss cccc cccc cccc 000m mm b = National bank code
s = Branch identifier
c = Account number
0 = Zeroes
m = Currency Symbol
Monaco 27 10n,11c,2n MCkk bbbb bsss sscc cccc cccc cxx b = National bank code
s = Branch code (code guichet)
c = Account number
x = National check digits (clé RIB).
Moldova 24 2c,18c MDkk bbcc cccc cccc cccc cccc b = National bank code
c = Account number
Montenegro 22 18n MEkk bbbc cccc cccc cccc xx k = IBAN check digits (always = "25")
b = Bank code
c = Account number
x = National check digits
Netherlands 18 4a,10n NLkk bbbb cccc cccc cc BIC Bank code
c = Account number
Norway 15 11n NOkk bbbb cccc ccx b = National bank code
c = Account number
x = Modulo-11 national check digit
Pakistan 24 4c,16n PKkk bbbb cccc cccc cccc cccc b = National bank code
c = Account number
Palestinian territories 29 4c,21n PSkk bbbb xxxx xxxx xccc cccc cccc c b = National bank code
c = Account number
x = Not specified
Poland 28 24n PLkk bbbs sssx cccc cccc cccc cccc b = National bank code
s = Branch code
x = National check digit
c = Account number,
Portugal 25 21n PTkk bbbb ssss cccc cccc cccx x k = IBAN check digits (always = "50")
b = National bank code (numeric only)
s = Branch code (numeric only)
c = Account number (numeric only)
x = National check digits (numeric only)
Qatar 29 4a,21c QAkk bbbb cccc cccc cccc cccc cccc c b = National bank code
c = Account number
Romania 24 4a,16c ROkk bbbb cccc cccc cccc cccc BIC Bank code (first four alpha characters)
c = Branch code and account number (bank-specific format)
San Marino 27 1a,10n,12c SMkk xbbb bbss sssc cccc cccc ccc x = Check char (CIN)
b = National bank code (Associazione bancaria italiana or Codice ABI)
s = Branch code (Coordinate bancarie or CABCodice d'Avviamento Bancario)
c = Account number
Saudi Arabia 24 2n,18c SAkk bbcc cccc cccc cccc cccc b = National bank code
c = Account number preceded by zeros, if required
Serbia 22 18n RSkk bbbc cccc cccc cccc xx b = National bank code (always = "35")
c = Account number
x = Account check digits
Slovakia 24 20n SKkk bbbb ssss sscc cccc cccc b = National bank code
s = Account number prefix
c = Account number
Slovenia 19 15n SIkk bbss sccc cccc cxx k = IBAN check digits (always = "56")
b = National bank code
s = Branch code
c = Account number
x = National check digits
Spain 24 20n ESkk bbbb ssss xxcc cccc cccc b = National bank code
s = Branch code
x = Check digits
c = Account number
Sweden 24 20n SEkk bbbc cccc cccc cccc cccc b = National bank code
c = Account number
Switzerland 21 5n,12c CHkk bbbb bccc cccc cccc c b = National bank code
c = Account number
Tunisia 24 20n TNkk bbss sccc cccc cccc cccc k = IBAN check digits (always 59)
b = National bank code
s = Branch code
c = Account number
Turkey 26 5n,17c TRkk bbbb bxcc cccc cccc cccc cc b = National bank code
x = Reserved for future use (currently "0")
c = Account number
United Arab Emirates 23 3n,16n AEkk bbbc cccc cccc cccc ccc b = National bank code
c = Account number
United Kingdom 22 4a,14n GBkk bbbb ssss sscc cccc cc BIC bank code
s = Bank and branch code (sort code)
c = Account number
Virgin Islands, British 24 4c,16n VGkk bbbb cccc cccc cccc cccc b = National bank code
c = Account number

In addition to the above list, Nordea has catalogued IBANs for countries listed below.

In this list

  • "kk" represent the IBAN checksum
  • "a" represents an alphabetic character
  • "n" represents a numeric character
  • "b" represents a bank code character
  • "c" represents an account digit.
  • "0" represents a "0" character.
Country Chars Example Comments
Algeria 24 DZkk nnnn nnnn nnnn nnnn nnnn
Angola 25 AOkk nnnn nnnn nnnn nnnn nnnn n
Benin 28 BJkk annn nnnn nnnn nnnn nnnn nnnn
Burkina Faso 28 BFkk nnnn nnnn nnnn nnnn nnnn nnnn
Burundi 16 BIkk nnnn nnnn nnnn
Cameroon 27 CMkk nnnn nnnn nnnn nnnn nnnn nnn
Cape Verde 25 CVkk nnnn nnnn nnnn nnnn nnnn n
Iran 26 IRkk 0bb0 nnnn nnnn nnnn nnnn nn
Ivory Coast 28 CIkk annn nnnn nnnn nnnn nnnn nnnn
Madagascar 27 MGkk nnnn nnnn nnnn nnnn nnnn nnn this format is identical to the French format
Mali 28 MLkk annn nnnn nnnn nnnn nnnn nnnn
Mozambique 25 MZkk nnnn nnnn nnnn nnnn nnnn n
Senegal 28 SNkk annn nnnn nnnn nnnn nnnn nnnn
Ukraine 29 UAkk bbbb bbcc cccc cccc cccc cccc c

Addition list of countries, in the process of introducing the IBAN retrieved from Society for Worldwide Interbank Financial Telecommunication|SWIFT partner website are listed below.

In this list

  • "kk" represent the IBAN checksum
  • "a" represents an alphabetic character
  • "n" represents a numeric character
Country Chars Example
Comoros 27 KMkk nnnn nnnn nnnn nnnn nnnn nnn
Chad 27 TDkk nnnn nnnn nnnn nnnn nnnn nnn
Congo 27 CGkk nnnn nnnn nnnn nnnn nnnn nnn
Egypt 27 EGkk nnnn nnnn nnnn nnnn nnnn nnn
Gabon 27 GAkk nnnn nnnn nnnn nnnn nnnn nnn
Honduras 28 HNkk aaaa nnnn nnnn nnnn nnnn nnnn
Morocco 28 MAkk nnnn nnnn nnnn nnnn nnnn nnnn
Nicaragua 32 NIkk aaaa nnnn nnnn nnnn nnnn nnnn nnnn
Niger 28 NEkk aann nnnn nnnn nnnn nnnn nnnn
Togo 28 TGkk aann nnnn nnnn nnnn nnnn nnnn

Criticism[edit]

There is criticism about the length and readability of IBAN. Printed on paper the IBAN is often difficult to read. Therefore, it is popular to group the IBAN with four symbols. However, for electronic documents (e.g. PDF invoice) the copy and paste of grouped IBAN can result in errors with online banking forms. Only a few user friendly bank institutes allow and detect the copy and paste of both grouped and ungrouped IBAN.

Source[edit]

http://wikipedia.org/

See Also on BitcoinWiki[edit]