IBAN Calculation API Documentation

This API is part of our IBAN Suite service

API integration guide

1. What is the IBAN Calculation API?

The IBAN Calculation ( AKA IBAN Conversion ) engine is a software system allowing our clients to convert domestic bank code and account number combinations into validated International Bank Account Numbers ( IBAN ).

The system allows our clients manual interface as well as an API to allow integration in their company’s internal systems.

The system also identifies the banks and financial institutions and provides the details to our customers.

2. Features

Below are some of the key features of our IBAN Calculation engine:

  • Validate local bank code / account number checksums ( * see Supported Countries )
  • Retrieve information about the bank based on the local bank/branch code.
  • Automatically generates a valid IBAN format for the supplied bank/branch code and account number
  • System supports multiple response formatting ( JSON / XML )


3. Supported Countries

The IBAN Calculation API currently supports the following countries and the fields required by our API to calculate an IBAN.

Country Code Country Name BankCode Branch Account Check Digit Validation**
AT Austria YES   YES  
BE Belgium YES   YES YES
CH Switzerland YES   YES YES
DE Deutschland YES   YES YES
EE Estonia     YES YES
EG Egypt YES YES YES  
ES Spain YES YES YES YES
FI Finland     YES YES
FR France YES YES YES YES
GB Great Britain YES   YES YES
HU Hungary     YES YES
IE Ireland YES   YES YES
IT Italy YES YES YES YES
MC Monaco YES YES YES YES
MR Mauritania YES YES YES  
MT Malta YES   YES  
NO Norway     YES YES
PT Portugal YES YES YES YES
SM San  Marino YES YES YES YES
CZ Czech Republic YES   YES YES
AL Albania YES   YES  
SK Slovak Republic YES   YES YES
SI Slovenia YES   YES YES
PL Poland YES   YES YES
PK Pakistan YES   YES  
SE Sweden YES   YES YES
NL Netherlandds YES YES
AD Andorra YES YES
HR Croatia YES YES YES
CY Cyprus YES YES
DK Denmark YES YES YES
GR Greece YES YES
IS Iceland YES YES YES YES
IL Israel YES YES YES
LI Liechtenstein YES YES YES
LT Lithuania YES YES
BH Bahrain YES YES
BR Brazil YES YES
DO Dominican Republic YES YES
SV El Salvador YES YES
FO Faroe Islands YES YES YES
GL Greenland YES YES YES
GT Guatemala YES YES
IL Israel YES YES YES
KW Kuwait YES YES
MD Moldova YES YES
QA Qatar YES YES
SA Saudi Arabia YES YES
UA Ukraine YES YES
AE United Arab Emirates YES YES
**The Check Digit column specifies if the country supports account number and/or bank code check digit validation.

The check digits validation is an extra layer of data integrity protection against typing errors.

4. API Inputs

The API accepts both HTTP GET and POST request for input data.
The accepted parameters are listed in the table below:

Field Name Type Description
api_key String Your personal API key. Obtained in the client area.
format String API response format ( xml or json )
country String 2 letter country code ( UK/US/DE/FR )
bankcode String A unique bank identifier. Different for each country. ( optional ). Some countries only require account number.
branch String A unique local branch identifier ( optional )
account String Personal account number
cd Integer Check Digits used in some countries.
prefix Integer Currently required only for Czech Republic ( optional )
First argument is the API key, this is a unique string which helps our system identify you as a user and allow you access to the API.

The API supports multiple response formats in order to provide easier integration. Currently, XML and JSON are supported.

The Country arguments must consist of a 2 letter ISO country code such as UK for United Kingdom, DE for Germany, FR for France …
Bank Code has a different length and structure for each country.

Branch Code is an optional argument is only required for some countries ( refer to Examples )
Account number is required for all countries and in some cases it is the only parameter used to calculate an IBAN.

Check Digits is required only for certain countries which have incorporated such validation algorithms in their domestic bank account number structure. ( refer to Examples )

