IBAN Validation and Calculation(beta)
Validate and calculate IBAN numbers through the following form or by using our webservice. See below for examples on how to use it.
Update (2019/07/25) : Openiban is back online.
Update (2018/01/24) : Updated BIC data for DE, LU, NL, BE, CH. (Thanks @jaltek!)
Update (2017/12/07) : Updated BIC data for Germany.
Update (2017/08/13) : Added BIC data for Austria and Liechtenstein.
Update (2017/07/24) : Updated BIC data for Germany.
Update (2017/02/23) : Updated BIC data for Belgium.
Update (2017/02/03) : Added BIC data for Switzerland. Improve IBAN generation for countries where the bank code and IBAN lengths are known.
Update (2017/01/10) : Updated BIC data for Luxembourg and Germany.
Update (2016/07/08) : Added BIC data for Luxembourg.
Update (2016/06/19) : Updated BIC data for Belgium, Germany and Netherlands.
Update (2016/03/20) : IBAN Codes (sample) are automatically validated after calculating.
Update (2016/01/07) : Calculate IBAN Codes Beta (sample)
This is Beta functionality, so please make sure that you validate the result manually or by using the validation service.
Update (2016/01/05) : Updated BIC data for Belgium, Germany and Netherlands.
Secure
You can use the HTTPS version of this service.
Private
No personal data is stored. No request logs are written. Everything works in memory.
Open Source
You can use goiban-service for a self hosted service. Or get the source and and installation of go and wrap it with your own web-service implementation. If you have any requests or problems with the service, please file an issue at github or drop an e-mail at support(at)openiban.com .
Validation mechanics
Validation currently works by checking validity of the IBAN checksum and the length restriction for country specific IBAN numbers. A list of country specific BIC checks can be found here. If the validation result is valid, the IBAN is technically OK for the specific country.
Warning: Even technically valid IBANs might still contain a crafted bank code or account number.
How does it work?
openiban.com allows Cross Domain Access. You can easily add the validation to your own site by using the following JavaScript snippet:
$.ajax({
url: 'https://openiban.com/validate/DE89370400440532013000', // replace with
// dynamic value
data: { // pass additional options
"validateBankCode": true, // (not guaranteed)
"getBIC": true // (not guaranteed)
},
success: function(data) {
var result = data;
if(result.valid) {
// YOUR LOGIC
//
}
},
error: function(xhr) {
// handle error
}
});
REST
You can also use the REST Webservice directly in your application. Just send a GET request to
https://openiban.com/validate/IBAN_NUMBER?getBIC=true&validateBankCode=true
And replace IBAN_NUMBER with the value that should be validated. The response will be in the format of:
{
"valid": true, // either true or false
"messages": [ // states the reason if "valid" is false
"Bank code valid: 37040044"
],
"iban": "DE89370400440532013000", // the IBAN which was to be validated
"bankData": {
"bankCode": "37040044",
"name": "Commerzbank",
"zip": "50447",
"city": "Köln",
"bic": "COBADEFF3701"
},
"checkResults": {
"bankCode": true // info about your additional check requests
}
}
Country codes
You can retrieve a map of country codes through the /countries endpoint
$.ajax({
url: 'https://openiban.com/countries',
success: function(data) {
// ...
},
error: function(xhr) {
// handle error
}
});
Response
The response has the format of:
{
"Albania": "AL",
"Algeria": "DZ",
// ...
}
IBAN Calculation (beta)
For calculation of IBAN numbers you can use the /calculate endpoint:
$.ajax({
url: 'https://openiban.com/v2/calculate/<country>/<bankCode>/<accountNumber>',
success: function(data) {
var result = data;
if(result.valid) {
// YOUR LOGIC
}
},
error: function(xhr) {
// handle error
}
});
Response
A successful calculation returns status code 200 and a result similar to the /validation endpoint.
{
"valid": true, // either true or false
"messages": [ // states the reason if "valid" is false
"Bank code valid: <bankCode>"
],
"iban": "<iban>", // the IBAN which was generated
"bankData": {
"bankCode": "<bankCode>",
"name": "<bankName>",
"zip": "<zipCode>",
"city": "<city>",
"bic": "<BIC>"
},
"checkResults": {
"bankCode": true // info about your additional check requests
}
}
Additional information
Bank code validation
We currently validate Bank codes for the following countries:
- Belgium
- Germany
- Netherlands
- Luxembourg
- Switzerland
- Austria
- Liechtenstein
BIC lookup
Validation of IBANs also returns a BIC / bank name for the following countries:
- Belgium
- Germany
- Netherlands
- Luxembourg
- Switzerland
- Austria
- Liechtenstein