> ## Documentation Index
> Fetch the complete documentation index at: https://docs.didit.me/llms.txt
> Use this file to discover all available pages before exploring further.

# Report verifica identità: campi e punteggi di qualità

> Il report di verifica dell'identità di Didit include stato, campi estratti, punteggi di qualità dell'immagine e corrispondenze tra sessioni.

## Panoramica

Il **report di verifica dell'identità** raccoglie tutto ciò che Didit ha estratto e validato da un documento d'identità rilasciato da un'autorità governativa: passaporti, carte d'identità, patenti di guida e permessi di soggiorno. Raggruppa i campi anagrafici e del documento estratti tramite OCR, gli URL firmati per i contenuti multimediali acquisiti, i dati dell'indirizzo analizzati e geolocalizzati, i punteggi di qualità dell'immagine per ciascun lato, i contenuti della MRZ, le suddivisioni per sistema di scrittura (latino / non latino) e le corrispondenze del documento tra sessioni diverse.

Il report viene generato dopo che l'utente ha completato il passaggio di acquisizione del documento in un workflow (o dopo aver chiamato l'endpoint OCR autonomo). Didit identifica il tipo di documento, esegue l'OCR, valida la MRZ / il codice a barre / il codice QR, analizza l'indirizzo, verifica la presenza di manomissioni (acquisizioni da schermo, copie stampate, manipolazioni del ritratto) e confronta il documento con ogni altro documento acquisito nella tua applicazione.

Ciascun report include il proprio `status` — indipendente dallo stato generale della sessione — che riflette l'esito del solo passaggio relativo al documento d'identità:

* **Approvato** — documento riconosciuto, tutti i campi obbligatori estratti, nessun avviso configurato per indirizzare il documento al rifiuto si è attivato.
* **In revisione** — uno o più avvisi si sono attivati e il tuo workflow li indirizza verso la revisione.
* **Rifiutato** — si è verificata una condizione di rifiuto automatico (documento non supportato, documento scaduto, ritratto mancante, riscontro in blocklist, mancato superamento dell'età adattiva) oppure si è attivato un avviso la cui azione configurata è Rifiuta (l'età minima/massima è impostata per impostazione predefinita su Rifiuta).
* **Scaduto** — la `expiration_date` del documento è trascorsa **dopo** la verifica. Il monitoraggio continuo della scadenza di Didit passa il report da `Approved` a `Expired`, aggiunge un avviso `DOCUMENT_EXPIRED` e sposta una sessione approvata allo stato di sessione `Kyc Expired`.
* **Non completato** — l'utente non ha mai completato il passaggio di acquisizione.

## Dove compare nelle risposte API

Il report di verifica dell'identità viene fornito all'interno dell'array `id_verifications[]` — **sempre un array JSON**, mai un singolo oggetto `id_verification`. Compaiono più voci quando un workflow esegue più di un passaggio del documento (ad esempio un documento d'identità principale più un passaggio di incremento del livello di verifica).

