Bank Account IBAN Verification

Checks that a bank account (IBAN) belongs to the expected person or business. The result is returned synchronously in the same response. Use it to confirm account ownership before a payout, withdrawal or account-linking step, and to reduce fraud from mule or third-party accounts.

Authentication

This API uses HTTP Basic Authentication. Send your API key and secret as a base64-encoded ey:secret pair in the Authorization header.

Authorization: Basic <base64(api_key:api_secret)>
Content-Type: application/json

Sandbox and Live environments use separate credentials. Sandbox requests do not count towards your verification quota but run against mock test data.


Request body

FieldTypeRequiredDescription
customer_typestring (enum)YesType of account holder. Possible values areindividual or business.
country_codestring (2 chars)YesCountry where the account is held, in ISO 3166-1 alpha-2 format. Supported: AE.
ibanstringYesThe IBAN to verify, without spaces.
identifiersarray of objectsYesDetails of the expected account holder. Minimum 1, maximum 2 items. See below for further details.

identifiers[] object

FieldTypeRequiredDescription
typestring (enum)YesType of identifier. See the allowed values in the table below.
valuestringYesIdentifier value.

Allowed identifier types

customer_typetypeDescriptionExample
individualemirates_idEmirates ID number, 15 digits, no dashes784198012345678
individualfull_nameFull name as registered with the bankAhmed Ali Hassan
businesstrade_licenceTrade licence numberCN-1234567
businessbusiness_nameRegistered business nameExample Trading LLC

Rules

  • Send the ID identifier (emirates_id or trade_licence), the name identifier (full_name or business_name), or both.
  • Sending both gives the most reliable result.
  • Identifier types must match the customer_type. For example, trade_licence is rejected for individual.

Testing in Sandbox

Use the test data below with your Sandbox credentials to try each scenario. Send country_code: "AE", the IBAN from the row, and the identifier shown. Sandbox requests do not count towards your quota.

Individuals (customer_type: "individual")

Scenariofull_nameemirates_idiban
Full matchADAM AHMED—AE420260001015819612801
No matchADAM STARK—AE420260001015819612801
Partial matchADAM SOMETHING—AE420260001015819612801
Full matchLYNNA GRAIG TOY—AE970424090886582129014
Full matchIMA ELINORE SPINKA—AE340176545036785802838
Full match—784196710121542AE620030012285049920001
Full match—784-1967-1012154-2AE620030012285049920001
Blocked accountBLOCKED USER—AE810030012459313920001
Bank unavailableBANK ERROR TEST—AE160030011522789920001
Not supported by bankUNSUPPORTED TEST—AE420500000000028645064
Disabled by providerDISABLED TEST—AE100500000000028538649

Businesses (customer_type: "business")

Scenariobusiness_nametrade_licenceiban
Full matchABC LIMITED—AE620030012285049920001
No matchABC SOMETHING—AE620030012285049920001
Partial matchABC LIMIT—AE620030012285049920001
Full match—TLCL4206AE620030012285049920001
Full match—TL000004778AE620030012285049920001

Response

The response returned in case of an accepted request contains the following fields:

FieldTypeDescription
idstring (UUID)Unique ID of this IBAN verification transaction. Use it for support and reconciliation.
tenant_idstring (UUID)ID of your IDWise tenant account.
environment_typestring (enum)Environment the verification ran in: sandbox or live.
customer_typestringCustomer type sent in the request.
country_codestringCountry code sent in the request.
ibanstringIBAN sent in the request.
identifiersarray of objectsIdentifiers sent in the request.
statusstringProcessing status. completed means the bank returned a result.
created_atstringTime the verification was created (UTC).
resultstringOverall outcome of the verification, e.g. verified.
ownership_verifiedbooleantrue when the account holder matches the identifiers provided.
matching_typestring (enum) | nullHow closely the identifiers match the account holder: FULL, PARTIAL or NONE. See Matching types.
This value is null when ownership is verified directly by the bank.
matching_scorenumber (0–1) | nullConfidence of the match, from 0 (no match) to 1 (exact match). Returned with matching_type.
account_holder_namestring | nullAccount holder name as held by the bank, where the bank returns it.
account_statusstring (enum)Status of the bank account: ACTIVE or INACTIVE.
account_currencystring | nullAccount currency (ISO 4217, e.g. AED), where the bank returns it.
bank_namestring | nullName of the bank holding the account.
bank_identifiersarray of objectsIdentifiers of the bank holding the account.
bank_identifiers[].typestring (enum)Type of bank identifier: BIC, SWIFT_CODE, BANK_CODE, CLEARING_ID or ACCOUNT_ID.
bank_identifiers[].valuestringIdentifier value, e.g. EBILAEADXXX.
results_idstring (UUID)Reference ID of the bank verification result. Share it with IDWise support when you require support on this transaction.
created_bystringWho created the verification, e.g. server API Key for API calls.
request_idstring (UUID)ID of the API request. Useful for tracing and support.

Matching types

matching_typeownership_verifiedMeaningSuggested action
nulltrueThe bank confirmed the account belongs to the person or business provided.Proceed.
FULLtrueThe identifiers fully match the account holder.Proceed.
PARTIALfalseClose but not exact, e.g. a missing middle name or a spelling difference. matching_score shows how close.Review manually, or ask the customer to confirm their details.
NONEfalseThe account does not belong to the person or business provided.Do not proceed. Treat as high risk.
Body Params
string
enum
required
Defaults to individual

Type of account holder. individual or business.

Allowed:
string
required
Defaults to AE

Country where the account is held, in ISO 3166-1 alpha-2 format. Supported: AE.

string
required

The IBAN to verify, without spaces.

identifiers
array of objects
required
identifiers*
Responses

Language
Credentials
Basic
base64
:
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json