Skip to main content

Bank Account Verification matching logic

You can request to verify a bank account based on either 'first name and last name' or 'first name, last name and bank account number'. The output will be a matching result.

For this matching result, we compare the prefilled data (expected value) against the data we received from the bank (actual value) and try to find the best match.

Example:

If {"firstName": "John", "lastName": "Doe"} was provided and the bank returns 'John T Doe Something Else', we will match:

  • firstName → John
  • lastName → Doe

We try to find the best match based on the percentage of matching characters. Before comparison, we pass your input (firstName and lastName) and the bank response through normalisation functions.

Unicode normalization

We apply normalization to corroboration matching only:

  • Remove accents (ą -> A, ü -> U)
  • Removed strokes (ł -> L, ø -> O)
  • Split ligatures (æ -> AE, ß -> SS)
  • Replace characters: -, _, ;, ., ,

Account information (such as account holder name) will be returned unchanged.

Example:

  • Expected value : firstName: Michal-T , lastName: Doe
  • Actual value : firstName: Michał T Doe
  • Corroboration result is 100