Prefix is a field optionally required only for Czech Republic IBAN calculation.

5. API Examples

In the table below you can find the example working GET query to our API for each country.

Country Example query (GET REQUEST)
AT ?country=AT&format=json&bankcode=12000&account=52700357958
BE ?country=BE&format=json&bankcode=250&account=0135106&cd=70
CH ?country=CH&format=json&bankcode=0240&account=240C08011570
DE ?country=DE&format=json&bankcode=BLZ37010050&account=399509
EE ?country=EE&format=json&account=55000005511439
ES ?country=ES&format=json&bankcode=0081&branch=1731&cd=91&account=0006040912
FI ?country=FI&format=json&account=52900261901092
FR ?country=FR&format=json&bankcode=30056&branch=00264&account=02640016443
FR ?country=FR&format=json&rib=40031000010000100222L41
GB ?country=GB&format=json&bankcode=090127&account=93496333
HU ?country=HU&format=json&account=107000240416330551100005
IE ?country=IE&format=json&bankcode=905838&account=71924374
IT ?country=IT&format=json&country=IT&bankcode=02008&branch=30545&account=000103685854
MC ?country=MC&format=json&country=MC&bankcode=30002&branch=03260&account=0000079112A
MR ?country=MR&format=json&bankcode=00012&branch=00001&account=00000078326
MT ?country=MT&format=json&bankcode=07113&account=199008240010
NO ?country=NO&format=json&account=96803502045
PT ?country=PT&format=json&bankcode=0038&branch=0000&cd=81&account=39551148771
PK ?country=PK&format=json&bankcode=HABBPKKA&account=39551148771
SE ?country=SE&format=json&bankcode=9150&account=0092395696
SM ?country=SM&format=json&country=SM&bankcode=03034&branch=09800&account=000060164676
CZ ?country=CZ&format=json&prefix=51&account=1707230277&bankcode=0100
AL ?country=AL&format=json&bankcode=20511117&account=374362CLPRCFEURC
SK ?country=SK&format=json&prefix=&account=4110053902&bankcode=3100
SI ?country=SI&format=json&bankcode=33000&account=0000102423
PL ?country=PL&format=xml&bankcode=11402004&account=0000360275244226
SE ?country=SE&format=json&bankcode=9300&account=5913222524
NL ?country=NL&format=json&account=0006642318
AD?country=AD&bankcode=00080001&account=1234567890
HR?country=HR&bankcode=2360000&account=1101234565
CY?country=CY&bankcode=00200195&account=357001234567
DK?country=DK&bankcode=2000&account=123456789
GR?country=GR&bankcode=0810001&account=1234567890
IS?country=IS&bankcode=0001&acc_type=12&account=123456&kennitala=3108962099
LI?country=LI&bankcode=08810&account=0418650028
LT?country=LT&bankcode=10100&account=12345678901
BH?country=BH&bankcode=CITI&account=1077181611
BR?country=BR&bankcode=00000000&account=10932840814P2
DO?country=DO&bankcode=ACAU&account=123456789
SV?country=SV&bankcode=ACAT&account=123123
FO?country=FO&bankcode=6460&account=0123456789
GL?country=GL&bankcode=6471&account=0123456789
GT?country=GT&bankcode=AGRO&account=1234567890
IL?country=IL&bankcode=010&branch=800&account=12612345
KW?country=KW&bankcode=CBKU&account=1234560101
MD?country=MD&bankcode=EX&account=1234567
QA?country=QA&bankcode=QNBA&account=693123456
SA?country=SA&bankcode=20&account=1234567891234
UA?country=UA&bankcode=305299&account=2990004149123456789
AE?country=AE&bankcode=009&account=0000000123456789

6. API XML Response Structure

A detailed description of the possible fields returned can be seen in the table below:

