IBAN Calculation API Documentation

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:

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 **
AT Austria YES   YES  
BE Belgium YES   YES YES
CH Switzerland YES   YES  
DE Deutschland YES   YES  
EE Estonia     YES  
FI Finland     YES YES
GB Great Britain YES   YES YES
HU Hungary     YES YES
IE Ireland YES   YES YES
MR Mauritania YES YES YES  
MT Malta YES   YES  
NO Norway     YES YES
SM San  Marino YES YES YES  
CZ Czech Republic YES   YES YES
AL Albania YES   YES  
SK Slovak Republic YES   YES YES
SI Slovenia YES   YES YES
PK Pakistan YES   YES  
NL Netherlandds 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.

**Check digit is required to be submitted for Belgium, Spain, Portugal only in the API request.
For other countries the check digit is extracted from the bank code or the account number automatically.

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
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

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:


<bank>ULSTER BANK LTD</bank>
<branch>BELFAST CITY OFFICE 1</branch>
<address>PO BOX 232 11-16 DONEGALL SQUARE EAST </address>
<city>BT1 5UB</city>
<phone>028 90244112</phone>

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>