Skip to main content

Overview

Shufti's Bank Account Verification (BAV) service performs a real time check against banking data sources, returning an account status without requiring the end user to upload a document or complete a test transfer.

The service answers one of two questions, depending on what is submitted:

  • BAV Check — verifies that a bank account exists and that it belongs to the person or business presented as the account holder.
  • IBAN Check — verifies that an IBAN is correctly formed and passes its check digits, and identifies the bank it belongs to. It makes no claim about who owns the account.

How It Works​

The bank account verification process includes the following steps:

  1. Data Collection: The merchant collects the account holder name and bank account details on its own platform.
  2. API Request: The merchant's server sends a verification request to Shufti with the collected details. The required fields, such as account holder name, account number or IBAN, and bank code, depend on the country.
  3. Check: Shufti sends the details to its third-party data source. For a BAV Check, the data source checks them with the bank data in the destination country and confirms that the account exists and, in most countries, that the account holder name matches the bank's record. For an IBAN Check, the IBAN's structure and check digits are validated and no bank is contacted.
  4. Result: Shufti receives the result from the third-party data source. Depending on the check and the country, the result is a name match score and result, a confirmation that the account exists, or an IBAN validity result together with the bank the IBAN belongs to.
  5. Response and Callback: Shufti returns the result in the API response. If a callback URL is provided, Shufti also sends the result to that URL.
  6. Back Office Record: The verification is recorded in the Shufti back office against its reference.

Bank Account Verification

info

The validation type and the response returned are determined by the country in the API request, and by which check runs. See the list of BAV-supported countries.

Check Types​

Every supported country offers a BAV Check, an IBAN Check, or both.

CheckWhat it confirmsWhat it does not confirm
BAV CheckThe account exists, is active, and is held by the submitted account holder. In Thailand and the Philippines, only that the account exists or that the account number is correctly formed (see Validation Types).In Thailand and the Philippines, who holds the account.
IBAN CheckThe IBAN's country prefix, length, character set and check digits are valid, and which bank it belongs to.That the account exists, that it is active, or who holds it.

Choosing the Check​

The check is selected by the fields submitted in the bank_account_verification object, not by a separate parameter.

  • Submit only account.iban and nothing else, and the IBAN Check runs.
  • Submit the account holder name together with the account details, and the BAV Check runs.

For a country that supports only one of the two, the fields it requires are fixed and there is nothing to choose. For a country that supports both, the choice is yours on every request.

caution

On a country that supports both checks, omitting the account holder name does not produce a validation error. It selects the IBAN Check instead, which is a weaker check: an accepted result then means the IBAN is well formed, not that the account exists or that your customer holds it. Always send the account holder name when you intend to verify ownership, and read verification_mode in the response to confirm which check ran.

Validation Types​

BAV is a passive verification. Shufti does not interact with the end user and no document upload or redirect is involved. The check runs on the data submitted in the API request. The type of validation depends on the country.

Validation typeCheckCountries
Name MatchBAV CheckEvery country that offers a BAV Check, except Thailand and the Philippines
Account Existence CheckBAV CheckThailand
Format ValidationBAV CheckThe Philippines
IBAN ValidationIBAN CheckEvery country that offers an IBAN Check

1. Name Match​

The account is validated and the submitted name is checked against the bank's record. The name registered on the account is not returned. See Account Holder Name Match.

2. Account Existence Check​

Confirms that the account exists and can receive funds. No name check is performed: Thailand requires account_holder_name in the request, but the name is not compared with the bank's record, so an accepted result does not confirm who holds the account. name_match_score and name_match_result are returned as null.

3. Format Validation​

Checks that the account number is correctly structured for the bank identified by the BIC. The bank is not contacted, no account holder name is submitted and no name check is performed. name_match_score and name_match_result are returned as null.

4. IBAN Validation​

Checks the IBAN's country prefix, length, character set and check digits. The bank is not contacted and no name check is performed. Where the data source identifies it, the bank behind the IBAN is returned in bank_name, bic, bank_address, clearing_system_id and payment_scheme_eligibility. This is what an IBAN Check performs.

Account Holder Name Match​

Applies to the BAV Check only, and not in Thailand or the Philippines. An IBAN Check submits no name, so no name match is performed and no name match fields are returned.

The name submitted by the merchant is compared with the name the bank holds for the account. A name match result is returned only when the validation is successful.

OutcomeDescription
MatchThe account was found and the name matches the bank's record.
Partial MatchThe account was found and the name partially matches the bank's record. The verification is accepted.
No MatchThe account was found but the name does not match the bank's record. The verification is declined.