Field Name Type Description
address String Address of the bank branch or headquarters
bank String Name of the bank or financial institution
bic String BIC ( Bank Identifier Code ) of the bank
branch String Name of the branch identified by the bank code
city String The name of the city in which the branch is located.
country String Two letter abbreviation of the country code e.g. US, UK, AU, FR … etc.
email String Appointed contact email address for the bank or branch
fax String Fax number of the bank/branch
phone String Contact phone number of the bank / branch
state String State of the bank/branch address
website String Website address of the bank / branch
zip String ZIP or Postal code of the bank branch address
The API system returns results in XML or JSON format, which is easy to parse in a variety of programming languages and platforms.

A sample XML reply from the API for a United Kingdom SORT code and Account  Number search would be:

Query URL:

?api_key=9834hAHx78ba4g8habsdk&country=GB&format=json&bankcode=110377&account=10218962

<result>
<iban>GB20ULSB98006054100029</iban>
<account>54100029</account>
<sort_code>980060</sort_code>
<bank>ULSTER BANK LTD</bank>
<branch>BELFAST CITY OFFICE 1</branch>
<bic>ULSBGB2BXXX</bic>
<address>PO BOX 232 11-16 DONEGALL SQUARE EAST </address>
<city>BT1 5UB</city>
<country>GB<country/>
<phone>028 90244112</phone>
</result>

The response for the same query if user specified a JSON formatting will be:

"iban":"GB20ULSB98006054100029","account":"54100029","sort_code":"980060","bank":"ULSTER BANK LTD","branch":"BELFAST CITY OFFICE 1","bic":"ULSBGB2BXXX","address":"PO BOX 232 11-16 DONEGALL SQUARE EAST ","city":"BT1 5UB","country":"GB","phone":"028 90244112"

7. API Errors

In case of an error the IBAN Calculation API returns an XML  or JSON response containing the error message.
The <error></error> XML tags are returned without any other fields in the XML response.
Below you can find a description of all possible error messages that could be returned:

<error>Account Number checksum is invalid.</error>
<error>Account Number (checksum) is not correct.</error>
<error>Account Number has to be 11 characters long</error>
<error>Account Number has to be 14 characters long</error>
<error>Account Number has to be 24 characters long</error>
<error>Account Number is not valid</error>
<error>Account Number of Sort Code is not valid</error>
<error>Account Number prefix too long.</error>
<error>Account Number too long.</error>
<error>Bank/Branch Code / KIB (checksum) is not correct.</error>
<error>Bank Code/ Branch Code/ Account Number too long.</error>
<error>Bank Code/ Branch Code (checksum) is not correct.</error>
<error>Bank Code not valid</error>
<error>Bank Code too long.</error>
<error>Bank Not Found</error>
<error>Bank Not Recognized</error>
<error>BBAN / NIB (checksum) is not correct.</error>
<error>BLZ/Bank Code not valid</error>
<error>Branch/Agencia not found</error>
<error>Branch Code too long.</error>
<error>Branch not found</error>
<error>Check Digit too long.</error>
<error>Clearingnummer/Account Number is not valid. Check digit incorrect.</error>
<error>Clearingnummer / BankCode can not be identified. IBAN can not be calculated.</error>
<error>Clearingnummer or Account Number too long.</error>
<error>Codice ABI della Banca/Bank Code not valid</error>
<error>Codice CAB della Filiale/Branch Code not valid</error>
<error>Country code is not valid</error>
<error>Country or Bank not supported</error>
<error>IBAN is not valid</error>
<error>Kontonummer/Account Number is not valid</error>
<error>Missing fields</error>
<error>Non FR IBAN</error>
<error>Non FR IBAN country</error>
<error>Required field is missing. Please enter Bank Code and Account Number</error>
<error>Required fields not submitted.</error>
<error>RIB is not valid</error>
<error>SortCode / BankCode can not be identified. IBAN can not be calculated.</error>
<error>Sort code cannot be found</error>