> ## 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.

# Rapport de vérification d'identité : champs et scores

> Consultez le rapport de vérification d'identité Didit : statuts, champs extraits, scores de qualité d'image et structure des réponses.

## Aperçu

Le **rapport de vérification d'identité** regroupe tout ce que Didit a extrait et validé à partir d'un document d'identité officiel — passeports, cartes d'identité, permis de conduire et titres de séjour. Il rassemble les champs biographiques et du document extraits par OCR, les URL signées vers les médias capturés, les données d'adresse analysées et géolocalisées, les scores de qualité d'image par face, le contenu de la MRZ, les ventilations par système d'écriture (latin / non latin) et les correspondances de documents entre sessions.

Le rapport est généré une fois que l'utilisateur a terminé l'étape de capture de document dans un workflow (ou après un appel à l'endpoint OCR autonome). Didit identifie le type de document, exécute l'OCR, valide la MRZ / le code-barres / le code QR, analyse l'adresse, recherche les altérations (capture d'écran, copie imprimée, manipulation du portrait) et compare le document à tous les autres documents capturés dans votre application.

Chaque rapport comporte son propre `status` — indépendant du statut global de la session — qui reflète le résultat de l'étape d'identité seule :

* **Approuvé** — document reconnu, tous les champs requis extraits, aucun avertissement entraînant un refus n'a été déclenché.
* **En cours d'examen** — un ou plusieurs avertissements ont été déclenchés et votre workflow les oriente vers un examen.
* **Refusé** — une condition de refus automatique s'est déclenchée (document non pris en charge, document expiré, portrait manquant, présence sur liste de blocage, échec de l'estimation adaptative de l'âge) ou un avertissement dont l'action configurée est Refuser s'est déclenché (les seuils d'âge minimum et maximum sont configurés par défaut sur Refuser).
* **Expiré** — la `expiration_date` du document est passée **après** la vérification. La surveillance continue des expirations de Didit fait passer le rapport de `Approved` à `Expired`, ajoute un avertissement `DOCUMENT_EXPIRED` et fait passer une session approuvée au statut de session `Kyc Expired`.
* **Non terminé** — l'utilisateur n'a jamais terminé l'étape de capture.

## Où il apparaît dans les réponses d'API

Le rapport d'identité est transmis dans le tableau `id_verifications[]` — **toujours un tableau JSON**, jamais un objet `id_verification` unique. Plusieurs entrées apparaissent lorsqu'un workflow exécute plus d'une étape de document (par exemple une pièce d'identité principale plus une étape additionnelle).

