Skip to main content
Didit’s Database Validation feature verifies identity data against authoritative civil registries — RENAPER (Argentina), Receita Federal (Brazil), Tribunal Electoral (Panama, biometric), Junta Central Electoral (Dominican Republic), and more — billed per successful query with no monthly minimums. When no service can run (required fields missing or malformed, registry unavailable), the document itself cannot be checked (it does not carry the identifier the configured services need — e.g. a passport without a national ID number), or the aggregate outcome is non-conclusive (partial match, no match), the feature emits a warning on the session. If the issuing state isn’t enabled in the workflow at all, the step is skipped silently with no warning and no charge. This page documents every warning code, what triggers it, and how to configure the workflow response.

Overview

Warnings are produced both in workflow sessions and by the standalone API (POST /v3/database-validation/). All five risks are tagged with feature DATABASE_VALIDATION, appear on the report under database_validations[].warnings[], and follow the standard warning object shape (feature, risk, additional_data, log_type, short_description, long_description, node_id). There are no hard auto-decline triggers for Database Validation. The two match-outcome risks, the superseded-document risk and the not-applicable risk map to a configurable action (DECLINE, REVIEW, or NO_ACTION); COULD_NOT_PERFORM_DATABASE_VALIDATION is the one fixed behavior — it always routes the feature to In Review.

Configurable risks

The configured action also drives the warning’s log_type: DECLINEerror, REVIEWwarning, NO_ACTIONinformation. The match outcome itself is aggregated from the per-service validation entries (any full match → full_match; else any partial → partial_match; else no_match) — see Matching methods for the full decision logic that derives 1×1 / 2×2 outcomes.

Warnings produced

COULD_NOT_PERFORM_DATABASE_VALIDATION covers two different situations, and the warning’s long_description (and, for a per-service failure, database_validation_errors[].message) now states which one applied instead of a single generic sentence: the screened data was missing or malformed before any service could be queried, or a service was queried and did not return a usable result. In the second case, when the registry reported its own diagnostic detail for that attempt, that detail is included in the message so you don’t have to contact support to learn why. The upstream service is never named in the response.
When COULD_NOT_PERFORM_DATABASE_VALIDATION or DATABASE_VALIDATION_NOT_APPLICABLE fires in a workflow session, the check is automatically re-triggered once the missing data is filled in on the session detail page in the Console — saving the field re-runs the validation, and the warning is removed on success. This also works when the not-applicable action declined the session, so a declined session can be remediated by correcting the data. For DATABASE_VALIDATION_NOT_APPLICABLE the re-run helps when the document can carry the identifier but it wasn’t read (for example, a residence card whose national ID number wasn’t extracted); document types that never carry the identifier (for example, passports without a national ID number) keep the warning. No charge is applied for skipped services; you only pay when a service returns a billable result.

Example

Warning types

Each risk is assigned a severity based on your application’s configuration. Severities fall into three categories: