Bank Data API

Bank Data API

Instant IBAN and SWIFT number validation across the globe.
Free Plan $0.00 Monthly Subscribe
100 Requests / Monthly
Free for Lifetime
No Credit Card Required
MOST POPULAR
Starter Plan $39.99 Monthly Subscribe
2,500 Requests / Monthly
Standard Support
Check SWIFT Code
US Banks / Routing Number (by state)
Generate and validate IBAN number
Get all major banks SWIFT and IBAN codes
Pro Plan $139.99 Monthly Subscribe
25,000 Requests / Monthly
Standard Support
Check SWIFT Code
US Banks / Routing Number (by state)
Generate and validate IBAN number
Get all major banks SWIFT and IBAN codes
Enterprise Plan $239.99 Monthly Subscribe
60,000 Requests / Monthly
Standard Support
Check SWIFT Code
US Banks / Routing Number (by state)
Generate and validate IBAN number
Get all major banks SWIFT and IBAN codes
Custom Plan Volume Monthly Contact Us
Any requests volume you need
Check SWIFT Code
US Banks / Routing Number (by state)
Generate and validate IBAN number
Get all major banks SWIFT and IBAN codes

Bank Data API is a REST API that is able to check and validate IBAN and SWIFT numbers. With this API you will be able to get IBAN examples and structure by country, required fields for generating IBANs, banks by country, and all major banks and SWIFT codes.

Example Request


  curl --request GET 'https://api.apilayer.com/bank_data/iban_validate?iban_number=DE89370400440532013000' \
  --header 'apikey: YOUR API KEY'
  

Example Response


{
    "valid": true,
    "iban": "DE89370400440532013000",
    "iban_data": {
        "country": "Germany",
        "country_code": "DE",
        "sepa_country": true,
        "checksum": "89",
        "BBAN": "370400440532013000",
        "bank_code": "37040044",
        "account_number": "0532013000",
        "branch": "",
        "national_checksum": "",
        "country_iban_format_as_swift": "DE2!n8!n10!n",
        "country_iban_format_as_regex": "^DE(\\d{2})(\\d{8})(\\d{10})$"
    },
    "bank_data": {
        "bank_code": "37040044",
        "name": "Commerzbank",
        "zip": "50447",
        "city": "Köln",
        "bic": "COBADEFFXXX"
    },
    "country_iban_example": "DE89370400440532013000"
}

Bank Data API Reference

This API is organized around REST. Our API has predictable resource-oriented URLs, accepts form-encoded request bodies, returns JSON-encoded responses, and uses standard HTTP response codes, authentication, and verbs.

Just Getting Started?

Check out our development quickstart guide.

Authentication

Bank Data API uses API keys to authenticate requests. You can view and manage your API keys in the Accounts page.

Your API keys carry many privileges, so be sure to keep them secure! Do not share your secret API keys in publicly accessible areas such as GitHub, client-side code, and so forth.

All requests made to the API must hold a custom HTTP header named "apikey". Implementation differs with each programming language. Below are some samples.

All API requests must be made over HTTPS. Calls made over plain HTTP will fail. API requests without authentication will also fail.

Endpoints

Get all major banks SWIFT and IBAN codes

Parameters

country (optional)

Country name or code (If not specified, all of the banks from all countries except US will be shown; If specified, only banks from specified country will be shown (Ex: DE or Germany for Germany, US or United States for United States))

Location: Query, Data Type: string

page (optional)

Page offset

Location: Query, Data Type: string

per_page (optional)

Items per page

Location: Query, Data Type: string

** A word enclosed with curly brackets "{ }" in the code means that it is a parameter and it should be replaced with your own values when executing. (also overwriting the curly brackets).
Returns

Below is a sample response from the endpoint


If you wish to play around interactively with real values and run code, see...

Get all US Routing (or by state)

Parameters

main_bank_id (optional)

Main bank id (show routing numbers for the provided id)

Location: Query, Data Type: string

page (optional)

Page offset

Location: Query, Data Type: string

per_page (optional)

Items per page

Location: Query, Data Type: string

search_term (optional)

Search by bank name

Location: Query, Data Type: string

state_code (optional)

State code

Location: Query, Data Type: string

** A word enclosed with curly brackets "{ }" in the code means that it is a parameter and it should be replaced with your own values when executing. (also overwriting the curly brackets).
Returns

Below is a sample response from the endpoint


If you wish to play around interactively with real values and run code, see...

Get Banks by country

Parameters

country_code (required)

Country code (Ex: DE, AT..)

Location: Query, Data Type: string

page (optional)

Page offset

Location: Query, Data Type: string

per_page (optional)

Items per page

Location: Query, Data Type: string

search_term (optional)

Search by bank name

Location: Query, Data Type: string

** A word enclosed with curly brackets "{ }" in the code means that it is a parameter and it should be replaced with your own values when executing. (also overwriting the curly brackets).
Returns

Below is a sample response from the endpoint


If you wish to play around interactively with real values and run code, see...

Check BLZ code (Germany or Austria)

Parameters

blz_code (required)

BLZ code

Location: Query, Data Type: string

country_code (optional)

Country code (optional, if present should be DE or AT, default is DE)

Location: Query, Data Type: string

** A word enclosed with curly brackets "{ }" in the code means that it is a parameter and it should be replaced with your own values when executing. (also overwriting the curly brackets).
Returns

Below is a sample response from the endpoint


If you wish to play around interactively with real values and run code, see...

Get required fields for generating IBAN

Parameters

country (optional)

Country code or name (Ex: DE or Germany)

Location: Query, Data Type: string

