Zum Hauptinhalt springen

Übersicht

Jedes Berichtsobjekt pro Funktion folgt der V3-Serializer-Struktur, die in service-didit-verification definiert ist. Dasselbe Objekt erscheint an drei Stellen, daher ist das Schema hier die einzige maßgebliche Quelle für alle drei:
  • GET /v3/session/{sessionId}/decision/: Jede Funktion wird als Array mit einem Pluralnamen zurückgegeben (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[] (siehe Bankverifizierungsmethoden) sowie die entsprechenden KYB-Arrays registry_checks[], document_verifications[], key_people_checks[]).
  • Webhook-Payloads (status.updated, data.updated): gleiche Struktur innerhalb der decision-Hülle.
  • Eigenständige APIs: Antworten mit einem einzelnen Objekt (Gesichtssuche, Altersschätzung, biometrische Authentifizierung) verwenden dieselben Felder.
V3 hat Multi-Instance-Workflows eingeführt: Jedes Funktionsobjekt enthält eine node_id, die den Bericht dem Workflow-Graph-Knoten zuordnet, der ihn erzeugt hat. V2-Endpoints (im Singular kyc, face, aml usw.) bleiben abwärtskompatibel, geben aber nur die erste Instanz zurück.

Gemeinsame Felder

Jedes Berichtsobjekt enthält die folgenden Felder: Medienfelder (portrait_image, front_image, document_file, …) sind vorsignierte URLs mit begrenzter Gültigkeitsdauer. Laden Sie diese zeitnah herunter, statt die URL dauerhaft zu speichern. Beispiele zeigen sie als https://<media-host>/....

Warnungsobjekt

Wird in jedem warnings[]-Array zurückgegeben. Schema aus logs/serializers/log.py:8-65 (LogV3Serializer).

Berichtsobjekte

Die übrigen Abschnitte behandeln jedes Berichtsobjekt pro Funktion. Der Text der H3-Überschriften ist bewusst stabil, damit andere Dokumente direkt darauf verlinken können.

Ausweisverifizierung

Wird für jedes KYC- bzw. Ausweisdokument zurückgegeben, das ein Benutzer einreicht. Erscheint als id_verifications[] in GET /v3/session/{sessionId}/decision/ und innerhalb des Felds kyc der V2-Antworten. Quelle: kyc/serializers/kyc.py:383-414 (IDVerificationV3Serializer, erweitert IDVerificationV2Serializer aus kyc/serializers/kyc.py:320-380).
Dasselbe Objekt bei einer Nicht-Dokument-Methode. Nur die methodenspezifischen Schlüssel ändern sich: Alles, was eine Dokumentenauslesung ausfüllt, wird stattdessen aus dem Registerdatensatz oder den Wallet-Attributen befüllt, und die nicht zutreffenden Schlüssel sind null.

NFC-Verifizierung

Wird für jede Chip-Auslesung anhand eines Ausweisdokuments zurückgegeben: ein ICAO-9303-ePassport oder eID-Chip oder eine japanische My Number Card, ausgelesen über JPKI (chip_protocol: "jpki"). Erscheint als nfc_verifications[] in GET /v3/session/{sessionId}/decision/ (eine pro übergeordnetem KYC-Datensatz). Quelle: kyc/serializers/epassport.py:121-139 (NFCV3Serializer, erweitert NFCV2Serializer aus kyc/serializers/epassport.py:83-118).

Liveness-Prüfung

Wird pro Liveness-Sitzung zurückgegeben. Erscheint als liveness_checks[] in GET /v3/session/{sessionId}/decision/. Quelle: face/serializers/face.py:301-320 (LivenessV3Serializer, erweitert LivenessV2Serializer unter face/serializers/face.py:216-298).
Eine PASSIVE-Sitzung gibt dieses Feld zurück, wenn ihre Erfassung eine Aufnahme gespeichert hat, und null, wenn die Sitzung keine Aufnahme behalten hat. Das Beispiel oben zeigt eine Sitzung, die keine behalten hat.

Gesichtsabgleich

Wird pro Gesichtsvergleich zurückgegeben (typischerweise das Liveness-Gesicht des Benutzers gegen das Dokumentporträt). Erscheint als face_matches[] in GET /v3/session/{sessionId}/decision/. Quelle: face/serializers/face.py:367-389 (FaceMatchV3Serializer, erweitert FaceMatchV2Serializer unter face/serializers/face.py:323-364).

Gesichtssuche

Wird von der eigenständigen Gesichtssuche-API (POST /v3/face-search/) zurückgegeben. Die Gesichtssuche erscheint in /v3/session/{sessionId}/decision/ niemals als Array mit mehreren Einträgen. Wenn sie mit save_api_request=true gespeichert wird, erscheint die Sitzung dort als Eintrag FACE_SEARCH in features[] sowie als Element liveness_checks[], das die gespeicherten matches enthält. Quellen: apis/serializers/face_search.py:8-79 (FaceSearchResponseSerializer, das FaceSearchDetailsSerializer umschließt); Treffer-Dictionaries werden in face/utils/utils.py:869-884 erstellt. Antwort auf oberster Ebene: face_search-Objekt:

