Passer au contenu principal

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.
  • 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.
  • API OCR autonome — l’envoi direct de document renvoie un objet id_verification unique avec les mêmes champs. Voir API OCR autonome.
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. 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

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

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 : 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.
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)

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.

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

Dernière modification le 7 novembre 2026