Overview
Warnings on the NFC report flag every condition Didit observed while reading and validating the chip. They land in thewarnings[] array on each item of nfc_verifications[] (see NFC report), with feature set to "NFC". Each entry follows the shared warning object shape: feature, risk, additional_data, log_type, short_description, long_description, node_id.
Every warning has three layers:
- The
riskcode — a stable identifier you can match on in your code (the codes listed below). - The
log_type— one ofinformation,warning, orerror. It is derived from the action your workflow configures for that risk: No action →information, Review →warning, Decline →error. - The decision impact — the same configured action also drives the NFC report’s
status: a Review action moves it toIn Review, a Decline action toDeclined.
SKIPPED_NFC_VALIDATION, NFC_CHIP_NOT_VERIFIED, NFC_TRUST_ANCHOR_MISSING, NFC_AND_OCR_DATA_NOT_SAME). The two certificate risks (DSC_CERTIFICATE_REVOKED, DSC_CERTIFICATE_EXPIRED) are informational only: they always carry log_type: "information" and never change the NFC status by themselves.
The full set of risk codes the NFC module produces is below. No other NFC risk codes exist.
Warnings produced
SKIPPED_NFC_VALIDATION is mutually exclusive with NFC_CHIP_NOT_VERIFIED and NFC_TRUST_ANCHOR_MISSING: chip-verification warnings are only evaluated when the chip read was not skipped. The two chip-verification warnings are also mutually exclusive.Exact description strings
The API returns these exactshort_description and long_description strings for each risk:
Skip reasons
SKIPPED_NFC_VALIDATION warnings carry additional_data.skip_reason, one of six stable codes stating exactly why NFC did not run (on sessions recorded before skip reasons existed, additional_data may be null — treat the field as optional when processing historical decisions). The same taxonomy appears at the session level as nfc_skip_reason on the decision payload — including for sessions where NFC could never run at all (chipless document, web integration) and therefore no NFC report or warning exists.
An NFC report and its
SKIPPED_NFC_VALIDATION warning only exist when the client reached the NFC step and explicitly skipped it (typically USER_SKIPPED, or DEVICE_WITHOUT_NFC when the reader turned out to be unavailable at scan time). When the NFC step was bypassed before it could ever be offered — chipless document, missing certificate, no NFC capability reported, unreadable MRZ key — no report or warning is created and the reason surfaces only in the session-level nfc_skip_reason field, without affecting the session status.Configuration
Three workflow settings control how NFC warnings route. Each can be set to No action, Review, or Decline:- Skip NFC action (
skip_nfc_action) — applies toSKIPPED_NFC_VALIDATION. Skipping is only offered to users whenallow_nfc_skipis enabled. - Unverified chip action (
unverified_chip_action) — applies to bothNFC_CHIP_NOT_VERIFIEDandNFC_TRUST_ANCHOR_MISSING, so the session status behavior remains the same while the risk code explains why verification failed. - Data inconsistency action (
inconsistent_data_action) — applies toNFC_AND_OCR_DATA_NOT_SAME. This is the same data-inconsistency setting used by ID verification.
DSC_CERTIFICATE_* risks have no action setting — they are always informational.
Examples
In Review — chip could not be verified
NFC_CHIP_NOT_VERIFIED carries log_type: "warning" and the NFC report’s status is In Review. The expired-DSC entry is purely informational.
Declined — chip / OCR mismatch
log_type: "error" and the NFC report’s status is Declined. Note that ocr_mrz is an array of MRZ lines while nfc_mrz is the chip’s single concatenated MRZ string.
Warning types
Each risk is assigned a severity based on your application’s configuration. The three severities are:Related
- NFC report — full report schema and statuses.
- Webhooks —
status.updatedfires on session status changes; the decision payload (including NFC warnings) is attached when the session reaches Approved, Declined, In Review, or Abandoned. - Data models — NFC verification — canonical field-by-field schema.
- Data models — Warning object — the shape of every entry in
warnings[].