Gesichtssuche-Treffer-Objekt

AML-Screening

Wird pro geprüfter Entität zurückgegeben. Erscheint als aml_screenings[] in GET /v3/session/{sessionId}/decision/ sowohl für KYC- als auch für KYB-Sitzungen. Quelle: aml/serializers/aml.py:63-85 (AMLV3Serializer, erweitert AMLV2Serializer in aml/serializers/aml.py:28-60).

IP-Analyse

Wird pro erfasstem Netzwerkstandort zurückgegeben. Erscheint als ip_analyses[] in GET /v3/session/{sessionId}/decision/ für KYC- und KYB-Sitzungen. Quelle: kyc/serializers/location.py:196-243 (IPAnalysisSerializerV3).

Standortverifizierung

Wird pro Standortverifizierungs-Schritt zurückgegeben. Erscheint als geolocation_checks[] in GET /v3/session/{sessionId}/decision/: ein Eintrag pro Schritt, und zwar dessen akzeptierter Versuch. geolocation_attempts[] listet jeden Versuch jedes Schritts auf, wobei der älteste zuerst kommt. Beide sind null bei einem Workflow ohne diesen Schritt. Quelle: GeolocationDecisionSerializer. Jedes Feld und jedes Beispiel finden Sie im Bericht zur Standortverifizierung.

Adressnachweis

Wird pro eingereichtem Adressdokument zurückgegeben. Erscheint als poa_verifications[] in GET /v3/session/{sessionId}/decision/. Quelle: poa/serializers/poa.py:212-227 (POAV3Serializer, erweitert POAV2Serializer in poa/serializers/poa.py:173-209).

Telefonverifizierung

Wird pro Telefonverifizierungsversuch zurückgegeben. Erscheint als phone_verifications[] in GET /v3/session/{sessionId}/decision/ für KYC- und KYB-Sitzungen. Quelle: phone/serializers/phone.py:251-266 (PhoneV3Serializer, erweitert PhoneV2Serializer in phone/serializers/phone.py:103-248).

E-Mail-Verifizierung

Wird pro E-Mail-Verifizierungsversuch zurückgegeben. Erscheint als email_verifications[] in GET /v3/session/{sessionId}/decision/ für KYC- und KYB-Sitzungen. Quelle: email_verification/serializers/email.py:149-164 (EmailV3Serializer, erweitert EmailV2Serializer in email_verification/serializers/email.py:38-146).

Datenbankvalidierung

Wird pro Datenbankabfrage zurückgegeben, die mit den vom Benutzer übermittelten Daten ausgeführt wurde. Erscheint als database_validations[] in GET /v3/session/{sessionId}/decision/. Quelle: database_validation/serializers/database_validation.py:21-142 (DatabaseValidationV3Serializer, erweitert DatabaseValidationV2Serializer).

Fragebogen-Antwort

Wird pro Fragebogen-Übermittlung zurückgegeben. Erscheint als questionnaire_responses[] in GET /v3/session/{sessionId}/decision/ für KYC- und KYB-Sitzungen. Quelle: questionnaires/serializers/questionnaire.py:591-597 (QuestionnaireResponseV3Serializer, erweitert QuestionnaireResponseSerializer in questionnaires/serializers/questionnaire.py:520-588).

E-Signatur

Wird pro Unterzeichner eines E-Signatur-Schritts zurückgegeben. Erscheint als signatures[] in GET /v3/session/{sessionId}/decision/ für KYC- und KYB-Sitzungen, nur wenn der Workflow den Schritt enthält. Anders als die übrigen Berichtsobjekte ist ihr status die Signierphase, und das Ergebnis steht in verdict. Die Elemente von warnings[] sind { code, node_id } statt Warnungsobjekte. Der E-Signatur-Bericht enthält ein vollständiges Beispiel und alle verschachtelten Felder.

Altersschätzung

Wird von der eigenständigen Altersschätzungs-API (POST /v3/age-estimation/) zurückgegeben. Die Antwort enthält eine Teilmenge der Struktur von Liveness check innerhalb einer age_estimation-Hülle: status, method, score, age_estimation, warnings. Hinzu kommt ein nur in der eigenständigen API vorhandener Block user_image zur Gesichtserkennung. Sie enthält nicht reference_image, video_url, matches, face_quality oder face_luminance. In Workflow-Sitzungen gibt es kein separates Array. Das geschätzte Alter erscheint als liveness_checks[].age_estimation in GET /v3/session/{sessionId}/decision/. Quelle: apis/serializers/age_estimation.py:50-55 (AgeEstimationResponseSerializer), Hülle zusammengesetzt in apis/views/age_estimation.py:138-174.

