Matching
This topic describes how you can use the following features to corroborate data from different sources:
Process/userData matching service
This section describes how to use the Matching service to compare information in two data nodes of a dossier. These nodes can be:
- The final result of two processes.
- The dossier's userData and a process' final result.
The fields that are matched from each data node are the following:
- All data nodes must exist inside the same dossier.
- To have a finalResult, the process must have been “accepted”.
If you need other matching services than the ones described in this section, you contact us by creating a support ticket in the Signicat Dashboard.
String matching
Values are normalised into uppercase before matching is performed. Diacritics are removed.
A string compare is performed:
- Exact match:
trueif all characters match, otherwisefalse. - Partial match:
trueif it is composed of multiple names and at least one is an exact match or the similarity ratio is above 90% of characters. Otherwisefalse.
Examples on string matching:
Date matching
Values are normalised into the “YYYYMMDD” format before matching is performed.
Rules for matching:
- String compare of normalised form.
- Exact match if all numeric digits are equal.
- Partial match for similarity ratio above 90%.
Examples on date matching:
Onfido data comparison
The Onfido provider allows asserting whether the data in the document is consistent with the data provided by the end-user. The following fields can be used for comparison:
- firstName
- lastName
The Onfido comparison system uses a Levenshtein-like fuzzy matching for these fields. The purpose of this inexact matching is to avoid unnecessary failures if the names are mathematically close enough.
- This option is switched off by default. To enable data comparison with Onfido, you need to contact us by creating a support ticket in the Signicat Dashboard.
- In the Create process request, you must always provide a
firstNameandlastName. For example, you can ask the end-user to provide this data in a form. Otherwise, you will only obtain inconclusive results. Request example:curl --location --request POST 'https://api.signicat.com/assure/dossiers/<dossierId>/processes' \
--header 'Authorization: Bearer eyJh ... QifQ.eyJ ... hIOw' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data-raw '{
"provider": "onfido",
"firstName": "Maria Paula",
"lastName": "Santos Mendes"
}' - In the process result, you will see a
dataComparisonfield that indicates if the data matched (clear) or not (consider).