* **API de décision de session** — `GET /v3/session/{sessionId}/decision/` renvoie `id_verifications[]` au niveau racine. Voir [Récupérer la décision de session](https://docs.didit.me/fr/sessions-api/retrieve-session.md).
* **Webhooks** — les payloads `session.status.updated` incluent le même tableau `id_verifications[]` dès que l'étape a généré des données. Voir [Webhooks](https://docs.didit.me/fr/integration/webhooks.md).
* **API OCR autonome** — l'envoi direct de document renvoie un objet `id_verification` unique avec les mêmes champs. Voir [API OCR autonome](https://docs.didit.me/fr/standalone-apis/id-verification.md).

> [!NOTE]
>
> Lisez `response.id_verifications[0]` et parcourez le tableau. La structure `id_verification` unique n'existe que sur l'API OCR autonome — elle n'existe pas sur l'endpoint de décision v3.

## Schéma

Le schéma champ par champ de référence se trouve sur la page de référence [Modèles de données](https://docs.didit.me/fr/reference/data-models.md#vérification-d’identité). Les champs ci-dessous proviennent directement de `IDVerificationV3Serializer`, qui étend `IDVerificationV2Serializer` et ajoute `node_id`, le tableau inter-sessions `matches[]` et le tableau `document_selfie_face_matches[]` de Silent Capture.

### Champs de premier niveau

| Champ | Type | Description |
| - | - | - |
| `status` | `"Approved" \| "Declined" \| "In Review" \| "Expired" \| "Not Finished"` | Statut de l'étape de vérification d'identité. |
| `node_id` | string \| null | Nœud du graphe de workflow qui a généré ce rapport. |
| `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` | Famille de documents de premier niveau reconnue (compréhensible par l'utilisateur). |
| `document_subtype` | string \| null | Code de sous-type de document issu du registre documentaire de Didit, filtré selon ce que les paramètres de documents du workflow acceptent. Les documents régionaux incluent la région, par exemple `QUEENSLAND_DRIVER_LICENSE_GENERIC`. Consultez [Sous-types de documents](https://docs.didit.me/fr/core-technology/id-verification/document-subtypes-id-verification.md) pour la liste complète des codes, y compris la méthode pour distinguer un permis de conduire commercial américain (CDL) d'un permis standard. |
| `document_number` | string | Numéro de document extrait par OCR. Pour les permis de conduire comportant à la fois un numéro de permis et un numéro de carte, voir la note sous le tableau. |
| `personal_number` | string | Numéro d'identification personnel / national extrait par OCR, lorsqu'il est distinct du numéro de document. |
| `portrait_image`, `front_image`, `front_video`, `back_image`, `back_video`, `full_front_image`, `full_back_image` | string (URL signée) | Médias capturés. Les URL sont signées et limitées dans le temps — téléchargez-les rapidement, ne conservez jamais l'URL de manière permanente. |
| `front_image_camera_front`, `back_image_camera_front` | string (URL signée) \| null | Images capturées par la caméra frontale de l'utilisateur lors de la capture du document. Utilisées pour le contrôle facial entre caméras et comparées à votre [liste de blocage de visages](https://docs.didit.me/fr/console/blocklist-users.md#mise-en-liste-de-blocage-des-visages) ; chacune peut également être [ajoutée à la liste de blocage de visages](https://docs.didit.me/fr/management-api/lists/create-entry.md#visages-issus-du-selfie-de-capture-du-document). |
| `front_image_camera_front_face_match_score`, `back_image_camera_front_face_match_score` | float (0–100) \| null | Score de similarité entre l'image de la caméra frontale et le portrait du document. |
| `document_selfie_face_matches` | array \| null | Sessions précédentes ou entrées de la liste de blocage de visages dont le visage correspond au selfie pris lors de la capture du document ([Recherche faciale Silent Capture](https://docs.didit.me/fr/core-technology/face-search/overview.md#le-selfie-pris-pendant-la-capture-du-document)). Même format d'entrée que `liveness_checks[].matches` ; `match_image_url` est une URL pré-signée qui expire. `null` pour les sessions plus anciennes ou lorsque la recherche n'a pas été exécutée, `[]` lorsqu'elle a été exécutée et n'a rien trouvé. |
| `front_image_quality_score`, `back_image_quality_score` | object \| null | Évaluation de la qualité pour chaque face (voir Scores de qualité d'image). |
| `document_liveness` | object \| null | Scores de détection du vivant du document par type de fraude, avec les seuils par rapport auxquels ils ont été évalués (voir Scores de détection du vivant du document). V3 uniquement. |
| `date_of_birth`, `expiration_date`, `date_of_issue` | string (YYYY-MM-DD) | Dates du document. |
| `age` | number | Âge du titulaire en années calculé à partir de `date_of_birth`. |
| `issuing_state` | string (ISO 3166-1 alpha-3) | Code du pays émetteur. |
| `issuing_state_name` | string | Nom localisé du pays. |
| `first_name`, `last_name`, `full_name` | string | Nom du titulaire dans le système d'écriture choisi par `preferred_characters` (voir ci-dessous). |
| `gender` | `"M" \| "F" \| "U"` | Genre, lorsqu'il est présent sur le document (`U` = inconnu). |
| `address`, `formatted_address` | string | Chaînes d'adresse brutes et géocodées/formatées. |
| `place_of_birth` | string | Lieu de naissance extrait par OCR. |
| `marital_status` | `"SINGLE" \| "MARRIED" \| "DIVORCED" \| "WIDOWED" \| "UNKNOWN"` | État civil, lorsqu'il est présent sur le document. |
| `nationality` | string (ISO 3166-1 alpha-3) | Nationalité du titulaire, lorsqu'elle est distincte de l'État émetteur. |
| `extra_fields` | object | Données supplémentaires spécifiques au document (catégories de permis, groupe sanguin, noms dans d'autres systèmes d'écriture, `tax_number`, …). |
| `mrz` | object \| null | Champs clé/valeur analysés de la MRZ. |
| `parsed_address` | object \| null | Adresse structurée et géocodée (`street_1`, `street_2`, `city`, `region`, `country`, `postal_code`, `address_type`, `formatted_address`, `document_location`, `raw_results`, `is_best_match`). |
| `extra_files[]` | tableau d'URL signées | Images supplémentaires jointes à ce document. |
| `matches[]` | array | Correspondances de documents inter-sessions (voir Correspondances inter-sessions). |
| `warnings[]` | array | Avertissements au niveau du module — voir [Avertissements de vérification d'identité](https://docs.didit.me/fr/core-technology/id-verification/warnings-id-verification.md). |

> [!NOTE]
>
> **`issuing_state` est toujours au niveau du pays, jamais infranational.** Pour chaque
> type de document, y compris les permis de conduire délivrés par un État ou une province
> (Australie, États-Unis, Canada), `issuing_state` et
> `issuing_state_name` indiquent le **pays** (par exemple `AUS` /
> `Australia`), et non l'État. La valeur infranationale, lorsque le document
> en comporte une, est disponible séparément dans `parsed_address.region` (avec
> un repli sur `extra_fields.state` pour certains types de documents). La vue
> d'ensemble de la session dans la **Business Console** affiche cela sous la forme
> d'une ligne **Region** sous **État émetteur** lorsqu'elle est présente.

> [!NOTE]
>
> **Permis de conduire comportant deux numéros (Australie).** Les permis australiens
> affichent à la fois un numéro de permis, qui identifie le droit de
> conduire du titulaire et reste identique lors du remplacement d'une carte, et un numéro de carte,
> qui identifie la carte physique et change à chaque réémission. Pour ces
> permis, Didit associe toujours les numéros de la même manière :
>
> * `personal_number` — le **numéro de permis**
> * `document_number` — le **numéro de carte**
>
> Cela s'applique à l'ensemble des États et territoires australiens (NSW, VIC, QLD, WA, SA,
> TAS, ACT, NT). Sur certaines variantes, le numéro de carte n'est imprimé qu'au verso,
> il n'est donc lu que lorsque le verso du permis est capturé. Lorsqu'aucun numéro de carte
> ne peut être lu, le numéro de permis est renseigné à la fois comme
> `document_number` et `personal_number`, afin que `document_number` contienne toujours
> un identifiant une fois la vérification terminée. `personal_number` correspond au numéro
> de permis dans les deux cas. Pour les autres types de documents, `document_number` reste
> le numéro principal extrait par OCR et peut être lui-même un identifiant au niveau du titulaire.

> [!NOTE]
>
> **Le CUIL argentin est `extra_fields.tax_number`, jamais `personal_number`.**
> Les documents argentins comportent le CUIL — l'identifiant à 11 chiffres sur lequel s'appuient l'AFIP, l'ANSES et les agences d'évaluation de crédit — à un emplacement différent selon le document, et le DNI comporte un second numéro à 11 chiffres à côté de celui-ci :
>
> * sur le **permis de conduire**, le CUIL correspond à la valeur transmise par `personal_number` ;
> * sur le **DNI**, `personal_number` contient le *número de trámite*, qui identifie la demande de carte et ne constitue pas un identifiant du titulaire. Le CUIL du DNI est lu à partir de son propre champ imprimé.
>
> `personal_number` n'est donc **pas** un CUIL fiable pour l'Argentine : sur un DNI, il s'agit d'un numéro à 11 chiffres qui ne renverra silencieusement aucun résultat depuis les registres. Lisez plutôt `extra_fields.tax_number`. Didit ne le transmet que lorsque la valeur est validée en tant que CUIL réel (préfixe de personne plus clé de contrôle modulo 11), sous forme de chiffres canoniques sans séparateurs (`27111111117`), quel que soit le document argentin présenté par le titulaire. Lorsque le CUIL de la carte n'a pas pu être lu, la clé est absente plutôt que renseignée avec un numéro qui n'est pas un CUIL — capturez le permis de conduire en tant que second document, ou recueillez le CUIL via une réponse à un Questionnaire ou dans les `metadata` de la session pour couvrir ces utilisateurs.

### Scores de qualité d'image

`front_image_quality_score` et `back_image_quality_score` renvoient chacun :

| Champ | Type | Ce qu'il mesure |
| - | - | - |
| `focus_score` | number 0–100 | Netteté — variance laplacienne locale des 10 % supérieurs, insensible aux arrière-plans uniformes. Pondération 45 %. |
| `brightness_score` | number 0–100 | Pénalise les images trop sombres ou surexposées. Pondération 30 %. |
| `brightness_issue` | `"ok" \| "too_dark" \| "too_bright"` | Nature du problème de luminosité, lorsque `brightness_score` est faible. |
| `resolution_score` | number 0–100 | Basé sur le nombre total de pixels de la capture. Pondération 25 %. |
| `is_document_fully_visible` | boolean \| null | `true` lorsque les quatre coins du document sont visibles, `false` lorsqu'un coin est coupé, `null` lorsque la détection des coins n'était pas disponible. |
| `overall_score` | number 0–100 | Composite pondéré (netteté 45 %, luminosité 30 %, résolution 25 %). |

> [!TIP]
>
> Utilisez `overall_score` comme vérification rapide d'adéquation — les scores supérieurs à **70** indiquent généralement une capture suffisamment bonne pour une vérification fiable.

### Scores de détection du vivant du document

`document_liveness` indique ce que le [contrôle de détection du vivant du document](https://docs.didit.me/fr/core-technology/id-verification/warnings-id-verification.md#détection-du-vivant-du-document-falsification) a mesuré, **qu'il ait généré un avertissement ou non**. Un avertissement n'existe que lorsqu'un score est passé en dessous de l'un des seuils du workflow. Ainsi, avant l'introduction de ce champ, un document approuvé ne comportait aucun élément de preuve relatif à la détection du vivant - ce champ vous permet d'auditer une session qui a été validée. Il vaut `null` lorsque le contrôle n'a pas été exécuté (par exemple avec une méthode sans document ou en cas d'interruption du modèle consignée dans les journaux de session).

Il contient un objet par type de fraude - `portrait_replace`, `printed_copy` et `screen_replay` - chacun comportant :

| Champ | Type | Signification |
| - | - | - |
| `score` | number 0–100 \| null | Probabilité que le document soit authentique pour ce type de fraude (plus le score est élevé, plus le document est susceptible d'être authentique). Il s'agit du score le **plus bas** des deux côtés, qui correspond à la valeur utilisée pour la décision. Vaut `null` lorsqu'aucun des deux côtés n'a produit de score exploitable - par exemple, le score de portrait est ignoré sur un côté où aucun portrait n'a été détecté. |
| `front`, `back` | number 0–100 \| null | Le même score pour chaque côté capturé. Vaut `null` pour un côté qui n'a pas été capturé ou dont le score a été ignoré. |
| `decline_threshold`, `review_threshold` | number \| null | Seuils enregistrés lorsque le nœud Vérification d'identité a évalué ce document. Les modifications ultérieures du workflow ne les modifient pas. Vaut `null` lorsque les éléments d'évaluation historiques ne sont pas disponibles. |
| `bucket` | `"approve" \| "review" \| "decline" \| null` | Positionnement de `score` par rapport à ces seuils : inférieur à `decline_threshold` → `decline`, inférieur à `review_threshold` → `review`, sinon `approve`. Vaut `null` lorsqu'il n'y a pas de score exploitable, que le contrôle n'a pas été appliqué ou que les éléments d'évaluation historiques ne sont pas disponibles. Le bucket décrit ce contrôle de type de fraude, et non le statut global de la session. |

```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"
  }
}
```

Pour les documents plus anciens sans éléments d'évaluation enregistrés, les scores stockés restent visibles mais les seuils et `bucket` sont à `null`. Les paramètres actuels du workflow ne sont jamais utilisés pour reconstituer un résultat historique. Il en va de même pour une capture dont l'évaluation du document n'est pas encore terminée.

La Business Console affiche ces trois mêmes lignes dans le bloc **Détection du vivant du document** de la section Vérification d'identité de la session.

### Correspondances entre sessions

`matches[]` liste jusqu'à **5** autres documents de votre application qui correspondent à celui-ci — même **date de naissance**, même **pays de délivrance** et un **nom complet** très similaire. Les documents placés sur liste de blocage nécessitent en plus une correspondance exacte du numéro de document. Les sessions appartenant au même utilisateur (même `vendor_data`) sont exclues.

Chaque entrée comprend `session_id`, `session_number`, `vendor_data`, `verification_date`, `user_details` (`name`, `document_type`, `document_number`), `status`, `is_blocklisted` (`true` lorsque le document a été ajouté à votre liste de blocage), `api_service` et une `front_image_url` signée.

## Valeurs de statut

| Statut | Signification | Effet en aval |
| - | - | - |
| `Approved` | Document reconnu, champs requis extraits, tous les contrôles validés selon les seuils configurés. | Comptabilisé comme un contrôle d'identité réussi. |
| `In Review` | Un ou plusieurs avertissements se sont déclenchés et le workflow les achemine vers un examen. | La session passe également à `In Review` jusqu'à l'intervention d'un réviseur. |
| `Declined` | Une condition de refus automatique s'est déclenchée (document non pris en charge, document expiré, portrait manquant, correspondance avec une liste de blocage, échec de l'âge adaptatif) ou un avertissement configuré sur Refuser s'est déclenché. | La session est refusée à moins qu'une autre branche approuvée ne satisfasse le workflow. |
| `Expired` | La date d'expiration du document a été dépassée **après** l'approbation. Défini par la surveillance continue des documents de Didit, activée par défaut (un pays et un type de document dont le paramètre **Expiration mode** est configuré sur **Allow expired** sont exemptés), conjointement avec un avertissement `DOCUMENT_EXPIRED`. | Une session approuvée passe à `Kyc Expired`. |
| `Not Finished` | L'utilisateur a abandonné l'étape de capture. | La branche d'identité n'a produit aucun résultat. |

## Documents utilisant plusieurs systèmes d'écriture (latin / non latin)

Certains documents — kirghizes, kazakhes, russes, japonais, coréens, chinois, arabes, thaïlandais et autres — comportent le nom, l'adresse ou le lieu de naissance du titulaire **à la fois** en translittération latine **et** dans le système d'écriture local. Vous choisissez quel système d'écriture renseigne la réponse de premier niveau grâce au paramètre de workflow (ou de l'API autonome) `preferred_characters` :

| Valeur | Remplit les champs de premier niveau avec | Le système d'écriture opposé est transmis à |
| - | - | - |
| `latin` *(par défaut)* | La translittération latine imprimée sur le document | `extra_fields.*_non_latin` |
| `non_latin` | Les valeurs dans le système d'écriture local imprimées sur le document | `extra_fields.*_latin` |

Les valeurs dans le système d'écriture alternatif se trouvent dans `extra_fields` sous des clés dotées d'un suffixe : `first_name_non_latin`, `last_name_non_latin`, `middle_name_non_latin`, `full_name_non_latin`, `address_non_latin`, `place_of_birth_non_latin` (ou les variantes `_latin` correspondantes).

### Quand les champs en système d'écriture alternatif apparaissent-ils

* **Uniquement lorsque les deux systèmes d'écriture sont réellement présents sur le document.** Si un champ OCR intitulé nominalement « Nom-Kirghize (Cyrillique) » est extrait sous forme de texte en alphabet latin (homoglyphes ou translittération latine), il n'est **pas** considéré comme une variante non latine et cette clé est omise.
* `full_name_non_latin` (et `full_name_latin`) sont toujours **reconstruits** à partir des composants individuels du prénom, du deuxième prénom et du nom de famille lorsque les deux sont disponibles — le champ brut « Nom complet » issu de l'OCR est ignoré par souci de cohérence.
* Lorsque `preferred_characters=latin` mais que le document ne comporte **que** du texte non latin (les champs de premier niveau se retrouvent donc en caractères non latins), Didit effectue une étape de translittération et expose `first_name_latin`, `last_name_latin`, `middle_name_latin`, `full_name_latin`, `place_of_birth_latin` et `address_latin` comme solution de repli en caractères latins.

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

`last_name_non_latin` est absent car le champ « Nom (Cyrillique) » du document a renvoyé des caractères latins sur cet échantillon — il n'y avait aucun nom de famille authentiquement non latin à extraire.

## Exemples

### Approved — carte d'identité espagnole valide (tous les champs)

```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 détecté sur un document qui devrait en comporter un

Abrégé — une véritable réponse comporte toujours l'ensemble complet des champs présentés ci-dessus.

```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"
        }
      ]
    }
  ]
}
```

## Note de sécurité

Les URL signées renvoyées pour les images et les vidéos des documents sont temporaires — elles expirent après une période de validité limitée. Considérez-les comme éphémères : téléchargez rapidement ce dont vous avez besoin et ne les mettez pas en cache et ne les exposez pas publiquement. En règle générale, votre application n'a besoin que du `status`, de quelques champs d'état civil et des avertissements — stockez le moins d'éléments possible pour réduire la surface d'exposition en cas de future compromission.

## Pages connexes

* [Avertissements de vérification d'identité](https://docs.didit.me/fr/core-technology/id-verification/warnings-id-verification.md) — liste complète des avertissements (enum), causes et mesures correctives.
* [Surveillance des documents](https://docs.didit.me/fr/core-technology/id-verification/document-monitoring-id-verification.md) — comment Didit détecte les altérations et les doublons entre sessions.
* [Documents pris en charge](https://docs.didit.me/fr/core-technology/id-verification/supported-documents-id-verification.md) — quels types de documents et pays sont couverts.
* [Sous-types de documents](https://docs.didit.me/fr/core-technology/id-verification/document-subtypes-id-verification.md) — liste complète des codes de `document_subtype`, y compris la détection des permis de conduire commerciaux vs. standards aux États-Unis.
* [Webhooks](https://docs.didit.me/fr/integration/webhooks.md) — écoutez l'événement `session.status.updated` pour recevoir le rapport.
* [Modèles de données — Vérification d'identité](https://docs.didit.me/fr/reference/data-models.md#vérification-d’identité) — schéma canonique avec l'ensemble des champs.


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