Skip to main content

Overview

Warnings on the face match report flag every condition Didit observed while running the 1:1 face comparison. They land in the warnings[] array on each item of face_matches[] (see Face match report). Each entry also carries feature: "FACEMATCH" and the node_id of the workflow node that raised it. Every warning has three layers:
  1. The risk code — a stable identifier you can match on in your code.
  2. The log_typeinformation, warning, or error, derived from your workflow’s similarity-score thresholds.
  3. The decision impact — set by the workflow’s review and decline thresholds for the similarity score.
The face match module is intentionally small — there are exactly five risk codes, listed in full below.

Auto-decline conditions

The following risk always forces the face match report (and the session) to Declined: When NO_REFERENCE_IMAGE fires, LOW_FACE_MATCH_SIMILARITY is suppressed (there is nothing to score).

Configurable verification settings

In the Didit console, the face match similarity score is governed by two thresholds (no Approve/Review/Decline toggle): Tune the review threshold higher if you observe too many false approvals; tune the decline threshold lower if you observe too many false declines. A separate setting controls what happens when a similarity score cannot be computed at all because no face was detected in one of the images: This action governs both FACE_MATCH_NOT_COMPUTED (no face in the document portrait) and an exhausted NO_FACE_IN_SELFIE (no face in the selfie after the user’s retries). When the selfie is the problem, the user is first asked to recapture — see below — and the action only applies if a face still cannot be detected once the attempt budget runs out. Low-similarity failures also enter a capture-retry loop before the status sticks: the user gets up to face_match_max_attempts total attempts (default 3, configurable 2–5 per workflow node) to recapture. A NO_FACE_IN_SELFIE failure uses the same retry loop, since recapturing a clearer selfie can fix it. A FACE_MATCH_NOT_COMPUTED failure does not retry — the document portrait cannot be recaptured at this step. Only when the budget is exhausted does the last attempt’s status apply — and FACE_MATCH_MAX_ATTEMPTS_EXCEEDED is logged to record it. On the standalone Face Match API only a decline threshold exists (face_match_score_decline_threshold request option, default 30); any fired warning declines the request, and NO_REFERENCE_IMAGE fires when no face could be compared at all.

Warnings produced

Examples

In Review — borderline similarity

In Review — face match could not be computed

Auto-decline — missing reference

Retries exhausted — last attempt’s status applied

The standalone Face Match API returns the same warning shape minus node_id (the comparison is not bound to a workflow node).

Warning types

Each risk is assigned a severity based on your application’s configuration. The three severities are: