The International Bank Account Number (IBAN) is an internationally agreed upon 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.
The current version is ISO 13616:2020, which indicates the Society for Worldwide Interbank Financial Telecommunication (SWIFT) as the formal registrar.
It also does not contain check digits, so 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.
[4] This proposal had a degree of flexibility that 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.
[8] IBAN imposes a flexible but regular format sufficient for account identification and contains validation information to avoid errors of transcription.
A major difference between the two systems is that under SWIFT there is no requirement that BBANs used within a country be of a pre-defined length.
It includes the domestic bank account number, branch identifier, and potential routing information.
[11] In particular, the computer program that accepts an IBAN will be able to validate: The check digits are calculated using MOD-97-10 as per ISO/IEC 7064:2003[10] (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.
[13] An English language IBAN checker for ECBS member country bank accounts is available on its website.
An IBAN is validated by converting it into an integer and performing a basic mod-97 operation (as described in ISO 7064) on it.
[9] The ECBS document replicates part of the ISO/IEC 7064:2003 standard as a method for generating check digits in the range 02 to 98.
In practice, this can only be done by software that either supports arbitrary-precision arithmetic or that can handle 219-bit (unsigned) integers,[Note 2] 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).
Most of the variations used are based on two categories of algorithms: - ISO 7064 MOD-97-10: Treat the account number as a large integer, divide it by 97 and use the remainder or its complement as the check digit(s).
[23] 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.
The IBAN designation scheme was chosen as the foundation for electronic straight-through processing in the European Economic Area.
SEPA is a self-regulatory initiative by the banking sector of Europe as represented in the European Payments Council (EPC).
The European Union made the scheme mandatory through the Payment Services Directive published in 2007.
[29] Based on a 20 December 2011 memorandum,[30] the EU parliament resolved the mandatory dates for the adoption of the IBAN on 14 February 2012.
In the run-up to the 1 February 2014 deadline, it became apparent that many old bank account numbers had not been allocated IBANs—an issue that was addressed on a country-by-country basis.
[33] 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.
[34] This practice in Ukraine ended on 1 November 2019 when all Ukrainian banks had fully switched to the IBAN standard.
There is no formal governmental or private sector regulatory requirement in Canada for the major banks to use IBAN.