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 KYC/ID 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 del document s’omple a partir del registre de la font o dels 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 d’ePassport o eID ICAO 9303, o una lectura de la My Number Card del Japó a través de JPKI (chip_protocol: "jpki"). Apareix com a nfc_verifications[] a GET /v3/session/{sessionId}/decision/ (un per cada registre KYC pare). Font: kyc/serializers/epassport.py:121-139 (NFCV3Serializer, que hereta de NFCV2Serializer a kyc/serializers/epassport.py:83-118).

Comprovació de la 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, amplia LivenessV2Serializer a face/serializers/face.py:216-298).
Una sessió PASSIVE retorna aquest camp quan la seva captura ha emmagatzemat una gravació, i null quan la sessió no ha conservat cap gravació; l’exemple anterior és una sessió que no n’ha conservat cap.

Coincidència facial

Es retorna per cada comparació de coincidència facial (normalment el rostre en directe de l’usuari contra el retrat del document). Apareix com a face_matches[] a GET /v3/session/{sessionId}/decision/. Font: face/serializers/face.py:367-389 (FaceMatchV3Serializer, amplia FaceMatchV2Serializer a face/serializers/face.py:323-364).

Cerca facial

Retornat per l’API independent de Cerca facial (POST /v3/face-search/). La Cerca facial mai no apareix com una matriu amb diversos elements a /v3/session/{sessionId}/decision/. Quan es desa amb save_api_request=true, la sessió hi apareix com una entrada FACE_SEARCH dins de features[], més un element de liveness_checks[] que conté les matches desades. Fonts: apis/serializers/face_search.py:8-79 (FaceSearchResponseSerializer que envolta FaceSearchDetailsSerializer); els diccionaris de coincidència 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

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

Anàlisi d’IP

Retornada 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ó d’ubicació

Retornada per cada pas de Verificació d’ubicació. Apareix com a geolocation_checks[] a GET /v3/session/{sessionId}/decision/: un element per pas: l’intent acceptat de cada pas. geolocation_attempts[] enumera 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, que 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 KYC com KYB. Font: phone/serializers/phone.py:251-266 (PhoneV3Serializer, 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 KYC com KYB. Font: email_verification/serializers/email.py:149-164 (EmailV3Serializer, amplia EmailV2Serializer a email_verification/serializers/email.py:38-146).

Validació en bases de dades

Es retorna per cada consulta a una base de dades executada 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, amplia DatabaseValidationV2Serializer).

Resposta del qüestionari

Es retorna 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, estén QuestionnaireResponseSerializer a questionnaires/serializers/questionnaire.py:520-588).

Signatura electrònica

Es retorna 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 conté el pas. A diferència de la resta d’objectes d’informe, el seu status és la fase 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 conté un exemple complet i tots els camps imbricats.

Estimació d’edat

Retornat per l’API d’Estimació d’edat independent (POST /v3/age-estimation/). La resposta conté un subconjunt de l’estructura de Liveness check dins d’un embolcall age_estimation amb status, method, score, age_estimation i warnings, i a més inclou un bloc user_image de detecció facial 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 una matriu separada: 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), envoltura muntada a apis/views/age_estimation.py:138-174.

Autenticació biomètrica

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

Registre KYB

Retornat 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’empreses. 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 sessions d’empreses: hi ha una entrada per cada 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 de document KYB

Persona clau KYB

Es retorna per cada node de persones clau d’un flux KYB. Apareix com a key_people_checks[] a GET /v3/session/{sessionId}/decision/ per a sessions d’empreses. 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 14 de novembre del 2026