Saltar al contingut principal

Visió general

Cada informe per funcionalitat segueix la forma del serialitzador V3 definida a service-didit-verification. El mateix objecte apareix en tres llocs, de manera que l’esquema que veus aquí és la font única de veritat per a tots tres:
  • GET /v3/session/{sessionId}/decision/: cada funcionalitat es retorna com una matriu amb un nom en plural (id_verifications[], nfc_verifications[], liveness_checks[], face_matches[], poa_verifications[], phone_verifications[], email_verifications[], aml_screenings[], ip_analyses[], database_validations[], questionnaire_responses[], signatures[], bank_verifications[] (consulta Mètodes de verificació bancària), i els equivalents de KYB registry_checks[], document_verifications[], key_people_checks[]).
  • Payloads de webhook (status.updated, data.updated): la mateixa forma dins de l’embolcall decision.
  • APIs independents: les respostes d’un sol objecte (Cerca facial, Estimació d’edat, Autenticació biomètrica) reutilitzen el mateix conjunt de camps.
V3 va introduir fluxos de treball multiinstància: cada objecte de funcionalitat porta un node_id que vincula l’informe al node del graf de flux de treball que l’ha generat. Els endpoints V2 (en singular kyc, face, aml, etc.) continuen sent compatibles amb versions anteriors, però només retornen la primera instància.

Camps comuns

Cada objecte d’informe exposa els camps següents: Els camps multimèdia (portrait_image, front_image, document_file, …) són URL prefirmades amb una finestra de validesa limitada: descarrega-les aviat en lloc de guardar la URL. Els exemples els mostren com a https://<media-host>/....

Objecte d’advertència

Es retorna en cada matriu warnings[]. Esquema de logs/serializers/log.py:8-65 (LogV3Serializer).

Objectes d’informe

Les seccions restants descriuen cada objecte d’informe per funcionalitat. El text dels encapçalaments H3 és estable de manera intencionada perquè altres documents puguin enllaçar-hi directament.

Verificació d’identitat

Es retorna per a cada document de KYC o d’identitat que envia un usuari. Apareix com a id_verifications[] a GET /v3/session/{sessionId}/decision/ i dins del camp kyc de les respostes V2. Font: kyc/serializers/kyc.py:383-414 (IDVerificationV3Serializer, que amplia IDVerificationV2Serializer a kyc/serializers/kyc.py:320-380).
El mateix objecte amb un mètode que no és de document. Només canvien les claus específiques del mètode: tot el que omple una lectura de document s’omple amb el registre de la font o els atributs de la cartera, i les claus que no s’apliquen són null.

Verificació NFC

Es retorna per a cada lectura del xip d’un document d’identitat: un xip ICAO 9303 ePassport o eID, o una lectura de la Japan My Number Card mitjançant JPKI (chip_protocol: "jpki"). Apareix com a nfc_verifications[] a GET /v3/session/{sessionId}/decision/ (un per registre KYC principal). Font: kyc/serializers/epassport.py:121-139 (NFCV3Serializer, amplia NFCV2Serializer a kyc/serializers/epassport.py:83-118).

Prova de vida

Es retorna per cada sessió de prova de vida. Apareix com a liveness_checks[] a GET /v3/session/{sessionId}/decision/. Font: face/serializers/face.py:301-320 (LivenessV3Serializer, que estén LivenessV2Serializer a face/serializers/face.py:216-298).

Coincidència facial

Es retorna per cada comparació facial (normalment el rostre de la prova de vida de l’usuari amb el retrat del document). Apareix com a face_matches[] a GET /v3/session/{sessionId}/decision/. Font: face/serializers/face.py:367-389 (FaceMatchV3Serializer, que estén FaceMatchV2Serializer a face/serializers/face.py:323-364).

Cerca facial

Retornat per l’API de cerca facial independent (POST /v3/face-search/). La cerca facial mai no apareix com un array en plural a /v3/session/{sessionId}/decision/. Quan es persisteix amb save_api_request=true, la sessió apareix allà com una entrada FACE_SEARCH dins de features[], més un element liveness_checks[] que conté els matches emmagatzemats. Fonts: apis/serializers/face_search.py:8-79 (FaceSearchResponseSerializer, que envolta FaceSearchDetailsSerializer); els diccionaris de coincidències es construeixen a face/utils/utils.py:869-884. Resposta de nivell superior: Objecte face_search:

Objecte de coincidència de cerca facial

Cribratge AML

Retornat per cada entitat cribada. Apareix com a aml_screenings[] a GET /v3/session/{sessionId}/decision/, tant per a sessions KYC com KYB. Font: aml/serializers/aml.py:63-85 (AMLV3Serializer, que estén AMLV2Serializer a aml/serializers/aml.py:28-60).

Anàlisi d’IP

Es retorna per cada ubicació de xarxa capturada. Apareix com a ip_analyses[] a GET /v3/session/{sessionId}/decision/ tant per a sessions KYC com KYB. Font: kyc/serializers/location.py:196-243 (IPAnalysisSerializerV3).

Verificació de la ubicació

Es retorna per cada pas de Verificació de la ubicació. Apareix com a geolocation_checks[] a GET /v3/session/{sessionId}/decision/: un element per pas, el de l’intent acceptat. geolocation_attempts[] llista tots els intents de tots els passos, del més antic al més recent. Tots dos són null per a un flux de treball sense el pas. Font: GeolocationDecisionSerializer. Tots els camps i exemples són a l’Informe de verificació de ubicació.

Comprovant de domicili

Es retorna per cada document d’adreça enviat. Apareix com a poa_verifications[] a GET /v3/session/{sessionId}/decision/. Font: poa/serializers/poa.py:212-227 (POAV3Serializer, amplia POAV2Serializer a poa/serializers/poa.py:173-209).

Verificació de telèfon

Es retorna per cada intent de verificació de telèfon. Apareix com a phone_verifications[] a GET /v3/session/{sessionId}/decision/ tant per a sessions de KYC com de KYB. Font: phone/serializers/phone.py:251-266 (PhoneV3Serializer, que amplia PhoneV2Serializer a phone/serializers/phone.py:103-248).

Verificació de correu electrònic

Es retorna per cada intent de verificació de correu electrònic. Apareix com a email_verifications[] a GET /v3/session/{sessionId}/decision/ tant per a sessions de KYC com de KYB. Font: email_verification/serializers/email.py:149-164 (EmailV3Serializer, que amplia EmailV2Serializer a email_verification/serializers/email.py:38-146).

Validació en bases de dades

Es retorna per cada consulta en bases de dades feta amb les dades enviades per l’usuari. Apareix com a database_validations[] a GET /v3/session/{sessionId}/decision/. Font: database_validation/serializers/database_validation.py:21-142 (DatabaseValidationV3Serializer, que amplia DatabaseValidationV2Serializer).

Resposta del qüestionari

Retornada per cada enviament de qüestionari. Apareix com a questionnaire_responses[] a GET /v3/session/{sessionId}/decision/ tant per a sessions KYC com KYB. Font: questionnaires/serializers/questionnaire.py:591-597 (QuestionnaireResponseV3Serializer, que amplia QuestionnaireResponseSerializer a questionnaires/serializers/questionnaire.py:520-588).

Signatura electrònica

Retornada per cada signant d’un pas de signatura electrònica. Apareix com a signatures[] a GET /v3/session/{sessionId}/decision/ tant per a sessions KYC com KYB, només quan el flux de treball té el pas. A diferència de la resta d’objectes d’informe, el seu status és l’etapa de signatura i el resultat és a verdict, i els elements de warnings[] són { code, node_id } en lloc d’objectes d’advertència. L’Informe de signatura electrònica té un exemple complet i tots els camps imbricats.

Estimació d’edat

Retornat per l’API independent d’Estimació d’edat (POST /v3/age-estimation/). La resposta conté un subconjunt de la forma de Liveness check sota un embolcall age_estimation (status, method, score, age_estimation, warnings), més un bloc user_image de detecció de rostres exclusiu de l’API independent; no inclou reference_image, video_url, matches, face_quality ni face_luminance. En les sessions de flux de treball no hi ha un array separat: l’edat estimada apareix com a liveness_checks[].age_estimation a GET /v3/session/{sessionId}/decision/. Font: apis/serializers/age_estimation.py:50-55 (AgeEstimationResponseSerializer), embolcall muntat a apis/views/age_estimation.py:138-174.