** A word enclosed with curly brackets "{ }" in the code means that it is a parameter and it should be replaced with your own values when executing. (also overwriting the curly brackets).
Returns

Below is a sample response from the endpoint


If you wish to play around interactively with real values and run code, see...

Generate IBAN number

Parameters

account_number (required)

Account number

Location: Query, Data Type: string

bank_code (required)

Bank Code

Location: Query, Data Type: string

country (required)

Country code or name (ex: DE or Germany)

Location: Query, Data Type: string

account_holder_position (optional)

Account holder position (Required for: Brazil(BR))

Location: Query, Data Type: string

account_type (optional)

Account type (Required for: Brazil(BR), Bulgaria(BG))

Location: Query, Data Type: string

branch (optional)

Branch code

Location: Query, Data Type: string

check_digit (optional)

Check digit

Location: Query, Data Type: string

currency (optional)

Currency code (Required for: Seychelles(SC))

Location: Query, Data Type: string

identification_number (optional)

Identification number (Required for: Iceland(IS))

Location: Query, Data Type: string

** A word enclosed with curly brackets "{ }" in the code means that it is a parameter and it should be replaced with your own values when executing. (also overwriting the curly brackets).
Returns

Below is a sample response from the endpoint


If you wish to play around interactively with real values and run code, see...

Get IBAN example and structure by country

Parameters

country (optional)

Country code or name (Ex: DE or Germany)

Location: Query, Data Type: string

** A word enclosed with curly brackets "{ }" in the code means that it is a parameter and it should be replaced with your own values when executing. (also overwriting the curly brackets).
Returns

Below is a sample response from the endpoint


If you wish to play around interactively with real values and run code, see...

Validate IBAN number

Parameters

iban_number (required)

IBAN number

Location: Query, Data Type: string

** A word enclosed with curly brackets "{ }" in the code means that it is a parameter and it should be replaced with your own values when executing. (also overwriting the curly brackets).
Returns

Below is a sample response from the endpoint


If you wish to play around interactively with real values and run code, see...

Check SWIFT Code

Parameters

swift_code (required)

SWIFT code

Location: Query, Data Type: string

** A word enclosed with curly brackets "{ }" in the code means that it is a parameter and it should be replaced with your own values when executing. (also overwriting the curly brackets).
Returns

Below is a sample response from the endpoint


If you wish to play around interactively with real values and run code, see...

Get US Banks by state

Parameters

state_code (required)

State code (Ex: VA)

Location: Query, Data Type: string

page (optional)

Page offset

Location: Query, Data Type: string

per_page (optional)

Items per page

Location: Query, Data Type: string

search_term (optional)

Search by bank name

Location: Query, Data Type: string

** A word enclosed with curly brackets "{ }" in the code means that it is a parameter and it should be replaced with your own values when executing. (also overwriting the curly brackets).
Returns

Below is a sample response from the endpoint


If you wish to play around interactively with real values and run code, see...

Check US routing number

Parameters

us_routing (required)

US routing number

Location: Query, Data Type: string

** A word enclosed with curly brackets "{ }" in the code means that it is a parameter and it should be replaced with your own values when executing. (also overwriting the curly brackets).
Returns

Below is a sample response from the endpoint


If you wish to play around interactively with real values and run code, see...

Rate Limiting

Each subscription has its own rate limit. When you become a member, you start by choosing a rate limit that suits your usage needs. Do not worry; You can upgrade or downgrade your plan at any time. For this reason, instead of starting with a larger plan that you do not need, we can offer you to upgrade your plan after you start with "free" or "gold plan" options and start using the API.

When you reach a rate limit (both daily and monthly), the service will stop responding and returning the HTTP 429 response status code (Too many requests) for each request with the following JSON string body text.

{
"message":"You have exceeded your daily\/monthly API rate limit. Please review and upgrade your subscription plan at https:\/\/apilayer.com\/subscriptions to continue."
}

A reminder email will be sent to you when your API usage reaches both 80% and 90%, so that you can take immediate actions such as upgrading your plan in order to prevent your application using the API from being interrupted.

You can also programmatically check your rate limit yourself. As a result of each request made to the APILayer, the following 4 fields provide you with all the necessary information within the HTTP Headers.

x-ratelimit-limit-month: Request limit per month
x-ratelimit-remaining-month: Request limit remaining this month
x-ratelimit-limit-day: Request limit per day
x-ratelimit-remaining-day: Request limit remaining today

You can contact our support unit if you need any assistance with your application regarding to handle the returned result by looking at the header information.

Error Codes

APILayer uses standard HTTP response codes to indicate the success or failure of an API request. In general: Codes in the 2xx range indicate success. Codes in the 4xx range indicate a clientside error, which means that failed given the information provided (e.g., a missing parameter, unauthorized access etc.). Codes in the 5xx range indicate an error with APILayer's servers (normally this should'nt happen at all).

If the response code is not 200, it means the operation failed somehow and you may need to take an action accordingly. You can check the response (which will be in JSON format) for a field called 'message' that briefly explains the error reported.

Status Code Explanation
400 - Bad Request The request was unacceptable, often due to missing a required parameter.
401 - Unauthorized No valid API key provided.
404 - Not Found The requested resource doesn't exist.
429 - Too many requests API request limit exceeded. See section Rate Limiting for more info.
5xx - Server Error We have failed to process your request. (You can contact us anytime)

You can always contact for support and ask for more assistance. We'll be glad to assist you with building your product.

Reviews

5.00
  • Review rating
  • Review rating
  • Review rating
  • Review rating
  • Review rating
API rating
Cilene Veloria
1 months ago

Cilene Veloria

  • Review rating
  • Review rating
  • Review rating
  • Review rating
  • Review rating

really good api