VOP matching algorithm
Learn more about the Mambu Payments (formerly Numeral) VOP matching algorithm
Introduction
For every incoming VOP request, Mambu Payments compares the account holder name received with all account holder names associated with the account number, including both main and alternative names. These holder names are retrieved:
- From internal accounts (using
holder_name
andalternative_holder_names
fields), if you are using internal accounts - With a direct call to your system (using
payee_identification
attribute in your response), if you chose the account holder request integration
If one match
is found (based on the distance and thresholds configured, as described below), the request is answered with match
.
If no match is found, Mambu Payments will try to find matches by computing variants of your stored holder names. For names with four words or fewer, we will compute all possible word combinations from the account holder's name and compare them against the name received. For instance, for an account holder named "John Michael Doe", our system checks variants like "John Michael Doe", "Doe John Michael", "Michael Doe John", and so on.
The algorithm then returns the highest similarity score found across all these comparisons, ensuring the most accurate possible match.
1. Data cleaning
For account holder names both received and stored, we apply standard data cleaning:
- Case normalization: All letters are converted to lowercase
- Accent removal: Standard accents and diacritical marks are removed from letters (e.g.,
$é → e$
) - Special character replacement: A specific set of characters are replaced with their common Latin equivalents (e.g.,
$ø → oe$
,$ß → ss$
) - Punctuation & symbol removal: All punctuation, symbols, and emojis are completely removed. Only letters (a-z) and numbers (0-9) are kept
- Whitespace normalization: All spaces at the beginning and end of the text are trimmed, and any sequence of multiple spaces between words is collapsed into a single space
- Title removal: Common English and French honorific titles (e.g.,
Mr
,Dr
,Mme
,Prof
) are removed - Legal form abbreviations: Common European company prefixes (GmbH, SAS, etc.) are removed
2. Distance measures
To compare two account names, Mambu Payments calculates a distance between them. Distance is the similarity between two names, measured as the number of transformations needed to go from one name to the other.
Mambu Payments currently supports two distance measures:
- Levenshtein distance measures similarity by identifying the minimum number of single-character edits (insertions, deletions, or substitutions) required to transform one string into another. It is a straightforward measure of overall difference
- Jaro-Winkler distance assesses similarity by considering shared characters and transpositions. It applies a higher weighting to characters that match at the beginning of the strings, making it particularly effective for common name variations and misspellings where prefixes are often consistent
You can choose the distance measure to use when processing incoming VOP requests. The distance calculated is then normalized and converted into a matching score ranging from 0 to 100, by dividing by the characters-count of the name stored in your system.
3. Thresholds and result
Once a matching score is computed using your chosen distance metric, Mambu Payments translates it into one of three distinct outcomes: match, close match, or no match. To achieve this, you will configure two key thresholds:
- Upper threshold: any score at or above this value will result in a match
- Lower threshold: any score below this value will result in a no match
- Between upper threshold and lower threshold: result will be a close match
These customizable thresholds provide granular control, allowing you to fine-tune the matching sensitivity to perfectly align with your operational requirements and risk appetite.
Multiple names management
It may be relevant to have multiple holder names associated with the same account number. Use cases include:
- Joint accounts, where you may expect incoming VOP requests with any combination of the account holder names
- Middle names that payers will not necessarily provide
- Company names which can have many variants (legal name, commercial name, etc.)
For all these use cases, we encourage you to:
- Fill
alternative_holder_names
accordingly, if you are using internal accounts - Pass multiple
payee_identification
if you chose the account holder request integration
When given multiple holder name, Mambu Payments will compare all of them to the name received and base its answer one the pair with the highest matching score.
Updated 12 days ago