Skip to main content

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 fields that are matched from each data node are the following:

Conditions
  • All data nodes must exist inside the same dossier.
  • To have a finalResult, the process must have been “accepted”.
Other matching services?

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: true if all characters match, otherwise false.
  • Partial match:true if it is composed of multiple names and at least one is an exact match or the similarity ratio is above 90% of characters. Otherwise false.

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.

  1. 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.
  2. In the Create process request, you must always provide a firstName and lastName. 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"
    }'
  3. In the process result, you will see a dataComparison field that indicates if the data matched (clear) or not (consider).