* **API per la decisione della sessione** — `GET /v3/session/{sessionId}/decision/` restituisce `id_verifications[]` al livello principale. Consulta [Recupera decisione della sessione](https://docs.didit.me/it/sessions-api/retrieve-session.md).
* **Webhook** — i payload di `session.status.updated` includono lo stesso array `id_verifications[]` una volta che il passaggio ha generato dati. Consulta [Webhook](https://docs.didit.me/it/integration/webhooks.md).
* **API OCR autonoma** — l'invio diretto del documento restituisce un singolo oggetto `id_verification` con gli stessi campi. Consulta [API OCR autonoma](https://docs.didit.me/it/standalone-apis/id-verification.md).

> [!NOTE]
>
> Leggi `response.id_verifications[0]` e itera sull'array. La struttura a singolo oggetto `id_verification` esiste solo nell'API OCR autonoma: non è presente sull'endpoint v3 per la decisione.

## Schema

Lo schema canonico campo per campo si trova nella pagina di riferimento [Modelli di dati](https://docs.didit.me/it/reference/data-models.md#verifica-dell’identità). I campi sottostanti provengono direttamente da `IDVerificationV3Serializer`, che estende `IDVerificationV2Serializer` e aggiunge `node_id`, l'array tra sessioni `matches[]` e l'array `document_selfie_face_matches[]` di Silent Capture.

### Campi di primo livello

| Campo | Tipo | Descrizione |
| - | - | - |
| `status` | `"Approved" \| "Declined" \| "In Review" \| "Expired" \| "Not Finished"` | Stato del passaggio di verifica dell'identità. |
| `node_id` | string \| null | Nodo del grafo del workflow che ha generato questo report. |
| `document_type` | `"Passport" \| "Identity Card" \| "Driver's License" \| "Residence Permit" \| "Health Insurance Card" \| "Tax Card" \| "Social Security Card" \| "Work Permit" \| "Visa" \| "Public Service Card" \| "Birth Certificate" \| "Firearm License" \| "Other" \| null` | Famiglia di documenti di primo livello riconosciuta (leggibile dall'utente). |
| `document_subtype` | string \| null | Codice del sottotipo di documento dal registro dei documenti di Didit, filtrato in base a quanto accettato dalle impostazioni dei documenti del workflow. I documenti specifici per regione includono la regione, ad esempio `QUEENSLAND_DRIVER_LICENSE_GENERIC`. Consulta [Sottotipi di documento](https://docs.didit.me/it/core-technology/id-verification/document-subtypes-id-verification.md) per l'elenco completo dei codici, incluse le indicazioni su come distinguere una patente commerciale statunitense (CDL) da una standard. |
| `document_number` | string | Numero del documento estratto tramite OCR. Per le patenti di guida che riportano sia il numero di patente sia il numero di carta, consulta la nota sotto la tabella. |
| `personal_number` | string | Numero identificativo personale o nazionale estratto tramite OCR, quando distinto dal numero del documento. |
| `portrait_image`, `front_image`, `front_video`, `back_image`, `back_video`, `full_front_image`, `full_back_image` | string (URL firmato) | Media acquisiti. Gli URL sono firmati e a tempo limitato: scaricali tempestivamente, non memorizzare mai l'URL in modo permanente. |
| `front_image_camera_front`, `back_image_camera_front` | string (URL firmato) \| null | Fotogrammi acquisiti dalla fotocamera frontale dell'utente durante l'acquisizione del documento. Utilizzati per il controllo facciale tra fotocamere e confrontati con la tua [blocklist facciale](https://docs.didit.me/it/console/blocklist-users.md#inserimento-di-volti-in-blocklist); ciascuno può anche essere [aggiunto alla blocklist facciale](https://docs.didit.me/it/management-api/lists/create-entry.md#volti-dal-selfie-della-cattura-del-documento). |
| `front_image_camera_front_face_match_score`, `back_image_camera_front_face_match_score` | float (0–100) \| null | Punteggio di somiglianza tra il fotogramma della fotocamera frontale e la foto del documento. |
| `document_selfie_face_matches` | array \| null | Sessioni precedenti o voci della blocklist facciale il cui volto corrisponde al selfie scattato durante l'acquisizione del documento ([Ricerca facciale Silent Capture](https://docs.didit.me/it/core-technology/face-search/overview.md#il-selfie-scattato-durante-l’acquisizione-del-documento)). Stesso formato delle voci di `liveness_checks[].matches`; `match_image_url` è un URL pre-firmato che scade. `null` per le sessioni meno recenti o quando la ricerca non è stata eseguita, `[]` quando è stata eseguita senza trovare corrispondenze. |
| `front_image_quality_score`, `back_image_quality_score` | object \| null | Valutazione della qualità per ciascun lato (vedi Punteggi di qualità dell'immagine). |
| `document_liveness` | object \| null | Punteggi di vitalità del documento per tipo di frode, con le relative soglie di valutazione (vedi Punteggi di vitalità del documento). Solo V3. |
| `date_of_birth`, `expiration_date`, `date_of_issue` | string (YYYY-MM-DD) | Date del documento. |
| `age` | number | Età del titolare in anni calcolata a partire da `date_of_birth`. |
| `issuing_state` | string (ISO 3166-1 alpha-3) | Codice del paese di emissione. |
| `issuing_state_name` | string | Nome localizzato del paese. |
| `first_name`, `last_name`, `full_name` | string | Nome del titolare nel sistema di scrittura scelto tramite `preferred_characters` (vedi sotto). |
| `gender` | `"M" \| "F" \| "U"` | Genere, se presente sul documento (`U` = sconosciuto). |
| `address`, `formatted_address` | string | Stringhe dell'indirizzo non elaborate e geocodificate/formattate. |
| `place_of_birth` | string | Luogo di nascita estratto tramite OCR. |
| `marital_status` | `"SINGLE" \| "MARRIED" \| "DIVORCED" \| "WIDOWED" \| "UNKNOWN"` | Stato civile, se presente sul documento. |
| `nationality` | string (ISO 3166-1 alpha-3) | Nazionalità del titolare, quando diversa dallo stato di emissione. |
| `extra_fields` | object | Campi aggiuntivi specifici del documento (categorie della patente, gruppo sanguigno, nomi in sistemi di scrittura alternativi, `tax_number`, …). |
| `mrz` | object \| null | Campi chiave/valore della MRZ analizzati. |
| `parsed_address` | object \| null | Indirizzo strutturato e geocodificato (`street_1`, `street_2`, `city`, `region`, `country`, `postal_code`, `address_type`, `formatted_address`, `document_location`, `raw_results`, `is_best_match`). |
| `extra_files[]` | array di URL firmati | Immagini aggiuntive allegate a questo documento. |
| `matches[]` | array | Corrispondenze del documento tra sessioni (vedi Corrispondenze tra sessioni). |
| `warnings[]` | array | Avvisi a livello di modulo — vedi [Avvisi della verifica dell'identità](https://docs.didit.me/it/core-technology/id-verification/warnings-id-verification.md). |

> [!NOTE]
>
> **`issuing_state` è sempre a livello di paese, mai a livello sub-nazionale.** Per ogni
> tipo di documento, comprese le patenti di guida rilasciate da uno stato o da una provincia
> (Australia, Stati Uniti, Canada), `issuing_state` e
> `issuing_state_name` riportano il **paese** (ad esempio `AUS` /
> `Australia`), non lo stato. Il valore sub-nazionale, quando il documento
> ne include uno, è disponibile separatamente in `parsed_address.region` (con fallback
> su `extra_fields.state` per alcuni tipi di documento). La panoramica della sessione
> nella **Business Console** mostra questo dato, quando presente, come una riga **Regione** sotto
> **Stato di emissione**.

> [!NOTE]
>
> **Patenti di guida che riportano due numeri (Australia).** Le patenti australiane
> riportano sia un numero di patente, che identifica l'abilitazione alla guida del titolare
> e rimane invariato in caso di sostituzione della tessera, sia un numero di carta,
> che identifica la carta fisica e cambia a ogni riemissione. Per queste
> patenti, Didit mappa sempre i numeri nello stesso modo:
>
> * `personal_number` — il **numero di patente**
> * `document_number` — il **numero di carta**
>
> Questo vale per ogni stato e territorio australiano (NSW, VIC, QLD, WA, SA,
> TAS, ACT, NT). Su alcune varianti il numero di carta è stampato solo sul retro,
> quindi viene letto solo quando viene acquisito il retro della patente. Quando non è
> possibile leggere alcun numero di carta, il numero di patente viene riportato sia come
> `document_number` sia come `personal_number`, in modo che `document_number` contenga
> sempre un identificativo al termine della verifica. In ogni caso, `personal_number` è il
> numero di patente. Su altri tipi di documento, `document_number` rimane
> il numero principale estratto tramite OCR e può costituire esso stesso un identificativo a livello di titolare.

> [!NOTE]
>
> **Il CUIL argentino è `extra_fields.tax_number`, mai `personal_number`.**
> I documenti argentini riportano il CUIL (l'identificativo a 11 cifre su cui si basano
> AFIP, ANSES e le agenzie di informazioni creditizie) in una posizione diversa su ciascun documento, e
> il DNI riporta un secondo numero a 11 cifre accanto ad esso:
>
> * sulla **patente di guida**, il CUIL è il valore contenuto in `personal_number`;
> * sul **DNI**, `personal_number` contiene il *número de trámite*, che
>   identifica la richiesta della carta e non è un identificativo del titolare.
>   Il CUIL del DNI viene letto dal relativo campo stampato.
>
> Pertanto `personal_number` **non** è un CUIL affidabile per l'Argentina: su un DNI è
> un numero a 11 cifre che non restituirà silenziosamente alcun risultato da nessun registro.
> Leggi invece `extra_fields.tax_number`. Didit lo riporta solo quando il valore
> è convalidato come un vero CUIL (prefisso della persona più la cifra di controllo modulo-11), in
> cifre canoniche senza separatori (`27111111117`), qualunque sia il documento
> argentino presentato dal titolare. Quando non è stato possibile leggere il CUIL della carta, la
> chiave è assente anziché essere compilata con un numero che non è un CUIL: acquisisci
> la patente di guida come secondo documento oppure raccogli il CUIL tramite la risposta a
> un Questionario o tramite i `metadata` della sessione, per coprire quegli utenti.

### Punteggi di qualità dell'immagine

`front_image_quality_score` e `back_image_quality_score` restituiscono ciascuno:

| Campo | Tipo | Cosa misura |
| - | - | - |
| `focus_score` | number 0–100 | Nitidezza: varianza locale del Laplaciano nel 10% dei valori più alti, resistente agli sfondi uniformi. Peso 45%. |
| `brightness_score` | number 0–100 | Penalizza immagini troppo scure o sovraesposte. Peso 30%. |
| `brightness_issue` | `"ok" \| "too_dark" \| "too_bright"` | Direzione del problema di luminosità, quando `brightness_score` è basso. |
| `resolution_score` | number 0–100 | Basato sul conteggio totale dei pixel dell'acquisizione. Peso 25%. |
| `is_document_fully_visible` | boolean \| null | `true` quando tutti e quattro gli angoli del documento sono visibili, `false` quando un angolo è tagliato, `null` quando il rilevamento degli angoli non era disponibile. |
| `overall_score` | number 0–100 | Composito ponderato (messa a fuoco 45%, luminosità 30%, risoluzione 25%). |

> [!TIP]
>
> Usa `overall_score` come rapido controllo di idoneità: punteggi superiori a **70** indicano generalmente un'acquisizione sufficientemente buona per una verifica affidabile.

### Punteggi del rilevamento della vitalità del documento

`document_liveness` riporta ciò che il [controllo del rilevamento della vitalità del documento](https://docs.didit.me/it/core-technology/id-verification/warnings-id-verification.md#vitalità-del-documento-manomissione) ha misurato, **indipendentemente dal fatto che abbia generato o meno un avviso**. Un avviso esiste solo quando un punteggio è sceso al di sotto di una delle soglie del workflow, quindi prima di questo campo un documento approvato non conteneva alcuna evidenza di vitalità: il campo è il modo in cui puoi sottoporre ad audit una sessione superata con successo. È `null` quando il controllo non è stato eseguito (ad esempio per un metodo che non prevede documenti o per un'indisponibilità del modello registrata nei log di sessione).

Contiene un oggetto per ciascun tipo di frode (`portrait_replace`, `printed_copy` e `screen_replay`), ciascuno con:

| Campo | Tipo | Significato |
| - | - | - |
| `score` | number 0–100 \| null | Probabilità che il documento sia autentico per questo tipo di frode (più alto = più probabile che sia autentico). È il valore **più basso** tra i due lati, ossia il valore utilizzato per la decisione. `null` quando nessuno dei due lati ha prodotto un punteggio utilizzabile: ad esempio, il punteggio del ritratto viene escluso su un lato in cui non è stato trovato alcun ritratto. |
| `front`, `back` | number 0–100 \| null | Lo stesso punteggio per ciascun lato acquisito. `null` per un lato non acquisito o il cui punteggio è stato escluso. |
| `decline_threshold`, `review_threshold` | number \| null | Soglie salvate quando il nodo di Verifica dell'identità ha valutato questo documento. Eventuali modifiche successive al workflow non le modificano. `null` quando le evidenze storiche di valutazione non sono disponibili. |
| `bucket` | `"approve" \| "review" \| "decline" \| null` | Dove si colloca `score` rispetto a tali soglie: inferiore a `decline_threshold` → `decline`, inferiore a `review_threshold` → `review`, altrimenti `approve`. `null` quando non c'è un punteggio utilizzabile, il controllo non è stato applicato o le evidenze storiche di valutazione non sono disponibili. Il bucket descrive questo controllo specifico per tipo di frode, non lo stato complessivo della sessione. |

```json theme={null}
"document_liveness": {
  "portrait_replace": {
    "score": 96.46,
    "front": 96.46,
    "back": 98.2,
    "decline_threshold": 35,
    "review_threshold": 70,
    "bucket": "approve"
  },
  "printed_copy": {
    "score": 91.2,
    "front": 91.2,
    "back": 93.7,
    "decline_threshold": 35,
    "review_threshold": 77,
    "bucket": "approve"
  },
  "screen_replay": {
    "score": 99.9,
    "front": 99.9,
    "back": 99.5,
    "decline_threshold": 30,
    "review_threshold": 70,
    "bucket": "approve"
  }
}
```

Per i documenti più vecchi senza evidenze di valutazione salvate, i punteggi memorizzati rimangono visibili ma sia le soglie che `bucket` sono `null`. Le impostazioni correnti del workflow non vengono mai utilizzate per ricostruire un esito storico. Lo stesso vale per un'acquisizione la cui valutazione del documento non è ancora stata completata.

La Business Console mostra le stesse tre righe nel blocco **rilevamento della vitalità del documento** della sezione Verifica dell'identità della sessione.

### Corrispondenze tra sessioni

`matches[]` elenca fino a **5** altri documenti nella tua applicazione che corrispondono a questo: stessa **data di nascita**, stesso **paese di emissione** e un **nome completo** fortemente simile. I documenti inseriti nella blocklist richiedono inoltre una corrispondenza esatta del numero di documento. Le sessioni appartenenti allo stesso utente (con lo stesso `vendor_data`) sono escluse.

Ciascuna voce include `session_id`, `session_number`, `vendor_data`, `verification_date`, `user_details` (`name`, `document_type`, `document_number`), `status`, `is_blocklisted` (`true` quando il documento è stato aggiunto alla tua blocklist), `api_service` e un `front_image_url` firmato.

## Valori di stato

| Stato | Significato | Effetto a valle |
| - | - | - |
| `Approved` | Documento riconosciuto, campi obbligatori estratti, tutti i controlli superati in base alle soglie configurate. | Viene conteggiato come controllo ID riuscito. |
| `In Review` | Uno o più avvisi sono scattati e il workflow li instrada alla revisione. | Anche la sessione passa a `In Review` fino all'intervento di un revisore. |
| `Declined` | Si è verificata una condizione di rifiuto automatico (documento non supportato, documento scaduto, fototessera mancante, riscontro nella blocklist, fallimento della verifica dell'età adattiva) oppure è scattato un avviso configurato su Decline. | La sessione viene rifiutata a meno che un altro ramo approvato non soddisfi il workflow. |
| `Expired` | La data di scadenza del documento è stata superata **dopo** l'approvazione. Impostato dal monitoraggio continuo dei documenti di Didit, attivo per impostazione predefinita (un paese e un tipo di documento la cui **Expiration mode** è **Allow expired** sono esenti), insieme a un avviso `DOCUMENT_EXPIRED`. | Una sessione approvata passa a `Kyc Expired`. |
| `Not Finished` | L'utente ha abbandonato il passaggio di acquisizione. | Il ramo ID non ha prodotto alcun risultato. |

## Documenti con più sistemi di scrittura (latino / non latino)

Alcuni documenti — kirghisi, kazaki, russi, giapponesi, coreani, cinesi, arabi, thailandesi e altri — riportano il nome, l'indirizzo o il luogo di nascita del titolare **sia** in una traslitterazione in caratteri latini **sia** nel sistema di scrittura locale. Puoi scegliere quale sistema di scrittura popola la risposta di primo livello con l'impostazione del workflow (o dell'API autonoma) `preferred_characters`:

| Valore | Popola i campi di primo livello con | L'altro sistema di scrittura va in |
| - | - | - |
| `latin` *(predefinito)* | La traslitterazione in caratteri latini stampata sul documento | `extra_fields.*_non_latin` |
| `non_latin` | I valori nel sistema di scrittura locale stampati sul documento | `extra_fields.*_latin` |

I valori nel sistema di scrittura alternativo si trovano all'interno di `extra_fields` sotto chiavi con suffisso: `first_name_non_latin`, `last_name_non_latin`, `middle_name_non_latin`, `full_name_non_latin`, `address_non_latin`, `place_of_birth_non_latin` (o le corrispondenti varianti `_latin`).

### Quando compaiono i campi nel sistema di scrittura alternativo

* **Solo quando entrambi i sistemi di scrittura sono effettivamente presenti sul documento.** Se un campo OCR indicato come "Surname-Kyrgyz (Cyrillic)" viene estratto come testo in caratteri latini (omoglifi o una traslitterazione latina), **non** si qualifica come alternativa non latina e tale chiave viene omessa.
* `full_name_non_latin` (e `full_name_latin`) vengono sempre **ricostruiti** dai singoli componenti di nome, secondo nome e cognome quando entrambi sono disponibili; il campo "Full Name" grezzo dell'OCR viene ignorato per coerenza.
* Quando `preferred_characters=latin` ma il documento contiene **solo** testo non latino (quindi i campi di primo livello finiscono per essere non latini), Didit esegue un passaggio di traslitterazione ed espone `first_name_latin`, `last_name_latin`, `middle_name_latin`, `full_name_latin`, `place_of_birth_latin` e `address_latin` come alternativa latina.

```json theme={null}
{
  "first_name": "John",
  "last_name": "Doe",
  "full_name": "John Doe",
  "extra_fields": {
    "first_name_non_latin": "Айна"
  }
}
```

`last_name_non_latin` è assente perché il campo "Surname (Cyrillic)" del documento è stato restituito in caratteri latini su questo campione; non c'era alcun cognome non latino autentico da estrarre.

## Esempi

### Approved — carta d'identità spagnola senza anomalie (tutti i campi)

```json theme={null}
{
  "id_verifications": [
    {
      "status": "Approved",
      "document_type": "Identity Card",
      "document_subtype": "ID_CARD_GENERIC",
      "document_number": "SAMPLE-DOC-12345",
      "personal_number": "SAMPLE-PER-12345",
      "portrait_image": "https://<media-host>/.../portrait.jpg?signature=...",
      "front_image": "https://<media-host>/.../front.jpg?signature=...",
      "front_video": "https://<media-host>/.../front.mp4?signature=...",
      "back_image": "https://<media-host>/.../back.jpg?signature=...",
      "back_video": "https://<media-host>/.../back.mp4?signature=...",
      "full_front_image": "https://<media-host>/.../full_front.jpg?signature=...",
      "full_back_image": "https://<media-host>/.../full_back.jpg?signature=...",
      "front_image_camera_front": null,
      "back_image_camera_front": null,
      "front_image_camera_front_face_match_score": null,
      "back_image_camera_front_face_match_score": null,
      "front_image_quality_score": {
        "focus_score": 85.3,
        "brightness_score": 92.1,
        "brightness_issue": "ok",
        "is_document_fully_visible": true,
        "resolution_score": 72.4,
        "overall_score": 84.6
      },
      "back_image_quality_score": {
        "focus_score": 79.1,
        "brightness_score": 90.5,
        "brightness_issue": "ok",
        "is_document_fully_visible": true,
        "resolution_score": 72.4,
        "overall_score": 81.5
      },
      "date_of_birth": "1990-01-01",
      "age": 35,
      "expiration_date": "2031-06-02",
      "date_of_issue": "2021-06-02",
      "issuing_state": "ESP",
      "issuing_state_name": "Spain",
      "first_name": "John",
      "last_name": "Doe",
      "full_name": "John Doe",
      "gender": "M",
      "address": "Avda de Madrid 34",
      "formatted_address": "Avda de Madrid 34, Madrid, Madrid 28822, Spain",
      "place_of_birth": "Madrid",
      "marital_status": "SINGLE",
      "nationality": "ESP",
      "extra_fields": {},
      "mrz": {
        "document_number": "SAMPLE-DOC-12345",
        "surname": "DOE",
        "name": "JOHN",
        "birth_date": "900101",
        "expiry_date": "310602"
      },
      "parsed_address": {
        "street_1": "Avda de Madrid 34",
        "street_2": null,
        "city": "Madrid",
        "region": "Madrid",
        "country": "ES",
        "postal_code": "28822",
        "address_type": "Avda",
        "formatted_address": "Avda de Madrid 34, Madrid, Madrid 28822, Spain",
        "document_location": { "latitude": 40.4168, "longitude": -3.7038 },
        "raw_results": {
          "geometry": {
            "location": { "lat": 40.4168, "lng": -3.7038 },
            "location_type": "ROOFTOP"
          }
        },
        "is_best_match": true
      },
      "extra_files": [],
      "warnings": [],
      "node_id": "id_primary",
      "matches": []
    }
  ]
}
```

### In Review — QR non rilevato su un documento che dovrebbe averne uno

In forma abbreviata: una risposta reale contiene sempre la serie completa di campi mostrata sopra.

```json theme={null}
{
  "id_verifications": [
    {
      "status": "In Review",
      "node_id": "id_primary",
      "document_type": "Identity Card",
      "document_subtype": "ID_CARD_GENERIC",
      "document_number": "SAMPLE-DOC-12345",
      "first_name": "John",
      "last_name": "Doe",
      "full_name": "John Doe",
      "warnings": [
        {
          "feature": "ID_VERIFICATION",
          "risk": "QR_NOT_DETECTED",
          "additional_data": null,
          "log_type": "warning",
          "short_description": "QR not detected",
          "long_description": "The system couldn't find or read the QR code on the document. This could be due to poor image quality or an unsupported document type.",
          "node_id": "id_primary"
        }
      ]
    }
  ]
}
```

## Nota sulla sicurezza

Gli URL firmati restituiti per le immagini e i video dei documenti sono temporanei: scadono dopo una finestra temporale limitata. Considerali di breve durata: scarica tempestivamente ciò di cui hai bisogno e non memorizzarli in cache né esporli pubblicamente. In genere, la tua applicazione ha bisogno solo di `status`, di una manciata di campi anagrafici e degli avvisi; memorizza il minor numero possibile di dati per ridurre al minimo la superficie di attacco in caso di violazione futura.

## Correlati

* [Avvisi di verifica dell'identità](https://docs.didit.me/it/core-technology/id-verification/warnings-id-verification.md) — enum completa degli avvisi, cause e rimedi.
* [Monitoraggio dei documenti](https://docs.didit.me/it/core-technology/id-verification/document-monitoring-id-verification.md) — come Didit rileva manomissioni e duplicati tra sessioni diverse.
* [Documenti supportati](https://docs.didit.me/it/core-technology/id-verification/supported-documents-id-verification.md) — quali tipi di documenti e paesi sono coperti.
* [Sottotipi di documenti](https://docs.didit.me/it/core-technology/id-verification/document-subtypes-id-verification.md) — elenco completo dei codici `document_subtype`, incluso il rilevamento di patenti di guida commerciali rispetto a quelle standard statunitensi.
* [Webhook](https://docs.didit.me/it/integration/webhooks.md) — resta in ascolto di `session.status.updated` per ricevere il report.
* [Modelli di dati — Verifica dell'identità](https://docs.didit.me/it/reference/data-models.md#verifica-dell’identità) — schema canonico con ogni campo.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.