Bank Account Verification Service API Documentation

1. Introduction

This API is part of the BAV service.
Bank Account Verification or BAV for short is a service providing an API for verification of bank accounts within the issuing bank. This service checks if the bank account exists with the issuing bank is active and matches the owner provided by you.

Endpoint URL

The API endpoint for accessing the BAV information is: https://api.iban.com/clients/verify/v2/

Supported Countries

Currently, the BAV Service supports bank account verification for France.


2. Request

HTTP Method

The API supports HTTP POST request.

Request Headers

To authenticate you as our client, you need to send the API key in the headers of the request.

Parameter Type Description
api_key string Your personal API key required to authenticate you with the service.

Request Body

Request body is provided in JSON format and must contain the following elements.

NOTE: Different countries require different input parameters. You can determine which parameter is required for a certain country by the right most column: Applies for Country Code

Parameter Type Description Applies for Country Code
country string The 2 letter ISO country code.
Currently, supported country codes: FR
Any
IBAN string The International Bank Account Number . FR
name string The first and last name of the account owner. Example: John Doe
This parameter is used to perform name matching verification.
FR
account_type string Accepted values are: 'company' or 'person'. This parameter determines the type of bank account to be determined. It is required for France verifications. FR
SIREN string A 9 digit company identification number required for verifying company accounts in France. If you do not know the SIREN, you can find it by company name at:
https://www.sirene.fr/sirene/public/accueil?sirene_locale=en
FR

Example Requests

Verificaiton request of Personal account for France (FR): Verificaiton request of Company account for France (FR):

3. Response

Response Format

The API returns a JSON object with the following fields:

Field Type Description
query object The information you provided to the service for verification.
account_valid boolean Indicates whether the account number is valid and exists in the bank.
name_match string Indicates whether the name you provided matches the name of the account with the bank.
success boolean Indicates if the verification has been successfully completed. If false an error message will be present.
error string Message describing the error which prevented the validation.

query

The query object contains information about the query request.

Field Type Description
country_code string The 2 letter ISO country code.
bank_code string The bank code / sort code which is used to identify the issuing bank or institution.
account string The bank account number sent to the bank for verification.
name string The name of the account owner you sent for performing a name match.
success boolean This flag indicates if the query was successfully completed with the issuing financial institution.

account_valid

The account_valid field indicates whether the bank account number is and exists with the issuing bank.
Possible values are 'true', 'false' and 'null' in case check cannot be carried out.

name_match

The name_match field indicates whether the name you provided matches the owner of the account.
Possible values for this field are 'Yes', 'No', 'Partial'.
Partial indicates that part of the name matches the account owner.

error

The error field provides a human readable message describing any error occurred during the validation process.

Example Response

Example response for France(FR)

4. Response timing

API response times may vary depending on the country/provider.

For France average response time is 50 seconds.


5. Error Handling

If an error occurs during the request, the API may return an appropriate HTTP status code along with an error response in the JSON format. Common error fields may include:

HTTP Status Message Cause/Solution
400 Bad Request. Missing header: x-api-key You need to send the API key within the header of your http request.
400 Bad Request. Invalid JSON The request body must be a valid JSON structure.
400 Bad Request. Missing parameter: country_code Country code must be provided in the request body
400 Bad Request. Missing parameter: bank_code Bank code must be provided in the request body
400 Bad Request. Missing parameter: account Account Number must be provided in the request body
400 Bad Request. Missing parameter: name Name of the account owner must be provided for match verification to be performed.
401 API Key is invalid You must provide a valid API key to identify your account with the API.
401 IP Address is not allowed You have enabled IP access restriction in your account. You need to allow access for the IP address of the server which is making the request.
401 You have no access to this API/td> Your account does not have access to this service. You need to purchase a license/subscription.
401 Subscription expired The service plan has expired. You need to renew your subscription from your Client Area -> My Services section.
401 No credits available The pre-loaded credits in your service plan have been exhausted. You need to refill your plan by purchasing another package from your Client Area -> Pricing section.
400 Invalid sort code or account number. The sort code and account number you sent were not accepted by the bank as one of the two is invalid. This could indicate a syntax error.
503 Verification failed due to technical issue with the bank. The issuing bank is not responding. We were unable to verify the data you sent.
Credits will not be deducted from your account in this case.
400 This is not a personal account. Verification was carried out. The bank indicates that this is not a personal account. It seems that the account you provided belongs to a company. You must set account_type to 'company' and provide 'SIREN' parameter for verification.
400 Account does not exist or is closed. The verification was carried out, however the bank reports this account as closed or non existent.
400 IBAN is not valid The IBAN you sent for confirmation is not valid. Check if you have entered it incorrectly.
500 Internal Server Error. There was a problem with the service on our end. If the problem persists, please contact our support team.
Credits will not be deducted from your account in this case.
429 Too many requests. Rate limit reached. Our API is rate limited to provide optimal performance. Please throttle your requests.

Ensure to handle error responses gracefully and provide appropriate feedback to users.