Biometrische Authentifizierung

Die biometrische Authentifizierung führt dieselbe Pipeline für Liveness-Erkennung und Gesichtsabgleich aus, wie sie beim Standard-KYC verwendet wird. Sie ist allerdings so konfiguriert, dass das erfasste Gesicht mit einem bestehenden Referenzbild des Benutzers verglichen wird, statt mit einem frisch per OCR ausgelesenen Porträt aus dem Dokument. Es gibt keinen eigenen Serializer. GET /v3/session/{sessionId}/decision/ gibt die Standardobjekte Liveness-Prüfung und Gesichtsabgleich unter liveness_checks[] und face_matches[] zurück. Der Workflow der Sitzung ist mit workflow_type = "biometric_authentication" konfiguriert (WorkflowTypeChoices, common/config/choices.py:636).

KYB-Register

Wird pro im Register bestätigtem Unternehmen in einem KYB-Workflow zurückgegeben. Erscheint als registry_checks[] in GET /v3/session/{sessionId}/decision/ für Unternehmenssitzungen. Quelle: kyb/serializers/kyb.py:939-964 (RegistryCheckV3Serializer).

Unternehmensobjekt

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

KYB-Dokument

Wird pro Knoten zurückgegeben, der KYB-Nachweisdokumente erfasst. Erscheint als document_verifications[] in GET /v3/session/{sessionId}/decision/ für Unternehmenssitzungen, mit einem Eintrag pro node_id und einer Liste items[] der hochgeladenen Dokumente. Quelle: kyb/serializers/kyb.py:1053-1068 (DocumentVerificationV3Serializer); jedes Element folgt kyb/serializers/kyb.py:811-851 (KYBDocumentResponseSerializer).

KYB-Dokumentelement-Objekt

KYB-Schlüsselperson

Wird pro Schlüsselpersonen-Knoten eines KYB-Workflows zurückgegeben. Erscheint als key_people_checks[] in GET /v3/session/{sessionId}/decision/ für Unternehmenssitzungen. Quelle: kyb/serializers/kyb.py:967-1050 (KeyPeopleCheckV3Serializer).

Felder auf Entscheidungsebene

Diese Schlüssel stehen neben den Funktions-Arrays bei GET /v3/session/{sessionId}/decision/ und innerhalb von decision in einem Webhook. Informationen zum Lesen dieser Felder finden Sie unter Sitzung abrufen.

Biometrische Einwilligung

Jede Entscheidung zur Benutzerverifizierung und jeder Sitzungs-Webhook enthält ein einzelnes biometric_consent-Objekt (kein Array). Es gibt an, ob die Sitzung eine ausdrückliche biometrische Einwilligung erforderte, warum dies erforderlich war und welcher Nachweis für die Antwort vorliegt. Es ist null, wenn die Sitzung nie ausgewertet wurde, zum Beispiel bei einem Workflow ohne Gesichtsaufnahme. Quelle: BiometricConsentDecisionSerializer (sessions/serializers/biometric_consent.py). Wann der Schritt erscheint und was die einzelnen Fälle bedeuten, wird unter Biometrische Einwilligung erklärt. Felder ohne erfassten Wert sind null, niemals ein leerer String. Eine Sitzung in Illinois, die mit einem nativen SDK unterhalb von 4.10.0 durchgeführt wurde und bei der das Selfie ohne den Schritt aufgenommen wurde:
Eine Person über ein VPN mit Ausgang außerhalb der USA, die auf der gehosteten Verifizierungsseite zugestimmt hat:

Status-Aufzählung

Zwei verwandte Wertebereiche verwenden den Feldnamen status. Jedes Berichtsobjekt auf Funktionsebene auf dieser Seite verwendet die Aufzählung auf Funktionsebene. Der Top-Level-status der übergeordneten Sitzung verwendet die umfassendere Sitzungsaufzählung.

Status auf Funktionsebene

Wird vom Feld status jedes Berichtsobjekts verwendet. Quelle: common/config/choices.py:343-348 (FeatureStatusChoices). Telefonverifizierung, E-Mail-Verifizierung und Ausweisverifizierung können zusätzlich Expired zurückgeben, wenn ihr Schritt abläuft (PhoneStatusChoices in common/config/choices.py:377-382, EmailStatusChoices in common/config/choices.py:434-439).

Status auf Sitzungsebene

Wird vom Top-Level-status der übergeordneten Sitzung verwendet. Quelle: common/config/choices.py:106-117 (StatusChoices).
Die endgültigen Sitzungswerte sind Approved, Declined, In Review, Expired, Kyc Expired und Abandoned. Eine Sitzung kann ihre Gesamtentscheidung erreichen, während eine einzelne Funktion weiterhin In Review ist.
Zuletzt geändert am 14. November 2026