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 proprestatus — 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_datedu document est passée après la vérification. La surveillance continue des expirations de Didit fait passer le rapport deApprovedàExpired, ajoute un avertissementDOCUMENT_EXPIREDet fait passer une session approuvée au statut de sessionKyc 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 tableauid_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/renvoieid_verifications[]au niveau racine. Voir Récupérer la décision de session. - Webhooks — les payloads
session.status.updatedincluent le même tableauid_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_verificationunique 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 deIDVerificationV3Serializer, 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 permisdocument_number— le numéro de carte
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_numbercontient 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 :
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 :
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(etfull_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=latinmais 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 exposefirst_name_latin,last_name_latin,middle_name_latin,full_name_latin,place_of_birth_latinetaddress_latincomme 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 dustatus, 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é — liste complète des avertissements (enum), causes et mesures correctives.
- Surveillance des documents — comment Didit détecte les altérations et les doublons entre sessions.
- Documents pris en charge — quels types de documents et pays sont couverts.
- Sous-types de documents — liste complète des codes de
document_subtype, y compris la détection des permis de conduire commerciaux vs. standards aux États-Unis. - Webhooks — écoutez l’événement
session.status.updatedpour recevoir le rapport. - Modèles de données — Vérification d’identité — schéma canonique avec l’ensemble des champs.