Autenticació biomètrica

L’autenticació biomètrica executa el mateix flux de processament de prova de vida i coincidència facial que s’usa en el KYC estàndard, però configurat per comparar el rostre capturat amb la imatge de referència d’un usuari existent, en lloc d’un retrat de document extret amb OCR. No hi ha cap serialitzador dedicat: GET /v3/session/{sessionId}/decision/ retorna els objectes estàndard de Prova de vida i Coincidència facial sota liveness_checks[] i face_matches[]. El flux de treball de la sessió es configura amb workflow_type = "biometric_authentication" (WorkflowTypeChoices, common/config/choices.py:636).

Registre KYB

Es retorna per cada empresa confirmada pel registre en un flux de treball KYB. Apareix com a registry_checks[] a GET /v3/session/{sessionId}/decision/ per a les sessions d’empresa. Font: kyb/serializers/kyb.py:939-964 (RegistryCheckV3Serializer).

Objecte d’empresa

Des de kyb/serializers/kyb.py:220-321 (KYBCompanyResponseSerializer).

Document KYB

Es retorna per cada node que recull documents de suport KYB. Apareix com a document_verifications[] a GET /v3/session/{sessionId}/decision/ per a les sessions d’empresa: una entrada per node_id, amb items[] que enumera cada document pujat. Font: kyb/serializers/kyb.py:1053-1068 (DocumentVerificationV3Serializer); cada element segueix kyb/serializers/kyb.py:811-851 (KYBDocumentResponseSerializer).

Objecte d’element d’un document KYB

Persona clau KYB

Es retorna per cada node de persones clau d’un flux de treball KYB. Apareix com a key_people_checks[] a GET /v3/session/{sessionId}/decision/ per a sessions d’empresa. Font: kyb/serializers/kyb.py:967-1050 (KeyPeopleCheckV3Serializer).

Camps a nivell de decisió

Aquestes claus es troben al costat de les matrius de funcionalitats a GET /v3/session/{sessionId}/decision/ i dins del decision d’un webhook. Consulta Obtenir sessió per saber com llegir-los.

Consentiment biomètric

Cada decisió de Verificació d’usuaris i cada webhook de sessió inclou un únic objecte biometric_consent (no un array): si la sessió requeria consentiment biomètric explícit, per quin motiu, i les proves de la resposta. És null quan la sessió mai no es va avaluar, per exemple un flux de treball sense captura facial. Font: BiometricConsentDecisionSerializer (sessions/serializers/biometric_consent.py). Quan apareix el pas, i què significa cada cas, s’explica a Consentiment biomètric. Els camps sense valor registrat són null, mai una cadena buida. Una sessió a Illinois atesa per un SDK natiu anterior a 4.10.0, que va capturar la selfie sense el pas:
Una persona amb una VPN que surt fora dels EUA, que va acceptar al flux allotjat:

Referència d’enumeració d’estats

Dos espais de valors relacionats comparteixen el nom de camp status. Tots els objectes d’informe per funcionalitat d’aquesta pàgina utilitzen l’enumeració a nivell de funcionalitat. El camp status de nivell superior de la sessió pare utilitza l’enumeració de sessió, més àmplia.

Estats a nivell de funcionalitat

El camp status de tots els objectes d’informe utilitza aquesta enumeració. Font: common/config/choices.py:343-348 (FeatureStatusChoices). La verificació de telèfon, de correu electrònic i d’identitat pot mostrar, a més, Expired quan el seu pas caduca (PhoneStatusChoices a common/config/choices.py:377-382, EmailStatusChoices a common/config/choices.py:434-439).

Estats a nivell de sessió

El camp status de nivell superior de la sessió pare utilitza aquesta enumeració. Font: common/config/choices.py:106-117 (StatusChoices).
Els valors finals de sessió són Approved, Declined, In Review, Expired, Kyc Expired i Abandoned. Una sessió pot arribar a la seva decisió global mentre una funcionalitat individual continua en In Review.
Darrera modificació el 7 de novembre del 2026