using System;
using System.Text.Json;
using Didit;
// Reads DIDIT_API_KEY.
using var client = new DiditClient();
var result = await client.Sessions.ImportSharedAsync(new SessionsImportSharedParams
{
ShareToken = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
TrustReview = false,
WorkflowId = "9f9b1234-aaaa-bbbb-cccc-1234567890ab",
VendorData = "user-1",
});
Console.WriteLine(JsonSerializer.Serialize(result));
using System;
using System.Text.Json;
using Didit;
// Reads DIDIT_API_KEY.
using var client = new DiditClient();
var result = await client.Sessions.ImportSharedAsync(new SessionsImportSharedParams
{
ShareToken = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
TrustReview = false,
WorkflowId = "9f9b1234-aaaa-bbbb-cccc-1234567890ab",
VendorData = "user-1",
});
Console.WriteLine(JsonSerializer.Serialize(result));
Didit decodes the share token, reads the embedded session_kind, and clones the corresponding kind of session:
session_kind: "user" — clones the user session plus its related identity, face, liveness, face-match, AML, location, POA, phone, email, database-validation, and log rows.
session_kind: "business" — clones the business session plus its related registry check, key-people records, documents, AML screenings, phone, email, location, questionnaire, and log rows.
If the token predates the unified sharing rollout and has no session_kind field, Didit defaults to "user" for backward compatibility.
What gets created
A new session of the same kind in your application with a fresh session_id, session_number, and session_url.
The new session’s shared_from_session field points at the original session in the source application.
The new session’s status is either the original status (trust_review: true) or IN_REVIEW (trust_review: false).
A new entity (User or Business) is auto-created for the vendor_data if one doesn’t exist.
Your application's API key, from Developers -> API keys in the Business Console. The primary key has full access. A named key can be scoped: none, read or write per resource, limited to some workflows or to approved sessions, to a list of IP addresses, and to an expiry date. 401 means the key is wrong, revoked or expired; 403 means no key was sent, the key has no access to this resource or action, or the request came from an address outside its IP list; 404 on a session route means the session is outside the key's workflows or statuses. A key without media access receives image, video and PDF URLs as null, and a key without sessions write receives session links and tokens as null. See https://docs.didit.me/console/api-keys.
If true, the cloned session keeps the source's final status. If false, it is forced into In Review.
Example:
false
workflow_id
string<uuid>
required
UUID of a workflow in the calling application. Cross-application IDs are rejected with 404.
Example:
"9f9b1234-aaaa-bbbb-cccc-1234567890ab"
vendor_data
string | null
Optional override for the cloned session's vendor_data.
Example:
"user-1"
Response
Session cloned. The body is the V3 decision payload for both kinds, discriminated by session_kind: "user" (KYC) with list-based feature blocks such as id_verifications, liveness_checks, aml_screenings; "business" (KYB) with blocks like registry_checks and key_people_checks. Both include shared_from_session — the session_id of the original session in the source application. With trust_review: false the cloned session's status is forced to In Review.
session_id
string<uuid>
The unique identifier of the session.
session_kind
enum<string>
Discriminator indicating whether this is a User Verification (KYC) or Business Verification (KYB) session. When user, the KYC feature arrays (id_verifications, nfc_verifications, liveness_checks, face_matches, poa_verifications, document_ai_documents, database_validations, ...) apply and the business arrays are absent. When business, the payload instead carries registry_checks, document_verifications, key_people_checks plus the shared arrays (aml_screenings, phone_verifications, email_verifications, ip_analyses, questionnaire_responses). Omitted when include=events is passed — the events shape only exists for user sessions, so the discriminator is dropped from that variant.
Available options:
user,
business
shared_from_session
string<uuid> | null
For a session cloned with POST /v3/session/import-shared/: the session_id of the original session in the source application. null for every other session. Omitted when include=events is passed.
shared_from_session_number
integer | null
session_number of the source session when this session was imported from another application of your organization. null otherwise.
session_number
integer | null
The number of the session.
session_url
string<uri> | null
The URL of the session.
status
enum<string>
Overall lifecycle status of the session — the rolled-up workflow result. Terminal values are Approved, Declined, In Review, Expired, Kyc Expired, and Abandoned; Not Started, In Progress, Awaiting User, and Resubmitted indicate the session is still moving through the workflow.
Available options:
Not Started,
In Progress,
Awaiting User,
In Review,
Approved,
Declined,
Resubmitted,
Expired,
Kyc Expired,
Abandoned
status_override
object | null
Present when a reviewer set status by hand. null when the status is the automatic one. Use it to tell a manual approval from an automatic one.
Show child attributes
decision_trace
object
How the status was reached: who set it and which warnings did.
Show child attributes
linked_records
object | null
A summary of other records linked to the session. null when there is nothing to show, and for workflows that declare an age assurance standard.
Show child attributes
workflow_id
string<uuid> | null
Stable identifier of the workflow group that produced this session. Workflows are versioned — this value identifies the workflow itself, not the specific version.
features
string[]
List of verification features configured for this session, as display names: ID_VERIFICATION, NFC, LIVENESS, FACE_MATCH, POA, PHONE, EMAIL_VERIFICATION, AML, IP_ANALYSIS, DATABASE_VALIDATION, QUESTIONNAIRE, AGE_ESTIMATION, FACE_SEARCH, GEOLOCATION (Location verification) (Business Verification sessions use the KYB feature set: KYB_REGISTRY, KYB_DOCUMENTS, KYB_KEY_PEOPLE, AML, PHONE, EMAIL_VERIFICATION, IP_ANALYSIS, QUESTIONNAIRE). With include=events each entry becomes an object {feature, node_id} instead of a plain string, and the email feature is renamed: it appears as EMAIL in events mode instead of the EMAIL_VERIFICATION used here.
The feature of the session.
vendor_data
string | null
The vendor data of the session.
metadata
object | null
The metadata of the session.
expected_details
object | null
Expected details supplied at session creation — used for cross-validation against extracted data (KYC) or to pre-fill the company registry search (KYB). Echoes back exactly the keys that were provided; null when none were supplied. KYC sessions carry the person fields; Business (KYB) sessions carry company_name, registry_country and registration_number.
Show child attributes
contact_details
object | null
Contact details supplied when the session was created (used for notification emails, prefilled phone/email verification, and communication language). null when neither an email nor a phone number was provided.
Show child attributes
callback
string<uri> | null
The callback URL of the session.
id_verifications
object[] | null
Array of ID verification (OCR) reports produced by ID-document steps in the workflow graph. Always a JSON array — read id_verifications[0] and iterate if your workflow can run more than one ID check (for example a primary check plus a step-up). null until at least one ID step has produced data. Each item is the full report, including node_id, feature-level status, extracted document fields, image URLs, quality scores, MRZ, address parsing, cross-session matches, and warnings[].
Show child attributes
nfc_skip_reason
enum<string> | null
Why NFC chip verification did not run, populated whenever the workflow includes an NFC step. null while NFC is pending or when the chip was actually read. Values: USER_SKIPPED - the user chose to skip on an NFC-capable device (allowed by allow_nfc_skip); DOCUMENT_WITHOUT_CHIP - the document has no readable NFC chip (not an ICAO 9303 electronic document); CHIP_CERTIFICATE_UNAVAILABLE - the issuing country's signing certificate (CSCA) covering the document's issue period is unavailable, so the chip signature cannot be verified; DEVICE_WITHOUT_NFC - the device reported no NFC reader; INTEGRATION_WITHOUT_NFC_ACCESS - the verification ran without a native SDK (e.g. in a web browser), which has no access to the phone's NFC reader; MRZ_KEY_UNAVAILABLE - the chip access key could not be derived from the document's MRZ; JPKI_UNAVAILABLE - the document is a Japan My Number Card, whose chip is read through JPKI, and JPKI was not available for this verification: it is not enabled, or the app's native SDK cannot read My Number Cards.
Available options:
USER_SKIPPED,
DOCUMENT_WITHOUT_CHIP,
CHIP_CERTIFICATE_UNAVAILABLE,
DEVICE_WITHOUT_NFC,
INTEGRATION_WITHOUT_NFC_ACCESS,
MRZ_KEY_UNAVAILABLE,
JPKI_UNAVAILABLE
nfc_verifications
object[] | null
Array of NFC / ePassport reports produced by NFC steps in the workflow graph. This is always a JSON array, never a singular nfc object — read nfc_verifications[0] and iterate if your workflow can run NFC more than once. null until at least one NFC step has produced data. Each item is the full report, including node_id, feature-level status, chip_protocol, chip_data, authenticity (SOD + DG integrity), certificate_summary, and warnings[]. A Japan My Number Card is read through JPKI instead of ICAO 9303: its item has chip_protocol: "jpki", carries its evidence under jpki, and leaves the ICAO fields null. When the NFC step was bypassed before it could ever be offered (chipless document, missing certificate, no NFC capability reported, unreadable MRZ key, JPKI unavailable for a My Number Card), this stays null and nfc_skip_reason explains why; a skip at the step itself (user tapped skip, or the reader turned out unavailable at scan time) still produces a report with is_nfc_skipped: true.
Show child attributes
liveness_checks
object[] | null
Array of liveness reports produced by liveness steps in the workflow graph. Always a JSON array — never a singular liveness object. null until at least one liveness step has produced data. Each item is the full report, including node_id, feature-level status, method, score, reference_image, video_url, optional age_estimation, cross-session matches[], and warnings[].
Show child attributes
face_matches
object[] | null
Array of face-match reports produced by face-match steps in the workflow graph. Always a JSON array — never a singular face_match object. null until at least one face-match step has produced data. Each item is the full report, including node_id, feature-level status, similarity score, source_image, target_image, and warnings[].
Show child attributes
phone_verifications
object[] | null
Array of phone verification reports — always a JSON array, never a singular phone object. null until at least one phone step has produced data. Each item is the full report, including node_id, feature-level status, the phone number and country metadata, lifecycle[], matches[], and warnings[].
Show child attributes
email_verifications
object[] | null
Array of email verification reports — always a JSON array, never a singular email object. null until at least one email step has produced data. Each item is the full report, including node_id, feature-level status, the email address, breach data, lifecycle[], matches[], and warnings[].
Show child attributes
poa_verifications
object[] | null
Array of Proof of Address (POA) reports — always a JSON array, never a singular poa object. null until at least one POA step has produced data. Each item is the full report, including node_id, feature-level status, the document file URL, issuer, dates, parsed address, and warnings[].
Show child attributes
document_ai_documents
object[] | null
Document AI reports grouped by workflow node — always a JSON array, never a singular object. null until at least one Document AI step has produced data. Present only when session_kind = user. Each item is a node group with an aggregate status, the node_id, an items[] array of the per-document results (extracted data keyed by the configured field key), and warnings.
Show child attributes
questionnaire_responses
object[] | null
Array of questionnaire response reports — always a JSON array, never a singular questionnaire object. null until at least one questionnaire step has produced data. Each item is the full report, including node_id, the questionnaire metadata, sections with form elements, and the user's answers.
Show child attributes
bank_verifications
object[] | null
Bank Verification results, one item per Bank Verification step, for User and Business Verification. null until a step produces one. Each item's method says how the account was verified: open_banking (bank sign-in) or account_lookup (account check), or a statement or microdeposits fallback, and none when the person continued without a bank before any attempt was evaluated (continued_without_bank). See Bank verification methods.
Show child attributes
signatures
object[]
E-signature results, one item per signer and signature step, for User and Business Verification. Present only when the workflow has an E-signature step; an empty array until a signer reaches it. See the E-signature report.
Show child attributes
aml_screenings
object[] | null
Array of AML screening reports — always a JSON array, never a singular aml object. null until at least one AML step has produced data. Each item is the full report, including node_id, feature-level status, total_hits, entity_type, hits[], score, screened_data, is_ongoing_monitoring_enabled, and warnings[].
Show child attributes
ip_analyses
object[] | null
Array of Device & IP Analysis reports — always a JSON array, never a singular ip_analysis object. null until at least one IP-analysis step has produced data. Each item is the full report, including node_id, feature-level status, IP and geolocation data, device fingerprint, and warnings[]. Entries with duplicate (node_id, ip_address, device_fingerprint) are deduplicated server-side.
Show child attributes
geolocation_checks
object[] | null
Array of Location verification results, one per Location verification step: that step's accepted attempt. null until a Location verification step has produced data. Earlier attempts of the same step are in geolocation_attempts.
Show child attributes
geolocation_attempts
object[] | null
Every attempt of every Location verification step of this session, oldest first. Attempts that a resubmission replaced are left out. A workflow that withholds geolocation_checks through its response attributes withholds this list too.
Show child attributes
database_validations
object[] | null
Array of Database Validation reports — always a JSON array, never a singular database_validation object. null until at least one DB validation step has produced data. Each item is the full report, including node_id, feature-level status, screened_data, the per-service validations[] (each with its registry source_data), and warnings[]. The screened_data and source_data fields vary by country:
ARG (Argentina): screened_data: {document_number, selfie, gender, first_name, last_name}. source_data: {identification_number, first_name, last_name, full_name, date_of_birth, date_of_death, tax_id, tax_id_type, face_match_score, sit_1_since, banks, last_position, highest_position, rejected_checks}. Uses RENAPER biometric face-match validation. Gender is auto-inferred from face analysis or given name when not present in the document (e.g., driver licenses)
BRA (Brazil): screened_data: {tax_number, first_name, last_name, date_of_birth}. source_data always includes {identification_number, first_name, last_name, date_of_birth, lgpd_minor, minor_under_18, minor_under_16} for successful CPF matches. Successful adult lookups set those flags to false. The Receita Federal Consulta CPF service may return HTTP 422 (minor under 18) or 451 (under 16) with LGPD-withheld data; in those cases source_data sets the minor flags to true as appropriate, includes the upstream HTTP status, and field-level validation is no_match. See the Brazil section of the Database Validation Outcome Codes reference for the full code list.
MEX (Mexico): screened_data: {personal_number (CURP), first_name, last_name}. source_data: {identification_number, first_name, last_name, full_name, date_of_birth, gender, nationality, curp_status, state_of_birth, doc_probatorio, registration_year, registration_state, registration_municipality, num_acta, crip, issuing_state_code, foreign_registry_number, folio_carta, folio_certificado}. Uses the RENAPO civil registry. A separate INE validity-check service is also available for MEX as an additional one-by-one validation.
Why a configured database validation produced no result, as {code, message} plus context fields. Present only when database_validations is null for a workflow that has the step, so you can tell "the registry agreed" from "nothing ran". null otherwise.
Show child attributes
reviews
object[]
Show child attributes
assignee
object | null
The Console reviewer the session is assigned to, or null when nobody holds it.
Show child attributes
waiting_since
string<date-time> | null
When the session started waiting for review. null unless the session is In Review and your application sets a review deadline.
sla_due_at
string<date-time> | null
When the review is due. null unless the session is In Review and your application sets a review deadline.
created_at
string<date-time>
Timestamp at which the session was created (ISO 8601, UTC).
expires_at
string<date-time> | null
Timestamp at which this session is scheduled to expire. Set on User Verification (KYC) sessions when an expiration was configured at creation time (or once Approved status triggers KYC expiry computation). null for sessions without a configured expiration, and for kinds that do not use expiry (e.g. Business Verification (KYB) sessions that never received an expires_at).
registry_checks
object[] | null
Company registry checks. Present only when session_kind = business. Each item wraps the full company-registry payload.
Show child attributes
key_people_checks
object[] | null
Aggregate key-people checks. Present only when session_kind = business. Each item uses the two-bucket shape (registry, submitted, ubo_kyc_summary).
Show child attributes
document_verifications
object[] | null
Document verification checks grouped by workflow node. Present only when session_kind = business.
Show child attributes
environment
enum<string>
Whether the session was created by a live application (live) or a sandbox application (sandbox). Sandbox sessions are free, fully simulated, and never bill credits.
Available options:
live,
sandbox
sandbox_scenario
string | null
The sandbox scenario the session was created with. null for live sessions and for sandbox sessions created without one.
resubmissions
object[]
Returned only with include=resubmissions, for user and business sessions. One entry per resubmission request, oldest first. Each entry carries the results the resubmitted steps returned before the request, so earlier submissions stay readable. Deleting the session deletes every submission.
Show child attributes
biometric_consent
object | null
Whether the session required explicit biometric consent before a face capture, why, and the evidence of the answer. User Verification (KYC) sessions only; the same object is in the decision of session webhooks. null when the session was never evaluated, for example a workflow without a face capture. Fields with no recorded value are null. A native SDK below 4.10.0, or one that does not report its version, cannot show the consent step: its face captures run as before, and a session that required consent then reports status: "pending" with reason: "BIOMETRIC_CONSENT_UNSUPPORTED_SDK". See Biometric consent.
Show child attributes
investigator
object | null
The item's latest Investigator review, or null when it never had one. Carried by the V3 session and business session decision (and so by status.updated webhooks).
Show child attributes
biometric_retention
object
When the live biometric data of this session is deleted.
Show child attributes
fraud_check
object | null
The result of a Fraud Check API call. null for every other session.
full_session_video
string<uri> | null
Expiring URL of the full-session recording. Returned only when your organization records full-session video.
full_session_video_recorded_at
string<date-time> | null
When the full-session recording was made. Returned only when your organization records full-session video.
Last modified on November 1, 2026
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Didit Docs","description":"The best way to integrate identity and fraud checks into your app. One API, four product lines (KYC · KYB · Transaction Monitoring · Wallet Screening), 220+ countries, 14,000+ documents, sub-2s inference, $10 free credit/month.","colors":{"primary":"#2567FF","light":"#90B1FF","dark":"#1B4FE0"},"logo":{"light":"https://mintcdn.com/didit-0f962782/dCzNNoYCusBNdK3I/logo/didit.svg?fit=max\u0026auto=format\u0026n=dCzNNoYCusBNdK3I\u0026q=85\u0026s=9f162fb8295fa1fd9300a24b293ce0b7","dark":"https://mintcdn.com/didit-0f962782/TefoKXCbZA_GIK5a/logo/didit-logo-wordmark-white.svg?fit=max\u0026auto=format\u0026n=TefoKXCbZA_GIK5a\u0026q=85\u0026s=c8c541689c814ca6a2c873cf6185a3a7","href":"https://docs.didit.me"},"favicon":"https://mintcdn.com/didit-0f962782/t6r0B-WdGMU5mSS-/favicon.ico?fit=max\u0026auto=format\u0026n=t6r0B-WdGMU5mSS-\u0026q=85\u0026s=b291917b960ebe959ae3b1aa233eafa8","api":{"examples":{"prefill":true},"mdx":{"auth":{"method":"key","name":"x-api-key"},"server":"https://verification.didit.me"}},"background":{"color":{"light":"#FFFFFF","dark":"#1A1A1A"}},"navbar":{"links":[{"icon":"comment-dots","href":"https://help.didit.me","label":"Support"},{"icon":"signal","href":"https://status.didit.me","label":"Status"}],"primary":{"type":"button","label":"Sign in","href":"https://business.didit.me"}},"footer":{"socials":{"x":"https://x.com/didit","github":"https://github.com/didit-protocol","linkedin":"https://linkedin.com/company/91001155","website":"https://didit.me"}},"search":{"prompt":"Search Didit docs..."},"seo":{"metatags":{"twitter:site":"@didit","theme-color":"#2567FF","apple-mobile-web-app-title":"Didit Docs"},"organization":{"id":"https://didit.me/#organization","name":"Didit","legalName":"Didit Protocol","url":"https://didit.me","logo":"https://didit.me/logos/primary-horizontal-light.png","sameAs":["https://www.linkedin.com/company/91001155","https://www.youtube.com/@getdidit","https://github.com/didit-protocol","https://x.com/didit"]},"indexing":"navigable"},"fonts":{"heading":{"family":"Inter","weight":500},"body":{"family":"Inter","weight":400}},"errors":{"404":{"redirect":false,"title":"Page not found","description":"This page moved or never existed. [Back to docs](/)"}},"contextual":{"options":["copy","view","chatgpt","claude","perplexity","mcp","cursor","vscode"],"display":"header"},"thumbnails":{"appearance":"light","background":"https://mintcdn.com/didit-0f962782/Xkecx-xLq1K2abHK/images/og-thumbnail-backplate.png?fit=max\u0026auto=format\u0026n=Xkecx-xLq1K2abHK\u0026q=85\u0026s=c699fa252554b2ac8d4c631e209a1473","fonts":{"family":"Inter"}},"metadata":{"timestamp":true},"styling":{"latex":true},"navigation":{"languages":[{"language":"en","href":""},{"language":"es","navbar":{"links":[{"icon":"comment-dots","href":"https://help.didit.me","label":"Soporte"},{"icon":"signal","href":"https://status.didit.me","label":"Estado"}],"primary":{"type":"button","label":"Iniciar sesión","href":"https://business.didit.me"}},"href":"es"},{"language":"pt-BR","navbar":{"links":[{"icon":"comment-dots","href":"https://help.didit.me","label":"Suporte"},{"icon":"signal","href":"https://status.didit.me","label":"Status"}],"primary":{"type":"button","label":"Entrar","href":"https://business.didit.me"}},"href":"pt-br"},{"language":"ja","navbar":{"links":[{"icon":"comment-dots","href":"https://help.didit.me","label":"サポート"},{"icon":"signal","href":"https://status.didit.me","label":"ステータス"}],"primary":{"type":"button","label":"サインイン","href":"https://business.didit.me"}},"href":"ja"},{"language":"de","navbar":{"links":[{"icon":"comment-dots","href":"https://help.didit.me","label":"Support"},{"icon":"signal","href":"https://status.didit.me","label":"Status"}],"primary":{"type":"button","label":"Anmelden","href":"https://business.didit.me"}},"href":"de"},{"language":"fr","navbar":{"links":[{"icon":"comment-dots","href":"https://help.didit.me","label":"Assistance"},{"icon":"signal","href":"https://status.didit.me","label":"Statut"}],"primary":{"type":"button","label":"Se connecter","href":"https://business.didit.me"}},"href":"fr"},{"language":"it","navbar":{"links":[{"icon":"comment-dots","href":"https://help.didit.me","label":"Supporto"},{"icon":"signal","href":"https://status.didit.me","label":"Stato"}],"primary":{"type":"button","label":"Accedi","href":"https://business.didit.me"}},"href":"it"},{"language":"pt","navbar":{"links":[{"icon":"comment-dots","href":"https://help.didit.me","label":"Suporte"},{"icon":"signal","href":"https://status.didit.me","label":"Estado"}],"primary":{"type":"button","label":"Iniciar sessão","href":"https://business.didit.me"}},"href":"pt"},{"language":"ca","navbar":{"links":[{"icon":"comment-dots","href":"https://help.didit.me","label":"Suport"},{"icon":"signal","href":"https://status.didit.me","label":"Estat"}],"primary":{"type":"button","label":"Inicia la sessió","href":"https://business.didit.me"}},"href":"ca"},{"language":"id","navbar":{"links":[{"icon":"comment-dots","href":"https://help.didit.me","label":"Dukungan"},{"icon":"signal","href":"https://status.didit.me","label":"Status"}],"primary":{"type":"button","label":"Masuk","href":"https://business.didit.me"}},"href":"id"},{"language":"ru","navbar":{"links":[{"icon":"comment-dots","href":"https://help.didit.me","label":"Поддержка"},{"icon":"signal","href":"https://status.didit.me","label":"Статус"}],"primary":{"type":"button","label":"Вход","href":"https://business.didit.me"}},"href":"ru"},{"language":"ko","navbar":{"links":[{"icon":"comment-dots","href":"https://help.didit.me","label":"지원"},{"icon":"signal","href":"https://status.didit.me","label":"상태"}],"primary":{"type":"button","label":"로그인","href":"https://business.didit.me"}},"href":"ko"},{"language":"zh","navbar":{"links":[{"icon":"comment-dots","href":"https://help.didit.me","label":"支持"},{"icon":"signal","href":"https://status.didit.me","label":"状态"}],"primary":{"type":"button","label":"登录","href":"https://business.didit.me"}},"href":"zh"},{"language":"ar","navbar":{"links":[{"icon":"comment-dots","href":"https://help.didit.me","label":"الدعم"},{"icon":"signal","href":"https://status.didit.me","label":"الحالة"}],"primary":{"type":"button","label":"تسجيل الدخول","href":"https://business.didit.me"}},"href":"ar"},{"language":"hi","navbar":{"links":[{"icon":"comment-dots","href":"https://help.didit.me","label":"सहायता"},{"icon":"signal","href":"https://status.didit.me","label":"स्थिति"}],"primary":{"type":"button","label":"साइन इन करें","href":"https://business.didit.me"}},"href":"hi"}]}},"deployment":{"deploymentMetadataValue":{"subdomain":"didit-0f962782","hasAudioNarration":false,"actualSubdomain":"didit-0f962782","customDomains":["docs.didit.me"],"gitSource":{"type":"github","owner":"didit-protocol","repo":"mintlify-docs","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6af81a2774b4f0f02ee03333","clientVersion":"0.0.4142","searchFilterCounts":[{"language":"ar","tag":"مرجع API","count":440},{"language":"ca","tag":"Referència de l'API","count":440},{"language":"de","tag":"API-Referenz","count":440},{"language":"es","tag":"Referencia de la API","count":440},{"language":"fr","tag":"Référence API","count":440},{"language":"hi","tag":"API संदर्भ","count":440},{"language":"id","tag":"Referensi API","count":440},{"language":"it","tag":"Riferimento API","count":440},{"language":"ja","tag":"APIリファレンス","count":440},{"language":"ko","tag":"API 레퍼런스","count":440},{"language":"pt-BR","tag":"Referência da API","count":440},{"language":"pt","tag":"Referência da API","count":440},{"language":"ru","tag":"Справочник API","count":440},{"language":"zh","tag":"API 参考","count":440},{"language":"en","tag":"API Reference","count":432},{"language":"en","tag":"Database Validation","count":129},{"language":"ar","tag":"التحقق من قواعد البيانات","count":129},{"language":"ca","tag":"Validació en bases de dades","count":129},{"language":"de","tag":"Datenbankvalidierung","count":129},{"language":"es","tag":"Validación de base de datos","count":129},{"language":"fr","tag":"Validation en base de données","count":129},{"language":"hi","tag":"डेटाबेस सत्यापन","count":129},{"language":"id","tag":"Validasi Database","count":129},{"language":"it","tag":"Validazione su database","count":129},{"language":"ja","tag":"データベース検証","count":129},{"language":"ko","tag":"데이터베이스 검증","count":129},{"language":"pt-BR","tag":"Validação de banco de dados","count":129},{"language":"pt","tag":"Validação de base de dados","count":129},{"language":"ru","tag":"Проверка по базам данных","count":129},{"language":"zh","tag":"数据库核验","count":129},{"language":"ca","tag":"Primers passos","count":93},{"language":"de","tag":"Erste Schritte","count":93},{"language":"es","tag":"Primeros pasos","count":93},{"language":"ja","tag":"はじめに","count":93},{"language":"ko","tag":"시작하기","count":93},{"language":"pt-BR","tag":"Primeiros passos","count":93},{"language":"ru","tag":"Начало работы","count":93},{"language":"en","tag":"Get Started","count":87},{"language":"ar","tag":"ابدأ الآن","count":87},{"language":"fr","tag":"Commencer","count":87},{"language":"hi","tag":"शुरू करें","count":87},{"language":"id","tag":"Mulai","count":87},{"language":"it","tag":"Inizia","count":87},{"language":"pt","tag":"Começar","count":87},{"language":"zh","tag":"快速开始","count":87},{"language":"ko","tag":"인증","count":85},{"language":"en","tag":"User Verification","count":74},{"language":"ar","tag":"التحقق من المستخدمين","count":74},{"language":"ca","tag":"Verificació d'usuaris","count":74},{"language":"de","tag":"Benutzerverifizierung","count":74},{"language":"es","tag":"Verificación de usuarios","count":74},{"language":"fr","tag":"Vérification des utilisateurs","count":74},{"language":"hi","tag":"उपयोगकर्ता सत्यापन","count":74},{"language":"id","tag":"Verifikasi Pengguna","count":74},{"language":"it","tag":"Verifica degli utenti","count":74},{"language":"ja","tag":"ユーザー認証","count":74},{"language":"ko","tag":"사용자 인증","count":74},{"language":"pt-BR","tag":"Verificação de usuários","count":74},{"language":"pt","tag":"Verificação de utilizadores","count":74},{"language":"ru","tag":"Проверка пользователей","count":74},{"language":"zh","tag":"用户验证","count":74},{"language":"en","tag":"Integrate / SDKs","count":67},{"language":"ar","tag":"التكامل / SDKs","count":67},{"language":"ca","tag":"Integració / SDK","count":67},{"language":"de","tag":"Integrieren / SDKs","count":67},{"language":"es","tag":"Integración / SDKs","count":67},{"language":"fr","tag":"Intégrer / SDK","count":67},{"language":"hi","tag":"इंटीग्रेट करें / SDK","count":67},{"language":"id","tag":"Integrasi / SDK","count":67},{"language":"it","tag":"Integrazione / SDK","count":67},{"language":"ja","tag":"連携 / SDK","count":67},{"language":"ko","tag":"연동 / SDK","count":67},{"language":"pt-BR","tag":"Integração / SDKs","count":67},{"language":"pt","tag":"Integrar / SDKs","count":67},{"language":"ru","tag":"Интеграция / SDK","count":67},{"language":"zh","tag":"集成 / SDK","count":67},{"language":"en","tag":"Travel Rule","count":58},{"language":"ar","tag":"Travel Rule","count":58},{"language":"ca","tag":"Travel Rule","count":58},{"language":"de","tag":"Travel Rule","count":58},{"language":"es","tag":"Travel Rule","count":58},{"language":"fr","tag":"Travel Rule","count":58},{"language":"hi","tag":"Travel Rule","count":58},{"language":"id","tag":"Travel Rule","count":58},{"language":"it","tag":"Travel Rule","count":58},{"language":"ja","tag":"トラベルルール","count":58},{"language":"ko","tag":"Travel Rule","count":58},{"language":"pt-BR","tag":"Travel Rule","count":58},{"language":"pt","tag":"Travel Rule","count":58},{"language":"ru","tag":"Travel Rule","count":58},{"language":"zh","tag":"Travel Rule","count":58},{"language":"en","tag":"Verification","count":48},{"language":"ar","tag":"التحقق","count":48},{"language":"ca","tag":"Verificació","count":48},{"language":"de","tag":"Verifizierung","count":48},{"language":"es","tag":"Verificación","count":48},{"language":"fr","tag":"Vérification","count":48},{"language":"hi","tag":"सत्यापन","count":48},{"language":"id","tag":"Verifikasi","count":48},{"language":"it","tag":"Verifica","count":48},{"language":"ja","tag":"検証","count":48},{"language":"pt-BR","tag":"Verificação","count":48},{"language":"pt","tag":"Verificação","count":48},{"language":"ru","tag":"Верификация","count":48},{"language":"zh","tag":"验证","count":48},{"language":"en","tag":"Authentication","count":37},{"language":"ar","tag":"المصادقة","count":37},{"language":"ca","tag":"Autenticació","count":37},{"language":"de","tag":"Authentifizierung","count":37},{"language":"es","tag":"Autenticación","count":37},{"language":"fr","tag":"Authentification","count":37},{"language":"hi","tag":"प्रमाणीकरण","count":37},{"language":"id","tag":"Autentikasi","count":37},{"language":"it","tag":"Autenticazione","count":37},{"language":"ja","tag":"認証","count":37},{"language":"pt-BR","tag":"Autenticação","count":37},{"language":"pt","tag":"Autenticação","count":37},{"language":"ru","tag":"Аутентификация","count":37},{"language":"zh","tag":"身份认证","count":37},{"language":"en","tag":"Digital ID wallets","count":35},{"language":"en","tag":"User and Business Verifications","count":35},{"language":"ar","tag":"محافظ الهوية الرقمية","count":35},{"language":"ar","tag":"التحقق من المستخدمين والشركات","count":35},{"language":"ca","tag":"Carteres d'identitat digital","count":35},{"language":"ca","tag":"Verificacions d'usuaris i empreses","count":35},{"language":"de","tag":"Digitale ID-Wallets","count":35},{"language":"de","tag":"Benutzer- und Unternehmensverifizierungen","count":35},{"language":"es","tag":"Wallets de identidad digital","count":35},{"language":"es","tag":"Verificaciones de usuarios y empresas","count":35},{"language":"fr","tag":"Portefeuilles d'identité numérique","count":35},{"language":"fr","tag":"Vérifications des utilisateurs et des entreprises","count":35},{"language":"hi","tag":"डिजिटल ID वॉलेट","count":35},{"language":"hi","tag":"उपयोगकर्ता और व्यवसाय सत्यापन","count":35},{"language":"id","tag":"Dompet ID Digital","count":35},{"language":"id","tag":"Verifikasi Pengguna dan Bisnis","count":35},{"language":"it","tag":"Wallet di identità digitale","count":35},{"language":"it","tag":"Verifiche di utenti e aziende","count":35},{"language":"ja","tag":"デジタルIDウォレット","count":35},{"language":"ja","tag":"ユーザーと企業の認証","count":35},{"language":"ko","tag":"디지털 신분증 지갑","count":35},{"language":"ko","tag":"사용자 인증 및 기업 확인","count":35},{"language":"pt-BR","tag":"Carteiras de identidade digital","count":35},{"language":"pt-BR","tag":"Verificações de usuários e empresas","count":35},{"language":"pt","tag":"Carteiras de identidade digital","count":35},{"language":"pt","tag":"Verificações de utilizadores e empresas","count":35},{"language":"ru","tag":"Цифровые ID-кошельки","count":35},{"language":"ru","tag":"Верификация пользователей и компаний","count":35},{"language":"zh","tag":"数字身份钱包","count":35},{"language":"zh","tag":"用户与企业验证","count":35},{"language":"ko","tag":"거래 모니터링","count":28}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-rbac-roles","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"style.css","href":"/_mintlify/custom/didit-0f962782/714dd91730ddd114/style.css"}],"page":{"pagePath":"sessions-api/share-session/import","slug":"/sessions-api/share-session/import","pageMetadata":{"title":"Import Shared Session API: Reusable KYC \u0026 KYB","sidebarTitle":"Import Shared Session","description":"POST /v3/session/import-shared/ to import a KYC or KYB session via a partner share token. Reusable identity, no re-verification, pay-per-use pricing.","keywords":["import shared session API","reusable KYC","reusable identity","partner KYC import","share token API","identity verification API","POST import-shared","cross-organization KYC","pay-per-call KYC","Didit API"],"openapi":"openapi-25.json POST /v3/session/import-shared/","href":"/sessions-api/share-session/import"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"POST /v3/session/import-shared/ to import a KYC or KYB session via a partner share token. Reusable identity, no re-verification, pay-per-use pricing.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];const __snippet_AGENT_PROMPT_LABELS_qsruim={en:{copy:`Copy`,copied:`Copied`,copyTitle:`Copy prompt to clipboard`,copiedTitle:`Copied!`,pasteInto:`Paste into`},es:{copy:`Copiar`,copied:`Copiado`,copyTitle:`Copiar el prompt al portapapeles`,copiedTitle:`¡Copiado!`,pasteInto:`Pegar en`},\"pt-BR\":{copy:`Copiar`,copied:`Copiado`,copyTitle:`Copiar o prompt para a área de transferência`,copiedTitle:`Copiado!`,pasteInto:`Colar em`},ja:{copy:`コピー`,copied:`コピーしました`,copyTitle:`プロンプトをクリップボードにコピー`,copiedTitle:`コピーしました`,pasteInto:`貼り付け先`},\"de\":{copy:`Kopieren`,copied:`Kopiert`,copyTitle:`Prompt in die Zwischenablage kopieren`,copiedTitle:`Kopiert!`,pasteInto:`Einfügen in`},\"fr\":{copy:`Copier`,copied:`Copié`,copyTitle:`Copier le prompt dans le presse-papiers`,copiedTitle:`Copié !`,pasteInto:`Coller dans`},\"it\":{copy:`Copia`,copied:`Copiato`,copyTitle:`Copia il prompt negli appunti`,copiedTitle:`Copiato!`,pasteInto:`Incolla in`},\"pt-PT\":{copy:`Copiar`,copied:`Copiado`,copyTitle:`Copiar o prompt para a área de transferência`,copiedTitle:`Copiado!`,pasteInto:`Colar em`},\"ca\":{copy:`Copia`,copied:`Copiat`,copyTitle:`Copia el prompt al porta-retalls`,copiedTitle:`Copiat!`,pasteInto:`Enganxa a`},\"id\":{copy:`Salin`,copied:`Disalin`,copyTitle:`Salin prompt ke papan klip`,copiedTitle:`Disalin!`,pasteInto:`Tempel ke`},\"ru\":{copy:`Копировать`,copied:`Скопировано`,copyTitle:`Скопировать промпт в буфер обмена`,copiedTitle:`Скопировано!`,pasteInto:`Вставьте в`},\"ko\":{copy:`복사`,copied:`복사됨`,copyTitle:`프롬프트를 클립보드에 복사`,copiedTitle:`복사됨!`,pasteInto:`붙여넣을 곳`},\"zh\":{copy:`复制`,copied:`已复制`,copyTitle:`将提示词复制到剪贴板`,copiedTitle:`已复制!`,pasteInto:`粘贴到`},\"ar\":{copy:`نسخ`,copied:`تم النسخ`,copyTitle:`نسخ الموجّه إلى الحافظة`,copiedTitle:`تم النسخ!`,pasteInto:`الصق في`},\"hi\":{copy:`कॉपी करें`,copied:`कॉपी हो गया`,copyTitle:`प्रॉम्प्ट को क्लिपबोर्ड पर कॉपी करें`,copiedTitle:`कॉपी हो गया!`,pasteInto:`यहाँ पेस्ट करें`}};const AgentPromptAccordion=({prompt,title=`AI Agent Integration Prompt`,lang=`en`})=>{const[copied,setCopied]=React.useState(false);const labels=__snippet_AGENT_PROMPT_LABELS_qsruim[lang]||__snippet_AGENT_PROMPT_LABELS_qsruim.en;const handleCopy=e=>{e.stopPropagation();if(!prompt)return;navigator.clipboard.writeText(prompt.trim()).then(()=>{setCopied(true);setTimeout(()=>setCopied(false),2e3)})};const agents=[`Claude Code`,`Codex`,`Cursor`,`Devin`,`Windsurf`,`GitHub Copilot`];return _jsxs(`div`,{className:`didit-agent-card`,children:[_jsxs(`div`,{className:`didit-agent-titlebar`,children:[_jsxs(`div`,{className:`didit-agent-dots`,\"aria-hidden\":`true`,children:[_jsx(`span`,{className:`didit-agent-dot didit-agent-dot-red`}),_jsx(`span`,{className:`didit-agent-dot didit-agent-dot-yellow`}),_jsx(`span`,{className:`didit-agent-dot didit-agent-dot-green`})]}),_jsx(`span`,{className:`didit-agent-filename`,children:title}),_jsx(`button`,{type:`button`,className:`didit-agent-copy ${copied?`didit-agent-copy-copied`:``}`,onClick:handleCopy,title:labels.copyTitle,\"aria-label\":copied?labels.copiedTitle:labels.copyTitle,children:copied?_jsxs(_Fragment,{children:[_jsx(`svg`,{width:`13`,height:`13`,viewBox:`0 0 16 16`,fill:`none`,children:_jsx(`path`,{d:`M3 8.5l3.5 3.5L13 4`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`})}),_jsx(`span`,{children:labels.copied})]}):_jsxs(_Fragment,{children:[_jsxs(`svg`,{width:`13`,height:`13`,viewBox:`0 0 16 16`,fill:`none`,children:[_jsx(`rect`,{x:`5`,y:`5`,width:`9`,height:`9`,rx:`1.5`,stroke:`currentColor`,strokeWidth:`1.5`}),_jsx(`path`,{d:`M11 5V3.5A1.5 1.5 0 0 0 9.5 2h-6A1.5 1.5 0 0 0 2 3.5v6A1.5 1.5 0 0 0 3.5 11H5`,stroke:`currentColor`,strokeWidth:`1.5`})]}),_jsx(`span`,{children:labels.copy})]})})]}),_jsx(`pre`,{className:`didit-agent-body`,children:_jsx(`code`,{children:prompt.trim()})}),_jsxs(`div`,{className:`didit-agent-footer`,children:[_jsx(`span`,{className:`didit-agent-footer-label`,children:labels.pasteInto}),_jsx(`div`,{className:`didit-agent-chips`,children:agents.map(name=>_jsx(`span`,{className:`didit-agent-chip`,children:name},name))})]})]})};function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,Heading,Tab,Table,Tabs,_MdxComponentBoundary}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Tab)_missingMdxReference(`Tab`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Tabs)_missingMdxReference(`Tabs`,true);if(!_MdxComponentBoundary)_missingMdxReference(`_MdxComponentBoundary`,true);return _jsxs(_Fragment,{children:[_jsx(_MdxComponentBoundary,{name:`AgentPromptAccordion`,children:_jsx(AgentPromptAccordion,{title:`Import Shared Session Prompt`,prompt:`Import a verification session shared by a partner application (Reusable KYC / KYB).\n\nEndpoint:\nPOST https://verification.didit.me/v3/session/import-shared/\n\nAuthentication:\nUse the x-api-key header with the receiving application's Didit API key. Privilege: write:sessions.\n\nRequest body:\n- share_token (string, required) — JWT minted by the partner via POST /v3/session/{id}/share/. Didit decodes it, reads the embedded session_kind, and clones the matching kind.\n- workflow_id (string, UUID, required) — Workflow in YOUR application to attach the imported session to. KYC token → pass a KYC workflow_id. KYB token → pass a KYB workflow_id.\n- vendor_data (string, optional) — Your stable identifier for the entity. Auto-creates a User or Business entity if it does not already exist.\n- trust_review (boolean, optional, default false) — false → imported session lands in \"In Review\" so your team can re-review. true → imported session preserves the original status (e.g. \"Approved\"). Use true only when you fully trust the sharing partner's decision.\n\ncurl example:\ncurl -X POST https://verification.didit.me/v3/session/import-shared/ \\\\\n-H \"x-api-key: \u003cRECEIVING_API_KEY>\" \\\\\n-H \"Content-Type: application/json\" \\\\\n-d '{\n\"share_token\": \"\u003cJWT_FROM_PARTNER>\",\n\"workflow_id\": \"\u003cYOUR_WORKFLOW_ID>\",\n\"vendor_data\": \"partner-user-42\",\n\"trust_review\": false\n}'\n\nResponse (201 Created):\n- session_id (UUID) — NEW UUID minted in your application.\n- session_kind (\"user\" | \"business\") — same as the original.\n- session_number — fresh sequence in your application.\n- status — original status (if trust_review=true) or \"In Review\" (if trust_review=false).\n- shared_from_session — pointer to the original session in the source application.\n- vendor_data, workflow_id — what you sent.\n- All cloned feature arrays: KYC tokens clone id_verifications + liveness_checks + face_matches + face + AML + location + POA + phone + email + database_validations + logs; KYB tokens clone registry_checks + key_people_checks + document_verifications + AML + phone + email + location + questionnaire + logs.\n\nBackward compatibility:\nTokens minted before the unified-sharing rollout (no session_kind field) default to \"user\" when decoded.\n\nIdempotency:\nImporting the same share_token twice into the same application is rejected with 403, for user and business sessions alike.\n\nFailure modes:\n- 400 - { \"share_token\": [\"Invalid share token.\"] } when the token is malformed or was not issued by Didit.\n- 400 - { \"share_token\": [\"Share token has expired.\"] } when its exp has passed.\n- 400 - { \"share_token\": [\"This token is not valid for this application.\"] } when the token was issued for another application.\n- 400 - { \"share_token\": [\"Original session does not exist.\"] } when the shared session was deleted.\n- 403 - { \"detail\": \"This session has already been shared with your application.\" } when the session was already imported into this application.\n- 404 - { \"detail\": \"Workflow does not exist for this application.\" } when workflow_id is not a workflow of your application.\n\nWhen to call:\n- Cross-organization Reusable KYC (bank → fintech, marketplace → payment provider, etc.).\n- Promoting a verified user from your sandbox application to your production application.\n- Group-company sharing across sibling applications.\n\nAfter import:\n- The new session works like any other session — fetch with GET /v3/session/{session_id}/decision/ (see /sessions-api/retrieve-session) and react to status / data webhooks.\n\nFor end-to-end Didit integration, paste in the full prompt at /integration/integration-prompt.`})}),`\n`,_jsx(Heading,{level:`2`,id:`kyc-and-kyb-support`,children:`KYC and KYB support`}),`\n`,_jsxs(_components.p,{children:[`Didit decodes the share token, reads the embedded `,_jsx(_components.code,{children:`session_kind`}),`, and clones the corresponding kind of session:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`session_kind: \"user\"`}),` — clones the user session plus its related identity, face, liveness, face-match, AML, location, POA, phone, email, database-validation, and log rows.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`session_kind: \"business\"`}),` — clones the business session plus its related registry check, key-people records, documents, AML screenings, phone, email, location, questionnaire, and log rows.`]}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`If the token predates the unified sharing rollout and has no `,_jsx(_components.code,{children:`session_kind`}),` field, Didit defaults to `,_jsx(_components.code,{children:`\"user\"`}),` for backward compatibility.`]}),`\n`,_jsx(Heading,{level:`2`,id:`what-gets-created`,children:`What gets created`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`A `,_jsx(_components.strong,{children:`new session`}),` of the same kind in your application with a fresh `,_jsx(_components.code,{children:`session_id`}),`, `,_jsx(_components.code,{children:`session_number`}),`, and `,_jsx(_components.code,{children:`session_url`}),`.`]}),`\n`,_jsxs(_components.li,{children:[`The new session’s `,_jsx(_components.code,{children:`shared_from_session`}),` field points at the original session in the source application.`]}),`\n`,_jsxs(_components.li,{children:[`The new session’s status is either the original status (`,_jsx(_components.code,{children:`trust_review: true`}),`) or `,_jsx(_components.code,{children:`IN_REVIEW`}),` (`,_jsx(_components.code,{children:`trust_review: false`}),`).`]}),`\n`,_jsxs(_components.li,{children:[`A new entity (User or Business) is auto-created for the `,_jsx(_components.code,{children:`vendor_data`}),` if one doesn’t exist.`]}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`examples`,children:`Examples`}),`\n`,_jsxs(Tabs,{children:[_jsxs(Tab,{title:`Import a User Verification (KYC) session`,id:`import-a-user-verification-kyc-session`,children:[_jsx(CodeBlock,{filename:``,numberOfLines:`9`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`9`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`curl`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -X`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` POST`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` https://verification.didit.me/v3/session/import-shared/`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -H`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"x-api-key: YOUR_API_KEY\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -H`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Content-Type: application/json\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -d`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` '{`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"share_token\": \"eyJhbGciOiJIUzI1NiJ9...\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"workflow_id\": \"your-kyc-workflow-id\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"vendor_data\": \"partner-user-42\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"trust_review\": false`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` }'`})}),`\n`]})})}),_jsx(_components.p,{children:_jsx(_components.strong,{children:`Response (201 Created):`})}),_jsx(CodeBlock,{filename:``,numberOfLines:`10`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`10`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"session_id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"new-uuid\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"session_kind\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"user\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"shared_from_session\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"original-uuid\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"status\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"In Review\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"vendor_data\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"partner-user-42\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"id_verifications\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [`}),_jsx(_components.span,{style:{color:`#82071E`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#F44747`,\"--shiki-dark-font-style\":`inherit`},children:`...`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`],`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"liveness_checks\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [`}),_jsx(_components.span,{style:{color:`#82071E`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#F44747`,\"--shiki-dark-font-style\":`inherit`},children:`...`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`],`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"...\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"...\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})})]}),_jsxs(Tab,{title:`Import a Business Verification (KYB) session`,id:`import-a-business-verification-kyb-session`,children:[_jsx(CodeBlock,{filename:``,numberOfLines:`9`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`9`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`curl`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -X`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` POST`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` https://verification.didit.me/v3/session/import-shared/`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -H`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"x-api-key: YOUR_API_KEY\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -H`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Content-Type: application/json\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -d`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` '{`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"share_token\": \"eyJhbGciOiJIUzI1NiJ9...\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"workflow_id\": \"your-kyb-workflow-id\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"vendor_data\": \"partner-biz-acme\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"trust_review\": true`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` }'`})}),`\n`]})})}),_jsx(_components.p,{children:_jsx(_components.strong,{children:`Response (201 Created):`})}),_jsx(CodeBlock,{filename:``,numberOfLines:`11`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`11`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"session_id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"new-uuid\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"session_kind\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"business\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"shared_from_session\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"original-uuid\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"status\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Approved\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"vendor_data\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"partner-biz-acme\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"registry_checks\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [`}),_jsx(_components.span,{style:{color:`#82071E`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#F44747`,\"--shiki-dark-font-style\":`inherit`},children:`...`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`],`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"key_people_checks\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [`}),_jsx(_components.span,{style:{color:`#82071E`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#F44747`,\"--shiki-dark-font-style\":`inherit`},children:`...`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`],`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"document_verifications\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [`}),_jsx(_components.span,{style:{color:`#82071E`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#F44747`,\"--shiki-dark-font-style\":`inherit`},children:`...`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`],`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"...\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"...\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})})]})]}),`\n`,_jsxs(Heading,{level:`2`,id:`trust_review-parameter`,children:[_jsx(_components.code,{children:`trust_review`}),` parameter`]}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Value`}),_jsx(_components.th,{children:`Effect`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`true`})}),_jsxs(_components.td,{children:[`The imported session preserves the original status (e.g. `,_jsx(_components.code,{children:`APPROVED`}),`). Use when you fully trust the sharing partner’s decision.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`false`})}),_jsxs(_components.td,{children:[`The imported session lands in `,_jsx(_components.code,{children:`IN_REVIEW`}),` so your team can re-review before acting. Safe default for external partners.`]})]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`errors`,children:`Errors`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Status`}),_jsx(_components.th,{children:`Reason`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:_jsx(_components.code,{children:`400`})}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`share_token`}),` is invalid, expired, issued for another application, or points to a session that was deleted. The message is under the `,_jsx(_components.code,{children:`share_token`}),` key.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:_jsx(_components.code,{children:`403`})}),_jsx(_components.td,{children:`The session has already been imported into your application.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:_jsx(_components.code,{children:`404`})}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`workflow_id`}),` is not a workflow of your application.`]})]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`idempotency`,children:`Idempotency`}),`\n`,_jsxs(_components.p,{children:[`Importing the same `,_jsx(_components.code,{children:`share_token`}),` twice into the same application is rejected with `,_jsx(_components.code,{children:`403`}),`, for user and business sessions alike.`]}),`\n`,_jsx(Heading,{level:`2`,id:`related`,children:`Related`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`/sessions-api/share-session/share`,children:`Share session`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`/core-technology/reusable-kyc/share-kyc-via-api`,children:`Reusable KYC guide`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`/sessions-api/overview`,children:`Sessions overview`})}),`\n`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{__snippet_AGENT_PROMPT_LABELS_qsruim,AgentPromptAccordion,default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Import Shared Session API: Reusable KYC \u0026 KYB","sidebarTitle":"Import Shared Session","description":"POST /v3/session/import-shared/ to import a KYC or KYB session via a partner share token. Reusable identity, no re-verification, pay-per-use pricing.","keywords":["import shared session API","reusable KYC","reusable identity","partner KYC import","share token API","identity verification API","POST import-shared","cross-organization KYC","pay-per-call KYC","Didit API"],"openapi":"openapi-25.json POST /v3/session/import-shared/","href":"/sessions-api/share-session/import"}}},"mdxSourceWithNoJs":null,"noJsSplices":[[171,4204,"undefined;const AgentPromptAccordion=()=>null;function _crea"]]},"mdxExtracts":{"tableOfContents":[{"title":"KYC and KYB support","slug":"kyc-and-kyb-support","depth":2,"children":[]},{"title":"What gets created","slug":"what-gets-created","depth":2,"children":[]},{"title":"Examples","slug":"examples","depth":2,"children":[]},{"title":"trust_review parameter","slug":"trust_review-parameter","depth":2,"children":[]},{"title":"Errors","slug":"errors","depth":2,"children":[]},{"title":"Idempotency","slug":"idempotency","depth":2,"children":[]},{"title":"Related","slug":"related","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":["/_mintlify/custom/didit-0f962782/75622e87c9213fdc/snippets/data/database-validation-coverage.js","/_mintlify/custom/didit-0f962782/4ac7d3c2a19a354d/database-validation-playground.js"],"openApiReferenceData":{"operation":{"summary":"Redeem a share token to clone a verification session into your application","description":"POST /v3/session/import-shared/ to import a KYC or KYB session via a partner share token. Reusable identity, no re-verification, pay-per-use pricing.","operationId":"post_v3_session_import_shared","x-didit-sdk":{"resource":"sessions","method":"import_shared","auth":"api_key","server":true},"tags":["Sessions"],"responses":{"201":"e45051ca-7cbf-426c-8f82-765c24a85fe1","400":"5246dcba-1d97-4544-a82b-716d2fcc3cf6","403":"3ec67817-e338-43ae-9169-837982a4e4e6","404":"4cabc25a-c5cc-487c-a6c2-9c40e4801ac8"},"requestBody":"010f6c59-04ca-465e-92d9-ac44bba31548","security":["bd6bfe85-d48e-442d-a164-024062db5cae"],"x-codeSamples":[{"lang":"curl","label":"curl","source":"curl -X POST \\\n https://verification.didit.me/v3/session/import-shared/ \\\n -H 'x-api-key: YOUR_API_KEY' \\\n -H 'Content-Type: application/json' \\\n -d '{\n \"share_token\": \"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...\",\n \"trust_review\": false,\n \"workflow_id\": \"9f9b1234-aaaa-bbbb-cccc-1234567890ab\",\n \"vendor_data\": \"user-1\"\n }'"},{"lang":"python","label":"Python","source":"from didit import Didit\n\n# Reads DIDIT_API_KEY.\nclient = Didit()\n\nresult = client.sessions.import_shared(\n share_token=\"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...\",\n trust_review=False,\n workflow_id=\"9f9b1234-aaaa-bbbb-cccc-1234567890ab\",\n vendor_data=\"user-1\",\n)\nprint(result)"},{"lang":"javascript","label":"Node.js","source":"import Didit from \"@didit-protocol/sdk-node\";\n\n// Reads DIDIT_API_KEY.\nconst didit = new Didit();\n\nconst result = await didit.sessions.importShared({\n share_token: \"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...\",\n trust_review: false,\n workflow_id: \"9f9b1234-aaaa-bbbb-cccc-1234567890ab\",\n vendor_data: \"user-1\",\n});\nconsole.log(result);"},{"lang":"go","label":"Go","source":"ctx := context.Background()\n// Reads DIDIT_API_KEY.\nclient := didit.NewClient()\n\nresult, err := client.Sessions.ImportShared(ctx, didit.SessionsImportSharedParams{\n\tShareToken: \"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...\",\n\tTrustReview: false,\n\tWorkflowID: \"9f9b1234-aaaa-bbbb-cccc-1234567890ab\",\n\tVendorData: didit.String(\"user-1\"),\n})\nif err != nil {\n\tlog.Fatal(err)\n}\nfmt.Printf(\"%+v\\n\", result)"},{"lang":"java","label":"Java","source":"import me.didit.Didit;\nimport me.didit.types.SessionsImportSharedParams;\n\n// Reads DIDIT_API_KEY.\nDidit client = new Didit();\n\nvar result = client.sessions().importShared(SessionsImportSharedParams.builder()\n .shareToken(\"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...\")\n .trustReview(false)\n .workflowId(\"9f9b1234-aaaa-bbbb-cccc-1234567890ab\")\n .vendorData(\"user-1\")\n .build());\nSystem.out.println(result);"},{"lang":"php","label":"PHP","source":"\u003c?php\n\nrequire 'vendor/autoload.php';\n\nuse Didit\\DiditClient;\n\n// Reads DIDIT_API_KEY.\n$didit = new DiditClient();\n\n$result = $didit->sessions->importShared([\n 'share_token' => 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...',\n 'trust_review' => false,\n 'workflow_id' => '9f9b1234-aaaa-bbbb-cccc-1234567890ab',\n 'vendor_data' => 'user-1',\n]);\nprint_r($result->toArray());"},{"lang":"ruby","label":"Ruby","source":"require \"didit\"\n\n# Reads DIDIT_API_KEY.\ndidit = Didit::Client.new\n\nresult = didit.sessions.import_shared(\n share_token: \"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...\",\n trust_review: false,\n workflow_id: \"9f9b1234-aaaa-bbbb-cccc-1234567890ab\",\n vendor_data: \"user-1\"\n)\nputs result.to_h"},{"lang":"csharp","label":".NET","source":"using System;\nusing System.Text.Json;\nusing Didit;\n\n// Reads DIDIT_API_KEY.\nusing var client = new DiditClient();\n\nvar result = await client.Sessions.ImportSharedAsync(new SessionsImportSharedParams\n{\n ShareToken = \"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...\",\n TrustReview = false,\n WorkflowId = \"9f9b1234-aaaa-bbbb-cccc-1234567890ab\",\n VendorData = \"user-1\",\n});\nConsole.WriteLine(JsonSerializer.Serialize(result));"}],"method":"post","type":"path","servers":["b0ba96d4-d4bf-4592-a911-47e2a156ceb7"],"path":"/v3/session/import-shared/","baseUrlOptions":["https://verification.didit.me"],"title":"Redeem a share token to clone a verification session into your application","codeSamples":[{"label":"curl","lang":"curl","source":"curl -X POST \\\n https://verification.didit.me/v3/session/import-shared/ \\\n -H 'x-api-key: YOUR_API_KEY' \\\n -H 'Content-Type: application/json' \\\n -d '{\n \"share_token\": \"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...\",\n \"trust_review\": false,\n \"workflow_id\": \"9f9b1234-aaaa-bbbb-cccc-1234567890ab\",\n \"vendor_data\": \"user-1\"\n }'"},{"label":"Python","lang":"python","source":"from didit import Didit\n\n# Reads DIDIT_API_KEY.\nclient = Didit()\n\nresult = client.sessions.import_shared(\n share_token=\"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...\",\n trust_review=False,\n workflow_id=\"9f9b1234-aaaa-bbbb-cccc-1234567890ab\",\n vendor_data=\"user-1\",\n)\nprint(result)"},{"label":"Node.js","lang":"javascript","source":"import Didit from \"@didit-protocol/sdk-node\";\n\n// Reads DIDIT_API_KEY.\nconst didit = new Didit();\n\nconst result = await didit.sessions.importShared({\n share_token: \"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...\",\n trust_review: false,\n workflow_id: \"9f9b1234-aaaa-bbbb-cccc-1234567890ab\",\n vendor_data: \"user-1\",\n});\nconsole.log(result);"},{"label":"Go","lang":"go","source":"ctx := context.Background()\n// Reads DIDIT_API_KEY.\nclient := didit.NewClient()\n\nresult, err := client.Sessions.ImportShared(ctx, didit.SessionsImportSharedParams{\n\tShareToken: \"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...\",\n\tTrustReview: false,\n\tWorkflowID: \"9f9b1234-aaaa-bbbb-cccc-1234567890ab\",\n\tVendorData: didit.String(\"user-1\"),\n})\nif err != nil {\n\tlog.Fatal(err)\n}\nfmt.Printf(\"%+v\\n\", result)"},{"label":"Java","lang":"java","source":"import me.didit.Didit;\nimport me.didit.types.SessionsImportSharedParams;\n\n// Reads DIDIT_API_KEY.\nDidit client = new Didit();\n\nvar result = client.sessions().importShared(SessionsImportSharedParams.builder()\n .shareToken(\"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...\")\n .trustReview(false)\n .workflowId(\"9f9b1234-aaaa-bbbb-cccc-1234567890ab\")\n .vendorData(\"user-1\")\n .build());\nSystem.out.println(result);"},{"label":"PHP","lang":"php","source":"\u003c?php\n\nrequire 'vendor/autoload.php';\n\nuse Didit\\DiditClient;\n\n// Reads DIDIT_API_KEY.\n$didit = new DiditClient();\n\n$result = $didit->sessions->importShared([\n 'share_token' => 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...',\n 'trust_review' => false,\n 'workflow_id' => '9f9b1234-aaaa-bbbb-cccc-1234567890ab',\n 'vendor_data' => 'user-1',\n]);\nprint_r($result->toArray());"},{"label":"Ruby","lang":"ruby","source":"require \"didit\"\n\n# Reads DIDIT_API_KEY.\ndidit = Didit::Client.new\n\nresult = didit.sessions.import_shared(\n share_token: \"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...\",\n trust_review: false,\n workflow_id: \"9f9b1234-aaaa-bbbb-cccc-1234567890ab\",\n vendor_data: \"user-1\"\n)\nputs result.to_h"},{"label":".NET","lang":"csharp","source":"using System;\nusing System.Text.Json;\nusing Didit;\n\n// Reads DIDIT_API_KEY.\nusing var client = new DiditClient();\n\nvar result = await client.Sessions.ImportSharedAsync(new SessionsImportSharedParams\n{\n ShareToken = \"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...\",\n TrustReview = false,\n WorkflowId = \"9f9b1234-aaaa-bbbb-cccc-1234567890ab\",\n VendorData = \"user-1\",\n});\nConsole.WriteLine(JsonSerializer.Serialize(result));"}],"requiredOnlyExamples":false,"requestExampleType":"codeSamples","responseExampleType":"generated","prefillPlaygroundWithExample":true,"prefillPlaygroundExamples":[{"body.share_token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...","body.trust_review":false,"body.workflow_id":"9f9b1234-aaaa-bbbb-cccc-1234567890ab","body.vendor_data.oneOf.0":"user-1"}]},"dependencies":{"parameters":{},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["share_token","trust_review","workflow_id"],"properties":{"share_token":{"type":"string","description":"JWT share token issued by [`POST /v3/session/{sessionId}/share/`](/sessions-api/share-session).","example":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...","isRequired":true,"uniqueKey":"share_token","typeLabel":"string"},"trust_review":{"type":"boolean","description":"If `true`, the cloned session keeps the source's final `status`. If `false`, it is forced into `In Review`.","example":false,"isRequired":true,"uniqueKey":"trust_review","typeLabel":"boolean"},"workflow_id":{"type":"string","format":"uuid","description":"UUID of a workflow in the calling application. Cross-application IDs are rejected with `404`.","example":"9f9b1234-aaaa-bbbb-cccc-1234567890ab","isRequired":true,"uniqueKey":"workflow_id","typeLabel":"string\u003cuuid>"},"vendor_data":{"oneOf":[{"type":"string","description":"Optional override for the cloned session's `vendor_data`.","example":"user-1","uniqueKey":"vendor_data.oneOf.0","typeLabel":"string"},{"type":"null","description":"Optional override for the cloned session's `vendor_data`.","example":"user-1","uniqueKey":"vendor_data.oneOf.1","typeLabel":"null"}],"uniqueKey":"vendor_data","typeLabel":"string | null"}},"uniqueKey":"","typeLabel":"object"},"example":{"share_token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...","trust_review":false,"workflow_id":"9f9b1234-aaaa-bbbb-cccc-1234567890ab","vendor_data":"user-1"},"examples":{"Example":{"title":"Example","value":{"share_token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...","trust_review":false,"workflow_id":"9f9b1234-aaaa-bbbb-cccc-1234567890ab","vendor_data":"user-1"}}},"exampleType":"examples"}},"exampleType":"examples"},"responses":{"e45051ca-7cbf-426c-8f82-765c24a85fe1":{"description":"Session cloned. The body is the V3 decision payload for both kinds, discriminated by `session_kind`: `\"user\"` (KYC) with list-based feature blocks such as `id_verifications`, `liveness_checks`, `aml_screenings`; `\"business\"` (KYB) with blocks like `registry_checks` and `key_people_checks`. Both include `shared_from_session` — the `session_id` of the original session in the source application. With `trust_review: false` the cloned session's `status` is forced to `In Review`.","content":{"application/json":{"schema":{"type":"object","properties":{"session_id":{"type":"string","format":"uuid","description":"The unique identifier of the session.","uniqueKey":"session_id","typeLabel":"string\u003cuuid>"},"session_kind":{"type":"string","enum":["user","business"],"description":"Discriminator indicating whether this is a User Verification (KYC) or Business Verification (KYB) session. When `user`, the KYC feature arrays (`id_verifications`, `nfc_verifications`, `liveness_checks`, `face_matches`, `poa_verifications`, `document_ai_documents`, `database_validations`, ...) apply and the business arrays are absent. When `business`, the payload instead carries `registry_checks`, `document_verifications`, `key_people_checks` plus the shared arrays (`aml_screenings`, `phone_verifications`, `email_verifications`, `ip_analyses`, `questionnaire_responses`). **Omitted when `include=events` is passed** — the events shape only exists for user sessions, so the discriminator is dropped from that variant.","uniqueKey":"session_kind","typeLabel":"enum\u003cstring>"},"shared_from_session":{"oneOf":[{"type":"string","format":"uuid","description":"For a session cloned with `POST /v3/session/import-shared/`: the `session_id` of the original session in the source application. `null` for every other session. Omitted when `include=events` is passed.","uniqueKey":"shared_from_session.oneOf.0","typeLabel":"string\u003cuuid>"},{"type":"null","format":"uuid","description":"For a session cloned with `POST /v3/session/import-shared/`: the `session_id` of the original session in the source application. `null` for every other session. Omitted when `include=events` is passed.","uniqueKey":"shared_from_session.oneOf.1","typeLabel":"null"}],"uniqueKey":"shared_from_session","typeLabel":"string\u003cuuid> | null"},"shared_from_session_number":{"oneOf":[{"type":"integer","description":"`session_number` of the source session when this session was imported from another application of your organization. `null` otherwise.","uniqueKey":"shared_from_session_number.oneOf.0","typeLabel":"integer"},{"type":"null","description":"`session_number` of the source session when this session was imported from another application of your organization. `null` otherwise.","uniqueKey":"shared_from_session_number.oneOf.1","typeLabel":"null"}],"uniqueKey":"shared_from_session_number","typeLabel":"integer | null"},"session_number":{"oneOf":[{"type":"integer","description":"The number of the session.","uniqueKey":"session_number.oneOf.0","typeLabel":"integer"},{"type":"null","description":"The number of the session.","uniqueKey":"session_number.oneOf.1","typeLabel":"null"}],"uniqueKey":"session_number","typeLabel":"integer | null"},"session_url":{"oneOf":[{"type":"string","format":"uri","description":"The URL of the session.","uniqueKey":"session_url.oneOf.0","typeLabel":"string\u003curi>"},{"type":"null","format":"uri","description":"The URL of the session.","uniqueKey":"session_url.oneOf.1","typeLabel":"null"}],"uniqueKey":"session_url","typeLabel":"string\u003curi> | null"},"status":{"type":"string","enum":["Not Started","In Progress","Awaiting User","In Review","Approved","Declined","Resubmitted","Expired","Kyc Expired","Abandoned"],"description":"Overall lifecycle status of the session — the rolled-up workflow result. Terminal values are `Approved`, `Declined`, `In Review`, `Expired`, `Kyc Expired`, and `Abandoned`; `Not Started`, `In Progress`, `Awaiting User`, and `Resubmitted` indicate the session is still moving through the workflow.","uniqueKey":"status","typeLabel":"enum\u003cstring>"},"status_override":{"oneOf":[{"type":"object","description":"Present when a reviewer set `status` by hand. `null` when the status is the automatic one. Use it to tell a manual approval from an automatic one.","properties":{"overridden_at":{"oneOf":[{"type":"string","format":"date-time","uniqueKey":"status_override.oneOf.0.overridden_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","uniqueKey":"status_override.oneOf.0.overridden_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"status_override.oneOf.0.overridden_at","typeLabel":"string\u003cdate-time> | null"},"automatic_status":{"oneOf":[{"type":"string","description":"The status the platform's own checks conclude.","uniqueKey":"status_override.oneOf.0.automatic_status.oneOf.0","typeLabel":"string"},{"type":"null","description":"The status the platform's own checks conclude.","uniqueKey":"status_override.oneOf.0.automatic_status.oneOf.1","typeLabel":"null"}],"uniqueKey":"status_override.oneOf.0.automatic_status","typeLabel":"string | null"}},"uniqueKey":"status_override.oneOf.0","typeLabel":"object"},{"type":"null","description":"Present when a reviewer set `status` by hand. `null` when the status is the automatic one. Use it to tell a manual approval from an automatic one.","properties":{"overridden_at":{"oneOf":[{"type":"string","format":"date-time"},{"type":"null","format":"date-time"}]},"automatic_status":{"oneOf":[{"type":"string","description":"The status the platform's own checks conclude."},{"type":"null","description":"The status the platform's own checks conclude."}]}},"uniqueKey":"status_override.oneOf.1","typeLabel":"null"}],"uniqueKey":"status_override","typeLabel":"object | null"},"decision_trace":{"type":"object","description":"How the status was reached: who set it and which warnings did.","properties":{"status":{"type":"string","description":"The session status.","uniqueKey":"decision_trace.status","typeLabel":"string"},"decided_by":{"oneOf":[{"type":"string","enum":["manual","automatic","investigator",null],"description":"Who set the status. `null` while the session is not decided.","uniqueKey":"decision_trace.decided_by.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["manual","automatic","investigator",null],"description":"Who set the status. `null` while the session is not decided.","uniqueKey":"decision_trace.decided_by.oneOf.1","typeLabel":"null"}],"uniqueKey":"decision_trace.decided_by","typeLabel":"enum\u003cstring> | null"},"decided_at":{"oneOf":[{"type":"string","format":"date-time","uniqueKey":"decision_trace.decided_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","uniqueKey":"decision_trace.decided_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"decision_trace.decided_at","typeLabel":"string\u003cdate-time> | null"},"automatic_status":{"oneOf":[{"type":"string","description":"What the platform's own checks conclude, which differs from `status` after a manual decision.","uniqueKey":"decision_trace.automatic_status.oneOf.0","typeLabel":"string"},{"type":"null","description":"What the platform's own checks conclude, which differs from `status` after a manual decision.","uniqueKey":"decision_trace.automatic_status.oneOf.1","typeLabel":"null"}],"uniqueKey":"decision_trace.automatic_status","typeLabel":"string | null"},"terminal_node_id":{"oneOf":[{"type":"string","description":"The workflow status node that ended the session, when one did.","uniqueKey":"decision_trace.terminal_node_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"The workflow status node that ended the session, when one did.","uniqueKey":"decision_trace.terminal_node_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"decision_trace.terminal_node_id","typeLabel":"string | null"},"actor":{"oneOf":[{"type":"object","description":"The reviewer behind a manual decision.","properties":{"user":{"oneOf":[{"type":"string","uniqueKey":"decision_trace.actor.oneOf.0.user.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"decision_trace.actor.oneOf.0.user.oneOf.1","typeLabel":"null"}],"uniqueKey":"decision_trace.actor.oneOf.0.user","typeLabel":"string | null"},"actor_type":{"oneOf":[{"type":"string","uniqueKey":"decision_trace.actor.oneOf.0.actor_type.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"decision_trace.actor.oneOf.0.actor_type.oneOf.1","typeLabel":"null"}],"uniqueKey":"decision_trace.actor.oneOf.0.actor_type","typeLabel":"string | null"}},"uniqueKey":"decision_trace.actor.oneOf.0","typeLabel":"object"},{"type":"null","description":"The reviewer behind a manual decision.","properties":{"user":{"oneOf":[{"type":"string"},{"type":"null"}]},"actor_type":{"oneOf":[{"type":"string"},{"type":"null"}]}},"uniqueKey":"decision_trace.actor.oneOf.1","typeLabel":"null"}],"uniqueKey":"decision_trace.actor","typeLabel":"object | null"},"warning_counts":{"type":"object","description":"Warnings per `log_type` (`error`, `warning`, `information`) and `total`.","additionalProperties":{"type":"integer","uniqueKey":"decision_trace.warning_counts.additionalProperties","typeLabel":"integer"},"uniqueKey":"decision_trace.warning_counts","typeLabel":"object"},"status_warnings":{"type":"array","description":"The warnings that set a `Declined` or `In Review` status.","items":{"type":"object","properties":{"risk":{"type":"string","uniqueKey":"decision_trace.status_warnings.items.[INDEX].risk","typeLabel":"string"},"feature":{"oneOf":[{"type":"string","uniqueKey":"decision_trace.status_warnings.items.[INDEX].feature.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"decision_trace.status_warnings.items.[INDEX].feature.oneOf.1","typeLabel":"null"}],"uniqueKey":"decision_trace.status_warnings.items.[INDEX].feature","typeLabel":"string | null"},"node_id":{"oneOf":[{"type":"string","uniqueKey":"decision_trace.status_warnings.items.[INDEX].node_id.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"decision_trace.status_warnings.items.[INDEX].node_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"decision_trace.status_warnings.items.[INDEX].node_id","typeLabel":"string | null"},"log_type":{"oneOf":[{"type":"string","uniqueKey":"decision_trace.status_warnings.items.[INDEX].log_type.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"decision_trace.status_warnings.items.[INDEX].log_type.oneOf.1","typeLabel":"null"}],"uniqueKey":"decision_trace.status_warnings.items.[INDEX].log_type","typeLabel":"string | null"},"check_status":{"oneOf":[{"type":"string","uniqueKey":"decision_trace.status_warnings.items.[INDEX].check_status.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"decision_trace.status_warnings.items.[INDEX].check_status.oneOf.1","typeLabel":"null"}],"uniqueKey":"decision_trace.status_warnings.items.[INDEX].check_status","typeLabel":"string | null"},"source":{"type":"string","description":"The payload list the warning came from, for example `id_verifications`.","uniqueKey":"decision_trace.status_warnings.items.[INDEX].source","typeLabel":"string"},"short_description":{"oneOf":[{"type":"string","uniqueKey":"decision_trace.status_warnings.items.[INDEX].short_description.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"decision_trace.status_warnings.items.[INDEX].short_description.oneOf.1","typeLabel":"null"}],"uniqueKey":"decision_trace.status_warnings.items.[INDEX].short_description","typeLabel":"string | null"}},"uniqueKey":"decision_trace.status_warnings.items.[INDEX]","typeLabel":"object"},"uniqueKey":"decision_trace.status_warnings","typeLabel":"object[]"}},"uniqueKey":"decision_trace","typeLabel":"object"},"linked_records":{"oneOf":[{"type":"object","description":"A summary of other records linked to the session. `null` when there is nothing to show, and for workflows that declare an age assurance standard.","properties":{"same_face":{"oneOf":[{"type":"object","description":"Other people whose face matched one of this session's face searches.","properties":{"count":{"type":"integer","uniqueKey":"linked_records.oneOf.0.same_face.oneOf.0.count","typeLabel":"integer"},"best_match":{"oneOf":[{"type":"object","properties":{"session_id":{"oneOf":[{"type":"string","format":"uuid","uniqueKey":"linked_records.oneOf.0.same_face.oneOf.0.best_match.oneOf.0.session_id.oneOf.0","typeLabel":"string\u003cuuid>"},{"type":"null","format":"uuid","uniqueKey":"linked_records.oneOf.0.same_face.oneOf.0.best_match.oneOf.0.session_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"linked_records.oneOf.0.same_face.oneOf.0.best_match.oneOf.0.session_id","typeLabel":"string\u003cuuid> | null"},"session_number":{"oneOf":[{"type":"integer","uniqueKey":"linked_records.oneOf.0.same_face.oneOf.0.best_match.oneOf.0.session_number.oneOf.0","typeLabel":"integer"},{"type":"null","uniqueKey":"linked_records.oneOf.0.same_face.oneOf.0.best_match.oneOf.0.session_number.oneOf.1","typeLabel":"null"}],"uniqueKey":"linked_records.oneOf.0.same_face.oneOf.0.best_match.oneOf.0.session_number","typeLabel":"integer | null"},"vendor_user_id":{"oneOf":[{"type":"string","format":"uuid","uniqueKey":"linked_records.oneOf.0.same_face.oneOf.0.best_match.oneOf.0.vendor_user_id.oneOf.0","typeLabel":"string\u003cuuid>"},{"type":"null","format":"uuid","uniqueKey":"linked_records.oneOf.0.same_face.oneOf.0.best_match.oneOf.0.vendor_user_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"linked_records.oneOf.0.same_face.oneOf.0.best_match.oneOf.0.vendor_user_id","typeLabel":"string\u003cuuid> | null"},"similarity_percentage":{"oneOf":[{"type":"number","uniqueKey":"linked_records.oneOf.0.same_face.oneOf.0.best_match.oneOf.0.similarity_percentage.oneOf.0","typeLabel":"number"},{"type":"null","uniqueKey":"linked_records.oneOf.0.same_face.oneOf.0.best_match.oneOf.0.similarity_percentage.oneOf.1","typeLabel":"null"}],"uniqueKey":"linked_records.oneOf.0.same_face.oneOf.0.best_match.oneOf.0.similarity_percentage","typeLabel":"number | null"}},"uniqueKey":"linked_records.oneOf.0.same_face.oneOf.0.best_match.oneOf.0","typeLabel":"object"},{"type":"null","properties":{"session_id":{"oneOf":[{"type":"string","format":"uuid"},{"type":"null","format":"uuid"}]},"session_number":{"oneOf":[{"type":"integer"},{"type":"null"}]},"vendor_user_id":{"oneOf":[{"type":"string","format":"uuid"},{"type":"null","format":"uuid"}]},"similarity_percentage":{"oneOf":[{"type":"number"},{"type":"null"}]}},"uniqueKey":"linked_records.oneOf.0.same_face.oneOf.0.best_match.oneOf.1","typeLabel":"null"}],"uniqueKey":"linked_records.oneOf.0.same_face.oneOf.0.best_match","typeLabel":"object | null"}},"uniqueKey":"linked_records.oneOf.0.same_face.oneOf.0","typeLabel":"object"},{"type":"null","description":"Other people whose face matched one of this session's face searches.","properties":{"count":{"type":"integer"},"best_match":{"oneOf":[{"type":"object","properties":{"session_id":{"oneOf":[{"type":"string","format":"uuid"},{"type":"null","format":"uuid"}]},"session_number":{"oneOf":[{"type":"integer"},{"type":"null"}]},"vendor_user_id":{"oneOf":[{"type":"string","format":"uuid"},{"type":"null","format":"uuid"}]},"similarity_percentage":{"oneOf":[{"type":"number"},{"type":"null"}]}}},{"type":"null","properties":{"session_id":{"oneOf":[{"type":"string","format":"uuid"},{"type":"null","format":"uuid"}]},"session_number":{"oneOf":[{"type":"integer"},{"type":"null"}]},"vendor_user_id":{"oneOf":[{"type":"string","format":"uuid"},{"type":"null","format":"uuid"}]},"similarity_percentage":{"oneOf":[{"type":"number"},{"type":"null"}]}}}]}},"uniqueKey":"linked_records.oneOf.0.same_face.oneOf.1","typeLabel":"null"}],"uniqueKey":"linked_records.oneOf.0.same_face","typeLabel":"object | null"},"earlier_verifications":{"oneOf":[{"type":"object","properties":{"count":{"type":"integer","uniqueKey":"linked_records.oneOf.0.earlier_verifications.oneOf.0.count","typeLabel":"integer"},"vendor_user_id":{"oneOf":[{"type":"string","format":"uuid","uniqueKey":"linked_records.oneOf.0.earlier_verifications.oneOf.0.vendor_user_id.oneOf.0","typeLabel":"string\u003cuuid>"},{"type":"null","format":"uuid","uniqueKey":"linked_records.oneOf.0.earlier_verifications.oneOf.0.vendor_user_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"linked_records.oneOf.0.earlier_verifications.oneOf.0.vendor_user_id","typeLabel":"string\u003cuuid> | null"}},"uniqueKey":"linked_records.oneOf.0.earlier_verifications.oneOf.0","typeLabel":"object"},{"type":"null","properties":{"count":{"type":"integer"},"vendor_user_id":{"oneOf":[{"type":"string","format":"uuid"},{"type":"null","format":"uuid"}]}},"uniqueKey":"linked_records.oneOf.0.earlier_verifications.oneOf.1","typeLabel":"null"}],"uniqueKey":"linked_records.oneOf.0.earlier_verifications","typeLabel":"object | null"},"networks":{"oneOf":[{"type":"object","properties":{"count":{"type":"integer","uniqueKey":"linked_records.oneOf.0.networks.oneOf.0.count","typeLabel":"integer"},"open":{"type":"integer","uniqueKey":"linked_records.oneOf.0.networks.oneOf.0.open","typeLabel":"integer"},"dismissed":{"type":"integer","uniqueKey":"linked_records.oneOf.0.networks.oneOf.0.dismissed","typeLabel":"integer"},"items":{"type":"array","items":{"type":"object","properties":{"network_id":{"type":"string","format":"uuid","uniqueKey":"linked_records.oneOf.0.networks.oneOf.0.\\items.items.[INDEX].network_id","typeLabel":"string\u003cuuid>"},"display_number":{"oneOf":[{"type":"integer","uniqueKey":"linked_records.oneOf.0.networks.oneOf.0.\\items.items.[INDEX].display_number.oneOf.0","typeLabel":"integer"},{"type":"null","uniqueKey":"linked_records.oneOf.0.networks.oneOf.0.\\items.items.[INDEX].display_number.oneOf.1","typeLabel":"null"}],"uniqueKey":"linked_records.oneOf.0.networks.oneOf.0.\\items.items.[INDEX].display_number","typeLabel":"integer | null"},"name":{"type":"string","uniqueKey":"linked_records.oneOf.0.networks.oneOf.0.\\items.items.[INDEX].name","typeLabel":"string"},"status":{"type":"string","uniqueKey":"linked_records.oneOf.0.networks.oneOf.0.\\items.items.[INDEX].status","typeLabel":"string"},"risk_score":{"oneOf":[{"type":"number","uniqueKey":"linked_records.oneOf.0.networks.oneOf.0.\\items.items.[INDEX].risk_score.oneOf.0","typeLabel":"number"},{"type":"null","uniqueKey":"linked_records.oneOf.0.networks.oneOf.0.\\items.items.[INDEX].risk_score.oneOf.1","typeLabel":"null"}],"uniqueKey":"linked_records.oneOf.0.networks.oneOf.0.\\items.items.[INDEX].risk_score","typeLabel":"number | null"}},"uniqueKey":"linked_records.oneOf.0.networks.oneOf.0.\\items.items.[INDEX]","typeLabel":"object"},"uniqueKey":"linked_records.oneOf.0.networks.oneOf.0.\\items","typeLabel":"object[]"}},"uniqueKey":"linked_records.oneOf.0.networks.oneOf.0","typeLabel":"object"},{"type":"null","properties":{"count":{"type":"integer"},"open":{"type":"integer"},"dismissed":{"type":"integer"},"items":{"type":"array","items":{"type":"object","properties":{"network_id":{"type":"string","format":"uuid"},"display_number":{"oneOf":[{"type":"integer"},{"type":"null"}]},"name":{"type":"string"},"status":{"type":"string"},"risk_score":{"oneOf":[{"type":"number"},{"type":"null"}]}}}}},"uniqueKey":"linked_records.oneOf.0.networks.oneOf.1","typeLabel":"null"}],"uniqueKey":"linked_records.oneOf.0.networks","typeLabel":"object | null"}},"uniqueKey":"linked_records.oneOf.0","typeLabel":"object"},{"type":"null","description":"A summary of other records linked to the session. `null` when there is nothing to show, and for workflows that declare an age assurance standard.","properties":{"same_face":{"oneOf":[{"type":"object","description":"Other people whose face matched one of this session's face searches.","properties":{"count":{"type":"integer"},"best_match":{"oneOf":[{"type":"object","properties":{"session_id":{"oneOf":[{"type":"string","format":"uuid"},{"type":"null","format":"uuid"}]},"session_number":{"oneOf":[{"type":"integer"},{"type":"null"}]},"vendor_user_id":{"oneOf":[{"type":"string","format":"uuid"},{"type":"null","format":"uuid"}]},"similarity_percentage":{"oneOf":[{"type":"number"},{"type":"null"}]}}},{"type":"null","properties":{"session_id":{"oneOf":[{"type":"string","format":"uuid"},{"type":"null","format":"uuid"}]},"session_number":{"oneOf":[{"type":"integer"},{"type":"null"}]},"vendor_user_id":{"oneOf":[{"type":"string","format":"uuid"},{"type":"null","format":"uuid"}]},"similarity_percentage":{"oneOf":[{"type":"number"},{"type":"null"}]}}}]}}},{"type":"null","description":"Other people whose face matched one of this session's face searches.","properties":{"count":{"type":"integer"},"best_match":{"oneOf":[{"type":"object","properties":{"session_id":{"oneOf":[{"type":"string","format":"uuid"},{"type":"null","format":"uuid"}]},"session_number":{"oneOf":[{"type":"integer"},{"type":"null"}]},"vendor_user_id":{"oneOf":[{"type":"string","format":"uuid"},{"type":"null","format":"uuid"}]},"similarity_percentage":{"oneOf":[{"type":"number"},{"type":"null"}]}}},{"type":"null","properties":{"session_id":{"oneOf":[{"type":"string","format":"uuid"},{"type":"null","format":"uuid"}]},"session_number":{"oneOf":[{"type":"integer"},{"type":"null"}]},"vendor_user_id":{"oneOf":[{"type":"string","format":"uuid"},{"type":"null","format":"uuid"}]},"similarity_percentage":{"oneOf":[{"type":"number"},{"type":"null"}]}}}]}}}]},"earlier_verifications":{"oneOf":[{"type":"object","properties":{"count":{"type":"integer"},"vendor_user_id":{"oneOf":[{"type":"string","format":"uuid"},{"type":"null","format":"uuid"}]}}},{"type":"null","properties":{"count":{"type":"integer"},"vendor_user_id":{"oneOf":[{"type":"string","format":"uuid"},{"type":"null","format":"uuid"}]}}}]},"networks":{"oneOf":[{"type":"object","properties":{"count":{"type":"integer"},"open":{"type":"integer"},"dismissed":{"type":"integer"},"items":{"type":"array","items":{"type":"object","properties":{"network_id":{"type":"string","format":"uuid"},"display_number":{"oneOf":[{"type":"integer"},{"type":"null"}]},"name":{"type":"string"},"status":{"type":"string"},"risk_score":{"oneOf":[{"type":"number"},{"type":"null"}]}}}}}},{"type":"null","properties":{"count":{"type":"integer"},"open":{"type":"integer"},"dismissed":{"type":"integer"},"items":{"type":"array","items":{"type":"object","properties":{"network_id":{"type":"string","format":"uuid"},"display_number":{"oneOf":[{"type":"integer"},{"type":"null"}]},"name":{"type":"string"},"status":{"type":"string"},"risk_score":{"oneOf":[{"type":"number"},{"type":"null"}]}}}}}}]}},"uniqueKey":"linked_records.oneOf.1","typeLabel":"null"}],"uniqueKey":"linked_records","typeLabel":"object | null"},"workflow_id":{"oneOf":[{"type":"string","format":"uuid","description":"Stable identifier of the workflow group that produced this session. Workflows are versioned — this value identifies the workflow itself, not the specific version.","uniqueKey":"workflow_id.oneOf.0","typeLabel":"string\u003cuuid>"},{"type":"null","format":"uuid","description":"Stable identifier of the workflow group that produced this session. Workflows are versioned — this value identifies the workflow itself, not the specific version.","uniqueKey":"workflow_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"workflow_id","typeLabel":"string\u003cuuid> | null"},"features":{"type":"array","items":{"type":"string","description":"The feature of the session.","uniqueKey":"features.items.[INDEX]","typeLabel":"string"},"description":"List of verification features configured for this session, as display names: `ID_VERIFICATION`, `NFC`, `LIVENESS`, `FACE_MATCH`, `POA`, `PHONE`, `EMAIL_VERIFICATION`, `AML`, `IP_ANALYSIS`, `DATABASE_VALIDATION`, `QUESTIONNAIRE`, `AGE_ESTIMATION`, `FACE_SEARCH`, `GEOLOCATION` (Location verification) (Business Verification sessions use the KYB feature set: `KYB_REGISTRY`, `KYB_DOCUMENTS`, `KYB_KEY_PEOPLE`, `AML`, `PHONE`, `EMAIL_VERIFICATION`, `IP_ANALYSIS`, `QUESTIONNAIRE`). With `include=events` each entry becomes an object `{feature, node_id}` instead of a plain string, and the email feature is renamed: it appears as `EMAIL` in events mode instead of the `EMAIL_VERIFICATION` used here.","uniqueKey":"features","typeLabel":"string[]"},"vendor_data":{"oneOf":[{"type":"string","description":"The vendor data of the session.","uniqueKey":"vendor_data.oneOf.0","typeLabel":"string"},{"type":"null","description":"The vendor data of the session.","uniqueKey":"vendor_data.oneOf.1","typeLabel":"null"}],"uniqueKey":"vendor_data","typeLabel":"string | null"},"metadata":{"oneOf":[{"type":"object","description":"The metadata of the session.","uniqueKey":"metadata.oneOf.0","typeLabel":"object"},{"type":"null","description":"The metadata of the session.","uniqueKey":"metadata.oneOf.1","typeLabel":"null"}],"uniqueKey":"metadata","typeLabel":"object | null"},"expected_details":{"oneOf":[{"type":"object","description":"Expected details supplied at session creation — used for cross-validation against extracted data (KYC) or to pre-fill the company registry search (KYB). Echoes back exactly the keys that were provided; `null` when none were supplied. KYC sessions carry the person fields; Business (KYB) sessions carry `company_name`, `registry_country` and `registration_number`.","properties":{"first_name":{"type":"string","description":"User's first name. For example, `John`.","uniqueKey":"expected_details.oneOf.0.first_name","typeLabel":"string"},"last_name":{"type":"string","description":"User's last name. For example, `Doe`.","uniqueKey":"expected_details.oneOf.0.last_name","typeLabel":"string"},"date_of_birth":{"type":"string","format":"date","description":"User's date of birth with format: YYYY-MM-DD. For example, `1990-05-15`.","uniqueKey":"expected_details.oneOf.0.date_of_birth","typeLabel":"string\u003cdate>"},"gender":{"oneOf":[{"type":"string","enum":["M","F"],"default":null,"description":"User's gender. Must be either 'M', 'F', or null.","uniqueKey":"expected_details.oneOf.0.gender.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["M","F"],"default":null,"description":"User's gender. Must be either 'M', 'F', or null.","uniqueKey":"expected_details.oneOf.0.gender.oneOf.1","typeLabel":"null"}],"uniqueKey":"expected_details.oneOf.0.gender","typeLabel":"enum\u003cstring> | null"},"nationality":{"type":"string","description":"ISO 3166-1 alpha-3 country code representing the applicant's country of origin. For example, `USA`.","uniqueKey":"expected_details.oneOf.0.nationality","typeLabel":"string"},"country":{"type":"string","description":"ISO 3166-1 alpha-3 country code representing the country of the Proof of Address document, or the country of the applicant's ID document, which may differ from nationality. For example, `GBR`.","uniqueKey":"expected_details.oneOf.0.country","typeLabel":"string"},"address":{"type":"string","description":"The address in a human readable format, including as much information as possible. For example, `123 Main St, San Francisco, CA 94105, USA`.","uniqueKey":"expected_details.oneOf.0.address","typeLabel":"string"},"identification_number":{"type":"string","description":"The user's document number, personal number, or tax number. For example, `123456789`.","uniqueKey":"expected_details.oneOf.0.identification_number","typeLabel":"string"},"ip_address":{"type":"string","format":"ipv4","description":"Expected IP address for the session. If the actual IP address differs from this value, a warning will be logged. For example, `192.168.1.100`.","uniqueKey":"expected_details.oneOf.0.ip_address","typeLabel":"string\u003cipv4>"},"expected_document_types":{"type":"array","description":"Document types the ID verification step was restricted to at session creation. Empty/unset means no restriction. Codes: `P` (passport), `ID` (national ID), `DL` (driver's license), `RP` (residence permit), `HIC` (health insurance card), `TC` (tax card), `SSC` (social security card).","items":{"type":"string","enum":["P","ID","DL","RP","HIC","TC","SSC"],"uniqueKey":"expected_details.oneOf.0.expected_document_types.items.[INDEX]","typeLabel":"enum\u003cstring>"},"uniqueKey":"expected_details.oneOf.0.expected_document_types","typeLabel":"enum\u003cstring>[]"},"id_country":{"oneOf":[{"type":"string","description":"Expected ID-document issuing country (ISO 3166-1 alpha-3), when restricted at creation time.","example":"ESP","uniqueKey":"expected_details.oneOf.0.id_country.oneOf.0","typeLabel":"string"},{"type":"null","description":"Expected ID-document issuing country (ISO 3166-1 alpha-3), when restricted at creation time.","example":"ESP","uniqueKey":"expected_details.oneOf.0.id_country.oneOf.1","typeLabel":"null"}],"uniqueKey":"expected_details.oneOf.0.id_country","typeLabel":"string | null"},"poa_country":{"oneOf":[{"type":"string","description":"Expected Proof of Address document country (ISO 3166-1 alpha-3), when restricted at creation time.","example":"ESP","uniqueKey":"expected_details.oneOf.0.poa_country.oneOf.0","typeLabel":"string"},{"type":"null","description":"Expected Proof of Address document country (ISO 3166-1 alpha-3), when restricted at creation time.","example":"ESP","uniqueKey":"expected_details.oneOf.0.poa_country.oneOf.1","typeLabel":"null"}],"uniqueKey":"expected_details.oneOf.0.poa_country","typeLabel":"string | null"},"company_name":{"type":"string","description":"Expected legal name of the business. Business (KYB) sessions only.","uniqueKey":"expected_details.oneOf.0.company_name","typeLabel":"string"},"registry_country":{"type":"string","description":"Expected registry country as `XX` or `XX-YY` (ISO 3166-1 alpha-2, optionally with an ISO 3166-2 subdivision for state-level registries, e.g. `US-CA`). Business (KYB) sessions only.","uniqueKey":"expected_details.oneOf.0.registry_country","typeLabel":"string"},"registration_number":{"type":"string","description":"Expected company registration number. Business (KYB) sessions only.","uniqueKey":"expected_details.oneOf.0.registration_number","typeLabel":"string"}},"uniqueKey":"expected_details.oneOf.0","typeLabel":"object"},{"type":"null","description":"Expected details supplied at session creation — used for cross-validation against extracted data (KYC) or to pre-fill the company registry search (KYB). Echoes back exactly the keys that were provided; `null` when none were supplied. KYC sessions carry the person fields; Business (KYB) sessions carry `company_name`, `registry_country` and `registration_number`.","properties":{"first_name":{"type":"string","description":"User's first name. For example, `John`."},"last_name":{"type":"string","description":"User's last name. For example, `Doe`."},"date_of_birth":{"type":"string","format":"date","description":"User's date of birth with format: YYYY-MM-DD. For example, `1990-05-15`."},"gender":{"oneOf":[{"type":"string","enum":["M","F"],"default":null,"description":"User's gender. Must be either 'M', 'F', or null."},{"type":"null","enum":["M","F"],"default":null,"description":"User's gender. Must be either 'M', 'F', or null."}]},"nationality":{"type":"string","description":"ISO 3166-1 alpha-3 country code representing the applicant's country of origin. For example, `USA`."},"country":{"type":"string","description":"ISO 3166-1 alpha-3 country code representing the country of the Proof of Address document, or the country of the applicant's ID document, which may differ from nationality. For example, `GBR`."},"address":{"type":"string","description":"The address in a human readable format, including as much information as possible. For example, `123 Main St, San Francisco, CA 94105, USA`."},"identification_number":{"type":"string","description":"The user's document number, personal number, or tax number. For example, `123456789`."},"ip_address":{"type":"string","format":"ipv4","description":"Expected IP address for the session. If the actual IP address differs from this value, a warning will be logged. For example, `192.168.1.100`."},"expected_document_types":{"type":"array","description":"Document types the ID verification step was restricted to at session creation. Empty/unset means no restriction. Codes: `P` (passport), `ID` (national ID), `DL` (driver's license), `RP` (residence permit), `HIC` (health insurance card), `TC` (tax card), `SSC` (social security card).","items":{"type":"string","enum":["P","ID","DL","RP","HIC","TC","SSC"]}},"id_country":{"oneOf":[{"type":"string","description":"Expected ID-document issuing country (ISO 3166-1 alpha-3), when restricted at creation time.","example":"ESP"},{"type":"null","description":"Expected ID-document issuing country (ISO 3166-1 alpha-3), when restricted at creation time.","example":"ESP"}]},"poa_country":{"oneOf":[{"type":"string","description":"Expected Proof of Address document country (ISO 3166-1 alpha-3), when restricted at creation time.","example":"ESP"},{"type":"null","description":"Expected Proof of Address document country (ISO 3166-1 alpha-3), when restricted at creation time.","example":"ESP"}]},"company_name":{"type":"string","description":"Expected legal name of the business. Business (KYB) sessions only."},"registry_country":{"type":"string","description":"Expected registry country as `XX` or `XX-YY` (ISO 3166-1 alpha-2, optionally with an ISO 3166-2 subdivision for state-level registries, e.g. `US-CA`). Business (KYB) sessions only."},"registration_number":{"type":"string","description":"Expected company registration number. Business (KYB) sessions only."}},"uniqueKey":"expected_details.oneOf.1","typeLabel":"null"}],"uniqueKey":"expected_details","typeLabel":"object | null"},"contact_details":{"oneOf":[{"type":"object","description":"Contact details supplied when the session was created (used for notification emails, prefilled phone/email verification, and communication language). `null` when neither an email nor a phone number was provided.","properties":{"email":{"type":"string","description":"Email address of the user (e.g., \"john.doe@example.com\") that will be used during the Email Verification step. If not provided, the user must provide it during the verification flow.","uniqueKey":"contact_details.oneOf.0.email","typeLabel":"string"},"email_lang":{"type":"string","description":"Language code (ISO 639-1) for email notifications. Controls the language of all email communications (e.g., \"en\", \"es\", \"fr\").","uniqueKey":"contact_details.oneOf.0.email_lang","typeLabel":"string"},"send_notification_emails":{"type":"boolean","default":false,"description":"If true and an email is provided, Didit sends the initial \"Verify your identity\" email asynchronously when the User Verification (KYC) or Business Verification (KYB) session is created. Didit also sends verification status notifications for sessions requiring manual review to the provided email address.","uniqueKey":"contact_details.oneOf.0.send_notification_emails","typeLabel":"boolean"},"phone":{"oneOf":[{"type":"string","description":"Phone number of the user in E.164 format if available (e.g., +14155552671). `null` when only an email was supplied at session creation. Note: This field returns the original phone number provided during session creation. If the number was invalid, it may not be in E.164 format.","uniqueKey":"contact_details.oneOf.0.phone.oneOf.0","typeLabel":"string"},{"type":"null","description":"Phone number of the user in E.164 format if available (e.g., +14155552671). `null` when only an email was supplied at session creation. Note: This field returns the original phone number provided during session creation. If the number was invalid, it may not be in E.164 format.","uniqueKey":"contact_details.oneOf.0.phone.oneOf.1","typeLabel":"null"}],"uniqueKey":"contact_details.oneOf.0.phone","typeLabel":"string | null"}},"uniqueKey":"contact_details.oneOf.0","typeLabel":"object"},{"type":"null","description":"Contact details supplied when the session was created (used for notification emails, prefilled phone/email verification, and communication language). `null` when neither an email nor a phone number was provided.","properties":{"email":{"type":"string","description":"Email address of the user (e.g., \"john.doe@example.com\") that will be used during the Email Verification step. If not provided, the user must provide it during the verification flow."},"email_lang":{"type":"string","description":"Language code (ISO 639-1) for email notifications. Controls the language of all email communications (e.g., \"en\", \"es\", \"fr\")."},"send_notification_emails":{"type":"boolean","default":false,"description":"If true and an email is provided, Didit sends the initial \"Verify your identity\" email asynchronously when the User Verification (KYC) or Business Verification (KYB) session is created. Didit also sends verification status notifications for sessions requiring manual review to the provided email address."},"phone":{"oneOf":[{"type":"string","description":"Phone number of the user in E.164 format if available (e.g., +14155552671). `null` when only an email was supplied at session creation. Note: This field returns the original phone number provided during session creation. If the number was invalid, it may not be in E.164 format."},{"type":"null","description":"Phone number of the user in E.164 format if available (e.g., +14155552671). `null` when only an email was supplied at session creation. Note: This field returns the original phone number provided during session creation. If the number was invalid, it may not be in E.164 format."}]}},"uniqueKey":"contact_details.oneOf.1","typeLabel":"null"}],"uniqueKey":"contact_details","typeLabel":"object | null"},"callback":{"oneOf":[{"type":"string","format":"uri","description":"The callback URL of the session.","uniqueKey":"callback.oneOf.0","typeLabel":"string\u003curi>"},{"type":"null","format":"uri","description":"The callback URL of the session.","uniqueKey":"callback.oneOf.1","typeLabel":"null"}],"uniqueKey":"callback","typeLabel":"string\u003curi> | null"},"id_verifications":{"oneOf":[{"type":"array","description":"**Array of ID verification (OCR) reports** produced by ID-document steps in the workflow graph. Always a JSON array — read `id_verifications[0]` and iterate if your workflow can run more than one ID check (for example a primary check plus a step-up). `null` until at least one ID step has produced data. Each item is the full report, including `node_id`, feature-level `status`, extracted document fields, image URLs, quality scores, MRZ, address parsing, cross-session matches, and `warnings[]`.","items":{"type":"object","description":"One ID verification report - the full report for a single ID Verification step. `verification_method` says which of the three methods produced it (document capture, non-doc lookup or wallet sign-in) and the method-specific evidence block is populated accordingly.","properties":{"node_id":{"type":"string","description":"Workflow graph node id of the OCR step that produced this report.","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].node_id","typeLabel":"string"},"verification_method":{"type":"string","enum":["document","id_lookup","wallet"],"description":"Which ID Verification method produced this report. `document` - the user photographed a physical ID (the default, and the value on every session created before the other methods existed). `id_lookup` - the user typed their national ID number and it was checked against a government register or another authoritative source for that country (`id_lookup.source` names which). `wallet` - the user signed in with a government or bank digital identity.","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].verification_method","typeLabel":"enum\u003cstring>"},"assurance":{"type":"string","enum":["documentary","data_match","cryptographic"],"description":"Assurance tier derived from `verification_method`: `documentary` for a document that was captured and checked, `data_match` for details that matched a record held by the source queried, `cryptographic` for attributes an identity provider authenticated and signed.","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].assurance","typeLabel":"enum\u003cstring>"},"wallet_provider":{"oneOf":[{"type":"string","description":"Catalog wallet id when `verification_method` is `wallet` (`mitid`, `bankid_se`, `itsme`, ...). `null` otherwise.","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].wallet_provider.oneOf.0","typeLabel":"string"},{"type":"null","description":"Catalog wallet id when `verification_method` is `wallet` (`mitid`, `bankid_se`, `itsme`, ...). `null` otherwise.","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].wallet_provider.oneOf.1","typeLabel":"null"}],"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].wallet_provider","typeLabel":"string | null"},"fallback_from":{"oneOf":[{"type":"object","description":"Why a non-document method did not end the ID step. Set when a lookup or a wallet sign-in failed: on the document verification the user continued with when the country's fallback switch was `fallback_to_document` (`action` is `fallback_to_document`), or on the declined report when it was `decline`. `null` otherwise.","properties":{"method":{"type":"string","enum":["id_lookup","wallet"],"description":"The method that failed.","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].fallback_from.oneOf.0.method","typeLabel":"enum\u003cstring>"},"reason":{"type":"string","description":"The outcome that ended it, e.g. `no_match`, `provider_error`, `cancelled`, `timeout`.","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].fallback_from.oneOf.0.reason","typeLabel":"string"},"action":{"type":"string","enum":["fallback_to_document","decline"],"description":"The configured action that was taken: `fallback_to_document` or `decline`.","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].fallback_from.oneOf.0.action","typeLabel":"enum\u003cstring>"}},"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].fallback_from.oneOf.0","typeLabel":"object"},{"type":"null","description":"Why a non-document method did not end the ID step. Set when a lookup or a wallet sign-in failed: on the document verification the user continued with when the country's fallback switch was `fallback_to_document` (`action` is `fallback_to_document`), or on the declined report when it was `decline`. `null` otherwise.","properties":{"method":{"type":"string","enum":["id_lookup","wallet"],"description":"The method that failed."},"reason":{"type":"string","description":"The outcome that ended it, e.g. `no_match`, `provider_error`, `cancelled`, `timeout`."},"action":{"type":"string","enum":["fallback_to_document","decline"],"description":"The configured action that was taken: `fallback_to_document` or `decline`."}},"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].fallback_from.oneOf.1","typeLabel":"null"}],"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].fallback_from","typeLabel":"object | null"},"id_lookup":{"oneOf":[{"type":"object","description":"Registry evidence. Present only when `verification_method` is `id_lookup`; `null` otherwise.","properties":{"source":{"type":"string","description":"Customer-facing name of the source queried, e.g. `Department of Home Affairs` (a government register) or `UK credit bureau and financial services records` (not a government register). This is the only statement of provenance for the lookup; do not assume a government source.","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].id_lookup.oneOf.0.source","typeLabel":"string"},"checked_at":{"oneOf":[{"type":"string","format":"date-time","description":"When the register answered.","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].id_lookup.oneOf.0.checked_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","description":"When the register answered.","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].id_lookup.oneOf.0.checked_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].id_lookup.oneOf.0.checked_at","typeLabel":"string\u003cdate-time> | null"},"attempts":{"type":"integer","description":"1-based attempt number this report came from.","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].id_lookup.oneOf.0.attempts","typeLabel":"integer"},"max_attempts":{"type":"integer","description":"Attempt budget configured for the country (1 to 5, default 1).","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].id_lookup.oneOf.0.max_attempts","typeLabel":"integer"},"outcome":{"oneOf":[{"type":"string","enum":["match","partial_match","no_match","provider_error","format_rejected"],"description":"What the register answered. Only `match`, `partial_match` and `no_match` count against the attempt budget and bill.","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].id_lookup.oneOf.0.outcome.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["match","partial_match","no_match","provider_error","format_rejected"],"description":"What the register answered. Only `match`, `partial_match` and `no_match` count against the attempt budget and bill.","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].id_lookup.oneOf.0.outcome.oneOf.1","typeLabel":"null"}],"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].id_lookup.oneOf.0.outcome","typeLabel":"enum\u003cstring> | null"},"comparison":{"type":"array","description":"One row per comparable field the source answered on, plus one row per source error. Comparison rows use the normalised field names below rather than the country's request field keys, because several request fields (first and last name, or any of the identifier aliases) collapse into a single comparison. A source that failed appends a row with `field: \"provider\"` and `result: \"error\"`, so read `result` before treating a row as a field verdict.","items":{"type":"object","required":["field","label","provided","record","result"],"properties":{"field":{"type":"string","enum":["identification_number","full_name","date_of_birth","address","provider"],"description":"Normalised comparison field. `provider` is not a user field: it marks a source error row.","isRequired":true,"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].id_lookup.oneOf.0.comparison.items.[INDEX].field","typeLabel":"enum\u003cstring>"},"label":{"type":"string","description":"Display label for the row, e.g. `ID number`, `Full name`, `Provider`.","isRequired":true,"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].id_lookup.oneOf.0.comparison.items.[INDEX].label","typeLabel":"string"},"provided":{"oneOf":[{"type":"string","description":"What the user typed. `null` on a `provider` error row.","isRequired":true,"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].id_lookup.oneOf.0.comparison.items.[INDEX].provided.oneOf.0","typeLabel":"string"},{"type":"null","description":"What the user typed. `null` on a `provider` error row.","isRequired":true,"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].id_lookup.oneOf.0.comparison.items.[INDEX].provided.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].id_lookup.oneOf.0.comparison.items.[INDEX].provided","typeLabel":"string | null"},"record":{"oneOf":[{"type":"string","description":"What the source held. On a `provider` error row this carries the error message instead.","isRequired":true,"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].id_lookup.oneOf.0.comparison.items.[INDEX].record.oneOf.0","typeLabel":"string"},{"type":"null","description":"What the source held. On a `provider` error row this carries the error message instead.","isRequired":true,"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].id_lookup.oneOf.0.comparison.items.[INDEX].record.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].id_lookup.oneOf.0.comparison.items.[INDEX].record","typeLabel":"string | null"},"result":{"type":"string","enum":["match","partial","no_match","error"],"description":"Per-field comparison result. `error` appears only on a `provider` row and means that source did not answer; treat it as evidence about the query, never as a field mismatch.","isRequired":true,"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].id_lookup.oneOf.0.comparison.items.[INDEX].result","typeLabel":"enum\u003cstring>"}},"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].id_lookup.oneOf.0.comparison.items.[INDEX]","typeLabel":"object"},"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].id_lookup.oneOf.0.comparison","typeLabel":"object[]"},"registry_portrait":{"oneOf":[{"type":"string","format":"uri","description":"Short-lived presigned URL to the portrait the source returned. Only the four government registers that return one (South Africa, Nigeria, Argentina, Panama).","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].id_lookup.oneOf.0.registry_portrait.oneOf.0","typeLabel":"string\u003curi>"},{"type":"null","format":"uri","description":"Short-lived presigned URL to the portrait the source returned. Only the four government registers that return one (South Africa, Nigeria, Argentina, Panama).","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].id_lookup.oneOf.0.registry_portrait.oneOf.1","typeLabel":"null"}],"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].id_lookup.oneOf.0.registry_portrait","typeLabel":"string\u003curi> | null"},"face_match_score":{"oneOf":[{"type":"number","description":"Selfie against the registry portrait, 0-100. Only where the register returns a portrait.","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].id_lookup.oneOf.0.face_match_score.oneOf.0","typeLabel":"number"},{"type":"null","description":"Selfie against the registry portrait, 0-100. Only where the register returns a portrait.","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].id_lookup.oneOf.0.face_match_score.oneOf.1","typeLabel":"null"}],"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].id_lookup.oneOf.0.face_match_score","typeLabel":"number | null"}},"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].id_lookup.oneOf.0","typeLabel":"object"},{"type":"null","description":"Registry evidence. Present only when `verification_method` is `id_lookup`; `null` otherwise.","properties":{"source":{"type":"string","description":"Customer-facing name of the source queried, e.g. `Department of Home Affairs` (a government register) or `UK credit bureau and financial services records` (not a government register). This is the only statement of provenance for the lookup; do not assume a government source."},"checked_at":{"oneOf":[{"type":"string","format":"date-time","description":"When the register answered."},{"type":"null","format":"date-time","description":"When the register answered."}]},"attempts":{"type":"integer","description":"1-based attempt number this report came from."},"max_attempts":{"type":"integer","description":"Attempt budget configured for the country (1 to 5, default 1)."},"outcome":{"oneOf":[{"type":"string","enum":["match","partial_match","no_match","provider_error","format_rejected"],"description":"What the register answered. Only `match`, `partial_match` and `no_match` count against the attempt budget and bill."},{"type":"null","enum":["match","partial_match","no_match","provider_error","format_rejected"],"description":"What the register answered. Only `match`, `partial_match` and `no_match` count against the attempt budget and bill."}]},"comparison":{"type":"array","description":"One row per comparable field the source answered on, plus one row per source error. Comparison rows use the normalised field names below rather than the country's request field keys, because several request fields (first and last name, or any of the identifier aliases) collapse into a single comparison. A source that failed appends a row with `field: \"provider\"` and `result: \"error\"`, so read `result` before treating a row as a field verdict.","items":{"type":"object","required":["field","label","provided","record","result"],"properties":{"field":{"type":"string","enum":["identification_number","full_name","date_of_birth","address","provider"],"description":"Normalised comparison field. `provider` is not a user field: it marks a source error row."},"label":{"type":"string","description":"Display label for the row, e.g. `ID number`, `Full name`, `Provider`."},"provided":{"oneOf":[{"type":"string","description":"What the user typed. `null` on a `provider` error row."},{"type":"null","description":"What the user typed. `null` on a `provider` error row."}]},"record":{"oneOf":[{"type":"string","description":"What the source held. On a `provider` error row this carries the error message instead."},{"type":"null","description":"What the source held. On a `provider` error row this carries the error message instead."}]},"result":{"type":"string","enum":["match","partial","no_match","error"],"description":"Per-field comparison result. `error` appears only on a `provider` row and means that source did not answer; treat it as evidence about the query, never as a field mismatch."}}}},"registry_portrait":{"oneOf":[{"type":"string","format":"uri","description":"Short-lived presigned URL to the portrait the source returned. Only the four government registers that return one (South Africa, Nigeria, Argentina, Panama)."},{"type":"null","format":"uri","description":"Short-lived presigned URL to the portrait the source returned. Only the four government registers that return one (South Africa, Nigeria, Argentina, Panama)."}]},"face_match_score":{"oneOf":[{"type":"number","description":"Selfie against the registry portrait, 0-100. Only where the register returns a portrait."},{"type":"null","description":"Selfie against the registry portrait, 0-100. Only where the register returns a portrait."}]}},"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].id_lookup.oneOf.1","typeLabel":"null"}],"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].id_lookup","typeLabel":"object | null"},"wallet_verification":{"oneOf":[{"type":"object","description":"Credential evidence. Present only when `verification_method` is `wallet`; `null` otherwise.","properties":{"provider":{"type":"string","description":"Catalog wallet id, e.g. `mitid`.","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].wallet_verification.oneOf.0.provider","typeLabel":"string"},"provider_name":{"oneOf":[{"type":"string","description":"Wallet name as the end user knows it, e.g. `MitID`.","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].wallet_verification.oneOf.0.provider_name.oneOf.0","typeLabel":"string"},{"type":"null","description":"Wallet name as the end user knows it, e.g. `MitID`.","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].wallet_verification.oneOf.0.provider_name.oneOf.1","typeLabel":"null"}],"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].wallet_verification.oneOf.0.provider_name","typeLabel":"string | null"},"issuing_authority":{"oneOf":[{"type":"string","description":"The authority behind the wallet, e.g. `Danish Agency for Digital Government`.","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].wallet_verification.oneOf.0.issuing_authority.oneOf.0","typeLabel":"string"},{"type":"null","description":"The authority behind the wallet, e.g. `Danish Agency for Digital Government`.","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].wallet_verification.oneOf.0.issuing_authority.oneOf.1","typeLabel":"null"}],"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].wallet_verification.oneOf.0.issuing_authority","typeLabel":"string | null"},"issuing_country":{"type":"string","description":"ISO 3166-1 alpha-3 country the wallet was offered in.","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].wallet_verification.oneOf.0.issuing_country","typeLabel":"string"},"credential_type":{"oneOf":[{"type":"string","description":"Credential the wallet presented, e.g. `person_identification`.","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].wallet_verification.oneOf.0.credential_type.oneOf.0","typeLabel":"string"},{"type":"null","description":"Credential the wallet presented, e.g. `person_identification`.","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].wallet_verification.oneOf.0.credential_type.oneOf.1","typeLabel":"null"}],"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].wallet_verification.oneOf.0.credential_type","typeLabel":"string | null"},"level_of_assurance":{"oneOf":[{"type":"string","enum":["low","substantial","high"],"description":"The level of assurance the wallet asserted. A sign-in that asserts less than the level requested fails instead of downgrading.","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].wallet_verification.oneOf.0.level_of_assurance.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["low","substantial","high"],"description":"The level of assurance the wallet asserted. A sign-in that asserts less than the level requested fails instead of downgrading.","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].wallet_verification.oneOf.0.level_of_assurance.oneOf.1","typeLabel":"null"}],"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].wallet_verification.oneOf.0.level_of_assurance","typeLabel":"enum\u003cstring> | null"},"verified_at":{"oneOf":[{"type":"string","format":"date-time","description":"The wallet's authentication instant.","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].wallet_verification.oneOf.0.verified_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","description":"The wallet's authentication instant.","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].wallet_verification.oneOf.0.verified_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].wallet_verification.oneOf.0.verified_at","typeLabel":"string\u003cdate-time> | null"},"signature_valid":{"oneOf":[{"type":"boolean","description":"Whether the signed assertion the wallet returned validated.","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].wallet_verification.oneOf.0.signature_valid.oneOf.0","typeLabel":"boolean"},{"type":"null","description":"Whether the signed assertion the wallet returned validated.","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].wallet_verification.oneOf.0.signature_valid.oneOf.1","typeLabel":"null"}],"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].wallet_verification.oneOf.0.signature_valid","typeLabel":"boolean | null"},"attributes":{"type":"object","additionalProperties":true,"description":"The attributes the wallet shared, keyed as the wallet's catalog entry lists them.","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].wallet_verification.oneOf.0.attributes","typeLabel":"object"},"portrait":{"oneOf":[{"type":"string","format":"uri","description":"Short-lived presigned URL to the portrait the wallet shared, where it shares one.","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].wallet_verification.oneOf.0.portrait.oneOf.0","typeLabel":"string\u003curi>"},{"type":"null","format":"uri","description":"Short-lived presigned URL to the portrait the wallet shared, where it shares one.","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].wallet_verification.oneOf.0.portrait.oneOf.1","typeLabel":"null"}],"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].wallet_verification.oneOf.0.portrait","typeLabel":"string\u003curi> | null"},"face_match_score":{"oneOf":[{"type":"number","description":"Selfie against the wallet portrait, 0-100, where the wallet shares one.","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].wallet_verification.oneOf.0.face_match_score.oneOf.0","typeLabel":"number"},{"type":"null","description":"Selfie against the wallet portrait, 0-100, where the wallet shares one.","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].wallet_verification.oneOf.0.face_match_score.oneOf.1","typeLabel":"null"}],"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].wallet_verification.oneOf.0.face_match_score","typeLabel":"number | null"}},"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].wallet_verification.oneOf.0","typeLabel":"object"},{"type":"null","description":"Credential evidence. Present only when `verification_method` is `wallet`; `null` otherwise.","properties":{"provider":{"type":"string","description":"Catalog wallet id, e.g. `mitid`."},"provider_name":{"oneOf":[{"type":"string","description":"Wallet name as the end user knows it, e.g. `MitID`."},{"type":"null","description":"Wallet name as the end user knows it, e.g. `MitID`."}]},"issuing_authority":{"oneOf":[{"type":"string","description":"The authority behind the wallet, e.g. `Danish Agency for Digital Government`."},{"type":"null","description":"The authority behind the wallet, e.g. `Danish Agency for Digital Government`."}]},"issuing_country":{"type":"string","description":"ISO 3166-1 alpha-3 country the wallet was offered in."},"credential_type":{"oneOf":[{"type":"string","description":"Credential the wallet presented, e.g. `person_identification`."},{"type":"null","description":"Credential the wallet presented, e.g. `person_identification`."}]},"level_of_assurance":{"oneOf":[{"type":"string","enum":["low","substantial","high"],"description":"The level of assurance the wallet asserted. A sign-in that asserts less than the level requested fails instead of downgrading."},{"type":"null","enum":["low","substantial","high"],"description":"The level of assurance the wallet asserted. A sign-in that asserts less than the level requested fails instead of downgrading."}]},"verified_at":{"oneOf":[{"type":"string","format":"date-time","description":"The wallet's authentication instant."},{"type":"null","format":"date-time","description":"The wallet's authentication instant."}]},"signature_valid":{"oneOf":[{"type":"boolean","description":"Whether the signed assertion the wallet returned validated."},{"type":"null","description":"Whether the signed assertion the wallet returned validated."}]},"attributes":{"type":"object","additionalProperties":true,"description":"The attributes the wallet shared, keyed as the wallet's catalog entry lists them."},"portrait":{"oneOf":[{"type":"string","format":"uri","description":"Short-lived presigned URL to the portrait the wallet shared, where it shares one."},{"type":"null","format":"uri","description":"Short-lived presigned URL to the portrait the wallet shared, where it shares one."}]},"face_match_score":{"oneOf":[{"type":"number","description":"Selfie against the wallet portrait, 0-100, where the wallet shares one."},{"type":"null","description":"Selfie against the wallet portrait, 0-100, where the wallet shares one."}]}},"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].wallet_verification.oneOf.1","typeLabel":"null"}],"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].wallet_verification","typeLabel":"object | null"},"status":{"type":"string","enum":["Not Finished","Approved","Declined","In Review","Expired"],"description":"Feature-level status of this ID verification step. Independent of the top-level session `status` — a session can reach its overall decision while an individual feature stays `In Review`.","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].status","typeLabel":"enum\u003cstring>"},"document_type":{"type":"string","description":"Type of identity document","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].document_type","typeLabel":"string"},"document_subtype":{"oneOf":[{"type":"string","description":"Accepted document subtype code from the workflow document settings, including the document region when applicable. Examples: `ID_CARD_GENERIC`, `QUEENSLAND_DRIVER_LICENSE_GENERIC`.","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].document_subtype.oneOf.0","typeLabel":"string"},{"type":"null","description":"Accepted document subtype code from the workflow document settings, including the document region when applicable. Examples: `ID_CARD_GENERIC`, `QUEENSLAND_DRIVER_LICENSE_GENERIC`.","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].document_subtype.oneOf.1","typeLabel":"null"}],"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].document_subtype","typeLabel":"string | null"},"document_number":{"type":"string","description":"Document identification number","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].document_number","typeLabel":"string"},"personal_number":{"type":"string","description":"Personal identification number","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].personal_number","typeLabel":"string"},"portrait_image":{"type":"string","format":"uri","description":"URL of the portrait image","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].portrait_image","typeLabel":"string\u003curi>"},"front_image":{"type":"string","format":"uri","description":"URL of the front document image","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].front_image","typeLabel":"string\u003curi>"},"front_video":{"type":"string","format":"uri","description":"URL of the front document video","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].front_video","typeLabel":"string\u003curi>"},"back_image":{"type":"string","format":"uri","description":"URL of the back document image","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].back_image","typeLabel":"string\u003curi>"},"back_video":{"type":"string","format":"uri","description":"URL of the back document video","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].back_video","typeLabel":"string\u003curi>"},"full_front_image":{"type":"string","format":"uri","description":"URL of the full front document image","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].full_front_image","typeLabel":"string\u003curi>"},"full_back_image":{"type":"string","format":"uri","description":"URL of the full back document image","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].full_back_image","typeLabel":"string\u003curi>"},"front_image_camera_front":{"type":"string","format":"uri","description":"URL of the front document image captured from the front-facing camera","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].front_image_camera_front","typeLabel":"string\u003curi>"},"back_image_camera_front":{"type":"string","format":"uri","description":"URL of the back document image captured from the front-facing camera","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].back_image_camera_front","typeLabel":"string\u003curi>"},"date_of_birth":{"type":"string","format":"date","description":"Date of birth from document","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].date_of_birth","typeLabel":"string\u003cdate>"},"age":{"type":"integer","description":"Calculated age from date of birth","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].age","typeLabel":"integer"},"expiration_date":{"type":"string","format":"date","description":"Document expiration date","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].expiration_date","typeLabel":"string\u003cdate>"},"date_of_issue":{"type":"string","format":"date","description":"Document issue date","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].date_of_issue","typeLabel":"string\u003cdate>"},"issuing_state":{"type":"string","description":"ISO code of issuing state","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].issuing_state","typeLabel":"string"},"issuing_state_name":{"type":"string","description":"Full name of issuing state","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].issuing_state_name","typeLabel":"string"},"first_name":{"type":"string","description":"First name from document","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].first_name","typeLabel":"string"},"last_name":{"type":"string","description":"Last name from document","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].last_name","typeLabel":"string"},"full_name":{"type":"string","description":"Full name from document","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].full_name","typeLabel":"string"},"gender":{"type":"string","description":"Gender from document","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].gender","typeLabel":"string"},"address":{"type":"string","description":"Raw address from document","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].address","typeLabel":"string"},"formatted_address":{"type":"string","description":"Formatted full address","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].formatted_address","typeLabel":"string"},"place_of_birth":{"type":"string","description":"Place of birth from document","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].place_of_birth","typeLabel":"string"},"marital_status":{"type":"string","description":"Marital status from document","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].marital_status","typeLabel":"string"},"nationality":{"type":"string","description":"ISO nationality code","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].nationality","typeLabel":"string"},"extra_fields":{"type":"object","description":"Additional document fields. Includes document-specific attributes (e.g. `dl_categories`, `blood_group`, `sponsor`, `employer`, `dl_class_code_b_from`, `dl_class_code_b_to`). Driver license class validity dates are returned as `dl_class_code_\u003cclass>_from` and `dl_class_code_\u003cclass>_to`, and per-class restriction/information codes (e.g. column 12 of UK licences) as `dl_class_code_\u003cclass>_notes`. When the document carries names, address, or place of birth in multiple scripts, this object also includes alternate-script versions of those fields. The workflow setting `preferred_characters` (`latin` or `non_latin`) controls which script populates the top-level fields (`first_name`, `last_name`, `full_name`, `address`, `place_of_birth`); the opposite script lands here as `first_name_non_latin` / `last_name_non_latin` / `full_name_non_latin` / `middle_name_non_latin` / `address_non_latin` / `place_of_birth_non_latin` (when `preferred_characters` is `latin`) or with a `_latin` suffix (when `preferred_characters` is `non_latin`). Keys appear only when the OCR actually extracts a real alternate-script value — a field whose alternate value is in the same script as the preferred set (for example, a Cyrillic-labelled field whose OCR value came back in Latin homoglyphs) is skipped. When `preferred_characters` is `latin` but the document only carries non-Latin text, Didit transliterates the extracted values and exposes `first_name_latin` / `last_name_latin` / etc. as a fallback.","additionalProperties":true,"properties":{"dl_categories":{"type":"array","items":{"type":"string","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].extra_fields.dl_categories.items.[INDEX]","typeLabel":"string"},"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].extra_fields.dl_categories","typeLabel":"string[]"},"blood_group":{"oneOf":[{"type":"string","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].extra_fields.blood_group.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].extra_fields.blood_group.oneOf.1","typeLabel":"null"}],"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].extra_fields.blood_group","typeLabel":"string | null"},"first_name_non_latin":{"type":"string","description":"First name in the non-Latin script when `preferred_characters=latin` and a non-Latin version is present on the document (e.g. `Айна` for a Kyrgyz ID).","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].extra_fields.first_name_non_latin","typeLabel":"string"},"last_name_non_latin":{"type":"string","description":"Surname in the non-Latin script when `preferred_characters=latin` and a non-Latin version is present on the document.","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].extra_fields.last_name_non_latin","typeLabel":"string"},"middle_name_non_latin":{"type":"string","description":"Middle name / patronymic in the non-Latin script when `preferred_characters=latin` and a non-Latin version is present on the document.","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].extra_fields.middle_name_non_latin","typeLabel":"string"},"full_name_non_latin":{"type":"string","description":"Composed full name in the non-Latin script. Reconstructed from the individual components when both first and last names are available.","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].extra_fields.full_name_non_latin","typeLabel":"string"},"address_non_latin":{"type":"string","description":"Address in the non-Latin script when `preferred_characters=latin` and a non-Latin version is present on the document.","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].extra_fields.address_non_latin","typeLabel":"string"},"place_of_birth_non_latin":{"type":"string","description":"Place of birth in the non-Latin script when `preferred_characters=latin` and a non-Latin version is present on the document.","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].extra_fields.place_of_birth_non_latin","typeLabel":"string"},"first_name_latin":{"type":"string","description":"First name in Latin script. Populated when `preferred_characters=non_latin` and a Latin version is present on the document, or — as a transliteration fallback — when `preferred_characters=latin` but the document only carries non-Latin text.","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].extra_fields.first_name_latin","typeLabel":"string"},"last_name_latin":{"type":"string","description":"Surname in Latin script. Same rules as `first_name_latin`.","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].extra_fields.last_name_latin","typeLabel":"string"},"middle_name_latin":{"type":"string","description":"Middle name / patronymic in Latin script. Same rules as `first_name_latin`.","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].extra_fields.middle_name_latin","typeLabel":"string"},"full_name_latin":{"type":"string","description":"Composed full name in Latin script. Always reconstructed from the individual components when both first and last names are available.","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].extra_fields.full_name_latin","typeLabel":"string"},"address_latin":{"type":"string","description":"Address in Latin script. Same rules as `first_name_latin`.","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].extra_fields.address_latin","typeLabel":"string"},"place_of_birth_latin":{"type":"string","description":"Place of birth in Latin script. Same rules as `first_name_latin`.","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].extra_fields.place_of_birth_latin","typeLabel":"string"}},"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].extra_fields","typeLabel":"object"},"mrz":{"oneOf":[{"type":"object","description":"Parsed Machine-Readable Zone (MRZ) fields extracted from the document. `null` if no MRZ was detected.","properties":{"surname":{"type":"string","example":"MARTINEZ\u003cSANCHEZ","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].mrz.oneOf.0.surname","typeLabel":"string"},"name":{"type":"string","example":"ELENA","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].mrz.oneOf.0.name","typeLabel":"string"},"country":{"type":"string","example":"ESP","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].mrz.oneOf.0.country","typeLabel":"string"},"nationality":{"type":"string","example":"ESP","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].mrz.oneOf.0.nationality","typeLabel":"string"},"birth_date":{"type":"string","example":"850315","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].mrz.oneOf.0.birth_date","typeLabel":"string"},"expiry_date":{"type":"string","example":"220821","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].mrz.oneOf.0.expiry_date","typeLabel":"string"},"sex":{"type":"string","example":"F","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].mrz.oneOf.0.sex","typeLabel":"string"},"document_type":{"type":"string","example":"ID","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].mrz.oneOf.0.document_type","typeLabel":"string"},"document_number":{"type":"string","example":"YZA123456","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].mrz.oneOf.0.document_number","typeLabel":"string"},"optional_data":{"type":"string","example":"X9876543L","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].mrz.oneOf.0.optional_data","typeLabel":"string"},"optional_data_2":{"type":"string","example":"","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].mrz.oneOf.0.optional_data_2","typeLabel":"string"},"birth_date_hash":{"type":"string","example":"7","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].mrz.oneOf.0.birth_date_hash","typeLabel":"string"},"expiry_date_hash":{"type":"string","example":"4","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].mrz.oneOf.0.expiry_date_hash","typeLabel":"string"},"document_number_hash":{"type":"string","example":"9","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].mrz.oneOf.0.document_number_hash","typeLabel":"string"},"final_hash":{"type":"string","example":"2","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].mrz.oneOf.0.final_hash","typeLabel":"string"},"personal_number":{"type":"string","example":"X9876543L","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].mrz.oneOf.0.personal_number","typeLabel":"string"},"warnings":{"type":"array","items":{"type":"string","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].mrz.oneOf.0.warnings.items.[INDEX]","typeLabel":"string"},"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].mrz.oneOf.0.warnings","typeLabel":"string[]"},"errors":{"type":"array","items":{"type":"string","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].mrz.oneOf.0.errors.items.[INDEX]","typeLabel":"string"},"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].mrz.oneOf.0.errors","typeLabel":"string[]"},"mrz_type":{"type":"string","example":"TD1","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].mrz.oneOf.0.mrz_type","typeLabel":"string"},"mrz_string":{"type":"string","example":"IDESPMARTINEZ\u003cSANCHEZ\u003c\u003c\u003c\u003c\u003c\u003c\u003c\u003c\u003c\u003c\nYZA123456\u003c9ESP8503157F3208214\u003cX9876543L\u003c\u003c\u003c\u003c\u003c\u003c\u003c2\nMARTINEZ\u003cSANCHEZ\u003c\u003cELENA\u003c\u003c\u003c\u003c\u003c\u003c\u003c\u003c\u003c\u003c","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].mrz.oneOf.0.mrz_string","typeLabel":"string"},"mrz_key":{"type":"string","example":"YZA123456985031573208214","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].mrz.oneOf.0.mrz_key","typeLabel":"string"}},"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].mrz.oneOf.0","typeLabel":"object"},{"type":"null","description":"Parsed Machine-Readable Zone (MRZ) fields extracted from the document. `null` if no MRZ was detected.","properties":{"surname":{"type":"string","example":"MARTINEZ\u003cSANCHEZ"},"name":{"type":"string","example":"ELENA"},"country":{"type":"string","example":"ESP"},"nationality":{"type":"string","example":"ESP"},"birth_date":{"type":"string","example":"850315"},"expiry_date":{"type":"string","example":"220821"},"sex":{"type":"string","example":"F"},"document_type":{"type":"string","example":"ID"},"document_number":{"type":"string","example":"YZA123456"},"optional_data":{"type":"string","example":"X9876543L"},"optional_data_2":{"type":"string","example":""},"birth_date_hash":{"type":"string","example":"7"},"expiry_date_hash":{"type":"string","example":"4"},"document_number_hash":{"type":"string","example":"9"},"final_hash":{"type":"string","example":"2"},"personal_number":{"type":"string","example":"X9876543L"},"warnings":{"type":"array","items":{"type":"string"}},"errors":{"type":"array","items":{"type":"string"}},"mrz_type":{"type":"string","example":"TD1"},"mrz_string":{"type":"string","example":"IDESPMARTINEZ\u003cSANCHEZ\u003c\u003c\u003c\u003c\u003c\u003c\u003c\u003c\u003c\u003c\nYZA123456\u003c9ESP8503157F3208214\u003cX9876543L\u003c\u003c\u003c\u003c\u003c\u003c\u003c2\nMARTINEZ\u003cSANCHEZ\u003c\u003cELENA\u003c\u003c\u003c\u003c\u003c\u003c\u003c\u003c\u003c\u003c"},"mrz_key":{"type":"string","example":"YZA123456985031573208214"}},"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].mrz.oneOf.1","typeLabel":"null"}],"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].mrz","typeLabel":"object | null"},"parsed_address":{"type":"object","description":"Structured address details","properties":{"city":{"type":"string","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].parsed_address.city","typeLabel":"string"},"label":{"type":"string","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].parsed_address.label","typeLabel":"string"},"region":{"type":"string","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].parsed_address.region","typeLabel":"string"},"country":{"type":"string","description":"Two-letter country code","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].parsed_address.country","typeLabel":"string"},"category":{"type":"string","description":"Address category (e.g., Residential, Commercial)","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].parsed_address.category","typeLabel":"string"},"street_1":{"type":"string","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].parsed_address.street_1","typeLabel":"string"},"street_2":{"oneOf":[{"type":"string","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].parsed_address.street_2.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].parsed_address.street_2.oneOf.1","typeLabel":"null"}],"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].parsed_address.street_2","typeLabel":"string | null"},"is_verified":{"type":"boolean","description":"Whether the address has been verified","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].parsed_address.is_verified","typeLabel":"boolean"},"postal_code":{"type":"string","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].parsed_address.postal_code","typeLabel":"string"},"raw_results":{"type":"object","properties":{"types":{"type":"array","items":{"type":"string","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].parsed_address.raw_results.types.items.[INDEX]","typeLabel":"string"},"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].parsed_address.raw_results.types","typeLabel":"string[]"},"geometry":{"type":"object","properties":{"location":{"type":"object","properties":{"lat":{"type":"number","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].parsed_address.raw_results.geometry.location.lat","typeLabel":"number"},"lng":{"type":"number","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].parsed_address.raw_results.geometry.location.lng","typeLabel":"number"}},"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].parsed_address.raw_results.geometry.location","typeLabel":"object"},"viewport":{"type":"object","properties":{"northeast":{"type":"object","properties":{"lat":{"type":"number","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].parsed_address.raw_results.geometry.viewport.northeast.lat","typeLabel":"number"},"lng":{"type":"number","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].parsed_address.raw_results.geometry.viewport.northeast.lng","typeLabel":"number"}},"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].parsed_address.raw_results.geometry.viewport.northeast","typeLabel":"object"},"southwest":{"type":"object","properties":{"lat":{"type":"number","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].parsed_address.raw_results.geometry.viewport.southwest.lat","typeLabel":"number"},"lng":{"type":"number","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].parsed_address.raw_results.geometry.viewport.southwest.lng","typeLabel":"number"}},"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].parsed_address.raw_results.geometry.viewport.southwest","typeLabel":"object"}},"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].parsed_address.raw_results.geometry.viewport","typeLabel":"object"},"location_type":{"type":"string","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].parsed_address.raw_results.geometry.location_type","typeLabel":"string"}},"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].parsed_address.raw_results.geometry","typeLabel":"object"},"place_id":{"type":"string","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].parsed_address.raw_results.place_id","typeLabel":"string"},"formatted_address":{"type":"string","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].parsed_address.raw_results.formatted_address","typeLabel":"string"},"navigation_points":{"type":"array","items":{"type":"object","properties":{"location":{"type":"object","properties":{"latitude":{"type":"number","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].parsed_address.raw_results.navigation_points.items.[INDEX].location.latitude","typeLabel":"number"},"longitude":{"type":"number","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].parsed_address.raw_results.navigation_points.items.[INDEX].location.longitude","typeLabel":"number"}},"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].parsed_address.raw_results.navigation_points.items.[INDEX].location","typeLabel":"object"}},"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].parsed_address.raw_results.navigation_points.items.[INDEX]","typeLabel":"object"},"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].parsed_address.raw_results.navigation_points","typeLabel":"object[]"},"address_components":{"type":"array","items":{"type":"object","properties":{"types":{"type":"array","items":{"type":"string","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].parsed_address.raw_results.address_components.items.[INDEX].types.items.[INDEX]","typeLabel":"string"},"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].parsed_address.raw_results.address_components.items.[INDEX].types","typeLabel":"string[]"},"long_name":{"type":"string","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].parsed_address.raw_results.address_components.items.[INDEX].long_name","typeLabel":"string"},"short_name":{"type":"string","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].parsed_address.raw_results.address_components.items.[INDEX].short_name","typeLabel":"string"}},"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].parsed_address.raw_results.address_components.items.[INDEX]","typeLabel":"object"},"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].parsed_address.raw_results.address_components","typeLabel":"object[]"}},"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].parsed_address.raw_results","typeLabel":"object"},"address_type":{"type":"string","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].parsed_address.address_type","typeLabel":"string"},"document_location":{"type":"object","properties":{"latitude":{"type":"number","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].parsed_address.document_location.latitude","typeLabel":"number"},"longitude":{"type":"number","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].parsed_address.document_location.longitude","typeLabel":"number"}},"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].parsed_address.document_location","typeLabel":"object"},"formatted_address":{"type":"string","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].parsed_address.formatted_address","typeLabel":"string"}},"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].parsed_address","typeLabel":"object"},"extra_files":{"type":"array","items":{"type":"string","format":"uri","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].extra_files.items.[INDEX]","typeLabel":"string\u003curi>"},"description":"Additional document verification files","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].extra_files","typeLabel":"string\u003curi>[]"},"front_image_camera_front_face_match_score":{"oneOf":[{"type":"number","description":"Face match score between the portrait extracted from the front document image and the front camera image","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].front_image_camera_front_face_match_score.oneOf.0","typeLabel":"number"},{"type":"null","description":"Face match score between the portrait extracted from the front document image and the front camera image","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].front_image_camera_front_face_match_score.oneOf.1","typeLabel":"null"}],"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].front_image_camera_front_face_match_score","typeLabel":"number | null"},"back_image_camera_front_face_match_score":{"oneOf":[{"type":"number","description":"Face match score between the portrait extracted from the back document image and the front camera image","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].back_image_camera_front_face_match_score.oneOf.0","typeLabel":"number"},{"type":"null","description":"Face match score between the portrait extracted from the back document image and the front camera image","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].back_image_camera_front_face_match_score.oneOf.1","typeLabel":"null"}],"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].back_image_camera_front_face_match_score","typeLabel":"number | null"},"document_selfie_face_matches":{"oneOf":[{"type":"array","description":"Previous sessions or face blocklist entries whose face matched the selfie the front camera took during document capture (Silent Capture Face Search). Same entry format as `liveness_checks[].matches`. `null` for sessions created before this field existed or when the search did not run; an empty array when it ran and found nothing. `match_image_url` is a presigned URL that expires.","items":{"type":"object","properties":{"session_id":{"oneOf":[{"type":"string","format":"uuid","description":"Session ID of the matching face. `null` when `source` is `imported`, `list_entry`, or `retained_template`.","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].document_selfie_face_matches.oneOf.0.items.[INDEX].session_id.oneOf.0","typeLabel":"string\u003cuuid>"},{"type":"null","format":"uuid","description":"Session ID of the matching face. `null` when `source` is `imported`, `list_entry`, or `retained_template`.","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].document_selfie_face_matches.oneOf.0.items.[INDEX].session_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].document_selfie_face_matches.oneOf.0.items.[INDEX].session_id","typeLabel":"string\u003cuuid> | null"},"session_number":{"oneOf":[{"type":"integer","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].document_selfie_face_matches.oneOf.0.items.[INDEX].session_number.oneOf.0","typeLabel":"integer"},{"type":"null","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].document_selfie_face_matches.oneOf.0.items.[INDEX].session_number.oneOf.1","typeLabel":"null"}],"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].document_selfie_face_matches.oneOf.0.items.[INDEX].session_number","typeLabel":"integer | null"},"similarity_percentage":{"type":"number","description":"Face similarity between the two images, clamped to 0–100.","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].document_selfie_face_matches.oneOf.0.items.[INDEX].similarity_percentage","typeLabel":"number"},"vendor_data":{"oneOf":[{"type":"string","description":"`vendor_data` of the matching session or linked User for imported and retained-template faces.","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].document_selfie_face_matches.oneOf.0.items.[INDEX].vendor_data.oneOf.0","typeLabel":"string"},{"type":"null","description":"`vendor_data` of the matching session or linked User for imported and retained-template faces.","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].document_selfie_face_matches.oneOf.0.items.[INDEX].vendor_data.oneOf.1","typeLabel":"null"}],"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].document_selfie_face_matches.oneOf.0.items.[INDEX].vendor_data","typeLabel":"string | null"},"vendor_user_id":{"oneOf":[{"type":"string","format":"uuid","description":"Linked User id for `imported` and `retained_template` matches and for session matches linked to a User. `null` for list entries and sessions without a User.","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].document_selfie_face_matches.oneOf.0.items.[INDEX].vendor_user_id.oneOf.0","typeLabel":"string\u003cuuid>"},{"type":"null","format":"uuid","description":"Linked User id for `imported` and `retained_template` matches and for session matches linked to a User. `null` for list entries and sessions without a User.","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].document_selfie_face_matches.oneOf.0.items.[INDEX].vendor_user_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].document_selfie_face_matches.oneOf.0.items.[INDEX].vendor_user_id","typeLabel":"string\u003cuuid> | null"},"biometric_template_id":{"oneOf":[{"type":"string","format":"uuid","description":"Id of the retained biometric template. Set only when `source` is `retained_template`; `null` otherwise.","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].document_selfie_face_matches.oneOf.0.items.[INDEX].biometric_template_id.oneOf.0","typeLabel":"string\u003cuuid>"},{"type":"null","format":"uuid","description":"Id of the retained biometric template. Set only when `source` is `retained_template`; `null` otherwise.","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].document_selfie_face_matches.oneOf.0.items.[INDEX].biometric_template_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].document_selfie_face_matches.oneOf.0.items.[INDEX].biometric_template_id","typeLabel":"string\u003cuuid> | null"},"verification_date":{"oneOf":[{"type":"string","format":"date-time","description":"When the matching face was captured, or when a retained template was created. `null` for list entries.","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].document_selfie_face_matches.oneOf.0.items.[INDEX].verification_date.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","description":"When the matching face was captured, or when a retained template was created. `null` for list entries.","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].document_selfie_face_matches.oneOf.0.items.[INDEX].verification_date.oneOf.1","typeLabel":"null"}],"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].document_selfie_face_matches.oneOf.0.items.[INDEX].verification_date","typeLabel":"string\u003cdate-time> | null"},"user_details":{"oneOf":[{"type":"object","description":"Identity data from the matching session or imported User profile. Always `null` for `retained_template` and `list_entry` matches.","properties":{"full_name":{"oneOf":[{"type":"string","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].document_selfie_face_matches.oneOf.0.items.[INDEX].user_details.oneOf.0.full_name.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].document_selfie_face_matches.oneOf.0.items.[INDEX].user_details.oneOf.0.full_name.oneOf.1","typeLabel":"null"}],"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].document_selfie_face_matches.oneOf.0.items.[INDEX].user_details.oneOf.0.full_name","typeLabel":"string | null"},"document_type":{"oneOf":[{"type":"string","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].document_selfie_face_matches.oneOf.0.items.[INDEX].user_details.oneOf.0.document_type.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].document_selfie_face_matches.oneOf.0.items.[INDEX].user_details.oneOf.0.document_type.oneOf.1","typeLabel":"null"}],"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].document_selfie_face_matches.oneOf.0.items.[INDEX].user_details.oneOf.0.document_type","typeLabel":"string | null"},"document_number":{"oneOf":[{"type":"string","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].document_selfie_face_matches.oneOf.0.items.[INDEX].user_details.oneOf.0.document_number.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].document_selfie_face_matches.oneOf.0.items.[INDEX].user_details.oneOf.0.document_number.oneOf.1","typeLabel":"null"}],"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].document_selfie_face_matches.oneOf.0.items.[INDEX].user_details.oneOf.0.document_number","typeLabel":"string | null"}},"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].document_selfie_face_matches.oneOf.0.items.[INDEX].user_details.oneOf.0","typeLabel":"object"},{"type":"null","description":"Identity data from the matching session or imported User profile. Always `null` for `retained_template` and `list_entry` matches.","properties":{"full_name":{"oneOf":[{"type":"string"},{"type":"null"}]},"document_type":{"oneOf":[{"type":"string"},{"type":"null"}]},"document_number":{"oneOf":[{"type":"string"},{"type":"null"}]}},"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].document_selfie_face_matches.oneOf.0.items.[INDEX].user_details.oneOf.1","typeLabel":"null"}],"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].document_selfie_face_matches.oneOf.0.items.[INDEX].user_details","typeLabel":"object | null"},"match_image_url":{"oneOf":[{"type":"string","format":"uri","description":"Reference image for image-backed matches. Always `null` for `retained_template` matches because retained templates contain no image.","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].document_selfie_face_matches.oneOf.0.items.[INDEX].match_image_url.oneOf.0","typeLabel":"string\u003curi>"},{"type":"null","format":"uri","description":"Reference image for image-backed matches. Always `null` for `retained_template` matches because retained templates contain no image.","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].document_selfie_face_matches.oneOf.0.items.[INDEX].match_image_url.oneOf.1","typeLabel":"null"}],"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].document_selfie_face_matches.oneOf.0.items.[INDEX].match_image_url","typeLabel":"string\u003curi> | null"},"status":{"oneOf":[{"type":"string","description":"Lifecycle status of the matching session. `null` for non-session sources.","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].document_selfie_face_matches.oneOf.0.items.[INDEX].status.oneOf.0","typeLabel":"string"},{"type":"null","description":"Lifecycle status of the matching session. `null` for non-session sources.","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].document_selfie_face_matches.oneOf.0.items.[INDEX].status.oneOf.1","typeLabel":"null"}],"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].document_selfie_face_matches.oneOf.0.items.[INDEX].status","typeLabel":"string | null"},"is_blocklisted":{"type":"boolean","description":"Whether the matching face is on a blocklist.","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].document_selfie_face_matches.oneOf.0.items.[INDEX].is_blocklisted","typeLabel":"boolean"},"is_allowlisted":{"type":"boolean","description":"Whether the matching face is on an allowlist.","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].document_selfie_face_matches.oneOf.0.items.[INDEX].is_allowlisted","typeLabel":"boolean"},"api_service":{"oneOf":[{"type":"string","description":"Standalone API service of the matching session (e.g. `PASSIVE_LIVENESS`, `FACE_MATCH`); `null` for workflow sessions and non-session sources.","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].document_selfie_face_matches.oneOf.0.items.[INDEX].api_service.oneOf.0","typeLabel":"string"},{"type":"null","description":"Standalone API service of the matching session (e.g. `PASSIVE_LIVENESS`, `FACE_MATCH`); `null` for workflow sessions and non-session sources.","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].document_selfie_face_matches.oneOf.0.items.[INDEX].api_service.oneOf.1","typeLabel":"null"}],"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].document_selfie_face_matches.oneOf.0.items.[INDEX].api_service","typeLabel":"string | null"},"source":{"type":"string","enum":["session","imported","list_entry","retained_template"],"description":"Origin of the matching face: `session`, `imported` (User face upload), `list_entry` (allow/block list), or `retained_template` (an image-free biometric template stored on a User, listed under `/v3/biometric-templates/`).","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].document_selfie_face_matches.oneOf.0.items.[INDEX].source","typeLabel":"enum\u003cstring>"}},"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].document_selfie_face_matches.oneOf.0.items.[INDEX]","typeLabel":"object"},"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].document_selfie_face_matches.oneOf.0","typeLabel":"object[]"},{"type":"null","description":"Previous sessions or face blocklist entries whose face matched the selfie the front camera took during document capture (Silent Capture Face Search). Same entry format as `liveness_checks[].matches`. `null` for sessions created before this field existed or when the search did not run; an empty array when it ran and found nothing. `match_image_url` is a presigned URL that expires.","items":{"type":"object","properties":{"session_id":{"oneOf":[{"type":"string","format":"uuid","description":"Session ID of the matching face. `null` when `source` is `imported`, `list_entry`, or `retained_template`."},{"type":"null","format":"uuid","description":"Session ID of the matching face. `null` when `source` is `imported`, `list_entry`, or `retained_template`."}]},"session_number":{"oneOf":[{"type":"integer"},{"type":"null"}]},"similarity_percentage":{"type":"number","description":"Face similarity between the two images, clamped to 0–100."},"vendor_data":{"oneOf":[{"type":"string","description":"`vendor_data` of the matching session or linked User for imported and retained-template faces."},{"type":"null","description":"`vendor_data` of the matching session or linked User for imported and retained-template faces."}]},"vendor_user_id":{"oneOf":[{"type":"string","format":"uuid","description":"Linked User id for `imported` and `retained_template` matches and for session matches linked to a User. `null` for list entries and sessions without a User."},{"type":"null","format":"uuid","description":"Linked User id for `imported` and `retained_template` matches and for session matches linked to a User. `null` for list entries and sessions without a User."}]},"biometric_template_id":{"oneOf":[{"type":"string","format":"uuid","description":"Id of the retained biometric template. Set only when `source` is `retained_template`; `null` otherwise."},{"type":"null","format":"uuid","description":"Id of the retained biometric template. Set only when `source` is `retained_template`; `null` otherwise."}]},"verification_date":{"oneOf":[{"type":"string","format":"date-time","description":"When the matching face was captured, or when a retained template was created. `null` for list entries."},{"type":"null","format":"date-time","description":"When the matching face was captured, or when a retained template was created. `null` for list entries."}]},"user_details":{"oneOf":[{"type":"object","description":"Identity data from the matching session or imported User profile. Always `null` for `retained_template` and `list_entry` matches.","properties":{"full_name":{"oneOf":[{"type":"string"},{"type":"null"}]},"document_type":{"oneOf":[{"type":"string"},{"type":"null"}]},"document_number":{"oneOf":[{"type":"string"},{"type":"null"}]}}},{"type":"null","description":"Identity data from the matching session or imported User profile. Always `null` for `retained_template` and `list_entry` matches.","properties":{"full_name":{"oneOf":[{"type":"string"},{"type":"null"}]},"document_type":{"oneOf":[{"type":"string"},{"type":"null"}]},"document_number":{"oneOf":[{"type":"string"},{"type":"null"}]}}}]},"match_image_url":{"oneOf":[{"type":"string","format":"uri","description":"Reference image for image-backed matches. Always `null` for `retained_template` matches because retained templates contain no image."},{"type":"null","format":"uri","description":"Reference image for image-backed matches. Always `null` for `retained_template` matches because retained templates contain no image."}]},"status":{"oneOf":[{"type":"string","description":"Lifecycle status of the matching session. `null` for non-session sources."},{"type":"null","description":"Lifecycle status of the matching session. `null` for non-session sources."}]},"is_blocklisted":{"type":"boolean","description":"Whether the matching face is on a blocklist."},"is_allowlisted":{"type":"boolean","description":"Whether the matching face is on an allowlist."},"api_service":{"oneOf":[{"type":"string","description":"Standalone API service of the matching session (e.g. `PASSIVE_LIVENESS`, `FACE_MATCH`); `null` for workflow sessions and non-session sources."},{"type":"null","description":"Standalone API service of the matching session (e.g. `PASSIVE_LIVENESS`, `FACE_MATCH`); `null` for workflow sessions and non-session sources."}]},"source":{"type":"string","enum":["session","imported","list_entry","retained_template"],"description":"Origin of the matching face: `session`, `imported` (User face upload), `list_entry` (allow/block list), or `retained_template` (an image-free biometric template stored on a User, listed under `/v3/biometric-templates/`)."}}},"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].document_selfie_face_matches.oneOf.1","typeLabel":"null"}],"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].document_selfie_face_matches","typeLabel":"object[] | null"},"front_image_quality_score":{"oneOf":[{"type":"object","description":"Quality metrics for the front document image. Each sub-score ranges from 0 to 100.","properties":{"focus_score":{"type":"number","description":"Sharpness of the image measured via top-10% local Laplacian variance. Robust to documents with large uniform backgrounds. Higher values indicate a sharper, less blurry image.","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].front_image_quality_score.oneOf.0.focus_score","typeLabel":"number"},"brightness_score":{"type":"number","description":"How well-lit the image is. Penalizes images that are too dark or overexposed, with ideal brightness around mid-range.","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].front_image_quality_score.oneOf.0.brightness_score","typeLabel":"number"},"brightness_issue":{"type":"string","enum":["ok","too_dark","too_bright"],"description":"Indicates the direction of the brightness problem when the brightness_score is low. 'ok' means brightness is acceptable, 'too_dark' means the image is underexposed, 'too_bright' means the image is overexposed.","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].front_image_quality_score.oneOf.0.brightness_issue","typeLabel":"enum\u003cstring>"},"is_document_fully_visible":{"oneOf":[{"type":"boolean","description":"true if all four corners of the document are fully visible inside the image frame, false if any corner is cut off. Null when corner coordinates are unavailable.","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].front_image_quality_score.oneOf.0.is_document_fully_visible.oneOf.0","typeLabel":"boolean"},{"type":"null","description":"true if all four corners of the document are fully visible inside the image frame, false if any corner is cut off. Null when corner coordinates are unavailable.","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].front_image_quality_score.oneOf.0.is_document_fully_visible.oneOf.1","typeLabel":"null"}],"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].front_image_quality_score.oneOf.0.is_document_fully_visible","typeLabel":"boolean | null"},"resolution_score":{"type":"number","description":"Effective resolution of the image based on total pixel count.","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].front_image_quality_score.oneOf.0.resolution_score","typeLabel":"number"},"overall_score":{"type":"number","description":"Weighted composite of sub-scores (focus 45%, brightness 30%, resolution 25%).","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].front_image_quality_score.oneOf.0.overall_score","typeLabel":"number"}},"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].front_image_quality_score.oneOf.0","typeLabel":"object"},{"type":"null","description":"Quality metrics for the front document image. Each sub-score ranges from 0 to 100.","properties":{"focus_score":{"type":"number","description":"Sharpness of the image measured via top-10% local Laplacian variance. Robust to documents with large uniform backgrounds. Higher values indicate a sharper, less blurry image."},"brightness_score":{"type":"number","description":"How well-lit the image is. Penalizes images that are too dark or overexposed, with ideal brightness around mid-range."},"brightness_issue":{"type":"string","enum":["ok","too_dark","too_bright"],"description":"Indicates the direction of the brightness problem when the brightness_score is low. 'ok' means brightness is acceptable, 'too_dark' means the image is underexposed, 'too_bright' means the image is overexposed."},"is_document_fully_visible":{"oneOf":[{"type":"boolean","description":"true if all four corners of the document are fully visible inside the image frame, false if any corner is cut off. Null when corner coordinates are unavailable."},{"type":"null","description":"true if all four corners of the document are fully visible inside the image frame, false if any corner is cut off. Null when corner coordinates are unavailable."}]},"resolution_score":{"type":"number","description":"Effective resolution of the image based on total pixel count."},"overall_score":{"type":"number","description":"Weighted composite of sub-scores (focus 45%, brightness 30%, resolution 25%)."}},"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].front_image_quality_score.oneOf.1","typeLabel":"null"}],"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].front_image_quality_score","typeLabel":"object | null"},"back_image_quality_score":{"oneOf":[{"type":"object","description":"Quality metrics for the back document image. Same structure as front_image_quality_score.","properties":{"focus_score":{"type":"number","description":"Sharpness of the image measured via top-10% local Laplacian variance. Robust to documents with large uniform backgrounds. Higher values indicate a sharper, less blurry image.","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].back_image_quality_score.oneOf.0.focus_score","typeLabel":"number"},"brightness_score":{"type":"number","description":"How well-lit the image is. Penalizes images that are too dark or overexposed, with ideal brightness around mid-range.","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].back_image_quality_score.oneOf.0.brightness_score","typeLabel":"number"},"brightness_issue":{"type":"string","enum":["ok","too_dark","too_bright"],"description":"Indicates the direction of the brightness problem when the brightness_score is low. 'ok' means brightness is acceptable, 'too_dark' means the image is underexposed, 'too_bright' means the image is overexposed.","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].back_image_quality_score.oneOf.0.brightness_issue","typeLabel":"enum\u003cstring>"},"is_document_fully_visible":{"oneOf":[{"type":"boolean","description":"true if all four corners of the document are fully visible inside the image frame, false if any corner is cut off. Null when corner coordinates are unavailable.","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].back_image_quality_score.oneOf.0.is_document_fully_visible.oneOf.0","typeLabel":"boolean"},{"type":"null","description":"true if all four corners of the document are fully visible inside the image frame, false if any corner is cut off. Null when corner coordinates are unavailable.","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].back_image_quality_score.oneOf.0.is_document_fully_visible.oneOf.1","typeLabel":"null"}],"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].back_image_quality_score.oneOf.0.is_document_fully_visible","typeLabel":"boolean | null"},"resolution_score":{"type":"number","description":"Effective resolution of the image based on total pixel count.","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].back_image_quality_score.oneOf.0.resolution_score","typeLabel":"number"},"overall_score":{"type":"number","description":"Weighted composite of sub-scores (focus 45%, brightness 30%, resolution 25%).","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].back_image_quality_score.oneOf.0.overall_score","typeLabel":"number"}},"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].back_image_quality_score.oneOf.0","typeLabel":"object"},{"type":"null","description":"Quality metrics for the back document image. Same structure as front_image_quality_score.","properties":{"focus_score":{"type":"number","description":"Sharpness of the image measured via top-10% local Laplacian variance. Robust to documents with large uniform backgrounds. Higher values indicate a sharper, less blurry image."},"brightness_score":{"type":"number","description":"How well-lit the image is. Penalizes images that are too dark or overexposed, with ideal brightness around mid-range."},"brightness_issue":{"type":"string","enum":["ok","too_dark","too_bright"],"description":"Indicates the direction of the brightness problem when the brightness_score is low. 'ok' means brightness is acceptable, 'too_dark' means the image is underexposed, 'too_bright' means the image is overexposed."},"is_document_fully_visible":{"oneOf":[{"type":"boolean","description":"true if all four corners of the document are fully visible inside the image frame, false if any corner is cut off. Null when corner coordinates are unavailable."},{"type":"null","description":"true if all four corners of the document are fully visible inside the image frame, false if any corner is cut off. Null when corner coordinates are unavailable."}]},"resolution_score":{"type":"number","description":"Effective resolution of the image based on total pixel count."},"overall_score":{"type":"number","description":"Weighted composite of sub-scores (focus 45%, brightness 30%, resolution 25%)."}},"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].back_image_quality_score.oneOf.1","typeLabel":"null"}],"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].back_image_quality_score","typeLabel":"object | null"},"warnings":{"type":"array","items":{"type":"object","properties":{"feature":{"type":"string","enum":["ID_VERIFICATION","NFC","LIVENESS","FACEMATCH","PROOF_OF_ADDRESS","PHONE","EMAIL","AML","LOCATION","DATABASE_VALIDATION","QUESTIONNAIRE","DOCUMENT_AI","KYB_REGISTRY","KYB_DOCUMENTS","KYB_KEY_PEOPLE","GEOLOCATION","SIGNATURE"],"description":"The feature that generated this warning (e.g., `ID_VERIFICATION`, `NFC`, `LIVENESS`). The value identifies the feature block the warning belongs to. Each module's warnings array typically uses the value matching its module, but the enum above is authoritative across all feature warnings on the decision payload.","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].warnings.items.[INDEX].feature","typeLabel":"enum\u003cstring>"},"risk":{"type":"string","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].warnings.items.[INDEX].risk","typeLabel":"string"},"additional_data":{"oneOf":[{"type":"object","description":"Additional contextual data about the warning","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].warnings.items.[INDEX].additional_data.oneOf.0","typeLabel":"object"},{"type":"null","description":"Additional contextual data about the warning","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].warnings.items.[INDEX].additional_data.oneOf.1","typeLabel":"null"}],"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].warnings.items.[INDEX].additional_data","typeLabel":"object | null"},"log_type":{"type":"string","description":"Type of log: information, warning, or error","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].warnings.items.[INDEX].log_type","typeLabel":"string"},"short_description":{"type":"string","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].warnings.items.[INDEX].short_description","typeLabel":"string"},"long_description":{"type":"string","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].warnings.items.[INDEX].long_description","typeLabel":"string"},"node_id":{"type":"string","description":"The workflow graph node ID that generated this warning (for graph-based workflows)","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].warnings.items.[INDEX].node_id","typeLabel":"string"}},"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].warnings.items.[INDEX]","typeLabel":"object"},"description":"Document verification warnings","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].warnings","typeLabel":"object[]"},"matches":{"type":"array","description":"Matching documents found during duplicate/blocklist detection (up to 5 matches)","items":{"type":"object","properties":{"session_id":{"type":"string","format":"uuid","description":"Session ID of the matching document","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].matches.items.[INDEX].session_id","typeLabel":"string\u003cuuid>"},"session_number":{"type":"integer","description":"Session number of the matching document","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].matches.items.[INDEX].session_number","typeLabel":"integer"},"vendor_data":{"oneOf":[{"type":"string","description":"Vendor data associated with the matching session","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].matches.items.[INDEX].vendor_data.oneOf.0","typeLabel":"string"},{"type":"null","description":"Vendor data associated with the matching session","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].matches.items.[INDEX].vendor_data.oneOf.1","typeLabel":"null"}],"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].matches.items.[INDEX].vendor_data","typeLabel":"string | null"},"verification_date":{"type":"string","format":"date-time","description":"Date when the matching session was verified","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].matches.items.[INDEX].verification_date","typeLabel":"string\u003cdate-time>"},"user_details":{"type":"object","properties":{"name":{"type":"string","description":"Full name from the matching document","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].matches.items.[INDEX].user_details.name","typeLabel":"string"},"document_type":{"type":"string","description":"Type of the matching document","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].matches.items.[INDEX].user_details.document_type","typeLabel":"string"},"document_number":{"type":"string","description":"Document number of the matching document","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].matches.items.[INDEX].user_details.document_number","typeLabel":"string"}},"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].matches.items.[INDEX].user_details","typeLabel":"object"},"status":{"type":"string","description":"Status of the matching session","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].matches.items.[INDEX].status","typeLabel":"string"},"is_blocklisted":{"type":"boolean","description":"Whether the matching document is blocklisted","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].matches.items.[INDEX].is_blocklisted","typeLabel":"boolean"},"api_service":{"oneOf":[{"type":"string","description":"API service type of the matching session","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].matches.items.[INDEX].api_service.oneOf.0","typeLabel":"string"},{"type":"null","description":"API service type of the matching session","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].matches.items.[INDEX].api_service.oneOf.1","typeLabel":"null"}],"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].matches.items.[INDEX].api_service","typeLabel":"string | null"},"front_image_url":{"oneOf":[{"type":"string","format":"uri","description":"URL of the front document image from the matching document","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].matches.items.[INDEX].front_image_url.oneOf.0","typeLabel":"string\u003curi>"},{"type":"null","format":"uri","description":"URL of the front document image from the matching document","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].matches.items.[INDEX].front_image_url.oneOf.1","typeLabel":"null"}],"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].matches.items.[INDEX].front_image_url","typeLabel":"string\u003curi> | null"}},"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].matches.items.[INDEX]","typeLabel":"object"},"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].matches","typeLabel":"object[]"},"document_liveness":{"oneOf":[{"type":"object","description":"Document-liveness scores per fraud type, reported whether or not a warning fired, so an approved document can still be audited. `null` when the check did not run.","properties":{"portrait_replace":{"oneOf":[{"type":"object","properties":{"score":{"oneOf":[{"type":"number","description":"Likelihood that the document is genuine for this fraud type, 0-100 (higher = more likely genuine). The lowest of the two sides - the value the decision used. `null` when neither side produced a usable score.","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].document_liveness.oneOf.0.portrait_replace.oneOf.0.score.oneOf.0","typeLabel":"number"},{"type":"null","description":"Likelihood that the document is genuine for this fraud type, 0-100 (higher = more likely genuine). The lowest of the two sides - the value the decision used. `null` when neither side produced a usable score.","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].document_liveness.oneOf.0.portrait_replace.oneOf.0.score.oneOf.1","typeLabel":"null"}],"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].document_liveness.oneOf.0.portrait_replace.oneOf.0.score","typeLabel":"number | null"},"front":{"oneOf":[{"type":"number","description":"Score for the front side; `null` when not captured or when the score was dropped.","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].document_liveness.oneOf.0.portrait_replace.oneOf.0.front.oneOf.0","typeLabel":"number"},{"type":"null","description":"Score for the front side; `null` when not captured or when the score was dropped.","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].document_liveness.oneOf.0.portrait_replace.oneOf.0.front.oneOf.1","typeLabel":"null"}],"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].document_liveness.oneOf.0.portrait_replace.oneOf.0.front","typeLabel":"number | null"},"back":{"oneOf":[{"type":"number","description":"Score for the back side; `null` when not captured or when the score was dropped.","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].document_liveness.oneOf.0.portrait_replace.oneOf.0.back.oneOf.0","typeLabel":"number"},{"type":"null","description":"Score for the back side; `null` when not captured or when the score was dropped.","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].document_liveness.oneOf.0.portrait_replace.oneOf.0.back.oneOf.1","typeLabel":"null"}],"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].document_liveness.oneOf.0.portrait_replace.oneOf.0.back","typeLabel":"number | null"},"decline_threshold":{"oneOf":[{"type":"number","description":"The decline threshold saved when this document was evaluated. Later workflow edits do not change it. Null when historical evaluation evidence is unavailable.","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].document_liveness.oneOf.0.portrait_replace.oneOf.0.decline_threshold.oneOf.0","typeLabel":"number"},{"type":"null","description":"The decline threshold saved when this document was evaluated. Later workflow edits do not change it. Null when historical evaluation evidence is unavailable.","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].document_liveness.oneOf.0.portrait_replace.oneOf.0.decline_threshold.oneOf.1","typeLabel":"null"}],"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].document_liveness.oneOf.0.portrait_replace.oneOf.0.decline_threshold","typeLabel":"number | null"},"review_threshold":{"oneOf":[{"type":"number","description":"The review threshold saved when this document was evaluated. Later workflow edits do not change it. Null when historical evaluation evidence is unavailable.","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].document_liveness.oneOf.0.portrait_replace.oneOf.0.review_threshold.oneOf.0","typeLabel":"number"},{"type":"null","description":"The review threshold saved when this document was evaluated. Later workflow edits do not change it. Null when historical evaluation evidence is unavailable.","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].document_liveness.oneOf.0.portrait_replace.oneOf.0.review_threshold.oneOf.1","typeLabel":"null"}],"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].document_liveness.oneOf.0.portrait_replace.oneOf.0.review_threshold","typeLabel":"number | null"},"bucket":{"oneOf":[{"type":"string","enum":["approve","review","decline",null],"description":"The fraud-type bucket saved at evaluation time. Null when there is no usable score, the check was not applied, or historical evaluation evidence is unavailable. Later workflow edits do not change it.","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].document_liveness.oneOf.0.portrait_replace.oneOf.0.bucket.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["approve","review","decline",null],"description":"The fraud-type bucket saved at evaluation time. Null when there is no usable score, the check was not applied, or historical evaluation evidence is unavailable. Later workflow edits do not change it.","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].document_liveness.oneOf.0.portrait_replace.oneOf.0.bucket.oneOf.1","typeLabel":"null"}],"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].document_liveness.oneOf.0.portrait_replace.oneOf.0.bucket","typeLabel":"enum\u003cstring> | null"}},"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].document_liveness.oneOf.0.portrait_replace.oneOf.0","typeLabel":"object"},{"type":"null","properties":{"score":{"oneOf":[{"type":"number","description":"Likelihood that the document is genuine for this fraud type, 0-100 (higher = more likely genuine). The lowest of the two sides - the value the decision used. `null` when neither side produced a usable score."},{"type":"null","description":"Likelihood that the document is genuine for this fraud type, 0-100 (higher = more likely genuine). The lowest of the two sides - the value the decision used. `null` when neither side produced a usable score."}]},"front":{"oneOf":[{"type":"number","description":"Score for the front side; `null` when not captured or when the score was dropped."},{"type":"null","description":"Score for the front side; `null` when not captured or when the score was dropped."}]},"back":{"oneOf":[{"type":"number","description":"Score for the back side; `null` when not captured or when the score was dropped."},{"type":"null","description":"Score for the back side; `null` when not captured or when the score was dropped."}]},"decline_threshold":{"oneOf":[{"type":"number","description":"The decline threshold saved when this document was evaluated. Later workflow edits do not change it. Null when historical evaluation evidence is unavailable."},{"type":"null","description":"The decline threshold saved when this document was evaluated. Later workflow edits do not change it. Null when historical evaluation evidence is unavailable."}]},"review_threshold":{"oneOf":[{"type":"number","description":"The review threshold saved when this document was evaluated. Later workflow edits do not change it. Null when historical evaluation evidence is unavailable."},{"type":"null","description":"The review threshold saved when this document was evaluated. Later workflow edits do not change it. Null when historical evaluation evidence is unavailable."}]},"bucket":{"oneOf":[{"type":"string","enum":["approve","review","decline",null],"description":"The fraud-type bucket saved at evaluation time. Null when there is no usable score, the check was not applied, or historical evaluation evidence is unavailable. Later workflow edits do not change it."},{"type":"null","enum":["approve","review","decline",null],"description":"The fraud-type bucket saved at evaluation time. Null when there is no usable score, the check was not applied, or historical evaluation evidence is unavailable. Later workflow edits do not change it."}]}},"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].document_liveness.oneOf.0.portrait_replace.oneOf.1","typeLabel":"null"}],"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].document_liveness.oneOf.0.portrait_replace","typeLabel":"object | null"},"printed_copy":{"oneOf":[{"type":"object","properties":{"score":{"oneOf":[{"type":"number","description":"Likelihood that the document is genuine for this fraud type, 0-100 (higher = more likely genuine). The lowest of the two sides - the value the decision used. `null` when neither side produced a usable score.","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].document_liveness.oneOf.0.printed_copy.oneOf.0.score.oneOf.0","typeLabel":"number"},{"type":"null","description":"Likelihood that the document is genuine for this fraud type, 0-100 (higher = more likely genuine). The lowest of the two sides - the value the decision used. `null` when neither side produced a usable score.","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].document_liveness.oneOf.0.printed_copy.oneOf.0.score.oneOf.1","typeLabel":"null"}],"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].document_liveness.oneOf.0.printed_copy.oneOf.0.score","typeLabel":"number | null"},"front":{"oneOf":[{"type":"number","description":"Score for the front side; `null` when not captured or when the score was dropped.","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].document_liveness.oneOf.0.printed_copy.oneOf.0.front.oneOf.0","typeLabel":"number"},{"type":"null","description":"Score for the front side; `null` when not captured or when the score was dropped.","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].document_liveness.oneOf.0.printed_copy.oneOf.0.front.oneOf.1","typeLabel":"null"}],"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].document_liveness.oneOf.0.printed_copy.oneOf.0.front","typeLabel":"number | null"},"back":{"oneOf":[{"type":"number","description":"Score for the back side; `null` when not captured or when the score was dropped.","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].document_liveness.oneOf.0.printed_copy.oneOf.0.back.oneOf.0","typeLabel":"number"},{"type":"null","description":"Score for the back side; `null` when not captured or when the score was dropped.","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].document_liveness.oneOf.0.printed_copy.oneOf.0.back.oneOf.1","typeLabel":"null"}],"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].document_liveness.oneOf.0.printed_copy.oneOf.0.back","typeLabel":"number | null"},"decline_threshold":{"oneOf":[{"type":"number","description":"The decline threshold saved when this document was evaluated. Later workflow edits do not change it. Null when historical evaluation evidence is unavailable.","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].document_liveness.oneOf.0.printed_copy.oneOf.0.decline_threshold.oneOf.0","typeLabel":"number"},{"type":"null","description":"The decline threshold saved when this document was evaluated. Later workflow edits do not change it. Null when historical evaluation evidence is unavailable.","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].document_liveness.oneOf.0.printed_copy.oneOf.0.decline_threshold.oneOf.1","typeLabel":"null"}],"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].document_liveness.oneOf.0.printed_copy.oneOf.0.decline_threshold","typeLabel":"number | null"},"review_threshold":{"oneOf":[{"type":"number","description":"The review threshold saved when this document was evaluated. Later workflow edits do not change it. Null when historical evaluation evidence is unavailable.","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].document_liveness.oneOf.0.printed_copy.oneOf.0.review_threshold.oneOf.0","typeLabel":"number"},{"type":"null","description":"The review threshold saved when this document was evaluated. Later workflow edits do not change it. Null when historical evaluation evidence is unavailable.","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].document_liveness.oneOf.0.printed_copy.oneOf.0.review_threshold.oneOf.1","typeLabel":"null"}],"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].document_liveness.oneOf.0.printed_copy.oneOf.0.review_threshold","typeLabel":"number | null"},"bucket":{"oneOf":[{"type":"string","enum":["approve","review","decline",null],"description":"The fraud-type bucket saved at evaluation time. Null when there is no usable score, the check was not applied, or historical evaluation evidence is unavailable. Later workflow edits do not change it.","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].document_liveness.oneOf.0.printed_copy.oneOf.0.bucket.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["approve","review","decline",null],"description":"The fraud-type bucket saved at evaluation time. Null when there is no usable score, the check was not applied, or historical evaluation evidence is unavailable. Later workflow edits do not change it.","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].document_liveness.oneOf.0.printed_copy.oneOf.0.bucket.oneOf.1","typeLabel":"null"}],"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].document_liveness.oneOf.0.printed_copy.oneOf.0.bucket","typeLabel":"enum\u003cstring> | null"}},"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].document_liveness.oneOf.0.printed_copy.oneOf.0","typeLabel":"object"},{"type":"null","properties":{"score":{"oneOf":[{"type":"number","description":"Likelihood that the document is genuine for this fraud type, 0-100 (higher = more likely genuine). The lowest of the two sides - the value the decision used. `null` when neither side produced a usable score."},{"type":"null","description":"Likelihood that the document is genuine for this fraud type, 0-100 (higher = more likely genuine). The lowest of the two sides - the value the decision used. `null` when neither side produced a usable score."}]},"front":{"oneOf":[{"type":"number","description":"Score for the front side; `null` when not captured or when the score was dropped."},{"type":"null","description":"Score for the front side; `null` when not captured or when the score was dropped."}]},"back":{"oneOf":[{"type":"number","description":"Score for the back side; `null` when not captured or when the score was dropped."},{"type":"null","description":"Score for the back side; `null` when not captured or when the score was dropped."}]},"decline_threshold":{"oneOf":[{"type":"number","description":"The decline threshold saved when this document was evaluated. Later workflow edits do not change it. Null when historical evaluation evidence is unavailable."},{"type":"null","description":"The decline threshold saved when this document was evaluated. Later workflow edits do not change it. Null when historical evaluation evidence is unavailable."}]},"review_threshold":{"oneOf":[{"type":"number","description":"The review threshold saved when this document was evaluated. Later workflow edits do not change it. Null when historical evaluation evidence is unavailable."},{"type":"null","description":"The review threshold saved when this document was evaluated. Later workflow edits do not change it. Null when historical evaluation evidence is unavailable."}]},"bucket":{"oneOf":[{"type":"string","enum":["approve","review","decline",null],"description":"The fraud-type bucket saved at evaluation time. Null when there is no usable score, the check was not applied, or historical evaluation evidence is unavailable. Later workflow edits do not change it."},{"type":"null","enum":["approve","review","decline",null],"description":"The fraud-type bucket saved at evaluation time. Null when there is no usable score, the check was not applied, or historical evaluation evidence is unavailable. Later workflow edits do not change it."}]}},"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].document_liveness.oneOf.0.printed_copy.oneOf.1","typeLabel":"null"}],"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].document_liveness.oneOf.0.printed_copy","typeLabel":"object | null"},"screen_replay":{"oneOf":[{"type":"object","properties":{"score":{"oneOf":[{"type":"number","description":"Likelihood that the document is genuine for this fraud type, 0-100 (higher = more likely genuine). The lowest of the two sides - the value the decision used. `null` when neither side produced a usable score.","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].document_liveness.oneOf.0.screen_replay.oneOf.0.score.oneOf.0","typeLabel":"number"},{"type":"null","description":"Likelihood that the document is genuine for this fraud type, 0-100 (higher = more likely genuine). The lowest of the two sides - the value the decision used. `null` when neither side produced a usable score.","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].document_liveness.oneOf.0.screen_replay.oneOf.0.score.oneOf.1","typeLabel":"null"}],"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].document_liveness.oneOf.0.screen_replay.oneOf.0.score","typeLabel":"number | null"},"front":{"oneOf":[{"type":"number","description":"Score for the front side; `null` when not captured or when the score was dropped.","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].document_liveness.oneOf.0.screen_replay.oneOf.0.front.oneOf.0","typeLabel":"number"},{"type":"null","description":"Score for the front side; `null` when not captured or when the score was dropped.","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].document_liveness.oneOf.0.screen_replay.oneOf.0.front.oneOf.1","typeLabel":"null"}],"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].document_liveness.oneOf.0.screen_replay.oneOf.0.front","typeLabel":"number | null"},"back":{"oneOf":[{"type":"number","description":"Score for the back side; `null` when not captured or when the score was dropped.","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].document_liveness.oneOf.0.screen_replay.oneOf.0.back.oneOf.0","typeLabel":"number"},{"type":"null","description":"Score for the back side; `null` when not captured or when the score was dropped.","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].document_liveness.oneOf.0.screen_replay.oneOf.0.back.oneOf.1","typeLabel":"null"}],"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].document_liveness.oneOf.0.screen_replay.oneOf.0.back","typeLabel":"number | null"},"decline_threshold":{"oneOf":[{"type":"number","description":"The decline threshold saved when this document was evaluated. Later workflow edits do not change it. Null when historical evaluation evidence is unavailable.","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].document_liveness.oneOf.0.screen_replay.oneOf.0.decline_threshold.oneOf.0","typeLabel":"number"},{"type":"null","description":"The decline threshold saved when this document was evaluated. Later workflow edits do not change it. Null when historical evaluation evidence is unavailable.","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].document_liveness.oneOf.0.screen_replay.oneOf.0.decline_threshold.oneOf.1","typeLabel":"null"}],"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].document_liveness.oneOf.0.screen_replay.oneOf.0.decline_threshold","typeLabel":"number | null"},"review_threshold":{"oneOf":[{"type":"number","description":"The review threshold saved when this document was evaluated. Later workflow edits do not change it. Null when historical evaluation evidence is unavailable.","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].document_liveness.oneOf.0.screen_replay.oneOf.0.review_threshold.oneOf.0","typeLabel":"number"},{"type":"null","description":"The review threshold saved when this document was evaluated. Later workflow edits do not change it. Null when historical evaluation evidence is unavailable.","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].document_liveness.oneOf.0.screen_replay.oneOf.0.review_threshold.oneOf.1","typeLabel":"null"}],"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].document_liveness.oneOf.0.screen_replay.oneOf.0.review_threshold","typeLabel":"number | null"},"bucket":{"oneOf":[{"type":"string","enum":["approve","review","decline",null],"description":"The fraud-type bucket saved at evaluation time. Null when there is no usable score, the check was not applied, or historical evaluation evidence is unavailable. Later workflow edits do not change it.","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].document_liveness.oneOf.0.screen_replay.oneOf.0.bucket.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["approve","review","decline",null],"description":"The fraud-type bucket saved at evaluation time. Null when there is no usable score, the check was not applied, or historical evaluation evidence is unavailable. Later workflow edits do not change it.","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].document_liveness.oneOf.0.screen_replay.oneOf.0.bucket.oneOf.1","typeLabel":"null"}],"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].document_liveness.oneOf.0.screen_replay.oneOf.0.bucket","typeLabel":"enum\u003cstring> | null"}},"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].document_liveness.oneOf.0.screen_replay.oneOf.0","typeLabel":"object"},{"type":"null","properties":{"score":{"oneOf":[{"type":"number","description":"Likelihood that the document is genuine for this fraud type, 0-100 (higher = more likely genuine). The lowest of the two sides - the value the decision used. `null` when neither side produced a usable score."},{"type":"null","description":"Likelihood that the document is genuine for this fraud type, 0-100 (higher = more likely genuine). The lowest of the two sides - the value the decision used. `null` when neither side produced a usable score."}]},"front":{"oneOf":[{"type":"number","description":"Score for the front side; `null` when not captured or when the score was dropped."},{"type":"null","description":"Score for the front side; `null` when not captured or when the score was dropped."}]},"back":{"oneOf":[{"type":"number","description":"Score for the back side; `null` when not captured or when the score was dropped."},{"type":"null","description":"Score for the back side; `null` when not captured or when the score was dropped."}]},"decline_threshold":{"oneOf":[{"type":"number","description":"The decline threshold saved when this document was evaluated. Later workflow edits do not change it. Null when historical evaluation evidence is unavailable."},{"type":"null","description":"The decline threshold saved when this document was evaluated. Later workflow edits do not change it. Null when historical evaluation evidence is unavailable."}]},"review_threshold":{"oneOf":[{"type":"number","description":"The review threshold saved when this document was evaluated. Later workflow edits do not change it. Null when historical evaluation evidence is unavailable."},{"type":"null","description":"The review threshold saved when this document was evaluated. Later workflow edits do not change it. Null when historical evaluation evidence is unavailable."}]},"bucket":{"oneOf":[{"type":"string","enum":["approve","review","decline",null],"description":"The fraud-type bucket saved at evaluation time. Null when there is no usable score, the check was not applied, or historical evaluation evidence is unavailable. Later workflow edits do not change it."},{"type":"null","enum":["approve","review","decline",null],"description":"The fraud-type bucket saved at evaluation time. Null when there is no usable score, the check was not applied, or historical evaluation evidence is unavailable. Later workflow edits do not change it."}]}},"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].document_liveness.oneOf.0.screen_replay.oneOf.1","typeLabel":"null"}],"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].document_liveness.oneOf.0.screen_replay","typeLabel":"object | null"}},"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].document_liveness.oneOf.0","typeLabel":"object"},{"type":"null","description":"Document-liveness scores per fraud type, reported whether or not a warning fired, so an approved document can still be audited. `null` when the check did not run.","properties":{"portrait_replace":{"oneOf":[{"type":"object","properties":{"score":{"oneOf":[{"type":"number","description":"Likelihood that the document is genuine for this fraud type, 0-100 (higher = more likely genuine). The lowest of the two sides - the value the decision used. `null` when neither side produced a usable score."},{"type":"null","description":"Likelihood that the document is genuine for this fraud type, 0-100 (higher = more likely genuine). The lowest of the two sides - the value the decision used. `null` when neither side produced a usable score."}]},"front":{"oneOf":[{"type":"number","description":"Score for the front side; `null` when not captured or when the score was dropped."},{"type":"null","description":"Score for the front side; `null` when not captured or when the score was dropped."}]},"back":{"oneOf":[{"type":"number","description":"Score for the back side; `null` when not captured or when the score was dropped."},{"type":"null","description":"Score for the back side; `null` when not captured or when the score was dropped."}]},"decline_threshold":{"oneOf":[{"type":"number","description":"The decline threshold saved when this document was evaluated. Later workflow edits do not change it. Null when historical evaluation evidence is unavailable."},{"type":"null","description":"The decline threshold saved when this document was evaluated. Later workflow edits do not change it. Null when historical evaluation evidence is unavailable."}]},"review_threshold":{"oneOf":[{"type":"number","description":"The review threshold saved when this document was evaluated. Later workflow edits do not change it. Null when historical evaluation evidence is unavailable."},{"type":"null","description":"The review threshold saved when this document was evaluated. Later workflow edits do not change it. Null when historical evaluation evidence is unavailable."}]},"bucket":{"oneOf":[{"type":"string","enum":["approve","review","decline",null],"description":"The fraud-type bucket saved at evaluation time. Null when there is no usable score, the check was not applied, or historical evaluation evidence is unavailable. Later workflow edits do not change it."},{"type":"null","enum":["approve","review","decline",null],"description":"The fraud-type bucket saved at evaluation time. Null when there is no usable score, the check was not applied, or historical evaluation evidence is unavailable. Later workflow edits do not change it."}]}}},{"type":"null","properties":{"score":{"oneOf":[{"type":"number","description":"Likelihood that the document is genuine for this fraud type, 0-100 (higher = more likely genuine). The lowest of the two sides - the value the decision used. `null` when neither side produced a usable score."},{"type":"null","description":"Likelihood that the document is genuine for this fraud type, 0-100 (higher = more likely genuine). The lowest of the two sides - the value the decision used. `null` when neither side produced a usable score."}]},"front":{"oneOf":[{"type":"number","description":"Score for the front side; `null` when not captured or when the score was dropped."},{"type":"null","description":"Score for the front side; `null` when not captured or when the score was dropped."}]},"back":{"oneOf":[{"type":"number","description":"Score for the back side; `null` when not captured or when the score was dropped."},{"type":"null","description":"Score for the back side; `null` when not captured or when the score was dropped."}]},"decline_threshold":{"oneOf":[{"type":"number","description":"The decline threshold saved when this document was evaluated. Later workflow edits do not change it. Null when historical evaluation evidence is unavailable."},{"type":"null","description":"The decline threshold saved when this document was evaluated. Later workflow edits do not change it. Null when historical evaluation evidence is unavailable."}]},"review_threshold":{"oneOf":[{"type":"number","description":"The review threshold saved when this document was evaluated. Later workflow edits do not change it. Null when historical evaluation evidence is unavailable."},{"type":"null","description":"The review threshold saved when this document was evaluated. Later workflow edits do not change it. Null when historical evaluation evidence is unavailable."}]},"bucket":{"oneOf":[{"type":"string","enum":["approve","review","decline",null],"description":"The fraud-type bucket saved at evaluation time. Null when there is no usable score, the check was not applied, or historical evaluation evidence is unavailable. Later workflow edits do not change it."},{"type":"null","enum":["approve","review","decline",null],"description":"The fraud-type bucket saved at evaluation time. Null when there is no usable score, the check was not applied, or historical evaluation evidence is unavailable. Later workflow edits do not change it."}]}}}]},"printed_copy":{"oneOf":[{"type":"object","properties":{"score":{"oneOf":[{"type":"number","description":"Likelihood that the document is genuine for this fraud type, 0-100 (higher = more likely genuine). The lowest of the two sides - the value the decision used. `null` when neither side produced a usable score."},{"type":"null","description":"Likelihood that the document is genuine for this fraud type, 0-100 (higher = more likely genuine). The lowest of the two sides - the value the decision used. `null` when neither side produced a usable score."}]},"front":{"oneOf":[{"type":"number","description":"Score for the front side; `null` when not captured or when the score was dropped."},{"type":"null","description":"Score for the front side; `null` when not captured or when the score was dropped."}]},"back":{"oneOf":[{"type":"number","description":"Score for the back side; `null` when not captured or when the score was dropped."},{"type":"null","description":"Score for the back side; `null` when not captured or when the score was dropped."}]},"decline_threshold":{"oneOf":[{"type":"number","description":"The decline threshold saved when this document was evaluated. Later workflow edits do not change it. Null when historical evaluation evidence is unavailable."},{"type":"null","description":"The decline threshold saved when this document was evaluated. Later workflow edits do not change it. Null when historical evaluation evidence is unavailable."}]},"review_threshold":{"oneOf":[{"type":"number","description":"The review threshold saved when this document was evaluated. Later workflow edits do not change it. Null when historical evaluation evidence is unavailable."},{"type":"null","description":"The review threshold saved when this document was evaluated. Later workflow edits do not change it. Null when historical evaluation evidence is unavailable."}]},"bucket":{"oneOf":[{"type":"string","enum":["approve","review","decline",null],"description":"The fraud-type bucket saved at evaluation time. Null when there is no usable score, the check was not applied, or historical evaluation evidence is unavailable. Later workflow edits do not change it."},{"type":"null","enum":["approve","review","decline",null],"description":"The fraud-type bucket saved at evaluation time. Null when there is no usable score, the check was not applied, or historical evaluation evidence is unavailable. Later workflow edits do not change it."}]}}},{"type":"null","properties":{"score":{"oneOf":[{"type":"number","description":"Likelihood that the document is genuine for this fraud type, 0-100 (higher = more likely genuine). The lowest of the two sides - the value the decision used. `null` when neither side produced a usable score."},{"type":"null","description":"Likelihood that the document is genuine for this fraud type, 0-100 (higher = more likely genuine). The lowest of the two sides - the value the decision used. `null` when neither side produced a usable score."}]},"front":{"oneOf":[{"type":"number","description":"Score for the front side; `null` when not captured or when the score was dropped."},{"type":"null","description":"Score for the front side; `null` when not captured or when the score was dropped."}]},"back":{"oneOf":[{"type":"number","description":"Score for the back side; `null` when not captured or when the score was dropped."},{"type":"null","description":"Score for the back side; `null` when not captured or when the score was dropped."}]},"decline_threshold":{"oneOf":[{"type":"number","description":"The decline threshold saved when this document was evaluated. Later workflow edits do not change it. Null when historical evaluation evidence is unavailable."},{"type":"null","description":"The decline threshold saved when this document was evaluated. Later workflow edits do not change it. Null when historical evaluation evidence is unavailable."}]},"review_threshold":{"oneOf":[{"type":"number","description":"The review threshold saved when this document was evaluated. Later workflow edits do not change it. Null when historical evaluation evidence is unavailable."},{"type":"null","description":"The review threshold saved when this document was evaluated. Later workflow edits do not change it. Null when historical evaluation evidence is unavailable."}]},"bucket":{"oneOf":[{"type":"string","enum":["approve","review","decline",null],"description":"The fraud-type bucket saved at evaluation time. Null when there is no usable score, the check was not applied, or historical evaluation evidence is unavailable. Later workflow edits do not change it."},{"type":"null","enum":["approve","review","decline",null],"description":"The fraud-type bucket saved at evaluation time. Null when there is no usable score, the check was not applied, or historical evaluation evidence is unavailable. Later workflow edits do not change it."}]}}}]},"screen_replay":{"oneOf":[{"type":"object","properties":{"score":{"oneOf":[{"type":"number","description":"Likelihood that the document is genuine for this fraud type, 0-100 (higher = more likely genuine). The lowest of the two sides - the value the decision used. `null` when neither side produced a usable score."},{"type":"null","description":"Likelihood that the document is genuine for this fraud type, 0-100 (higher = more likely genuine). The lowest of the two sides - the value the decision used. `null` when neither side produced a usable score."}]},"front":{"oneOf":[{"type":"number","description":"Score for the front side; `null` when not captured or when the score was dropped."},{"type":"null","description":"Score for the front side; `null` when not captured or when the score was dropped."}]},"back":{"oneOf":[{"type":"number","description":"Score for the back side; `null` when not captured or when the score was dropped."},{"type":"null","description":"Score for the back side; `null` when not captured or when the score was dropped."}]},"decline_threshold":{"oneOf":[{"type":"number","description":"The decline threshold saved when this document was evaluated. Later workflow edits do not change it. Null when historical evaluation evidence is unavailable."},{"type":"null","description":"The decline threshold saved when this document was evaluated. Later workflow edits do not change it. Null when historical evaluation evidence is unavailable."}]},"review_threshold":{"oneOf":[{"type":"number","description":"The review threshold saved when this document was evaluated. Later workflow edits do not change it. Null when historical evaluation evidence is unavailable."},{"type":"null","description":"The review threshold saved when this document was evaluated. Later workflow edits do not change it. Null when historical evaluation evidence is unavailable."}]},"bucket":{"oneOf":[{"type":"string","enum":["approve","review","decline",null],"description":"The fraud-type bucket saved at evaluation time. Null when there is no usable score, the check was not applied, or historical evaluation evidence is unavailable. Later workflow edits do not change it."},{"type":"null","enum":["approve","review","decline",null],"description":"The fraud-type bucket saved at evaluation time. Null when there is no usable score, the check was not applied, or historical evaluation evidence is unavailable. Later workflow edits do not change it."}]}}},{"type":"null","properties":{"score":{"oneOf":[{"type":"number","description":"Likelihood that the document is genuine for this fraud type, 0-100 (higher = more likely genuine). The lowest of the two sides - the value the decision used. `null` when neither side produced a usable score."},{"type":"null","description":"Likelihood that the document is genuine for this fraud type, 0-100 (higher = more likely genuine). The lowest of the two sides - the value the decision used. `null` when neither side produced a usable score."}]},"front":{"oneOf":[{"type":"number","description":"Score for the front side; `null` when not captured or when the score was dropped."},{"type":"null","description":"Score for the front side; `null` when not captured or when the score was dropped."}]},"back":{"oneOf":[{"type":"number","description":"Score for the back side; `null` when not captured or when the score was dropped."},{"type":"null","description":"Score for the back side; `null` when not captured or when the score was dropped."}]},"decline_threshold":{"oneOf":[{"type":"number","description":"The decline threshold saved when this document was evaluated. Later workflow edits do not change it. Null when historical evaluation evidence is unavailable."},{"type":"null","description":"The decline threshold saved when this document was evaluated. Later workflow edits do not change it. Null when historical evaluation evidence is unavailable."}]},"review_threshold":{"oneOf":[{"type":"number","description":"The review threshold saved when this document was evaluated. Later workflow edits do not change it. Null when historical evaluation evidence is unavailable."},{"type":"null","description":"The review threshold saved when this document was evaluated. Later workflow edits do not change it. Null when historical evaluation evidence is unavailable."}]},"bucket":{"oneOf":[{"type":"string","enum":["approve","review","decline",null],"description":"The fraud-type bucket saved at evaluation time. Null when there is no usable score, the check was not applied, or historical evaluation evidence is unavailable. Later workflow edits do not change it."},{"type":"null","enum":["approve","review","decline",null],"description":"The fraud-type bucket saved at evaluation time. Null when there is no usable score, the check was not applied, or historical evaluation evidence is unavailable. Later workflow edits do not change it."}]}}}]}},"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].document_liveness.oneOf.1","typeLabel":"null"}],"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].document_liveness","typeLabel":"object | null"},"address_validation":{"oneOf":[{"type":"object","description":"Address Validation of the address printed on this document: whether it exists and its normalised form, as the document read it (a later correction of `address` does not run it again). Present when this ID verification step enabled the Address Validation add-on; `null` otherwise.","required":["status","verification_level","address","formatted_address","latitude","longitude","address_type","is_residential"],"properties":{"status":{"type":"string","enum":["verified","partially_verified","not_verified","unavailable"],"description":"`verified`: the address was confirmed down to the building (or the flat or PO box). `partially_verified`: it was confirmed only to the street, or to the most precise level the postal reference data holds for that place. `not_verified`: only the region or the city matched, or nothing did. `unavailable`: the validation could not run (for example the reference service did not answer); it is not charged and never affects a verification.","isRequired":true,"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].address_validation.oneOf.0.status","typeLabel":"enum\u003cstring>"},"verification_level":{"oneOf":[{"type":"string","enum":["administrative_area","locality","thoroughfare","premise","delivery_point",null],"description":"The most precise level the address was matched to. `null` when nothing matched or `status` is `unavailable`.","isRequired":true,"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].address_validation.oneOf.0.verification_level.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["administrative_area","locality","thoroughfare","premise","delivery_point",null],"description":"The most precise level the address was matched to. `null` when nothing matched or `status` is `unavailable`.","isRequired":true,"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].address_validation.oneOf.0.verification_level.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].address_validation.oneOf.0.verification_level","typeLabel":"enum\u003cstring> | null"},"address":{"oneOf":[{"type":"object","description":"The normalised address. `null` when `status` is `unavailable`.","properties":{"address_line_1":{"oneOf":[{"type":"string","description":"First delivery line, written the way the country writes it.","example":"1600 Amphitheatre Pkwy","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].address_validation.oneOf.0.address.oneOf.0.address_line_1.oneOf.0","typeLabel":"string"},{"type":"null","description":"First delivery line, written the way the country writes it.","example":"1600 Amphitheatre Pkwy","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].address_validation.oneOf.0.address.oneOf.0.address_line_1.oneOf.1","typeLabel":"null"}],"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].address_validation.oneOf.0.address.oneOf.0.address_line_1","typeLabel":"string | null"},"address_line_2":{"oneOf":[{"type":"string","description":"Second delivery line (a flat, building or neighbourhood), when the address has one.","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].address_validation.oneOf.0.address.oneOf.0.address_line_2.oneOf.0","typeLabel":"string"},{"type":"null","description":"Second delivery line (a flat, building or neighbourhood), when the address has one.","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].address_validation.oneOf.0.address.oneOf.0.address_line_2.oneOf.1","typeLabel":"null"}],"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].address_validation.oneOf.0.address.oneOf.0.address_line_2","typeLabel":"string | null"},"city":{"oneOf":[{"type":"string","example":"Mountain View","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].address_validation.oneOf.0.address.oneOf.0.city.oneOf.0","typeLabel":"string"},{"type":"null","example":"Mountain View","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].address_validation.oneOf.0.address.oneOf.0.city.oneOf.1","typeLabel":"null"}],"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].address_validation.oneOf.0.address.oneOf.0.city","typeLabel":"string | null"},"region":{"oneOf":[{"type":"string","description":"State, province or region.","example":"CA","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].address_validation.oneOf.0.address.oneOf.0.region.oneOf.0","typeLabel":"string"},{"type":"null","description":"State, province or region.","example":"CA","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].address_validation.oneOf.0.address.oneOf.0.region.oneOf.1","typeLabel":"null"}],"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].address_validation.oneOf.0.address.oneOf.0.region","typeLabel":"string | null"},"postal_code":{"oneOf":[{"type":"string","example":"94043-1351","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].address_validation.oneOf.0.address.oneOf.0.postal_code.oneOf.0","typeLabel":"string"},{"type":"null","example":"94043-1351","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].address_validation.oneOf.0.address.oneOf.0.postal_code.oneOf.1","typeLabel":"null"}],"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].address_validation.oneOf.0.address.oneOf.0.postal_code","typeLabel":"string | null"},"country":{"oneOf":[{"type":"string","description":"ISO 3166-1 alpha-2 country code.","example":"US","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].address_validation.oneOf.0.address.oneOf.0.country.oneOf.0","typeLabel":"string"},{"type":"null","description":"ISO 3166-1 alpha-2 country code.","example":"US","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].address_validation.oneOf.0.address.oneOf.0.country.oneOf.1","typeLabel":"null"}],"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].address_validation.oneOf.0.address.oneOf.0.country","typeLabel":"string | null"}},"isRequired":true,"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].address_validation.oneOf.0.address.oneOf.0","typeLabel":"object"},{"type":"null","description":"The normalised address. `null` when `status` is `unavailable`.","properties":{"address_line_1":{"oneOf":[{"type":"string","description":"First delivery line, written the way the country writes it.","example":"1600 Amphitheatre Pkwy"},{"type":"null","description":"First delivery line, written the way the country writes it.","example":"1600 Amphitheatre Pkwy"}]},"address_line_2":{"oneOf":[{"type":"string","description":"Second delivery line (a flat, building or neighbourhood), when the address has one."},{"type":"null","description":"Second delivery line (a flat, building or neighbourhood), when the address has one."}]},"city":{"oneOf":[{"type":"string","example":"Mountain View"},{"type":"null","example":"Mountain View"}]},"region":{"oneOf":[{"type":"string","description":"State, province or region.","example":"CA"},{"type":"null","description":"State, province or region.","example":"CA"}]},"postal_code":{"oneOf":[{"type":"string","example":"94043-1351"},{"type":"null","example":"94043-1351"}]},"country":{"oneOf":[{"type":"string","description":"ISO 3166-1 alpha-2 country code.","example":"US"},{"type":"null","description":"ISO 3166-1 alpha-2 country code.","example":"US"}]}},"isRequired":true,"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].address_validation.oneOf.0.address.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].address_validation.oneOf.0.address","typeLabel":"object | null"},"formatted_address":{"oneOf":[{"type":"string","description":"The normalised address on one line.","example":"1600 Amphitheatre Pkwy, Mountain View CA 94043-1351","isRequired":true,"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].address_validation.oneOf.0.formatted_address.oneOf.0","typeLabel":"string"},{"type":"null","description":"The normalised address on one line.","example":"1600 Amphitheatre Pkwy, Mountain View CA 94043-1351","isRequired":true,"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].address_validation.oneOf.0.formatted_address.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].address_validation.oneOf.0.formatted_address","typeLabel":"string | null"},"latitude":{"oneOf":[{"type":"number","example":37.422022,"isRequired":true,"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].address_validation.oneOf.0.latitude.oneOf.0","typeLabel":"number"},{"type":"null","example":37.422022,"isRequired":true,"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].address_validation.oneOf.0.latitude.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].address_validation.oneOf.0.latitude","typeLabel":"number | null"},"longitude":{"oneOf":[{"type":"number","example":-122.08429,"isRequired":true,"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].address_validation.oneOf.0.longitude.oneOf.0","typeLabel":"number"},{"type":"null","example":-122.08429,"isRequired":true,"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].address_validation.oneOf.0.longitude.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].address_validation.oneOf.0.longitude","typeLabel":"number | null"},"address_type":{"oneOf":[{"type":"string","enum":["street","po_box","high_rise","rural_route","general_delivery","firm","building",null],"description":"The kind of delivery point the address is, for United States and Canadian addresses: `street`, `po_box` (a PO box or lock box), `high_rise` (a high-rise or business complex), `rural_route`, `general_delivery`, `firm` (a firm or company address) or `building`. `null` for addresses in other countries, when the address has no type on record, and when `status` is `unavailable`.","isRequired":true,"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].address_validation.oneOf.0.address_type.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["street","po_box","high_rise","rural_route","general_delivery","firm","building",null],"description":"The kind of delivery point the address is, for United States and Canadian addresses: `street`, `po_box` (a PO box or lock box), `high_rise` (a high-rise or business complex), `rural_route`, `general_delivery`, `firm` (a firm or company address) or `building`. `null` for addresses in other countries, when the address has no type on record, and when `status` is `unavailable`.","isRequired":true,"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].address_validation.oneOf.0.address_type.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].address_validation.oneOf.0.address_type","typeLabel":"enum\u003cstring> | null"},"is_residential":{"oneOf":[{"type":"boolean","description":"`true` when the address is a residence, `false` when it is a business. `null` when this is unknown, when it is not available for the address's country, and when `status` is `unavailable`. Available for addresses in the United States, Great Britain, the Netherlands and Ireland.","isRequired":true,"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].address_validation.oneOf.0.is_residential.oneOf.0","typeLabel":"boolean"},{"type":"null","description":"`true` when the address is a residence, `false` when it is a business. `null` when this is unknown, when it is not available for the address's country, and when `status` is `unavailable`. Available for addresses in the United States, Great Britain, the Netherlands and Ireland.","isRequired":true,"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].address_validation.oneOf.0.is_residential.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].address_validation.oneOf.0.is_residential","typeLabel":"boolean | null"}},"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].address_validation.oneOf.0","typeLabel":"object"},{"type":"null","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].address_validation.oneOf.1","typeLabel":"null"}],"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].address_validation","typeLabel":"object | null"},"region":{"oneOf":[{"type":"string","description":"Region or state of the document's issuing country where the document identifies one.","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].region.oneOf.0","typeLabel":"string"},{"type":"null","description":"Region or state of the document's issuing country where the document identifies one.","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].region.oneOf.1","typeLabel":"null"}],"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].region","typeLabel":"string | null"},"extracted_data":{"oneOf":[{"type":"object","additionalProperties":true,"description":"Snapshot of the data extracted from the document that the person was shown to review, kept next to the confirmed values so you can compare what was read with what the person confirmed. `null` when the person was not asked to review.","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].extracted_data.oneOf.0","typeLabel":"object"},{"type":"null","additionalProperties":true,"description":"Snapshot of the data extracted from the document that the person was shown to review, kept next to the confirmed values so you can compare what was read with what the person confirmed. `null` when the person was not asked to review.","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].extracted_data.oneOf.1","typeLabel":"null"}],"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].extracted_data","typeLabel":"object | null"},"barcodes":{"type":"array","items":{"type":"object","additionalProperties":true,"uniqueKey":"id_verifications.oneOf.0.items.[INDEX].barcodes.items.[INDEX]","typeLabel":"object"},"description":"Data read from the document's barcodes. Empty when the document has none or none was read.","uniqueKey":"id_verifications.oneOf.0.items.[INDEX].barcodes","typeLabel":"object[]"}},"uniqueKey":"id_verifications.oneOf.0.items.[INDEX]","typeLabel":"object"},"uniqueKey":"id_verifications.oneOf.0","typeLabel":"object[]"},{"type":"null","description":"**Array of ID verification (OCR) reports** produced by ID-document steps in the workflow graph. Always a JSON array — read `id_verifications[0]` and iterate if your workflow can run more than one ID check (for example a primary check plus a step-up). `null` until at least one ID step has produced data. Each item is the full report, including `node_id`, feature-level `status`, extracted document fields, image URLs, quality scores, MRZ, address parsing, cross-session matches, and `warnings[]`.","items":{"type":"object","description":"One ID verification report - the full report for a single ID Verification step. `verification_method` says which of the three methods produced it (document capture, non-doc lookup or wallet sign-in) and the method-specific evidence block is populated accordingly.","properties":{"node_id":{"type":"string","description":"Workflow graph node id of the OCR step that produced this report."},"verification_method":{"type":"string","enum":["document","id_lookup","wallet"],"description":"Which ID Verification method produced this report. `document` - the user photographed a physical ID (the default, and the value on every session created before the other methods existed). `id_lookup` - the user typed their national ID number and it was checked against a government register or another authoritative source for that country (`id_lookup.source` names which). `wallet` - the user signed in with a government or bank digital identity."},"assurance":{"type":"string","enum":["documentary","data_match","cryptographic"],"description":"Assurance tier derived from `verification_method`: `documentary` for a document that was captured and checked, `data_match` for details that matched a record held by the source queried, `cryptographic` for attributes an identity provider authenticated and signed."},"wallet_provider":{"oneOf":[{"type":"string","description":"Catalog wallet id when `verification_method` is `wallet` (`mitid`, `bankid_se`, `itsme`, ...). `null` otherwise."},{"type":"null","description":"Catalog wallet id when `verification_method` is `wallet` (`mitid`, `bankid_se`, `itsme`, ...). `null` otherwise."}]},"fallback_from":{"oneOf":[{"type":"object","description":"Why a non-document method did not end the ID step. Set when a lookup or a wallet sign-in failed: on the document verification the user continued with when the country's fallback switch was `fallback_to_document` (`action` is `fallback_to_document`), or on the declined report when it was `decline`. `null` otherwise.","properties":{"method":{"type":"string","enum":["id_lookup","wallet"],"description":"The method that failed."},"reason":{"type":"string","description":"The outcome that ended it, e.g. `no_match`, `provider_error`, `cancelled`, `timeout`."},"action":{"type":"string","enum":["fallback_to_document","decline"],"description":"The configured action that was taken: `fallback_to_document` or `decline`."}}},{"type":"null","description":"Why a non-document method did not end the ID step. Set when a lookup or a wallet sign-in failed: on the document verification the user continued with when the country's fallback switch was `fallback_to_document` (`action` is `fallback_to_document`), or on the declined report when it was `decline`. `null` otherwise.","properties":{"method":{"type":"string","enum":["id_lookup","wallet"],"description":"The method that failed."},"reason":{"type":"string","description":"The outcome that ended it, e.g. `no_match`, `provider_error`, `cancelled`, `timeout`."},"action":{"type":"string","enum":["fallback_to_document","decline"],"description":"The configured action that was taken: `fallback_to_document` or `decline`."}}}]},"id_lookup":{"oneOf":[{"type":"object","description":"Registry evidence. Present only when `verification_method` is `id_lookup`; `null` otherwise.","properties":{"source":{"type":"string","description":"Customer-facing name of the source queried, e.g. `Department of Home Affairs` (a government register) or `UK credit bureau and financial services records` (not a government register). This is the only statement of provenance for the lookup; do not assume a government source."},"checked_at":{"oneOf":[{"type":"string","format":"date-time","description":"When the register answered."},{"type":"null","format":"date-time","description":"When the register answered."}]},"attempts":{"type":"integer","description":"1-based attempt number this report came from."},"max_attempts":{"type":"integer","description":"Attempt budget configured for the country (1 to 5, default 1)."},"outcome":{"oneOf":[{"type":"string","enum":["match","partial_match","no_match","provider_error","format_rejected"],"description":"What the register answered. Only `match`, `partial_match` and `no_match` count against the attempt budget and bill."},{"type":"null","enum":["match","partial_match","no_match","provider_error","format_rejected"],"description":"What the register answered. Only `match`, `partial_match` and `no_match` count against the attempt budget and bill."}]},"comparison":{"type":"array","description":"One row per comparable field the source answered on, plus one row per source error. Comparison rows use the normalised field names below rather than the country's request field keys, because several request fields (first and last name, or any of the identifier aliases) collapse into a single comparison. A source that failed appends a row with `field: \"provider\"` and `result: \"error\"`, so read `result` before treating a row as a field verdict.","items":{"type":"object","required":["field","label","provided","record","result"],"properties":{"field":{"type":"string","enum":["identification_number","full_name","date_of_birth","address","provider"],"description":"Normalised comparison field. `provider` is not a user field: it marks a source error row."},"label":{"type":"string","description":"Display label for the row, e.g. `ID number`, `Full name`, `Provider`."},"provided":{"oneOf":[{"type":"string","description":"What the user typed. `null` on a `provider` error row."},{"type":"null","description":"What the user typed. `null` on a `provider` error row."}]},"record":{"oneOf":[{"type":"string","description":"What the source held. On a `provider` error row this carries the error message instead."},{"type":"null","description":"What the source held. On a `provider` error row this carries the error message instead."}]},"result":{"type":"string","enum":["match","partial","no_match","error"],"description":"Per-field comparison result. `error` appears only on a `provider` row and means that source did not answer; treat it as evidence about the query, never as a field mismatch."}}}},"registry_portrait":{"oneOf":[{"type":"string","format":"uri","description":"Short-lived presigned URL to the portrait the source returned. Only the four government registers that return one (South Africa, Nigeria, Argentina, Panama)."},{"type":"null","format":"uri","description":"Short-lived presigned URL to the portrait the source returned. Only the four government registers that return one (South Africa, Nigeria, Argentina, Panama)."}]},"face_match_score":{"oneOf":[{"type":"number","description":"Selfie against the registry portrait, 0-100. Only where the register returns a portrait."},{"type":"null","description":"Selfie against the registry portrait, 0-100. Only where the register returns a portrait."}]}}},{"type":"null","description":"Registry evidence. Present only when `verification_method` is `id_lookup`; `null` otherwise.","properties":{"source":{"type":"string","description":"Customer-facing name of the source queried, e.g. `Department of Home Affairs` (a government register) or `UK credit bureau and financial services records` (not a government register). This is the only statement of provenance for the lookup; do not assume a government source."},"checked_at":{"oneOf":[{"type":"string","format":"date-time","description":"When the register answered."},{"type":"null","format":"date-time","description":"When the register answered."}]},"attempts":{"type":"integer","description":"1-based attempt number this report came from."},"max_attempts":{"type":"integer","description":"Attempt budget configured for the country (1 to 5, default 1)."},"outcome":{"oneOf":[{"type":"string","enum":["match","partial_match","no_match","provider_error","format_rejected"],"description":"What the register answered. Only `match`, `partial_match` and `no_match` count against the attempt budget and bill."},{"type":"null","enum":["match","partial_match","no_match","provider_error","format_rejected"],"description":"What the register answered. Only `match`, `partial_match` and `no_match` count against the attempt budget and bill."}]},"comparison":{"type":"array","description":"One row per comparable field the source answered on, plus one row per source error. Comparison rows use the normalised field names below rather than the country's request field keys, because several request fields (first and last name, or any of the identifier aliases) collapse into a single comparison. A source that failed appends a row with `field: \"provider\"` and `result: \"error\"`, so read `result` before treating a row as a field verdict.","items":{"type":"object","required":["field","label","provided","record","result"],"properties":{"field":{"type":"string","enum":["identification_number","full_name","date_of_birth","address","provider"],"description":"Normalised comparison field. `provider` is not a user field: it marks a source error row."},"label":{"type":"string","description":"Display label for the row, e.g. `ID number`, `Full name`, `Provider`."},"provided":{"oneOf":[{"type":"string","description":"What the user typed. `null` on a `provider` error row."},{"type":"null","description":"What the user typed. `null` on a `provider` error row."}]},"record":{"oneOf":[{"type":"string","description":"What the source held. On a `provider` error row this carries the error message instead."},{"type":"null","description":"What the source held. On a `provider` error row this carries the error message instead."}]},"result":{"type":"string","enum":["match","partial","no_match","error"],"description":"Per-field comparison result. `error` appears only on a `provider` row and means that source did not answer; treat it as evidence about the query, never as a field mismatch."}}}},"registry_portrait":{"oneOf":[{"type":"string","format":"uri","description":"Short-lived presigned URL to the portrait the source returned. Only the four government registers that return one (South Africa, Nigeria, Argentina, Panama)."},{"type":"null","format":"uri","description":"Short-lived presigned URL to the portrait the source returned. Only the four government registers that return one (South Africa, Nigeria, Argentina, Panama)."}]},"face_match_score":{"oneOf":[{"type":"number","description":"Selfie against the registry portrait, 0-100. Only where the register returns a portrait."},{"type":"null","description":"Selfie against the registry portrait, 0-100. Only where the register returns a portrait."}]}}}]},"wallet_verification":{"oneOf":[{"type":"object","description":"Credential evidence. Present only when `verification_method` is `wallet`; `null` otherwise.","properties":{"provider":{"type":"string","description":"Catalog wallet id, e.g. `mitid`."},"provider_name":{"oneOf":[{"type":"string","description":"Wallet name as the end user knows it, e.g. `MitID`."},{"type":"null","description":"Wallet name as the end user knows it, e.g. `MitID`."}]},"issuing_authority":{"oneOf":[{"type":"string","description":"The authority behind the wallet, e.g. `Danish Agency for Digital Government`."},{"type":"null","description":"The authority behind the wallet, e.g. `Danish Agency for Digital Government`."}]},"issuing_country":{"type":"string","description":"ISO 3166-1 alpha-3 country the wallet was offered in."},"credential_type":{"oneOf":[{"type":"string","description":"Credential the wallet presented, e.g. `person_identification`."},{"type":"null","description":"Credential the wallet presented, e.g. `person_identification`."}]},"level_of_assurance":{"oneOf":[{"type":"string","enum":["low","substantial","high"],"description":"The level of assurance the wallet asserted. A sign-in that asserts less than the level requested fails instead of downgrading."},{"type":"null","enum":["low","substantial","high"],"description":"The level of assurance the wallet asserted. A sign-in that asserts less than the level requested fails instead of downgrading."}]},"verified_at":{"oneOf":[{"type":"string","format":"date-time","description":"The wallet's authentication instant."},{"type":"null","format":"date-time","description":"The wallet's authentication instant."}]},"signature_valid":{"oneOf":[{"type":"boolean","description":"Whether the signed assertion the wallet returned validated."},{"type":"null","description":"Whether the signed assertion the wallet returned validated."}]},"attributes":{"type":"object","additionalProperties":true,"description":"The attributes the wallet shared, keyed as the wallet's catalog entry lists them."},"portrait":{"oneOf":[{"type":"string","format":"uri","description":"Short-lived presigned URL to the portrait the wallet shared, where it shares one."},{"type":"null","format":"uri","description":"Short-lived presigned URL to the portrait the wallet shared, where it shares one."}]},"face_match_score":{"oneOf":[{"type":"number","description":"Selfie against the wallet portrait, 0-100, where the wallet shares one."},{"type":"null","description":"Selfie against the wallet portrait, 0-100, where the wallet shares one."}]}}},{"type":"null","description":"Credential evidence. Present only when `verification_method` is `wallet`; `null` otherwise.","properties":{"provider":{"type":"string","description":"Catalog wallet id, e.g. `mitid`."},"provider_name":{"oneOf":[{"type":"string","description":"Wallet name as the end user knows it, e.g. `MitID`."},{"type":"null","description":"Wallet name as the end user knows it, e.g. `MitID`."}]},"issuing_authority":{"oneOf":[{"type":"string","description":"The authority behind the wallet, e.g. `Danish Agency for Digital Government`."},{"type":"null","description":"The authority behind the wallet, e.g. `Danish Agency for Digital Government`."}]},"issuing_country":{"type":"string","description":"ISO 3166-1 alpha-3 country the wallet was offered in."},"credential_type":{"oneOf":[{"type":"string","description":"Credential the wallet presented, e.g. `person_identification`."},{"type":"null","description":"Credential the wallet presented, e.g. `person_identification`."}]},"level_of_assurance":{"oneOf":[{"type":"string","enum":["low","substantial","high"],"description":"The level of assurance the wallet asserted. A sign-in that asserts less than the level requested fails instead of downgrading."},{"type":"null","enum":["low","substantial","high"],"description":"The level of assurance the wallet asserted. A sign-in that asserts less than the level requested fails instead of downgrading."}]},"verified_at":{"oneOf":[{"type":"string","format":"date-time","description":"The wallet's authentication instant."},{"type":"null","format":"date-time","description":"The wallet's authentication instant."}]},"signature_valid":{"oneOf":[{"type":"boolean","description":"Whether the signed assertion the wallet returned validated."},{"type":"null","description":"Whether the signed assertion the wallet returned validated."}]},"attributes":{"type":"object","additionalProperties":true,"description":"The attributes the wallet shared, keyed as the wallet's catalog entry lists them."},"portrait":{"oneOf":[{"type":"string","format":"uri","description":"Short-lived presigned URL to the portrait the wallet shared, where it shares one."},{"type":"null","format":"uri","description":"Short-lived presigned URL to the portrait the wallet shared, where it shares one."}]},"face_match_score":{"oneOf":[{"type":"number","description":"Selfie against the wallet portrait, 0-100, where the wallet shares one."},{"type":"null","description":"Selfie against the wallet portrait, 0-100, where the wallet shares one."}]}}}]},"status":{"type":"string","enum":["Not Finished","Approved","Declined","In Review","Expired"],"description":"Feature-level status of this ID verification step. Independent of the top-level session `status` — a session can reach its overall decision while an individual feature stays `In Review`."},"document_type":{"type":"string","description":"Type of identity document"},"document_subtype":{"oneOf":[{"type":"string","description":"Accepted document subtype code from the workflow document settings, including the document region when applicable. Examples: `ID_CARD_GENERIC`, `QUEENSLAND_DRIVER_LICENSE_GENERIC`."},{"type":"null","description":"Accepted document subtype code from the workflow document settings, including the document region when applicable. Examples: `ID_CARD_GENERIC`, `QUEENSLAND_DRIVER_LICENSE_GENERIC`."}]},"document_number":{"type":"string","description":"Document identification number"},"personal_number":{"type":"string","description":"Personal identification number"},"portrait_image":{"type":"string","format":"uri","description":"URL of the portrait image"},"front_image":{"type":"string","format":"uri","description":"URL of the front document image"},"front_video":{"type":"string","format":"uri","description":"URL of the front document video"},"back_image":{"type":"string","format":"uri","description":"URL of the back document image"},"back_video":{"type":"string","format":"uri","description":"URL of the back document video"},"full_front_image":{"type":"string","format":"uri","description":"URL of the full front document image"},"full_back_image":{"type":"string","format":"uri","description":"URL of the full back document image"},"front_image_camera_front":{"type":"string","format":"uri","description":"URL of the front document image captured from the front-facing camera"},"back_image_camera_front":{"type":"string","format":"uri","description":"URL of the back document image captured from the front-facing camera"},"date_of_birth":{"type":"string","format":"date","description":"Date of birth from document"},"age":{"type":"integer","description":"Calculated age from date of birth"},"expiration_date":{"type":"string","format":"date","description":"Document expiration date"},"date_of_issue":{"type":"string","format":"date","description":"Document issue date"},"issuing_state":{"type":"string","description":"ISO code of issuing state"},"issuing_state_name":{"type":"string","description":"Full name of issuing state"},"first_name":{"type":"string","description":"First name from document"},"last_name":{"type":"string","description":"Last name from document"},"full_name":{"type":"string","description":"Full name from document"},"gender":{"type":"string","description":"Gender from document"},"address":{"type":"string","description":"Raw address from document"},"formatted_address":{"type":"string","description":"Formatted full address"},"place_of_birth":{"type":"string","description":"Place of birth from document"},"marital_status":{"type":"string","description":"Marital status from document"},"nationality":{"type":"string","description":"ISO nationality code"},"extra_fields":{"type":"object","description":"Additional document fields. Includes document-specific attributes (e.g. `dl_categories`, `blood_group`, `sponsor`, `employer`, `dl_class_code_b_from`, `dl_class_code_b_to`). Driver license class validity dates are returned as `dl_class_code_\u003cclass>_from` and `dl_class_code_\u003cclass>_to`, and per-class restriction/information codes (e.g. column 12 of UK licences) as `dl_class_code_\u003cclass>_notes`. When the document carries names, address, or place of birth in multiple scripts, this object also includes alternate-script versions of those fields. The workflow setting `preferred_characters` (`latin` or `non_latin`) controls which script populates the top-level fields (`first_name`, `last_name`, `full_name`, `address`, `place_of_birth`); the opposite script lands here as `first_name_non_latin` / `last_name_non_latin` / `full_name_non_latin` / `middle_name_non_latin` / `address_non_latin` / `place_of_birth_non_latin` (when `preferred_characters` is `latin`) or with a `_latin` suffix (when `preferred_characters` is `non_latin`). Keys appear only when the OCR actually extracts a real alternate-script value — a field whose alternate value is in the same script as the preferred set (for example, a Cyrillic-labelled field whose OCR value came back in Latin homoglyphs) is skipped. When `preferred_characters` is `latin` but the document only carries non-Latin text, Didit transliterates the extracted values and exposes `first_name_latin` / `last_name_latin` / etc. as a fallback.","additionalProperties":true,"properties":{"dl_categories":{"type":"array","items":{"type":"string"}},"blood_group":{"oneOf":[{"type":"string"},{"type":"null"}]},"first_name_non_latin":{"type":"string","description":"First name in the non-Latin script when `preferred_characters=latin` and a non-Latin version is present on the document (e.g. `Айна` for a Kyrgyz ID)."},"last_name_non_latin":{"type":"string","description":"Surname in the non-Latin script when `preferred_characters=latin` and a non-Latin version is present on the document."},"middle_name_non_latin":{"type":"string","description":"Middle name / patronymic in the non-Latin script when `preferred_characters=latin` and a non-Latin version is present on the document."},"full_name_non_latin":{"type":"string","description":"Composed full name in the non-Latin script. Reconstructed from the individual components when both first and last names are available."},"address_non_latin":{"type":"string","description":"Address in the non-Latin script when `preferred_characters=latin` and a non-Latin version is present on the document."},"place_of_birth_non_latin":{"type":"string","description":"Place of birth in the non-Latin script when `preferred_characters=latin` and a non-Latin version is present on the document."},"first_name_latin":{"type":"string","description":"First name in Latin script. Populated when `preferred_characters=non_latin` and a Latin version is present on the document, or — as a transliteration fallback — when `preferred_characters=latin` but the document only carries non-Latin text."},"last_name_latin":{"type":"string","description":"Surname in Latin script. Same rules as `first_name_latin`."},"middle_name_latin":{"type":"string","description":"Middle name / patronymic in Latin script. Same rules as `first_name_latin`."},"full_name_latin":{"type":"string","description":"Composed full name in Latin script. Always reconstructed from the individual components when both first and last names are available."},"address_latin":{"type":"string","description":"Address in Latin script. Same rules as `first_name_latin`."},"place_of_birth_latin":{"type":"string","description":"Place of birth in Latin script. Same rules as `first_name_latin`."}}},"mrz":{"oneOf":[{"type":"object","description":"Parsed Machine-Readable Zone (MRZ) fields extracted from the document. `null` if no MRZ was detected.","properties":{"surname":{"type":"string","example":"MARTINEZ\u003cSANCHEZ"},"name":{"type":"string","example":"ELENA"},"country":{"type":"string","example":"ESP"},"nationality":{"type":"string","example":"ESP"},"birth_date":{"type":"string","example":"850315"},"expiry_date":{"type":"string","example":"220821"},"sex":{"type":"string","example":"F"},"document_type":{"type":"string","example":"ID"},"document_number":{"type":"string","example":"YZA123456"},"optional_data":{"type":"string","example":"X9876543L"},"optional_data_2":{"type":"string","example":""},"birth_date_hash":{"type":"string","example":"7"},"expiry_date_hash":{"type":"string","example":"4"},"document_number_hash":{"type":"string","example":"9"},"final_hash":{"type":"string","example":"2"},"personal_number":{"type":"string","example":"X9876543L"},"warnings":{"type":"array","items":{"type":"string"}},"errors":{"type":"array","items":{"type":"string"}},"mrz_type":{"type":"string","example":"TD1"},"mrz_string":{"type":"string","example":"IDESPMARTINEZ\u003cSANCHEZ\u003c\u003c\u003c\u003c\u003c\u003c\u003c\u003c\u003c\u003c\nYZA123456\u003c9ESP8503157F3208214\u003cX9876543L\u003c\u003c\u003c\u003c\u003c\u003c\u003c2\nMARTINEZ\u003cSANCHEZ\u003c\u003cELENA\u003c\u003c\u003c\u003c\u003c\u003c\u003c\u003c\u003c\u003c"},"mrz_key":{"type":"string","example":"YZA123456985031573208214"}}},{"type":"null","description":"Parsed Machine-Readable Zone (MRZ) fields extracted from the document. `null` if no MRZ was detected.","properties":{"surname":{"type":"string","example":"MARTINEZ\u003cSANCHEZ"},"name":{"type":"string","example":"ELENA"},"country":{"type":"string","example":"ESP"},"nationality":{"type":"string","example":"ESP"},"birth_date":{"type":"string","example":"850315"},"expiry_date":{"type":"string","example":"220821"},"sex":{"type":"string","example":"F"},"document_type":{"type":"string","example":"ID"},"document_number":{"type":"string","example":"YZA123456"},"optional_data":{"type":"string","example":"X9876543L"},"optional_data_2":{"type":"string","example":""},"birth_date_hash":{"type":"string","example":"7"},"expiry_date_hash":{"type":"string","example":"4"},"document_number_hash":{"type":"string","example":"9"},"final_hash":{"type":"string","example":"2"},"personal_number":{"type":"string","example":"X9876543L"},"warnings":{"type":"array","items":{"type":"string"}},"errors":{"type":"array","items":{"type":"string"}},"mrz_type":{"type":"string","example":"TD1"},"mrz_string":{"type":"string","example":"IDESPMARTINEZ\u003cSANCHEZ\u003c\u003c\u003c\u003c\u003c\u003c\u003c\u003c\u003c\u003c\nYZA123456\u003c9ESP8503157F3208214\u003cX9876543L\u003c\u003c\u003c\u003c\u003c\u003c\u003c2\nMARTINEZ\u003cSANCHEZ\u003c\u003cELENA\u003c\u003c\u003c\u003c\u003c\u003c\u003c\u003c\u003c\u003c"},"mrz_key":{"type":"string","example":"YZA123456985031573208214"}}}]},"parsed_address":{"type":"object","description":"Structured address details","properties":{"city":{"type":"string"},"label":{"type":"string"},"region":{"type":"string"},"country":{"type":"string","description":"Two-letter country code"},"category":{"type":"string","description":"Address category (e.g., Residential, Commercial)"},"street_1":{"type":"string"},"street_2":{"oneOf":[{"type":"string"},{"type":"null"}]},"is_verified":{"type":"boolean","description":"Whether the address has been verified"},"postal_code":{"type":"string"},"raw_results":{"type":"object","properties":{"types":{"type":"array","items":{"type":"string"}},"geometry":{"type":"object","properties":{"location":{"type":"object","properties":{"lat":{"type":"number"},"lng":{"type":"number"}}},"viewport":{"type":"object","properties":{"northeast":{"type":"object","properties":{"lat":{"type":"number"},"lng":{"type":"number"}}},"southwest":{"type":"object","properties":{"lat":{"type":"number"},"lng":{"type":"number"}}}}},"location_type":{"type":"string"}}},"place_id":{"type":"string"},"formatted_address":{"type":"string"},"navigation_points":{"type":"array","items":{"type":"object","properties":{"location":{"type":"object","properties":{"latitude":{"type":"number"},"longitude":{"type":"number"}}}}}},"address_components":{"type":"array","items":{"type":"object","properties":{"types":{"type":"array","items":{"type":"string"}},"long_name":{"type":"string"},"short_name":{"type":"string"}}}}}},"address_type":{"type":"string"},"document_location":{"type":"object","properties":{"latitude":{"type":"number"},"longitude":{"type":"number"}}},"formatted_address":{"type":"string"}}},"extra_files":{"type":"array","items":{"type":"string","format":"uri"},"description":"Additional document verification files"},"front_image_camera_front_face_match_score":{"oneOf":[{"type":"number","description":"Face match score between the portrait extracted from the front document image and the front camera image"},{"type":"null","description":"Face match score between the portrait extracted from the front document image and the front camera image"}]},"back_image_camera_front_face_match_score":{"oneOf":[{"type":"number","description":"Face match score between the portrait extracted from the back document image and the front camera image"},{"type":"null","description":"Face match score between the portrait extracted from the back document image and the front camera image"}]},"document_selfie_face_matches":{"oneOf":[{"type":"array","description":"Previous sessions or face blocklist entries whose face matched the selfie the front camera took during document capture (Silent Capture Face Search). Same entry format as `liveness_checks[].matches`. `null` for sessions created before this field existed or when the search did not run; an empty array when it ran and found nothing. `match_image_url` is a presigned URL that expires.","items":{"type":"object","properties":{"session_id":{"oneOf":[{"type":"string","format":"uuid","description":"Session ID of the matching face. `null` when `source` is `imported`, `list_entry`, or `retained_template`."},{"type":"null","format":"uuid","description":"Session ID of the matching face. `null` when `source` is `imported`, `list_entry`, or `retained_template`."}]},"session_number":{"oneOf":[{"type":"integer"},{"type":"null"}]},"similarity_percentage":{"type":"number","description":"Face similarity between the two images, clamped to 0–100."},"vendor_data":{"oneOf":[{"type":"string","description":"`vendor_data` of the matching session or linked User for imported and retained-template faces."},{"type":"null","description":"`vendor_data` of the matching session or linked User for imported and retained-template faces."}]},"vendor_user_id":{"oneOf":[{"type":"string","format":"uuid","description":"Linked User id for `imported` and `retained_template` matches and for session matches linked to a User. `null` for list entries and sessions without a User."},{"type":"null","format":"uuid","description":"Linked User id for `imported` and `retained_template` matches and for session matches linked to a User. `null` for list entries and sessions without a User."}]},"biometric_template_id":{"oneOf":[{"type":"string","format":"uuid","description":"Id of the retained biometric template. Set only when `source` is `retained_template`; `null` otherwise."},{"type":"null","format":"uuid","description":"Id of the retained biometric template. Set only when `source` is `retained_template`; `null` otherwise."}]},"verification_date":{"oneOf":[{"type":"string","format":"date-time","description":"When the matching face was captured, or when a retained template was created. `null` for list entries."},{"type":"null","format":"date-time","description":"When the matching face was captured, or when a retained template was created. `null` for list entries."}]},"user_details":{"oneOf":[{"type":"object","description":"Identity data from the matching session or imported User profile. Always `null` for `retained_template` and `list_entry` matches.","properties":{"full_name":{"oneOf":[{"type":"string"},{"type":"null"}]},"document_type":{"oneOf":[{"type":"string"},{"type":"null"}]},"document_number":{"oneOf":[{"type":"string"},{"type":"null"}]}}},{"type":"null","description":"Identity data from the matching session or imported User profile. Always `null` for `retained_template` and `list_entry` matches.","properties":{"full_name":{"oneOf":[{"type":"string"},{"type":"null"}]},"document_type":{"oneOf":[{"type":"string"},{"type":"null"}]},"document_number":{"oneOf":[{"type":"string"},{"type":"null"}]}}}]},"match_image_url":{"oneOf":[{"type":"string","format":"uri","description":"Reference image for image-backed matches. Always `null` for `retained_template` matches because retained templates contain no image."},{"type":"null","format":"uri","description":"Reference image for image-backed matches. Always `null` for `retained_template` matches because retained templates contain no image."}]},"status":{"oneOf":[{"type":"string","description":"Lifecycle status of the matching session. `null` for non-session sources."},{"type":"null","description":"Lifecycle status of the matching session. `null` for non-session sources."}]},"is_blocklisted":{"type":"boolean","description":"Whether the matching face is on a blocklist."},"is_allowlisted":{"type":"boolean","description":"Whether the matching face is on an allowlist."},"api_service":{"oneOf":[{"type":"string","description":"Standalone API service of the matching session (e.g. `PASSIVE_LIVENESS`, `FACE_MATCH`); `null` for workflow sessions and non-session sources."},{"type":"null","description":"Standalone API service of the matching session (e.g. `PASSIVE_LIVENESS`, `FACE_MATCH`); `null` for workflow sessions and non-session sources."}]},"source":{"type":"string","enum":["session","imported","list_entry","retained_template"],"description":"Origin of the matching face: `session`, `imported` (User face upload), `list_entry` (allow/block list), or `retained_template` (an image-free biometric template stored on a User, listed under `/v3/biometric-templates/`)."}}}},{"type":"null","description":"Previous sessions or face blocklist entries whose face matched the selfie the front camera took during document capture (Silent Capture Face Search). Same entry format as `liveness_checks[].matches`. `null` for sessions created before this field existed or when the search did not run; an empty array when it ran and found nothing. `match_image_url` is a presigned URL that expires.","items":{"type":"object","properties":{"session_id":{"oneOf":[{"type":"string","format":"uuid","description":"Session ID of the matching face. `null` when `source` is `imported`, `list_entry`, or `retained_template`."},{"type":"null","format":"uuid","description":"Session ID of the matching face. `null` when `source` is `imported`, `list_entry`, or `retained_template`."}]},"session_number":{"oneOf":[{"type":"integer"},{"type":"null"}]},"similarity_percentage":{"type":"number","description":"Face similarity between the two images, clamped to 0–100."},"vendor_data":{"oneOf":[{"type":"string","description":"`vendor_data` of the matching session or linked User for imported and retained-template faces."},{"type":"null","description":"`vendor_data` of the matching session or linked User for imported and retained-template faces."}]},"vendor_user_id":{"oneOf":[{"type":"string","format":"uuid","description":"Linked User id for `imported` and `retained_template` matches and for session matches linked to a User. `null` for list entries and sessions without a User."},{"type":"null","format":"uuid","description":"Linked User id for `imported` and `retained_template` matches and for session matches linked to a User. `null` for list entries and sessions without a User."}]},"biometric_template_id":{"oneOf":[{"type":"string","format":"uuid","description":"Id of the retained biometric template. Set only when `source` is `retained_template`; `null` otherwise."},{"type":"null","format":"uuid","description":"Id of the retained biometric template. Set only when `source` is `retained_template`; `null` otherwise."}]},"verification_date":{"oneOf":[{"type":"string","format":"date-time","description":"When the matching face was captured, or when a retained template was created. `null` for list entries."},{"type":"null","format":"date-time","description":"When the matching face was captured, or when a retained template was created. `null` for list entries."}]},"user_details":{"oneOf":[{"type":"object","description":"Identity data from the matching session or imported User profile. Always `null` for `retained_template` and `list_entry` matches.","properties":{"full_name":{"oneOf":[{"type":"string"},{"type":"null"}]},"document_type":{"oneOf":[{"type":"string"},{"type":"null"}]},"document_number":{"oneOf":[{"type":"string"},{"type":"null"}]}}},{"type":"null","description":"Identity data from the matching session or imported User profile. Always `null` for `retained_template` and `list_entry` matches.","properties":{"full_name":{"oneOf":[{"type":"string"},{"type":"null"}]},"document_type":{"oneOf":[{"type":"string"},{"type":"null"}]},"document_number":{"oneOf":[{"type":"string"},{"type":"null"}]}}}]},"match_image_url":{"oneOf":[{"type":"string","format":"uri","description":"Reference image for image-backed matches. Always `null` for `retained_template` matches because retained templates contain no image."},{"type":"null","format":"uri","description":"Reference image for image-backed matches. Always `null` for `retained_template` matches because retained templates contain no image."}]},"status":{"oneOf":[{"type":"string","description":"Lifecycle status of the matching session. `null` for non-session sources."},{"type":"null","description":"Lifecycle status of the matching session. `null` for non-session sources."}]},"is_blocklisted":{"type":"boolean","description":"Whether the matching face is on a blocklist."},"is_allowlisted":{"type":"boolean","description":"Whether the matching face is on an allowlist."},"api_service":{"oneOf":[{"type":"string","description":"Standalone API service of the matching session (e.g. `PASSIVE_LIVENESS`, `FACE_MATCH`); `null` for workflow sessions and non-session sources."},{"type":"null","description":"Standalone API service of the matching session (e.g. `PASSIVE_LIVENESS`, `FACE_MATCH`); `null` for workflow sessions and non-session sources."}]},"source":{"type":"string","enum":["session","imported","list_entry","retained_template"],"description":"Origin of the matching face: `session`, `imported` (User face upload), `list_entry` (allow/block list), or `retained_template` (an image-free biometric template stored on a User, listed under `/v3/biometric-templates/`)."}}}}]},"front_image_quality_score":{"oneOf":[{"type":"object","description":"Quality metrics for the front document image. Each sub-score ranges from 0 to 100.","properties":{"focus_score":{"type":"number","description":"Sharpness of the image measured via top-10% local Laplacian variance. Robust to documents with large uniform backgrounds. Higher values indicate a sharper, less blurry image."},"brightness_score":{"type":"number","description":"How well-lit the image is. Penalizes images that are too dark or overexposed, with ideal brightness around mid-range."},"brightness_issue":{"type":"string","enum":["ok","too_dark","too_bright"],"description":"Indicates the direction of the brightness problem when the brightness_score is low. 'ok' means brightness is acceptable, 'too_dark' means the image is underexposed, 'too_bright' means the image is overexposed."},"is_document_fully_visible":{"oneOf":[{"type":"boolean","description":"true if all four corners of the document are fully visible inside the image frame, false if any corner is cut off. Null when corner coordinates are unavailable."},{"type":"null","description":"true if all four corners of the document are fully visible inside the image frame, false if any corner is cut off. Null when corner coordinates are unavailable."}]},"resolution_score":{"type":"number","description":"Effective resolution of the image based on total pixel count."},"overall_score":{"type":"number","description":"Weighted composite of sub-scores (focus 45%, brightness 30%, resolution 25%)."}}},{"type":"null","description":"Quality metrics for the front document image. Each sub-score ranges from 0 to 100.","properties":{"focus_score":{"type":"number","description":"Sharpness of the image measured via top-10% local Laplacian variance. Robust to documents with large uniform backgrounds. Higher values indicate a sharper, less blurry image."},"brightness_score":{"type":"number","description":"How well-lit the image is. Penalizes images that are too dark or overexposed, with ideal brightness around mid-range."},"brightness_issue":{"type":"string","enum":["ok","too_dark","too_bright"],"description":"Indicates the direction of the brightness problem when the brightness_score is low. 'ok' means brightness is acceptable, 'too_dark' means the image is underexposed, 'too_bright' means the image is overexposed."},"is_document_fully_visible":{"oneOf":[{"type":"boolean","description":"true if all four corners of the document are fully visible inside the image frame, false if any corner is cut off. Null when corner coordinates are unavailable."},{"type":"null","description":"true if all four corners of the document are fully visible inside the image frame, false if any corner is cut off. Null when corner coordinates are unavailable."}]},"resolution_score":{"type":"number","description":"Effective resolution of the image based on total pixel count."},"overall_score":{"type":"number","description":"Weighted composite of sub-scores (focus 45%, brightness 30%, resolution 25%)."}}}]},"back_image_quality_score":{"oneOf":[{"type":"object","description":"Quality metrics for the back document image. Same structure as front_image_quality_score.","properties":{"focus_score":{"type":"number","description":"Sharpness of the image measured via top-10% local Laplacian variance. Robust to documents with large uniform backgrounds. Higher values indicate a sharper, less blurry image."},"brightness_score":{"type":"number","description":"How well-lit the image is. Penalizes images that are too dark or overexposed, with ideal brightness around mid-range."},"brightness_issue":{"type":"string","enum":["ok","too_dark","too_bright"],"description":"Indicates the direction of the brightness problem when the brightness_score is low. 'ok' means brightness is acceptable, 'too_dark' means the image is underexposed, 'too_bright' means the image is overexposed."},"is_document_fully_visible":{"oneOf":[{"type":"boolean","description":"true if all four corners of the document are fully visible inside the image frame, false if any corner is cut off. Null when corner coordinates are unavailable."},{"type":"null","description":"true if all four corners of the document are fully visible inside the image frame, false if any corner is cut off. Null when corner coordinates are unavailable."}]},"resolution_score":{"type":"number","description":"Effective resolution of the image based on total pixel count."},"overall_score":{"type":"number","description":"Weighted composite of sub-scores (focus 45%, brightness 30%, resolution 25%)."}}},{"type":"null","description":"Quality metrics for the back document image. Same structure as front_image_quality_score.","properties":{"focus_score":{"type":"number","description":"Sharpness of the image measured via top-10% local Laplacian variance. Robust to documents with large uniform backgrounds. Higher values indicate a sharper, less blurry image."},"brightness_score":{"type":"number","description":"How well-lit the image is. Penalizes images that are too dark or overexposed, with ideal brightness around mid-range."},"brightness_issue":{"type":"string","enum":["ok","too_dark","too_bright"],"description":"Indicates the direction of the brightness problem when the brightness_score is low. 'ok' means brightness is acceptable, 'too_dark' means the image is underexposed, 'too_bright' means the image is overexposed."},"is_document_fully_visible":{"oneOf":[{"type":"boolean","description":"true if all four corners of the document are fully visible inside the image frame, false if any corner is cut off. Null when corner coordinates are unavailable."},{"type":"null","description":"true if all four corners of the document are fully visible inside the image frame, false if any corner is cut off. Null when corner coordinates are unavailable."}]},"resolution_score":{"type":"number","description":"Effective resolution of the image based on total pixel count."},"overall_score":{"type":"number","description":"Weighted composite of sub-scores (focus 45%, brightness 30%, resolution 25%)."}}}]},"warnings":{"type":"array","items":{"type":"object","properties":{"feature":{"type":"string","enum":["ID_VERIFICATION","NFC","LIVENESS","FACEMATCH","PROOF_OF_ADDRESS","PHONE","EMAIL","AML","LOCATION","DATABASE_VALIDATION","QUESTIONNAIRE","DOCUMENT_AI","KYB_REGISTRY","KYB_DOCUMENTS","KYB_KEY_PEOPLE","GEOLOCATION","SIGNATURE"],"description":"The feature that generated this warning (e.g., `ID_VERIFICATION`, `NFC`, `LIVENESS`). The value identifies the feature block the warning belongs to. Each module's warnings array typically uses the value matching its module, but the enum above is authoritative across all feature warnings on the decision payload."},"risk":{"type":"string"},"additional_data":{"oneOf":[{"type":"object","description":"Additional contextual data about the warning"},{"type":"null","description":"Additional contextual data about the warning"}]},"log_type":{"type":"string","description":"Type of log: information, warning, or error"},"short_description":{"type":"string"},"long_description":{"type":"string"},"node_id":{"type":"string","description":"The workflow graph node ID that generated this warning (for graph-based workflows)"}}},"description":"Document verification warnings"},"matches":{"type":"array","description":"Matching documents found during duplicate/blocklist detection (up to 5 matches)","items":{"type":"object","properties":{"session_id":{"type":"string","format":"uuid","description":"Session ID of the matching document"},"session_number":{"type":"integer","description":"Session number of the matching document"},"vendor_data":{"oneOf":[{"type":"string","description":"Vendor data associated with the matching session"},{"type":"null","description":"Vendor data associated with the matching session"}]},"verification_date":{"type":"string","format":"date-time","description":"Date when the matching session was verified"},"user_details":{"type":"object","properties":{"name":{"type":"string","description":"Full name from the matching document"},"document_type":{"type":"string","description":"Type of the matching document"},"document_number":{"type":"string","description":"Document number of the matching document"}}},"status":{"type":"string","description":"Status of the matching session"},"is_blocklisted":{"type":"boolean","description":"Whether the matching document is blocklisted"},"api_service":{"oneOf":[{"type":"string","description":"API service type of the matching session"},{"type":"null","description":"API service type of the matching session"}]},"front_image_url":{"oneOf":[{"type":"string","format":"uri","description":"URL of the front document image from the matching document"},{"type":"null","format":"uri","description":"URL of the front document image from the matching document"}]}}}},"document_liveness":{"oneOf":[{"type":"object","description":"Document-liveness scores per fraud type, reported whether or not a warning fired, so an approved document can still be audited. `null` when the check did not run.","properties":{"portrait_replace":{"oneOf":[{"type":"object","properties":{"score":{"oneOf":[{"type":"number","description":"Likelihood that the document is genuine for this fraud type, 0-100 (higher = more likely genuine). The lowest of the two sides - the value the decision used. `null` when neither side produced a usable score."},{"type":"null","description":"Likelihood that the document is genuine for this fraud type, 0-100 (higher = more likely genuine). The lowest of the two sides - the value the decision used. `null` when neither side produced a usable score."}]},"front":{"oneOf":[{"type":"number","description":"Score for the front side; `null` when not captured or when the score was dropped."},{"type":"null","description":"Score for the front side; `null` when not captured or when the score was dropped."}]},"back":{"oneOf":[{"type":"number","description":"Score for the back side; `null` when not captured or when the score was dropped."},{"type":"null","description":"Score for the back side; `null` when not captured or when the score was dropped."}]},"decline_threshold":{"oneOf":[{"type":"number","description":"The decline threshold saved when this document was evaluated. Later workflow edits do not change it. Null when historical evaluation evidence is unavailable."},{"type":"null","description":"The decline threshold saved when this document was evaluated. Later workflow edits do not change it. Null when historical evaluation evidence is unavailable."}]},"review_threshold":{"oneOf":[{"type":"number","description":"The review threshold saved when this document was evaluated. Later workflow edits do not change it. Null when historical evaluation evidence is unavailable."},{"type":"null","description":"The review threshold saved when this document was evaluated. Later workflow edits do not change it. Null when historical evaluation evidence is unavailable."}]},"bucket":{"oneOf":[{"type":"string","enum":["approve","review","decline",null],"description":"The fraud-type bucket saved at evaluation time. Null when there is no usable score, the check was not applied, or historical evaluation evidence is unavailable. Later workflow edits do not change it."},{"type":"null","enum":["approve","review","decline",null],"description":"The fraud-type bucket saved at evaluation time. Null when there is no usable score, the check was not applied, or historical evaluation evidence is unavailable. Later workflow edits do not change it."}]}}},{"type":"null","properties":{"score":{"oneOf":[{"type":"number","description":"Likelihood that the document is genuine for this fraud type, 0-100 (higher = more likely genuine). The lowest of the two sides - the value the decision used. `null` when neither side produced a usable score."},{"type":"null","description":"Likelihood that the document is genuine for this fraud type, 0-100 (higher = more likely genuine). The lowest of the two sides - the value the decision used. `null` when neither side produced a usable score."}]},"front":{"oneOf":[{"type":"number","description":"Score for the front side; `null` when not captured or when the score was dropped."},{"type":"null","description":"Score for the front side; `null` when not captured or when the score was dropped."}]},"back":{"oneOf":[{"type":"number","description":"Score for the back side; `null` when not captured or when the score was dropped."},{"type":"null","description":"Score for the back side; `null` when not captured or when the score was dropped."}]},"decline_threshold":{"oneOf":[{"type":"number","description":"The decline threshold saved when this document was evaluated. Later workflow edits do not change it. Null when historical evaluation evidence is unavailable."},{"type":"null","description":"The decline threshold saved when this document was evaluated. Later workflow edits do not change it. Null when historical evaluation evidence is unavailable."}]},"review_threshold":{"oneOf":[{"type":"number","description":"The review threshold saved when this document was evaluated. Later workflow edits do not change it. Null when historical evaluation evidence is unavailable."},{"type":"null","description":"The review threshold saved when this document was evaluated. Later workflow edits do not change it. Null when historical evaluation evidence is unavailable."}]},"bucket":{"oneOf":[{"type":"string","enum":["approve","review","decline",null],"description":"The fraud-type bucket saved at evaluation time. Null when there is no usable score, the check was not applied, or historical evaluation evidence is unavailable. Later workflow edits do not change it."},{"type":"null","enum":["approve","review","decline",null],"description":"The fraud-type bucket saved at evaluation time. Null when there is no usable score, the check was not applied, or historical evaluation evidence is unavailable. Later workflow edits do not change it."}]}}}]},"printed_copy":{"oneOf":[{"type":"object","properties":{"score":{"oneOf":[{"type":"number","description":"Likelihood that the document is genuine for this fraud type, 0-100 (higher = more likely genuine). The lowest of the two sides - the value the decision used. `null` when neither side produced a usable score."},{"type":"null","description":"Likelihood that the document is genuine for this fraud type, 0-100 (higher = more likely genuine). The lowest of the two sides - the value the decision used. `null` when neither side produced a usable score."}]},"front":{"oneOf":[{"type":"number","description":"Score for the front side; `null` when not captured or when the score was dropped."},{"type":"null","description":"Score for the front side; `null` when not captured or when the score was dropped."}]},"back":{"oneOf":[{"type":"number","description":"Score for the back side; `null` when not captured or when the score was dropped."},{"type":"null","description":"Score for the back side; `null` when not captured or when the score was dropped."}]},"decline_threshold":{"oneOf":[{"type":"number","description":"The decline threshold saved when this document was evaluated. Later workflow edits do not change it. Null when historical evaluation evidence is unavailable."},{"type":"null","description":"The decline threshold saved when this document was evaluated. Later workflow edits do not change it. Null when historical evaluation evidence is unavailable."}]},"review_threshold":{"oneOf":[{"type":"number","description":"The review threshold saved when this document was evaluated. Later workflow edits do not change it. Null when historical evaluation evidence is unavailable."},{"type":"null","description":"The review threshold saved when this document was evaluated. Later workflow edits do not change it. Null when historical evaluation evidence is unavailable."}]},"bucket":{"oneOf":[{"type":"string","enum":["approve","review","decline",null],"description":"The fraud-type bucket saved at evaluation time. Null when there is no usable score, the check was not applied, or historical evaluation evidence is unavailable. Later workflow edits do not change it."},{"type":"null","enum":["approve","review","decline",null],"description":"The fraud-type bucket saved at evaluation time. Null when there is no usable score, the check was not applied, or historical evaluation evidence is unavailable. Later workflow edits do not change it."}]}}},{"type":"null","properties":{"score":{"oneOf":[{"type":"number","description":"Likelihood that the document is genuine for this fraud type, 0-100 (higher = more likely genuine). The lowest of the two sides - the value the decision used. `null` when neither side produced a usable score."},{"type":"null","description":"Likelihood that the document is genuine for this fraud type, 0-100 (higher = more likely genuine). The lowest of the two sides - the value the decision used. `null` when neither side produced a usable score."}]},"front":{"oneOf":[{"type":"number","description":"Score for the front side; `null` when not captured or when the score was dropped."},{"type":"null","description":"Score for the front side; `null` when not captured or when the score was dropped."}]},"back":{"oneOf":[{"type":"number","description":"Score for the back side; `null` when not captured or when the score was dropped."},{"type":"null","description":"Score for the back side; `null` when not captured or when the score was dropped."}]},"decline_threshold":{"oneOf":[{"type":"number","description":"The decline threshold saved when this document was evaluated. Later workflow edits do not change it. Null when historical evaluation evidence is unavailable."},{"type":"null","description":"The decline threshold saved when this document was evaluated. Later workflow edits do not change it. Null when historical evaluation evidence is unavailable."}]},"review_threshold":{"oneOf":[{"type":"number","description":"The review threshold saved when this document was evaluated. Later workflow edits do not change it. Null when historical evaluation evidence is unavailable."},{"type":"null","description":"The review threshold saved when this document was evaluated. Later workflow edits do not change it. Null when historical evaluation evidence is unavailable."}]},"bucket":{"oneOf":[{"type":"string","enum":["approve","review","decline",null],"description":"The fraud-type bucket saved at evaluation time. Null when there is no usable score, the check was not applied, or historical evaluation evidence is unavailable. Later workflow edits do not change it."},{"type":"null","enum":["approve","review","decline",null],"description":"The fraud-type bucket saved at evaluation time. Null when there is no usable score, the check was not applied, or historical evaluation evidence is unavailable. Later workflow edits do not change it."}]}}}]},"screen_replay":{"oneOf":[{"type":"object","properties":{"score":{"oneOf":[{"type":"number","description":"Likelihood that the document is genuine for this fraud type, 0-100 (higher = more likely genuine). The lowest of the two sides - the value the decision used. `null` when neither side produced a usable score."},{"type":"null","description":"Likelihood that the document is genuine for this fraud type, 0-100 (higher = more likely genuine). The lowest of the two sides - the value the decision used. `null` when neither side produced a usable score."}]},"front":{"oneOf":[{"type":"number","description":"Score for the front side; `null` when not captured or when the score was dropped."},{"type":"null","description":"Score for the front side; `null` when not captured or when the score was dropped."}]},"back":{"oneOf":[{"type":"number","description":"Score for the back side; `null` when not captured or when the score was dropped."},{"type":"null","description":"Score for the back side; `null` when not captured or when the score was dropped."}]},"decline_threshold":{"oneOf":[{"type":"number","description":"The decline threshold saved when this document was evaluated. Later workflow edits do not change it. Null when historical evaluation evidence is unavailable."},{"type":"null","description":"The decline threshold saved when this document was evaluated. Later workflow edits do not change it. Null when historical evaluation evidence is unavailable."}]},"review_threshold":{"oneOf":[{"type":"number","description":"The review threshold saved when this document was evaluated. Later workflow edits do not change it. Null when historical evaluation evidence is unavailable."},{"type":"null","description":"The review threshold saved when this document was evaluated. Later workflow edits do not change it. Null when historical evaluation evidence is unavailable."}]},"bucket":{"oneOf":[{"type":"string","enum":["approve","review","decline",null],"description":"The fraud-type bucket saved at evaluation time. Null when there is no usable score, the check was not applied, or historical evaluation evidence is unavailable. Later workflow edits do not change it."},{"type":"null","enum":["approve","review","decline",null],"description":"The fraud-type bucket saved at evaluation time. Null when there is no usable score, the check was not applied, or historical evaluation evidence is unavailable. Later workflow edits do not change it."}]}}},{"type":"null","properties":{"score":{"oneOf":[{"type":"number","description":"Likelihood that the document is genuine for this fraud type, 0-100 (higher = more likely genuine). The lowest of the two sides - the value the decision used. `null` when neither side produced a usable score."},{"type":"null","description":"Likelihood that the document is genuine for this fraud type, 0-100 (higher = more likely genuine). The lowest of the two sides - the value the decision used. `null` when neither side produced a usable score."}]},"front":{"oneOf":[{"type":"number","description":"Score for the front side; `null` when not captured or when the score was dropped."},{"type":"null","description":"Score for the front side; `null` when not captured or when the score was dropped."}]},"back":{"oneOf":[{"type":"number","description":"Score for the back side; `null` when not captured or when the score was dropped."},{"type":"null","description":"Score for the back side; `null` when not captured or when the score was dropped."}]},"decline_threshold":{"oneOf":[{"type":"number","description":"The decline threshold saved when this document was evaluated. Later workflow edits do not change it. Null when historical evaluation evidence is unavailable."},{"type":"null","description":"The decline threshold saved when this document was evaluated. Later workflow edits do not change it. Null when historical evaluation evidence is unavailable."}]},"review_threshold":{"oneOf":[{"type":"number","description":"The review threshold saved when this document was evaluated. Later workflow edits do not change it. Null when historical evaluation evidence is unavailable."},{"type":"null","description":"The review threshold saved when this document was evaluated. Later workflow edits do not change it. Null when historical evaluation evidence is unavailable."}]},"bucket":{"oneOf":[{"type":"string","enum":["approve","review","decline",null],"description":"The fraud-type bucket saved at evaluation time. Null when there is no usable score, the check was not applied, or historical evaluation evidence is unavailable. Later workflow edits do not change it."},{"type":"null","enum":["approve","review","decline",null],"description":"The fraud-type bucket saved at evaluation time. Null when there is no usable score, the check was not applied, or historical evaluation evidence is unavailable. Later workflow edits do not change it."}]}}}]}}},{"type":"null","description":"Document-liveness scores per fraud type, reported whether or not a warning fired, so an approved document can still be audited. `null` when the check did not run.","properties":{"portrait_replace":{"oneOf":[{"type":"object","properties":{"score":{"oneOf":[{"type":"number","description":"Likelihood that the document is genuine for this fraud type, 0-100 (higher = more likely genuine). The lowest of the two sides - the value the decision used. `null` when neither side produced a usable score."},{"type":"null","description":"Likelihood that the document is genuine for this fraud type, 0-100 (higher = more likely genuine). The lowest of the two sides - the value the decision used. `null` when neither side produced a usable score."}]},"front":{"oneOf":[{"type":"number","description":"Score for the front side; `null` when not captured or when the score was dropped."},{"type":"null","description":"Score for the front side; `null` when not captured or when the score was dropped."}]},"back":{"oneOf":[{"type":"number","description":"Score for the back side; `null` when not captured or when the score was dropped."},{"type":"null","description":"Score for the back side; `null` when not captured or when the score was dropped."}]},"decline_threshold":{"oneOf":[{"type":"number","description":"The decline threshold saved when this document was evaluated. Later workflow edits do not change it. Null when historical evaluation evidence is unavailable."},{"type":"null","description":"The decline threshold saved when this document was evaluated. Later workflow edits do not change it. Null when historical evaluation evidence is unavailable."}]},"review_threshold":{"oneOf":[{"type":"number","description":"The review threshold saved when this document was evaluated. Later workflow edits do not change it. Null when historical evaluation evidence is unavailable."},{"type":"null","description":"The review threshold saved when this document was evaluated. Later workflow edits do not change it. Null when historical evaluation evidence is unavailable."}]},"bucket":{"oneOf":[{"type":"string","enum":["approve","review","decline",null],"description":"The fraud-type bucket saved at evaluation time. Null when there is no usable score, the check was not applied, or historical evaluation evidence is unavailable. Later workflow edits do not change it."},{"type":"null","enum":["approve","review","decline",null],"description":"The fraud-type bucket saved at evaluation time. Null when there is no usable score, the check was not applied, or historical evaluation evidence is unavailable. Later workflow edits do not change it."}]}}},{"type":"null","properties":{"score":{"oneOf":[{"type":"number","description":"Likelihood that the document is genuine for this fraud type, 0-100 (higher = more likely genuine). The lowest of the two sides - the value the decision used. `null` when neither side produced a usable score."},{"type":"null","description":"Likelihood that the document is genuine for this fraud type, 0-100 (higher = more likely genuine). The lowest of the two sides - the value the decision used. `null` when neither side produced a usable score."}]},"front":{"oneOf":[{"type":"number","description":"Score for the front side; `null` when not captured or when the score was dropped."},{"type":"null","description":"Score for the front side; `null` when not captured or when the score was dropped."}]},"back":{"oneOf":[{"type":"number","description":"Score for the back side; `null` when not captured or when the score was dropped."},{"type":"null","description":"Score for the back side; `null` when not captured or when the score was dropped."}]},"decline_threshold":{"oneOf":[{"type":"number","description":"The decline threshold saved when this document was evaluated. Later workflow edits do not change it. Null when historical evaluation evidence is unavailable."},{"type":"null","description":"The decline threshold saved when this document was evaluated. Later workflow edits do not change it. Null when historical evaluation evidence is unavailable."}]},"review_threshold":{"oneOf":[{"type":"number","description":"The review threshold saved when this document was evaluated. Later workflow edits do not change it. Null when historical evaluation evidence is unavailable."},{"type":"null","description":"The review threshold saved when this document was evaluated. Later workflow edits do not change it. Null when historical evaluation evidence is unavailable."}]},"bucket":{"oneOf":[{"type":"string","enum":["approve","review","decline",null],"description":"The fraud-type bucket saved at evaluation time. Null when there is no usable score, the check was not applied, or historical evaluation evidence is unavailable. Later workflow edits do not change it."},{"type":"null","enum":["approve","review","decline",null],"description":"The fraud-type bucket saved at evaluation time. Null when there is no usable score, the check was not applied, or historical evaluation evidence is unavailable. Later workflow edits do not change it."}]}}}]},"printed_copy":{"oneOf":[{"type":"object","properties":{"score":{"oneOf":[{"type":"number","description":"Likelihood that the document is genuine for this fraud type, 0-100 (higher = more likely genuine). The lowest of the two sides - the value the decision used. `null` when neither side produced a usable score."},{"type":"null","description":"Likelihood that the document is genuine for this fraud type, 0-100 (higher = more likely genuine). The lowest of the two sides - the value the decision used. `null` when neither side produced a usable score."}]},"front":{"oneOf":[{"type":"number","description":"Score for the front side; `null` when not captured or when the score was dropped."},{"type":"null","description":"Score for the front side; `null` when not captured or when the score was dropped."}]},"back":{"oneOf":[{"type":"number","description":"Score for the back side; `null` when not captured or when the score was dropped."},{"type":"null","description":"Score for the back side; `null` when not captured or when the score was dropped."}]},"decline_threshold":{"oneOf":[{"type":"number","description":"The decline threshold saved when this document was evaluated. Later workflow edits do not change it. Null when historical evaluation evidence is unavailable."},{"type":"null","description":"The decline threshold saved when this document was evaluated. Later workflow edits do not change it. Null when historical evaluation evidence is unavailable."}]},"review_threshold":{"oneOf":[{"type":"number","description":"The review threshold saved when this document was evaluated. Later workflow edits do not change it. Null when historical evaluation evidence is unavailable."},{"type":"null","description":"The review threshold saved when this document was evaluated. Later workflow edits do not change it. Null when historical evaluation evidence is unavailable."}]},"bucket":{"oneOf":[{"type":"string","enum":["approve","review","decline",null],"description":"The fraud-type bucket saved at evaluation time. Null when there is no usable score, the check was not applied, or historical evaluation evidence is unavailable. Later workflow edits do not change it."},{"type":"null","enum":["approve","review","decline",null],"description":"The fraud-type bucket saved at evaluation time. Null when there is no usable score, the check was not applied, or historical evaluation evidence is unavailable. Later workflow edits do not change it."}]}}},{"type":"null","properties":{"score":{"oneOf":[{"type":"number","description":"Likelihood that the document is genuine for this fraud type, 0-100 (higher = more likely genuine). The lowest of the two sides - the value the decision used. `null` when neither side produced a usable score."},{"type":"null","description":"Likelihood that the document is genuine for this fraud type, 0-100 (higher = more likely genuine). The lowest of the two sides - the value the decision used. `null` when neither side produced a usable score."}]},"front":{"oneOf":[{"type":"number","description":"Score for the front side; `null` when not captured or when the score was dropped."},{"type":"null","description":"Score for the front side; `null` when not captured or when the score was dropped."}]},"back":{"oneOf":[{"type":"number","description":"Score for the back side; `null` when not captured or when the score was dropped."},{"type":"null","description":"Score for the back side; `null` when not captured or when the score was dropped."}]},"decline_threshold":{"oneOf":[{"type":"number","description":"The decline threshold saved when this document was evaluated. Later workflow edits do not change it. Null when historical evaluation evidence is unavailable."},{"type":"null","description":"The decline threshold saved when this document was evaluated. Later workflow edits do not change it. Null when historical evaluation evidence is unavailable."}]},"review_threshold":{"oneOf":[{"type":"number","description":"The review threshold saved when this document was evaluated. Later workflow edits do not change it. Null when historical evaluation evidence is unavailable."},{"type":"null","description":"The review threshold saved when this document was evaluated. Later workflow edits do not change it. Null when historical evaluation evidence is unavailable."}]},"bucket":{"oneOf":[{"type":"string","enum":["approve","review","decline",null],"description":"The fraud-type bucket saved at evaluation time. Null when there is no usable score, the check was not applied, or historical evaluation evidence is unavailable. Later workflow edits do not change it."},{"type":"null","enum":["approve","review","decline",null],"description":"The fraud-type bucket saved at evaluation time. Null when there is no usable score, the check was not applied, or historical evaluation evidence is unavailable. Later workflow edits do not change it."}]}}}]},"screen_replay":{"oneOf":[{"type":"object","properties":{"score":{"oneOf":[{"type":"number","description":"Likelihood that the document is genuine for this fraud type, 0-100 (higher = more likely genuine). The lowest of the two sides - the value the decision used. `null` when neither side produced a usable score."},{"type":"null","description":"Likelihood that the document is genuine for this fraud type, 0-100 (higher = more likely genuine). The lowest of the two sides - the value the decision used. `null` when neither side produced a usable score."}]},"front":{"oneOf":[{"type":"number","description":"Score for the front side; `null` when not captured or when the score was dropped."},{"type":"null","description":"Score for the front side; `null` when not captured or when the score was dropped."}]},"back":{"oneOf":[{"type":"number","description":"Score for the back side; `null` when not captured or when the score was dropped."},{"type":"null","description":"Score for the back side; `null` when not captured or when the score was dropped."}]},"decline_threshold":{"oneOf":[{"type":"number","description":"The decline threshold saved when this document was evaluated. Later workflow edits do not change it. Null when historical evaluation evidence is unavailable."},{"type":"null","description":"The decline threshold saved when this document was evaluated. Later workflow edits do not change it. Null when historical evaluation evidence is unavailable."}]},"review_threshold":{"oneOf":[{"type":"number","description":"The review threshold saved when this document was evaluated. Later workflow edits do not change it. Null when historical evaluation evidence is unavailable."},{"type":"null","description":"The review threshold saved when this document was evaluated. Later workflow edits do not change it. Null when historical evaluation evidence is unavailable."}]},"bucket":{"oneOf":[{"type":"string","enum":["approve","review","decline",null],"description":"The fraud-type bucket saved at evaluation time. Null when there is no usable score, the check was not applied, or historical evaluation evidence is unavailable. Later workflow edits do not change it."},{"type":"null","enum":["approve","review","decline",null],"description":"The fraud-type bucket saved at evaluation time. Null when there is no usable score, the check was not applied, or historical evaluation evidence is unavailable. Later workflow edits do not change it."}]}}},{"type":"null","properties":{"score":{"oneOf":[{"type":"number","description":"Likelihood that the document is genuine for this fraud type, 0-100 (higher = more likely genuine). The lowest of the two sides - the value the decision used. `null` when neither side produced a usable score."},{"type":"null","description":"Likelihood that the document is genuine for this fraud type, 0-100 (higher = more likely genuine). The lowest of the two sides - the value the decision used. `null` when neither side produced a usable score."}]},"front":{"oneOf":[{"type":"number","description":"Score for the front side; `null` when not captured or when the score was dropped."},{"type":"null","description":"Score for the front side; `null` when not captured or when the score was dropped."}]},"back":{"oneOf":[{"type":"number","description":"Score for the back side; `null` when not captured or when the score was dropped."},{"type":"null","description":"Score for the back side; `null` when not captured or when the score was dropped."}]},"decline_threshold":{"oneOf":[{"type":"number","description":"The decline threshold saved when this document was evaluated. Later workflow edits do not change it. Null when historical evaluation evidence is unavailable."},{"type":"null","description":"The decline threshold saved when this document was evaluated. Later workflow edits do not change it. Null when historical evaluation evidence is unavailable."}]},"review_threshold":{"oneOf":[{"type":"number","description":"The review threshold saved when this document was evaluated. Later workflow edits do not change it. Null when historical evaluation evidence is unavailable."},{"type":"null","description":"The review threshold saved when this document was evaluated. Later workflow edits do not change it. Null when historical evaluation evidence is unavailable."}]},"bucket":{"oneOf":[{"type":"string","enum":["approve","review","decline",null],"description":"The fraud-type bucket saved at evaluation time. Null when there is no usable score, the check was not applied, or historical evaluation evidence is unavailable. Later workflow edits do not change it."},{"type":"null","enum":["approve","review","decline",null],"description":"The fraud-type bucket saved at evaluation time. Null when there is no usable score, the check was not applied, or historical evaluation evidence is unavailable. Later workflow edits do not change it."}]}}}]}}}]},"address_validation":{"oneOf":[{"type":"object","description":"Address Validation of the address printed on this document: whether it exists and its normalised form, as the document read it (a later correction of `address` does not run it again). Present when this ID verification step enabled the Address Validation add-on; `null` otherwise.","required":["status","verification_level","address","formatted_address","latitude","longitude","address_type","is_residential"],"properties":{"status":{"type":"string","enum":["verified","partially_verified","not_verified","unavailable"],"description":"`verified`: the address was confirmed down to the building (or the flat or PO box). `partially_verified`: it was confirmed only to the street, or to the most precise level the postal reference data holds for that place. `not_verified`: only the region or the city matched, or nothing did. `unavailable`: the validation could not run (for example the reference service did not answer); it is not charged and never affects a verification."},"verification_level":{"oneOf":[{"type":"string","enum":["administrative_area","locality","thoroughfare","premise","delivery_point",null],"description":"The most precise level the address was matched to. `null` when nothing matched or `status` is `unavailable`."},{"type":"null","enum":["administrative_area","locality","thoroughfare","premise","delivery_point",null],"description":"The most precise level the address was matched to. `null` when nothing matched or `status` is `unavailable`."}]},"address":{"oneOf":[{"type":"object","description":"The normalised address. `null` when `status` is `unavailable`.","properties":{"address_line_1":{"oneOf":[{"type":"string","description":"First delivery line, written the way the country writes it.","example":"1600 Amphitheatre Pkwy"},{"type":"null","description":"First delivery line, written the way the country writes it.","example":"1600 Amphitheatre Pkwy"}]},"address_line_2":{"oneOf":[{"type":"string","description":"Second delivery line (a flat, building or neighbourhood), when the address has one."},{"type":"null","description":"Second delivery line (a flat, building or neighbourhood), when the address has one."}]},"city":{"oneOf":[{"type":"string","example":"Mountain View"},{"type":"null","example":"Mountain View"}]},"region":{"oneOf":[{"type":"string","description":"State, province or region.","example":"CA"},{"type":"null","description":"State, province or region.","example":"CA"}]},"postal_code":{"oneOf":[{"type":"string","example":"94043-1351"},{"type":"null","example":"94043-1351"}]},"country":{"oneOf":[{"type":"string","description":"ISO 3166-1 alpha-2 country code.","example":"US"},{"type":"null","description":"ISO 3166-1 alpha-2 country code.","example":"US"}]}}},{"type":"null","description":"The normalised address. `null` when `status` is `unavailable`.","properties":{"address_line_1":{"oneOf":[{"type":"string","description":"First delivery line, written the way the country writes it.","example":"1600 Amphitheatre Pkwy"},{"type":"null","description":"First delivery line, written the way the country writes it.","example":"1600 Amphitheatre Pkwy"}]},"address_line_2":{"oneOf":[{"type":"string","description":"Second delivery line (a flat, building or neighbourhood), when the address has one."},{"type":"null","description":"Second delivery line (a flat, building or neighbourhood), when the address has one."}]},"city":{"oneOf":[{"type":"string","example":"Mountain View"},{"type":"null","example":"Mountain View"}]},"region":{"oneOf":[{"type":"string","description":"State, province or region.","example":"CA"},{"type":"null","description":"State, province or region.","example":"CA"}]},"postal_code":{"oneOf":[{"type":"string","example":"94043-1351"},{"type":"null","example":"94043-1351"}]},"country":{"oneOf":[{"type":"string","description":"ISO 3166-1 alpha-2 country code.","example":"US"},{"type":"null","description":"ISO 3166-1 alpha-2 country code.","example":"US"}]}}}]},"formatted_address":{"oneOf":[{"type":"string","description":"The normalised address on one line.","example":"1600 Amphitheatre Pkwy, Mountain View CA 94043-1351"},{"type":"null","description":"The normalised address on one line.","example":"1600 Amphitheatre Pkwy, Mountain View CA 94043-1351"}]},"latitude":{"oneOf":[{"type":"number","example":37.422022},{"type":"null","example":37.422022}]},"longitude":{"oneOf":[{"type":"number","example":-122.08429},{"type":"null","example":-122.08429}]},"address_type":{"oneOf":[{"type":"string","enum":["street","po_box","high_rise","rural_route","general_delivery","firm","building",null],"description":"The kind of delivery point the address is, for United States and Canadian addresses: `street`, `po_box` (a PO box or lock box), `high_rise` (a high-rise or business complex), `rural_route`, `general_delivery`, `firm` (a firm or company address) or `building`. `null` for addresses in other countries, when the address has no type on record, and when `status` is `unavailable`."},{"type":"null","enum":["street","po_box","high_rise","rural_route","general_delivery","firm","building",null],"description":"The kind of delivery point the address is, for United States and Canadian addresses: `street`, `po_box` (a PO box or lock box), `high_rise` (a high-rise or business complex), `rural_route`, `general_delivery`, `firm` (a firm or company address) or `building`. `null` for addresses in other countries, when the address has no type on record, and when `status` is `unavailable`."}]},"is_residential":{"oneOf":[{"type":"boolean","description":"`true` when the address is a residence, `false` when it is a business. `null` when this is unknown, when it is not available for the address's country, and when `status` is `unavailable`. Available for addresses in the United States, Great Britain, the Netherlands and Ireland."},{"type":"null","description":"`true` when the address is a residence, `false` when it is a business. `null` when this is unknown, when it is not available for the address's country, and when `status` is `unavailable`. Available for addresses in the United States, Great Britain, the Netherlands and Ireland."}]}}},{"type":"null"}]},"region":{"oneOf":[{"type":"string","description":"Region or state of the document's issuing country where the document identifies one."},{"type":"null","description":"Region or state of the document's issuing country where the document identifies one."}]},"extracted_data":{"oneOf":[{"type":"object","additionalProperties":true,"description":"Snapshot of the data extracted from the document that the person was shown to review, kept next to the confirmed values so you can compare what was read with what the person confirmed. `null` when the person was not asked to review."},{"type":"null","additionalProperties":true,"description":"Snapshot of the data extracted from the document that the person was shown to review, kept next to the confirmed values so you can compare what was read with what the person confirmed. `null` when the person was not asked to review."}]},"barcodes":{"type":"array","items":{"type":"object","additionalProperties":true},"description":"Data read from the document's barcodes. Empty when the document has none or none was read."}}},"uniqueKey":"id_verifications.oneOf.1","typeLabel":"null"}],"uniqueKey":"id_verifications","typeLabel":"object[] | null"},"nfc_skip_reason":{"oneOf":[{"type":"string","enum":["USER_SKIPPED","DOCUMENT_WITHOUT_CHIP","CHIP_CERTIFICATE_UNAVAILABLE","DEVICE_WITHOUT_NFC","INTEGRATION_WITHOUT_NFC_ACCESS","MRZ_KEY_UNAVAILABLE","JPKI_UNAVAILABLE"],"description":"Why NFC chip verification did not run, populated whenever the workflow includes an NFC step. `null` while NFC is pending or when the chip was actually read. Values: `USER_SKIPPED` - the user chose to skip on an NFC-capable device (allowed by `allow_nfc_skip`); `DOCUMENT_WITHOUT_CHIP` - the document has no readable NFC chip (not an ICAO 9303 electronic document); `CHIP_CERTIFICATE_UNAVAILABLE` - the issuing country's signing certificate (CSCA) covering the document's issue period is unavailable, so the chip signature cannot be verified; `DEVICE_WITHOUT_NFC` - the device reported no NFC reader; `INTEGRATION_WITHOUT_NFC_ACCESS` - the verification ran without a native SDK (e.g. in a web browser), which has no access to the phone's NFC reader; `MRZ_KEY_UNAVAILABLE` - the chip access key could not be derived from the document's MRZ; `JPKI_UNAVAILABLE` - the document is a Japan My Number Card, whose chip is read through JPKI, and JPKI was not available for this verification: it is not enabled, or the app's native SDK cannot read My Number Cards.","uniqueKey":"nfc_skip_reason.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["USER_SKIPPED","DOCUMENT_WITHOUT_CHIP","CHIP_CERTIFICATE_UNAVAILABLE","DEVICE_WITHOUT_NFC","INTEGRATION_WITHOUT_NFC_ACCESS","MRZ_KEY_UNAVAILABLE","JPKI_UNAVAILABLE"],"description":"Why NFC chip verification did not run, populated whenever the workflow includes an NFC step. `null` while NFC is pending or when the chip was actually read. Values: `USER_SKIPPED` - the user chose to skip on an NFC-capable device (allowed by `allow_nfc_skip`); `DOCUMENT_WITHOUT_CHIP` - the document has no readable NFC chip (not an ICAO 9303 electronic document); `CHIP_CERTIFICATE_UNAVAILABLE` - the issuing country's signing certificate (CSCA) covering the document's issue period is unavailable, so the chip signature cannot be verified; `DEVICE_WITHOUT_NFC` - the device reported no NFC reader; `INTEGRATION_WITHOUT_NFC_ACCESS` - the verification ran without a native SDK (e.g. in a web browser), which has no access to the phone's NFC reader; `MRZ_KEY_UNAVAILABLE` - the chip access key could not be derived from the document's MRZ; `JPKI_UNAVAILABLE` - the document is a Japan My Number Card, whose chip is read through JPKI, and JPKI was not available for this verification: it is not enabled, or the app's native SDK cannot read My Number Cards.","uniqueKey":"nfc_skip_reason.oneOf.1","typeLabel":"null"}],"uniqueKey":"nfc_skip_reason","typeLabel":"enum\u003cstring> | null"},"nfc_verifications":{"oneOf":[{"type":"array","description":"**Array of NFC / ePassport reports** produced by NFC steps in the workflow graph. **This is always a JSON array, never a singular `nfc` object** — read `nfc_verifications[0]` and iterate if your workflow can run NFC more than once. `null` until at least one NFC step has produced data. Each item is the full report, including `node_id`, feature-level `status`, `chip_protocol`, `chip_data`, `authenticity` (SOD + DG integrity), `certificate_summary`, and `warnings[]`. A Japan My Number Card is read through JPKI instead of ICAO 9303: its item has `chip_protocol: \"jpki\"`, carries its evidence under `jpki`, and leaves the ICAO fields `null`. When the NFC step was bypassed before it could ever be offered (chipless document, missing certificate, no NFC capability reported, unreadable MRZ key, JPKI unavailable for a My Number Card), this stays `null` and `nfc_skip_reason` explains why; a skip at the step itself (user tapped skip, or the reader turned out unavailable at scan time) still produces a report with `is_nfc_skipped: true`.","items":{"type":"object","description":"One NFC report: the full report for a single chip read (an ICAO 9303 ePassport or eID chip, or a Japan My Number Card read through JPKI).","properties":{"node_id":{"type":"string","description":"Workflow graph node id of the NFC step that produced this report. Use it to correlate the report with the workflow definition.","uniqueKey":"nfc_verifications.oneOf.0.items.[INDEX].node_id","typeLabel":"string"},"status":{"type":"string","enum":["Not Finished","Approved","Declined","In Review","Resub Requested"],"description":"Feature-level status of this NFC step. Independent of the top-level session `status` — a session can reach its overall decision while an individual feature stays `In Review`.","uniqueKey":"nfc_verifications.oneOf.0.items.[INDEX].status","typeLabel":"enum\u003cstring>"},"is_nfc_skipped":{"type":"boolean","description":"`true` when this NFC step was explicitly skipped instead of read; `skip_reason` says why.","uniqueKey":"nfc_verifications.oneOf.0.items.[INDEX].is_nfc_skipped","typeLabel":"boolean"},"skip_reason":{"oneOf":[{"type":"string","enum":["USER_SKIPPED","DOCUMENT_WITHOUT_CHIP","CHIP_CERTIFICATE_UNAVAILABLE","DEVICE_WITHOUT_NFC","INTEGRATION_WITHOUT_NFC_ACCESS","MRZ_KEY_UNAVAILABLE","JPKI_UNAVAILABLE"],"description":"Why this NFC step was skipped. Only set when `is_nfc_skipped` is `true`. Same taxonomy as the session-level `nfc_skip_reason`, which additionally covers the cases where NFC never produced a report at all.","uniqueKey":"nfc_verifications.oneOf.0.items.[INDEX].skip_reason.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["USER_SKIPPED","DOCUMENT_WITHOUT_CHIP","CHIP_CERTIFICATE_UNAVAILABLE","DEVICE_WITHOUT_NFC","INTEGRATION_WITHOUT_NFC_ACCESS","MRZ_KEY_UNAVAILABLE","JPKI_UNAVAILABLE"],"description":"Why this NFC step was skipped. Only set when `is_nfc_skipped` is `true`. Same taxonomy as the session-level `nfc_skip_reason`, which additionally covers the cases where NFC never produced a report at all.","uniqueKey":"nfc_verifications.oneOf.0.items.[INDEX].skip_reason.oneOf.1","typeLabel":"null"}],"uniqueKey":"nfc_verifications.oneOf.0.items.[INDEX].skip_reason","typeLabel":"enum\u003cstring> | null"},"chip_protocol":{"type":"string","enum":["icao","jpki"],"description":"How the NFC step reads the chip. `icao`: ICAO 9303 ePassport or eID chip, opened with the access key from the MRZ. `jpki`: Japan My Number Card, where the card signs a one-time challenge after the holder enters the card PIN in a native SDK; the result is under `jpki`. Also set on skipped steps, so you can tell a skipped My Number Card read apart.","uniqueKey":"nfc_verifications.oneOf.0.items.[INDEX].chip_protocol","typeLabel":"enum\u003cstring>"},"jpki":{"oneOf":[{"type":"object","description":"What a Japan My Number Card read through JPKI proved. Present when `chip_protocol` is `jpki` and the card was read. `null` for ICAO chips, for skipped steps, and when the NFC step closed without any card read (that case raises `JPKI_SIGNATURE_INVALID`). Never carries the certificates, their serial numbers, the signatures or the 12-digit My Number.","properties":{"certificate_types":{"type":"array","items":{"type":"string","enum":["user_authentication","signature"],"uniqueKey":"nfc_verifications.oneOf.0.items.[INDEX].jpki.oneOf.0.certificate_types.items.[INDEX]","typeLabel":"enum\u003cstring>"},"description":"The card certificates read. `user_authentication` (4-digit PIN) is always read; `signature` (signature PIN) is read when the NFC node's `jpki_request_attributes` setting is on.","uniqueKey":"nfc_verifications.oneOf.0.items.[INDEX].jpki.oneOf.0.certificate_types","typeLabel":"enum\u003cstring>[]"},"chain_valid":{"type":"boolean","description":"`true` when every certificate read chains to the JPKI certification authority, is inside its validity period and is a My Number Card certificate of its type.","uniqueKey":"nfc_verifications.oneOf.0.items.[INDEX].jpki.oneOf.0.chain_valid","typeLabel":"boolean"},"signature_valid":{"type":"boolean","description":"`true` when every signature the card made over the one-time challenge verifies. The card only signs after its PIN is entered, so this proves possession of the card and knowledge of the PIN.","uniqueKey":"nfc_verifications.oneOf.0.items.[INDEX].jpki.oneOf.0.signature_valid","typeLabel":"boolean"},"revocation_status":{"type":"string","enum":["good","revoked","unchecked"],"description":"`good` when the revocation check confirmed every certificate is valid, `revoked` when any certificate is revoked (for example a card reported lost), `unchecked` when no revocation answer was available. `unchecked` is never treated as `good`: the NFC node's `jpki_revocation_unchecked_action` decides the outcome (default `REVIEW`).","uniqueKey":"nfc_verifications.oneOf.0.items.[INDEX].jpki.oneOf.0.revocation_status","typeLabel":"enum\u003cstring>"},"ca_generation":{"oneOf":[{"type":"string","description":"Generation of the JPKI certification authority that issued the certificates, for example `2023`. `null` when no certificate chains to one.","uniqueKey":"nfc_verifications.oneOf.0.items.[INDEX].jpki.oneOf.0.ca_generation.oneOf.0","typeLabel":"string"},{"type":"null","description":"Generation of the JPKI certification authority that issued the certificates, for example `2023`. `null` when no certificate chains to one.","uniqueKey":"nfc_verifications.oneOf.0.items.[INDEX].jpki.oneOf.0.ca_generation.oneOf.1","typeLabel":"null"}],"uniqueKey":"nfc_verifications.oneOf.0.items.[INDEX].jpki.oneOf.0.ca_generation","typeLabel":"string | null"},"certificate_expires_at":{"oneOf":[{"type":"string","format":"date-time","description":"The earliest expiry among the certificates read.","uniqueKey":"nfc_verifications.oneOf.0.items.[INDEX].jpki.oneOf.0.certificate_expires_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","description":"The earliest expiry among the certificates read.","uniqueKey":"nfc_verifications.oneOf.0.items.[INDEX].jpki.oneOf.0.certificate_expires_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"nfc_verifications.oneOf.0.items.[INDEX].jpki.oneOf.0.certificate_expires_at","typeLabel":"string\u003cdate-time> | null"},"certificates":{"type":"array","items":{"type":"object","description":"What one certificate read from the card proved. Never the certificate itself or its serial number.","properties":{"type":{"type":"string","enum":["user_authentication","signature"],"description":"Which card certificate this entry describes.","uniqueKey":"nfc_verifications.oneOf.0.items.[INDEX].jpki.oneOf.0.certificates.items.[INDEX].type","typeLabel":"enum\u003cstring>"},"chain_valid":{"type":"boolean","description":"`true` when the certificate chains to the JPKI certification authority of its type, is inside its validity period and is a My Number Card certificate of that type.","uniqueKey":"nfc_verifications.oneOf.0.items.[INDEX].jpki.oneOf.0.certificates.items.[INDEX].chain_valid","typeLabel":"boolean"},"signature_valid":{"type":"boolean","description":"`true` when the card's signature over the one-time challenge verifies against this certificate.","uniqueKey":"nfc_verifications.oneOf.0.items.[INDEX].jpki.oneOf.0.certificates.items.[INDEX].signature_valid","typeLabel":"boolean"},"ca_generation":{"oneOf":[{"type":"string","description":"Generation of the JPKI certification authority that issued the certificate, for example `2023`. `null` when no trusted issuer was found.","uniqueKey":"nfc_verifications.oneOf.0.items.[INDEX].jpki.oneOf.0.certificates.items.[INDEX].ca_generation.oneOf.0","typeLabel":"string"},{"type":"null","description":"Generation of the JPKI certification authority that issued the certificate, for example `2023`. `null` when no trusted issuer was found.","uniqueKey":"nfc_verifications.oneOf.0.items.[INDEX].jpki.oneOf.0.certificates.items.[INDEX].ca_generation.oneOf.1","typeLabel":"null"}],"uniqueKey":"nfc_verifications.oneOf.0.items.[INDEX].jpki.oneOf.0.certificates.items.[INDEX].ca_generation","typeLabel":"string | null"},"not_valid_before":{"oneOf":[{"type":"string","format":"date-time","description":"Start of the certificate's validity period. `null` when the certificate could not be read.","uniqueKey":"nfc_verifications.oneOf.0.items.[INDEX].jpki.oneOf.0.certificates.items.[INDEX].not_valid_before.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","description":"Start of the certificate's validity period. `null` when the certificate could not be read.","uniqueKey":"nfc_verifications.oneOf.0.items.[INDEX].jpki.oneOf.0.certificates.items.[INDEX].not_valid_before.oneOf.1","typeLabel":"null"}],"uniqueKey":"nfc_verifications.oneOf.0.items.[INDEX].jpki.oneOf.0.certificates.items.[INDEX].not_valid_before","typeLabel":"string\u003cdate-time> | null"},"not_valid_after":{"oneOf":[{"type":"string","format":"date-time","description":"End of the certificate's validity period. `null` when the certificate could not be read.","uniqueKey":"nfc_verifications.oneOf.0.items.[INDEX].jpki.oneOf.0.certificates.items.[INDEX].not_valid_after.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","description":"End of the certificate's validity period. `null` when the certificate could not be read.","uniqueKey":"nfc_verifications.oneOf.0.items.[INDEX].jpki.oneOf.0.certificates.items.[INDEX].not_valid_after.oneOf.1","typeLabel":"null"}],"uniqueKey":"nfc_verifications.oneOf.0.items.[INDEX].jpki.oneOf.0.certificates.items.[INDEX].not_valid_after","typeLabel":"string\u003cdate-time> | null"},"failure":{"oneOf":[{"type":"string","enum":["unreadable_certificate","untrusted_issuer","expired","not_yet_valid","wrong_policy","key_usage",null],"description":"Why `chain_valid` is `false`: `unreadable_certificate`, `untrusted_issuer` (not issued by the JPKI certification authority of its type), `expired`, `not_yet_valid`, `wrong_policy` (not a My Number Card certificate of that type) or `key_usage` (the key may not sign). `null` when the chain is valid.","uniqueKey":"nfc_verifications.oneOf.0.items.[INDEX].jpki.oneOf.0.certificates.items.[INDEX].failure.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["unreadable_certificate","untrusted_issuer","expired","not_yet_valid","wrong_policy","key_usage",null],"description":"Why `chain_valid` is `false`: `unreadable_certificate`, `untrusted_issuer` (not issued by the JPKI certification authority of its type), `expired`, `not_yet_valid`, `wrong_policy` (not a My Number Card certificate of that type) or `key_usage` (the key may not sign). `null` when the chain is valid.","uniqueKey":"nfc_verifications.oneOf.0.items.[INDEX].jpki.oneOf.0.certificates.items.[INDEX].failure.oneOf.1","typeLabel":"null"}],"uniqueKey":"nfc_verifications.oneOf.0.items.[INDEX].jpki.oneOf.0.certificates.items.[INDEX].failure","typeLabel":"enum\u003cstring> | null"}},"uniqueKey":"nfc_verifications.oneOf.0.items.[INDEX].jpki.oneOf.0.certificates.items.[INDEX]","typeLabel":"object"},"description":"Per-certificate results, one entry per certificate read.","uniqueKey":"nfc_verifications.oneOf.0.items.[INDEX].jpki.oneOf.0.certificates","typeLabel":"object[]"},"attributes":{"oneOf":[{"type":"object","description":"The holder's data from the signature certificate, once its chain is valid. `null` when the signature certificate was not requested or did not chain to the JPKI certification authority.","properties":{"full_name":{"oneOf":[{"type":"string","description":"Name as registered, usually in Japanese script.","uniqueKey":"nfc_verifications.oneOf.0.items.[INDEX].jpki.oneOf.0.attributes.oneOf.0.full_name.oneOf.0","typeLabel":"string"},{"type":"null","description":"Name as registered, usually in Japanese script.","uniqueKey":"nfc_verifications.oneOf.0.items.[INDEX].jpki.oneOf.0.attributes.oneOf.0.full_name.oneOf.1","typeLabel":"null"}],"uniqueKey":"nfc_verifications.oneOf.0.items.[INDEX].jpki.oneOf.0.attributes.oneOf.0.full_name","typeLabel":"string | null"},"date_of_birth":{"oneOf":[{"type":"string","format":"date","description":"Date of birth, `YYYY-MM-DD`. `null` when the registered date is incomplete.","uniqueKey":"nfc_verifications.oneOf.0.items.[INDEX].jpki.oneOf.0.attributes.oneOf.0.date_of_birth.oneOf.0","typeLabel":"string\u003cdate>"},{"type":"null","format":"date","description":"Date of birth, `YYYY-MM-DD`. `null` when the registered date is incomplete.","uniqueKey":"nfc_verifications.oneOf.0.items.[INDEX].jpki.oneOf.0.attributes.oneOf.0.date_of_birth.oneOf.1","typeLabel":"null"}],"uniqueKey":"nfc_verifications.oneOf.0.items.[INDEX].jpki.oneOf.0.attributes.oneOf.0.date_of_birth","typeLabel":"string\u003cdate> | null"},"gender":{"oneOf":[{"type":"string","enum":["M","F",null],"description":"`M`, `F`, or `null` when not registered.","uniqueKey":"nfc_verifications.oneOf.0.items.[INDEX].jpki.oneOf.0.attributes.oneOf.0.gender.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["M","F",null],"description":"`M`, `F`, or `null` when not registered.","uniqueKey":"nfc_verifications.oneOf.0.items.[INDEX].jpki.oneOf.0.attributes.oneOf.0.gender.oneOf.1","typeLabel":"null"}],"uniqueKey":"nfc_verifications.oneOf.0.items.[INDEX].jpki.oneOf.0.attributes.oneOf.0.gender","typeLabel":"enum\u003cstring> | null"},"address":{"oneOf":[{"type":"string","description":"Registered address.","uniqueKey":"nfc_verifications.oneOf.0.items.[INDEX].jpki.oneOf.0.attributes.oneOf.0.address.oneOf.0","typeLabel":"string"},{"type":"null","description":"Registered address.","uniqueKey":"nfc_verifications.oneOf.0.items.[INDEX].jpki.oneOf.0.attributes.oneOf.0.address.oneOf.1","typeLabel":"null"}],"uniqueKey":"nfc_verifications.oneOf.0.items.[INDEX].jpki.oneOf.0.attributes.oneOf.0.address","typeLabel":"string | null"},"name_substitute_characters":{"oneOf":[{"type":"string","description":"Position string marking the characters of `full_name` that were replaced by a substitute because the original character is outside the standard character set. `null` when none were replaced.","uniqueKey":"nfc_verifications.oneOf.0.items.[INDEX].jpki.oneOf.0.attributes.oneOf.0.name_substitute_characters.oneOf.0","typeLabel":"string"},{"type":"null","description":"Position string marking the characters of `full_name` that were replaced by a substitute because the original character is outside the standard character set. `null` when none were replaced.","uniqueKey":"nfc_verifications.oneOf.0.items.[INDEX].jpki.oneOf.0.attributes.oneOf.0.name_substitute_characters.oneOf.1","typeLabel":"null"}],"uniqueKey":"nfc_verifications.oneOf.0.items.[INDEX].jpki.oneOf.0.attributes.oneOf.0.name_substitute_characters","typeLabel":"string | null"},"address_substitute_characters":{"oneOf":[{"type":"string","description":"Position string marking substitute characters in `address`, as for `name_substitute_characters`.","uniqueKey":"nfc_verifications.oneOf.0.items.[INDEX].jpki.oneOf.0.attributes.oneOf.0.address_substitute_characters.oneOf.0","typeLabel":"string"},{"type":"null","description":"Position string marking substitute characters in `address`, as for `name_substitute_characters`.","uniqueKey":"nfc_verifications.oneOf.0.items.[INDEX].jpki.oneOf.0.attributes.oneOf.0.address_substitute_characters.oneOf.1","typeLabel":"null"}],"uniqueKey":"nfc_verifications.oneOf.0.items.[INDEX].jpki.oneOf.0.attributes.oneOf.0.address_substitute_characters","typeLabel":"string | null"}},"uniqueKey":"nfc_verifications.oneOf.0.items.[INDEX].jpki.oneOf.0.attributes.oneOf.0","typeLabel":"object"},{"type":"null","description":"The holder's data from the signature certificate, once its chain is valid. `null` when the signature certificate was not requested or did not chain to the JPKI certification authority.","properties":{"full_name":{"oneOf":[{"type":"string","description":"Name as registered, usually in Japanese script."},{"type":"null","description":"Name as registered, usually in Japanese script."}]},"date_of_birth":{"oneOf":[{"type":"string","format":"date","description":"Date of birth, `YYYY-MM-DD`. `null` when the registered date is incomplete."},{"type":"null","format":"date","description":"Date of birth, `YYYY-MM-DD`. `null` when the registered date is incomplete."}]},"gender":{"oneOf":[{"type":"string","enum":["M","F",null],"description":"`M`, `F`, or `null` when not registered."},{"type":"null","enum":["M","F",null],"description":"`M`, `F`, or `null` when not registered."}]},"address":{"oneOf":[{"type":"string","description":"Registered address."},{"type":"null","description":"Registered address."}]},"name_substitute_characters":{"oneOf":[{"type":"string","description":"Position string marking the characters of `full_name` that were replaced by a substitute because the original character is outside the standard character set. `null` when none were replaced."},{"type":"null","description":"Position string marking the characters of `full_name` that were replaced by a substitute because the original character is outside the standard character set. `null` when none were replaced."}]},"address_substitute_characters":{"oneOf":[{"type":"string","description":"Position string marking substitute characters in `address`, as for `name_substitute_characters`."},{"type":"null","description":"Position string marking substitute characters in `address`, as for `name_substitute_characters`."}]}},"uniqueKey":"nfc_verifications.oneOf.0.items.[INDEX].jpki.oneOf.0.attributes.oneOf.1","typeLabel":"null"}],"uniqueKey":"nfc_verifications.oneOf.0.items.[INDEX].jpki.oneOf.0.attributes","typeLabel":"object | null"},"attributes_match_ocr":{"oneOf":[{"type":"boolean","description":"`true` when the attributes match the data read from the photo of the same card, `false` when any attribute differs (`JPKI_AND_OCR_DATA_NOT_SAME`), `null` when nothing could be compared, including whenever `attributes` is `null`.","uniqueKey":"nfc_verifications.oneOf.0.items.[INDEX].jpki.oneOf.0.attributes_match_ocr.oneOf.0","typeLabel":"boolean"},{"type":"null","description":"`true` when the attributes match the data read from the photo of the same card, `false` when any attribute differs (`JPKI_AND_OCR_DATA_NOT_SAME`), `null` when nothing could be compared, including whenever `attributes` is `null`.","uniqueKey":"nfc_verifications.oneOf.0.items.[INDEX].jpki.oneOf.0.attributes_match_ocr.oneOf.1","typeLabel":"null"}],"uniqueKey":"nfc_verifications.oneOf.0.items.[INDEX].jpki.oneOf.0.attributes_match_ocr","typeLabel":"boolean | null"},"mismatched_attributes":{"type":"array","items":{"type":"string","enum":["full_name","date_of_birth","gender","address"],"uniqueKey":"nfc_verifications.oneOf.0.items.[INDEX].jpki.oneOf.0.mismatched_attributes.items.[INDEX]","typeLabel":"enum\u003cstring>"},"description":"Names of the attributes that differ from the photo data, never their values. Empty when everything compared matches.","uniqueKey":"nfc_verifications.oneOf.0.items.[INDEX].jpki.oneOf.0.mismatched_attributes","typeLabel":"enum\u003cstring>[]"}},"uniqueKey":"nfc_verifications.oneOf.0.items.[INDEX].jpki.oneOf.0","typeLabel":"object"},{"type":"null","description":"What a Japan My Number Card read through JPKI proved. Present when `chip_protocol` is `jpki` and the card was read. `null` for ICAO chips, for skipped steps, and when the NFC step closed without any card read (that case raises `JPKI_SIGNATURE_INVALID`). Never carries the certificates, their serial numbers, the signatures or the 12-digit My Number.","properties":{"certificate_types":{"type":"array","items":{"type":"string","enum":["user_authentication","signature"]},"description":"The card certificates read. `user_authentication` (4-digit PIN) is always read; `signature` (signature PIN) is read when the NFC node's `jpki_request_attributes` setting is on."},"chain_valid":{"type":"boolean","description":"`true` when every certificate read chains to the JPKI certification authority, is inside its validity period and is a My Number Card certificate of its type."},"signature_valid":{"type":"boolean","description":"`true` when every signature the card made over the one-time challenge verifies. The card only signs after its PIN is entered, so this proves possession of the card and knowledge of the PIN."},"revocation_status":{"type":"string","enum":["good","revoked","unchecked"],"description":"`good` when the revocation check confirmed every certificate is valid, `revoked` when any certificate is revoked (for example a card reported lost), `unchecked` when no revocation answer was available. `unchecked` is never treated as `good`: the NFC node's `jpki_revocation_unchecked_action` decides the outcome (default `REVIEW`)."},"ca_generation":{"oneOf":[{"type":"string","description":"Generation of the JPKI certification authority that issued the certificates, for example `2023`. `null` when no certificate chains to one."},{"type":"null","description":"Generation of the JPKI certification authority that issued the certificates, for example `2023`. `null` when no certificate chains to one."}]},"certificate_expires_at":{"oneOf":[{"type":"string","format":"date-time","description":"The earliest expiry among the certificates read."},{"type":"null","format":"date-time","description":"The earliest expiry among the certificates read."}]},"certificates":{"type":"array","items":{"type":"object","description":"What one certificate read from the card proved. Never the certificate itself or its serial number.","properties":{"type":{"type":"string","enum":["user_authentication","signature"],"description":"Which card certificate this entry describes."},"chain_valid":{"type":"boolean","description":"`true` when the certificate chains to the JPKI certification authority of its type, is inside its validity period and is a My Number Card certificate of that type."},"signature_valid":{"type":"boolean","description":"`true` when the card's signature over the one-time challenge verifies against this certificate."},"ca_generation":{"oneOf":[{"type":"string","description":"Generation of the JPKI certification authority that issued the certificate, for example `2023`. `null` when no trusted issuer was found."},{"type":"null","description":"Generation of the JPKI certification authority that issued the certificate, for example `2023`. `null` when no trusted issuer was found."}]},"not_valid_before":{"oneOf":[{"type":"string","format":"date-time","description":"Start of the certificate's validity period. `null` when the certificate could not be read."},{"type":"null","format":"date-time","description":"Start of the certificate's validity period. `null` when the certificate could not be read."}]},"not_valid_after":{"oneOf":[{"type":"string","format":"date-time","description":"End of the certificate's validity period. `null` when the certificate could not be read."},{"type":"null","format":"date-time","description":"End of the certificate's validity period. `null` when the certificate could not be read."}]},"failure":{"oneOf":[{"type":"string","enum":["unreadable_certificate","untrusted_issuer","expired","not_yet_valid","wrong_policy","key_usage",null],"description":"Why `chain_valid` is `false`: `unreadable_certificate`, `untrusted_issuer` (not issued by the JPKI certification authority of its type), `expired`, `not_yet_valid`, `wrong_policy` (not a My Number Card certificate of that type) or `key_usage` (the key may not sign). `null` when the chain is valid."},{"type":"null","enum":["unreadable_certificate","untrusted_issuer","expired","not_yet_valid","wrong_policy","key_usage",null],"description":"Why `chain_valid` is `false`: `unreadable_certificate`, `untrusted_issuer` (not issued by the JPKI certification authority of its type), `expired`, `not_yet_valid`, `wrong_policy` (not a My Number Card certificate of that type) or `key_usage` (the key may not sign). `null` when the chain is valid."}]}}},"description":"Per-certificate results, one entry per certificate read."},"attributes":{"oneOf":[{"type":"object","description":"The holder's data from the signature certificate, once its chain is valid. `null` when the signature certificate was not requested or did not chain to the JPKI certification authority.","properties":{"full_name":{"oneOf":[{"type":"string","description":"Name as registered, usually in Japanese script."},{"type":"null","description":"Name as registered, usually in Japanese script."}]},"date_of_birth":{"oneOf":[{"type":"string","format":"date","description":"Date of birth, `YYYY-MM-DD`. `null` when the registered date is incomplete."},{"type":"null","format":"date","description":"Date of birth, `YYYY-MM-DD`. `null` when the registered date is incomplete."}]},"gender":{"oneOf":[{"type":"string","enum":["M","F",null],"description":"`M`, `F`, or `null` when not registered."},{"type":"null","enum":["M","F",null],"description":"`M`, `F`, or `null` when not registered."}]},"address":{"oneOf":[{"type":"string","description":"Registered address."},{"type":"null","description":"Registered address."}]},"name_substitute_characters":{"oneOf":[{"type":"string","description":"Position string marking the characters of `full_name` that were replaced by a substitute because the original character is outside the standard character set. `null` when none were replaced."},{"type":"null","description":"Position string marking the characters of `full_name` that were replaced by a substitute because the original character is outside the standard character set. `null` when none were replaced."}]},"address_substitute_characters":{"oneOf":[{"type":"string","description":"Position string marking substitute characters in `address`, as for `name_substitute_characters`."},{"type":"null","description":"Position string marking substitute characters in `address`, as for `name_substitute_characters`."}]}}},{"type":"null","description":"The holder's data from the signature certificate, once its chain is valid. `null` when the signature certificate was not requested or did not chain to the JPKI certification authority.","properties":{"full_name":{"oneOf":[{"type":"string","description":"Name as registered, usually in Japanese script."},{"type":"null","description":"Name as registered, usually in Japanese script."}]},"date_of_birth":{"oneOf":[{"type":"string","format":"date","description":"Date of birth, `YYYY-MM-DD`. `null` when the registered date is incomplete."},{"type":"null","format":"date","description":"Date of birth, `YYYY-MM-DD`. `null` when the registered date is incomplete."}]},"gender":{"oneOf":[{"type":"string","enum":["M","F",null],"description":"`M`, `F`, or `null` when not registered."},{"type":"null","enum":["M","F",null],"description":"`M`, `F`, or `null` when not registered."}]},"address":{"oneOf":[{"type":"string","description":"Registered address."},{"type":"null","description":"Registered address."}]},"name_substitute_characters":{"oneOf":[{"type":"string","description":"Position string marking the characters of `full_name` that were replaced by a substitute because the original character is outside the standard character set. `null` when none were replaced."},{"type":"null","description":"Position string marking the characters of `full_name` that were replaced by a substitute because the original character is outside the standard character set. `null` when none were replaced."}]},"address_substitute_characters":{"oneOf":[{"type":"string","description":"Position string marking substitute characters in `address`, as for `name_substitute_characters`."},{"type":"null","description":"Position string marking substitute characters in `address`, as for `name_substitute_characters`."}]}}}]},"attributes_match_ocr":{"oneOf":[{"type":"boolean","description":"`true` when the attributes match the data read from the photo of the same card, `false` when any attribute differs (`JPKI_AND_OCR_DATA_NOT_SAME`), `null` when nothing could be compared, including whenever `attributes` is `null`."},{"type":"null","description":"`true` when the attributes match the data read from the photo of the same card, `false` when any attribute differs (`JPKI_AND_OCR_DATA_NOT_SAME`), `null` when nothing could be compared, including whenever `attributes` is `null`."}]},"mismatched_attributes":{"type":"array","items":{"type":"string","enum":["full_name","date_of_birth","gender","address"]},"description":"Names of the attributes that differ from the photo data, never their values. Empty when everything compared matches."}},"uniqueKey":"nfc_verifications.oneOf.0.items.[INDEX].jpki.oneOf.1","typeLabel":"null"}],"uniqueKey":"nfc_verifications.oneOf.0.items.[INDEX].jpki","typeLabel":"object | null"},"portrait_image":{"oneOf":[{"type":"string","format":"uri","description":"Presigned URL to the portrait read from the chip (ICAO DG2). `null` for a JPKI read (`chip_protocol: \"jpki\"`) and for skipped steps.","uniqueKey":"nfc_verifications.oneOf.0.items.[INDEX].portrait_image.oneOf.0","typeLabel":"string\u003curi>"},{"type":"null","format":"uri","description":"Presigned URL to the portrait read from the chip (ICAO DG2). `null` for a JPKI read (`chip_protocol: \"jpki\"`) and for skipped steps.","uniqueKey":"nfc_verifications.oneOf.0.items.[INDEX].portrait_image.oneOf.1","typeLabel":"null"}],"uniqueKey":"nfc_verifications.oneOf.0.items.[INDEX].portrait_image","typeLabel":"string\u003curi> | null"},"signature_image":{"oneOf":[{"type":"string","format":"uri","description":"Presigned URL to the holder's signature image read from the chip (ICAO DG7), when the chip stores one. `null` for a JPKI read (`chip_protocol: \"jpki\"`) and for skipped steps.","uniqueKey":"nfc_verifications.oneOf.0.items.[INDEX].signature_image.oneOf.0","typeLabel":"string\u003curi>"},{"type":"null","format":"uri","description":"Presigned URL to the holder's signature image read from the chip (ICAO DG7), when the chip stores one. `null` for a JPKI read (`chip_protocol: \"jpki\"`) and for skipped steps.","uniqueKey":"nfc_verifications.oneOf.0.items.[INDEX].signature_image.oneOf.1","typeLabel":"null"}],"uniqueKey":"nfc_verifications.oneOf.0.items.[INDEX].signature_image","typeLabel":"string\u003curi> | null"},"chip_data":{"oneOf":[{"type":"object","description":"Personal data parsed from the ICAO chip's Data Groups. `null` for a JPKI read (`chip_protocol: \"jpki\"`) and for skipped steps.","properties":{"document_type":{"type":"string","uniqueKey":"nfc_verifications.oneOf.0.items.[INDEX].chip_data.oneOf.0.document_type","typeLabel":"string"},"issuing_country":{"type":"string","uniqueKey":"nfc_verifications.oneOf.0.items.[INDEX].chip_data.oneOf.0.issuing_country","typeLabel":"string"},"document_number":{"type":"string","uniqueKey":"nfc_verifications.oneOf.0.items.[INDEX].chip_data.oneOf.0.document_number","typeLabel":"string"},"expiration_date":{"type":"string","format":"date","uniqueKey":"nfc_verifications.oneOf.0.items.[INDEX].chip_data.oneOf.0.expiration_date","typeLabel":"string\u003cdate>"},"first_name":{"type":"string","uniqueKey":"nfc_verifications.oneOf.0.items.[INDEX].chip_data.oneOf.0.first_name","typeLabel":"string"},"last_name":{"type":"string","uniqueKey":"nfc_verifications.oneOf.0.items.[INDEX].chip_data.oneOf.0.last_name","typeLabel":"string"},"birth_date":{"type":"string","format":"date","uniqueKey":"nfc_verifications.oneOf.0.items.[INDEX].chip_data.oneOf.0.birth_date","typeLabel":"string\u003cdate>"},"gender":{"type":"string","uniqueKey":"nfc_verifications.oneOf.0.items.[INDEX].chip_data.oneOf.0.gender","typeLabel":"string"},"nationality":{"type":"string","uniqueKey":"nfc_verifications.oneOf.0.items.[INDEX].chip_data.oneOf.0.nationality","typeLabel":"string"},"address":{"type":"string","uniqueKey":"nfc_verifications.oneOf.0.items.[INDEX].chip_data.oneOf.0.address","typeLabel":"string"},"place_of_birth":{"type":"string","uniqueKey":"nfc_verifications.oneOf.0.items.[INDEX].chip_data.oneOf.0.place_of_birth","typeLabel":"string"}},"uniqueKey":"nfc_verifications.oneOf.0.items.[INDEX].chip_data.oneOf.0","typeLabel":"object"},{"type":"null","description":"Personal data parsed from the ICAO chip's Data Groups. `null` for a JPKI read (`chip_protocol: \"jpki\"`) and for skipped steps.","properties":{"document_type":{"type":"string"},"issuing_country":{"type":"string"},"document_number":{"type":"string"},"expiration_date":{"type":"string","format":"date"},"first_name":{"type":"string"},"last_name":{"type":"string"},"birth_date":{"type":"string","format":"date"},"gender":{"type":"string"},"nationality":{"type":"string"},"address":{"type":"string"},"place_of_birth":{"type":"string"}},"uniqueKey":"nfc_verifications.oneOf.0.items.[INDEX].chip_data.oneOf.1","typeLabel":"null"}],"uniqueKey":"nfc_verifications.oneOf.0.items.[INDEX].chip_data","typeLabel":"object | null"},"authenticity":{"oneOf":[{"type":"object","description":"ICAO passive authentication: SOD signature (`sod_integrity`) and Data Group hashes (`dg_integrity`). `null` for a JPKI read, which reports its proof under `jpki`.","properties":{"sod_integrity":{"type":"boolean","uniqueKey":"nfc_verifications.oneOf.0.items.[INDEX].authenticity.oneOf.0.sod_integrity","typeLabel":"boolean"},"dg_integrity":{"type":"boolean","uniqueKey":"nfc_verifications.oneOf.0.items.[INDEX].authenticity.oneOf.0.dg_integrity","typeLabel":"boolean"}},"uniqueKey":"nfc_verifications.oneOf.0.items.[INDEX].authenticity.oneOf.0","typeLabel":"object"},{"type":"null","description":"ICAO passive authentication: SOD signature (`sod_integrity`) and Data Group hashes (`dg_integrity`). `null` for a JPKI read, which reports its proof under `jpki`.","properties":{"sod_integrity":{"type":"boolean"},"dg_integrity":{"type":"boolean"}},"uniqueKey":"nfc_verifications.oneOf.0.items.[INDEX].authenticity.oneOf.1","typeLabel":"null"}],"uniqueKey":"nfc_verifications.oneOf.0.items.[INDEX].authenticity","typeLabel":"object | null"},"certificate_summary":{"oneOf":[{"type":"object","description":"Summary of the ICAO Document Signer Certificate. `null` for a JPKI read (`chip_protocol: \"jpki\"`) and for skipped steps.","properties":{"issuer":{"type":"string","uniqueKey":"nfc_verifications.oneOf.0.items.[INDEX].certificate_summary.oneOf.0.issuer","typeLabel":"string"},"subject":{"type":"string","uniqueKey":"nfc_verifications.oneOf.0.items.[INDEX].certificate_summary.oneOf.0.subject","typeLabel":"string"},"serial_number":{"type":"string","uniqueKey":"nfc_verifications.oneOf.0.items.[INDEX].certificate_summary.oneOf.0.serial_number","typeLabel":"string"},"not_valid_after":{"type":"string","format":"date-time","uniqueKey":"nfc_verifications.oneOf.0.items.[INDEX].certificate_summary.oneOf.0.not_valid_after","typeLabel":"string\u003cdate-time>"},"not_valid_before":{"type":"string","format":"date-time","uniqueKey":"nfc_verifications.oneOf.0.items.[INDEX].certificate_summary.oneOf.0.not_valid_before","typeLabel":"string\u003cdate-time>"}},"uniqueKey":"nfc_verifications.oneOf.0.items.[INDEX].certificate_summary.oneOf.0","typeLabel":"object"},{"type":"null","description":"Summary of the ICAO Document Signer Certificate. `null` for a JPKI read (`chip_protocol: \"jpki\"`) and for skipped steps.","properties":{"issuer":{"type":"string"},"subject":{"type":"string"},"serial_number":{"type":"string"},"not_valid_after":{"type":"string","format":"date-time"},"not_valid_before":{"type":"string","format":"date-time"}},"uniqueKey":"nfc_verifications.oneOf.0.items.[INDEX].certificate_summary.oneOf.1","typeLabel":"null"}],"uniqueKey":"nfc_verifications.oneOf.0.items.[INDEX].certificate_summary","typeLabel":"object | null"},"warnings":{"type":"array","items":{"type":"object","properties":{"feature":{"type":"string","enum":["ID_VERIFICATION","NFC","LIVENESS","FACEMATCH","PROOF_OF_ADDRESS","PHONE","EMAIL","AML","LOCATION","DATABASE_VALIDATION","QUESTIONNAIRE","DOCUMENT_AI","KYB_REGISTRY","KYB_DOCUMENTS","KYB_KEY_PEOPLE","GEOLOCATION","SIGNATURE"],"description":"The feature that generated this warning. The value identifies the feature block the warning belongs to. Each module's warnings array typically uses the value matching its module (e.g. `PHONE` inside `phone_verifications[].warnings`), but the enum above is authoritative across all feature warnings on the decision payload.","uniqueKey":"nfc_verifications.oneOf.0.items.[INDEX].warnings.items.[INDEX].feature","typeLabel":"enum\u003cstring>"},"risk":{"type":"string","uniqueKey":"nfc_verifications.oneOf.0.items.[INDEX].warnings.items.[INDEX].risk","typeLabel":"string"},"additional_data":{"oneOf":[{"type":"object","uniqueKey":"nfc_verifications.oneOf.0.items.[INDEX].warnings.items.[INDEX].additional_data.oneOf.0","typeLabel":"object"},{"type":"null","uniqueKey":"nfc_verifications.oneOf.0.items.[INDEX].warnings.items.[INDEX].additional_data.oneOf.1","typeLabel":"null"}],"uniqueKey":"nfc_verifications.oneOf.0.items.[INDEX].warnings.items.[INDEX].additional_data","typeLabel":"object | null"},"log_type":{"type":"string","uniqueKey":"nfc_verifications.oneOf.0.items.[INDEX].warnings.items.[INDEX].log_type","typeLabel":"string"},"short_description":{"type":"string","uniqueKey":"nfc_verifications.oneOf.0.items.[INDEX].warnings.items.[INDEX].short_description","typeLabel":"string"},"long_description":{"type":"string","uniqueKey":"nfc_verifications.oneOf.0.items.[INDEX].warnings.items.[INDEX].long_description","typeLabel":"string"},"node_id":{"type":"string","description":"The workflow graph node ID that generated this warning","uniqueKey":"nfc_verifications.oneOf.0.items.[INDEX].warnings.items.[INDEX].node_id","typeLabel":"string"}},"uniqueKey":"nfc_verifications.oneOf.0.items.[INDEX].warnings.items.[INDEX]","typeLabel":"object"},"uniqueKey":"nfc_verifications.oneOf.0.items.[INDEX].warnings","typeLabel":"object[]"}},"uniqueKey":"nfc_verifications.oneOf.0.items.[INDEX]","typeLabel":"object"},"uniqueKey":"nfc_verifications.oneOf.0","typeLabel":"object[]"},{"type":"null","description":"**Array of NFC / ePassport reports** produced by NFC steps in the workflow graph. **This is always a JSON array, never a singular `nfc` object** — read `nfc_verifications[0]` and iterate if your workflow can run NFC more than once. `null` until at least one NFC step has produced data. Each item is the full report, including `node_id`, feature-level `status`, `chip_protocol`, `chip_data`, `authenticity` (SOD + DG integrity), `certificate_summary`, and `warnings[]`. A Japan My Number Card is read through JPKI instead of ICAO 9303: its item has `chip_protocol: \"jpki\"`, carries its evidence under `jpki`, and leaves the ICAO fields `null`. When the NFC step was bypassed before it could ever be offered (chipless document, missing certificate, no NFC capability reported, unreadable MRZ key, JPKI unavailable for a My Number Card), this stays `null` and `nfc_skip_reason` explains why; a skip at the step itself (user tapped skip, or the reader turned out unavailable at scan time) still produces a report with `is_nfc_skipped: true`.","items":{"type":"object","description":"One NFC report: the full report for a single chip read (an ICAO 9303 ePassport or eID chip, or a Japan My Number Card read through JPKI).","properties":{"node_id":{"type":"string","description":"Workflow graph node id of the NFC step that produced this report. Use it to correlate the report with the workflow definition."},"status":{"type":"string","enum":["Not Finished","Approved","Declined","In Review","Resub Requested"],"description":"Feature-level status of this NFC step. Independent of the top-level session `status` — a session can reach its overall decision while an individual feature stays `In Review`."},"is_nfc_skipped":{"type":"boolean","description":"`true` when this NFC step was explicitly skipped instead of read; `skip_reason` says why."},"skip_reason":{"oneOf":[{"type":"string","enum":["USER_SKIPPED","DOCUMENT_WITHOUT_CHIP","CHIP_CERTIFICATE_UNAVAILABLE","DEVICE_WITHOUT_NFC","INTEGRATION_WITHOUT_NFC_ACCESS","MRZ_KEY_UNAVAILABLE","JPKI_UNAVAILABLE"],"description":"Why this NFC step was skipped. Only set when `is_nfc_skipped` is `true`. Same taxonomy as the session-level `nfc_skip_reason`, which additionally covers the cases where NFC never produced a report at all."},{"type":"null","enum":["USER_SKIPPED","DOCUMENT_WITHOUT_CHIP","CHIP_CERTIFICATE_UNAVAILABLE","DEVICE_WITHOUT_NFC","INTEGRATION_WITHOUT_NFC_ACCESS","MRZ_KEY_UNAVAILABLE","JPKI_UNAVAILABLE"],"description":"Why this NFC step was skipped. Only set when `is_nfc_skipped` is `true`. Same taxonomy as the session-level `nfc_skip_reason`, which additionally covers the cases where NFC never produced a report at all."}]},"chip_protocol":{"type":"string","enum":["icao","jpki"],"description":"How the NFC step reads the chip. `icao`: ICAO 9303 ePassport or eID chip, opened with the access key from the MRZ. `jpki`: Japan My Number Card, where the card signs a one-time challenge after the holder enters the card PIN in a native SDK; the result is under `jpki`. Also set on skipped steps, so you can tell a skipped My Number Card read apart."},"jpki":{"oneOf":[{"type":"object","description":"What a Japan My Number Card read through JPKI proved. Present when `chip_protocol` is `jpki` and the card was read. `null` for ICAO chips, for skipped steps, and when the NFC step closed without any card read (that case raises `JPKI_SIGNATURE_INVALID`). Never carries the certificates, their serial numbers, the signatures or the 12-digit My Number.","properties":{"certificate_types":{"type":"array","items":{"type":"string","enum":["user_authentication","signature"]},"description":"The card certificates read. `user_authentication` (4-digit PIN) is always read; `signature` (signature PIN) is read when the NFC node's `jpki_request_attributes` setting is on."},"chain_valid":{"type":"boolean","description":"`true` when every certificate read chains to the JPKI certification authority, is inside its validity period and is a My Number Card certificate of its type."},"signature_valid":{"type":"boolean","description":"`true` when every signature the card made over the one-time challenge verifies. The card only signs after its PIN is entered, so this proves possession of the card and knowledge of the PIN."},"revocation_status":{"type":"string","enum":["good","revoked","unchecked"],"description":"`good` when the revocation check confirmed every certificate is valid, `revoked` when any certificate is revoked (for example a card reported lost), `unchecked` when no revocation answer was available. `unchecked` is never treated as `good`: the NFC node's `jpki_revocation_unchecked_action` decides the outcome (default `REVIEW`)."},"ca_generation":{"oneOf":[{"type":"string","description":"Generation of the JPKI certification authority that issued the certificates, for example `2023`. `null` when no certificate chains to one."},{"type":"null","description":"Generation of the JPKI certification authority that issued the certificates, for example `2023`. `null` when no certificate chains to one."}]},"certificate_expires_at":{"oneOf":[{"type":"string","format":"date-time","description":"The earliest expiry among the certificates read."},{"type":"null","format":"date-time","description":"The earliest expiry among the certificates read."}]},"certificates":{"type":"array","items":{"type":"object","description":"What one certificate read from the card proved. Never the certificate itself or its serial number.","properties":{"type":{"type":"string","enum":["user_authentication","signature"],"description":"Which card certificate this entry describes."},"chain_valid":{"type":"boolean","description":"`true` when the certificate chains to the JPKI certification authority of its type, is inside its validity period and is a My Number Card certificate of that type."},"signature_valid":{"type":"boolean","description":"`true` when the card's signature over the one-time challenge verifies against this certificate."},"ca_generation":{"oneOf":[{"type":"string","description":"Generation of the JPKI certification authority that issued the certificate, for example `2023`. `null` when no trusted issuer was found."},{"type":"null","description":"Generation of the JPKI certification authority that issued the certificate, for example `2023`. `null` when no trusted issuer was found."}]},"not_valid_before":{"oneOf":[{"type":"string","format":"date-time","description":"Start of the certificate's validity period. `null` when the certificate could not be read."},{"type":"null","format":"date-time","description":"Start of the certificate's validity period. `null` when the certificate could not be read."}]},"not_valid_after":{"oneOf":[{"type":"string","format":"date-time","description":"End of the certificate's validity period. `null` when the certificate could not be read."},{"type":"null","format":"date-time","description":"End of the certificate's validity period. `null` when the certificate could not be read."}]},"failure":{"oneOf":[{"type":"string","enum":["unreadable_certificate","untrusted_issuer","expired","not_yet_valid","wrong_policy","key_usage",null],"description":"Why `chain_valid` is `false`: `unreadable_certificate`, `untrusted_issuer` (not issued by the JPKI certification authority of its type), `expired`, `not_yet_valid`, `wrong_policy` (not a My Number Card certificate of that type) or `key_usage` (the key may not sign). `null` when the chain is valid."},{"type":"null","enum":["unreadable_certificate","untrusted_issuer","expired","not_yet_valid","wrong_policy","key_usage",null],"description":"Why `chain_valid` is `false`: `unreadable_certificate`, `untrusted_issuer` (not issued by the JPKI certification authority of its type), `expired`, `not_yet_valid`, `wrong_policy` (not a My Number Card certificate of that type) or `key_usage` (the key may not sign). `null` when the chain is valid."}]}}},"description":"Per-certificate results, one entry per certificate read."},"attributes":{"oneOf":[{"type":"object","description":"The holder's data from the signature certificate, once its chain is valid. `null` when the signature certificate was not requested or did not chain to the JPKI certification authority.","properties":{"full_name":{"oneOf":[{"type":"string","description":"Name as registered, usually in Japanese script."},{"type":"null","description":"Name as registered, usually in Japanese script."}]},"date_of_birth":{"oneOf":[{"type":"string","format":"date","description":"Date of birth, `YYYY-MM-DD`. `null` when the registered date is incomplete."},{"type":"null","format":"date","description":"Date of birth, `YYYY-MM-DD`. `null` when the registered date is incomplete."}]},"gender":{"oneOf":[{"type":"string","enum":["M","F",null],"description":"`M`, `F`, or `null` when not registered."},{"type":"null","enum":["M","F",null],"description":"`M`, `F`, or `null` when not registered."}]},"address":{"oneOf":[{"type":"string","description":"Registered address."},{"type":"null","description":"Registered address."}]},"name_substitute_characters":{"oneOf":[{"type":"string","description":"Position string marking the characters of `full_name` that were replaced by a substitute because the original character is outside the standard character set. `null` when none were replaced."},{"type":"null","description":"Position string marking the characters of `full_name` that were replaced by a substitute because the original character is outside the standard character set. `null` when none were replaced."}]},"address_substitute_characters":{"oneOf":[{"type":"string","description":"Position string marking substitute characters in `address`, as for `name_substitute_characters`."},{"type":"null","description":"Position string marking substitute characters in `address`, as for `name_substitute_characters`."}]}}},{"type":"null","description":"The holder's data from the signature certificate, once its chain is valid. `null` when the signature certificate was not requested or did not chain to the JPKI certification authority.","properties":{"full_name":{"oneOf":[{"type":"string","description":"Name as registered, usually in Japanese script."},{"type":"null","description":"Name as registered, usually in Japanese script."}]},"date_of_birth":{"oneOf":[{"type":"string","format":"date","description":"Date of birth, `YYYY-MM-DD`. `null` when the registered date is incomplete."},{"type":"null","format":"date","description":"Date of birth, `YYYY-MM-DD`. `null` when the registered date is incomplete."}]},"gender":{"oneOf":[{"type":"string","enum":["M","F",null],"description":"`M`, `F`, or `null` when not registered."},{"type":"null","enum":["M","F",null],"description":"`M`, `F`, or `null` when not registered."}]},"address":{"oneOf":[{"type":"string","description":"Registered address."},{"type":"null","description":"Registered address."}]},"name_substitute_characters":{"oneOf":[{"type":"string","description":"Position string marking the characters of `full_name` that were replaced by a substitute because the original character is outside the standard character set. `null` when none were replaced."},{"type":"null","description":"Position string marking the characters of `full_name` that were replaced by a substitute because the original character is outside the standard character set. `null` when none were replaced."}]},"address_substitute_characters":{"oneOf":[{"type":"string","description":"Position string marking substitute characters in `address`, as for `name_substitute_characters`."},{"type":"null","description":"Position string marking substitute characters in `address`, as for `name_substitute_characters`."}]}}}]},"attributes_match_ocr":{"oneOf":[{"type":"boolean","description":"`true` when the attributes match the data read from the photo of the same card, `false` when any attribute differs (`JPKI_AND_OCR_DATA_NOT_SAME`), `null` when nothing could be compared, including whenever `attributes` is `null`."},{"type":"null","description":"`true` when the attributes match the data read from the photo of the same card, `false` when any attribute differs (`JPKI_AND_OCR_DATA_NOT_SAME`), `null` when nothing could be compared, including whenever `attributes` is `null`."}]},"mismatched_attributes":{"type":"array","items":{"type":"string","enum":["full_name","date_of_birth","gender","address"]},"description":"Names of the attributes that differ from the photo data, never their values. Empty when everything compared matches."}}},{"type":"null","description":"What a Japan My Number Card read through JPKI proved. Present when `chip_protocol` is `jpki` and the card was read. `null` for ICAO chips, for skipped steps, and when the NFC step closed without any card read (that case raises `JPKI_SIGNATURE_INVALID`). Never carries the certificates, their serial numbers, the signatures or the 12-digit My Number.","properties":{"certificate_types":{"type":"array","items":{"type":"string","enum":["user_authentication","signature"]},"description":"The card certificates read. `user_authentication` (4-digit PIN) is always read; `signature` (signature PIN) is read when the NFC node's `jpki_request_attributes` setting is on."},"chain_valid":{"type":"boolean","description":"`true` when every certificate read chains to the JPKI certification authority, is inside its validity period and is a My Number Card certificate of its type."},"signature_valid":{"type":"boolean","description":"`true` when every signature the card made over the one-time challenge verifies. The card only signs after its PIN is entered, so this proves possession of the card and knowledge of the PIN."},"revocation_status":{"type":"string","enum":["good","revoked","unchecked"],"description":"`good` when the revocation check confirmed every certificate is valid, `revoked` when any certificate is revoked (for example a card reported lost), `unchecked` when no revocation answer was available. `unchecked` is never treated as `good`: the NFC node's `jpki_revocation_unchecked_action` decides the outcome (default `REVIEW`)."},"ca_generation":{"oneOf":[{"type":"string","description":"Generation of the JPKI certification authority that issued the certificates, for example `2023`. `null` when no certificate chains to one."},{"type":"null","description":"Generation of the JPKI certification authority that issued the certificates, for example `2023`. `null` when no certificate chains to one."}]},"certificate_expires_at":{"oneOf":[{"type":"string","format":"date-time","description":"The earliest expiry among the certificates read."},{"type":"null","format":"date-time","description":"The earliest expiry among the certificates read."}]},"certificates":{"type":"array","items":{"type":"object","description":"What one certificate read from the card proved. Never the certificate itself or its serial number.","properties":{"type":{"type":"string","enum":["user_authentication","signature"],"description":"Which card certificate this entry describes."},"chain_valid":{"type":"boolean","description":"`true` when the certificate chains to the JPKI certification authority of its type, is inside its validity period and is a My Number Card certificate of that type."},"signature_valid":{"type":"boolean","description":"`true` when the card's signature over the one-time challenge verifies against this certificate."},"ca_generation":{"oneOf":[{"type":"string","description":"Generation of the JPKI certification authority that issued the certificate, for example `2023`. `null` when no trusted issuer was found."},{"type":"null","description":"Generation of the JPKI certification authority that issued the certificate, for example `2023`. `null` when no trusted issuer was found."}]},"not_valid_before":{"oneOf":[{"type":"string","format":"date-time","description":"Start of the certificate's validity period. `null` when the certificate could not be read."},{"type":"null","format":"date-time","description":"Start of the certificate's validity period. `null` when the certificate could not be read."}]},"not_valid_after":{"oneOf":[{"type":"string","format":"date-time","description":"End of the certificate's validity period. `null` when the certificate could not be read."},{"type":"null","format":"date-time","description":"End of the certificate's validity period. `null` when the certificate could not be read."}]},"failure":{"oneOf":[{"type":"string","enum":["unreadable_certificate","untrusted_issuer","expired","not_yet_valid","wrong_policy","key_usage",null],"description":"Why `chain_valid` is `false`: `unreadable_certificate`, `untrusted_issuer` (not issued by the JPKI certification authority of its type), `expired`, `not_yet_valid`, `wrong_policy` (not a My Number Card certificate of that type) or `key_usage` (the key may not sign). `null` when the chain is valid."},{"type":"null","enum":["unreadable_certificate","untrusted_issuer","expired","not_yet_valid","wrong_policy","key_usage",null],"description":"Why `chain_valid` is `false`: `unreadable_certificate`, `untrusted_issuer` (not issued by the JPKI certification authority of its type), `expired`, `not_yet_valid`, `wrong_policy` (not a My Number Card certificate of that type) or `key_usage` (the key may not sign). `null` when the chain is valid."}]}}},"description":"Per-certificate results, one entry per certificate read."},"attributes":{"oneOf":[{"type":"object","description":"The holder's data from the signature certificate, once its chain is valid. `null` when the signature certificate was not requested or did not chain to the JPKI certification authority.","properties":{"full_name":{"oneOf":[{"type":"string","description":"Name as registered, usually in Japanese script."},{"type":"null","description":"Name as registered, usually in Japanese script."}]},"date_of_birth":{"oneOf":[{"type":"string","format":"date","description":"Date of birth, `YYYY-MM-DD`. `null` when the registered date is incomplete."},{"type":"null","format":"date","description":"Date of birth, `YYYY-MM-DD`. `null` when the registered date is incomplete."}]},"gender":{"oneOf":[{"type":"string","enum":["M","F",null],"description":"`M`, `F`, or `null` when not registered."},{"type":"null","enum":["M","F",null],"description":"`M`, `F`, or `null` when not registered."}]},"address":{"oneOf":[{"type":"string","description":"Registered address."},{"type":"null","description":"Registered address."}]},"name_substitute_characters":{"oneOf":[{"type":"string","description":"Position string marking the characters of `full_name` that were replaced by a substitute because the original character is outside the standard character set. `null` when none were replaced."},{"type":"null","description":"Position string marking the characters of `full_name` that were replaced by a substitute because the original character is outside the standard character set. `null` when none were replaced."}]},"address_substitute_characters":{"oneOf":[{"type":"string","description":"Position string marking substitute characters in `address`, as for `name_substitute_characters`."},{"type":"null","description":"Position string marking substitute characters in `address`, as for `name_substitute_characters`."}]}}},{"type":"null","description":"The holder's data from the signature certificate, once its chain is valid. `null` when the signature certificate was not requested or did not chain to the JPKI certification authority.","properties":{"full_name":{"oneOf":[{"type":"string","description":"Name as registered, usually in Japanese script."},{"type":"null","description":"Name as registered, usually in Japanese script."}]},"date_of_birth":{"oneOf":[{"type":"string","format":"date","description":"Date of birth, `YYYY-MM-DD`. `null` when the registered date is incomplete."},{"type":"null","format":"date","description":"Date of birth, `YYYY-MM-DD`. `null` when the registered date is incomplete."}]},"gender":{"oneOf":[{"type":"string","enum":["M","F",null],"description":"`M`, `F`, or `null` when not registered."},{"type":"null","enum":["M","F",null],"description":"`M`, `F`, or `null` when not registered."}]},"address":{"oneOf":[{"type":"string","description":"Registered address."},{"type":"null","description":"Registered address."}]},"name_substitute_characters":{"oneOf":[{"type":"string","description":"Position string marking the characters of `full_name` that were replaced by a substitute because the original character is outside the standard character set. `null` when none were replaced."},{"type":"null","description":"Position string marking the characters of `full_name` that were replaced by a substitute because the original character is outside the standard character set. `null` when none were replaced."}]},"address_substitute_characters":{"oneOf":[{"type":"string","description":"Position string marking substitute characters in `address`, as for `name_substitute_characters`."},{"type":"null","description":"Position string marking substitute characters in `address`, as for `name_substitute_characters`."}]}}}]},"attributes_match_ocr":{"oneOf":[{"type":"boolean","description":"`true` when the attributes match the data read from the photo of the same card, `false` when any attribute differs (`JPKI_AND_OCR_DATA_NOT_SAME`), `null` when nothing could be compared, including whenever `attributes` is `null`."},{"type":"null","description":"`true` when the attributes match the data read from the photo of the same card, `false` when any attribute differs (`JPKI_AND_OCR_DATA_NOT_SAME`), `null` when nothing could be compared, including whenever `attributes` is `null`."}]},"mismatched_attributes":{"type":"array","items":{"type":"string","enum":["full_name","date_of_birth","gender","address"]},"description":"Names of the attributes that differ from the photo data, never their values. Empty when everything compared matches."}}}]},"portrait_image":{"oneOf":[{"type":"string","format":"uri","description":"Presigned URL to the portrait read from the chip (ICAO DG2). `null` for a JPKI read (`chip_protocol: \"jpki\"`) and for skipped steps."},{"type":"null","format":"uri","description":"Presigned URL to the portrait read from the chip (ICAO DG2). `null` for a JPKI read (`chip_protocol: \"jpki\"`) and for skipped steps."}]},"signature_image":{"oneOf":[{"type":"string","format":"uri","description":"Presigned URL to the holder's signature image read from the chip (ICAO DG7), when the chip stores one. `null` for a JPKI read (`chip_protocol: \"jpki\"`) and for skipped steps."},{"type":"null","format":"uri","description":"Presigned URL to the holder's signature image read from the chip (ICAO DG7), when the chip stores one. `null` for a JPKI read (`chip_protocol: \"jpki\"`) and for skipped steps."}]},"chip_data":{"oneOf":[{"type":"object","description":"Personal data parsed from the ICAO chip's Data Groups. `null` for a JPKI read (`chip_protocol: \"jpki\"`) and for skipped steps.","properties":{"document_type":{"type":"string"},"issuing_country":{"type":"string"},"document_number":{"type":"string"},"expiration_date":{"type":"string","format":"date"},"first_name":{"type":"string"},"last_name":{"type":"string"},"birth_date":{"type":"string","format":"date"},"gender":{"type":"string"},"nationality":{"type":"string"},"address":{"type":"string"},"place_of_birth":{"type":"string"}}},{"type":"null","description":"Personal data parsed from the ICAO chip's Data Groups. `null` for a JPKI read (`chip_protocol: \"jpki\"`) and for skipped steps.","properties":{"document_type":{"type":"string"},"issuing_country":{"type":"string"},"document_number":{"type":"string"},"expiration_date":{"type":"string","format":"date"},"first_name":{"type":"string"},"last_name":{"type":"string"},"birth_date":{"type":"string","format":"date"},"gender":{"type":"string"},"nationality":{"type":"string"},"address":{"type":"string"},"place_of_birth":{"type":"string"}}}]},"authenticity":{"oneOf":[{"type":"object","description":"ICAO passive authentication: SOD signature (`sod_integrity`) and Data Group hashes (`dg_integrity`). `null` for a JPKI read, which reports its proof under `jpki`.","properties":{"sod_integrity":{"type":"boolean"},"dg_integrity":{"type":"boolean"}}},{"type":"null","description":"ICAO passive authentication: SOD signature (`sod_integrity`) and Data Group hashes (`dg_integrity`). `null` for a JPKI read, which reports its proof under `jpki`.","properties":{"sod_integrity":{"type":"boolean"},"dg_integrity":{"type":"boolean"}}}]},"certificate_summary":{"oneOf":[{"type":"object","description":"Summary of the ICAO Document Signer Certificate. `null` for a JPKI read (`chip_protocol: \"jpki\"`) and for skipped steps.","properties":{"issuer":{"type":"string"},"subject":{"type":"string"},"serial_number":{"type":"string"},"not_valid_after":{"type":"string","format":"date-time"},"not_valid_before":{"type":"string","format":"date-time"}}},{"type":"null","description":"Summary of the ICAO Document Signer Certificate. `null` for a JPKI read (`chip_protocol: \"jpki\"`) and for skipped steps.","properties":{"issuer":{"type":"string"},"subject":{"type":"string"},"serial_number":{"type":"string"},"not_valid_after":{"type":"string","format":"date-time"},"not_valid_before":{"type":"string","format":"date-time"}}}]},"warnings":{"type":"array","items":{"type":"object","properties":{"feature":{"type":"string","enum":["ID_VERIFICATION","NFC","LIVENESS","FACEMATCH","PROOF_OF_ADDRESS","PHONE","EMAIL","AML","LOCATION","DATABASE_VALIDATION","QUESTIONNAIRE","DOCUMENT_AI","KYB_REGISTRY","KYB_DOCUMENTS","KYB_KEY_PEOPLE","GEOLOCATION","SIGNATURE"],"description":"The feature that generated this warning. The value identifies the feature block the warning belongs to. Each module's warnings array typically uses the value matching its module (e.g. `PHONE` inside `phone_verifications[].warnings`), but the enum above is authoritative across all feature warnings on the decision payload."},"risk":{"type":"string"},"additional_data":{"oneOf":[{"type":"object"},{"type":"null"}]},"log_type":{"type":"string"},"short_description":{"type":"string"},"long_description":{"type":"string"},"node_id":{"type":"string","description":"The workflow graph node ID that generated this warning"}}}}}},"uniqueKey":"nfc_verifications.oneOf.1","typeLabel":"null"}],"uniqueKey":"nfc_verifications","typeLabel":"object[] | null"},"liveness_checks":{"oneOf":[{"type":"array","description":"**Array of liveness reports** produced by liveness steps in the workflow graph. Always a JSON array — never a singular `liveness` object. `null` until at least one liveness step has produced data. Each item is the full report, including `node_id`, feature-level `status`, `method`, `score`, `reference_image`, `video_url`, optional `age_estimation`, cross-session `matches[]`, and `warnings[]`.","items":{"type":"object","description":"One liveness report — the full report for a single liveness pass.","properties":{"node_id":{"type":"string","description":"Workflow graph node id of the liveness step that produced this report.","uniqueKey":"liveness_checks.oneOf.0.items.[INDEX].node_id","typeLabel":"string"},"status":{"type":"string","enum":["Not Finished","Approved","Declined","In Review","Resub Requested"],"description":"Feature-level status of this liveness step. Independent of the top-level session `status` — a session can reach its overall decision while an individual feature stays `In Review`.","uniqueKey":"liveness_checks.oneOf.0.items.[INDEX].status","typeLabel":"enum\u003cstring>"},"method":{"type":"string","description":"Method used for liveness detection","uniqueKey":"liveness_checks.oneOf.0.items.[INDEX].method","typeLabel":"string"},"score":{"type":"number","description":"Confidence score of the liveness check","uniqueKey":"liveness_checks.oneOf.0.items.[INDEX].score","typeLabel":"number"},"reference_image":{"type":"string","format":"uri","description":"URL of the reference image used","uniqueKey":"liveness_checks.oneOf.0.items.[INDEX].reference_image","typeLabel":"string\u003curi>"},"video_url":{"type":"string","format":"uri","description":"URL of the liveness check video","uniqueKey":"liveness_checks.oneOf.0.items.[INDEX].video_url","typeLabel":"string\u003curi>"},"age_estimation":{"type":"number","description":"Estimated age of the person","uniqueKey":"liveness_checks.oneOf.0.items.[INDEX].age_estimation","typeLabel":"number"},"matches":{"type":"array","description":"Similar faces found by the duplicate-face search (top matches, blocklisted/allowlisted entries first). Each entry's `source` tells you where the matching face came from: `session` (another verification session), `imported` (a face uploaded against a vendor user), `list_entry` (an org-managed allow/block list face), or `retained_template` (an image-free biometric template stored on a User, listed under `/v3/biometric-templates/`). `session_id`, `session_number`, `status` and `api_service` are `null` for non-session sources. `imported` matches still populate `vendor_data`, `verification_date` and — when the vendor user has a name on file — `user_details` (with `full_name` only) from the vendor-user record; `retained_template` matches populate `vendor_user_id`, `vendor_data`, `biometric_template_id` and `verification_date`, while their image and identity fields are `null`; `list_entry` matches return all of these as `null`.","items":{"type":"object","properties":{"session_id":{"oneOf":[{"type":"string","format":"uuid","description":"Session ID of the matching face. `null` when `source` is `imported`, `list_entry`, or `retained_template`.","uniqueKey":"liveness_checks.oneOf.0.items.[INDEX].matches.items.[INDEX].session_id.oneOf.0","typeLabel":"string\u003cuuid>"},{"type":"null","format":"uuid","description":"Session ID of the matching face. `null` when `source` is `imported`, `list_entry`, or `retained_template`.","uniqueKey":"liveness_checks.oneOf.0.items.[INDEX].matches.items.[INDEX].session_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"liveness_checks.oneOf.0.items.[INDEX].matches.items.[INDEX].session_id","typeLabel":"string\u003cuuid> | null"},"session_number":{"oneOf":[{"type":"integer","uniqueKey":"liveness_checks.oneOf.0.items.[INDEX].matches.items.[INDEX].session_number.oneOf.0","typeLabel":"integer"},{"type":"null","uniqueKey":"liveness_checks.oneOf.0.items.[INDEX].matches.items.[INDEX].session_number.oneOf.1","typeLabel":"null"}],"uniqueKey":"liveness_checks.oneOf.0.items.[INDEX].matches.items.[INDEX].session_number","typeLabel":"integer | null"},"similarity_percentage":{"type":"number","description":"Face similarity between the two images, clamped to 0–100.","uniqueKey":"liveness_checks.oneOf.0.items.[INDEX].matches.items.[INDEX].similarity_percentage","typeLabel":"number"},"vendor_data":{"oneOf":[{"type":"string","description":"`vendor_data` of the matching session or linked User for imported and retained-template faces.","uniqueKey":"liveness_checks.oneOf.0.items.[INDEX].matches.items.[INDEX].vendor_data.oneOf.0","typeLabel":"string"},{"type":"null","description":"`vendor_data` of the matching session or linked User for imported and retained-template faces.","uniqueKey":"liveness_checks.oneOf.0.items.[INDEX].matches.items.[INDEX].vendor_data.oneOf.1","typeLabel":"null"}],"uniqueKey":"liveness_checks.oneOf.0.items.[INDEX].matches.items.[INDEX].vendor_data","typeLabel":"string | null"},"vendor_user_id":{"oneOf":[{"type":"string","format":"uuid","description":"Linked User id for `imported` and `retained_template` matches and for session matches linked to a User. `null` for list entries and sessions without a User.","uniqueKey":"liveness_checks.oneOf.0.items.[INDEX].matches.items.[INDEX].vendor_user_id.oneOf.0","typeLabel":"string\u003cuuid>"},{"type":"null","format":"uuid","description":"Linked User id for `imported` and `retained_template` matches and for session matches linked to a User. `null` for list entries and sessions without a User.","uniqueKey":"liveness_checks.oneOf.0.items.[INDEX].matches.items.[INDEX].vendor_user_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"liveness_checks.oneOf.0.items.[INDEX].matches.items.[INDEX].vendor_user_id","typeLabel":"string\u003cuuid> | null"},"biometric_template_id":{"oneOf":[{"type":"string","format":"uuid","description":"Id of the retained biometric template. Set only when `source` is `retained_template`; `null` otherwise.","uniqueKey":"liveness_checks.oneOf.0.items.[INDEX].matches.items.[INDEX].biometric_template_id.oneOf.0","typeLabel":"string\u003cuuid>"},{"type":"null","format":"uuid","description":"Id of the retained biometric template. Set only when `source` is `retained_template`; `null` otherwise.","uniqueKey":"liveness_checks.oneOf.0.items.[INDEX].matches.items.[INDEX].biometric_template_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"liveness_checks.oneOf.0.items.[INDEX].matches.items.[INDEX].biometric_template_id","typeLabel":"string\u003cuuid> | null"},"verification_date":{"oneOf":[{"type":"string","format":"date-time","description":"When the matching face was captured, or when a retained template was created. `null` for list entries.","uniqueKey":"liveness_checks.oneOf.0.items.[INDEX].matches.items.[INDEX].verification_date.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","description":"When the matching face was captured, or when a retained template was created. `null` for list entries.","uniqueKey":"liveness_checks.oneOf.0.items.[INDEX].matches.items.[INDEX].verification_date.oneOf.1","typeLabel":"null"}],"uniqueKey":"liveness_checks.oneOf.0.items.[INDEX].matches.items.[INDEX].verification_date","typeLabel":"string\u003cdate-time> | null"},"user_details":{"oneOf":[{"type":"object","description":"Identity data from the matching session or imported User profile. Always `null` for `retained_template` and `list_entry` matches.","properties":{"full_name":{"oneOf":[{"type":"string","uniqueKey":"liveness_checks.oneOf.0.items.[INDEX].matches.items.[INDEX].user_details.oneOf.0.full_name.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"liveness_checks.oneOf.0.items.[INDEX].matches.items.[INDEX].user_details.oneOf.0.full_name.oneOf.1","typeLabel":"null"}],"uniqueKey":"liveness_checks.oneOf.0.items.[INDEX].matches.items.[INDEX].user_details.oneOf.0.full_name","typeLabel":"string | null"},"document_type":{"oneOf":[{"type":"string","uniqueKey":"liveness_checks.oneOf.0.items.[INDEX].matches.items.[INDEX].user_details.oneOf.0.document_type.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"liveness_checks.oneOf.0.items.[INDEX].matches.items.[INDEX].user_details.oneOf.0.document_type.oneOf.1","typeLabel":"null"}],"uniqueKey":"liveness_checks.oneOf.0.items.[INDEX].matches.items.[INDEX].user_details.oneOf.0.document_type","typeLabel":"string | null"},"document_number":{"oneOf":[{"type":"string","uniqueKey":"liveness_checks.oneOf.0.items.[INDEX].matches.items.[INDEX].user_details.oneOf.0.document_number.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"liveness_checks.oneOf.0.items.[INDEX].matches.items.[INDEX].user_details.oneOf.0.document_number.oneOf.1","typeLabel":"null"}],"uniqueKey":"liveness_checks.oneOf.0.items.[INDEX].matches.items.[INDEX].user_details.oneOf.0.document_number","typeLabel":"string | null"}},"uniqueKey":"liveness_checks.oneOf.0.items.[INDEX].matches.items.[INDEX].user_details.oneOf.0","typeLabel":"object"},{"type":"null","description":"Identity data from the matching session or imported User profile. Always `null` for `retained_template` and `list_entry` matches.","properties":{"full_name":{"oneOf":[{"type":"string"},{"type":"null"}]},"document_type":{"oneOf":[{"type":"string"},{"type":"null"}]},"document_number":{"oneOf":[{"type":"string"},{"type":"null"}]}},"uniqueKey":"liveness_checks.oneOf.0.items.[INDEX].matches.items.[INDEX].user_details.oneOf.1","typeLabel":"null"}],"uniqueKey":"liveness_checks.oneOf.0.items.[INDEX].matches.items.[INDEX].user_details","typeLabel":"object | null"},"match_image_url":{"oneOf":[{"type":"string","format":"uri","description":"Reference image for image-backed matches. Always `null` for `retained_template` matches because retained templates contain no image.","uniqueKey":"liveness_checks.oneOf.0.items.[INDEX].matches.items.[INDEX].match_image_url.oneOf.0","typeLabel":"string\u003curi>"},{"type":"null","format":"uri","description":"Reference image for image-backed matches. Always `null` for `retained_template` matches because retained templates contain no image.","uniqueKey":"liveness_checks.oneOf.0.items.[INDEX].matches.items.[INDEX].match_image_url.oneOf.1","typeLabel":"null"}],"uniqueKey":"liveness_checks.oneOf.0.items.[INDEX].matches.items.[INDEX].match_image_url","typeLabel":"string\u003curi> | null"},"status":{"oneOf":[{"type":"string","description":"Lifecycle status of the matching session. `null` for non-session sources.","uniqueKey":"liveness_checks.oneOf.0.items.[INDEX].matches.items.[INDEX].status.oneOf.0","typeLabel":"string"},{"type":"null","description":"Lifecycle status of the matching session. `null` for non-session sources.","uniqueKey":"liveness_checks.oneOf.0.items.[INDEX].matches.items.[INDEX].status.oneOf.1","typeLabel":"null"}],"uniqueKey":"liveness_checks.oneOf.0.items.[INDEX].matches.items.[INDEX].status","typeLabel":"string | null"},"is_blocklisted":{"type":"boolean","description":"Whether the matching face is on a blocklist.","uniqueKey":"liveness_checks.oneOf.0.items.[INDEX].matches.items.[INDEX].is_blocklisted","typeLabel":"boolean"},"is_allowlisted":{"type":"boolean","description":"Whether the matching face is on an allowlist.","uniqueKey":"liveness_checks.oneOf.0.items.[INDEX].matches.items.[INDEX].is_allowlisted","typeLabel":"boolean"},"api_service":{"oneOf":[{"type":"string","description":"Standalone API service of the matching session (e.g. `PASSIVE_LIVENESS`, `FACE_MATCH`); `null` for workflow sessions and non-session sources.","uniqueKey":"liveness_checks.oneOf.0.items.[INDEX].matches.items.[INDEX].api_service.oneOf.0","typeLabel":"string"},{"type":"null","description":"Standalone API service of the matching session (e.g. `PASSIVE_LIVENESS`, `FACE_MATCH`); `null` for workflow sessions and non-session sources.","uniqueKey":"liveness_checks.oneOf.0.items.[INDEX].matches.items.[INDEX].api_service.oneOf.1","typeLabel":"null"}],"uniqueKey":"liveness_checks.oneOf.0.items.[INDEX].matches.items.[INDEX].api_service","typeLabel":"string | null"},"source":{"type":"string","enum":["session","imported","list_entry","retained_template"],"description":"Origin of the matching face: `session`, `imported` (User face upload), `list_entry` (allow/block list), or `retained_template` (an image-free biometric template stored on a User, listed under `/v3/biometric-templates/`).","uniqueKey":"liveness_checks.oneOf.0.items.[INDEX].matches.items.[INDEX].source","typeLabel":"enum\u003cstring>"}},"uniqueKey":"liveness_checks.oneOf.0.items.[INDEX].matches.items.[INDEX]","typeLabel":"object"},"uniqueKey":"liveness_checks.oneOf.0.items.[INDEX].matches","typeLabel":"object[]"},"warnings":{"type":"array","items":{"type":"object","properties":{"feature":{"type":"string","enum":["ID_VERIFICATION","NFC","LIVENESS","FACEMATCH","PROOF_OF_ADDRESS","PHONE","EMAIL","AML","LOCATION","DATABASE_VALIDATION","QUESTIONNAIRE","DOCUMENT_AI","KYB_REGISTRY","KYB_DOCUMENTS","KYB_KEY_PEOPLE","GEOLOCATION","SIGNATURE"],"description":"The feature that generated this warning. The value identifies the feature block the warning belongs to. Each module's warnings array typically uses the value matching its module (e.g. `PHONE` inside `phone_verifications[].warnings`), but the enum above is authoritative across all feature warnings on the decision payload.","uniqueKey":"liveness_checks.oneOf.0.items.[INDEX].warnings.items.[INDEX].feature","typeLabel":"enum\u003cstring>"},"risk":{"type":"string","uniqueKey":"liveness_checks.oneOf.0.items.[INDEX].warnings.items.[INDEX].risk","typeLabel":"string"},"additional_data":{"oneOf":[{"type":"object","uniqueKey":"liveness_checks.oneOf.0.items.[INDEX].warnings.items.[INDEX].additional_data.oneOf.0","typeLabel":"object"},{"type":"null","uniqueKey":"liveness_checks.oneOf.0.items.[INDEX].warnings.items.[INDEX].additional_data.oneOf.1","typeLabel":"null"}],"uniqueKey":"liveness_checks.oneOf.0.items.[INDEX].warnings.items.[INDEX].additional_data","typeLabel":"object | null"},"log_type":{"type":"string","uniqueKey":"liveness_checks.oneOf.0.items.[INDEX].warnings.items.[INDEX].log_type","typeLabel":"string"},"short_description":{"type":"string","uniqueKey":"liveness_checks.oneOf.0.items.[INDEX].warnings.items.[INDEX].short_description","typeLabel":"string"},"long_description":{"type":"string","uniqueKey":"liveness_checks.oneOf.0.items.[INDEX].warnings.items.[INDEX].long_description","typeLabel":"string"},"node_id":{"type":"string","description":"The workflow graph node ID that generated this warning","uniqueKey":"liveness_checks.oneOf.0.items.[INDEX].warnings.items.[INDEX].node_id","typeLabel":"string"}},"uniqueKey":"liveness_checks.oneOf.0.items.[INDEX].warnings.items.[INDEX]","typeLabel":"object"},"uniqueKey":"liveness_checks.oneOf.0.items.[INDEX].warnings","typeLabel":"object[]"},"face_quality":{"oneOf":[{"type":"number","description":"Face image quality score (0-100%). Only available for passive liveness.","uniqueKey":"liveness_checks.oneOf.0.items.[INDEX].face_quality.oneOf.0","typeLabel":"number"},{"type":"null","description":"Face image quality score (0-100%). Only available for passive liveness.","uniqueKey":"liveness_checks.oneOf.0.items.[INDEX].face_quality.oneOf.1","typeLabel":"null"}],"uniqueKey":"liveness_checks.oneOf.0.items.[INDEX].face_quality","typeLabel":"number | null"},"face_luminance":{"oneOf":[{"type":"number","description":"Face luminance/brightness score (0-100%). Only available for passive liveness.","uniqueKey":"liveness_checks.oneOf.0.items.[INDEX].face_luminance.oneOf.0","typeLabel":"number"},{"type":"null","description":"Face luminance/brightness score (0-100%). Only available for passive liveness.","uniqueKey":"liveness_checks.oneOf.0.items.[INDEX].face_luminance.oneOf.1","typeLabel":"null"}],"uniqueKey":"liveness_checks.oneOf.0.items.[INDEX].face_luminance","typeLabel":"number | null"}},"uniqueKey":"liveness_checks.oneOf.0.items.[INDEX]","typeLabel":"object"},"uniqueKey":"liveness_checks.oneOf.0","typeLabel":"object[]"},{"type":"null","description":"**Array of liveness reports** produced by liveness steps in the workflow graph. Always a JSON array — never a singular `liveness` object. `null` until at least one liveness step has produced data. Each item is the full report, including `node_id`, feature-level `status`, `method`, `score`, `reference_image`, `video_url`, optional `age_estimation`, cross-session `matches[]`, and `warnings[]`.","items":{"type":"object","description":"One liveness report — the full report for a single liveness pass.","properties":{"node_id":{"type":"string","description":"Workflow graph node id of the liveness step that produced this report."},"status":{"type":"string","enum":["Not Finished","Approved","Declined","In Review","Resub Requested"],"description":"Feature-level status of this liveness step. Independent of the top-level session `status` — a session can reach its overall decision while an individual feature stays `In Review`."},"method":{"type":"string","description":"Method used for liveness detection"},"score":{"type":"number","description":"Confidence score of the liveness check"},"reference_image":{"type":"string","format":"uri","description":"URL of the reference image used"},"video_url":{"type":"string","format":"uri","description":"URL of the liveness check video"},"age_estimation":{"type":"number","description":"Estimated age of the person"},"matches":{"type":"array","description":"Similar faces found by the duplicate-face search (top matches, blocklisted/allowlisted entries first). Each entry's `source` tells you where the matching face came from: `session` (another verification session), `imported` (a face uploaded against a vendor user), `list_entry` (an org-managed allow/block list face), or `retained_template` (an image-free biometric template stored on a User, listed under `/v3/biometric-templates/`). `session_id`, `session_number`, `status` and `api_service` are `null` for non-session sources. `imported` matches still populate `vendor_data`, `verification_date` and — when the vendor user has a name on file — `user_details` (with `full_name` only) from the vendor-user record; `retained_template` matches populate `vendor_user_id`, `vendor_data`, `biometric_template_id` and `verification_date`, while their image and identity fields are `null`; `list_entry` matches return all of these as `null`.","items":{"type":"object","properties":{"session_id":{"oneOf":[{"type":"string","format":"uuid","description":"Session ID of the matching face. `null` when `source` is `imported`, `list_entry`, or `retained_template`."},{"type":"null","format":"uuid","description":"Session ID of the matching face. `null` when `source` is `imported`, `list_entry`, or `retained_template`."}]},"session_number":{"oneOf":[{"type":"integer"},{"type":"null"}]},"similarity_percentage":{"type":"number","description":"Face similarity between the two images, clamped to 0–100."},"vendor_data":{"oneOf":[{"type":"string","description":"`vendor_data` of the matching session or linked User for imported and retained-template faces."},{"type":"null","description":"`vendor_data` of the matching session or linked User for imported and retained-template faces."}]},"vendor_user_id":{"oneOf":[{"type":"string","format":"uuid","description":"Linked User id for `imported` and `retained_template` matches and for session matches linked to a User. `null` for list entries and sessions without a User."},{"type":"null","format":"uuid","description":"Linked User id for `imported` and `retained_template` matches and for session matches linked to a User. `null` for list entries and sessions without a User."}]},"biometric_template_id":{"oneOf":[{"type":"string","format":"uuid","description":"Id of the retained biometric template. Set only when `source` is `retained_template`; `null` otherwise."},{"type":"null","format":"uuid","description":"Id of the retained biometric template. Set only when `source` is `retained_template`; `null` otherwise."}]},"verification_date":{"oneOf":[{"type":"string","format":"date-time","description":"When the matching face was captured, or when a retained template was created. `null` for list entries."},{"type":"null","format":"date-time","description":"When the matching face was captured, or when a retained template was created. `null` for list entries."}]},"user_details":{"oneOf":[{"type":"object","description":"Identity data from the matching session or imported User profile. Always `null` for `retained_template` and `list_entry` matches.","properties":{"full_name":{"oneOf":[{"type":"string"},{"type":"null"}]},"document_type":{"oneOf":[{"type":"string"},{"type":"null"}]},"document_number":{"oneOf":[{"type":"string"},{"type":"null"}]}}},{"type":"null","description":"Identity data from the matching session or imported User profile. Always `null` for `retained_template` and `list_entry` matches.","properties":{"full_name":{"oneOf":[{"type":"string"},{"type":"null"}]},"document_type":{"oneOf":[{"type":"string"},{"type":"null"}]},"document_number":{"oneOf":[{"type":"string"},{"type":"null"}]}}}]},"match_image_url":{"oneOf":[{"type":"string","format":"uri","description":"Reference image for image-backed matches. Always `null` for `retained_template` matches because retained templates contain no image."},{"type":"null","format":"uri","description":"Reference image for image-backed matches. Always `null` for `retained_template` matches because retained templates contain no image."}]},"status":{"oneOf":[{"type":"string","description":"Lifecycle status of the matching session. `null` for non-session sources."},{"type":"null","description":"Lifecycle status of the matching session. `null` for non-session sources."}]},"is_blocklisted":{"type":"boolean","description":"Whether the matching face is on a blocklist."},"is_allowlisted":{"type":"boolean","description":"Whether the matching face is on an allowlist."},"api_service":{"oneOf":[{"type":"string","description":"Standalone API service of the matching session (e.g. `PASSIVE_LIVENESS`, `FACE_MATCH`); `null` for workflow sessions and non-session sources."},{"type":"null","description":"Standalone API service of the matching session (e.g. `PASSIVE_LIVENESS`, `FACE_MATCH`); `null` for workflow sessions and non-session sources."}]},"source":{"type":"string","enum":["session","imported","list_entry","retained_template"],"description":"Origin of the matching face: `session`, `imported` (User face upload), `list_entry` (allow/block list), or `retained_template` (an image-free biometric template stored on a User, listed under `/v3/biometric-templates/`)."}}}},"warnings":{"type":"array","items":{"type":"object","properties":{"feature":{"type":"string","enum":["ID_VERIFICATION","NFC","LIVENESS","FACEMATCH","PROOF_OF_ADDRESS","PHONE","EMAIL","AML","LOCATION","DATABASE_VALIDATION","QUESTIONNAIRE","DOCUMENT_AI","KYB_REGISTRY","KYB_DOCUMENTS","KYB_KEY_PEOPLE","GEOLOCATION","SIGNATURE"],"description":"The feature that generated this warning. The value identifies the feature block the warning belongs to. Each module's warnings array typically uses the value matching its module (e.g. `PHONE` inside `phone_verifications[].warnings`), but the enum above is authoritative across all feature warnings on the decision payload."},"risk":{"type":"string"},"additional_data":{"oneOf":[{"type":"object"},{"type":"null"}]},"log_type":{"type":"string"},"short_description":{"type":"string"},"long_description":{"type":"string"},"node_id":{"type":"string","description":"The workflow graph node ID that generated this warning"}}}},"face_quality":{"oneOf":[{"type":"number","description":"Face image quality score (0-100%). Only available for passive liveness."},{"type":"null","description":"Face image quality score (0-100%). Only available for passive liveness."}]},"face_luminance":{"oneOf":[{"type":"number","description":"Face luminance/brightness score (0-100%). Only available for passive liveness."},{"type":"null","description":"Face luminance/brightness score (0-100%). Only available for passive liveness."}]}}},"uniqueKey":"liveness_checks.oneOf.1","typeLabel":"null"}],"uniqueKey":"liveness_checks","typeLabel":"object[] | null"},"face_matches":{"oneOf":[{"type":"array","description":"**Array of face-match reports** produced by face-match steps in the workflow graph. Always a JSON array — never a singular `face_match` object. `null` until at least one face-match step has produced data. Each item is the full report, including `node_id`, feature-level `status`, similarity `score`, `source_image`, `target_image`, and `warnings[]`.","items":{"type":"object","description":"One face-match report — the full report.","properties":{"node_id":{"type":"string","description":"Workflow graph node id of the face-match step that produced this report.","uniqueKey":"face_matches.oneOf.0.items.[INDEX].node_id","typeLabel":"string"},"status":{"type":"string","enum":["Not Finished","Approved","Declined","In Review","Resub Requested"],"description":"Feature-level status of this face-match step. Independent of the top-level session `status` — a session can reach its overall decision while an individual feature stays `In Review`.","uniqueKey":"face_matches.oneOf.0.items.[INDEX].status","typeLabel":"enum\u003cstring>"},"score":{"type":"number","description":"Confidence score of the face match","uniqueKey":"face_matches.oneOf.0.items.[INDEX].score","typeLabel":"number"},"source_image_session_id":{"oneOf":[{"type":"string","format":"uuid","description":"Session id under which the source (reference) portrait is stored. In biometric-authentication flows this is the session's own id (the submitted portrait is stored under the new session). `null` when the source image is the same session's document portrait.","uniqueKey":"face_matches.oneOf.0.items.[INDEX].source_image_session_id.oneOf.0","typeLabel":"string\u003cuuid>"},{"type":"null","format":"uuid","description":"Session id under which the source (reference) portrait is stored. In biometric-authentication flows this is the session's own id (the submitted portrait is stored under the new session). `null` when the source image is the same session's document portrait.","uniqueKey":"face_matches.oneOf.0.items.[INDEX].source_image_session_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"face_matches.oneOf.0.items.[INDEX].source_image_session_id","typeLabel":"string\u003cuuid> | null"},"source_image":{"type":"string","format":"uri","description":"URL of the source image used for comparison","uniqueKey":"face_matches.oneOf.0.items.[INDEX].source_image","typeLabel":"string\u003curi>"},"target_image":{"type":"string","format":"uri","description":"URL of the target image used for comparison","uniqueKey":"face_matches.oneOf.0.items.[INDEX].target_image","typeLabel":"string\u003curi>"},"warnings":{"type":"array","items":{"type":"object","properties":{"feature":{"type":"string","enum":["ID_VERIFICATION","NFC","LIVENESS","FACEMATCH","PROOF_OF_ADDRESS","PHONE","EMAIL","AML","LOCATION","DATABASE_VALIDATION","QUESTIONNAIRE","DOCUMENT_AI","KYB_REGISTRY","KYB_DOCUMENTS","KYB_KEY_PEOPLE","GEOLOCATION","SIGNATURE"],"description":"The feature that generated this warning. The value identifies the feature block the warning belongs to. Each module's warnings array typically uses the value matching its module (e.g. `PHONE` inside `phone_verifications[].warnings`), but the enum above is authoritative across all feature warnings on the decision payload.","uniqueKey":"face_matches.oneOf.0.items.[INDEX].warnings.items.[INDEX].feature","typeLabel":"enum\u003cstring>"},"risk":{"type":"string","uniqueKey":"face_matches.oneOf.0.items.[INDEX].warnings.items.[INDEX].risk","typeLabel":"string"},"additional_data":{"oneOf":[{"type":"object","uniqueKey":"face_matches.oneOf.0.items.[INDEX].warnings.items.[INDEX].additional_data.oneOf.0","typeLabel":"object"},{"type":"null","uniqueKey":"face_matches.oneOf.0.items.[INDEX].warnings.items.[INDEX].additional_data.oneOf.1","typeLabel":"null"}],"uniqueKey":"face_matches.oneOf.0.items.[INDEX].warnings.items.[INDEX].additional_data","typeLabel":"object | null"},"log_type":{"type":"string","uniqueKey":"face_matches.oneOf.0.items.[INDEX].warnings.items.[INDEX].log_type","typeLabel":"string"},"short_description":{"type":"string","uniqueKey":"face_matches.oneOf.0.items.[INDEX].warnings.items.[INDEX].short_description","typeLabel":"string"},"long_description":{"type":"string","uniqueKey":"face_matches.oneOf.0.items.[INDEX].warnings.items.[INDEX].long_description","typeLabel":"string"},"node_id":{"type":"string","description":"The workflow graph node ID that generated this warning","uniqueKey":"face_matches.oneOf.0.items.[INDEX].warnings.items.[INDEX].node_id","typeLabel":"string"}},"uniqueKey":"face_matches.oneOf.0.items.[INDEX].warnings.items.[INDEX]","typeLabel":"object"},"description":"Face match verification warnings","uniqueKey":"face_matches.oneOf.0.items.[INDEX].warnings","typeLabel":"object[]"},"face_coverage":{"oneOf":[{"type":"object","description":"Whether the eyes, mouth and face are covered in the captured image. Returned by `GET /v3/session/{sessionId}/decision/` only; it is not part of webhook payloads. `null` when no coverage reading exists.","properties":{"eyes":{"type":"object","properties":{"covered":{"oneOf":[{"type":"boolean","uniqueKey":"face_matches.oneOf.0.items.[INDEX].face_coverage.oneOf.0.eyes.covered.oneOf.0","typeLabel":"boolean"},{"type":"null","uniqueKey":"face_matches.oneOf.0.items.[INDEX].face_coverage.oneOf.0.eyes.covered.oneOf.1","typeLabel":"null"}],"uniqueKey":"face_matches.oneOf.0.items.[INDEX].face_coverage.oneOf.0.eyes.covered","typeLabel":"boolean | null"},"calibrated":{"oneOf":[{"type":"boolean","description":"`false` means the reading is shadow evidence only and no warning acts on it.","uniqueKey":"face_matches.oneOf.0.items.[INDEX].face_coverage.oneOf.0.eyes.calibrated.oneOf.0","typeLabel":"boolean"},{"type":"null","description":"`false` means the reading is shadow evidence only and no warning acts on it.","uniqueKey":"face_matches.oneOf.0.items.[INDEX].face_coverage.oneOf.0.eyes.calibrated.oneOf.1","typeLabel":"null"}],"uniqueKey":"face_matches.oneOf.0.items.[INDEX].face_coverage.oneOf.0.eyes.calibrated","typeLabel":"boolean | null"},"visibility_score":{"oneOf":[{"type":"number","uniqueKey":"face_matches.oneOf.0.items.[INDEX].face_coverage.oneOf.0.eyes.visibility_score.oneOf.0","typeLabel":"number"},{"type":"null","uniqueKey":"face_matches.oneOf.0.items.[INDEX].face_coverage.oneOf.0.eyes.visibility_score.oneOf.1","typeLabel":"null"}],"uniqueKey":"face_matches.oneOf.0.items.[INDEX].face_coverage.oneOf.0.eyes.visibility_score","typeLabel":"number | null"}},"uniqueKey":"face_matches.oneOf.0.items.[INDEX].face_coverage.oneOf.0.eyes","typeLabel":"object"},"mouth":{"type":"object","properties":{"covered":{"oneOf":[{"type":"boolean","uniqueKey":"face_matches.oneOf.0.items.[INDEX].face_coverage.oneOf.0.mouth.covered.oneOf.0","typeLabel":"boolean"},{"type":"null","uniqueKey":"face_matches.oneOf.0.items.[INDEX].face_coverage.oneOf.0.mouth.covered.oneOf.1","typeLabel":"null"}],"uniqueKey":"face_matches.oneOf.0.items.[INDEX].face_coverage.oneOf.0.mouth.covered","typeLabel":"boolean | null"},"calibrated":{"oneOf":[{"type":"boolean","description":"`false` means the reading is shadow evidence only and no warning acts on it.","uniqueKey":"face_matches.oneOf.0.items.[INDEX].face_coverage.oneOf.0.mouth.calibrated.oneOf.0","typeLabel":"boolean"},{"type":"null","description":"`false` means the reading is shadow evidence only and no warning acts on it.","uniqueKey":"face_matches.oneOf.0.items.[INDEX].face_coverage.oneOf.0.mouth.calibrated.oneOf.1","typeLabel":"null"}],"uniqueKey":"face_matches.oneOf.0.items.[INDEX].face_coverage.oneOf.0.mouth.calibrated","typeLabel":"boolean | null"},"visibility_score":{"oneOf":[{"type":"number","uniqueKey":"face_matches.oneOf.0.items.[INDEX].face_coverage.oneOf.0.mouth.visibility_score.oneOf.0","typeLabel":"number"},{"type":"null","uniqueKey":"face_matches.oneOf.0.items.[INDEX].face_coverage.oneOf.0.mouth.visibility_score.oneOf.1","typeLabel":"null"}],"uniqueKey":"face_matches.oneOf.0.items.[INDEX].face_coverage.oneOf.0.mouth.visibility_score","typeLabel":"number | null"}},"uniqueKey":"face_matches.oneOf.0.items.[INDEX].face_coverage.oneOf.0.mouth","typeLabel":"object"},"face":{"type":"object","properties":{"covered":{"oneOf":[{"type":"boolean","uniqueKey":"face_matches.oneOf.0.items.[INDEX].face_coverage.oneOf.0.face.covered.oneOf.0","typeLabel":"boolean"},{"type":"null","uniqueKey":"face_matches.oneOf.0.items.[INDEX].face_coverage.oneOf.0.face.covered.oneOf.1","typeLabel":"null"}],"uniqueKey":"face_matches.oneOf.0.items.[INDEX].face_coverage.oneOf.0.face.covered","typeLabel":"boolean | null"},"calibrated":{"oneOf":[{"type":"boolean","description":"`false` means the reading is shadow evidence only and no warning acts on it.","uniqueKey":"face_matches.oneOf.0.items.[INDEX].face_coverage.oneOf.0.face.calibrated.oneOf.0","typeLabel":"boolean"},{"type":"null","description":"`false` means the reading is shadow evidence only and no warning acts on it.","uniqueKey":"face_matches.oneOf.0.items.[INDEX].face_coverage.oneOf.0.face.calibrated.oneOf.1","typeLabel":"null"}],"uniqueKey":"face_matches.oneOf.0.items.[INDEX].face_coverage.oneOf.0.face.calibrated","typeLabel":"boolean | null"},"visibility_score":{"oneOf":[{"type":"number","uniqueKey":"face_matches.oneOf.0.items.[INDEX].face_coverage.oneOf.0.face.visibility_score.oneOf.0","typeLabel":"number"},{"type":"null","uniqueKey":"face_matches.oneOf.0.items.[INDEX].face_coverage.oneOf.0.face.visibility_score.oneOf.1","typeLabel":"null"}],"uniqueKey":"face_matches.oneOf.0.items.[INDEX].face_coverage.oneOf.0.face.visibility_score","typeLabel":"number | null"}},"uniqueKey":"face_matches.oneOf.0.items.[INDEX].face_coverage.oneOf.0.face","typeLabel":"object"}},"uniqueKey":"face_matches.oneOf.0.items.[INDEX].face_coverage.oneOf.0","typeLabel":"object"},{"type":"null","description":"Whether the eyes, mouth and face are covered in the captured image. Returned by `GET /v3/session/{sessionId}/decision/` only; it is not part of webhook payloads. `null` when no coverage reading exists.","properties":{"eyes":{"type":"object","properties":{"covered":{"oneOf":[{"type":"boolean"},{"type":"null"}]},"calibrated":{"oneOf":[{"type":"boolean","description":"`false` means the reading is shadow evidence only and no warning acts on it."},{"type":"null","description":"`false` means the reading is shadow evidence only and no warning acts on it."}]},"visibility_score":{"oneOf":[{"type":"number"},{"type":"null"}]}}},"mouth":{"type":"object","properties":{"covered":{"oneOf":[{"type":"boolean"},{"type":"null"}]},"calibrated":{"oneOf":[{"type":"boolean","description":"`false` means the reading is shadow evidence only and no warning acts on it."},{"type":"null","description":"`false` means the reading is shadow evidence only and no warning acts on it."}]},"visibility_score":{"oneOf":[{"type":"number"},{"type":"null"}]}}},"face":{"type":"object","properties":{"covered":{"oneOf":[{"type":"boolean"},{"type":"null"}]},"calibrated":{"oneOf":[{"type":"boolean","description":"`false` means the reading is shadow evidence only and no warning acts on it."},{"type":"null","description":"`false` means the reading is shadow evidence only and no warning acts on it."}]},"visibility_score":{"oneOf":[{"type":"number"},{"type":"null"}]}}}},"uniqueKey":"face_matches.oneOf.0.items.[INDEX].face_coverage.oneOf.1","typeLabel":"null"}],"uniqueKey":"face_matches.oneOf.0.items.[INDEX].face_coverage","typeLabel":"object | null"}},"uniqueKey":"face_matches.oneOf.0.items.[INDEX]","typeLabel":"object"},"uniqueKey":"face_matches.oneOf.0","typeLabel":"object[]"},{"type":"null","description":"**Array of face-match reports** produced by face-match steps in the workflow graph. Always a JSON array — never a singular `face_match` object. `null` until at least one face-match step has produced data. Each item is the full report, including `node_id`, feature-level `status`, similarity `score`, `source_image`, `target_image`, and `warnings[]`.","items":{"type":"object","description":"One face-match report — the full report.","properties":{"node_id":{"type":"string","description":"Workflow graph node id of the face-match step that produced this report."},"status":{"type":"string","enum":["Not Finished","Approved","Declined","In Review","Resub Requested"],"description":"Feature-level status of this face-match step. Independent of the top-level session `status` — a session can reach its overall decision while an individual feature stays `In Review`."},"score":{"type":"number","description":"Confidence score of the face match"},"source_image_session_id":{"oneOf":[{"type":"string","format":"uuid","description":"Session id under which the source (reference) portrait is stored. In biometric-authentication flows this is the session's own id (the submitted portrait is stored under the new session). `null` when the source image is the same session's document portrait."},{"type":"null","format":"uuid","description":"Session id under which the source (reference) portrait is stored. In biometric-authentication flows this is the session's own id (the submitted portrait is stored under the new session). `null` when the source image is the same session's document portrait."}]},"source_image":{"type":"string","format":"uri","description":"URL of the source image used for comparison"},"target_image":{"type":"string","format":"uri","description":"URL of the target image used for comparison"},"warnings":{"type":"array","items":{"type":"object","properties":{"feature":{"type":"string","enum":["ID_VERIFICATION","NFC","LIVENESS","FACEMATCH","PROOF_OF_ADDRESS","PHONE","EMAIL","AML","LOCATION","DATABASE_VALIDATION","QUESTIONNAIRE","DOCUMENT_AI","KYB_REGISTRY","KYB_DOCUMENTS","KYB_KEY_PEOPLE","GEOLOCATION","SIGNATURE"],"description":"The feature that generated this warning. The value identifies the feature block the warning belongs to. Each module's warnings array typically uses the value matching its module (e.g. `PHONE` inside `phone_verifications[].warnings`), but the enum above is authoritative across all feature warnings on the decision payload."},"risk":{"type":"string"},"additional_data":{"oneOf":[{"type":"object"},{"type":"null"}]},"log_type":{"type":"string"},"short_description":{"type":"string"},"long_description":{"type":"string"},"node_id":{"type":"string","description":"The workflow graph node ID that generated this warning"}}},"description":"Face match verification warnings"},"face_coverage":{"oneOf":[{"type":"object","description":"Whether the eyes, mouth and face are covered in the captured image. Returned by `GET /v3/session/{sessionId}/decision/` only; it is not part of webhook payloads. `null` when no coverage reading exists.","properties":{"eyes":{"type":"object","properties":{"covered":{"oneOf":[{"type":"boolean"},{"type":"null"}]},"calibrated":{"oneOf":[{"type":"boolean","description":"`false` means the reading is shadow evidence only and no warning acts on it."},{"type":"null","description":"`false` means the reading is shadow evidence only and no warning acts on it."}]},"visibility_score":{"oneOf":[{"type":"number"},{"type":"null"}]}}},"mouth":{"type":"object","properties":{"covered":{"oneOf":[{"type":"boolean"},{"type":"null"}]},"calibrated":{"oneOf":[{"type":"boolean","description":"`false` means the reading is shadow evidence only and no warning acts on it."},{"type":"null","description":"`false` means the reading is shadow evidence only and no warning acts on it."}]},"visibility_score":{"oneOf":[{"type":"number"},{"type":"null"}]}}},"face":{"type":"object","properties":{"covered":{"oneOf":[{"type":"boolean"},{"type":"null"}]},"calibrated":{"oneOf":[{"type":"boolean","description":"`false` means the reading is shadow evidence only and no warning acts on it."},{"type":"null","description":"`false` means the reading is shadow evidence only and no warning acts on it."}]},"visibility_score":{"oneOf":[{"type":"number"},{"type":"null"}]}}}}},{"type":"null","description":"Whether the eyes, mouth and face are covered in the captured image. Returned by `GET /v3/session/{sessionId}/decision/` only; it is not part of webhook payloads. `null` when no coverage reading exists.","properties":{"eyes":{"type":"object","properties":{"covered":{"oneOf":[{"type":"boolean"},{"type":"null"}]},"calibrated":{"oneOf":[{"type":"boolean","description":"`false` means the reading is shadow evidence only and no warning acts on it."},{"type":"null","description":"`false` means the reading is shadow evidence only and no warning acts on it."}]},"visibility_score":{"oneOf":[{"type":"number"},{"type":"null"}]}}},"mouth":{"type":"object","properties":{"covered":{"oneOf":[{"type":"boolean"},{"type":"null"}]},"calibrated":{"oneOf":[{"type":"boolean","description":"`false` means the reading is shadow evidence only and no warning acts on it."},{"type":"null","description":"`false` means the reading is shadow evidence only and no warning acts on it."}]},"visibility_score":{"oneOf":[{"type":"number"},{"type":"null"}]}}},"face":{"type":"object","properties":{"covered":{"oneOf":[{"type":"boolean"},{"type":"null"}]},"calibrated":{"oneOf":[{"type":"boolean","description":"`false` means the reading is shadow evidence only and no warning acts on it."},{"type":"null","description":"`false` means the reading is shadow evidence only and no warning acts on it."}]},"visibility_score":{"oneOf":[{"type":"number"},{"type":"null"}]}}}}}]}}},"uniqueKey":"face_matches.oneOf.1","typeLabel":"null"}],"uniqueKey":"face_matches","typeLabel":"object[] | null"},"phone_verifications":{"oneOf":[{"type":"array","description":"**Array of phone verification reports** — always a JSON array, never a singular `phone` object. `null` until at least one phone step has produced data. Each item is the full report, including `node_id`, feature-level `status`, the phone number and country metadata, `lifecycle[]`, `matches[]`, and `warnings[]`.","items":{"type":"object","properties":{"node_id":{"type":"string","description":"Unique identifier for this phone step in the workflow graph.","uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].node_id","typeLabel":"string"},"status":{"type":"string","description":"Feature-level status of this phone verification step. Independent of the top-level session `status` — a session can reach its overall decision while an individual feature stays `In Review`.","enum":["Not Finished","Approved","Declined","In Review","Expired"],"uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].status","typeLabel":"enum\u003cstring>"},"phone_number_prefix":{"type":"string","description":"Country calling code prefix","uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].phone_number_prefix","typeLabel":"string"},"phone_number":{"type":"string","description":"Phone number without country prefix","uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].phone_number","typeLabel":"string"},"full_number":{"type":"string","description":"Complete phone number with country prefix","uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].full_number","typeLabel":"string"},"country_code":{"type":"string","description":"Two-letter country code (ISO 3166-1 alpha-2)","uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].country_code","typeLabel":"string"},"country_name":{"type":"string","description":"Full country name","uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].country_name","typeLabel":"string"},"carrier":{"type":"object","properties":{"name":{"type":"string","description":"Name of the phone carrier","uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].carrier.name","typeLabel":"string"},"type":{"type":"string","description":"Type of phone line (mobile, landline, etc)","uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].carrier.type","typeLabel":"string"}},"uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].carrier","typeLabel":"object"},"is_disposable":{"type":"boolean","description":"Whether the phone number is from a disposable service","uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].is_disposable","typeLabel":"boolean"},"is_virtual":{"type":"boolean","description":"Whether the phone number is virtual","uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].is_virtual","typeLabel":"boolean"},"verification_method":{"type":"string","description":"Method used to verify the phone number","uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].verification_method","typeLabel":"string"},"verification_attempts":{"type":"integer","description":"Number of verification attempts made","uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].verification_attempts","typeLabel":"integer"},"verified_at":{"type":"string","format":"date-time","description":"Timestamp when the phone was verified","uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].verified_at","typeLabel":"string\u003cdate-time>"},"lifecycle":{"type":"array","description":"Chronological list of events in the phone verification lifecycle.","items":{"type":"object","properties":{"type":{"type":"string","uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].lifecycle.items.[INDEX].type","typeLabel":"string"},"timestamp":{"type":"string","format":"date-time","uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].lifecycle.items.[INDEX].timestamp","typeLabel":"string\u003cdate-time>"},"details":{"oneOf":[{"type":"object","description":"Event-specific payload. Send events carry `status`, `reason`, `channel`, `actual_channel`, `attempt` (the send's 0-based index, matching the order of the send events) and `delivery_status` (`delivered`, `undeliverable`, or `unknown` once no report can still arrive; absent while one can); delivery events carry `channel`, `status`, `attempt` and, on `PHONE_DELIVERY_UNDELIVERABLE`, `reason` (`expired`, `rejected`, `unreachable`, `blocked` or `unknown` for a message; `unreachable_number`, `no_answer`, `busy` or `undeliverable` for a call — always a fixed word, never a provider status or error code); code-check events carry `code_tried`, `status`; final status events carry `reason` — or `null` when there is no reason to report (e.g. `PHONE_VERIFICATION_APPROVED`).","properties":{"status":{"type":"string","uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].lifecycle.items.[INDEX].details.oneOf.0.status","typeLabel":"string"},"reason":{"oneOf":[{"type":"string","description":"Send events: why the send was blocked (`invalid_phone_number`, `repeated_attempts`, `suspicious`, `spam`, `unknown`), `null` otherwise. Delivery events on `PHONE_DELIVERY_UNDELIVERABLE`: `expired`, `rejected`, `unreachable`, `blocked` or `unknown` for a message, and `unreachable_number`, `no_answer`, `busy` or `undeliverable` for a call — a fixed customer-safe word, never the provider's status or error code.","uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].lifecycle.items.[INDEX].details.oneOf.0.reason.oneOf.0","typeLabel":"string"},{"type":"null","description":"Send events: why the send was blocked (`invalid_phone_number`, `repeated_attempts`, `suspicious`, `spam`, `unknown`), `null` otherwise. Delivery events on `PHONE_DELIVERY_UNDELIVERABLE`: `expired`, `rejected`, `unreachable`, `blocked` or `unknown` for a message, and `unreachable_number`, `no_answer`, `busy` or `undeliverable` for a call — a fixed customer-safe word, never the provider's status or error code.","uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].lifecycle.items.[INDEX].details.oneOf.0.reason.oneOf.1","typeLabel":"null"}],"uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].lifecycle.items.[INDEX].details.oneOf.0.reason","typeLabel":"string | null"},"channel":{"oneOf":[{"type":"string","uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].lifecycle.items.[INDEX].details.oneOf.0.channel.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].lifecycle.items.[INDEX].details.oneOf.0.channel.oneOf.1","typeLabel":"null"}],"uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].lifecycle.items.[INDEX].details.oneOf.0.channel","typeLabel":"string | null"},"actual_channel":{"oneOf":[{"type":"string","uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].lifecycle.items.[INDEX].details.oneOf.0.actual_channel.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].lifecycle.items.[INDEX].details.oneOf.0.actual_channel.oneOf.1","typeLabel":"null"}],"uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].lifecycle.items.[INDEX].details.oneOf.0.actual_channel","typeLabel":"string | null"},"attempt":{"oneOf":[{"type":"integer","description":"Send events and delivery events: the 0-based index of the send attempt the event belongs to, in the order of the send events.","uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].lifecycle.items.[INDEX].details.oneOf.0.attempt.oneOf.0","typeLabel":"integer"},{"type":"null","description":"Send events and delivery events: the 0-based index of the send attempt the event belongs to, in the order of the send events.","uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].lifecycle.items.[INDEX].details.oneOf.0.attempt.oneOf.1","typeLabel":"null"}],"uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].lifecycle.items.[INDEX].details.oneOf.0.attempt","typeLabel":"integer | null"},"delivery_status":{"oneOf":[{"type":"string","enum":["delivered","undeliverable","unknown"],"description":"Send events: how the send ended. `unknown` once no delivery report can still arrive (the verification finished without one); absent while one can.","uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].lifecycle.items.[INDEX].details.oneOf.0.delivery_status.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["delivered","undeliverable","unknown"],"description":"Send events: how the send ended. `unknown` once no delivery report can still arrive (the verification finished without one); absent while one can.","uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].lifecycle.items.[INDEX].details.oneOf.0.delivery_status.oneOf.1","typeLabel":"null"}],"uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].lifecycle.items.[INDEX].details.oneOf.0.delivery_status","typeLabel":"enum\u003cstring> | null"},"code_tried":{"type":"string","uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].lifecycle.items.[INDEX].details.oneOf.0.code_tried","typeLabel":"string"}},"uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].lifecycle.items.[INDEX].details.oneOf.0","typeLabel":"object"},{"type":"null","description":"Event-specific payload. Send events carry `status`, `reason`, `channel`, `actual_channel`, `attempt` (the send's 0-based index, matching the order of the send events) and `delivery_status` (`delivered`, `undeliverable`, or `unknown` once no report can still arrive; absent while one can); delivery events carry `channel`, `status`, `attempt` and, on `PHONE_DELIVERY_UNDELIVERABLE`, `reason` (`expired`, `rejected`, `unreachable`, `blocked` or `unknown` for a message; `unreachable_number`, `no_answer`, `busy` or `undeliverable` for a call — always a fixed word, never a provider status or error code); code-check events carry `code_tried`, `status`; final status events carry `reason` — or `null` when there is no reason to report (e.g. `PHONE_VERIFICATION_APPROVED`).","properties":{"status":{"type":"string"},"reason":{"oneOf":[{"type":"string","description":"Send events: why the send was blocked (`invalid_phone_number`, `repeated_attempts`, `suspicious`, `spam`, `unknown`), `null` otherwise. Delivery events on `PHONE_DELIVERY_UNDELIVERABLE`: `expired`, `rejected`, `unreachable`, `blocked` or `unknown` for a message, and `unreachable_number`, `no_answer`, `busy` or `undeliverable` for a call — a fixed customer-safe word, never the provider's status or error code."},{"type":"null","description":"Send events: why the send was blocked (`invalid_phone_number`, `repeated_attempts`, `suspicious`, `spam`, `unknown`), `null` otherwise. Delivery events on `PHONE_DELIVERY_UNDELIVERABLE`: `expired`, `rejected`, `unreachable`, `blocked` or `unknown` for a message, and `unreachable_number`, `no_answer`, `busy` or `undeliverable` for a call — a fixed customer-safe word, never the provider's status or error code."}]},"channel":{"oneOf":[{"type":"string"},{"type":"null"}]},"actual_channel":{"oneOf":[{"type":"string"},{"type":"null"}]},"attempt":{"oneOf":[{"type":"integer","description":"Send events and delivery events: the 0-based index of the send attempt the event belongs to, in the order of the send events."},{"type":"null","description":"Send events and delivery events: the 0-based index of the send attempt the event belongs to, in the order of the send events."}]},"delivery_status":{"oneOf":[{"type":"string","enum":["delivered","undeliverable","unknown"],"description":"Send events: how the send ended. `unknown` once no delivery report can still arrive (the verification finished without one); absent while one can."},{"type":"null","enum":["delivered","undeliverable","unknown"],"description":"Send events: how the send ended. `unknown` once no delivery report can still arrive (the verification finished without one); absent while one can."}]},"code_tried":{"type":"string"}},"uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].lifecycle.items.[INDEX].details.oneOf.1","typeLabel":"null"}],"uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].lifecycle.items.[INDEX].details","typeLabel":"object | null"},"fee":{"type":"number","uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].lifecycle.items.[INDEX].fee","typeLabel":"number"}},"uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].lifecycle.items.[INDEX]","typeLabel":"object"},"uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].lifecycle","typeLabel":"object[]"},"warnings":{"type":"array","description":"List of warnings related to phone verification","items":{"type":"object","properties":{"feature":{"type":"string","enum":["ID_VERIFICATION","NFC","LIVENESS","FACEMATCH","PROOF_OF_ADDRESS","PHONE","EMAIL","AML","LOCATION","DATABASE_VALIDATION","QUESTIONNAIRE","DOCUMENT_AI","KYB_REGISTRY","KYB_DOCUMENTS","KYB_KEY_PEOPLE","GEOLOCATION","SIGNATURE"],"description":"The feature that generated this warning. The value identifies the feature block the warning belongs to. Each module's warnings array typically uses the value matching its module (e.g. `PHONE` inside `phone_verifications[].warnings`), but the enum above is authoritative across all feature warnings on the decision payload.","uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].warnings.items.[INDEX].feature","typeLabel":"enum\u003cstring>"},"risk":{"type":"string","uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].warnings.items.[INDEX].risk","typeLabel":"string"},"additional_data":{"oneOf":[{"type":"object","uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].warnings.items.[INDEX].additional_data.oneOf.0","typeLabel":"object"},{"type":"null","uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].warnings.items.[INDEX].additional_data.oneOf.1","typeLabel":"null"}],"uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].warnings.items.[INDEX].additional_data","typeLabel":"object | null"},"log_type":{"type":"string","uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].warnings.items.[INDEX].log_type","typeLabel":"string"},"short_description":{"type":"string","uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].warnings.items.[INDEX].short_description","typeLabel":"string"},"long_description":{"type":"string","uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].warnings.items.[INDEX].long_description","typeLabel":"string"},"node_id":{"type":"string","description":"The workflow graph node ID that generated this warning","uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].warnings.items.[INDEX].node_id","typeLabel":"string"}},"uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].warnings.items.[INDEX]","typeLabel":"object"},"uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].warnings","typeLabel":"object[]"},"matches":{"type":"array","description":"Matches found for this phone number. Each match has a `source`: `session` (another verification session in your application matched on the same number, returned with `session_id`/`session_number`/`vendor_data`/`verification_date`) or `list_entry` (the number is on an org-managed allow/block list — see `/management-api/lists/overview`). Cross-session matches use different `vendor_data` and are capped at 5.","items":{"type":"object","properties":{"session_id":{"oneOf":[{"type":"string","format":"uuid","uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].matches.items.[INDEX].session_id.oneOf.0","typeLabel":"string\u003cuuid>"},{"type":"null","format":"uuid","uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].matches.items.[INDEX].session_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].matches.items.[INDEX].session_id","typeLabel":"string\u003cuuid> | null"},"session_number":{"oneOf":[{"type":"integer","uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].matches.items.[INDEX].session_number.oneOf.0","typeLabel":"integer"},{"type":"null","uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].matches.items.[INDEX].session_number.oneOf.1","typeLabel":"null"}],"uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].matches.items.[INDEX].session_number","typeLabel":"integer | null"},"vendor_data":{"oneOf":[{"type":"string","uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].matches.items.[INDEX].vendor_data.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].matches.items.[INDEX].vendor_data.oneOf.1","typeLabel":"null"}],"uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].matches.items.[INDEX].vendor_data","typeLabel":"string | null"},"verification_date":{"oneOf":[{"type":"string","format":"date-time","uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].matches.items.[INDEX].verification_date.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].matches.items.[INDEX].verification_date.oneOf.1","typeLabel":"null"}],"uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].matches.items.[INDEX].verification_date","typeLabel":"string\u003cdate-time> | null"},"phone_number":{"type":"string","uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].matches.items.[INDEX].phone_number","typeLabel":"string"},"status":{"oneOf":[{"type":"string","uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].matches.items.[INDEX].status.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].matches.items.[INDEX].status.oneOf.1","typeLabel":"null"}],"uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].matches.items.[INDEX].status","typeLabel":"string | null"},"is_blocklisted":{"type":"boolean","uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].matches.items.[INDEX].is_blocklisted","typeLabel":"boolean"},"api_service":{"oneOf":[{"type":"string","uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].matches.items.[INDEX].api_service.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].matches.items.[INDEX].api_service.oneOf.1","typeLabel":"null"}],"uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].matches.items.[INDEX].api_service","typeLabel":"string | null"},"source":{"type":"string","enum":["session","list_entry"],"description":"Where this match came from. `session` means another verification session in your application matched on this value. `list_entry` means the value was hit against an org-managed list (allowlist/blocklist) — see the management API lists overview at `/management-api/lists/overview` for how to manage those lists.","uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].matches.items.[INDEX].source","typeLabel":"enum\u003cstring>"}},"uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].matches.items.[INDEX]","typeLabel":"object"},"uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].matches","typeLabel":"object[]"},"phone_intelligence":{"type":"object","description":"Phone intelligence signals. Present only when the phone intelligence add-on ran for this number.","properties":{"score":{"oneOf":[{"type":"number","description":"Normalized 0-100 risk score. Higher is riskier.","uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].phone_intelligence.score.oneOf.0","typeLabel":"number"},{"type":"null","description":"Normalized 0-100 risk score. Higher is riskier.","uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].phone_intelligence.score.oneOf.1","typeLabel":"null"}],"uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].phone_intelligence.score","typeLabel":"number | null"},"phone_type_risk":{"oneOf":[{"type":"string","description":"`Low`, `Medium` or `High`, derived from the score.","uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].phone_intelligence.phone_type_risk.oneOf.0","typeLabel":"string"},{"type":"null","description":"`Low`, `Medium` or `High`, derived from the score.","uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].phone_intelligence.phone_type_risk.oneOf.1","typeLabel":"null"}],"uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].phone_intelligence.phone_type_risk","typeLabel":"string | null"},"phone_trust_index":{"oneOf":[{"type":"number","description":"Inverse of the score, for dashboards that prefer higher is better.","uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].phone_intelligence.phone_trust_index.oneOf.0","typeLabel":"number"},{"type":"null","description":"Inverse of the score, for dashboards that prefer higher is better.","uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].phone_intelligence.phone_trust_index.oneOf.1","typeLabel":"null"}],"uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].phone_intelligence.phone_trust_index","typeLabel":"number | null"},"network_stability_index":{"oneOf":[{"type":"number","description":"Stability of the line's network.","uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].phone_intelligence.network_stability_index.oneOf.0","typeLabel":"number"},{"type":"null","description":"Stability of the line's network.","uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].phone_intelligence.network_stability_index.oneOf.1","typeLabel":"null"}],"uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].phone_intelligence.network_stability_index","typeLabel":"number | null"},"is_disposable":{"oneOf":[{"type":"boolean","description":"`true` when the number looks disposable or virtual.","uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].phone_intelligence.is_disposable.oneOf.0","typeLabel":"boolean"},{"type":"null","description":"`true` when the number looks disposable or virtual.","uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].phone_intelligence.is_disposable.oneOf.1","typeLabel":"null"}],"uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].phone_intelligence.is_disposable","typeLabel":"boolean | null"},"is_ported":{"oneOf":[{"type":"boolean","description":"`true` when the number has moved carrier.","uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].phone_intelligence.is_ported.oneOf.0","typeLabel":"boolean"},{"type":"null","description":"`true` when the number has moved carrier.","uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].phone_intelligence.is_ported.oneOf.1","typeLabel":"null"}],"uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].phone_intelligence.is_ported","typeLabel":"boolean | null"},"is_recently_ported":{"oneOf":[{"type":"boolean","description":"`true` when the port happened recently.","uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].phone_intelligence.is_recently_ported.oneOf.0","typeLabel":"boolean"},{"type":"null","description":"`true` when the port happened recently.","uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].phone_intelligence.is_recently_ported.oneOf.1","typeLabel":"null"}],"uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].phone_intelligence.is_recently_ported","typeLabel":"boolean | null"},"carrier_type":{"oneOf":[{"type":"string","description":"Line classification reported by the lookup (e.g., `mobile`).","uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].phone_intelligence.carrier_type.oneOf.0","typeLabel":"string"},{"type":"null","description":"Line classification reported by the lookup (e.g., `mobile`).","uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].phone_intelligence.carrier_type.oneOf.1","typeLabel":"null"}],"uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].phone_intelligence.carrier_type","typeLabel":"string | null"},"reason_codes":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","description":"Stable Didit identifier of the signal, for example `IR-5AC67A32`. Opaque: group and filter on it, do not parse it.","uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].phone_intelligence.reason_codes.items.[INDEX].code","typeLabel":"string"},"value":{"oneOf":[{"description":"For a risk flag (for example `voip`, `leaked`, `disposable`, `spam_trap`), its value: a boolean, a level or a date. Null for a scored reason code.","uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].phone_intelligence.reason_codes.items.[INDEX].value.oneOf.0","typeLabel":"any"},{"description":"For a risk flag (for example `voip`, `leaked`, `disposable`, `spam_trap`), its value: a boolean, a level or a date. Null for a scored reason code.","type":"null","uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].phone_intelligence.reason_codes.items.[INDEX].value.oneOf.1","typeLabel":"null"}],"uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].phone_intelligence.reason_codes.items.[INDEX].value","typeLabel":"any | null"},"direction":{"type":"string","enum":["risk","trust"],"description":"Whether the signal raised the risk or added trust.","uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].phone_intelligence.reason_codes.items.[INDEX].direction","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"Human-readable explanation of the signal, in English.","uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].phone_intelligence.reason_codes.items.[INDEX].message","typeLabel":"string"},"impact_level":{"oneOf":[{"type":"string","description":"How strongly the signal moved the score, for example `low`, `medium` or `high`.","uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].phone_intelligence.reason_codes.items.[INDEX].impact_level.oneOf.0","typeLabel":"string"},{"type":"null","description":"How strongly the signal moved the score, for example `low`, `medium` or `high`.","uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].phone_intelligence.reason_codes.items.[INDEX].impact_level.oneOf.1","typeLabel":"null"}],"uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].phone_intelligence.reason_codes.items.[INDEX].impact_level","typeLabel":"string | null"}},"uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].phone_intelligence.reason_codes.items.[INDEX]","typeLabel":"object"},"description":"Signals that explain the score, each with a stable Didit code, a direction, a message and an impact level. New codes can appear over time, so do not reject unknown codes.","uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].phone_intelligence.reason_codes","typeLabel":"object[]"}},"uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].phone_intelligence","typeLabel":"object"},"phone_social":{"oneOf":[{"type":"object","description":"Social footprint of the number. Present only when the social footprint add-on ran for this number.","properties":{"profiles_registered":{"oneOf":[{"type":"integer","description":"Platforms where the phone number is confirmed registered.","example":5,"uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].phone_social.oneOf.0.profiles_registered.oneOf.0","typeLabel":"integer"},{"type":"null","description":"Platforms where the phone number is confirmed registered.","example":5,"uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].phone_social.oneOf.0.profiles_registered.oneOf.1","typeLabel":"null"}],"uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].phone_social.oneOf.0.profiles_registered","typeLabel":"integer | null"},"profiles_checked":{"oneOf":[{"type":"integer","description":"Platforms evaluated for registration.","example":14,"uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].phone_social.oneOf.0.profiles_checked.oneOf.0","typeLabel":"integer"},{"type":"null","description":"Platforms evaluated for registration.","example":14,"uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].phone_social.oneOf.0.profiles_checked.oneOf.1","typeLabel":"null"}],"uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].phone_social.oneOf.0.profiles_checked","typeLabel":"integer | null"},"names_found":{"oneOf":[{"type":"integer","description":"Platforms that returned an associated name.","example":0,"uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].phone_social.oneOf.0.names_found.oneOf.0","typeLabel":"integer"},{"type":"null","description":"Platforms that returned an associated name.","example":0,"uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].phone_social.oneOf.0.names_found.oneOf.1","typeLabel":"null"}],"uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].phone_social.oneOf.0.names_found","typeLabel":"integer | null"},"photos_found":{"oneOf":[{"type":"integer","description":"Platforms that returned a profile photo.","example":0,"uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].phone_social.oneOf.0.photos_found.oneOf.0","typeLabel":"integer"},{"type":"null","description":"Platforms that returned a profile photo.","example":0,"uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].phone_social.oneOf.0.photos_found.oneOf.1","typeLabel":"null"}],"uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].phone_social.oneOf.0.photos_found","typeLabel":"integer | null"},"communication_breadth":{"oneOf":[{"type":"integer","description":"Communication platforms with detected presence.","example":2,"uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].phone_social.oneOf.0.communication_breadth.oneOf.0","typeLabel":"integer"},{"type":"null","description":"Communication platforms with detected presence.","example":2,"uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].phone_social.oneOf.0.communication_breadth.oneOf.1","typeLabel":"null"}],"uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].phone_social.oneOf.0.communication_breadth","typeLabel":"integer | null"},"digital_footprint_diversity":{"oneOf":[{"type":"integer","description":"Distinct platform categories with detected presence.","example":5,"uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].phone_social.oneOf.0.digital_footprint_diversity.oneOf.0","typeLabel":"integer"},{"type":"null","description":"Distinct platform categories with detected presence.","example":5,"uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].phone_social.oneOf.0.digital_footprint_diversity.oneOf.1","typeLabel":"null"}],"uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].phone_social.oneOf.0.digital_footprint_diversity","typeLabel":"integer | null"},"digital_sophistication_index":{"oneOf":[{"type":"integer","description":"Composite digital-maturity indicator, 0-10.","example":5,"uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].phone_social.oneOf.0.digital_sophistication_index.oneOf.0","typeLabel":"integer"},{"type":"null","description":"Composite digital-maturity indicator, 0-10.","example":5,"uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].phone_social.oneOf.0.digital_sophistication_index.oneOf.1","typeLabel":"null"}],"uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].phone_social.oneOf.0.digital_sophistication_index","typeLabel":"integer | null"},"engagement_depth_index":{"oneOf":[{"type":"integer","description":"Profile-richness indicator, 0-10.","example":3,"uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].phone_social.oneOf.0.engagement_depth_index.oneOf.0","typeLabel":"integer"},{"type":"null","description":"Profile-richness indicator, 0-10.","example":3,"uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].phone_social.oneOf.0.engagement_depth_index.oneOf.1","typeLabel":"null"}],"uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].phone_social.oneOf.0.engagement_depth_index","typeLabel":"integer | null"},"subscription_affordability_index":{"oneOf":[{"type":"integer","description":"Free vs paid platform mix, 0-10.","example":2,"uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].phone_social.oneOf.0.subscription_affordability_index.oneOf.0","typeLabel":"integer"},{"type":"null","description":"Free vs paid platform mix, 0-10.","example":2,"uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].phone_social.oneOf.0.subscription_affordability_index.oneOf.1","typeLabel":"null"}],"uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].phone_social.oneOf.0.subscription_affordability_index","typeLabel":"integer | null"},"free_platforms":{"oneOf":[{"type":"integer","description":"Registrations on free platforms.","example":4,"uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].phone_social.oneOf.0.free_platforms.oneOf.0","typeLabel":"integer"},{"type":"null","description":"Registrations on free platforms.","example":4,"uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].phone_social.oneOf.0.free_platforms.oneOf.1","typeLabel":"null"}],"uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].phone_social.oneOf.0.free_platforms","typeLabel":"integer | null"},"full_paid_platforms":{"oneOf":[{"type":"integer","description":"Registrations on fully paid platforms.","example":0,"uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].phone_social.oneOf.0.full_paid_platforms.oneOf.0","typeLabel":"integer"},{"type":"null","description":"Registrations on fully paid platforms.","example":0,"uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].phone_social.oneOf.0.full_paid_platforms.oneOf.1","typeLabel":"null"}],"uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].phone_social.oneOf.0.full_paid_platforms","typeLabel":"integer | null"},"partial_paid_platforms":{"oneOf":[{"type":"integer","description":"Registrations on freemium platforms.","example":1,"uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].phone_social.oneOf.0.partial_paid_platforms.oneOf.0","typeLabel":"integer"},{"type":"null","description":"Registrations on freemium platforms.","example":1,"uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].phone_social.oneOf.0.partial_paid_platforms.oneOf.1","typeLabel":"null"}],"uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].phone_social.oneOf.0.partial_paid_platforms","typeLabel":"integer | null"},"whatsapp_profile_completeness":{"oneOf":[{"type":"string","enum":["Basic","Partial","Complete","Not Present",null],"description":"Completeness of the WhatsApp profile. Phone only; null for email.","example":"Partial","uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].phone_social.oneOf.0.whatsapp_profile_completeness.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["Basic","Partial","Complete","Not Present",null],"description":"Completeness of the WhatsApp profile. Phone only; null for email.","example":"Partial","uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].phone_social.oneOf.0.whatsapp_profile_completeness.oneOf.1","typeLabel":"null"}],"uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].phone_social.oneOf.0.whatsapp_profile_completeness","typeLabel":"enum\u003cstring> | null"},"registered_platforms":{"type":"array","description":"Platforms where registration is confirmed.","items":{"type":"object","properties":{"platform":{"type":"string","description":"Platform identifier.","example":"whatsapp","uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].phone_social.oneOf.0.registered_platforms.items.[INDEX].platform","typeLabel":"string"},"category":{"type":"string","description":"Platform category, e.g. MESSAGING, SOCIAL_MEDIA, ECOMMERCE, PROFESSIONAL, EMAIL_PROVIDER.","example":"MESSAGING","uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].phone_social.oneOf.0.registered_platforms.items.[INDEX].category","typeLabel":"string"},"scope":{"type":"string","enum":["global","local"],"description":"`global` for worldwide platforms, `local` for region-specific ones.","example":"global","uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].phone_social.oneOf.0.registered_platforms.items.[INDEX].scope","typeLabel":"enum\u003cstring>"}},"uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].phone_social.oneOf.0.registered_platforms.items.[INDEX]","typeLabel":"object"},"uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].phone_social.oneOf.0.registered_platforms","typeLabel":"object[]"},"not_registered_platforms":{"type":"array","description":"Platforms checked with a negative result.","items":{"type":"object","properties":{"platform":{"type":"string","description":"Platform identifier.","example":"whatsapp","uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].phone_social.oneOf.0.not_registered_platforms.items.[INDEX].platform","typeLabel":"string"},"category":{"type":"string","description":"Platform category, e.g. MESSAGING, SOCIAL_MEDIA, ECOMMERCE, PROFESSIONAL, EMAIL_PROVIDER.","example":"MESSAGING","uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].phone_social.oneOf.0.not_registered_platforms.items.[INDEX].category","typeLabel":"string"},"scope":{"type":"string","enum":["global","local"],"description":"`global` for worldwide platforms, `local` for region-specific ones.","example":"global","uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].phone_social.oneOf.0.not_registered_platforms.items.[INDEX].scope","typeLabel":"enum\u003cstring>"}},"uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].phone_social.oneOf.0.not_registered_platforms.items.[INDEX]","typeLabel":"object"},"uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].phone_social.oneOf.0.not_registered_platforms","typeLabel":"object[]"},"categories":{"type":"object","description":"Registered count and ratio per platform category.","additionalProperties":{"type":"object","properties":{"registered":{"oneOf":[{"type":"integer","description":"Platforms in this category where registration is confirmed.","example":2,"uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].phone_social.oneOf.0.categories.additionalProperties.registered.oneOf.0","typeLabel":"integer"},{"type":"null","description":"Platforms in this category where registration is confirmed.","example":2,"uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].phone_social.oneOf.0.categories.additionalProperties.registered.oneOf.1","typeLabel":"null"}],"uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].phone_social.oneOf.0.categories.additionalProperties.registered","typeLabel":"integer | null"},"ratio":{"oneOf":[{"type":"number","format":"float","description":"Share of the category's checked platforms with a registration, 0.0-1.0.","example":0.6667,"uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].phone_social.oneOf.0.categories.additionalProperties.ratio.oneOf.0","typeLabel":"number\u003cfloat>"},{"type":"null","format":"float","description":"Share of the category's checked platforms with a registration, 0.0-1.0.","example":0.6667,"uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].phone_social.oneOf.0.categories.additionalProperties.ratio.oneOf.1","typeLabel":"null"}],"uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].phone_social.oneOf.0.categories.additionalProperties.ratio","typeLabel":"number\u003cfloat> | null"}},"uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].phone_social.oneOf.0.categories.additionalProperties","typeLabel":"object"},"uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].phone_social.oneOf.0.categories","typeLabel":"object"},"profiles":{"type":"object","description":"Per-platform profile details, keyed by platform, when the platform exposes them.","additionalProperties":{"type":"object","properties":{"name":{"oneOf":[{"type":"string","description":"Profile name, when the platform exposes one.","uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].phone_social.oneOf.0.profiles.additionalProperties.name.oneOf.0","typeLabel":"string"},{"type":"null","description":"Profile name, when the platform exposes one.","uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].phone_social.oneOf.0.profiles.additionalProperties.name.oneOf.1","typeLabel":"null"}],"uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].phone_social.oneOf.0.profiles.additionalProperties.name","typeLabel":"string | null"},"photo":{"oneOf":[{"type":"string","description":"Profile photo URL, when the platform exposes one.","uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].phone_social.oneOf.0.profiles.additionalProperties.photo.oneOf.0","typeLabel":"string"},{"type":"null","description":"Profile photo URL, when the platform exposes one.","uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].phone_social.oneOf.0.profiles.additionalProperties.photo.oneOf.1","typeLabel":"null"}],"uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].phone_social.oneOf.0.profiles.additionalProperties.photo","typeLabel":"string | null"},"about":{"oneOf":[{"type":"string","description":"Profile about/bio text, when the platform exposes one.","uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].phone_social.oneOf.0.profiles.additionalProperties.about.oneOf.0","typeLabel":"string"},{"type":"null","description":"Profile about/bio text, when the platform exposes one.","uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].phone_social.oneOf.0.profiles.additionalProperties.about.oneOf.1","typeLabel":"null"}],"uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].phone_social.oneOf.0.profiles.additionalProperties.about","typeLabel":"string | null"},"privacy_status":{"oneOf":[{"type":"string","enum":["PUBLIC","PRIVATE",null],"description":"Profile visibility, when the platform exposes it.","uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].phone_social.oneOf.0.profiles.additionalProperties.privacy_status.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["PUBLIC","PRIVATE",null],"description":"Profile visibility, when the platform exposes it.","uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].phone_social.oneOf.0.profiles.additionalProperties.privacy_status.oneOf.1","typeLabel":"null"}],"uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].phone_social.oneOf.0.profiles.additionalProperties.privacy_status","typeLabel":"enum\u003cstring> | null"},"business_account":{"oneOf":[{"type":"boolean","description":"Whether the profile is a business account, when the platform exposes it.","uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].phone_social.oneOf.0.profiles.additionalProperties.business_account.oneOf.0","typeLabel":"boolean"},{"type":"null","description":"Whether the profile is a business account, when the platform exposes it.","uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].phone_social.oneOf.0.profiles.additionalProperties.business_account.oneOf.1","typeLabel":"null"}],"uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].phone_social.oneOf.0.profiles.additionalProperties.business_account","typeLabel":"boolean | null"}},"uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].phone_social.oneOf.0.profiles.additionalProperties","typeLabel":"object"},"uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].phone_social.oneOf.0.profiles","typeLabel":"object"}},"uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].phone_social.oneOf.0","typeLabel":"object"},{"type":"null","description":"Social footprint of the number. Present only when the social footprint add-on ran for this number.","properties":{"profiles_registered":{"oneOf":[{"type":"integer","description":"Platforms where the phone number is confirmed registered.","example":5},{"type":"null","description":"Platforms where the phone number is confirmed registered.","example":5}]},"profiles_checked":{"oneOf":[{"type":"integer","description":"Platforms evaluated for registration.","example":14},{"type":"null","description":"Platforms evaluated for registration.","example":14}]},"names_found":{"oneOf":[{"type":"integer","description":"Platforms that returned an associated name.","example":0},{"type":"null","description":"Platforms that returned an associated name.","example":0}]},"photos_found":{"oneOf":[{"type":"integer","description":"Platforms that returned a profile photo.","example":0},{"type":"null","description":"Platforms that returned a profile photo.","example":0}]},"communication_breadth":{"oneOf":[{"type":"integer","description":"Communication platforms with detected presence.","example":2},{"type":"null","description":"Communication platforms with detected presence.","example":2}]},"digital_footprint_diversity":{"oneOf":[{"type":"integer","description":"Distinct platform categories with detected presence.","example":5},{"type":"null","description":"Distinct platform categories with detected presence.","example":5}]},"digital_sophistication_index":{"oneOf":[{"type":"integer","description":"Composite digital-maturity indicator, 0-10.","example":5},{"type":"null","description":"Composite digital-maturity indicator, 0-10.","example":5}]},"engagement_depth_index":{"oneOf":[{"type":"integer","description":"Profile-richness indicator, 0-10.","example":3},{"type":"null","description":"Profile-richness indicator, 0-10.","example":3}]},"subscription_affordability_index":{"oneOf":[{"type":"integer","description":"Free vs paid platform mix, 0-10.","example":2},{"type":"null","description":"Free vs paid platform mix, 0-10.","example":2}]},"free_platforms":{"oneOf":[{"type":"integer","description":"Registrations on free platforms.","example":4},{"type":"null","description":"Registrations on free platforms.","example":4}]},"full_paid_platforms":{"oneOf":[{"type":"integer","description":"Registrations on fully paid platforms.","example":0},{"type":"null","description":"Registrations on fully paid platforms.","example":0}]},"partial_paid_platforms":{"oneOf":[{"type":"integer","description":"Registrations on freemium platforms.","example":1},{"type":"null","description":"Registrations on freemium platforms.","example":1}]},"whatsapp_profile_completeness":{"oneOf":[{"type":"string","enum":["Basic","Partial","Complete","Not Present",null],"description":"Completeness of the WhatsApp profile. Phone only; null for email.","example":"Partial"},{"type":"null","enum":["Basic","Partial","Complete","Not Present",null],"description":"Completeness of the WhatsApp profile. Phone only; null for email.","example":"Partial"}]},"registered_platforms":{"type":"array","description":"Platforms where registration is confirmed.","items":{"type":"object","properties":{"platform":{"type":"string","description":"Platform identifier.","example":"whatsapp"},"category":{"type":"string","description":"Platform category, e.g. MESSAGING, SOCIAL_MEDIA, ECOMMERCE, PROFESSIONAL, EMAIL_PROVIDER.","example":"MESSAGING"},"scope":{"type":"string","enum":["global","local"],"description":"`global` for worldwide platforms, `local` for region-specific ones.","example":"global"}}}},"not_registered_platforms":{"type":"array","description":"Platforms checked with a negative result.","items":{"type":"object","properties":{"platform":{"type":"string","description":"Platform identifier.","example":"whatsapp"},"category":{"type":"string","description":"Platform category, e.g. MESSAGING, SOCIAL_MEDIA, ECOMMERCE, PROFESSIONAL, EMAIL_PROVIDER.","example":"MESSAGING"},"scope":{"type":"string","enum":["global","local"],"description":"`global` for worldwide platforms, `local` for region-specific ones.","example":"global"}}}},"categories":{"type":"object","description":"Registered count and ratio per platform category.","additionalProperties":{"type":"object","properties":{"registered":{"oneOf":[{"type":"integer","description":"Platforms in this category where registration is confirmed.","example":2},{"type":"null","description":"Platforms in this category where registration is confirmed.","example":2}]},"ratio":{"oneOf":[{"type":"number","format":"float","description":"Share of the category's checked platforms with a registration, 0.0-1.0.","example":0.6667},{"type":"null","format":"float","description":"Share of the category's checked platforms with a registration, 0.0-1.0.","example":0.6667}]}}}},"profiles":{"type":"object","description":"Per-platform profile details, keyed by platform, when the platform exposes them.","additionalProperties":{"type":"object","properties":{"name":{"oneOf":[{"type":"string","description":"Profile name, when the platform exposes one."},{"type":"null","description":"Profile name, when the platform exposes one."}]},"photo":{"oneOf":[{"type":"string","description":"Profile photo URL, when the platform exposes one."},{"type":"null","description":"Profile photo URL, when the platform exposes one."}]},"about":{"oneOf":[{"type":"string","description":"Profile about/bio text, when the platform exposes one."},{"type":"null","description":"Profile about/bio text, when the platform exposes one."}]},"privacy_status":{"oneOf":[{"type":"string","enum":["PUBLIC","PRIVATE",null],"description":"Profile visibility, when the platform exposes it."},{"type":"null","enum":["PUBLIC","PRIVATE",null],"description":"Profile visibility, when the platform exposes it."}]},"business_account":{"oneOf":[{"type":"boolean","description":"Whether the profile is a business account, when the platform exposes it."},{"type":"null","description":"Whether the profile is a business account, when the platform exposes it."}]}}}}},"uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].phone_social.oneOf.1","typeLabel":"null"}],"uniqueKey":"phone_verifications.oneOf.0.items.[INDEX].phone_social","typeLabel":"object | null"}},"uniqueKey":"phone_verifications.oneOf.0.items.[INDEX]","typeLabel":"object"},"uniqueKey":"phone_verifications.oneOf.0","typeLabel":"object[]"},{"type":"null","description":"**Array of phone verification reports** — always a JSON array, never a singular `phone` object. `null` until at least one phone step has produced data. Each item is the full report, including `node_id`, feature-level `status`, the phone number and country metadata, `lifecycle[]`, `matches[]`, and `warnings[]`.","items":{"type":"object","properties":{"node_id":{"type":"string","description":"Unique identifier for this phone step in the workflow graph."},"status":{"type":"string","description":"Feature-level status of this phone verification step. Independent of the top-level session `status` — a session can reach its overall decision while an individual feature stays `In Review`.","enum":["Not Finished","Approved","Declined","In Review","Expired"]},"phone_number_prefix":{"type":"string","description":"Country calling code prefix"},"phone_number":{"type":"string","description":"Phone number without country prefix"},"full_number":{"type":"string","description":"Complete phone number with country prefix"},"country_code":{"type":"string","description":"Two-letter country code (ISO 3166-1 alpha-2)"},"country_name":{"type":"string","description":"Full country name"},"carrier":{"type":"object","properties":{"name":{"type":"string","description":"Name of the phone carrier"},"type":{"type":"string","description":"Type of phone line (mobile, landline, etc)"}}},"is_disposable":{"type":"boolean","description":"Whether the phone number is from a disposable service"},"is_virtual":{"type":"boolean","description":"Whether the phone number is virtual"},"verification_method":{"type":"string","description":"Method used to verify the phone number"},"verification_attempts":{"type":"integer","description":"Number of verification attempts made"},"verified_at":{"type":"string","format":"date-time","description":"Timestamp when the phone was verified"},"lifecycle":{"type":"array","description":"Chronological list of events in the phone verification lifecycle.","items":{"type":"object","properties":{"type":{"type":"string"},"timestamp":{"type":"string","format":"date-time"},"details":{"oneOf":[{"type":"object","description":"Event-specific payload. Send events carry `status`, `reason`, `channel`, `actual_channel`, `attempt` (the send's 0-based index, matching the order of the send events) and `delivery_status` (`delivered`, `undeliverable`, or `unknown` once no report can still arrive; absent while one can); delivery events carry `channel`, `status`, `attempt` and, on `PHONE_DELIVERY_UNDELIVERABLE`, `reason` (`expired`, `rejected`, `unreachable`, `blocked` or `unknown` for a message; `unreachable_number`, `no_answer`, `busy` or `undeliverable` for a call — always a fixed word, never a provider status or error code); code-check events carry `code_tried`, `status`; final status events carry `reason` — or `null` when there is no reason to report (e.g. `PHONE_VERIFICATION_APPROVED`).","properties":{"status":{"type":"string"},"reason":{"oneOf":[{"type":"string","description":"Send events: why the send was blocked (`invalid_phone_number`, `repeated_attempts`, `suspicious`, `spam`, `unknown`), `null` otherwise. Delivery events on `PHONE_DELIVERY_UNDELIVERABLE`: `expired`, `rejected`, `unreachable`, `blocked` or `unknown` for a message, and `unreachable_number`, `no_answer`, `busy` or `undeliverable` for a call — a fixed customer-safe word, never the provider's status or error code."},{"type":"null","description":"Send events: why the send was blocked (`invalid_phone_number`, `repeated_attempts`, `suspicious`, `spam`, `unknown`), `null` otherwise. Delivery events on `PHONE_DELIVERY_UNDELIVERABLE`: `expired`, `rejected`, `unreachable`, `blocked` or `unknown` for a message, and `unreachable_number`, `no_answer`, `busy` or `undeliverable` for a call — a fixed customer-safe word, never the provider's status or error code."}]},"channel":{"oneOf":[{"type":"string"},{"type":"null"}]},"actual_channel":{"oneOf":[{"type":"string"},{"type":"null"}]},"attempt":{"oneOf":[{"type":"integer","description":"Send events and delivery events: the 0-based index of the send attempt the event belongs to, in the order of the send events."},{"type":"null","description":"Send events and delivery events: the 0-based index of the send attempt the event belongs to, in the order of the send events."}]},"delivery_status":{"oneOf":[{"type":"string","enum":["delivered","undeliverable","unknown"],"description":"Send events: how the send ended. `unknown` once no delivery report can still arrive (the verification finished without one); absent while one can."},{"type":"null","enum":["delivered","undeliverable","unknown"],"description":"Send events: how the send ended. `unknown` once no delivery report can still arrive (the verification finished without one); absent while one can."}]},"code_tried":{"type":"string"}}},{"type":"null","description":"Event-specific payload. Send events carry `status`, `reason`, `channel`, `actual_channel`, `attempt` (the send's 0-based index, matching the order of the send events) and `delivery_status` (`delivered`, `undeliverable`, or `unknown` once no report can still arrive; absent while one can); delivery events carry `channel`, `status`, `attempt` and, on `PHONE_DELIVERY_UNDELIVERABLE`, `reason` (`expired`, `rejected`, `unreachable`, `blocked` or `unknown` for a message; `unreachable_number`, `no_answer`, `busy` or `undeliverable` for a call — always a fixed word, never a provider status or error code); code-check events carry `code_tried`, `status`; final status events carry `reason` — or `null` when there is no reason to report (e.g. `PHONE_VERIFICATION_APPROVED`).","properties":{"status":{"type":"string"},"reason":{"oneOf":[{"type":"string","description":"Send events: why the send was blocked (`invalid_phone_number`, `repeated_attempts`, `suspicious`, `spam`, `unknown`), `null` otherwise. Delivery events on `PHONE_DELIVERY_UNDELIVERABLE`: `expired`, `rejected`, `unreachable`, `blocked` or `unknown` for a message, and `unreachable_number`, `no_answer`, `busy` or `undeliverable` for a call — a fixed customer-safe word, never the provider's status or error code."},{"type":"null","description":"Send events: why the send was blocked (`invalid_phone_number`, `repeated_attempts`, `suspicious`, `spam`, `unknown`), `null` otherwise. Delivery events on `PHONE_DELIVERY_UNDELIVERABLE`: `expired`, `rejected`, `unreachable`, `blocked` or `unknown` for a message, and `unreachable_number`, `no_answer`, `busy` or `undeliverable` for a call — a fixed customer-safe word, never the provider's status or error code."}]},"channel":{"oneOf":[{"type":"string"},{"type":"null"}]},"actual_channel":{"oneOf":[{"type":"string"},{"type":"null"}]},"attempt":{"oneOf":[{"type":"integer","description":"Send events and delivery events: the 0-based index of the send attempt the event belongs to, in the order of the send events."},{"type":"null","description":"Send events and delivery events: the 0-based index of the send attempt the event belongs to, in the order of the send events."}]},"delivery_status":{"oneOf":[{"type":"string","enum":["delivered","undeliverable","unknown"],"description":"Send events: how the send ended. `unknown` once no delivery report can still arrive (the verification finished without one); absent while one can."},{"type":"null","enum":["delivered","undeliverable","unknown"],"description":"Send events: how the send ended. `unknown` once no delivery report can still arrive (the verification finished without one); absent while one can."}]},"code_tried":{"type":"string"}}}]},"fee":{"type":"number"}}}},"warnings":{"type":"array","description":"List of warnings related to phone verification","items":{"type":"object","properties":{"feature":{"type":"string","enum":["ID_VERIFICATION","NFC","LIVENESS","FACEMATCH","PROOF_OF_ADDRESS","PHONE","EMAIL","AML","LOCATION","DATABASE_VALIDATION","QUESTIONNAIRE","DOCUMENT_AI","KYB_REGISTRY","KYB_DOCUMENTS","KYB_KEY_PEOPLE","GEOLOCATION","SIGNATURE"],"description":"The feature that generated this warning. The value identifies the feature block the warning belongs to. Each module's warnings array typically uses the value matching its module (e.g. `PHONE` inside `phone_verifications[].warnings`), but the enum above is authoritative across all feature warnings on the decision payload."},"risk":{"type":"string"},"additional_data":{"oneOf":[{"type":"object"},{"type":"null"}]},"log_type":{"type":"string"},"short_description":{"type":"string"},"long_description":{"type":"string"},"node_id":{"type":"string","description":"The workflow graph node ID that generated this warning"}}}},"matches":{"type":"array","description":"Matches found for this phone number. Each match has a `source`: `session` (another verification session in your application matched on the same number, returned with `session_id`/`session_number`/`vendor_data`/`verification_date`) or `list_entry` (the number is on an org-managed allow/block list — see `/management-api/lists/overview`). Cross-session matches use different `vendor_data` and are capped at 5.","items":{"type":"object","properties":{"session_id":{"oneOf":[{"type":"string","format":"uuid"},{"type":"null","format":"uuid"}]},"session_number":{"oneOf":[{"type":"integer"},{"type":"null"}]},"vendor_data":{"oneOf":[{"type":"string"},{"type":"null"}]},"verification_date":{"oneOf":[{"type":"string","format":"date-time"},{"type":"null","format":"date-time"}]},"phone_number":{"type":"string"},"status":{"oneOf":[{"type":"string"},{"type":"null"}]},"is_blocklisted":{"type":"boolean"},"api_service":{"oneOf":[{"type":"string"},{"type":"null"}]},"source":{"type":"string","enum":["session","list_entry"],"description":"Where this match came from. `session` means another verification session in your application matched on this value. `list_entry` means the value was hit against an org-managed list (allowlist/blocklist) — see the management API lists overview at `/management-api/lists/overview` for how to manage those lists."}}}},"phone_intelligence":{"type":"object","description":"Phone intelligence signals. Present only when the phone intelligence add-on ran for this number.","properties":{"score":{"oneOf":[{"type":"number","description":"Normalized 0-100 risk score. Higher is riskier."},{"type":"null","description":"Normalized 0-100 risk score. Higher is riskier."}]},"phone_type_risk":{"oneOf":[{"type":"string","description":"`Low`, `Medium` or `High`, derived from the score."},{"type":"null","description":"`Low`, `Medium` or `High`, derived from the score."}]},"phone_trust_index":{"oneOf":[{"type":"number","description":"Inverse of the score, for dashboards that prefer higher is better."},{"type":"null","description":"Inverse of the score, for dashboards that prefer higher is better."}]},"network_stability_index":{"oneOf":[{"type":"number","description":"Stability of the line's network."},{"type":"null","description":"Stability of the line's network."}]},"is_disposable":{"oneOf":[{"type":"boolean","description":"`true` when the number looks disposable or virtual."},{"type":"null","description":"`true` when the number looks disposable or virtual."}]},"is_ported":{"oneOf":[{"type":"boolean","description":"`true` when the number has moved carrier."},{"type":"null","description":"`true` when the number has moved carrier."}]},"is_recently_ported":{"oneOf":[{"type":"boolean","description":"`true` when the port happened recently."},{"type":"null","description":"`true` when the port happened recently."}]},"carrier_type":{"oneOf":[{"type":"string","description":"Line classification reported by the lookup (e.g., `mobile`)."},{"type":"null","description":"Line classification reported by the lookup (e.g., `mobile`)."}]},"reason_codes":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","description":"Stable Didit identifier of the signal, for example `IR-5AC67A32`. Opaque: group and filter on it, do not parse it."},"value":{"oneOf":[{"description":"For a risk flag (for example `voip`, `leaked`, `disposable`, `spam_trap`), its value: a boolean, a level or a date. Null for a scored reason code."},{"description":"For a risk flag (for example `voip`, `leaked`, `disposable`, `spam_trap`), its value: a boolean, a level or a date. Null for a scored reason code.","type":"null"}]},"direction":{"type":"string","enum":["risk","trust"],"description":"Whether the signal raised the risk or added trust."},"message":{"type":"string","description":"Human-readable explanation of the signal, in English."},"impact_level":{"oneOf":[{"type":"string","description":"How strongly the signal moved the score, for example `low`, `medium` or `high`."},{"type":"null","description":"How strongly the signal moved the score, for example `low`, `medium` or `high`."}]}}},"description":"Signals that explain the score, each with a stable Didit code, a direction, a message and an impact level. New codes can appear over time, so do not reject unknown codes."}}},"phone_social":{"oneOf":[{"type":"object","description":"Social footprint of the number. Present only when the social footprint add-on ran for this number.","properties":{"profiles_registered":{"oneOf":[{"type":"integer","description":"Platforms where the phone number is confirmed registered.","example":5},{"type":"null","description":"Platforms where the phone number is confirmed registered.","example":5}]},"profiles_checked":{"oneOf":[{"type":"integer","description":"Platforms evaluated for registration.","example":14},{"type":"null","description":"Platforms evaluated for registration.","example":14}]},"names_found":{"oneOf":[{"type":"integer","description":"Platforms that returned an associated name.","example":0},{"type":"null","description":"Platforms that returned an associated name.","example":0}]},"photos_found":{"oneOf":[{"type":"integer","description":"Platforms that returned a profile photo.","example":0},{"type":"null","description":"Platforms that returned a profile photo.","example":0}]},"communication_breadth":{"oneOf":[{"type":"integer","description":"Communication platforms with detected presence.","example":2},{"type":"null","description":"Communication platforms with detected presence.","example":2}]},"digital_footprint_diversity":{"oneOf":[{"type":"integer","description":"Distinct platform categories with detected presence.","example":5},{"type":"null","description":"Distinct platform categories with detected presence.","example":5}]},"digital_sophistication_index":{"oneOf":[{"type":"integer","description":"Composite digital-maturity indicator, 0-10.","example":5},{"type":"null","description":"Composite digital-maturity indicator, 0-10.","example":5}]},"engagement_depth_index":{"oneOf":[{"type":"integer","description":"Profile-richness indicator, 0-10.","example":3},{"type":"null","description":"Profile-richness indicator, 0-10.","example":3}]},"subscription_affordability_index":{"oneOf":[{"type":"integer","description":"Free vs paid platform mix, 0-10.","example":2},{"type":"null","description":"Free vs paid platform mix, 0-10.","example":2}]},"free_platforms":{"oneOf":[{"type":"integer","description":"Registrations on free platforms.","example":4},{"type":"null","description":"Registrations on free platforms.","example":4}]},"full_paid_platforms":{"oneOf":[{"type":"integer","description":"Registrations on fully paid platforms.","example":0},{"type":"null","description":"Registrations on fully paid platforms.","example":0}]},"partial_paid_platforms":{"oneOf":[{"type":"integer","description":"Registrations on freemium platforms.","example":1},{"type":"null","description":"Registrations on freemium platforms.","example":1}]},"whatsapp_profile_completeness":{"oneOf":[{"type":"string","enum":["Basic","Partial","Complete","Not Present",null],"description":"Completeness of the WhatsApp profile. Phone only; null for email.","example":"Partial"},{"type":"null","enum":["Basic","Partial","Complete","Not Present",null],"description":"Completeness of the WhatsApp profile. Phone only; null for email.","example":"Partial"}]},"registered_platforms":{"type":"array","description":"Platforms where registration is confirmed.","items":{"type":"object","properties":{"platform":{"type":"string","description":"Platform identifier.","example":"whatsapp"},"category":{"type":"string","description":"Platform category, e.g. MESSAGING, SOCIAL_MEDIA, ECOMMERCE, PROFESSIONAL, EMAIL_PROVIDER.","example":"MESSAGING"},"scope":{"type":"string","enum":["global","local"],"description":"`global` for worldwide platforms, `local` for region-specific ones.","example":"global"}}}},"not_registered_platforms":{"type":"array","description":"Platforms checked with a negative result.","items":{"type":"object","properties":{"platform":{"type":"string","description":"Platform identifier.","example":"whatsapp"},"category":{"type":"string","description":"Platform category, e.g. MESSAGING, SOCIAL_MEDIA, ECOMMERCE, PROFESSIONAL, EMAIL_PROVIDER.","example":"MESSAGING"},"scope":{"type":"string","enum":["global","local"],"description":"`global` for worldwide platforms, `local` for region-specific ones.","example":"global"}}}},"categories":{"type":"object","description":"Registered count and ratio per platform category.","additionalProperties":{"type":"object","properties":{"registered":{"oneOf":[{"type":"integer","description":"Platforms in this category where registration is confirmed.","example":2},{"type":"null","description":"Platforms in this category where registration is confirmed.","example":2}]},"ratio":{"oneOf":[{"type":"number","format":"float","description":"Share of the category's checked platforms with a registration, 0.0-1.0.","example":0.6667},{"type":"null","format":"float","description":"Share of the category's checked platforms with a registration, 0.0-1.0.","example":0.6667}]}}}},"profiles":{"type":"object","description":"Per-platform profile details, keyed by platform, when the platform exposes them.","additionalProperties":{"type":"object","properties":{"name":{"oneOf":[{"type":"string","description":"Profile name, when the platform exposes one."},{"type":"null","description":"Profile name, when the platform exposes one."}]},"photo":{"oneOf":[{"type":"string","description":"Profile photo URL, when the platform exposes one."},{"type":"null","description":"Profile photo URL, when the platform exposes one."}]},"about":{"oneOf":[{"type":"string","description":"Profile about/bio text, when the platform exposes one."},{"type":"null","description":"Profile about/bio text, when the platform exposes one."}]},"privacy_status":{"oneOf":[{"type":"string","enum":["PUBLIC","PRIVATE",null],"description":"Profile visibility, when the platform exposes it."},{"type":"null","enum":["PUBLIC","PRIVATE",null],"description":"Profile visibility, when the platform exposes it."}]},"business_account":{"oneOf":[{"type":"boolean","description":"Whether the profile is a business account, when the platform exposes it."},{"type":"null","description":"Whether the profile is a business account, when the platform exposes it."}]}}}}}},{"type":"null","description":"Social footprint of the number. Present only when the social footprint add-on ran for this number.","properties":{"profiles_registered":{"oneOf":[{"type":"integer","description":"Platforms where the phone number is confirmed registered.","example":5},{"type":"null","description":"Platforms where the phone number is confirmed registered.","example":5}]},"profiles_checked":{"oneOf":[{"type":"integer","description":"Platforms evaluated for registration.","example":14},{"type":"null","description":"Platforms evaluated for registration.","example":14}]},"names_found":{"oneOf":[{"type":"integer","description":"Platforms that returned an associated name.","example":0},{"type":"null","description":"Platforms that returned an associated name.","example":0}]},"photos_found":{"oneOf":[{"type":"integer","description":"Platforms that returned a profile photo.","example":0},{"type":"null","description":"Platforms that returned a profile photo.","example":0}]},"communication_breadth":{"oneOf":[{"type":"integer","description":"Communication platforms with detected presence.","example":2},{"type":"null","description":"Communication platforms with detected presence.","example":2}]},"digital_footprint_diversity":{"oneOf":[{"type":"integer","description":"Distinct platform categories with detected presence.","example":5},{"type":"null","description":"Distinct platform categories with detected presence.","example":5}]},"digital_sophistication_index":{"oneOf":[{"type":"integer","description":"Composite digital-maturity indicator, 0-10.","example":5},{"type":"null","description":"Composite digital-maturity indicator, 0-10.","example":5}]},"engagement_depth_index":{"oneOf":[{"type":"integer","description":"Profile-richness indicator, 0-10.","example":3},{"type":"null","description":"Profile-richness indicator, 0-10.","example":3}]},"subscription_affordability_index":{"oneOf":[{"type":"integer","description":"Free vs paid platform mix, 0-10.","example":2},{"type":"null","description":"Free vs paid platform mix, 0-10.","example":2}]},"free_platforms":{"oneOf":[{"type":"integer","description":"Registrations on free platforms.","example":4},{"type":"null","description":"Registrations on free platforms.","example":4}]},"full_paid_platforms":{"oneOf":[{"type":"integer","description":"Registrations on fully paid platforms.","example":0},{"type":"null","description":"Registrations on fully paid platforms.","example":0}]},"partial_paid_platforms":{"oneOf":[{"type":"integer","description":"Registrations on freemium platforms.","example":1},{"type":"null","description":"Registrations on freemium platforms.","example":1}]},"whatsapp_profile_completeness":{"oneOf":[{"type":"string","enum":["Basic","Partial","Complete","Not Present",null],"description":"Completeness of the WhatsApp profile. Phone only; null for email.","example":"Partial"},{"type":"null","enum":["Basic","Partial","Complete","Not Present",null],"description":"Completeness of the WhatsApp profile. Phone only; null for email.","example":"Partial"}]},"registered_platforms":{"type":"array","description":"Platforms where registration is confirmed.","items":{"type":"object","properties":{"platform":{"type":"string","description":"Platform identifier.","example":"whatsapp"},"category":{"type":"string","description":"Platform category, e.g. MESSAGING, SOCIAL_MEDIA, ECOMMERCE, PROFESSIONAL, EMAIL_PROVIDER.","example":"MESSAGING"},"scope":{"type":"string","enum":["global","local"],"description":"`global` for worldwide platforms, `local` for region-specific ones.","example":"global"}}}},"not_registered_platforms":{"type":"array","description":"Platforms checked with a negative result.","items":{"type":"object","properties":{"platform":{"type":"string","description":"Platform identifier.","example":"whatsapp"},"category":{"type":"string","description":"Platform category, e.g. MESSAGING, SOCIAL_MEDIA, ECOMMERCE, PROFESSIONAL, EMAIL_PROVIDER.","example":"MESSAGING"},"scope":{"type":"string","enum":["global","local"],"description":"`global` for worldwide platforms, `local` for region-specific ones.","example":"global"}}}},"categories":{"type":"object","description":"Registered count and ratio per platform category.","additionalProperties":{"type":"object","properties":{"registered":{"oneOf":[{"type":"integer","description":"Platforms in this category where registration is confirmed.","example":2},{"type":"null","description":"Platforms in this category where registration is confirmed.","example":2}]},"ratio":{"oneOf":[{"type":"number","format":"float","description":"Share of the category's checked platforms with a registration, 0.0-1.0.","example":0.6667},{"type":"null","format":"float","description":"Share of the category's checked platforms with a registration, 0.0-1.0.","example":0.6667}]}}}},"profiles":{"type":"object","description":"Per-platform profile details, keyed by platform, when the platform exposes them.","additionalProperties":{"type":"object","properties":{"name":{"oneOf":[{"type":"string","description":"Profile name, when the platform exposes one."},{"type":"null","description":"Profile name, when the platform exposes one."}]},"photo":{"oneOf":[{"type":"string","description":"Profile photo URL, when the platform exposes one."},{"type":"null","description":"Profile photo URL, when the platform exposes one."}]},"about":{"oneOf":[{"type":"string","description":"Profile about/bio text, when the platform exposes one."},{"type":"null","description":"Profile about/bio text, when the platform exposes one."}]},"privacy_status":{"oneOf":[{"type":"string","enum":["PUBLIC","PRIVATE",null],"description":"Profile visibility, when the platform exposes it."},{"type":"null","enum":["PUBLIC","PRIVATE",null],"description":"Profile visibility, when the platform exposes it."}]},"business_account":{"oneOf":[{"type":"boolean","description":"Whether the profile is a business account, when the platform exposes it."},{"type":"null","description":"Whether the profile is a business account, when the platform exposes it."}]}}}}}}]}}},"uniqueKey":"phone_verifications.oneOf.1","typeLabel":"null"}],"uniqueKey":"phone_verifications","typeLabel":"object[] | null"},"email_verifications":{"oneOf":[{"type":"array","description":"**Array of email verification reports** — always a JSON array, never a singular `email` object. `null` until at least one email step has produced data. Each item is the full report, including `node_id`, feature-level `status`, the email address, breach data, `lifecycle[]`, `matches[]`, and `warnings[]`.","items":{"type":"object","properties":{"node_id":{"type":"string","description":"Unique identifier for this email step in the workflow graph.","uniqueKey":"email_verifications.oneOf.0.items.[INDEX].node_id","typeLabel":"string"},"status":{"type":"string","description":"Feature-level status of this email verification step. Independent of the top-level session `status` — a session can reach its overall decision while an individual feature stays `In Review`.","enum":["Not Finished","Approved","Declined","In Review","Expired"],"uniqueKey":"email_verifications.oneOf.0.items.[INDEX].status","typeLabel":"enum\u003cstring>"},"email":{"type":"string","description":"The email address being verified","uniqueKey":"email_verifications.oneOf.0.items.[INDEX].email","typeLabel":"string"},"is_breached":{"type":"boolean","description":"Indicates if the email was found in known data breaches","uniqueKey":"email_verifications.oneOf.0.items.[INDEX].is_breached","typeLabel":"boolean"},"breaches":{"type":"array","description":"List of known breaches this email was found in","items":{"type":"object","properties":{"name":{"type":"string","description":"Name of the breach","uniqueKey":"email_verifications.oneOf.0.items.[INDEX].breaches.items.[INDEX].name","typeLabel":"string"},"domain":{"type":"string","description":"Domain affected by the breach","uniqueKey":"email_verifications.oneOf.0.items.[INDEX].breaches.items.[INDEX].domain","typeLabel":"string"},"logo_path":{"type":"string","description":"URL to the logo of the breached service","uniqueKey":"email_verifications.oneOf.0.items.[INDEX].breaches.items.[INDEX].logo_path","typeLabel":"string"},"breach_date":{"type":"string","format":"date","description":"Date when the breach occurred","uniqueKey":"email_verifications.oneOf.0.items.[INDEX].breaches.items.[INDEX].breach_date","typeLabel":"string\u003cdate>"},"description":{"type":"string","description":"Description of the breach","uniqueKey":"email_verifications.oneOf.0.items.[INDEX].breaches.items.[INDEX].description","typeLabel":"string"},"is_verified":{"type":"boolean","description":"Whether the breach is verified","uniqueKey":"email_verifications.oneOf.0.items.[INDEX].breaches.items.[INDEX].is_verified","typeLabel":"boolean"},"data_classes":{"type":"array","description":"Types of data exposed in the breach","items":{"type":"string","uniqueKey":"email_verifications.oneOf.0.items.[INDEX].breaches.items.[INDEX].data_classes.items.[INDEX]","typeLabel":"string"},"uniqueKey":"email_verifications.oneOf.0.items.[INDEX].breaches.items.[INDEX].data_classes","typeLabel":"string[]"},"breach_emails_count":{"type":"integer","description":"Number of email addresses affected in the breach","uniqueKey":"email_verifications.oneOf.0.items.[INDEX].breaches.items.[INDEX].breach_emails_count","typeLabel":"integer"}},"uniqueKey":"email_verifications.oneOf.0.items.[INDEX].breaches.items.[INDEX]","typeLabel":"object"},"uniqueKey":"email_verifications.oneOf.0.items.[INDEX].breaches","typeLabel":"object[]"},"is_disposable":{"type":"boolean","description":"Indicates if the email is from a disposable provider","uniqueKey":"email_verifications.oneOf.0.items.[INDEX].is_disposable","typeLabel":"boolean"},"is_undeliverable":{"type":"boolean","description":"Indicates if the email address is undeliverable","uniqueKey":"email_verifications.oneOf.0.items.[INDEX].is_undeliverable","typeLabel":"boolean"},"verification_attempts":{"type":"integer","description":"Number of verification attempts for this email","uniqueKey":"email_verifications.oneOf.0.items.[INDEX].verification_attempts","typeLabel":"integer"},"verified_at":{"type":"string","format":"date-time","description":"Timestamp when the email was verified","uniqueKey":"email_verifications.oneOf.0.items.[INDEX].verified_at","typeLabel":"string\u003cdate-time>"},"warnings":{"type":"array","description":"List of warnings related to email verification","items":{"type":"object","properties":{"feature":{"type":"string","enum":["ID_VERIFICATION","NFC","LIVENESS","FACEMATCH","PROOF_OF_ADDRESS","PHONE","EMAIL","AML","LOCATION","DATABASE_VALIDATION","QUESTIONNAIRE","DOCUMENT_AI","KYB_REGISTRY","KYB_DOCUMENTS","KYB_KEY_PEOPLE","GEOLOCATION","SIGNATURE"],"description":"The feature that generated this warning. The value identifies the feature block the warning belongs to. Each module's warnings array typically uses the value matching its module (e.g. `PHONE` inside `phone_verifications[].warnings`), but the enum above is authoritative across all feature warnings on the decision payload.","uniqueKey":"email_verifications.oneOf.0.items.[INDEX].warnings.items.[INDEX].feature","typeLabel":"enum\u003cstring>"},"risk":{"type":"string","uniqueKey":"email_verifications.oneOf.0.items.[INDEX].warnings.items.[INDEX].risk","typeLabel":"string"},"additional_data":{"oneOf":[{"type":"object","uniqueKey":"email_verifications.oneOf.0.items.[INDEX].warnings.items.[INDEX].additional_data.oneOf.0","typeLabel":"object"},{"type":"null","uniqueKey":"email_verifications.oneOf.0.items.[INDEX].warnings.items.[INDEX].additional_data.oneOf.1","typeLabel":"null"}],"uniqueKey":"email_verifications.oneOf.0.items.[INDEX].warnings.items.[INDEX].additional_data","typeLabel":"object | null"},"log_type":{"type":"string","uniqueKey":"email_verifications.oneOf.0.items.[INDEX].warnings.items.[INDEX].log_type","typeLabel":"string"},"short_description":{"type":"string","uniqueKey":"email_verifications.oneOf.0.items.[INDEX].warnings.items.[INDEX].short_description","typeLabel":"string"},"long_description":{"type":"string","uniqueKey":"email_verifications.oneOf.0.items.[INDEX].warnings.items.[INDEX].long_description","typeLabel":"string"},"node_id":{"type":"string","description":"The workflow graph node ID that generated this warning","uniqueKey":"email_verifications.oneOf.0.items.[INDEX].warnings.items.[INDEX].node_id","typeLabel":"string"}},"uniqueKey":"email_verifications.oneOf.0.items.[INDEX].warnings.items.[INDEX]","typeLabel":"object"},"uniqueKey":"email_verifications.oneOf.0.items.[INDEX].warnings","typeLabel":"object[]"},"lifecycle":{"type":"array","description":"Chronological list of events in the email verification lifecycle.","items":{"type":"object","properties":{"type":{"type":"string","uniqueKey":"email_verifications.oneOf.0.items.[INDEX].lifecycle.items.[INDEX].type","typeLabel":"string"},"timestamp":{"type":"string","format":"date-time","uniqueKey":"email_verifications.oneOf.0.items.[INDEX].lifecycle.items.[INDEX].timestamp","typeLabel":"string\u003cdate-time>"},"details":{"oneOf":[{"type":"object","description":"Event-specific payload. Send events carry `status`, `reason`; code-check events carry `code_tried`, `status`; final status events carry `reason` — or `null` when there is no reason to report (e.g. `EMAIL_VERIFICATION_APPROVED`).","properties":{"status":{"type":"string","uniqueKey":"email_verifications.oneOf.0.items.[INDEX].lifecycle.items.[INDEX].details.oneOf.0.status","typeLabel":"string"},"reason":{"oneOf":[{"type":"string","uniqueKey":"email_verifications.oneOf.0.items.[INDEX].lifecycle.items.[INDEX].details.oneOf.0.reason.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"email_verifications.oneOf.0.items.[INDEX].lifecycle.items.[INDEX].details.oneOf.0.reason.oneOf.1","typeLabel":"null"}],"uniqueKey":"email_verifications.oneOf.0.items.[INDEX].lifecycle.items.[INDEX].details.oneOf.0.reason","typeLabel":"string | null"},"code_tried":{"type":"string","uniqueKey":"email_verifications.oneOf.0.items.[INDEX].lifecycle.items.[INDEX].details.oneOf.0.code_tried","typeLabel":"string"}},"uniqueKey":"email_verifications.oneOf.0.items.[INDEX].lifecycle.items.[INDEX].details.oneOf.0","typeLabel":"object"},{"type":"null","description":"Event-specific payload. Send events carry `status`, `reason`; code-check events carry `code_tried`, `status`; final status events carry `reason` — or `null` when there is no reason to report (e.g. `EMAIL_VERIFICATION_APPROVED`).","properties":{"status":{"type":"string"},"reason":{"oneOf":[{"type":"string"},{"type":"null"}]},"code_tried":{"type":"string"}},"uniqueKey":"email_verifications.oneOf.0.items.[INDEX].lifecycle.items.[INDEX].details.oneOf.1","typeLabel":"null"}],"uniqueKey":"email_verifications.oneOf.0.items.[INDEX].lifecycle.items.[INDEX].details","typeLabel":"object | null"},"fee":{"type":"number","uniqueKey":"email_verifications.oneOf.0.items.[INDEX].lifecycle.items.[INDEX].fee","typeLabel":"number"}},"uniqueKey":"email_verifications.oneOf.0.items.[INDEX].lifecycle.items.[INDEX]","typeLabel":"object"},"uniqueKey":"email_verifications.oneOf.0.items.[INDEX].lifecycle","typeLabel":"object[]"},"matches":{"type":"array","description":"Matches found for this email address. Each match has a `source`: `session` (another verification session in your application matched on the same email, returned with `session_id`/`session_number`/`vendor_data`/`verification_date`) or `list_entry` (the email is on an org-managed allow/block list — see `/management-api/lists/overview`). Cross-session matches use different `vendor_data` and are capped at 5.","items":{"type":"object","properties":{"session_id":{"oneOf":[{"type":"string","format":"uuid","uniqueKey":"email_verifications.oneOf.0.items.[INDEX].matches.items.[INDEX].session_id.oneOf.0","typeLabel":"string\u003cuuid>"},{"type":"null","format":"uuid","uniqueKey":"email_verifications.oneOf.0.items.[INDEX].matches.items.[INDEX].session_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"email_verifications.oneOf.0.items.[INDEX].matches.items.[INDEX].session_id","typeLabel":"string\u003cuuid> | null"},"session_number":{"oneOf":[{"type":"integer","uniqueKey":"email_verifications.oneOf.0.items.[INDEX].matches.items.[INDEX].session_number.oneOf.0","typeLabel":"integer"},{"type":"null","uniqueKey":"email_verifications.oneOf.0.items.[INDEX].matches.items.[INDEX].session_number.oneOf.1","typeLabel":"null"}],"uniqueKey":"email_verifications.oneOf.0.items.[INDEX].matches.items.[INDEX].session_number","typeLabel":"integer | null"},"vendor_data":{"oneOf":[{"type":"string","uniqueKey":"email_verifications.oneOf.0.items.[INDEX].matches.items.[INDEX].vendor_data.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"email_verifications.oneOf.0.items.[INDEX].matches.items.[INDEX].vendor_data.oneOf.1","typeLabel":"null"}],"uniqueKey":"email_verifications.oneOf.0.items.[INDEX].matches.items.[INDEX].vendor_data","typeLabel":"string | null"},"verification_date":{"oneOf":[{"type":"string","format":"date-time","uniqueKey":"email_verifications.oneOf.0.items.[INDEX].matches.items.[INDEX].verification_date.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","uniqueKey":"email_verifications.oneOf.0.items.[INDEX].matches.items.[INDEX].verification_date.oneOf.1","typeLabel":"null"}],"uniqueKey":"email_verifications.oneOf.0.items.[INDEX].matches.items.[INDEX].verification_date","typeLabel":"string\u003cdate-time> | null"},"email":{"type":"string","format":"email","uniqueKey":"email_verifications.oneOf.0.items.[INDEX].matches.items.[INDEX].email","typeLabel":"string\u003cemail>"},"status":{"oneOf":[{"type":"string","uniqueKey":"email_verifications.oneOf.0.items.[INDEX].matches.items.[INDEX].status.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"email_verifications.oneOf.0.items.[INDEX].matches.items.[INDEX].status.oneOf.1","typeLabel":"null"}],"uniqueKey":"email_verifications.oneOf.0.items.[INDEX].matches.items.[INDEX].status","typeLabel":"string | null"},"is_blocklisted":{"type":"boolean","uniqueKey":"email_verifications.oneOf.0.items.[INDEX].matches.items.[INDEX].is_blocklisted","typeLabel":"boolean"},"api_service":{"oneOf":[{"type":"string","uniqueKey":"email_verifications.oneOf.0.items.[INDEX].matches.items.[INDEX].api_service.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"email_verifications.oneOf.0.items.[INDEX].matches.items.[INDEX].api_service.oneOf.1","typeLabel":"null"}],"uniqueKey":"email_verifications.oneOf.0.items.[INDEX].matches.items.[INDEX].api_service","typeLabel":"string | null"},"source":{"type":"string","enum":["session","list_entry"],"description":"Where this match came from. `session` means another verification session in your application matched on this value. `list_entry` means the value was hit against an org-managed list (allowlist/blocklist) — see the management API lists overview at `/management-api/lists/overview` for how to manage those lists.","uniqueKey":"email_verifications.oneOf.0.items.[INDEX].matches.items.[INDEX].source","typeLabel":"enum\u003cstring>"}},"uniqueKey":"email_verifications.oneOf.0.items.[INDEX].matches.items.[INDEX]","typeLabel":"object"},"uniqueKey":"email_verifications.oneOf.0.items.[INDEX].matches","typeLabel":"object[]"},"email_intelligence":{"type":"object","description":"Email intelligence signals. Present only when the email intelligence add-on ran for this address.","properties":{"score":{"oneOf":[{"type":"number","description":"Normalized 0-100 risk score. Higher is riskier.","uniqueKey":"email_verifications.oneOf.0.items.[INDEX].email_intelligence.score.oneOf.0","typeLabel":"number"},{"type":"null","description":"Normalized 0-100 risk score. Higher is riskier.","uniqueKey":"email_verifications.oneOf.0.items.[INDEX].email_intelligence.score.oneOf.1","typeLabel":"null"}],"uniqueKey":"email_verifications.oneOf.0.items.[INDEX].email_intelligence.score","typeLabel":"number | null"},"deliverable":{"oneOf":[{"type":"string","description":"Deliverability band (e.g., `high`).","uniqueKey":"email_verifications.oneOf.0.items.[INDEX].email_intelligence.deliverable.oneOf.0","typeLabel":"string"},{"type":"null","description":"Deliverability band (e.g., `high`).","uniqueKey":"email_verifications.oneOf.0.items.[INDEX].email_intelligence.deliverable.oneOf.1","typeLabel":"null"}],"uniqueKey":"email_verifications.oneOf.0.items.[INDEX].email_intelligence.deliverable","typeLabel":"string | null"},"breach_risk_level":{"oneOf":[{"type":"string","description":"`Low`, `Medium` or `High`.","uniqueKey":"email_verifications.oneOf.0.items.[INDEX].email_intelligence.breach_risk_level.oneOf.0","typeLabel":"string"},{"type":"null","description":"`Low`, `Medium` or `High`.","uniqueKey":"email_verifications.oneOf.0.items.[INDEX].email_intelligence.breach_risk_level.oneOf.1","typeLabel":"null"}],"uniqueKey":"email_verifications.oneOf.0.items.[INDEX].email_intelligence.breach_risk_level","typeLabel":"string | null"},"breach_risk_index":{"oneOf":[{"type":"number","description":"Numeric breach-risk index.","uniqueKey":"email_verifications.oneOf.0.items.[INDEX].email_intelligence.breach_risk_index.oneOf.0","typeLabel":"number"},{"type":"null","description":"Numeric breach-risk index.","uniqueKey":"email_verifications.oneOf.0.items.[INDEX].email_intelligence.breach_risk_index.oneOf.1","typeLabel":"null"}],"uniqueKey":"email_verifications.oneOf.0.items.[INDEX].email_intelligence.breach_risk_index","typeLabel":"number | null"},"is_recent_breach":{"oneOf":[{"type":"boolean","description":"`true` when the address appears in a recent breach.","uniqueKey":"email_verifications.oneOf.0.items.[INDEX].email_intelligence.is_recent_breach.oneOf.0","typeLabel":"boolean"},{"type":"null","description":"`true` when the address appears in a recent breach.","uniqueKey":"email_verifications.oneOf.0.items.[INDEX].email_intelligence.is_recent_breach.oneOf.1","typeLabel":"null"}],"uniqueKey":"email_verifications.oneOf.0.items.[INDEX].email_intelligence.is_recent_breach","typeLabel":"boolean | null"},"is_frequent_breached":{"oneOf":[{"type":"boolean","description":"`true` when the address appears in many breaches.","uniqueKey":"email_verifications.oneOf.0.items.[INDEX].email_intelligence.is_frequent_breached.oneOf.0","typeLabel":"boolean"},{"type":"null","description":"`true` when the address appears in many breaches.","uniqueKey":"email_verifications.oneOf.0.items.[INDEX].email_intelligence.is_frequent_breached.oneOf.1","typeLabel":"null"}],"uniqueKey":"email_verifications.oneOf.0.items.[INDEX].email_intelligence.is_frequent_breached","typeLabel":"boolean | null"},"is_disposable":{"oneOf":[{"type":"boolean","description":"`true` when the domain is a throwaway provider.","uniqueKey":"email_verifications.oneOf.0.items.[INDEX].email_intelligence.is_disposable.oneOf.0","typeLabel":"boolean"},{"type":"null","description":"`true` when the domain is a throwaway provider.","uniqueKey":"email_verifications.oneOf.0.items.[INDEX].email_intelligence.is_disposable.oneOf.1","typeLabel":"null"}],"uniqueKey":"email_verifications.oneOf.0.items.[INDEX].email_intelligence.is_disposable","typeLabel":"boolean | null"},"is_free_domain":{"oneOf":[{"type":"boolean","description":"`true` when the domain is a free mail provider.","uniqueKey":"email_verifications.oneOf.0.items.[INDEX].email_intelligence.is_free_domain.oneOf.0","typeLabel":"boolean"},{"type":"null","description":"`true` when the domain is a free mail provider.","uniqueKey":"email_verifications.oneOf.0.items.[INDEX].email_intelligence.is_free_domain.oneOf.1","typeLabel":"null"}],"uniqueKey":"email_verifications.oneOf.0.items.[INDEX].email_intelligence.is_free_domain","typeLabel":"boolean | null"},"is_breached":{"oneOf":[{"type":"boolean","description":"`true` when the address appears in known breaches.","uniqueKey":"email_verifications.oneOf.0.items.[INDEX].email_intelligence.is_breached.oneOf.0","typeLabel":"boolean"},{"type":"null","description":"`true` when the address appears in known breaches.","uniqueKey":"email_verifications.oneOf.0.items.[INDEX].email_intelligence.is_breached.oneOf.1","typeLabel":"null"}],"uniqueKey":"email_verifications.oneOf.0.items.[INDEX].email_intelligence.is_breached","typeLabel":"boolean | null"},"no_of_breaches":{"oneOf":[{"type":"number","description":"Number of known breaches containing the address.","uniqueKey":"email_verifications.oneOf.0.items.[INDEX].email_intelligence.no_of_breaches.oneOf.0","typeLabel":"number"},{"type":"null","description":"Number of known breaches containing the address.","uniqueKey":"email_verifications.oneOf.0.items.[INDEX].email_intelligence.no_of_breaches.oneOf.1","typeLabel":"null"}],"uniqueKey":"email_verifications.oneOf.0.items.[INDEX].email_intelligence.no_of_breaches","typeLabel":"number | null"},"reason_codes":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","description":"Stable Didit identifier of the signal, for example `IR-5AC67A32`. Opaque: group and filter on it, do not parse it.","uniqueKey":"email_verifications.oneOf.0.items.[INDEX].email_intelligence.reason_codes.items.[INDEX].code","typeLabel":"string"},"value":{"oneOf":[{"description":"For a risk flag (for example `voip`, `leaked`, `disposable`, `spam_trap`), its value: a boolean, a level or a date. Null for a scored reason code.","uniqueKey":"email_verifications.oneOf.0.items.[INDEX].email_intelligence.reason_codes.items.[INDEX].value.oneOf.0","typeLabel":"any"},{"description":"For a risk flag (for example `voip`, `leaked`, `disposable`, `spam_trap`), its value: a boolean, a level or a date. Null for a scored reason code.","type":"null","uniqueKey":"email_verifications.oneOf.0.items.[INDEX].email_intelligence.reason_codes.items.[INDEX].value.oneOf.1","typeLabel":"null"}],"uniqueKey":"email_verifications.oneOf.0.items.[INDEX].email_intelligence.reason_codes.items.[INDEX].value","typeLabel":"any | null"},"direction":{"type":"string","enum":["risk","trust"],"description":"Whether the signal raised the risk or added trust.","uniqueKey":"email_verifications.oneOf.0.items.[INDEX].email_intelligence.reason_codes.items.[INDEX].direction","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"Human-readable explanation of the signal, in English.","uniqueKey":"email_verifications.oneOf.0.items.[INDEX].email_intelligence.reason_codes.items.[INDEX].message","typeLabel":"string"},"impact_level":{"oneOf":[{"type":"string","description":"How strongly the signal moved the score, for example `low`, `medium` or `high`.","uniqueKey":"email_verifications.oneOf.0.items.[INDEX].email_intelligence.reason_codes.items.[INDEX].impact_level.oneOf.0","typeLabel":"string"},{"type":"null","description":"How strongly the signal moved the score, for example `low`, `medium` or `high`.","uniqueKey":"email_verifications.oneOf.0.items.[INDEX].email_intelligence.reason_codes.items.[INDEX].impact_level.oneOf.1","typeLabel":"null"}],"uniqueKey":"email_verifications.oneOf.0.items.[INDEX].email_intelligence.reason_codes.items.[INDEX].impact_level","typeLabel":"string | null"}},"uniqueKey":"email_verifications.oneOf.0.items.[INDEX].email_intelligence.reason_codes.items.[INDEX]","typeLabel":"object"},"description":"Signals that explain the score, each with a stable Didit code, a direction, a message and an impact level. New codes can appear over time, so do not reject unknown codes.","uniqueKey":"email_verifications.oneOf.0.items.[INDEX].email_intelligence.reason_codes","typeLabel":"object[]"}},"uniqueKey":"email_verifications.oneOf.0.items.[INDEX].email_intelligence","typeLabel":"object"},"email_social":{"oneOf":[{"type":"object","description":"Social footprint of the address. Present only when the social footprint add-on ran for this address.","properties":{"profiles_registered":{"oneOf":[{"type":"integer","description":"Platforms where the email address is confirmed registered.","example":5,"uniqueKey":"email_verifications.oneOf.0.items.[INDEX].email_social.oneOf.0.profiles_registered.oneOf.0","typeLabel":"integer"},{"type":"null","description":"Platforms where the email address is confirmed registered.","example":5,"uniqueKey":"email_verifications.oneOf.0.items.[INDEX].email_social.oneOf.0.profiles_registered.oneOf.1","typeLabel":"null"}],"uniqueKey":"email_verifications.oneOf.0.items.[INDEX].email_social.oneOf.0.profiles_registered","typeLabel":"integer | null"},"profiles_checked":{"oneOf":[{"type":"integer","description":"Platforms evaluated for registration.","example":14,"uniqueKey":"email_verifications.oneOf.0.items.[INDEX].email_social.oneOf.0.profiles_checked.oneOf.0","typeLabel":"integer"},{"type":"null","description":"Platforms evaluated for registration.","example":14,"uniqueKey":"email_verifications.oneOf.0.items.[INDEX].email_social.oneOf.0.profiles_checked.oneOf.1","typeLabel":"null"}],"uniqueKey":"email_verifications.oneOf.0.items.[INDEX].email_social.oneOf.0.profiles_checked","typeLabel":"integer | null"},"names_found":{"oneOf":[{"type":"integer","description":"Platforms that returned an associated name.","example":0,"uniqueKey":"email_verifications.oneOf.0.items.[INDEX].email_social.oneOf.0.names_found.oneOf.0","typeLabel":"integer"},{"type":"null","description":"Platforms that returned an associated name.","example":0,"uniqueKey":"email_verifications.oneOf.0.items.[INDEX].email_social.oneOf.0.names_found.oneOf.1","typeLabel":"null"}],"uniqueKey":"email_verifications.oneOf.0.items.[INDEX].email_social.oneOf.0.names_found","typeLabel":"integer | null"},"photos_found":{"oneOf":[{"type":"integer","description":"Platforms that returned a profile photo.","example":0,"uniqueKey":"email_verifications.oneOf.0.items.[INDEX].email_social.oneOf.0.photos_found.oneOf.0","typeLabel":"integer"},{"type":"null","description":"Platforms that returned a profile photo.","example":0,"uniqueKey":"email_verifications.oneOf.0.items.[INDEX].email_social.oneOf.0.photos_found.oneOf.1","typeLabel":"null"}],"uniqueKey":"email_verifications.oneOf.0.items.[INDEX].email_social.oneOf.0.photos_found","typeLabel":"integer | null"},"communication_breadth":{"oneOf":[{"type":"integer","description":"Communication platforms with detected presence.","example":2,"uniqueKey":"email_verifications.oneOf.0.items.[INDEX].email_social.oneOf.0.communication_breadth.oneOf.0","typeLabel":"integer"},{"type":"null","description":"Communication platforms with detected presence.","example":2,"uniqueKey":"email_verifications.oneOf.0.items.[INDEX].email_social.oneOf.0.communication_breadth.oneOf.1","typeLabel":"null"}],"uniqueKey":"email_verifications.oneOf.0.items.[INDEX].email_social.oneOf.0.communication_breadth","typeLabel":"integer | null"},"digital_footprint_diversity":{"oneOf":[{"type":"integer","description":"Distinct platform categories with detected presence.","example":5,"uniqueKey":"email_verifications.oneOf.0.items.[INDEX].email_social.oneOf.0.digital_footprint_diversity.oneOf.0","typeLabel":"integer"},{"type":"null","description":"Distinct platform categories with detected presence.","example":5,"uniqueKey":"email_verifications.oneOf.0.items.[INDEX].email_social.oneOf.0.digital_footprint_diversity.oneOf.1","typeLabel":"null"}],"uniqueKey":"email_verifications.oneOf.0.items.[INDEX].email_social.oneOf.0.digital_footprint_diversity","typeLabel":"integer | null"},"digital_sophistication_index":{"oneOf":[{"type":"integer","description":"Composite digital-maturity indicator, 0-10.","example":5,"uniqueKey":"email_verifications.oneOf.0.items.[INDEX].email_social.oneOf.0.digital_sophistication_index.oneOf.0","typeLabel":"integer"},{"type":"null","description":"Composite digital-maturity indicator, 0-10.","example":5,"uniqueKey":"email_verifications.oneOf.0.items.[INDEX].email_social.oneOf.0.digital_sophistication_index.oneOf.1","typeLabel":"null"}],"uniqueKey":"email_verifications.oneOf.0.items.[INDEX].email_social.oneOf.0.digital_sophistication_index","typeLabel":"integer | null"},"engagement_depth_index":{"oneOf":[{"type":"integer","description":"Profile-richness indicator, 0-10.","example":3,"uniqueKey":"email_verifications.oneOf.0.items.[INDEX].email_social.oneOf.0.engagement_depth_index.oneOf.0","typeLabel":"integer"},{"type":"null","description":"Profile-richness indicator, 0-10.","example":3,"uniqueKey":"email_verifications.oneOf.0.items.[INDEX].email_social.oneOf.0.engagement_depth_index.oneOf.1","typeLabel":"null"}],"uniqueKey":"email_verifications.oneOf.0.items.[INDEX].email_social.oneOf.0.engagement_depth_index","typeLabel":"integer | null"},"subscription_affordability_index":{"oneOf":[{"type":"integer","description":"Free vs paid platform mix, 0-10.","example":2,"uniqueKey":"email_verifications.oneOf.0.items.[INDEX].email_social.oneOf.0.subscription_affordability_index.oneOf.0","typeLabel":"integer"},{"type":"null","description":"Free vs paid platform mix, 0-10.","example":2,"uniqueKey":"email_verifications.oneOf.0.items.[INDEX].email_social.oneOf.0.subscription_affordability_index.oneOf.1","typeLabel":"null"}],"uniqueKey":"email_verifications.oneOf.0.items.[INDEX].email_social.oneOf.0.subscription_affordability_index","typeLabel":"integer | null"},"free_platforms":{"oneOf":[{"type":"integer","description":"Registrations on free platforms.","example":4,"uniqueKey":"email_verifications.oneOf.0.items.[INDEX].email_social.oneOf.0.free_platforms.oneOf.0","typeLabel":"integer"},{"type":"null","description":"Registrations on free platforms.","example":4,"uniqueKey":"email_verifications.oneOf.0.items.[INDEX].email_social.oneOf.0.free_platforms.oneOf.1","typeLabel":"null"}],"uniqueKey":"email_verifications.oneOf.0.items.[INDEX].email_social.oneOf.0.free_platforms","typeLabel":"integer | null"},"full_paid_platforms":{"oneOf":[{"type":"integer","description":"Registrations on fully paid platforms.","example":0,"uniqueKey":"email_verifications.oneOf.0.items.[INDEX].email_social.oneOf.0.full_paid_platforms.oneOf.0","typeLabel":"integer"},{"type":"null","description":"Registrations on fully paid platforms.","example":0,"uniqueKey":"email_verifications.oneOf.0.items.[INDEX].email_social.oneOf.0.full_paid_platforms.oneOf.1","typeLabel":"null"}],"uniqueKey":"email_verifications.oneOf.0.items.[INDEX].email_social.oneOf.0.full_paid_platforms","typeLabel":"integer | null"},"partial_paid_platforms":{"oneOf":[{"type":"integer","description":"Registrations on freemium platforms.","example":1,"uniqueKey":"email_verifications.oneOf.0.items.[INDEX].email_social.oneOf.0.partial_paid_platforms.oneOf.0","typeLabel":"integer"},{"type":"null","description":"Registrations on freemium platforms.","example":1,"uniqueKey":"email_verifications.oneOf.0.items.[INDEX].email_social.oneOf.0.partial_paid_platforms.oneOf.1","typeLabel":"null"}],"uniqueKey":"email_verifications.oneOf.0.items.[INDEX].email_social.oneOf.0.partial_paid_platforms","typeLabel":"integer | null"},"whatsapp_profile_completeness":{"oneOf":[{"type":"string","enum":["Basic","Partial","Complete","Not Present",null],"description":"Completeness of the WhatsApp profile. Phone only; null for email.","example":"Partial","uniqueKey":"email_verifications.oneOf.0.items.[INDEX].email_social.oneOf.0.whatsapp_profile_completeness.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["Basic","Partial","Complete","Not Present",null],"description":"Completeness of the WhatsApp profile. Phone only; null for email.","example":"Partial","uniqueKey":"email_verifications.oneOf.0.items.[INDEX].email_social.oneOf.0.whatsapp_profile_completeness.oneOf.1","typeLabel":"null"}],"uniqueKey":"email_verifications.oneOf.0.items.[INDEX].email_social.oneOf.0.whatsapp_profile_completeness","typeLabel":"enum\u003cstring> | null"},"registered_platforms":{"type":"array","description":"Platforms where registration is confirmed.","items":{"type":"object","properties":{"platform":{"type":"string","description":"Platform identifier.","example":"whatsapp","uniqueKey":"email_verifications.oneOf.0.items.[INDEX].email_social.oneOf.0.registered_platforms.items.[INDEX].platform","typeLabel":"string"},"category":{"type":"string","description":"Platform category, e.g. MESSAGING, SOCIAL_MEDIA, ECOMMERCE, PROFESSIONAL, EMAIL_PROVIDER.","example":"MESSAGING","uniqueKey":"email_verifications.oneOf.0.items.[INDEX].email_social.oneOf.0.registered_platforms.items.[INDEX].category","typeLabel":"string"},"scope":{"type":"string","enum":["global","local"],"description":"`global` for worldwide platforms, `local` for region-specific ones.","example":"global","uniqueKey":"email_verifications.oneOf.0.items.[INDEX].email_social.oneOf.0.registered_platforms.items.[INDEX].scope","typeLabel":"enum\u003cstring>"}},"uniqueKey":"email_verifications.oneOf.0.items.[INDEX].email_social.oneOf.0.registered_platforms.items.[INDEX]","typeLabel":"object"},"uniqueKey":"email_verifications.oneOf.0.items.[INDEX].email_social.oneOf.0.registered_platforms","typeLabel":"object[]"},"not_registered_platforms":{"type":"array","description":"Platforms checked with a negative result.","items":{"type":"object","properties":{"platform":{"type":"string","description":"Platform identifier.","example":"whatsapp","uniqueKey":"email_verifications.oneOf.0.items.[INDEX].email_social.oneOf.0.not_registered_platforms.items.[INDEX].platform","typeLabel":"string"},"category":{"type":"string","description":"Platform category, e.g. MESSAGING, SOCIAL_MEDIA, ECOMMERCE, PROFESSIONAL, EMAIL_PROVIDER.","example":"MESSAGING","uniqueKey":"email_verifications.oneOf.0.items.[INDEX].email_social.oneOf.0.not_registered_platforms.items.[INDEX].category","typeLabel":"string"},"scope":{"type":"string","enum":["global","local"],"description":"`global` for worldwide platforms, `local` for region-specific ones.","example":"global","uniqueKey":"email_verifications.oneOf.0.items.[INDEX].email_social.oneOf.0.not_registered_platforms.items.[INDEX].scope","typeLabel":"enum\u003cstring>"}},"uniqueKey":"email_verifications.oneOf.0.items.[INDEX].email_social.oneOf.0.not_registered_platforms.items.[INDEX]","typeLabel":"object"},"uniqueKey":"email_verifications.oneOf.0.items.[INDEX].email_social.oneOf.0.not_registered_platforms","typeLabel":"object[]"},"categories":{"type":"object","description":"Registered count and ratio per platform category.","additionalProperties":{"type":"object","properties":{"registered":{"oneOf":[{"type":"integer","description":"Platforms in this category where registration is confirmed.","example":2,"uniqueKey":"email_verifications.oneOf.0.items.[INDEX].email_social.oneOf.0.categories.additionalProperties.registered.oneOf.0","typeLabel":"integer"},{"type":"null","description":"Platforms in this category where registration is confirmed.","example":2,"uniqueKey":"email_verifications.oneOf.0.items.[INDEX].email_social.oneOf.0.categories.additionalProperties.registered.oneOf.1","typeLabel":"null"}],"uniqueKey":"email_verifications.oneOf.0.items.[INDEX].email_social.oneOf.0.categories.additionalProperties.registered","typeLabel":"integer | null"},"ratio":{"oneOf":[{"type":"number","format":"float","description":"Share of the category's checked platforms with a registration, 0.0-1.0.","example":0.6667,"uniqueKey":"email_verifications.oneOf.0.items.[INDEX].email_social.oneOf.0.categories.additionalProperties.ratio.oneOf.0","typeLabel":"number\u003cfloat>"},{"type":"null","format":"float","description":"Share of the category's checked platforms with a registration, 0.0-1.0.","example":0.6667,"uniqueKey":"email_verifications.oneOf.0.items.[INDEX].email_social.oneOf.0.categories.additionalProperties.ratio.oneOf.1","typeLabel":"null"}],"uniqueKey":"email_verifications.oneOf.0.items.[INDEX].email_social.oneOf.0.categories.additionalProperties.ratio","typeLabel":"number\u003cfloat> | null"}},"uniqueKey":"email_verifications.oneOf.0.items.[INDEX].email_social.oneOf.0.categories.additionalProperties","typeLabel":"object"},"uniqueKey":"email_verifications.oneOf.0.items.[INDEX].email_social.oneOf.0.categories","typeLabel":"object"},"profiles":{"type":"object","description":"Per-platform profile details, keyed by platform, when the platform exposes them.","additionalProperties":{"type":"object","properties":{"name":{"oneOf":[{"type":"string","description":"Profile name, when the platform exposes one.","uniqueKey":"email_verifications.oneOf.0.items.[INDEX].email_social.oneOf.0.profiles.additionalProperties.name.oneOf.0","typeLabel":"string"},{"type":"null","description":"Profile name, when the platform exposes one.","uniqueKey":"email_verifications.oneOf.0.items.[INDEX].email_social.oneOf.0.profiles.additionalProperties.name.oneOf.1","typeLabel":"null"}],"uniqueKey":"email_verifications.oneOf.0.items.[INDEX].email_social.oneOf.0.profiles.additionalProperties.name","typeLabel":"string | null"},"photo":{"oneOf":[{"type":"string","description":"Profile photo URL, when the platform exposes one.","uniqueKey":"email_verifications.oneOf.0.items.[INDEX].email_social.oneOf.0.profiles.additionalProperties.photo.oneOf.0","typeLabel":"string"},{"type":"null","description":"Profile photo URL, when the platform exposes one.","uniqueKey":"email_verifications.oneOf.0.items.[INDEX].email_social.oneOf.0.profiles.additionalProperties.photo.oneOf.1","typeLabel":"null"}],"uniqueKey":"email_verifications.oneOf.0.items.[INDEX].email_social.oneOf.0.profiles.additionalProperties.photo","typeLabel":"string | null"},"about":{"oneOf":[{"type":"string","description":"Profile about/bio text, when the platform exposes one.","uniqueKey":"email_verifications.oneOf.0.items.[INDEX].email_social.oneOf.0.profiles.additionalProperties.about.oneOf.0","typeLabel":"string"},{"type":"null","description":"Profile about/bio text, when the platform exposes one.","uniqueKey":"email_verifications.oneOf.0.items.[INDEX].email_social.oneOf.0.profiles.additionalProperties.about.oneOf.1","typeLabel":"null"}],"uniqueKey":"email_verifications.oneOf.0.items.[INDEX].email_social.oneOf.0.profiles.additionalProperties.about","typeLabel":"string | null"},"privacy_status":{"oneOf":[{"type":"string","enum":["PUBLIC","PRIVATE",null],"description":"Profile visibility, when the platform exposes it.","uniqueKey":"email_verifications.oneOf.0.items.[INDEX].email_social.oneOf.0.profiles.additionalProperties.privacy_status.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["PUBLIC","PRIVATE",null],"description":"Profile visibility, when the platform exposes it.","uniqueKey":"email_verifications.oneOf.0.items.[INDEX].email_social.oneOf.0.profiles.additionalProperties.privacy_status.oneOf.1","typeLabel":"null"}],"uniqueKey":"email_verifications.oneOf.0.items.[INDEX].email_social.oneOf.0.profiles.additionalProperties.privacy_status","typeLabel":"enum\u003cstring> | null"},"business_account":{"oneOf":[{"type":"boolean","description":"Whether the profile is a business account, when the platform exposes it.","uniqueKey":"email_verifications.oneOf.0.items.[INDEX].email_social.oneOf.0.profiles.additionalProperties.business_account.oneOf.0","typeLabel":"boolean"},{"type":"null","description":"Whether the profile is a business account, when the platform exposes it.","uniqueKey":"email_verifications.oneOf.0.items.[INDEX].email_social.oneOf.0.profiles.additionalProperties.business_account.oneOf.1","typeLabel":"null"}],"uniqueKey":"email_verifications.oneOf.0.items.[INDEX].email_social.oneOf.0.profiles.additionalProperties.business_account","typeLabel":"boolean | null"}},"uniqueKey":"email_verifications.oneOf.0.items.[INDEX].email_social.oneOf.0.profiles.additionalProperties","typeLabel":"object"},"uniqueKey":"email_verifications.oneOf.0.items.[INDEX].email_social.oneOf.0.profiles","typeLabel":"object"}},"uniqueKey":"email_verifications.oneOf.0.items.[INDEX].email_social.oneOf.0","typeLabel":"object"},{"type":"null","description":"Social footprint of the address. Present only when the social footprint add-on ran for this address.","properties":{"profiles_registered":{"oneOf":[{"type":"integer","description":"Platforms where the email address is confirmed registered.","example":5},{"type":"null","description":"Platforms where the email address is confirmed registered.","example":5}]},"profiles_checked":{"oneOf":[{"type":"integer","description":"Platforms evaluated for registration.","example":14},{"type":"null","description":"Platforms evaluated for registration.","example":14}]},"names_found":{"oneOf":[{"type":"integer","description":"Platforms that returned an associated name.","example":0},{"type":"null","description":"Platforms that returned an associated name.","example":0}]},"photos_found":{"oneOf":[{"type":"integer","description":"Platforms that returned a profile photo.","example":0},{"type":"null","description":"Platforms that returned a profile photo.","example":0}]},"communication_breadth":{"oneOf":[{"type":"integer","description":"Communication platforms with detected presence.","example":2},{"type":"null","description":"Communication platforms with detected presence.","example":2}]},"digital_footprint_diversity":{"oneOf":[{"type":"integer","description":"Distinct platform categories with detected presence.","example":5},{"type":"null","description":"Distinct platform categories with detected presence.","example":5}]},"digital_sophistication_index":{"oneOf":[{"type":"integer","description":"Composite digital-maturity indicator, 0-10.","example":5},{"type":"null","description":"Composite digital-maturity indicator, 0-10.","example":5}]},"engagement_depth_index":{"oneOf":[{"type":"integer","description":"Profile-richness indicator, 0-10.","example":3},{"type":"null","description":"Profile-richness indicator, 0-10.","example":3}]},"subscription_affordability_index":{"oneOf":[{"type":"integer","description":"Free vs paid platform mix, 0-10.","example":2},{"type":"null","description":"Free vs paid platform mix, 0-10.","example":2}]},"free_platforms":{"oneOf":[{"type":"integer","description":"Registrations on free platforms.","example":4},{"type":"null","description":"Registrations on free platforms.","example":4}]},"full_paid_platforms":{"oneOf":[{"type":"integer","description":"Registrations on fully paid platforms.","example":0},{"type":"null","description":"Registrations on fully paid platforms.","example":0}]},"partial_paid_platforms":{"oneOf":[{"type":"integer","description":"Registrations on freemium platforms.","example":1},{"type":"null","description":"Registrations on freemium platforms.","example":1}]},"whatsapp_profile_completeness":{"oneOf":[{"type":"string","enum":["Basic","Partial","Complete","Not Present",null],"description":"Completeness of the WhatsApp profile. Phone only; null for email.","example":"Partial"},{"type":"null","enum":["Basic","Partial","Complete","Not Present",null],"description":"Completeness of the WhatsApp profile. Phone only; null for email.","example":"Partial"}]},"registered_platforms":{"type":"array","description":"Platforms where registration is confirmed.","items":{"type":"object","properties":{"platform":{"type":"string","description":"Platform identifier.","example":"whatsapp"},"category":{"type":"string","description":"Platform category, e.g. MESSAGING, SOCIAL_MEDIA, ECOMMERCE, PROFESSIONAL, EMAIL_PROVIDER.","example":"MESSAGING"},"scope":{"type":"string","enum":["global","local"],"description":"`global` for worldwide platforms, `local` for region-specific ones.","example":"global"}}}},"not_registered_platforms":{"type":"array","description":"Platforms checked with a negative result.","items":{"type":"object","properties":{"platform":{"type":"string","description":"Platform identifier.","example":"whatsapp"},"category":{"type":"string","description":"Platform category, e.g. MESSAGING, SOCIAL_MEDIA, ECOMMERCE, PROFESSIONAL, EMAIL_PROVIDER.","example":"MESSAGING"},"scope":{"type":"string","enum":["global","local"],"description":"`global` for worldwide platforms, `local` for region-specific ones.","example":"global"}}}},"categories":{"type":"object","description":"Registered count and ratio per platform category.","additionalProperties":{"type":"object","properties":{"registered":{"oneOf":[{"type":"integer","description":"Platforms in this category where registration is confirmed.","example":2},{"type":"null","description":"Platforms in this category where registration is confirmed.","example":2}]},"ratio":{"oneOf":[{"type":"number","format":"float","description":"Share of the category's checked platforms with a registration, 0.0-1.0.","example":0.6667},{"type":"null","format":"float","description":"Share of the category's checked platforms with a registration, 0.0-1.0.","example":0.6667}]}}}},"profiles":{"type":"object","description":"Per-platform profile details, keyed by platform, when the platform exposes them.","additionalProperties":{"type":"object","properties":{"name":{"oneOf":[{"type":"string","description":"Profile name, when the platform exposes one."},{"type":"null","description":"Profile name, when the platform exposes one."}]},"photo":{"oneOf":[{"type":"string","description":"Profile photo URL, when the platform exposes one."},{"type":"null","description":"Profile photo URL, when the platform exposes one."}]},"about":{"oneOf":[{"type":"string","description":"Profile about/bio text, when the platform exposes one."},{"type":"null","description":"Profile about/bio text, when the platform exposes one."}]},"privacy_status":{"oneOf":[{"type":"string","enum":["PUBLIC","PRIVATE",null],"description":"Profile visibility, when the platform exposes it."},{"type":"null","enum":["PUBLIC","PRIVATE",null],"description":"Profile visibility, when the platform exposes it."}]},"business_account":{"oneOf":[{"type":"boolean","description":"Whether the profile is a business account, when the platform exposes it."},{"type":"null","description":"Whether the profile is a business account, when the platform exposes it."}]}}}}},"uniqueKey":"email_verifications.oneOf.0.items.[INDEX].email_social.oneOf.1","typeLabel":"null"}],"uniqueKey":"email_verifications.oneOf.0.items.[INDEX].email_social","typeLabel":"object | null"}},"uniqueKey":"email_verifications.oneOf.0.items.[INDEX]","typeLabel":"object"},"uniqueKey":"email_verifications.oneOf.0","typeLabel":"object[]"},{"type":"null","description":"**Array of email verification reports** — always a JSON array, never a singular `email` object. `null` until at least one email step has produced data. Each item is the full report, including `node_id`, feature-level `status`, the email address, breach data, `lifecycle[]`, `matches[]`, and `warnings[]`.","items":{"type":"object","properties":{"node_id":{"type":"string","description":"Unique identifier for this email step in the workflow graph."},"status":{"type":"string","description":"Feature-level status of this email verification step. Independent of the top-level session `status` — a session can reach its overall decision while an individual feature stays `In Review`.","enum":["Not Finished","Approved","Declined","In Review","Expired"]},"email":{"type":"string","description":"The email address being verified"},"is_breached":{"type":"boolean","description":"Indicates if the email was found in known data breaches"},"breaches":{"type":"array","description":"List of known breaches this email was found in","items":{"type":"object","properties":{"name":{"type":"string","description":"Name of the breach"},"domain":{"type":"string","description":"Domain affected by the breach"},"logo_path":{"type":"string","description":"URL to the logo of the breached service"},"breach_date":{"type":"string","format":"date","description":"Date when the breach occurred"},"description":{"type":"string","description":"Description of the breach"},"is_verified":{"type":"boolean","description":"Whether the breach is verified"},"data_classes":{"type":"array","description":"Types of data exposed in the breach","items":{"type":"string"}},"breach_emails_count":{"type":"integer","description":"Number of email addresses affected in the breach"}}}},"is_disposable":{"type":"boolean","description":"Indicates if the email is from a disposable provider"},"is_undeliverable":{"type":"boolean","description":"Indicates if the email address is undeliverable"},"verification_attempts":{"type":"integer","description":"Number of verification attempts for this email"},"verified_at":{"type":"string","format":"date-time","description":"Timestamp when the email was verified"},"warnings":{"type":"array","description":"List of warnings related to email verification","items":{"type":"object","properties":{"feature":{"type":"string","enum":["ID_VERIFICATION","NFC","LIVENESS","FACEMATCH","PROOF_OF_ADDRESS","PHONE","EMAIL","AML","LOCATION","DATABASE_VALIDATION","QUESTIONNAIRE","DOCUMENT_AI","KYB_REGISTRY","KYB_DOCUMENTS","KYB_KEY_PEOPLE","GEOLOCATION","SIGNATURE"],"description":"The feature that generated this warning. The value identifies the feature block the warning belongs to. Each module's warnings array typically uses the value matching its module (e.g. `PHONE` inside `phone_verifications[].warnings`), but the enum above is authoritative across all feature warnings on the decision payload."},"risk":{"type":"string"},"additional_data":{"oneOf":[{"type":"object"},{"type":"null"}]},"log_type":{"type":"string"},"short_description":{"type":"string"},"long_description":{"type":"string"},"node_id":{"type":"string","description":"The workflow graph node ID that generated this warning"}}}},"lifecycle":{"type":"array","description":"Chronological list of events in the email verification lifecycle.","items":{"type":"object","properties":{"type":{"type":"string"},"timestamp":{"type":"string","format":"date-time"},"details":{"oneOf":[{"type":"object","description":"Event-specific payload. Send events carry `status`, `reason`; code-check events carry `code_tried`, `status`; final status events carry `reason` — or `null` when there is no reason to report (e.g. `EMAIL_VERIFICATION_APPROVED`).","properties":{"status":{"type":"string"},"reason":{"oneOf":[{"type":"string"},{"type":"null"}]},"code_tried":{"type":"string"}}},{"type":"null","description":"Event-specific payload. Send events carry `status`, `reason`; code-check events carry `code_tried`, `status`; final status events carry `reason` — or `null` when there is no reason to report (e.g. `EMAIL_VERIFICATION_APPROVED`).","properties":{"status":{"type":"string"},"reason":{"oneOf":[{"type":"string"},{"type":"null"}]},"code_tried":{"type":"string"}}}]},"fee":{"type":"number"}}}},"matches":{"type":"array","description":"Matches found for this email address. Each match has a `source`: `session` (another verification session in your application matched on the same email, returned with `session_id`/`session_number`/`vendor_data`/`verification_date`) or `list_entry` (the email is on an org-managed allow/block list — see `/management-api/lists/overview`). Cross-session matches use different `vendor_data` and are capped at 5.","items":{"type":"object","properties":{"session_id":{"oneOf":[{"type":"string","format":"uuid"},{"type":"null","format":"uuid"}]},"session_number":{"oneOf":[{"type":"integer"},{"type":"null"}]},"vendor_data":{"oneOf":[{"type":"string"},{"type":"null"}]},"verification_date":{"oneOf":[{"type":"string","format":"date-time"},{"type":"null","format":"date-time"}]},"email":{"type":"string","format":"email"},"status":{"oneOf":[{"type":"string"},{"type":"null"}]},"is_blocklisted":{"type":"boolean"},"api_service":{"oneOf":[{"type":"string"},{"type":"null"}]},"source":{"type":"string","enum":["session","list_entry"],"description":"Where this match came from. `session` means another verification session in your application matched on this value. `list_entry` means the value was hit against an org-managed list (allowlist/blocklist) — see the management API lists overview at `/management-api/lists/overview` for how to manage those lists."}}}},"email_intelligence":{"type":"object","description":"Email intelligence signals. Present only when the email intelligence add-on ran for this address.","properties":{"score":{"oneOf":[{"type":"number","description":"Normalized 0-100 risk score. Higher is riskier."},{"type":"null","description":"Normalized 0-100 risk score. Higher is riskier."}]},"deliverable":{"oneOf":[{"type":"string","description":"Deliverability band (e.g., `high`)."},{"type":"null","description":"Deliverability band (e.g., `high`)."}]},"breach_risk_level":{"oneOf":[{"type":"string","description":"`Low`, `Medium` or `High`."},{"type":"null","description":"`Low`, `Medium` or `High`."}]},"breach_risk_index":{"oneOf":[{"type":"number","description":"Numeric breach-risk index."},{"type":"null","description":"Numeric breach-risk index."}]},"is_recent_breach":{"oneOf":[{"type":"boolean","description":"`true` when the address appears in a recent breach."},{"type":"null","description":"`true` when the address appears in a recent breach."}]},"is_frequent_breached":{"oneOf":[{"type":"boolean","description":"`true` when the address appears in many breaches."},{"type":"null","description":"`true` when the address appears in many breaches."}]},"is_disposable":{"oneOf":[{"type":"boolean","description":"`true` when the domain is a throwaway provider."},{"type":"null","description":"`true` when the domain is a throwaway provider."}]},"is_free_domain":{"oneOf":[{"type":"boolean","description":"`true` when the domain is a free mail provider."},{"type":"null","description":"`true` when the domain is a free mail provider."}]},"is_breached":{"oneOf":[{"type":"boolean","description":"`true` when the address appears in known breaches."},{"type":"null","description":"`true` when the address appears in known breaches."}]},"no_of_breaches":{"oneOf":[{"type":"number","description":"Number of known breaches containing the address."},{"type":"null","description":"Number of known breaches containing the address."}]},"reason_codes":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","description":"Stable Didit identifier of the signal, for example `IR-5AC67A32`. Opaque: group and filter on it, do not parse it."},"value":{"oneOf":[{"description":"For a risk flag (for example `voip`, `leaked`, `disposable`, `spam_trap`), its value: a boolean, a level or a date. Null for a scored reason code."},{"description":"For a risk flag (for example `voip`, `leaked`, `disposable`, `spam_trap`), its value: a boolean, a level or a date. Null for a scored reason code.","type":"null"}]},"direction":{"type":"string","enum":["risk","trust"],"description":"Whether the signal raised the risk or added trust."},"message":{"type":"string","description":"Human-readable explanation of the signal, in English."},"impact_level":{"oneOf":[{"type":"string","description":"How strongly the signal moved the score, for example `low`, `medium` or `high`."},{"type":"null","description":"How strongly the signal moved the score, for example `low`, `medium` or `high`."}]}}},"description":"Signals that explain the score, each with a stable Didit code, a direction, a message and an impact level. New codes can appear over time, so do not reject unknown codes."}}},"email_social":{"oneOf":[{"type":"object","description":"Social footprint of the address. Present only when the social footprint add-on ran for this address.","properties":{"profiles_registered":{"oneOf":[{"type":"integer","description":"Platforms where the email address is confirmed registered.","example":5},{"type":"null","description":"Platforms where the email address is confirmed registered.","example":5}]},"profiles_checked":{"oneOf":[{"type":"integer","description":"Platforms evaluated for registration.","example":14},{"type":"null","description":"Platforms evaluated for registration.","example":14}]},"names_found":{"oneOf":[{"type":"integer","description":"Platforms that returned an associated name.","example":0},{"type":"null","description":"Platforms that returned an associated name.","example":0}]},"photos_found":{"oneOf":[{"type":"integer","description":"Platforms that returned a profile photo.","example":0},{"type":"null","description":"Platforms that returned a profile photo.","example":0}]},"communication_breadth":{"oneOf":[{"type":"integer","description":"Communication platforms with detected presence.","example":2},{"type":"null","description":"Communication platforms with detected presence.","example":2}]},"digital_footprint_diversity":{"oneOf":[{"type":"integer","description":"Distinct platform categories with detected presence.","example":5},{"type":"null","description":"Distinct platform categories with detected presence.","example":5}]},"digital_sophistication_index":{"oneOf":[{"type":"integer","description":"Composite digital-maturity indicator, 0-10.","example":5},{"type":"null","description":"Composite digital-maturity indicator, 0-10.","example":5}]},"engagement_depth_index":{"oneOf":[{"type":"integer","description":"Profile-richness indicator, 0-10.","example":3},{"type":"null","description":"Profile-richness indicator, 0-10.","example":3}]},"subscription_affordability_index":{"oneOf":[{"type":"integer","description":"Free vs paid platform mix, 0-10.","example":2},{"type":"null","description":"Free vs paid platform mix, 0-10.","example":2}]},"free_platforms":{"oneOf":[{"type":"integer","description":"Registrations on free platforms.","example":4},{"type":"null","description":"Registrations on free platforms.","example":4}]},"full_paid_platforms":{"oneOf":[{"type":"integer","description":"Registrations on fully paid platforms.","example":0},{"type":"null","description":"Registrations on fully paid platforms.","example":0}]},"partial_paid_platforms":{"oneOf":[{"type":"integer","description":"Registrations on freemium platforms.","example":1},{"type":"null","description":"Registrations on freemium platforms.","example":1}]},"whatsapp_profile_completeness":{"oneOf":[{"type":"string","enum":["Basic","Partial","Complete","Not Present",null],"description":"Completeness of the WhatsApp profile. Phone only; null for email.","example":"Partial"},{"type":"null","enum":["Basic","Partial","Complete","Not Present",null],"description":"Completeness of the WhatsApp profile. Phone only; null for email.","example":"Partial"}]},"registered_platforms":{"type":"array","description":"Platforms where registration is confirmed.","items":{"type":"object","properties":{"platform":{"type":"string","description":"Platform identifier.","example":"whatsapp"},"category":{"type":"string","description":"Platform category, e.g. MESSAGING, SOCIAL_MEDIA, ECOMMERCE, PROFESSIONAL, EMAIL_PROVIDER.","example":"MESSAGING"},"scope":{"type":"string","enum":["global","local"],"description":"`global` for worldwide platforms, `local` for region-specific ones.","example":"global"}}}},"not_registered_platforms":{"type":"array","description":"Platforms checked with a negative result.","items":{"type":"object","properties":{"platform":{"type":"string","description":"Platform identifier.","example":"whatsapp"},"category":{"type":"string","description":"Platform category, e.g. MESSAGING, SOCIAL_MEDIA, ECOMMERCE, PROFESSIONAL, EMAIL_PROVIDER.","example":"MESSAGING"},"scope":{"type":"string","enum":["global","local"],"description":"`global` for worldwide platforms, `local` for region-specific ones.","example":"global"}}}},"categories":{"type":"object","description":"Registered count and ratio per platform category.","additionalProperties":{"type":"object","properties":{"registered":{"oneOf":[{"type":"integer","description":"Platforms in this category where registration is confirmed.","example":2},{"type":"null","description":"Platforms in this category where registration is confirmed.","example":2}]},"ratio":{"oneOf":[{"type":"number","format":"float","description":"Share of the category's checked platforms with a registration, 0.0-1.0.","example":0.6667},{"type":"null","format":"float","description":"Share of the category's checked platforms with a registration, 0.0-1.0.","example":0.6667}]}}}},"profiles":{"type":"object","description":"Per-platform profile details, keyed by platform, when the platform exposes them.","additionalProperties":{"type":"object","properties":{"name":{"oneOf":[{"type":"string","description":"Profile name, when the platform exposes one."},{"type":"null","description":"Profile name, when the platform exposes one."}]},"photo":{"oneOf":[{"type":"string","description":"Profile photo URL, when the platform exposes one."},{"type":"null","description":"Profile photo URL, when the platform exposes one."}]},"about":{"oneOf":[{"type":"string","description":"Profile about/bio text, when the platform exposes one."},{"type":"null","description":"Profile about/bio text, when the platform exposes one."}]},"privacy_status":{"oneOf":[{"type":"string","enum":["PUBLIC","PRIVATE",null],"description":"Profile visibility, when the platform exposes it."},{"type":"null","enum":["PUBLIC","PRIVATE",null],"description":"Profile visibility, when the platform exposes it."}]},"business_account":{"oneOf":[{"type":"boolean","description":"Whether the profile is a business account, when the platform exposes it."},{"type":"null","description":"Whether the profile is a business account, when the platform exposes it."}]}}}}}},{"type":"null","description":"Social footprint of the address. Present only when the social footprint add-on ran for this address.","properties":{"profiles_registered":{"oneOf":[{"type":"integer","description":"Platforms where the email address is confirmed registered.","example":5},{"type":"null","description":"Platforms where the email address is confirmed registered.","example":5}]},"profiles_checked":{"oneOf":[{"type":"integer","description":"Platforms evaluated for registration.","example":14},{"type":"null","description":"Platforms evaluated for registration.","example":14}]},"names_found":{"oneOf":[{"type":"integer","description":"Platforms that returned an associated name.","example":0},{"type":"null","description":"Platforms that returned an associated name.","example":0}]},"photos_found":{"oneOf":[{"type":"integer","description":"Platforms that returned a profile photo.","example":0},{"type":"null","description":"Platforms that returned a profile photo.","example":0}]},"communication_breadth":{"oneOf":[{"type":"integer","description":"Communication platforms with detected presence.","example":2},{"type":"null","description":"Communication platforms with detected presence.","example":2}]},"digital_footprint_diversity":{"oneOf":[{"type":"integer","description":"Distinct platform categories with detected presence.","example":5},{"type":"null","description":"Distinct platform categories with detected presence.","example":5}]},"digital_sophistication_index":{"oneOf":[{"type":"integer","description":"Composite digital-maturity indicator, 0-10.","example":5},{"type":"null","description":"Composite digital-maturity indicator, 0-10.","example":5}]},"engagement_depth_index":{"oneOf":[{"type":"integer","description":"Profile-richness indicator, 0-10.","example":3},{"type":"null","description":"Profile-richness indicator, 0-10.","example":3}]},"subscription_affordability_index":{"oneOf":[{"type":"integer","description":"Free vs paid platform mix, 0-10.","example":2},{"type":"null","description":"Free vs paid platform mix, 0-10.","example":2}]},"free_platforms":{"oneOf":[{"type":"integer","description":"Registrations on free platforms.","example":4},{"type":"null","description":"Registrations on free platforms.","example":4}]},"full_paid_platforms":{"oneOf":[{"type":"integer","description":"Registrations on fully paid platforms.","example":0},{"type":"null","description":"Registrations on fully paid platforms.","example":0}]},"partial_paid_platforms":{"oneOf":[{"type":"integer","description":"Registrations on freemium platforms.","example":1},{"type":"null","description":"Registrations on freemium platforms.","example":1}]},"whatsapp_profile_completeness":{"oneOf":[{"type":"string","enum":["Basic","Partial","Complete","Not Present",null],"description":"Completeness of the WhatsApp profile. Phone only; null for email.","example":"Partial"},{"type":"null","enum":["Basic","Partial","Complete","Not Present",null],"description":"Completeness of the WhatsApp profile. Phone only; null for email.","example":"Partial"}]},"registered_platforms":{"type":"array","description":"Platforms where registration is confirmed.","items":{"type":"object","properties":{"platform":{"type":"string","description":"Platform identifier.","example":"whatsapp"},"category":{"type":"string","description":"Platform category, e.g. MESSAGING, SOCIAL_MEDIA, ECOMMERCE, PROFESSIONAL, EMAIL_PROVIDER.","example":"MESSAGING"},"scope":{"type":"string","enum":["global","local"],"description":"`global` for worldwide platforms, `local` for region-specific ones.","example":"global"}}}},"not_registered_platforms":{"type":"array","description":"Platforms checked with a negative result.","items":{"type":"object","properties":{"platform":{"type":"string","description":"Platform identifier.","example":"whatsapp"},"category":{"type":"string","description":"Platform category, e.g. MESSAGING, SOCIAL_MEDIA, ECOMMERCE, PROFESSIONAL, EMAIL_PROVIDER.","example":"MESSAGING"},"scope":{"type":"string","enum":["global","local"],"description":"`global` for worldwide platforms, `local` for region-specific ones.","example":"global"}}}},"categories":{"type":"object","description":"Registered count and ratio per platform category.","additionalProperties":{"type":"object","properties":{"registered":{"oneOf":[{"type":"integer","description":"Platforms in this category where registration is confirmed.","example":2},{"type":"null","description":"Platforms in this category where registration is confirmed.","example":2}]},"ratio":{"oneOf":[{"type":"number","format":"float","description":"Share of the category's checked platforms with a registration, 0.0-1.0.","example":0.6667},{"type":"null","format":"float","description":"Share of the category's checked platforms with a registration, 0.0-1.0.","example":0.6667}]}}}},"profiles":{"type":"object","description":"Per-platform profile details, keyed by platform, when the platform exposes them.","additionalProperties":{"type":"object","properties":{"name":{"oneOf":[{"type":"string","description":"Profile name, when the platform exposes one."},{"type":"null","description":"Profile name, when the platform exposes one."}]},"photo":{"oneOf":[{"type":"string","description":"Profile photo URL, when the platform exposes one."},{"type":"null","description":"Profile photo URL, when the platform exposes one."}]},"about":{"oneOf":[{"type":"string","description":"Profile about/bio text, when the platform exposes one."},{"type":"null","description":"Profile about/bio text, when the platform exposes one."}]},"privacy_status":{"oneOf":[{"type":"string","enum":["PUBLIC","PRIVATE",null],"description":"Profile visibility, when the platform exposes it."},{"type":"null","enum":["PUBLIC","PRIVATE",null],"description":"Profile visibility, when the platform exposes it."}]},"business_account":{"oneOf":[{"type":"boolean","description":"Whether the profile is a business account, when the platform exposes it."},{"type":"null","description":"Whether the profile is a business account, when the platform exposes it."}]}}}}}}]}}},"uniqueKey":"email_verifications.oneOf.1","typeLabel":"null"}],"uniqueKey":"email_verifications","typeLabel":"object[] | null"},"poa_verifications":{"oneOf":[{"type":"array","description":"**Array of Proof of Address (POA) reports** — always a JSON array, never a singular `poa` object. `null` until at least one POA step has produced data. Each item is the full report, including `node_id`, feature-level `status`, the document file URL, issuer, dates, parsed address, and `warnings[]`.","items":{"type":"object","properties":{"node_id":{"type":"string","description":"Unique identifier for this POA step in the workflow graph.","uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].node_id","typeLabel":"string"},"status":{"type":"string","description":"Feature-level status of this Proof of Address step. Independent of the top-level session `status` — a session can reach its overall decision while an individual feature stays `In Review`.","enum":["Not Finished","Approved","Declined","In Review","Resub Requested"],"uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].status","typeLabel":"enum\u003cstring>"},"document_file":{"type":"string","format":"uri","description":"URL of the proof of address document","uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].document_file","typeLabel":"string\u003curi>"},"issuing_state":{"type":"string","description":"Two-letter country code of the issuing state","uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].issuing_state","typeLabel":"string"},"document_type":{"type":"string","description":"Type of proof of address document","uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].document_type","typeLabel":"string"},"document_subtype":{"oneOf":[{"type":"string","description":"More specific classification of the POA document within its `document_type`, when one was detected. `null` otherwise.","uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].document_subtype.oneOf.0","typeLabel":"string"},{"type":"null","description":"More specific classification of the POA document within its `document_type`, when one was detected. `null` otherwise.","uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].document_subtype.oneOf.1","typeLabel":"null"}],"uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].document_subtype","typeLabel":"string | null"},"document_language":{"type":"string","description":"Language code of the document","uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].document_language","typeLabel":"string"},"document_metadata":{"oneOf":[{"type":"object","properties":{"file_size":{"type":"integer","description":"Size of the document","uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].document_metadata.oneOf.0.file_size","typeLabel":"integer"},"content_type":{"type":"string","description":"Content type of the document","uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].document_metadata.oneOf.0.content_type","typeLabel":"string"},"creation_date":{"type":"string","format":"date","description":"Date when the document was created","uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].document_metadata.oneOf.0.creation_date","typeLabel":"string\u003cdate>"},"modified_date":{"type":"string","format":"date","description":"Date when the document was modified","uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].document_metadata.oneOf.0.modified_date","typeLabel":"string\u003cdate>"},"overlay_manipulation":{"oneOf":[{"type":"object","description":"PDF forensic analysis for suspected overlay-text manipulation. Null when no overlay manipulation evidence was found or the document was not a PDF.","properties":{"detected":{"type":"boolean","description":"Whether overlay-text manipulation evidence was detected.","uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].document_metadata.oneOf.0.overlay_manipulation.oneOf.0.detected","typeLabel":"boolean"},"analyzed":{"type":"boolean","description":"Whether the PDF could be analyzed.","uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].document_metadata.oneOf.0.overlay_manipulation.oneOf.0.analyzed","typeLabel":"boolean"},"analysis_incomplete":{"type":"boolean","description":"Present and true only when the file could not be checked in full. What was checked keeps its findings where it can, and the document raises the unproven text replacement warning.","uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].document_metadata.oneOf.0.overlay_manipulation.oneOf.0.analysis_incomplete","typeLabel":"boolean"},"signals":{"type":"array","items":{"type":"string","uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].document_metadata.oneOf.0.overlay_manipulation.oneOf.0.signals.items.[INDEX]","typeLabel":"string"},"description":"Forensic signals that fired, such as duplicate_font_subset or glyph_fragmentation.","uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].document_metadata.oneOf.0.overlay_manipulation.oneOf.0.signals","typeLabel":"string[]"},"manipulated_regions":{"type":"array","description":"Suspected manipulated areas in PDF page coordinates.","items":{"type":"object","properties":{"page":{"type":"integer","uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].document_metadata.oneOf.0.overlay_manipulation.oneOf.0.manipulated_regions.items.[INDEX].page","typeLabel":"integer"},"x":{"type":"number","uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].document_metadata.oneOf.0.overlay_manipulation.oneOf.0.manipulated_regions.items.[INDEX].x","typeLabel":"number"},"y":{"type":"number","uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].document_metadata.oneOf.0.overlay_manipulation.oneOf.0.manipulated_regions.items.[INDEX].y","typeLabel":"number"},"width":{"type":"number","uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].document_metadata.oneOf.0.overlay_manipulation.oneOf.0.manipulated_regions.items.[INDEX].width","typeLabel":"number"},"height":{"type":"number","uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].document_metadata.oneOf.0.overlay_manipulation.oneOf.0.manipulated_regions.items.[INDEX].height","typeLabel":"number"},"page_width":{"type":"number","uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].document_metadata.oneOf.0.overlay_manipulation.oneOf.0.manipulated_regions.items.[INDEX].page_width","typeLabel":"number"},"page_height":{"type":"number","uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].document_metadata.oneOf.0.overlay_manipulation.oneOf.0.manipulated_regions.items.[INDEX].page_height","typeLabel":"number"}},"uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].document_metadata.oneOf.0.overlay_manipulation.oneOf.0.manipulated_regions.items.[INDEX]","typeLabel":"object"},"uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].document_metadata.oneOf.0.overlay_manipulation.oneOf.0.manipulated_regions","typeLabel":"object[]"}},"uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].document_metadata.oneOf.0.overlay_manipulation.oneOf.0","typeLabel":"object"},{"type":"null","description":"PDF forensic analysis for suspected overlay-text manipulation. Null when no overlay manipulation evidence was found or the document was not a PDF.","properties":{"detected":{"type":"boolean","description":"Whether overlay-text manipulation evidence was detected."},"analyzed":{"type":"boolean","description":"Whether the PDF could be analyzed."},"analysis_incomplete":{"type":"boolean","description":"Present and true only when the file could not be checked in full. What was checked keeps its findings where it can, and the document raises the unproven text replacement warning."},"signals":{"type":"array","items":{"type":"string"},"description":"Forensic signals that fired, such as duplicate_font_subset or glyph_fragmentation."},"manipulated_regions":{"type":"array","description":"Suspected manipulated areas in PDF page coordinates.","items":{"type":"object","properties":{"page":{"type":"integer"},"x":{"type":"number"},"y":{"type":"number"},"width":{"type":"number"},"height":{"type":"number"},"page_width":{"type":"number"},"page_height":{"type":"number"}}}}},"uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].document_metadata.oneOf.0.overlay_manipulation.oneOf.1","typeLabel":"null"}],"uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].document_metadata.oneOf.0.overlay_manipulation","typeLabel":"object | null"},"creator":{"oneOf":[{"type":"string","description":"Creator application recorded in the document metadata.","uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].document_metadata.oneOf.0.creator.oneOf.0","typeLabel":"string"},{"type":"null","description":"Creator application recorded in the document metadata.","uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].document_metadata.oneOf.0.creator.oneOf.1","typeLabel":"null"}],"uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].document_metadata.oneOf.0.creator","typeLabel":"string | null"},"producer":{"oneOf":[{"type":"string","description":"Producer software recorded in the PDF metadata.","uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].document_metadata.oneOf.0.producer.oneOf.0","typeLabel":"string"},{"type":"null","description":"Producer software recorded in the PDF metadata.","uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].document_metadata.oneOf.0.producer.oneOf.1","typeLabel":"null"}],"uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].document_metadata.oneOf.0.producer","typeLabel":"string | null"},"software":{"oneOf":[{"type":"string","description":"Editing/processing software recorded in the file metadata.","uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].document_metadata.oneOf.0.software.oneOf.0","typeLabel":"string"},{"type":"null","description":"Editing/processing software recorded in the file metadata.","uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].document_metadata.oneOf.0.software.oneOf.1","typeLabel":"null"}],"uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].document_metadata.oneOf.0.software","typeLabel":"string | null"},"encryption":{"oneOf":[{"type":"string","description":"Encryption scheme of the document, when encrypted.","uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].document_metadata.oneOf.0.encryption.oneOf.0","typeLabel":"string"},{"type":"null","description":"Encryption scheme of the document, when encrypted.","uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].document_metadata.oneOf.0.encryption.oneOf.1","typeLabel":"null"}],"uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].document_metadata.oneOf.0.encryption","typeLabel":"string | null"},"is_signed":{"oneOf":[{"type":"boolean","description":"Whether the PDF carries a digital signature.","uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].document_metadata.oneOf.0.is_signed.oneOf.0","typeLabel":"boolean"},{"type":"null","description":"Whether the PDF carries a digital signature.","uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].document_metadata.oneOf.0.is_signed.oneOf.1","typeLabel":"null"}],"uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].document_metadata.oneOf.0.is_signed","typeLabel":"boolean | null"},"is_tampered":{"oneOf":[{"type":"boolean","description":"Whether signature validation indicates the file was modified after signing.","uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].document_metadata.oneOf.0.is_tampered.oneOf.0","typeLabel":"boolean"},{"type":"null","description":"Whether signature validation indicates the file was modified after signing.","uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].document_metadata.oneOf.0.is_tampered.oneOf.1","typeLabel":"null"}],"uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].document_metadata.oneOf.0.is_tampered","typeLabel":"boolean | null"},"signature_info":{"oneOf":[{"type":"object","description":"Details of the digital signature(s), when present.","uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].document_metadata.oneOf.0.signature_info.oneOf.0","typeLabel":"object"},{"type":"null","description":"Details of the digital signature(s), when present.","uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].document_metadata.oneOf.0.signature_info.oneOf.1","typeLabel":"null"}],"uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].document_metadata.oneOf.0.signature_info","typeLabel":"object | null"},"exif_original_date":{"oneOf":[{"type":"string","description":"EXIF original capture date, for image uploads.","uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].document_metadata.oneOf.0.exif_original_date.oneOf.0","typeLabel":"string"},{"type":"null","description":"EXIF original capture date, for image uploads.","uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].document_metadata.oneOf.0.exif_original_date.oneOf.1","typeLabel":"null"}],"uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].document_metadata.oneOf.0.exif_original_date","typeLabel":"string | null"},"exif_digitized_date":{"oneOf":[{"type":"string","description":"EXIF digitization date, for image uploads.","uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].document_metadata.oneOf.0.exif_digitized_date.oneOf.0","typeLabel":"string"},{"type":"null","description":"EXIF digitization date, for image uploads.","uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].document_metadata.oneOf.0.exif_digitized_date.oneOf.1","typeLabel":"null"}],"uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].document_metadata.oneOf.0.exif_digitized_date","typeLabel":"string | null"},"processed_by_known_editor":{"oneOf":[{"type":"boolean","description":"Whether the file metadata indicates processing by a known document editor.","uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].document_metadata.oneOf.0.processed_by_known_editor.oneOf.0","typeLabel":"boolean"},{"type":"null","description":"Whether the file metadata indicates processing by a known document editor.","uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].document_metadata.oneOf.0.processed_by_known_editor.oneOf.1","typeLabel":"null"}],"uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].document_metadata.oneOf.0.processed_by_known_editor","typeLabel":"boolean | null"},"has_different_creation_mod_date":{"oneOf":[{"type":"boolean","description":"Whether the creation and modification dates differ — a common manipulation signal.","uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].document_metadata.oneOf.0.has_different_creation_mod_date.oneOf.0","typeLabel":"boolean"},{"type":"null","description":"Whether the creation and modification dates differ — a common manipulation signal.","uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].document_metadata.oneOf.0.has_different_creation_mod_date.oneOf.1","typeLabel":"null"}],"uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].document_metadata.oneOf.0.has_different_creation_mod_date","typeLabel":"boolean | null"}},"description":"File-forensics metadata extracted from the uploaded POA document. Always contains the keys below (values are `null` when not applicable, e.g. EXIF dates for PDFs). `null` when no metadata could be extracted.","uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].document_metadata.oneOf.0","typeLabel":"object"},{"type":"null","properties":{"file_size":{"type":"integer","description":"Size of the document"},"content_type":{"type":"string","description":"Content type of the document"},"creation_date":{"type":"string","format":"date","description":"Date when the document was created"},"modified_date":{"type":"string","format":"date","description":"Date when the document was modified"},"overlay_manipulation":{"oneOf":[{"type":"object","description":"PDF forensic analysis for suspected overlay-text manipulation. Null when no overlay manipulation evidence was found or the document was not a PDF.","properties":{"detected":{"type":"boolean","description":"Whether overlay-text manipulation evidence was detected."},"analyzed":{"type":"boolean","description":"Whether the PDF could be analyzed."},"analysis_incomplete":{"type":"boolean","description":"Present and true only when the file could not be checked in full. What was checked keeps its findings where it can, and the document raises the unproven text replacement warning."},"signals":{"type":"array","items":{"type":"string"},"description":"Forensic signals that fired, such as duplicate_font_subset or glyph_fragmentation."},"manipulated_regions":{"type":"array","description":"Suspected manipulated areas in PDF page coordinates.","items":{"type":"object","properties":{"page":{"type":"integer"},"x":{"type":"number"},"y":{"type":"number"},"width":{"type":"number"},"height":{"type":"number"},"page_width":{"type":"number"},"page_height":{"type":"number"}}}}}},{"type":"null","description":"PDF forensic analysis for suspected overlay-text manipulation. Null when no overlay manipulation evidence was found or the document was not a PDF.","properties":{"detected":{"type":"boolean","description":"Whether overlay-text manipulation evidence was detected."},"analyzed":{"type":"boolean","description":"Whether the PDF could be analyzed."},"analysis_incomplete":{"type":"boolean","description":"Present and true only when the file could not be checked in full. What was checked keeps its findings where it can, and the document raises the unproven text replacement warning."},"signals":{"type":"array","items":{"type":"string"},"description":"Forensic signals that fired, such as duplicate_font_subset or glyph_fragmentation."},"manipulated_regions":{"type":"array","description":"Suspected manipulated areas in PDF page coordinates.","items":{"type":"object","properties":{"page":{"type":"integer"},"x":{"type":"number"},"y":{"type":"number"},"width":{"type":"number"},"height":{"type":"number"},"page_width":{"type":"number"},"page_height":{"type":"number"}}}}}}]},"creator":{"oneOf":[{"type":"string","description":"Creator application recorded in the document metadata."},{"type":"null","description":"Creator application recorded in the document metadata."}]},"producer":{"oneOf":[{"type":"string","description":"Producer software recorded in the PDF metadata."},{"type":"null","description":"Producer software recorded in the PDF metadata."}]},"software":{"oneOf":[{"type":"string","description":"Editing/processing software recorded in the file metadata."},{"type":"null","description":"Editing/processing software recorded in the file metadata."}]},"encryption":{"oneOf":[{"type":"string","description":"Encryption scheme of the document, when encrypted."},{"type":"null","description":"Encryption scheme of the document, when encrypted."}]},"is_signed":{"oneOf":[{"type":"boolean","description":"Whether the PDF carries a digital signature."},{"type":"null","description":"Whether the PDF carries a digital signature."}]},"is_tampered":{"oneOf":[{"type":"boolean","description":"Whether signature validation indicates the file was modified after signing."},{"type":"null","description":"Whether signature validation indicates the file was modified after signing."}]},"signature_info":{"oneOf":[{"type":"object","description":"Details of the digital signature(s), when present."},{"type":"null","description":"Details of the digital signature(s), when present."}]},"exif_original_date":{"oneOf":[{"type":"string","description":"EXIF original capture date, for image uploads."},{"type":"null","description":"EXIF original capture date, for image uploads."}]},"exif_digitized_date":{"oneOf":[{"type":"string","description":"EXIF digitization date, for image uploads."},{"type":"null","description":"EXIF digitization date, for image uploads."}]},"processed_by_known_editor":{"oneOf":[{"type":"boolean","description":"Whether the file metadata indicates processing by a known document editor."},{"type":"null","description":"Whether the file metadata indicates processing by a known document editor."}]},"has_different_creation_mod_date":{"oneOf":[{"type":"boolean","description":"Whether the creation and modification dates differ — a common manipulation signal."},{"type":"null","description":"Whether the creation and modification dates differ — a common manipulation signal."}]}},"description":"File-forensics metadata extracted from the uploaded POA document. Always contains the keys below (values are `null` when not applicable, e.g. EXIF dates for PDFs). `null` when no metadata could be extracted.","uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].document_metadata.oneOf.1","typeLabel":"null"}],"uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].document_metadata","typeLabel":"object | null"},"issuer":{"type":"string","description":"Name of the document issuer","uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].issuer","typeLabel":"string"},"issue_date":{"type":"string","format":"date","description":"Date when the document was issued","uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].issue_date","typeLabel":"string\u003cdate>"},"expiration_date":{"oneOf":[{"type":"string","format":"date","description":"Expiration date of the document, if available","uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].expiration_date.oneOf.0","typeLabel":"string\u003cdate>"},{"type":"null","format":"date","description":"Expiration date of the document, if available","uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].expiration_date.oneOf.1","typeLabel":"null"}],"uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].expiration_date","typeLabel":"string\u003cdate> | null"},"poa_address":{"type":"string","description":"Raw address from the proof of address document","uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].poa_address","typeLabel":"string"},"poa_formatted_address":{"type":"string","description":"Formatted address from the proof of address document","uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].poa_formatted_address","typeLabel":"string"},"poa_parsed_address":{"type":"object","properties":{"address_type":{"type":"string","description":"Type of address (Street, Avenue, etc)","uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].poa_parsed_address.address_type","typeLabel":"string"},"street_1":{"type":"string","description":"Primary street address","uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].poa_parsed_address.street_1","typeLabel":"string"},"street_2":{"oneOf":[{"type":"string","description":"Secondary street address","uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].poa_parsed_address.street_2.oneOf.0","typeLabel":"string"},{"type":"null","description":"Secondary street address","uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].poa_parsed_address.street_2.oneOf.1","typeLabel":"null"}],"uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].poa_parsed_address.street_2","typeLabel":"string | null"},"city":{"type":"string","description":"City name","uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].poa_parsed_address.city","typeLabel":"string"},"region":{"type":"string","description":"Region or state name","uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].poa_parsed_address.region","typeLabel":"string"},"country":{"type":"string","description":"Two-letter country code","uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].poa_parsed_address.country","typeLabel":"string"},"postal_code":{"type":"string","description":"Postal code","uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].poa_parsed_address.postal_code","typeLabel":"string"},"document_location":{"type":"object","properties":{"latitude":{"type":"number","description":"Latitude coordinate","uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].poa_parsed_address.document_location.latitude","typeLabel":"number"},"longitude":{"type":"number","description":"Longitude coordinate","uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].poa_parsed_address.document_location.longitude","typeLabel":"number"}},"uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].poa_parsed_address.document_location","typeLabel":"object"}},"uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].poa_parsed_address","typeLabel":"object"},"name_on_document":{"oneOf":[{"type":"string","description":"Account-holder / addressee name extracted from the POA document, used for name matching. `null` when no name could be extracted.","uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].name_on_document.oneOf.0","typeLabel":"string"},{"type":"null","description":"Account-holder / addressee name extracted from the POA document, used for name matching. `null` when no name could be extracted.","uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].name_on_document.oneOf.1","typeLabel":"null"}],"uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].name_on_document","typeLabel":"string | null"},"name_match_score_expected_details":{"oneOf":[{"type":"number","description":"Similarity score (0-100) between `name_on_document` and the expected name supplied at session creation. `null` when either side is missing.","uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].name_match_score_expected_details.oneOf.0","typeLabel":"number"},{"type":"null","description":"Similarity score (0-100) between `name_on_document` and the expected name supplied at session creation. `null` when either side is missing.","uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].name_match_score_expected_details.oneOf.1","typeLabel":"null"}],"uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].name_match_score_expected_details","typeLabel":"number | null"},"name_match_score_id_verification":{"oneOf":[{"type":"number","description":"Similarity score (0-100) between `name_on_document` and the name extracted by the ID verification step. `null` when either side is missing.","uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].name_match_score_id_verification.oneOf.0","typeLabel":"number"},{"type":"null","description":"Similarity score (0-100) between `name_on_document` and the name extracted by the ID verification step. `null` when either side is missing.","uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].name_match_score_id_verification.oneOf.1","typeLabel":"null"}],"uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].name_match_score_id_verification","typeLabel":"number | null"},"expected_details_address":{"oneOf":[{"type":"string","description":"Expected raw address for verification","uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].expected_details_address.oneOf.0","typeLabel":"string"},{"type":"null","description":"Expected raw address for verification","uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].expected_details_address.oneOf.1","typeLabel":"null"}],"uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].expected_details_address","typeLabel":"string | null"},"expected_details_formatted_address":{"oneOf":[{"type":"string","description":"Expected formatted address for verification","uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].expected_details_formatted_address.oneOf.0","typeLabel":"string"},{"type":"null","description":"Expected formatted address for verification","uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].expected_details_formatted_address.oneOf.1","typeLabel":"null"}],"uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].expected_details_formatted_address","typeLabel":"string | null"},"expected_details_parsed_address":{"type":"object","description":"Expected parsed address details for verification","uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].expected_details_parsed_address","typeLabel":"object"},"extra_fields":{"type":"object","description":"Additional banking and contact details extracted from the document.","properties":{"bank_account_number":{"oneOf":[{"type":"string","uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].extra_fields.bank_account_number.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].extra_fields.bank_account_number.oneOf.1","typeLabel":"null"}],"uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].extra_fields.bank_account_number","typeLabel":"string | null"},"bank_iban":{"oneOf":[{"type":"string","uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].extra_fields.bank_iban.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].extra_fields.bank_iban.oneOf.1","typeLabel":"null"}],"uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].extra_fields.bank_iban","typeLabel":"string | null"},"bank_sort_code":{"oneOf":[{"type":"string","uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].extra_fields.bank_sort_code.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].extra_fields.bank_sort_code.oneOf.1","typeLabel":"null"}],"uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].extra_fields.bank_sort_code","typeLabel":"string | null"},"bank_routing_number":{"oneOf":[{"type":"string","uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].extra_fields.bank_routing_number.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].extra_fields.bank_routing_number.oneOf.1","typeLabel":"null"}],"uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].extra_fields.bank_routing_number","typeLabel":"string | null"},"bank_swift_bic":{"oneOf":[{"type":"string","uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].extra_fields.bank_swift_bic.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].extra_fields.bank_swift_bic.oneOf.1","typeLabel":"null"}],"uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].extra_fields.bank_swift_bic","typeLabel":"string | null"},"bank_branch_name":{"oneOf":[{"type":"string","uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].extra_fields.bank_branch_name.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].extra_fields.bank_branch_name.oneOf.1","typeLabel":"null"}],"uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].extra_fields.bank_branch_name","typeLabel":"string | null"},"bank_branch_address":{"oneOf":[{"type":"string","uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].extra_fields.bank_branch_address.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].extra_fields.bank_branch_address.oneOf.1","typeLabel":"null"}],"uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].extra_fields.bank_branch_address","typeLabel":"string | null"},"document_phone_number":{"oneOf":[{"type":"string","uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].extra_fields.document_phone_number.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].extra_fields.document_phone_number.oneOf.1","typeLabel":"null"}],"uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].extra_fields.document_phone_number","typeLabel":"string | null"},"additional_names":{"type":"array","items":{"type":"string","uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].extra_fields.additional_names.items.[INDEX]","typeLabel":"string"},"uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].extra_fields.additional_names","typeLabel":"string[]"}},"uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].extra_fields","typeLabel":"object"},"extra_files":{"type":"array","items":{"type":"string","format":"uri","uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].extra_files.items.[INDEX]","typeLabel":"string\u003curi>"},"description":"Additional proof of address files","uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].extra_files","typeLabel":"string\u003curi>[]"},"warnings":{"type":"array","items":{"type":"object","properties":{"feature":{"type":"string","enum":["ID_VERIFICATION","NFC","LIVENESS","FACEMATCH","PROOF_OF_ADDRESS","PHONE","EMAIL","AML","LOCATION","DATABASE_VALIDATION","QUESTIONNAIRE","DOCUMENT_AI","KYB_REGISTRY","KYB_DOCUMENTS","KYB_KEY_PEOPLE","GEOLOCATION","SIGNATURE"],"description":"The feature that generated this warning. The value identifies the feature block the warning belongs to. Each module's warnings array typically uses the value matching its module (e.g. `PHONE` inside `phone_verifications[].warnings`), but the enum above is authoritative across all feature warnings on the decision payload.","uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].warnings.items.[INDEX].feature","typeLabel":"enum\u003cstring>"},"risk":{"type":"string","uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].warnings.items.[INDEX].risk","typeLabel":"string"},"additional_data":{"oneOf":[{"type":"object","uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].warnings.items.[INDEX].additional_data.oneOf.0","typeLabel":"object"},{"type":"null","uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].warnings.items.[INDEX].additional_data.oneOf.1","typeLabel":"null"}],"uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].warnings.items.[INDEX].additional_data","typeLabel":"object | null"},"log_type":{"type":"string","uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].warnings.items.[INDEX].log_type","typeLabel":"string"},"short_description":{"type":"string","uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].warnings.items.[INDEX].short_description","typeLabel":"string"},"long_description":{"type":"string","uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].warnings.items.[INDEX].long_description","typeLabel":"string"},"node_id":{"type":"string","description":"The workflow graph node ID that generated this warning","uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].warnings.items.[INDEX].node_id","typeLabel":"string"}},"uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].warnings.items.[INDEX]","typeLabel":"object"},"uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].warnings","typeLabel":"object[]"},"detected_codes":{"type":"array","description":"QR codes and barcodes detected across every processed page of the document. Empty when none are found. A located but undecodable QR code has `parsed_payload: null`.","items":{"type":"object","required":["type","page_number","position","x","y","width","height","page_width","page_height","raw_payload","parsed_payload"],"properties":{"type":{"type":"string","description":"Detected symbology, for example `QR_CODE`, `CODE_128`, `EAN_13`, `DATA_MATRIX`, or `PDF_417`.","isRequired":true,"uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].detected_codes.items.[INDEX].type","typeLabel":"string"},"page_number":{"type":"integer","minimum":1,"description":"1-based page number.","isRequired":true,"uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].detected_codes.items.[INDEX].page_number","typeLabel":"integer"},"position":{"oneOf":[{"type":"array","description":"Detected polygon in rendered-page pixel coordinates. `null` when no reliable location is available.","items":{"type":"array","minItems":2,"maxItems":2,"items":{"type":"integer","uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].detected_codes.items.[INDEX].position.oneOf.0.items.[INDEX].items.[INDEX]","typeLabel":"integer"},"uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].detected_codes.items.[INDEX].position.oneOf.0.items.[INDEX]","typeLabel":"integer[]"},"isRequired":true,"uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].detected_codes.items.[INDEX].position.oneOf.0","typeLabel":"integer[][]"},{"type":"null","description":"Detected polygon in rendered-page pixel coordinates. `null` when no reliable location is available.","items":{"type":"array","minItems":2,"maxItems":2,"items":{"type":"integer"}},"isRequired":true,"uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].detected_codes.items.[INDEX].position.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].detected_codes.items.[INDEX].position","typeLabel":"integer[][] | null"},"x":{"oneOf":[{"type":"integer","description":"Left edge of the bounding box in rendered-page pixels.","isRequired":true,"uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].detected_codes.items.[INDEX].x.oneOf.0","typeLabel":"integer"},{"type":"null","description":"Left edge of the bounding box in rendered-page pixels.","isRequired":true,"uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].detected_codes.items.[INDEX].x.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].detected_codes.items.[INDEX].x","typeLabel":"integer | null"},"y":{"oneOf":[{"type":"integer","description":"Top edge of the bounding box in rendered-page pixels.","isRequired":true,"uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].detected_codes.items.[INDEX].y.oneOf.0","typeLabel":"integer"},{"type":"null","description":"Top edge of the bounding box in rendered-page pixels.","isRequired":true,"uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].detected_codes.items.[INDEX].y.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].detected_codes.items.[INDEX].y","typeLabel":"integer | null"},"width":{"oneOf":[{"type":"integer","description":"Bounding-box width in rendered-page pixels.","isRequired":true,"uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].detected_codes.items.[INDEX].width.oneOf.0","typeLabel":"integer"},{"type":"null","description":"Bounding-box width in rendered-page pixels.","isRequired":true,"uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].detected_codes.items.[INDEX].width.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].detected_codes.items.[INDEX].width","typeLabel":"integer | null"},"height":{"oneOf":[{"type":"integer","description":"Bounding-box height in rendered-page pixels.","isRequired":true,"uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].detected_codes.items.[INDEX].height.oneOf.0","typeLabel":"integer"},{"type":"null","description":"Bounding-box height in rendered-page pixels.","isRequired":true,"uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].detected_codes.items.[INDEX].height.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].detected_codes.items.[INDEX].height","typeLabel":"integer | null"},"page_width":{"type":"integer","description":"Rendered page width in pixels.","isRequired":true,"uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].detected_codes.items.[INDEX].page_width","typeLabel":"integer"},"page_height":{"type":"integer","description":"Rendered page height in pixels.","isRequired":true,"uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].detected_codes.items.[INDEX].page_height","typeLabel":"integer"},"raw_payload":{"type":"string","description":"Raw decoder payload as a base64 string when available; otherwise an empty string.","isRequired":true,"uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].detected_codes.items.[INDEX].raw_payload","typeLabel":"string"},"parsed_payload":{"oneOf":[{"description":"Decoded string or structured value. `null` when the code was located but could not be decoded.","isRequired":true,"uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].detected_codes.items.[INDEX].parsed_payload.oneOf.0","typeLabel":"any"},{"description":"Decoded string or structured value. `null` when the code was located but could not be decoded.","type":"null","isRequired":true,"uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].detected_codes.items.[INDEX].parsed_payload.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].detected_codes.items.[INDEX].parsed_payload","typeLabel":"any | null"}},"uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].detected_codes.items.[INDEX]","typeLabel":"object"},"uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].detected_codes","typeLabel":"object[]"},"address_validation":{"oneOf":[{"type":"object","description":"Address Validation of the address on this proof of address: whether it exists and its normalised form, as the document read it (a later correction of `poa_address` does not run it again). Present when this Proof of Address step enabled the Address Validation add-on and the upload passed the document checks; `null` otherwise.","required":["status","verification_level","address","formatted_address","latitude","longitude","address_type","is_residential"],"properties":{"status":{"type":"string","enum":["verified","partially_verified","not_verified","unavailable"],"description":"`verified`: the address was confirmed down to the building (or the flat or PO box). `partially_verified`: it was confirmed only to the street, or to the most precise level the postal reference data holds for that place. `not_verified`: only the region or the city matched, or nothing did. `unavailable`: the validation could not run (for example the reference service did not answer); it is not charged and never affects a verification.","isRequired":true,"uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].address_validation.oneOf.0.status","typeLabel":"enum\u003cstring>"},"verification_level":{"oneOf":[{"type":"string","enum":["administrative_area","locality","thoroughfare","premise","delivery_point",null],"description":"The most precise level the address was matched to. `null` when nothing matched or `status` is `unavailable`.","isRequired":true,"uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].address_validation.oneOf.0.verification_level.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["administrative_area","locality","thoroughfare","premise","delivery_point",null],"description":"The most precise level the address was matched to. `null` when nothing matched or `status` is `unavailable`.","isRequired":true,"uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].address_validation.oneOf.0.verification_level.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].address_validation.oneOf.0.verification_level","typeLabel":"enum\u003cstring> | null"},"address":{"oneOf":[{"type":"object","description":"The normalised address. `null` when `status` is `unavailable`.","properties":{"address_line_1":{"oneOf":[{"type":"string","description":"First delivery line, written the way the country writes it.","example":"1600 Amphitheatre Pkwy","uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].address_validation.oneOf.0.address.oneOf.0.address_line_1.oneOf.0","typeLabel":"string"},{"type":"null","description":"First delivery line, written the way the country writes it.","example":"1600 Amphitheatre Pkwy","uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].address_validation.oneOf.0.address.oneOf.0.address_line_1.oneOf.1","typeLabel":"null"}],"uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].address_validation.oneOf.0.address.oneOf.0.address_line_1","typeLabel":"string | null"},"address_line_2":{"oneOf":[{"type":"string","description":"Second delivery line (a flat, building or neighbourhood), when the address has one.","uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].address_validation.oneOf.0.address.oneOf.0.address_line_2.oneOf.0","typeLabel":"string"},{"type":"null","description":"Second delivery line (a flat, building or neighbourhood), when the address has one.","uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].address_validation.oneOf.0.address.oneOf.0.address_line_2.oneOf.1","typeLabel":"null"}],"uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].address_validation.oneOf.0.address.oneOf.0.address_line_2","typeLabel":"string | null"},"city":{"oneOf":[{"type":"string","example":"Mountain View","uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].address_validation.oneOf.0.address.oneOf.0.city.oneOf.0","typeLabel":"string"},{"type":"null","example":"Mountain View","uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].address_validation.oneOf.0.address.oneOf.0.city.oneOf.1","typeLabel":"null"}],"uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].address_validation.oneOf.0.address.oneOf.0.city","typeLabel":"string | null"},"region":{"oneOf":[{"type":"string","description":"State, province or region.","example":"CA","uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].address_validation.oneOf.0.address.oneOf.0.region.oneOf.0","typeLabel":"string"},{"type":"null","description":"State, province or region.","example":"CA","uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].address_validation.oneOf.0.address.oneOf.0.region.oneOf.1","typeLabel":"null"}],"uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].address_validation.oneOf.0.address.oneOf.0.region","typeLabel":"string | null"},"postal_code":{"oneOf":[{"type":"string","example":"94043-1351","uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].address_validation.oneOf.0.address.oneOf.0.postal_code.oneOf.0","typeLabel":"string"},{"type":"null","example":"94043-1351","uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].address_validation.oneOf.0.address.oneOf.0.postal_code.oneOf.1","typeLabel":"null"}],"uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].address_validation.oneOf.0.address.oneOf.0.postal_code","typeLabel":"string | null"},"country":{"oneOf":[{"type":"string","description":"ISO 3166-1 alpha-2 country code.","example":"US","uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].address_validation.oneOf.0.address.oneOf.0.country.oneOf.0","typeLabel":"string"},{"type":"null","description":"ISO 3166-1 alpha-2 country code.","example":"US","uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].address_validation.oneOf.0.address.oneOf.0.country.oneOf.1","typeLabel":"null"}],"uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].address_validation.oneOf.0.address.oneOf.0.country","typeLabel":"string | null"}},"isRequired":true,"uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].address_validation.oneOf.0.address.oneOf.0","typeLabel":"object"},{"type":"null","description":"The normalised address. `null` when `status` is `unavailable`.","properties":{"address_line_1":{"oneOf":[{"type":"string","description":"First delivery line, written the way the country writes it.","example":"1600 Amphitheatre Pkwy"},{"type":"null","description":"First delivery line, written the way the country writes it.","example":"1600 Amphitheatre Pkwy"}]},"address_line_2":{"oneOf":[{"type":"string","description":"Second delivery line (a flat, building or neighbourhood), when the address has one."},{"type":"null","description":"Second delivery line (a flat, building or neighbourhood), when the address has one."}]},"city":{"oneOf":[{"type":"string","example":"Mountain View"},{"type":"null","example":"Mountain View"}]},"region":{"oneOf":[{"type":"string","description":"State, province or region.","example":"CA"},{"type":"null","description":"State, province or region.","example":"CA"}]},"postal_code":{"oneOf":[{"type":"string","example":"94043-1351"},{"type":"null","example":"94043-1351"}]},"country":{"oneOf":[{"type":"string","description":"ISO 3166-1 alpha-2 country code.","example":"US"},{"type":"null","description":"ISO 3166-1 alpha-2 country code.","example":"US"}]}},"isRequired":true,"uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].address_validation.oneOf.0.address.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].address_validation.oneOf.0.address","typeLabel":"object | null"},"formatted_address":{"oneOf":[{"type":"string","description":"The normalised address on one line.","example":"1600 Amphitheatre Pkwy, Mountain View CA 94043-1351","isRequired":true,"uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].address_validation.oneOf.0.formatted_address.oneOf.0","typeLabel":"string"},{"type":"null","description":"The normalised address on one line.","example":"1600 Amphitheatre Pkwy, Mountain View CA 94043-1351","isRequired":true,"uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].address_validation.oneOf.0.formatted_address.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].address_validation.oneOf.0.formatted_address","typeLabel":"string | null"},"latitude":{"oneOf":[{"type":"number","example":37.422022,"isRequired":true,"uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].address_validation.oneOf.0.latitude.oneOf.0","typeLabel":"number"},{"type":"null","example":37.422022,"isRequired":true,"uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].address_validation.oneOf.0.latitude.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].address_validation.oneOf.0.latitude","typeLabel":"number | null"},"longitude":{"oneOf":[{"type":"number","example":-122.08429,"isRequired":true,"uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].address_validation.oneOf.0.longitude.oneOf.0","typeLabel":"number"},{"type":"null","example":-122.08429,"isRequired":true,"uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].address_validation.oneOf.0.longitude.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].address_validation.oneOf.0.longitude","typeLabel":"number | null"},"address_type":{"oneOf":[{"type":"string","enum":["street","po_box","high_rise","rural_route","general_delivery","firm","building",null],"description":"The kind of delivery point the address is, for United States and Canadian addresses: `street`, `po_box` (a PO box or lock box), `high_rise` (a high-rise or business complex), `rural_route`, `general_delivery`, `firm` (a firm or company address) or `building`. `null` for addresses in other countries, when the address has no type on record, and when `status` is `unavailable`.","isRequired":true,"uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].address_validation.oneOf.0.address_type.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["street","po_box","high_rise","rural_route","general_delivery","firm","building",null],"description":"The kind of delivery point the address is, for United States and Canadian addresses: `street`, `po_box` (a PO box or lock box), `high_rise` (a high-rise or business complex), `rural_route`, `general_delivery`, `firm` (a firm or company address) or `building`. `null` for addresses in other countries, when the address has no type on record, and when `status` is `unavailable`.","isRequired":true,"uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].address_validation.oneOf.0.address_type.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].address_validation.oneOf.0.address_type","typeLabel":"enum\u003cstring> | null"},"is_residential":{"oneOf":[{"type":"boolean","description":"`true` when the address is a residence, `false` when it is a business. `null` when this is unknown, when it is not available for the address's country, and when `status` is `unavailable`. Available for addresses in the United States, Great Britain, the Netherlands and Ireland.","isRequired":true,"uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].address_validation.oneOf.0.is_residential.oneOf.0","typeLabel":"boolean"},{"type":"null","description":"`true` when the address is a residence, `false` when it is a business. `null` when this is unknown, when it is not available for the address's country, and when `status` is `unavailable`. Available for addresses in the United States, Great Britain, the Netherlands and Ireland.","isRequired":true,"uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].address_validation.oneOf.0.is_residential.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].address_validation.oneOf.0.is_residential","typeLabel":"boolean | null"}},"uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].address_validation.oneOf.0","typeLabel":"object"},{"type":"null","uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].address_validation.oneOf.1","typeLabel":"null"}],"uniqueKey":"poa_verifications.oneOf.0.items.[INDEX].address_validation","typeLabel":"object | null"}},"uniqueKey":"poa_verifications.oneOf.0.items.[INDEX]","typeLabel":"object"},"uniqueKey":"poa_verifications.oneOf.0","typeLabel":"object[]"},{"type":"null","description":"**Array of Proof of Address (POA) reports** — always a JSON array, never a singular `poa` object. `null` until at least one POA step has produced data. Each item is the full report, including `node_id`, feature-level `status`, the document file URL, issuer, dates, parsed address, and `warnings[]`.","items":{"type":"object","properties":{"node_id":{"type":"string","description":"Unique identifier for this POA step in the workflow graph."},"status":{"type":"string","description":"Feature-level status of this Proof of Address step. Independent of the top-level session `status` — a session can reach its overall decision while an individual feature stays `In Review`.","enum":["Not Finished","Approved","Declined","In Review","Resub Requested"]},"document_file":{"type":"string","format":"uri","description":"URL of the proof of address document"},"issuing_state":{"type":"string","description":"Two-letter country code of the issuing state"},"document_type":{"type":"string","description":"Type of proof of address document"},"document_subtype":{"oneOf":[{"type":"string","description":"More specific classification of the POA document within its `document_type`, when one was detected. `null` otherwise."},{"type":"null","description":"More specific classification of the POA document within its `document_type`, when one was detected. `null` otherwise."}]},"document_language":{"type":"string","description":"Language code of the document"},"document_metadata":{"oneOf":[{"type":"object","properties":{"file_size":{"type":"integer","description":"Size of the document"},"content_type":{"type":"string","description":"Content type of the document"},"creation_date":{"type":"string","format":"date","description":"Date when the document was created"},"modified_date":{"type":"string","format":"date","description":"Date when the document was modified"},"overlay_manipulation":{"oneOf":[{"type":"object","description":"PDF forensic analysis for suspected overlay-text manipulation. Null when no overlay manipulation evidence was found or the document was not a PDF.","properties":{"detected":{"type":"boolean","description":"Whether overlay-text manipulation evidence was detected."},"analyzed":{"type":"boolean","description":"Whether the PDF could be analyzed."},"analysis_incomplete":{"type":"boolean","description":"Present and true only when the file could not be checked in full. What was checked keeps its findings where it can, and the document raises the unproven text replacement warning."},"signals":{"type":"array","items":{"type":"string"},"description":"Forensic signals that fired, such as duplicate_font_subset or glyph_fragmentation."},"manipulated_regions":{"type":"array","description":"Suspected manipulated areas in PDF page coordinates.","items":{"type":"object","properties":{"page":{"type":"integer"},"x":{"type":"number"},"y":{"type":"number"},"width":{"type":"number"},"height":{"type":"number"},"page_width":{"type":"number"},"page_height":{"type":"number"}}}}}},{"type":"null","description":"PDF forensic analysis for suspected overlay-text manipulation. Null when no overlay manipulation evidence was found or the document was not a PDF.","properties":{"detected":{"type":"boolean","description":"Whether overlay-text manipulation evidence was detected."},"analyzed":{"type":"boolean","description":"Whether the PDF could be analyzed."},"analysis_incomplete":{"type":"boolean","description":"Present and true only when the file could not be checked in full. What was checked keeps its findings where it can, and the document raises the unproven text replacement warning."},"signals":{"type":"array","items":{"type":"string"},"description":"Forensic signals that fired, such as duplicate_font_subset or glyph_fragmentation."},"manipulated_regions":{"type":"array","description":"Suspected manipulated areas in PDF page coordinates.","items":{"type":"object","properties":{"page":{"type":"integer"},"x":{"type":"number"},"y":{"type":"number"},"width":{"type":"number"},"height":{"type":"number"},"page_width":{"type":"number"},"page_height":{"type":"number"}}}}}}]},"creator":{"oneOf":[{"type":"string","description":"Creator application recorded in the document metadata."},{"type":"null","description":"Creator application recorded in the document metadata."}]},"producer":{"oneOf":[{"type":"string","description":"Producer software recorded in the PDF metadata."},{"type":"null","description":"Producer software recorded in the PDF metadata."}]},"software":{"oneOf":[{"type":"string","description":"Editing/processing software recorded in the file metadata."},{"type":"null","description":"Editing/processing software recorded in the file metadata."}]},"encryption":{"oneOf":[{"type":"string","description":"Encryption scheme of the document, when encrypted."},{"type":"null","description":"Encryption scheme of the document, when encrypted."}]},"is_signed":{"oneOf":[{"type":"boolean","description":"Whether the PDF carries a digital signature."},{"type":"null","description":"Whether the PDF carries a digital signature."}]},"is_tampered":{"oneOf":[{"type":"boolean","description":"Whether signature validation indicates the file was modified after signing."},{"type":"null","description":"Whether signature validation indicates the file was modified after signing."}]},"signature_info":{"oneOf":[{"type":"object","description":"Details of the digital signature(s), when present."},{"type":"null","description":"Details of the digital signature(s), when present."}]},"exif_original_date":{"oneOf":[{"type":"string","description":"EXIF original capture date, for image uploads."},{"type":"null","description":"EXIF original capture date, for image uploads."}]},"exif_digitized_date":{"oneOf":[{"type":"string","description":"EXIF digitization date, for image uploads."},{"type":"null","description":"EXIF digitization date, for image uploads."}]},"processed_by_known_editor":{"oneOf":[{"type":"boolean","description":"Whether the file metadata indicates processing by a known document editor."},{"type":"null","description":"Whether the file metadata indicates processing by a known document editor."}]},"has_different_creation_mod_date":{"oneOf":[{"type":"boolean","description":"Whether the creation and modification dates differ — a common manipulation signal."},{"type":"null","description":"Whether the creation and modification dates differ — a common manipulation signal."}]}},"description":"File-forensics metadata extracted from the uploaded POA document. Always contains the keys below (values are `null` when not applicable, e.g. EXIF dates for PDFs). `null` when no metadata could be extracted."},{"type":"null","properties":{"file_size":{"type":"integer","description":"Size of the document"},"content_type":{"type":"string","description":"Content type of the document"},"creation_date":{"type":"string","format":"date","description":"Date when the document was created"},"modified_date":{"type":"string","format":"date","description":"Date when the document was modified"},"overlay_manipulation":{"oneOf":[{"type":"object","description":"PDF forensic analysis for suspected overlay-text manipulation. Null when no overlay manipulation evidence was found or the document was not a PDF.","properties":{"detected":{"type":"boolean","description":"Whether overlay-text manipulation evidence was detected."},"analyzed":{"type":"boolean","description":"Whether the PDF could be analyzed."},"analysis_incomplete":{"type":"boolean","description":"Present and true only when the file could not be checked in full. What was checked keeps its findings where it can, and the document raises the unproven text replacement warning."},"signals":{"type":"array","items":{"type":"string"},"description":"Forensic signals that fired, such as duplicate_font_subset or glyph_fragmentation."},"manipulated_regions":{"type":"array","description":"Suspected manipulated areas in PDF page coordinates.","items":{"type":"object","properties":{"page":{"type":"integer"},"x":{"type":"number"},"y":{"type":"number"},"width":{"type":"number"},"height":{"type":"number"},"page_width":{"type":"number"},"page_height":{"type":"number"}}}}}},{"type":"null","description":"PDF forensic analysis for suspected overlay-text manipulation. Null when no overlay manipulation evidence was found or the document was not a PDF.","properties":{"detected":{"type":"boolean","description":"Whether overlay-text manipulation evidence was detected."},"analyzed":{"type":"boolean","description":"Whether the PDF could be analyzed."},"analysis_incomplete":{"type":"boolean","description":"Present and true only when the file could not be checked in full. What was checked keeps its findings where it can, and the document raises the unproven text replacement warning."},"signals":{"type":"array","items":{"type":"string"},"description":"Forensic signals that fired, such as duplicate_font_subset or glyph_fragmentation."},"manipulated_regions":{"type":"array","description":"Suspected manipulated areas in PDF page coordinates.","items":{"type":"object","properties":{"page":{"type":"integer"},"x":{"type":"number"},"y":{"type":"number"},"width":{"type":"number"},"height":{"type":"number"},"page_width":{"type":"number"},"page_height":{"type":"number"}}}}}}]},"creator":{"oneOf":[{"type":"string","description":"Creator application recorded in the document metadata."},{"type":"null","description":"Creator application recorded in the document metadata."}]},"producer":{"oneOf":[{"type":"string","description":"Producer software recorded in the PDF metadata."},{"type":"null","description":"Producer software recorded in the PDF metadata."}]},"software":{"oneOf":[{"type":"string","description":"Editing/processing software recorded in the file metadata."},{"type":"null","description":"Editing/processing software recorded in the file metadata."}]},"encryption":{"oneOf":[{"type":"string","description":"Encryption scheme of the document, when encrypted."},{"type":"null","description":"Encryption scheme of the document, when encrypted."}]},"is_signed":{"oneOf":[{"type":"boolean","description":"Whether the PDF carries a digital signature."},{"type":"null","description":"Whether the PDF carries a digital signature."}]},"is_tampered":{"oneOf":[{"type":"boolean","description":"Whether signature validation indicates the file was modified after signing."},{"type":"null","description":"Whether signature validation indicates the file was modified after signing."}]},"signature_info":{"oneOf":[{"type":"object","description":"Details of the digital signature(s), when present."},{"type":"null","description":"Details of the digital signature(s), when present."}]},"exif_original_date":{"oneOf":[{"type":"string","description":"EXIF original capture date, for image uploads."},{"type":"null","description":"EXIF original capture date, for image uploads."}]},"exif_digitized_date":{"oneOf":[{"type":"string","description":"EXIF digitization date, for image uploads."},{"type":"null","description":"EXIF digitization date, for image uploads."}]},"processed_by_known_editor":{"oneOf":[{"type":"boolean","description":"Whether the file metadata indicates processing by a known document editor."},{"type":"null","description":"Whether the file metadata indicates processing by a known document editor."}]},"has_different_creation_mod_date":{"oneOf":[{"type":"boolean","description":"Whether the creation and modification dates differ — a common manipulation signal."},{"type":"null","description":"Whether the creation and modification dates differ — a common manipulation signal."}]}},"description":"File-forensics metadata extracted from the uploaded POA document. Always contains the keys below (values are `null` when not applicable, e.g. EXIF dates for PDFs). `null` when no metadata could be extracted."}]},"issuer":{"type":"string","description":"Name of the document issuer"},"issue_date":{"type":"string","format":"date","description":"Date when the document was issued"},"expiration_date":{"oneOf":[{"type":"string","format":"date","description":"Expiration date of the document, if available"},{"type":"null","format":"date","description":"Expiration date of the document, if available"}]},"poa_address":{"type":"string","description":"Raw address from the proof of address document"},"poa_formatted_address":{"type":"string","description":"Formatted address from the proof of address document"},"poa_parsed_address":{"type":"object","properties":{"address_type":{"type":"string","description":"Type of address (Street, Avenue, etc)"},"street_1":{"type":"string","description":"Primary street address"},"street_2":{"oneOf":[{"type":"string","description":"Secondary street address"},{"type":"null","description":"Secondary street address"}]},"city":{"type":"string","description":"City name"},"region":{"type":"string","description":"Region or state name"},"country":{"type":"string","description":"Two-letter country code"},"postal_code":{"type":"string","description":"Postal code"},"document_location":{"type":"object","properties":{"latitude":{"type":"number","description":"Latitude coordinate"},"longitude":{"type":"number","description":"Longitude coordinate"}}}}},"name_on_document":{"oneOf":[{"type":"string","description":"Account-holder / addressee name extracted from the POA document, used for name matching. `null` when no name could be extracted."},{"type":"null","description":"Account-holder / addressee name extracted from the POA document, used for name matching. `null` when no name could be extracted."}]},"name_match_score_expected_details":{"oneOf":[{"type":"number","description":"Similarity score (0-100) between `name_on_document` and the expected name supplied at session creation. `null` when either side is missing."},{"type":"null","description":"Similarity score (0-100) between `name_on_document` and the expected name supplied at session creation. `null` when either side is missing."}]},"name_match_score_id_verification":{"oneOf":[{"type":"number","description":"Similarity score (0-100) between `name_on_document` and the name extracted by the ID verification step. `null` when either side is missing."},{"type":"null","description":"Similarity score (0-100) between `name_on_document` and the name extracted by the ID verification step. `null` when either side is missing."}]},"expected_details_address":{"oneOf":[{"type":"string","description":"Expected raw address for verification"},{"type":"null","description":"Expected raw address for verification"}]},"expected_details_formatted_address":{"oneOf":[{"type":"string","description":"Expected formatted address for verification"},{"type":"null","description":"Expected formatted address for verification"}]},"expected_details_parsed_address":{"type":"object","description":"Expected parsed address details for verification"},"extra_fields":{"type":"object","description":"Additional banking and contact details extracted from the document.","properties":{"bank_account_number":{"oneOf":[{"type":"string"},{"type":"null"}]},"bank_iban":{"oneOf":[{"type":"string"},{"type":"null"}]},"bank_sort_code":{"oneOf":[{"type":"string"},{"type":"null"}]},"bank_routing_number":{"oneOf":[{"type":"string"},{"type":"null"}]},"bank_swift_bic":{"oneOf":[{"type":"string"},{"type":"null"}]},"bank_branch_name":{"oneOf":[{"type":"string"},{"type":"null"}]},"bank_branch_address":{"oneOf":[{"type":"string"},{"type":"null"}]},"document_phone_number":{"oneOf":[{"type":"string"},{"type":"null"}]},"additional_names":{"type":"array","items":{"type":"string"}}}},"extra_files":{"type":"array","items":{"type":"string","format":"uri"},"description":"Additional proof of address files"},"warnings":{"type":"array","items":{"type":"object","properties":{"feature":{"type":"string","enum":["ID_VERIFICATION","NFC","LIVENESS","FACEMATCH","PROOF_OF_ADDRESS","PHONE","EMAIL","AML","LOCATION","DATABASE_VALIDATION","QUESTIONNAIRE","DOCUMENT_AI","KYB_REGISTRY","KYB_DOCUMENTS","KYB_KEY_PEOPLE","GEOLOCATION","SIGNATURE"],"description":"The feature that generated this warning. The value identifies the feature block the warning belongs to. Each module's warnings array typically uses the value matching its module (e.g. `PHONE` inside `phone_verifications[].warnings`), but the enum above is authoritative across all feature warnings on the decision payload."},"risk":{"type":"string"},"additional_data":{"oneOf":[{"type":"object"},{"type":"null"}]},"log_type":{"type":"string"},"short_description":{"type":"string"},"long_description":{"type":"string"},"node_id":{"type":"string","description":"The workflow graph node ID that generated this warning"}}}},"detected_codes":{"type":"array","description":"QR codes and barcodes detected across every processed page of the document. Empty when none are found. A located but undecodable QR code has `parsed_payload: null`.","items":{"type":"object","required":["type","page_number","position","x","y","width","height","page_width","page_height","raw_payload","parsed_payload"],"properties":{"type":{"type":"string","description":"Detected symbology, for example `QR_CODE`, `CODE_128`, `EAN_13`, `DATA_MATRIX`, or `PDF_417`."},"page_number":{"type":"integer","minimum":1,"description":"1-based page number."},"position":{"oneOf":[{"type":"array","description":"Detected polygon in rendered-page pixel coordinates. `null` when no reliable location is available.","items":{"type":"array","minItems":2,"maxItems":2,"items":{"type":"integer"}}},{"type":"null","description":"Detected polygon in rendered-page pixel coordinates. `null` when no reliable location is available.","items":{"type":"array","minItems":2,"maxItems":2,"items":{"type":"integer"}}}]},"x":{"oneOf":[{"type":"integer","description":"Left edge of the bounding box in rendered-page pixels."},{"type":"null","description":"Left edge of the bounding box in rendered-page pixels."}]},"y":{"oneOf":[{"type":"integer","description":"Top edge of the bounding box in rendered-page pixels."},{"type":"null","description":"Top edge of the bounding box in rendered-page pixels."}]},"width":{"oneOf":[{"type":"integer","description":"Bounding-box width in rendered-page pixels."},{"type":"null","description":"Bounding-box width in rendered-page pixels."}]},"height":{"oneOf":[{"type":"integer","description":"Bounding-box height in rendered-page pixels."},{"type":"null","description":"Bounding-box height in rendered-page pixels."}]},"page_width":{"type":"integer","description":"Rendered page width in pixels."},"page_height":{"type":"integer","description":"Rendered page height in pixels."},"raw_payload":{"type":"string","description":"Raw decoder payload as a base64 string when available; otherwise an empty string."},"parsed_payload":{"oneOf":[{"description":"Decoded string or structured value. `null` when the code was located but could not be decoded."},{"description":"Decoded string or structured value. `null` when the code was located but could not be decoded.","type":"null"}]}}}},"address_validation":{"oneOf":[{"type":"object","description":"Address Validation of the address on this proof of address: whether it exists and its normalised form, as the document read it (a later correction of `poa_address` does not run it again). Present when this Proof of Address step enabled the Address Validation add-on and the upload passed the document checks; `null` otherwise.","required":["status","verification_level","address","formatted_address","latitude","longitude","address_type","is_residential"],"properties":{"status":{"type":"string","enum":["verified","partially_verified","not_verified","unavailable"],"description":"`verified`: the address was confirmed down to the building (or the flat or PO box). `partially_verified`: it was confirmed only to the street, or to the most precise level the postal reference data holds for that place. `not_verified`: only the region or the city matched, or nothing did. `unavailable`: the validation could not run (for example the reference service did not answer); it is not charged and never affects a verification."},"verification_level":{"oneOf":[{"type":"string","enum":["administrative_area","locality","thoroughfare","premise","delivery_point",null],"description":"The most precise level the address was matched to. `null` when nothing matched or `status` is `unavailable`."},{"type":"null","enum":["administrative_area","locality","thoroughfare","premise","delivery_point",null],"description":"The most precise level the address was matched to. `null` when nothing matched or `status` is `unavailable`."}]},"address":{"oneOf":[{"type":"object","description":"The normalised address. `null` when `status` is `unavailable`.","properties":{"address_line_1":{"oneOf":[{"type":"string","description":"First delivery line, written the way the country writes it.","example":"1600 Amphitheatre Pkwy"},{"type":"null","description":"First delivery line, written the way the country writes it.","example":"1600 Amphitheatre Pkwy"}]},"address_line_2":{"oneOf":[{"type":"string","description":"Second delivery line (a flat, building or neighbourhood), when the address has one."},{"type":"null","description":"Second delivery line (a flat, building or neighbourhood), when the address has one."}]},"city":{"oneOf":[{"type":"string","example":"Mountain View"},{"type":"null","example":"Mountain View"}]},"region":{"oneOf":[{"type":"string","description":"State, province or region.","example":"CA"},{"type":"null","description":"State, province or region.","example":"CA"}]},"postal_code":{"oneOf":[{"type":"string","example":"94043-1351"},{"type":"null","example":"94043-1351"}]},"country":{"oneOf":[{"type":"string","description":"ISO 3166-1 alpha-2 country code.","example":"US"},{"type":"null","description":"ISO 3166-1 alpha-2 country code.","example":"US"}]}}},{"type":"null","description":"The normalised address. `null` when `status` is `unavailable`.","properties":{"address_line_1":{"oneOf":[{"type":"string","description":"First delivery line, written the way the country writes it.","example":"1600 Amphitheatre Pkwy"},{"type":"null","description":"First delivery line, written the way the country writes it.","example":"1600 Amphitheatre Pkwy"}]},"address_line_2":{"oneOf":[{"type":"string","description":"Second delivery line (a flat, building or neighbourhood), when the address has one."},{"type":"null","description":"Second delivery line (a flat, building or neighbourhood), when the address has one."}]},"city":{"oneOf":[{"type":"string","example":"Mountain View"},{"type":"null","example":"Mountain View"}]},"region":{"oneOf":[{"type":"string","description":"State, province or region.","example":"CA"},{"type":"null","description":"State, province or region.","example":"CA"}]},"postal_code":{"oneOf":[{"type":"string","example":"94043-1351"},{"type":"null","example":"94043-1351"}]},"country":{"oneOf":[{"type":"string","description":"ISO 3166-1 alpha-2 country code.","example":"US"},{"type":"null","description":"ISO 3166-1 alpha-2 country code.","example":"US"}]}}}]},"formatted_address":{"oneOf":[{"type":"string","description":"The normalised address on one line.","example":"1600 Amphitheatre Pkwy, Mountain View CA 94043-1351"},{"type":"null","description":"The normalised address on one line.","example":"1600 Amphitheatre Pkwy, Mountain View CA 94043-1351"}]},"latitude":{"oneOf":[{"type":"number","example":37.422022},{"type":"null","example":37.422022}]},"longitude":{"oneOf":[{"type":"number","example":-122.08429},{"type":"null","example":-122.08429}]},"address_type":{"oneOf":[{"type":"string","enum":["street","po_box","high_rise","rural_route","general_delivery","firm","building",null],"description":"The kind of delivery point the address is, for United States and Canadian addresses: `street`, `po_box` (a PO box or lock box), `high_rise` (a high-rise or business complex), `rural_route`, `general_delivery`, `firm` (a firm or company address) or `building`. `null` for addresses in other countries, when the address has no type on record, and when `status` is `unavailable`."},{"type":"null","enum":["street","po_box","high_rise","rural_route","general_delivery","firm","building",null],"description":"The kind of delivery point the address is, for United States and Canadian addresses: `street`, `po_box` (a PO box or lock box), `high_rise` (a high-rise or business complex), `rural_route`, `general_delivery`, `firm` (a firm or company address) or `building`. `null` for addresses in other countries, when the address has no type on record, and when `status` is `unavailable`."}]},"is_residential":{"oneOf":[{"type":"boolean","description":"`true` when the address is a residence, `false` when it is a business. `null` when this is unknown, when it is not available for the address's country, and when `status` is `unavailable`. Available for addresses in the United States, Great Britain, the Netherlands and Ireland."},{"type":"null","description":"`true` when the address is a residence, `false` when it is a business. `null` when this is unknown, when it is not available for the address's country, and when `status` is `unavailable`. Available for addresses in the United States, Great Britain, the Netherlands and Ireland."}]}}},{"type":"null"}]}}},"uniqueKey":"poa_verifications.oneOf.1","typeLabel":"null"}],"uniqueKey":"poa_verifications","typeLabel":"object[] | null"},"document_ai_documents":{"oneOf":[{"type":"array","description":"**Document AI reports grouped by workflow node** — always a JSON array, never a singular object. `null` until at least one Document AI step has produced data. Present only when `session_kind = user`. Each item is a node group with an aggregate `status`, the `node_id`, an `items[]` array of the per-document results (extracted data keyed by the configured field key), and `warnings`.","items":{"type":"object","description":"Document AI results grouped by workflow node.","properties":{"status":{"type":"string","description":"Aggregate Document AI status for this node, rolled up from its `items[]`.","enum":["Approved","Declined","In Review","Not Finished"],"uniqueKey":"document_ai_documents.oneOf.0.items.[INDEX].status","typeLabel":"enum\u003cstring>"},"node_id":{"oneOf":[{"type":"string","description":"Unique identifier for this Document AI step in the workflow graph.","uniqueKey":"document_ai_documents.oneOf.0.items.[INDEX].node_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"Unique identifier for this Document AI step in the workflow graph.","uniqueKey":"document_ai_documents.oneOf.0.items.[INDEX].node_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"document_ai_documents.oneOf.0.items.[INDEX].node_id","typeLabel":"string | null"},"items":{"type":"array","items":{"type":"object","properties":{"uuid":{"type":"string","format":"uuid","uniqueKey":"document_ai_documents.oneOf.0.items.[INDEX].\\items.items.[INDEX].uuid","typeLabel":"string\u003cuuid>"},"node_id":{"oneOf":[{"type":"string","description":"Workflow graph node that produced this document.","uniqueKey":"document_ai_documents.oneOf.0.items.[INDEX].\\items.items.[INDEX].node_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"Workflow graph node that produced this document.","uniqueKey":"document_ai_documents.oneOf.0.items.[INDEX].\\items.items.[INDEX].node_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"document_ai_documents.oneOf.0.items.[INDEX].\\items.items.[INDEX].node_id","typeLabel":"string | null"},"document_key":{"type":"string","description":"Key of the configured Document AI document this file corresponds to.","uniqueKey":"document_ai_documents.oneOf.0.items.[INDEX].\\items.items.[INDEX].document_key","typeLabel":"string"},"original_filename":{"oneOf":[{"type":"string","description":"Filename as uploaded by the user.","uniqueKey":"document_ai_documents.oneOf.0.items.[INDEX].\\items.items.[INDEX].original_filename.oneOf.0","typeLabel":"string"},{"type":"null","description":"Filename as uploaded by the user.","uniqueKey":"document_ai_documents.oneOf.0.items.[INDEX].\\items.items.[INDEX].original_filename.oneOf.1","typeLabel":"null"}],"uniqueKey":"document_ai_documents.oneOf.0.items.[INDEX].\\items.items.[INDEX].original_filename","typeLabel":"string | null"},"file_size":{"oneOf":[{"type":"integer","description":"File size in bytes.","uniqueKey":"document_ai_documents.oneOf.0.items.[INDEX].\\items.items.[INDEX].file_size.oneOf.0","typeLabel":"integer"},{"type":"null","description":"File size in bytes.","uniqueKey":"document_ai_documents.oneOf.0.items.[INDEX].\\items.items.[INDEX].file_size.oneOf.1","typeLabel":"null"}],"uniqueKey":"document_ai_documents.oneOf.0.items.[INDEX].\\items.items.[INDEX].file_size","typeLabel":"integer | null"},"file_url":{"oneOf":[{"type":"string","format":"uri","description":"Short-lived presigned link to the uploaded file.","uniqueKey":"document_ai_documents.oneOf.0.items.[INDEX].\\items.items.[INDEX].file_url.oneOf.0","typeLabel":"string\u003curi>"},{"type":"null","format":"uri","description":"Short-lived presigned link to the uploaded file.","uniqueKey":"document_ai_documents.oneOf.0.items.[INDEX].\\items.items.[INDEX].file_url.oneOf.1","typeLabel":"null"}],"uniqueKey":"document_ai_documents.oneOf.0.items.[INDEX].\\items.items.[INDEX].file_url","typeLabel":"string\u003curi> | null"},"status":{"type":"string","enum":["Approved","Declined","In Review","Not Finished"],"description":"Per-document Document AI status.","uniqueKey":"document_ai_documents.oneOf.0.items.[INDEX].\\items.items.[INDEX].status","typeLabel":"enum\u003cstring>"},"extracted_data":{"oneOf":[{"type":"object","additionalProperties":true,"description":"Values extracted by Document AI, keyed by the configured field `key`. Each value is a string, number, or `null`.","uniqueKey":"document_ai_documents.oneOf.0.items.[INDEX].\\items.items.[INDEX].extracted_data.oneOf.0","typeLabel":"object"},{"type":"null","additionalProperties":true,"description":"Values extracted by Document AI, keyed by the configured field `key`. Each value is a string, number, or `null`.","uniqueKey":"document_ai_documents.oneOf.0.items.[INDEX].\\items.items.[INDEX].extracted_data.oneOf.1","typeLabel":"null"}],"uniqueKey":"document_ai_documents.oneOf.0.items.[INDEX].\\items.items.[INDEX].extracted_data","typeLabel":"object | null"},"detected_codes":{"type":"array","description":"QR codes and barcodes detected across every processed page. Empty when none are found. A located but undecodable QR code has `parsed_payload: null`.","items":{"type":"object","required":["type","page_number","position","x","y","width","height","page_width","page_height","raw_payload","parsed_payload"],"properties":{"type":{"type":"string","description":"Detected symbology, for example `QR_CODE`, `CODE_128`, `EAN_13`, `DATA_MATRIX`, or `PDF_417`.","isRequired":true,"uniqueKey":"document_ai_documents.oneOf.0.items.[INDEX].\\items.items.[INDEX].detected_codes.items.[INDEX].type","typeLabel":"string"},"page_number":{"type":"integer","minimum":1,"description":"1-based page number.","isRequired":true,"uniqueKey":"document_ai_documents.oneOf.0.items.[INDEX].\\items.items.[INDEX].detected_codes.items.[INDEX].page_number","typeLabel":"integer"},"position":{"oneOf":[{"type":"array","description":"Detected polygon in rendered-page pixel coordinates. `null` when no reliable location is available.","items":{"type":"array","minItems":2,"maxItems":2,"items":{"type":"integer","uniqueKey":"document_ai_documents.oneOf.0.items.[INDEX].\\items.items.[INDEX].detected_codes.items.[INDEX].position.oneOf.0.items.[INDEX].items.[INDEX]","typeLabel":"integer"},"uniqueKey":"document_ai_documents.oneOf.0.items.[INDEX].\\items.items.[INDEX].detected_codes.items.[INDEX].position.oneOf.0.items.[INDEX]","typeLabel":"integer[]"},"isRequired":true,"uniqueKey":"document_ai_documents.oneOf.0.items.[INDEX].\\items.items.[INDEX].detected_codes.items.[INDEX].position.oneOf.0","typeLabel":"integer[][]"},{"type":"null","description":"Detected polygon in rendered-page pixel coordinates. `null` when no reliable location is available.","items":{"type":"array","minItems":2,"maxItems":2,"items":{"type":"integer"}},"isRequired":true,"uniqueKey":"document_ai_documents.oneOf.0.items.[INDEX].\\items.items.[INDEX].detected_codes.items.[INDEX].position.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"document_ai_documents.oneOf.0.items.[INDEX].\\items.items.[INDEX].detected_codes.items.[INDEX].position","typeLabel":"integer[][] | null"},"x":{"oneOf":[{"type":"integer","description":"Left edge of the bounding box in rendered-page pixels.","isRequired":true,"uniqueKey":"document_ai_documents.oneOf.0.items.[INDEX].\\items.items.[INDEX].detected_codes.items.[INDEX].x.oneOf.0","typeLabel":"integer"},{"type":"null","description":"Left edge of the bounding box in rendered-page pixels.","isRequired":true,"uniqueKey":"document_ai_documents.oneOf.0.items.[INDEX].\\items.items.[INDEX].detected_codes.items.[INDEX].x.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"document_ai_documents.oneOf.0.items.[INDEX].\\items.items.[INDEX].detected_codes.items.[INDEX].x","typeLabel":"integer | null"},"y":{"oneOf":[{"type":"integer","description":"Top edge of the bounding box in rendered-page pixels.","isRequired":true,"uniqueKey":"document_ai_documents.oneOf.0.items.[INDEX].\\items.items.[INDEX].detected_codes.items.[INDEX].y.oneOf.0","typeLabel":"integer"},{"type":"null","description":"Top edge of the bounding box in rendered-page pixels.","isRequired":true,"uniqueKey":"document_ai_documents.oneOf.0.items.[INDEX].\\items.items.[INDEX].detected_codes.items.[INDEX].y.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"document_ai_documents.oneOf.0.items.[INDEX].\\items.items.[INDEX].detected_codes.items.[INDEX].y","typeLabel":"integer | null"},"width":{"oneOf":[{"type":"integer","description":"Bounding-box width in rendered-page pixels.","isRequired":true,"uniqueKey":"document_ai_documents.oneOf.0.items.[INDEX].\\items.items.[INDEX].detected_codes.items.[INDEX].width.oneOf.0","typeLabel":"integer"},{"type":"null","description":"Bounding-box width in rendered-page pixels.","isRequired":true,"uniqueKey":"document_ai_documents.oneOf.0.items.[INDEX].\\items.items.[INDEX].detected_codes.items.[INDEX].width.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"document_ai_documents.oneOf.0.items.[INDEX].\\items.items.[INDEX].detected_codes.items.[INDEX].width","typeLabel":"integer | null"},"height":{"oneOf":[{"type":"integer","description":"Bounding-box height in rendered-page pixels.","isRequired":true,"uniqueKey":"document_ai_documents.oneOf.0.items.[INDEX].\\items.items.[INDEX].detected_codes.items.[INDEX].height.oneOf.0","typeLabel":"integer"},{"type":"null","description":"Bounding-box height in rendered-page pixels.","isRequired":true,"uniqueKey":"document_ai_documents.oneOf.0.items.[INDEX].\\items.items.[INDEX].detected_codes.items.[INDEX].height.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"document_ai_documents.oneOf.0.items.[INDEX].\\items.items.[INDEX].detected_codes.items.[INDEX].height","typeLabel":"integer | null"},"page_width":{"type":"integer","description":"Rendered page width in pixels.","isRequired":true,"uniqueKey":"document_ai_documents.oneOf.0.items.[INDEX].\\items.items.[INDEX].detected_codes.items.[INDEX].page_width","typeLabel":"integer"},"page_height":{"type":"integer","description":"Rendered page height in pixels.","isRequired":true,"uniqueKey":"document_ai_documents.oneOf.0.items.[INDEX].\\items.items.[INDEX].detected_codes.items.[INDEX].page_height","typeLabel":"integer"},"raw_payload":{"type":"string","description":"Raw decoder payload as a base64 string when available; otherwise an empty string.","isRequired":true,"uniqueKey":"document_ai_documents.oneOf.0.items.[INDEX].\\items.items.[INDEX].detected_codes.items.[INDEX].raw_payload","typeLabel":"string"},"parsed_payload":{"oneOf":[{"description":"Decoded string or structured value. `null` when the code was located but could not be decoded.","isRequired":true,"uniqueKey":"document_ai_documents.oneOf.0.items.[INDEX].\\items.items.[INDEX].detected_codes.items.[INDEX].parsed_payload.oneOf.0","typeLabel":"any"},{"description":"Decoded string or structured value. `null` when the code was located but could not be decoded.","type":"null","isRequired":true,"uniqueKey":"document_ai_documents.oneOf.0.items.[INDEX].\\items.items.[INDEX].detected_codes.items.[INDEX].parsed_payload.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"document_ai_documents.oneOf.0.items.[INDEX].\\items.items.[INDEX].detected_codes.items.[INDEX].parsed_payload","typeLabel":"any | null"}},"uniqueKey":"document_ai_documents.oneOf.0.items.[INDEX].\\items.items.[INDEX].detected_codes.items.[INDEX]","typeLabel":"object"},"uniqueKey":"document_ai_documents.oneOf.0.items.[INDEX].\\items.items.[INDEX].detected_codes","typeLabel":"object[]"},"fields":{"type":"array","description":"The configured extraction fields for this document.","items":{"type":"object","properties":{"key":{"type":"string","description":"Stable field key used as the key in `extracted_data`.","uniqueKey":"document_ai_documents.oneOf.0.items.[INDEX].\\items.items.[INDEX].fields.items.[INDEX].key","typeLabel":"string"},"name":{"type":"string","description":"Human-readable field name.","uniqueKey":"document_ai_documents.oneOf.0.items.[INDEX].\\items.items.[INDEX].fields.items.[INDEX].name","typeLabel":"string"},"instruction":{"type":"string","description":"Extraction instruction shown to the model.","uniqueKey":"document_ai_documents.oneOf.0.items.[INDEX].\\items.items.[INDEX].fields.items.[INDEX].instruction","typeLabel":"string"},"type":{"type":"string","enum":["text","number","date"],"description":"Expected value type of the extracted field.","uniqueKey":"document_ai_documents.oneOf.0.items.[INDEX].\\items.items.[INDEX].fields.items.[INDEX].type","typeLabel":"enum\u003cstring>"},"required":{"type":"boolean","description":"Whether this field is required.","uniqueKey":"document_ai_documents.oneOf.0.items.[INDEX].\\items.items.[INDEX].fields.items.[INDEX].required","typeLabel":"boolean"}},"uniqueKey":"document_ai_documents.oneOf.0.items.[INDEX].\\items.items.[INDEX].fields.items.[INDEX]","typeLabel":"object"},"uniqueKey":"document_ai_documents.oneOf.0.items.[INDEX].\\items.items.[INDEX].fields","typeLabel":"object[]"},"document_metadata":{"oneOf":[{"type":"object","description":"File-forensics metadata extracted from the uploaded document (e.g. `is_tampered`). `null` when nothing could be extracted.","uniqueKey":"document_ai_documents.oneOf.0.items.[INDEX].\\items.items.[INDEX].document_metadata.oneOf.0","typeLabel":"object"},{"type":"null","description":"File-forensics metadata extracted from the uploaded document (e.g. `is_tampered`). `null` when nothing could be extracted.","uniqueKey":"document_ai_documents.oneOf.0.items.[INDEX].\\items.items.[INDEX].document_metadata.oneOf.1","typeLabel":"null"}],"uniqueKey":"document_ai_documents.oneOf.0.items.[INDEX].\\items.items.[INDEX].document_metadata","typeLabel":"object | null"},"cross_check_result":{"oneOf":[{"type":"object","description":"Cross-reference of the extracted document fields against other session data. `null` when no cross-check was performed.","uniqueKey":"document_ai_documents.oneOf.0.items.[INDEX].\\items.items.[INDEX].cross_check_result.oneOf.0","typeLabel":"object"},{"type":"null","description":"Cross-reference of the extracted document fields against other session data. `null` when no cross-check was performed.","uniqueKey":"document_ai_documents.oneOf.0.items.[INDEX].\\items.items.[INDEX].cross_check_result.oneOf.1","typeLabel":"null"}],"uniqueKey":"document_ai_documents.oneOf.0.items.[INDEX].\\items.items.[INDEX].cross_check_result","typeLabel":"object | null"},"created_at":{"type":"string","format":"date-time","uniqueKey":"document_ai_documents.oneOf.0.items.[INDEX].\\items.items.[INDEX].created_at","typeLabel":"string\u003cdate-time>"}},"uniqueKey":"document_ai_documents.oneOf.0.items.[INDEX].\\items.items.[INDEX]","typeLabel":"object"},"uniqueKey":"document_ai_documents.oneOf.0.items.[INDEX].\\items","typeLabel":"object[]"},"warnings":{"oneOf":[{"type":"array","items":{"type":"object","uniqueKey":"document_ai_documents.oneOf.0.items.[INDEX].warnings.oneOf.0.items.[INDEX]","typeLabel":"object"},"description":"Warning logs raised for this Document AI node.","uniqueKey":"document_ai_documents.oneOf.0.items.[INDEX].warnings.oneOf.0","typeLabel":"object[]"},{"type":"null","items":{"type":"object"},"description":"Warning logs raised for this Document AI node.","uniqueKey":"document_ai_documents.oneOf.0.items.[INDEX].warnings.oneOf.1","typeLabel":"null"}],"uniqueKey":"document_ai_documents.oneOf.0.items.[INDEX].warnings","typeLabel":"object[] | null"}},"uniqueKey":"document_ai_documents.oneOf.0.items.[INDEX]","typeLabel":"object"},"uniqueKey":"document_ai_documents.oneOf.0","typeLabel":"object[]"},{"type":"null","description":"**Document AI reports grouped by workflow node** — always a JSON array, never a singular object. `null` until at least one Document AI step has produced data. Present only when `session_kind = user`. Each item is a node group with an aggregate `status`, the `node_id`, an `items[]` array of the per-document results (extracted data keyed by the configured field key), and `warnings`.","items":{"type":"object","description":"Document AI results grouped by workflow node.","properties":{"status":{"type":"string","description":"Aggregate Document AI status for this node, rolled up from its `items[]`.","enum":["Approved","Declined","In Review","Not Finished"]},"node_id":{"oneOf":[{"type":"string","description":"Unique identifier for this Document AI step in the workflow graph."},{"type":"null","description":"Unique identifier for this Document AI step in the workflow graph."}]},"items":{"type":"array","items":{"type":"object","properties":{"uuid":{"type":"string","format":"uuid"},"node_id":{"oneOf":[{"type":"string","description":"Workflow graph node that produced this document."},{"type":"null","description":"Workflow graph node that produced this document."}]},"document_key":{"type":"string","description":"Key of the configured Document AI document this file corresponds to."},"original_filename":{"oneOf":[{"type":"string","description":"Filename as uploaded by the user."},{"type":"null","description":"Filename as uploaded by the user."}]},"file_size":{"oneOf":[{"type":"integer","description":"File size in bytes."},{"type":"null","description":"File size in bytes."}]},"file_url":{"oneOf":[{"type":"string","format":"uri","description":"Short-lived presigned link to the uploaded file."},{"type":"null","format":"uri","description":"Short-lived presigned link to the uploaded file."}]},"status":{"type":"string","enum":["Approved","Declined","In Review","Not Finished"],"description":"Per-document Document AI status."},"extracted_data":{"oneOf":[{"type":"object","additionalProperties":true,"description":"Values extracted by Document AI, keyed by the configured field `key`. Each value is a string, number, or `null`."},{"type":"null","additionalProperties":true,"description":"Values extracted by Document AI, keyed by the configured field `key`. Each value is a string, number, or `null`."}]},"detected_codes":{"type":"array","description":"QR codes and barcodes detected across every processed page. Empty when none are found. A located but undecodable QR code has `parsed_payload: null`.","items":{"type":"object","required":["type","page_number","position","x","y","width","height","page_width","page_height","raw_payload","parsed_payload"],"properties":{"type":{"type":"string","description":"Detected symbology, for example `QR_CODE`, `CODE_128`, `EAN_13`, `DATA_MATRIX`, or `PDF_417`."},"page_number":{"type":"integer","minimum":1,"description":"1-based page number."},"position":{"oneOf":[{"type":"array","description":"Detected polygon in rendered-page pixel coordinates. `null` when no reliable location is available.","items":{"type":"array","minItems":2,"maxItems":2,"items":{"type":"integer"}}},{"type":"null","description":"Detected polygon in rendered-page pixel coordinates. `null` when no reliable location is available.","items":{"type":"array","minItems":2,"maxItems":2,"items":{"type":"integer"}}}]},"x":{"oneOf":[{"type":"integer","description":"Left edge of the bounding box in rendered-page pixels."},{"type":"null","description":"Left edge of the bounding box in rendered-page pixels."}]},"y":{"oneOf":[{"type":"integer","description":"Top edge of the bounding box in rendered-page pixels."},{"type":"null","description":"Top edge of the bounding box in rendered-page pixels."}]},"width":{"oneOf":[{"type":"integer","description":"Bounding-box width in rendered-page pixels."},{"type":"null","description":"Bounding-box width in rendered-page pixels."}]},"height":{"oneOf":[{"type":"integer","description":"Bounding-box height in rendered-page pixels."},{"type":"null","description":"Bounding-box height in rendered-page pixels."}]},"page_width":{"type":"integer","description":"Rendered page width in pixels."},"page_height":{"type":"integer","description":"Rendered page height in pixels."},"raw_payload":{"type":"string","description":"Raw decoder payload as a base64 string when available; otherwise an empty string."},"parsed_payload":{"oneOf":[{"description":"Decoded string or structured value. `null` when the code was located but could not be decoded."},{"description":"Decoded string or structured value. `null` when the code was located but could not be decoded.","type":"null"}]}}}},"fields":{"type":"array","description":"The configured extraction fields for this document.","items":{"type":"object","properties":{"key":{"type":"string","description":"Stable field key used as the key in `extracted_data`."},"name":{"type":"string","description":"Human-readable field name."},"instruction":{"type":"string","description":"Extraction instruction shown to the model."},"type":{"type":"string","enum":["text","number","date"],"description":"Expected value type of the extracted field."},"required":{"type":"boolean","description":"Whether this field is required."}}}},"document_metadata":{"oneOf":[{"type":"object","description":"File-forensics metadata extracted from the uploaded document (e.g. `is_tampered`). `null` when nothing could be extracted."},{"type":"null","description":"File-forensics metadata extracted from the uploaded document (e.g. `is_tampered`). `null` when nothing could be extracted."}]},"cross_check_result":{"oneOf":[{"type":"object","description":"Cross-reference of the extracted document fields against other session data. `null` when no cross-check was performed."},{"type":"null","description":"Cross-reference of the extracted document fields against other session data. `null` when no cross-check was performed."}]},"created_at":{"type":"string","format":"date-time"}}}},"warnings":{"oneOf":[{"type":"array","items":{"type":"object"},"description":"Warning logs raised for this Document AI node."},{"type":"null","items":{"type":"object"},"description":"Warning logs raised for this Document AI node."}]}}},"uniqueKey":"document_ai_documents.oneOf.1","typeLabel":"null"}],"uniqueKey":"document_ai_documents","typeLabel":"object[] | null"},"questionnaire_responses":{"oneOf":[{"type":"array","description":"**Array of questionnaire response reports** — always a JSON array, never a singular `questionnaire` object. `null` until at least one questionnaire step has produced data. Each item is the full report, including `node_id`, the questionnaire metadata, sections with form elements, and the user's answers.","items":{"type":"object","properties":{"node_id":{"type":"string","description":"Unique identifier for this questionnaire step in the workflow graph.","uniqueKey":"questionnaire_responses.oneOf.0.items.[INDEX].node_id","typeLabel":"string"},"questionnaire_id":{"type":"string","description":"Unique identifier for the questionnaire","uniqueKey":"questionnaire_responses.oneOf.0.items.[INDEX].questionnaire_id","typeLabel":"string"},"title":{"type":"string","description":"Title of the questionnaire","uniqueKey":"questionnaire_responses.oneOf.0.items.[INDEX].title","typeLabel":"string"},"description":{"type":"string","description":"Description of the questionnaire","uniqueKey":"questionnaire_responses.oneOf.0.items.[INDEX].description","typeLabel":"string"},"languages":{"type":"array","items":{"type":"string","uniqueKey":"questionnaire_responses.oneOf.0.items.[INDEX].languages.items.[INDEX]","typeLabel":"string"},"description":"Supported languages","uniqueKey":"questionnaire_responses.oneOf.0.items.[INDEX].languages","typeLabel":"string[]"},"default_language":{"type":"string","description":"Default language","uniqueKey":"questionnaire_responses.oneOf.0.items.[INDEX].default_language","typeLabel":"string"},"is_active":{"type":"boolean","description":"Whether the questionnaire is active","uniqueKey":"questionnaire_responses.oneOf.0.items.[INDEX].is_active","typeLabel":"boolean"},"is_simple_questionnaire":{"type":"boolean","description":"Whether the questionnaire is a simple linear form (no branching graph).","uniqueKey":"questionnaire_responses.oneOf.0.items.[INDEX].is_simple_questionnaire","typeLabel":"boolean"},"questionnaire_group_id":{"oneOf":[{"type":"string","format":"uuid","description":"Stable identifier of the questionnaire group across versions.","uniqueKey":"questionnaire_responses.oneOf.0.items.[INDEX].questionnaire_group_id.oneOf.0","typeLabel":"string\u003cuuid>"},{"type":"null","format":"uuid","description":"Stable identifier of the questionnaire group across versions.","uniqueKey":"questionnaire_responses.oneOf.0.items.[INDEX].questionnaire_group_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"questionnaire_responses.oneOf.0.items.[INDEX].questionnaire_group_id","typeLabel":"string\u003cuuid> | null"},"version":{"oneOf":[{"type":"integer","description":"Version number of the questionnaire that was answered.","uniqueKey":"questionnaire_responses.oneOf.0.items.[INDEX].version.oneOf.0","typeLabel":"integer"},{"type":"null","description":"Version number of the questionnaire that was answered.","uniqueKey":"questionnaire_responses.oneOf.0.items.[INDEX].version.oneOf.1","typeLabel":"null"}],"uniqueKey":"questionnaire_responses.oneOf.0.items.[INDEX].version","typeLabel":"integer | null"},"published_at":{"oneOf":[{"type":"string","format":"date-time","description":"Timestamp at which this questionnaire version was published.","uniqueKey":"questionnaire_responses.oneOf.0.items.[INDEX].published_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","description":"Timestamp at which this questionnaire version was published.","uniqueKey":"questionnaire_responses.oneOf.0.items.[INDEX].published_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"questionnaire_responses.oneOf.0.items.[INDEX].published_at","typeLabel":"string\u003cdate-time> | null"},"sections":{"type":"array","items":{"type":"object","properties":{"title":{"oneOf":[{"type":"string","description":"Section title","uniqueKey":"questionnaire_responses.oneOf.0.items.[INDEX].sections.items.[INDEX].title.oneOf.0","typeLabel":"string"},{"type":"null","description":"Section title","uniqueKey":"questionnaire_responses.oneOf.0.items.[INDEX].sections.items.[INDEX].title.oneOf.1","typeLabel":"null"}],"uniqueKey":"questionnaire_responses.oneOf.0.items.[INDEX].sections.items.[INDEX].title","typeLabel":"string | null"},"description":{"oneOf":[{"type":"string","description":"Section description","uniqueKey":"questionnaire_responses.oneOf.0.items.[INDEX].sections.items.[INDEX].description.oneOf.0","typeLabel":"string"},{"type":"null","description":"Section description","uniqueKey":"questionnaire_responses.oneOf.0.items.[INDEX].sections.items.[INDEX].description.oneOf.1","typeLabel":"null"}],"uniqueKey":"questionnaire_responses.oneOf.0.items.[INDEX].sections.items.[INDEX].description","typeLabel":"string | null"},"items":{"type":"array","items":{"type":"object","properties":{"uuid":{"type":"string","description":"Unique identifier for the item","isRequired":true,"uniqueKey":"questionnaire_responses.oneOf.0.items.[INDEX].sections.items.[INDEX].\\items.items.[INDEX].uuid","typeLabel":"string"},"value":{"oneOf":[{"type":"string","description":"Stable node identifier of this form element within the questionnaire graph.","isRequired":true,"uniqueKey":"questionnaire_responses.oneOf.0.items.[INDEX].sections.items.[INDEX].\\items.items.[INDEX].value.oneOf.0","typeLabel":"string"},{"type":"null","description":"Stable node identifier of this form element within the questionnaire graph.","isRequired":true,"uniqueKey":"questionnaire_responses.oneOf.0.items.[INDEX].sections.items.[INDEX].\\items.items.[INDEX].value.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"questionnaire_responses.oneOf.0.items.[INDEX].sections.items.[INDEX].\\items.items.[INDEX].value","typeLabel":"string | null"},"element_type":{"type":"string","description":"Type of the questionnaire element","isRequired":true,"uniqueKey":"questionnaire_responses.oneOf.0.items.[INDEX].sections.items.[INDEX].\\items.items.[INDEX].element_type","typeLabel":"string"},"is_required":{"type":"boolean","description":"Whether the item is required","isRequired":true,"uniqueKey":"questionnaire_responses.oneOf.0.items.[INDEX].sections.items.[INDEX].\\items.items.[INDEX].is_required","typeLabel":"boolean"},"title":{"type":"string","description":"Title of the item","isRequired":true,"uniqueKey":"questionnaire_responses.oneOf.0.items.[INDEX].sections.items.[INDEX].\\items.items.[INDEX].title","typeLabel":"string"},"description":{"oneOf":[{"type":"string","description":"Description of the item","uniqueKey":"questionnaire_responses.oneOf.0.items.[INDEX].sections.items.[INDEX].\\items.items.[INDEX].description.oneOf.0","typeLabel":"string"},{"type":"null","description":"Description of the item","uniqueKey":"questionnaire_responses.oneOf.0.items.[INDEX].sections.items.[INDEX].\\items.items.[INDEX].description.oneOf.1","typeLabel":"null"}],"uniqueKey":"questionnaire_responses.oneOf.0.items.[INDEX].sections.items.[INDEX].\\items.items.[INDEX].description","typeLabel":"string | null"},"placeholder":{"oneOf":[{"type":"string","description":"Placeholder text","uniqueKey":"questionnaire_responses.oneOf.0.items.[INDEX].sections.items.[INDEX].\\items.items.[INDEX].placeholder.oneOf.0","typeLabel":"string"},{"type":"null","description":"Placeholder text","uniqueKey":"questionnaire_responses.oneOf.0.items.[INDEX].sections.items.[INDEX].\\items.items.[INDEX].placeholder.oneOf.1","typeLabel":"null"}],"uniqueKey":"questionnaire_responses.oneOf.0.items.[INDEX].sections.items.[INDEX].\\items.items.[INDEX].placeholder","typeLabel":"string | null"},"choices":{"oneOf":[{"type":"array","items":{"type":"object","properties":{"label":{"type":"string","isRequired":true,"uniqueKey":"questionnaire_responses.oneOf.0.items.[INDEX].sections.items.[INDEX].\\items.items.[INDEX].choices.oneOf.0.items.[INDEX].label","typeLabel":"string"},"value":{"type":"string","isRequired":true,"uniqueKey":"questionnaire_responses.oneOf.0.items.[INDEX].sections.items.[INDEX].\\items.items.[INDEX].choices.oneOf.0.items.[INDEX].value","typeLabel":"string"},"requires_text_input":{"oneOf":[{"type":"boolean","description":"Whether this choice requires additional text input","uniqueKey":"questionnaire_responses.oneOf.0.items.[INDEX].sections.items.[INDEX].\\items.items.[INDEX].choices.oneOf.0.items.[INDEX].requires_text_input.oneOf.0","typeLabel":"boolean"},{"type":"null","description":"Whether this choice requires additional text input","uniqueKey":"questionnaire_responses.oneOf.0.items.[INDEX].sections.items.[INDEX].\\items.items.[INDEX].choices.oneOf.0.items.[INDEX].requires_text_input.oneOf.1","typeLabel":"null"}],"uniqueKey":"questionnaire_responses.oneOf.0.items.[INDEX].sections.items.[INDEX].\\items.items.[INDEX].choices.oneOf.0.items.[INDEX].requires_text_input","typeLabel":"boolean | null"}},"required":["label","value"],"uniqueKey":"questionnaire_responses.oneOf.0.items.[INDEX].sections.items.[INDEX].\\items.items.[INDEX].choices.oneOf.0.items.[INDEX]","typeLabel":"object"},"description":"Choices for dropdown or single choice elements","uniqueKey":"questionnaire_responses.oneOf.0.items.[INDEX].sections.items.[INDEX].\\items.items.[INDEX].choices.oneOf.0","typeLabel":"object[]"},{"type":"null","items":{"type":"object","properties":{"label":{"type":"string"},"value":{"type":"string"},"requires_text_input":{"oneOf":[{"type":"boolean","description":"Whether this choice requires additional text input"},{"type":"null","description":"Whether this choice requires additional text input"}]}},"required":["label","value"]},"description":"Choices for dropdown or single choice elements","uniqueKey":"questionnaire_responses.oneOf.0.items.[INDEX].sections.items.[INDEX].\\items.items.[INDEX].choices.oneOf.1","typeLabel":"null"}],"uniqueKey":"questionnaire_responses.oneOf.0.items.[INDEX].sections.items.[INDEX].\\items.items.[INDEX].choices","typeLabel":"object[] | null"},"max_files":{"oneOf":[{"type":"integer","description":"Maximum number of files allowed","uniqueKey":"questionnaire_responses.oneOf.0.items.[INDEX].sections.items.[INDEX].\\items.items.[INDEX].max_files.oneOf.0","typeLabel":"integer"},{"type":"null","description":"Maximum number of files allowed","uniqueKey":"questionnaire_responses.oneOf.0.items.[INDEX].sections.items.[INDEX].\\items.items.[INDEX].max_files.oneOf.1","typeLabel":"null"}],"uniqueKey":"questionnaire_responses.oneOf.0.items.[INDEX].sections.items.[INDEX].\\items.items.[INDEX].max_files","typeLabel":"integer | null"},"answer":{"type":"object","description":"Answer provided for the item","properties":{"value":{"oneOf":[{"type":"string","uniqueKey":"questionnaire_responses.oneOf.0.items.[INDEX].sections.items.[INDEX].\\items.items.[INDEX].answer.value.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"questionnaire_responses.oneOf.0.items.[INDEX].sections.items.[INDEX].\\items.items.[INDEX].answer.value.oneOf.1","typeLabel":"null"}],"uniqueKey":"questionnaire_responses.oneOf.0.items.[INDEX].sections.items.[INDEX].\\items.items.[INDEX].answer.value","typeLabel":"string | null"},"text":{"oneOf":[{"type":"string","uniqueKey":"questionnaire_responses.oneOf.0.items.[INDEX].sections.items.[INDEX].\\items.items.[INDEX].answer.text.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"questionnaire_responses.oneOf.0.items.[INDEX].sections.items.[INDEX].\\items.items.[INDEX].answer.text.oneOf.1","typeLabel":"null"}],"uniqueKey":"questionnaire_responses.oneOf.0.items.[INDEX].sections.items.[INDEX].\\items.items.[INDEX].answer.text","typeLabel":"string | null"},"files":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"questionnaire_responses.oneOf.0.items.[INDEX].sections.items.[INDEX].\\items.items.[INDEX].answer.files.oneOf.0.items.[INDEX]","typeLabel":"string"},"uniqueKey":"questionnaire_responses.oneOf.0.items.[INDEX].sections.items.[INDEX].\\items.items.[INDEX].answer.files.oneOf.0","typeLabel":"string[]"},{"type":"null","items":{"type":"string"},"uniqueKey":"questionnaire_responses.oneOf.0.items.[INDEX].sections.items.[INDEX].\\items.items.[INDEX].answer.files.oneOf.1","typeLabel":"null"}],"uniqueKey":"questionnaire_responses.oneOf.0.items.[INDEX].sections.items.[INDEX].\\items.items.[INDEX].answer.files","typeLabel":"string[] | null"}},"uniqueKey":"questionnaire_responses.oneOf.0.items.[INDEX].sections.items.[INDEX].\\items.items.[INDEX].answer","typeLabel":"object"},"required_if":{"oneOf":[{"type":"object","description":"Conditional-requirement rule, when the element is only required for certain answers.","uniqueKey":"questionnaire_responses.oneOf.0.items.[INDEX].sections.items.[INDEX].\\items.items.[INDEX].required_if.oneOf.0","typeLabel":"object"},{"type":"null","description":"Conditional-requirement rule, when the element is only required for certain answers.","uniqueKey":"questionnaire_responses.oneOf.0.items.[INDEX].sections.items.[INDEX].\\items.items.[INDEX].required_if.oneOf.1","typeLabel":"null"}],"uniqueKey":"questionnaire_responses.oneOf.0.items.[INDEX].sections.items.[INDEX].\\items.items.[INDEX].required_if","typeLabel":"object | null"},"repeatable_config":{"oneOf":[{"type":"object","description":"Configuration for repeatable element groups, when applicable.","uniqueKey":"questionnaire_responses.oneOf.0.items.[INDEX].sections.items.[INDEX].\\items.items.[INDEX].repeatable_config.oneOf.0","typeLabel":"object"},{"type":"null","description":"Configuration for repeatable element groups, when applicable.","uniqueKey":"questionnaire_responses.oneOf.0.items.[INDEX].sections.items.[INDEX].\\items.items.[INDEX].repeatable_config.oneOf.1","typeLabel":"null"}],"uniqueKey":"questionnaire_responses.oneOf.0.items.[INDEX].sections.items.[INDEX].\\items.items.[INDEX].repeatable_config","typeLabel":"object | null"}},"required":["uuid","value","element_type","is_required","title"],"uniqueKey":"questionnaire_responses.oneOf.0.items.[INDEX].sections.items.[INDEX].\\items.items.[INDEX]","typeLabel":"object"},"uniqueKey":"questionnaire_responses.oneOf.0.items.[INDEX].sections.items.[INDEX].\\items","typeLabel":"object[]"}},"uniqueKey":"questionnaire_responses.oneOf.0.items.[INDEX].sections.items.[INDEX]","typeLabel":"object"},"uniqueKey":"questionnaire_responses.oneOf.0.items.[INDEX].sections","typeLabel":"object[]"},"status":{"type":"string","description":"Status of the questionnaire","uniqueKey":"questionnaire_responses.oneOf.0.items.[INDEX].status","typeLabel":"string"}},"uniqueKey":"questionnaire_responses.oneOf.0.items.[INDEX]","typeLabel":"object"},"uniqueKey":"questionnaire_responses.oneOf.0","typeLabel":"object[]"},{"type":"null","description":"**Array of questionnaire response reports** — always a JSON array, never a singular `questionnaire` object. `null` until at least one questionnaire step has produced data. Each item is the full report, including `node_id`, the questionnaire metadata, sections with form elements, and the user's answers.","items":{"type":"object","properties":{"node_id":{"type":"string","description":"Unique identifier for this questionnaire step in the workflow graph."},"questionnaire_id":{"type":"string","description":"Unique identifier for the questionnaire"},"title":{"type":"string","description":"Title of the questionnaire"},"description":{"type":"string","description":"Description of the questionnaire"},"languages":{"type":"array","items":{"type":"string"},"description":"Supported languages"},"default_language":{"type":"string","description":"Default language"},"is_active":{"type":"boolean","description":"Whether the questionnaire is active"},"is_simple_questionnaire":{"type":"boolean","description":"Whether the questionnaire is a simple linear form (no branching graph)."},"questionnaire_group_id":{"oneOf":[{"type":"string","format":"uuid","description":"Stable identifier of the questionnaire group across versions."},{"type":"null","format":"uuid","description":"Stable identifier of the questionnaire group across versions."}]},"version":{"oneOf":[{"type":"integer","description":"Version number of the questionnaire that was answered."},{"type":"null","description":"Version number of the questionnaire that was answered."}]},"published_at":{"oneOf":[{"type":"string","format":"date-time","description":"Timestamp at which this questionnaire version was published."},{"type":"null","format":"date-time","description":"Timestamp at which this questionnaire version was published."}]},"sections":{"type":"array","items":{"type":"object","properties":{"title":{"oneOf":[{"type":"string","description":"Section title"},{"type":"null","description":"Section title"}]},"description":{"oneOf":[{"type":"string","description":"Section description"},{"type":"null","description":"Section description"}]},"items":{"type":"array","items":{"type":"object","properties":{"uuid":{"type":"string","description":"Unique identifier for the item"},"value":{"oneOf":[{"type":"string","description":"Stable node identifier of this form element within the questionnaire graph."},{"type":"null","description":"Stable node identifier of this form element within the questionnaire graph."}]},"element_type":{"type":"string","description":"Type of the questionnaire element"},"is_required":{"type":"boolean","description":"Whether the item is required"},"title":{"type":"string","description":"Title of the item"},"description":{"oneOf":[{"type":"string","description":"Description of the item"},{"type":"null","description":"Description of the item"}]},"placeholder":{"oneOf":[{"type":"string","description":"Placeholder text"},{"type":"null","description":"Placeholder text"}]},"choices":{"oneOf":[{"type":"array","items":{"type":"object","properties":{"label":{"type":"string"},"value":{"type":"string"},"requires_text_input":{"oneOf":[{"type":"boolean","description":"Whether this choice requires additional text input"},{"type":"null","description":"Whether this choice requires additional text input"}]}},"required":["label","value"]},"description":"Choices for dropdown or single choice elements"},{"type":"null","items":{"type":"object","properties":{"label":{"type":"string"},"value":{"type":"string"},"requires_text_input":{"oneOf":[{"type":"boolean","description":"Whether this choice requires additional text input"},{"type":"null","description":"Whether this choice requires additional text input"}]}},"required":["label","value"]},"description":"Choices for dropdown or single choice elements"}]},"max_files":{"oneOf":[{"type":"integer","description":"Maximum number of files allowed"},{"type":"null","description":"Maximum number of files allowed"}]},"answer":{"type":"object","description":"Answer provided for the item","properties":{"value":{"oneOf":[{"type":"string"},{"type":"null"}]},"text":{"oneOf":[{"type":"string"},{"type":"null"}]},"files":{"oneOf":[{"type":"array","items":{"type":"string"}},{"type":"null","items":{"type":"string"}}]}}},"required_if":{"oneOf":[{"type":"object","description":"Conditional-requirement rule, when the element is only required for certain answers."},{"type":"null","description":"Conditional-requirement rule, when the element is only required for certain answers."}]},"repeatable_config":{"oneOf":[{"type":"object","description":"Configuration for repeatable element groups, when applicable."},{"type":"null","description":"Configuration for repeatable element groups, when applicable."}]}},"required":["uuid","value","element_type","is_required","title"]}}}}},"status":{"type":"string","description":"Status of the questionnaire"}}},"uniqueKey":"questionnaire_responses.oneOf.1","typeLabel":"null"}],"uniqueKey":"questionnaire_responses","typeLabel":"object[] | null"},"bank_verifications":{"oneOf":[{"type":"array","description":"Bank Verification results, one item per Bank Verification step, for User and Business Verification. `null` until a step produces one. Each item's `method` says how the account was verified: `open_banking` (bank sign-in) or `account_lookup` (account check), or a `statement` or `microdeposits` fallback, and `none` when the person continued without a bank before any attempt was evaluated (`continued_without_bank`). See [Bank verification methods](/core-technology/bank-verification/verification-methods).","items":{"type":"object","description":"One Bank Verification step's result, for User and Business Verification. `method` says how the account was verified, and `none` that the person continued without a bank before any attempt was evaluated. `continued_without_bank` says the person continued without a bank, also after an evaluated attempt. See [Bank verification methods](/core-technology/bank-verification/verification-methods) and [When the person cannot verify their bank](/core-technology/bank-verification/fallbacks).","properties":{"schema_version":{"type":"integer","description":"Version of this result shape. `1` today.","uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].schema_version","typeLabel":"integer"},"bank_verification_id":{"type":"string","format":"uuid","description":"The ID of this result.","uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].bank_verification_id","typeLabel":"string\u003cuuid>"},"node_id":{"type":"string","description":"The workflow node this result belongs to.","uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].node_id","typeLabel":"string"},"status":{"type":"string","enum":["Not Finished","Approved","Declined","In Review","Expired"],"description":"The step's verdict, after its actions and status rules.","uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].status","typeLabel":"enum\u003cstring>"},"original_status":{"oneOf":[{"type":"string","description":"The first verdict the step reached, before any later change such as a manual review.","uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].original_status.oneOf.0","typeLabel":"string"},{"type":"null","description":"The first verdict the step reached, before any later change such as a manual review.","uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].original_status.oneOf.1","typeLabel":"null"}],"uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].original_status","typeLabel":"string | null"},"method":{"oneOf":[{"type":"string","enum":["open_banking","account_lookup","microdeposits","statement","none"],"description":"How the account was verified: `open_banking` (bank sign-in: the person signed in at their bank), `account_lookup` (account check: the person typed the account details and the bank confirmed the name), `microdeposits` or `statement` (a statement upload). `none` when the person continued without a bank before any attempt was evaluated, so no account was verified. After an evaluated attempt, it stays the method of that attempt. `null` until an account is evaluated, and when the workflow narrows the data it returns. Workflow rules read the same value as `bank.method`.","uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].method.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["open_banking","account_lookup","microdeposits","statement","none"],"description":"How the account was verified: `open_banking` (bank sign-in: the person signed in at their bank), `account_lookup` (account check: the person typed the account details and the bank confirmed the name), `microdeposits` or `statement` (a statement upload). `none` when the person continued without a bank before any attempt was evaluated, so no account was verified. After an evaluated attempt, it stays the method of that attempt. `null` until an account is evaluated, and when the workflow narrows the data it returns. Workflow rules read the same value as `bank.method`.","uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].method.oneOf.1","typeLabel":"null"}],"uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].method","typeLabel":"enum\u003cstring> | null"},"provider":{"oneOf":[{"type":"string","description":"The key of the route that ran the connection. Read `method`, not this key, to tell how the account was verified.","uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].provider.oneOf.0","typeLabel":"string"},{"type":"null","description":"The key of the route that ran the connection. Read `method`, not this key, to tell how the account was verified.","uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].provider.oneOf.1","typeLabel":"null"}],"uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].provider","typeLabel":"string | null"},"credential_source":{"oneOf":[{"type":"string","enum":["native","byok"],"description":"`native`: Didit's own route, billed to your Didit balance. `byok`: a marketplace provider you connected with your own credentials.","uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].credential_source.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["native","byok"],"description":"`native`: Didit's own route, billed to your Didit balance. `byok`: a marketplace provider you connected with your own credentials.","uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].credential_source.oneOf.1","typeLabel":"null"}],"uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].credential_source","typeLabel":"enum\u003cstring> | null"},"route":{"oneOf":[{"type":"object","description":"The route chosen before consent. It never changes afterwards.","properties":{"provider_key":{"oneOf":[{"type":"string","description":"The route's key.","uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].route.oneOf.0.provider_key.oneOf.0","typeLabel":"string"},{"type":"null","description":"The route's key.","uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].route.oneOf.0.provider_key.oneOf.1","typeLabel":"null"}],"uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].route.oneOf.0.provider_key","typeLabel":"string | null"},"credential_source":{"type":"string","enum":["native","byok"],"uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].route.oneOf.0.credential_source","typeLabel":"enum\u003cstring>"},"is_fallback":{"type":"boolean","description":"Whether Didit's own route stood in for a marketplace provider that could not connect.","uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].route.oneOf.0.is_fallback","typeLabel":"boolean"},"provider_connection_id":{"oneOf":[{"type":"string","description":"The marketplace connection used, for `byok`.","uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].route.oneOf.0.provider_connection_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"The marketplace connection used, for `byok`.","uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].route.oneOf.0.provider_connection_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].route.oneOf.0.provider_connection_id","typeLabel":"string | null"},"requested_scopes":{"type":"array","items":{"type":"string","uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].route.oneOf.0.requested_scopes.items.[INDEX]","typeLabel":"string"},"description":"The data the connection asked for, for example `ownership` or `balances`.","uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].route.oneOf.0.requested_scopes","typeLabel":"string[]"}},"uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].route.oneOf.0","typeLabel":"object"},{"type":"null","description":"The route chosen before consent. It never changes afterwards.","properties":{"provider_key":{"oneOf":[{"type":"string","description":"The route's key."},{"type":"null","description":"The route's key."}]},"credential_source":{"type":"string","enum":["native","byok"]},"is_fallback":{"type":"boolean","description":"Whether Didit's own route stood in for a marketplace provider that could not connect."},"provider_connection_id":{"oneOf":[{"type":"string","description":"The marketplace connection used, for `byok`."},{"type":"null","description":"The marketplace connection used, for `byok`."}]},"requested_scopes":{"type":"array","items":{"type":"string"},"description":"The data the connection asked for, for example `ownership` or `balances`."}},"uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].route.oneOf.1","typeLabel":"null"}],"uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].route","typeLabel":"object | null"},"connection":{"oneOf":[{"type":"object","description":"The latest attempt's connection. `null` before the first attempt.","properties":{"status":{"type":"string","enum":["pending","connected","cancelled","timeout","failed","unsupported","revoked","expired"],"uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].connection.oneOf.0.status","typeLabel":"enum\u003cstring>"},"institution_id":{"oneOf":[{"type":"string","description":"The bank's ID. `null` for an account check, where no bank is picked.","uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].connection.oneOf.0.institution_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"The bank's ID. `null` for an account check, where no bank is picked.","uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].connection.oneOf.0.institution_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].connection.oneOf.0.institution_id","typeLabel":"string | null"},"institution_name":{"oneOf":[{"type":"string","description":"The bank's name. `null` for an account check.","uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].connection.oneOf.0.institution_name.oneOf.0","typeLabel":"string"},{"type":"null","description":"The bank's name. `null` for an account check.","uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].connection.oneOf.0.institution_name.oneOf.1","typeLabel":"null"}],"uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].connection.oneOf.0.institution_name","typeLabel":"string | null"},"institution_country":{"oneOf":[{"type":"string","description":"The account's country, ISO 3166-1 alpha-3.","uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].connection.oneOf.0.institution_country.oneOf.0","typeLabel":"string"},{"type":"null","description":"The account's country, ISO 3166-1 alpha-3.","uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].connection.oneOf.0.institution_country.oneOf.1","typeLabel":"null"}],"uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].connection.oneOf.0.institution_country","typeLabel":"string | null"},"oauth":{"oneOf":[{"type":"boolean","description":"Whether the bank sign-in ran over OAuth or app-to-app. `null` for an account check.","uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].connection.oneOf.0.oauth.oneOf.0","typeLabel":"boolean"},{"type":"null","description":"Whether the bank sign-in ran over OAuth or app-to-app. `null` for an account check.","uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].connection.oneOf.0.oauth.oneOf.1","typeLabel":"null"}],"uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].connection.oneOf.0.oauth","typeLabel":"boolean | null"},"connected_at":{"oneOf":[{"type":"string","format":"date-time","description":"When the connection succeeded.","uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].connection.oneOf.0.connected_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","description":"When the connection succeeded.","uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].connection.oneOf.0.connected_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].connection.oneOf.0.connected_at","typeLabel":"string\u003cdate-time> | null"},"consent_expires_at":{"oneOf":[{"type":"string","format":"date-time","description":"When the bank consent ends, for bank sign-in.","uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].connection.oneOf.0.consent_expires_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","description":"When the bank consent ends, for bank sign-in.","uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].connection.oneOf.0.consent_expires_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].connection.oneOf.0.consent_expires_at","typeLabel":"string\u003cdate-time> | null"},"last_refreshed_at":{"oneOf":[{"type":"string","format":"date-time","description":"When the financial data was last read again.","uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].connection.oneOf.0.last_refreshed_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","description":"When the financial data was last read again.","uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].connection.oneOf.0.last_refreshed_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].connection.oneOf.0.last_refreshed_at","typeLabel":"string\u003cdate-time> | null"},"attempts":{"type":"integer","description":"The attempts the person spent on this step, every method together.","uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].connection.oneOf.0.attempts","typeLabel":"integer"},"reason_code":{"oneOf":[{"type":"string","description":"Why the connection is not simply `connected`, for example `USER_CANCELLED`, `INSTITUTION_DOWN`, `ACCOUNT_NOT_FOUND`, `REFERENCE_IDENTITY_MISSING` or `VERIFICATION_COMPLETED`.","uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].connection.oneOf.0.reason_code.oneOf.0","typeLabel":"string"},{"type":"null","description":"Why the connection is not simply `connected`, for example `USER_CANCELLED`, `INSTITUTION_DOWN`, `ACCOUNT_NOT_FOUND`, `REFERENCE_IDENTITY_MISSING` or `VERIFICATION_COMPLETED`.","uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].connection.oneOf.0.reason_code.oneOf.1","typeLabel":"null"}],"uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].connection.oneOf.0.reason_code","typeLabel":"string | null"}},"uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].connection.oneOf.0","typeLabel":"object"},{"type":"null","description":"The latest attempt's connection. `null` before the first attempt.","properties":{"status":{"type":"string","enum":["pending","connected","cancelled","timeout","failed","unsupported","revoked","expired"]},"institution_id":{"oneOf":[{"type":"string","description":"The bank's ID. `null` for an account check, where no bank is picked."},{"type":"null","description":"The bank's ID. `null` for an account check, where no bank is picked."}]},"institution_name":{"oneOf":[{"type":"string","description":"The bank's name. `null` for an account check."},{"type":"null","description":"The bank's name. `null` for an account check."}]},"institution_country":{"oneOf":[{"type":"string","description":"The account's country, ISO 3166-1 alpha-3."},{"type":"null","description":"The account's country, ISO 3166-1 alpha-3."}]},"oauth":{"oneOf":[{"type":"boolean","description":"Whether the bank sign-in ran over OAuth or app-to-app. `null` for an account check."},{"type":"null","description":"Whether the bank sign-in ran over OAuth or app-to-app. `null` for an account check."}]},"connected_at":{"oneOf":[{"type":"string","format":"date-time","description":"When the connection succeeded."},{"type":"null","format":"date-time","description":"When the connection succeeded."}]},"consent_expires_at":{"oneOf":[{"type":"string","format":"date-time","description":"When the bank consent ends, for bank sign-in."},{"type":"null","format":"date-time","description":"When the bank consent ends, for bank sign-in."}]},"last_refreshed_at":{"oneOf":[{"type":"string","format":"date-time","description":"When the financial data was last read again."},{"type":"null","format":"date-time","description":"When the financial data was last read again."}]},"attempts":{"type":"integer","description":"The attempts the person spent on this step, every method together."},"reason_code":{"oneOf":[{"type":"string","description":"Why the connection is not simply `connected`, for example `USER_CANCELLED`, `INSTITUTION_DOWN`, `ACCOUNT_NOT_FOUND`, `REFERENCE_IDENTITY_MISSING` or `VERIFICATION_COMPLETED`."},{"type":"null","description":"Why the connection is not simply `connected`, for example `USER_CANCELLED`, `INSTITUTION_DOWN`, `ACCOUNT_NOT_FOUND`, `REFERENCE_IDENTITY_MISSING` or `VERIFICATION_COMPLETED`."}]}},"uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].connection.oneOf.1","typeLabel":"null"}],"uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].connection","typeLabel":"object | null"},"account":{"oneOf":[{"type":"object","description":"The evaluated account. `null` until an account is evaluated.","properties":{"account_id_masked":{"oneOf":[{"type":"string","description":"The account number, masked.","uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].account.oneOf.0.account_id_masked.oneOf.0","typeLabel":"string"},{"type":"null","description":"The account number, masked.","uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].account.oneOf.0.account_id_masked.oneOf.1","typeLabel":"null"}],"uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].account.oneOf.0.account_id_masked","typeLabel":"string | null"},"iban_masked":{"oneOf":[{"type":"string","description":"The IBAN, masked.","uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].account.oneOf.0.iban_masked.oneOf.0","typeLabel":"string"},{"type":"null","description":"The IBAN, masked.","uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].account.oneOf.0.iban_masked.oneOf.1","typeLabel":"null"}],"uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].account.oneOf.0.iban_masked","typeLabel":"string | null"},"sort_code":{"oneOf":[{"type":"string","description":"The sort code, in the United Kingdom.","uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].account.oneOf.0.sort_code.oneOf.0","typeLabel":"string"},{"type":"null","description":"The sort code, in the United Kingdom.","uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].account.oneOf.0.sort_code.oneOf.1","typeLabel":"null"}],"uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].account.oneOf.0.sort_code","typeLabel":"string | null"},"routing_number_masked":{"oneOf":[{"type":"string","description":"The routing number, masked.","uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].account.oneOf.0.routing_number_masked.oneOf.0","typeLabel":"string"},{"type":"null","description":"The routing number, masked.","uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].account.oneOf.0.routing_number_masked.oneOf.1","typeLabel":"null"}],"uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].account.oneOf.0.routing_number_masked","typeLabel":"string | null"},"type":{"oneOf":[{"type":"string","enum":["checking","current","savings","business","other"],"uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].account.oneOf.0.type.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["checking","current","savings","business","other"],"uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].account.oneOf.0.type.oneOf.1","typeLabel":"null"}],"uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].account.oneOf.0.type","typeLabel":"enum\u003cstring> | null"},"subtype":{"oneOf":[{"type":"string","description":"The bank's own account subtype.","uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].account.oneOf.0.subtype.oneOf.0","typeLabel":"string"},{"type":"null","description":"The bank's own account subtype.","uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].account.oneOf.0.subtype.oneOf.1","typeLabel":"null"}],"uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].account.oneOf.0.subtype","typeLabel":"string | null"},"currency":{"oneOf":[{"type":"string","description":"ISO 4217 currency of the account.","uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].account.oneOf.0.currency.oneOf.0","typeLabel":"string"},{"type":"null","description":"ISO 4217 currency of the account.","uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].account.oneOf.0.currency.oneOf.1","typeLabel":"null"}],"uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].account.oneOf.0.currency","typeLabel":"string | null"},"holder_type":{"oneOf":[{"type":"string","enum":["person","business","unknown"],"uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].account.oneOf.0.holder_type.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["person","business","unknown"],"uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].account.oneOf.0.holder_type.oneOf.1","typeLabel":"null"}],"uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].account.oneOf.0.holder_type","typeLabel":"enum\u003cstring> | null"},"holders_count":{"oneOf":[{"type":"integer","uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].account.oneOf.0.holders_count.oneOf.0","typeLabel":"integer"},{"type":"null","uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].account.oneOf.0.holders_count.oneOf.1","typeLabel":"null"}],"uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].account.oneOf.0.holders_count","typeLabel":"integer | null"},"is_joint":{"oneOf":[{"type":"boolean","uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].account.oneOf.0.is_joint.oneOf.0","typeLabel":"boolean"},{"type":"null","uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].account.oneOf.0.is_joint.oneOf.1","typeLabel":"null"}],"uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].account.oneOf.0.is_joint","typeLabel":"boolean | null"},"is_business":{"oneOf":[{"type":"boolean","uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].account.oneOf.0.is_business.oneOf.0","typeLabel":"boolean"},{"type":"null","uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].account.oneOf.0.is_business.oneOf.1","typeLabel":"null"}],"uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].account.oneOf.0.is_business","typeLabel":"boolean | null"}},"uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].account.oneOf.0","typeLabel":"object"},{"type":"null","description":"The evaluated account. `null` until an account is evaluated.","properties":{"account_id_masked":{"oneOf":[{"type":"string","description":"The account number, masked."},{"type":"null","description":"The account number, masked."}]},"iban_masked":{"oneOf":[{"type":"string","description":"The IBAN, masked."},{"type":"null","description":"The IBAN, masked."}]},"sort_code":{"oneOf":[{"type":"string","description":"The sort code, in the United Kingdom."},{"type":"null","description":"The sort code, in the United Kingdom."}]},"routing_number_masked":{"oneOf":[{"type":"string","description":"The routing number, masked."},{"type":"null","description":"The routing number, masked."}]},"type":{"oneOf":[{"type":"string","enum":["checking","current","savings","business","other"]},{"type":"null","enum":["checking","current","savings","business","other"]}]},"subtype":{"oneOf":[{"type":"string","description":"The bank's own account subtype."},{"type":"null","description":"The bank's own account subtype."}]},"currency":{"oneOf":[{"type":"string","description":"ISO 4217 currency of the account."},{"type":"null","description":"ISO 4217 currency of the account."}]},"holder_type":{"oneOf":[{"type":"string","enum":["person","business","unknown"]},{"type":"null","enum":["person","business","unknown"]}]},"holders_count":{"oneOf":[{"type":"integer"},{"type":"null"}]},"is_joint":{"oneOf":[{"type":"boolean"},{"type":"null"}]},"is_business":{"oneOf":[{"type":"boolean"},{"type":"null"}]}},"uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].account.oneOf.1","typeLabel":"null"}],"uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].account","typeLabel":"object | null"},"ownership":{"oneOf":[{"type":"object","description":"How the account holder compared with the verified identity. `null` until an account is evaluated.","properties":{"result":{"type":"string","enum":["match","partial_match","no_match","unknown","not_verifiable"],"description":"`partial_match` is a close match. `not_verifiable`: the bank answered with no holder to compare. `unknown`: the evidence could not be read, or there was no identity to compare.","uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].ownership.oneOf.0.result","typeLabel":"enum\u003cstring>"},"reference_identity_source":{"oneOf":[{"type":"string","description":"The step whose identity the holder was compared against: `kyc`, `database_validation`, `expected_details`, `questionnaire`, `document_ai` or `kyb`.","uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].ownership.oneOf.0.reference_identity_source.oneOf.0","typeLabel":"string"},{"type":"null","description":"The step whose identity the holder was compared against: `kyc`, `database_validation`, `expected_details`, `questionnaire`, `document_ai` or `kyb`.","uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].ownership.oneOf.0.reference_identity_source.oneOf.1","typeLabel":"null"}],"uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].ownership.oneOf.0.reference_identity_source","typeLabel":"string | null"},"name_score":{"oneOf":[{"type":"integer","minimum":0,"maximum":100,"description":"Didit's holder name score.","uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].ownership.oneOf.0.name_score.oneOf.0","typeLabel":"integer"},{"type":"null","minimum":0,"maximum":100,"description":"Didit's holder name score.","uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].ownership.oneOf.0.name_score.oneOf.1","typeLabel":"null"}],"uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].ownership.oneOf.0.name_score","typeLabel":"integer | null"},"provider_name_score":{"oneOf":[{"type":"integer","minimum":0,"maximum":100,"description":"The bank's own holder name score, when it returned one.","uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].ownership.oneOf.0.provider_name_score.oneOf.0","typeLabel":"integer"},{"type":"null","minimum":0,"maximum":100,"description":"The bank's own holder name score, when it returned one.","uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].ownership.oneOf.0.provider_name_score.oneOf.1","typeLabel":"null"}],"uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].ownership.oneOf.0.provider_name_score","typeLabel":"integer | null"},"address_score":{"oneOf":[{"type":"integer","minimum":0,"maximum":100,"description":"The holder address score, when address matching ran.","uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].ownership.oneOf.0.address_score.oneOf.0","typeLabel":"integer"},{"type":"null","minimum":0,"maximum":100,"description":"The holder address score, when address matching ran.","uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].ownership.oneOf.0.address_score.oneOf.1","typeLabel":"null"}],"uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].ownership.oneOf.0.address_score","typeLabel":"integer | null"},"email_score":{"oneOf":[{"type":"integer","minimum":0,"maximum":100,"description":"The holder email score, when email matching ran.","uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].ownership.oneOf.0.email_score.oneOf.0","typeLabel":"integer"},{"type":"null","minimum":0,"maximum":100,"description":"The holder email score, when email matching ran.","uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].ownership.oneOf.0.email_score.oneOf.1","typeLabel":"null"}],"uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].ownership.oneOf.0.email_score","typeLabel":"integer | null"},"phone_score":{"oneOf":[{"type":"integer","minimum":0,"maximum":100,"description":"The holder phone score, when phone matching ran.","uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].ownership.oneOf.0.phone_score.oneOf.0","typeLabel":"integer"},{"type":"null","minimum":0,"maximum":100,"description":"The holder phone score, when phone matching ran.","uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].ownership.oneOf.0.phone_score.oneOf.1","typeLabel":"null"}],"uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].ownership.oneOf.0.phone_score","typeLabel":"integer | null"},"dob_score":{"oneOf":[{"type":"integer","minimum":0,"maximum":100,"description":"The holder date of birth score, when the bank shared one.","uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].ownership.oneOf.0.dob_score.oneOf.0","typeLabel":"integer"},{"type":"null","minimum":0,"maximum":100,"description":"The holder date of birth score, when the bank shared one.","uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].ownership.oneOf.0.dob_score.oneOf.1","typeLabel":"null"}],"uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].ownership.oneOf.0.dob_score","typeLabel":"integer | null"},"close_match":{"oneOf":[{"type":"boolean","description":"Whether the name landed in the close-match band.","uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].ownership.oneOf.0.close_match.oneOf.0","typeLabel":"boolean"},{"type":"null","description":"Whether the name landed in the close-match band.","uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].ownership.oneOf.0.close_match.oneOf.1","typeLabel":"null"}],"uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].ownership.oneOf.0.close_match","typeLabel":"boolean | null"},"holder_confirmation":{"oneOf":[{"type":"string","enum":["pending","confirmed","rejected"],"description":"The person's answer when asked to confirm a close-match name. `null` when never asked.","uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].ownership.oneOf.0.holder_confirmation.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["pending","confirmed","rejected"],"description":"The person's answer when asked to confirm a close-match name. `null` when never asked.","uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].ownership.oneOf.0.holder_confirmation.oneOf.1","typeLabel":"null"}],"uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].ownership.oneOf.0.holder_confirmation","typeLabel":"enum\u003cstring> | null"},"method":{"oneOf":[{"type":"string","enum":["exact","token_set","nickname","transliteration","fuzzy","provider_only","microdeposits"],"description":"Which name comparison produced the score. This is not the verification method: read the top-level `method` for that.","uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].ownership.oneOf.0.method.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["exact","token_set","nickname","transliteration","fuzzy","provider_only","microdeposits"],"description":"Which name comparison produced the score. This is not the verification method: read the top-level `method` for that.","uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].ownership.oneOf.0.method.oneOf.1","typeLabel":"null"}],"uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].ownership.oneOf.0.method","typeLabel":"enum\u003cstring> | null"},"matched_holder_index":{"oneOf":[{"type":"integer","uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].ownership.oneOf.0.matched_holder_index.oneOf.0","typeLabel":"integer"},{"type":"null","uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].ownership.oneOf.0.matched_holder_index.oneOf.1","typeLabel":"null"}],"uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].ownership.oneOf.0.matched_holder_index","typeLabel":"integer | null"},"holders":{"type":"array","items":{"type":"object","uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].ownership.oneOf.0.holders.items.[INDEX]","typeLabel":"object"},"description":"Each holder the bank listed, with its scores.","uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].ownership.oneOf.0.holders","typeLabel":"object[]"},"owner_identity_available":{"oneOf":[{"type":"boolean","uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].ownership.oneOf.0.owner_identity_available.oneOf.0","typeLabel":"boolean"},{"type":"null","uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].ownership.oneOf.0.owner_identity_available.oneOf.1","typeLabel":"null"}],"uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].ownership.oneOf.0.owner_identity_available","typeLabel":"boolean | null"},"evidence_freshness":{"oneOf":[{"type":"string","enum":["live","cached","refreshed"],"uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].ownership.oneOf.0.evidence_freshness.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["live","cached","refreshed"],"uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].ownership.oneOf.0.evidence_freshness.oneOf.1","typeLabel":"null"}],"uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].ownership.oneOf.0.evidence_freshness","typeLabel":"enum\u003cstring> | null"},"evaluated_at":{"oneOf":[{"type":"string","format":"date-time","description":"When the verdict was computed.","uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].ownership.oneOf.0.evaluated_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","description":"When the verdict was computed.","uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].ownership.oneOf.0.evaluated_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].ownership.oneOf.0.evaluated_at","typeLabel":"string\u003cdate-time> | null"}},"uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].ownership.oneOf.0","typeLabel":"object"},{"type":"null","description":"How the account holder compared with the verified identity. `null` until an account is evaluated.","properties":{"result":{"type":"string","enum":["match","partial_match","no_match","unknown","not_verifiable"],"description":"`partial_match` is a close match. `not_verifiable`: the bank answered with no holder to compare. `unknown`: the evidence could not be read, or there was no identity to compare."},"reference_identity_source":{"oneOf":[{"type":"string","description":"The step whose identity the holder was compared against: `kyc`, `database_validation`, `expected_details`, `questionnaire`, `document_ai` or `kyb`."},{"type":"null","description":"The step whose identity the holder was compared against: `kyc`, `database_validation`, `expected_details`, `questionnaire`, `document_ai` or `kyb`."}]},"name_score":{"oneOf":[{"type":"integer","minimum":0,"maximum":100,"description":"Didit's holder name score."},{"type":"null","minimum":0,"maximum":100,"description":"Didit's holder name score."}]},"provider_name_score":{"oneOf":[{"type":"integer","minimum":0,"maximum":100,"description":"The bank's own holder name score, when it returned one."},{"type":"null","minimum":0,"maximum":100,"description":"The bank's own holder name score, when it returned one."}]},"address_score":{"oneOf":[{"type":"integer","minimum":0,"maximum":100,"description":"The holder address score, when address matching ran."},{"type":"null","minimum":0,"maximum":100,"description":"The holder address score, when address matching ran."}]},"email_score":{"oneOf":[{"type":"integer","minimum":0,"maximum":100,"description":"The holder email score, when email matching ran."},{"type":"null","minimum":0,"maximum":100,"description":"The holder email score, when email matching ran."}]},"phone_score":{"oneOf":[{"type":"integer","minimum":0,"maximum":100,"description":"The holder phone score, when phone matching ran."},{"type":"null","minimum":0,"maximum":100,"description":"The holder phone score, when phone matching ran."}]},"dob_score":{"oneOf":[{"type":"integer","minimum":0,"maximum":100,"description":"The holder date of birth score, when the bank shared one."},{"type":"null","minimum":0,"maximum":100,"description":"The holder date of birth score, when the bank shared one."}]},"close_match":{"oneOf":[{"type":"boolean","description":"Whether the name landed in the close-match band."},{"type":"null","description":"Whether the name landed in the close-match band."}]},"holder_confirmation":{"oneOf":[{"type":"string","enum":["pending","confirmed","rejected"],"description":"The person's answer when asked to confirm a close-match name. `null` when never asked."},{"type":"null","enum":["pending","confirmed","rejected"],"description":"The person's answer when asked to confirm a close-match name. `null` when never asked."}]},"method":{"oneOf":[{"type":"string","enum":["exact","token_set","nickname","transliteration","fuzzy","provider_only","microdeposits"],"description":"Which name comparison produced the score. This is not the verification method: read the top-level `method` for that."},{"type":"null","enum":["exact","token_set","nickname","transliteration","fuzzy","provider_only","microdeposits"],"description":"Which name comparison produced the score. This is not the verification method: read the top-level `method` for that."}]},"matched_holder_index":{"oneOf":[{"type":"integer"},{"type":"null"}]},"holders":{"type":"array","items":{"type":"object"},"description":"Each holder the bank listed, with its scores."},"owner_identity_available":{"oneOf":[{"type":"boolean"},{"type":"null"}]},"evidence_freshness":{"oneOf":[{"type":"string","enum":["live","cached","refreshed"]},{"type":"null","enum":["live","cached","refreshed"]}]},"evaluated_at":{"oneOf":[{"type":"string","format":"date-time","description":"When the verdict was computed."},{"type":"null","format":"date-time","description":"When the verdict was computed."}]}},"uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].ownership.oneOf.1","typeLabel":"null"}],"uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].ownership","typeLabel":"object | null"},"financial_data":{"type":"object","description":"The financial data the step read. Only bank sign-in reads it.","properties":{"balances":{"oneOf":[{"type":"object","description":"With the `balances` scope.","uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].financial_data.balances.oneOf.0","typeLabel":"object"},{"type":"null","description":"With the `balances` scope.","uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].financial_data.balances.oneOf.1","typeLabel":"null"}],"uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].financial_data.balances","typeLabel":"object | null"},"transactions":{"oneOf":[{"type":"object","description":"With the `transactions` scope.","uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].financial_data.transactions.oneOf.0","typeLabel":"object"},{"type":"null","description":"With the `transactions` scope.","uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].financial_data.transactions.oneOf.1","typeLabel":"null"}],"uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].financial_data.transactions","typeLabel":"object | null"},"income":{"oneOf":[{"type":"object","description":"With the `income` scope.","uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].financial_data.income.oneOf.0","typeLabel":"object"},{"type":"null","description":"With the `income` scope.","uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].financial_data.income.oneOf.1","typeLabel":"null"}],"uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].financial_data.income","typeLabel":"object | null"},"categorization":{"oneOf":[{"type":"object","description":"Didit's categorization of the transactions read. `null` without them.","uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].financial_data.categorization.oneOf.0","typeLabel":"object"},{"type":"null","description":"Didit's categorization of the transactions read. `null` without them.","uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].financial_data.categorization.oneOf.1","typeLabel":"null"}],"uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].financial_data.categorization","typeLabel":"object | null"},"not_collected":{"type":"array","items":{"type":"string","enum":["balances","income","transactions"],"uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].financial_data.not_collected.items.[INDEX]","typeLabel":"enum\u003cstring>"},"description":"The data the step asked for that the method which verified the account does not collect. Balances, transactions and income come from bank sign-in only, so an account verified by account check lists them here. Never a failure. Empty otherwise.","uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].financial_data.not_collected","typeLabel":"enum\u003cstring>[]"}},"uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].financial_data","typeLabel":"object"},"billing":{"oneOf":[{"type":"object","properties":{"route":{"type":"string","enum":["native","byok"],"uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].billing.oneOf.0.route","typeLabel":"enum\u003cstring>"},"billed":{"type":"boolean","uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].billing.oneOf.0.billed","typeLabel":"boolean"},"marketplace_fee":{"oneOf":[{"type":"string","description":"The marketplace platform fee charged, for `byok`.","uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].billing.oneOf.0.marketplace_fee.oneOf.0","typeLabel":"string"},{"type":"null","description":"The marketplace platform fee charged, for `byok`.","uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].billing.oneOf.0.marketplace_fee.oneOf.1","typeLabel":"null"}],"uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].billing.oneOf.0.marketplace_fee","typeLabel":"string | null"},"usage_type":{"oneOf":[{"type":"string","description":"The usage line the charge was booked on: `bank_verification` for a bank sign-in or an account check, `bank_statement_upload` for a statement upload with no charged bank attempt before it, and `bank_byok_fee` for the marketplace fee on your own provider. `null` when nothing was billed.","uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].billing.oneOf.0.usage_type.oneOf.0","typeLabel":"string"},{"type":"null","description":"The usage line the charge was booked on: `bank_verification` for a bank sign-in or an account check, `bank_statement_upload` for a statement upload with no charged bank attempt before it, and `bank_byok_fee` for the marketplace fee on your own provider. `null` when nothing was billed.","uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].billing.oneOf.0.usage_type.oneOf.1","typeLabel":"null"}],"uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].billing.oneOf.0.usage_type","typeLabel":"string | null"}},"uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].billing.oneOf.0","typeLabel":"object"},{"type":"null","properties":{"route":{"type":"string","enum":["native","byok"]},"billed":{"type":"boolean"},"marketplace_fee":{"oneOf":[{"type":"string","description":"The marketplace platform fee charged, for `byok`."},{"type":"null","description":"The marketplace platform fee charged, for `byok`."}]},"usage_type":{"oneOf":[{"type":"string","description":"The usage line the charge was booked on: `bank_verification` for a bank sign-in or an account check, `bank_statement_upload` for a statement upload with no charged bank attempt before it, and `bank_byok_fee` for the marketplace fee on your own provider. `null` when nothing was billed."},{"type":"null","description":"The usage line the charge was booked on: `bank_verification` for a bank sign-in or an account check, `bank_statement_upload` for a statement upload with no charged bank attempt before it, and `bank_byok_fee` for the marketplace fee on your own provider. `null` when nothing was billed."}]}},"uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].billing.oneOf.1","typeLabel":"null"}],"uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].billing","typeLabel":"object | null"},"reference_identity":{"oneOf":[{"type":"object","description":"The identity the holder was compared against, with its source.","uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].reference_identity.oneOf.0","typeLabel":"object"},{"type":"null","description":"The identity the holder was compared against, with its source.","uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].reference_identity.oneOf.1","typeLabel":"null"}],"uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].reference_identity","typeLabel":"object | null"},"signals":{"oneOf":[{"type":"object","description":"Account signals read from the transaction history, when the step read one.","uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].signals.oneOf.0","typeLabel":"object"},{"type":"null","description":"Account signals read from the transaction history, when the step read one.","uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].signals.oneOf.1","typeLabel":"null"}],"uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].signals","typeLabel":"object | null"},"connection_abandoned":{"oneOf":[{"type":"boolean","description":"Whether the step ended without a match after the person left at their bank.","uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].connection_abandoned.oneOf.0","typeLabel":"boolean"},{"type":"null","description":"Whether the step ended without a match after the person left at their bank.","uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].connection_abandoned.oneOf.1","typeLabel":"null"}],"uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].connection_abandoned","typeLabel":"boolean | null"},"not_covered":{"oneOf":[{"type":"boolean","description":"Whether the person's bank or country could not be reached on this step. Also `true` when the person continued without a bank because no method could verify their country or bank.","uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].not_covered.oneOf.0","typeLabel":"boolean"},{"type":"null","description":"Whether the person's bank or country could not be reached on this step. Also `true` when the person continued without a bank because no method could verify their country or bank.","uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].not_covered.oneOf.1","typeLabel":"null"}],"uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].not_covered","typeLabel":"boolean | null"},"continued_without_bank":{"type":"boolean","description":"Whether the person left the step with **Continue without your bank**. `continuation` then says why. `method` is `none` when no attempt was evaluated before they continued. After an evaluated attempt, such as a holder that does not match, `method` stays the method of that attempt and its verdict and reason codes stand. Returned even when the workflow narrows the data it returns.","uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].continued_without_bank","typeLabel":"boolean"},"continuation":{"oneOf":[{"type":"object","description":"How the person continued without a bank. `null` when they did not. When the workflow narrows the data it returns, `reason` is still returned and every other key is `null`.","properties":{"reason":{"type":"string","enum":["no_route","institution_unsupported","attempts_exhausted","person_choice"],"description":"Why, as Didit worked it out when the person continued: `no_route` (no bank sign-in or account check serves their country), `institution_unsupported` (the bank they picked cannot be used on this step), `attempts_exhausted` (every attempt was already spent and none was in progress), or `person_choice` (a way to verify was there and they chose to continue, also when their bank could not be reached right now). `no_route` and `institution_unsupported` follow `bank_unsupported_action`, `attempts_exhausted` follows `bank_attempts_exhausted_action`, and `person_choice` follows `bank_skipped_action`, unless an evaluated attempt already decided the step.","uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].continuation.oneOf.0.reason","typeLabel":"enum\u003cstring>"},"country":{"oneOf":[{"type":"string","description":"The country the person was verifying in, ISO 3166-1 alpha-3. `null` when they continued before picking one.","uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].continuation.oneOf.0.country.oneOf.0","typeLabel":"string"},{"type":"null","description":"The country the person was verifying in, ISO 3166-1 alpha-3. `null` when they continued before picking one.","uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].continuation.oneOf.0.country.oneOf.1","typeLabel":"null"}],"uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].continuation.oneOf.0.country","typeLabel":"string | null"},"offered":{"oneOf":[{"type":"array","items":{"type":"string","enum":["statement","microdeposits"],"uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].continuation.oneOf.0.offered.oneOf.0.items.[INDEX]","typeLabel":"enum\u003cstring>"},"description":"The other ways to verify that country offered the person when they continued, in the order it offered them: `statement` (a statement upload), then `microdeposits`. Empty when it offered none.","uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].continuation.oneOf.0.offered.oneOf.0","typeLabel":"enum\u003cstring>[]"},{"type":"null","items":{"type":"string","enum":["statement","microdeposits"]},"description":"The other ways to verify that country offered the person when they continued, in the order it offered them: `statement` (a statement upload), then `microdeposits`. Empty when it offered none.","uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].continuation.oneOf.0.offered.oneOf.1","typeLabel":"null"}],"uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].continuation.oneOf.0.offered","typeLabel":"enum\u003cstring>[] | null"},"institution_id":{"oneOf":[{"type":"string","description":"For `institution_unsupported`, the ID of the bank the person could not use: the bank they picked, or the bank their last attempt ended on. Didit takes it from its own list of banks, never from the person's device, so a bank that list does not have is `null`. `null` for every other reason.","uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].continuation.oneOf.0.institution_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"For `institution_unsupported`, the ID of the bank the person could not use: the bank they picked, or the bank their last attempt ended on. Didit takes it from its own list of banks, never from the person's device, so a bank that list does not have is `null`. `null` for every other reason.","uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].continuation.oneOf.0.institution_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].continuation.oneOf.0.institution_id","typeLabel":"string | null"},"institution_name":{"oneOf":[{"type":"string","description":"For `institution_unsupported`, the name of that bank, from the same list as `institution_id`. `null` when that list does not have the bank, and for every other reason.","uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].continuation.oneOf.0.institution_name.oneOf.0","typeLabel":"string"},{"type":"null","description":"For `institution_unsupported`, the name of that bank, from the same list as `institution_id`. `null` when that list does not have the bank, and for every other reason.","uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].continuation.oneOf.0.institution_name.oneOf.1","typeLabel":"null"}],"uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].continuation.oneOf.0.institution_name","typeLabel":"string | null"},"continued_at":{"oneOf":[{"type":"string","format":"date-time","description":"When the person continued.","uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].continuation.oneOf.0.continued_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","description":"When the person continued.","uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].continuation.oneOf.0.continued_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].continuation.oneOf.0.continued_at","typeLabel":"string\u003cdate-time> | null"}},"uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].continuation.oneOf.0","typeLabel":"object"},{"type":"null","description":"How the person continued without a bank. `null` when they did not. When the workflow narrows the data it returns, `reason` is still returned and every other key is `null`.","properties":{"reason":{"type":"string","enum":["no_route","institution_unsupported","attempts_exhausted","person_choice"],"description":"Why, as Didit worked it out when the person continued: `no_route` (no bank sign-in or account check serves their country), `institution_unsupported` (the bank they picked cannot be used on this step), `attempts_exhausted` (every attempt was already spent and none was in progress), or `person_choice` (a way to verify was there and they chose to continue, also when their bank could not be reached right now). `no_route` and `institution_unsupported` follow `bank_unsupported_action`, `attempts_exhausted` follows `bank_attempts_exhausted_action`, and `person_choice` follows `bank_skipped_action`, unless an evaluated attempt already decided the step."},"country":{"oneOf":[{"type":"string","description":"The country the person was verifying in, ISO 3166-1 alpha-3. `null` when they continued before picking one."},{"type":"null","description":"The country the person was verifying in, ISO 3166-1 alpha-3. `null` when they continued before picking one."}]},"offered":{"oneOf":[{"type":"array","items":{"type":"string","enum":["statement","microdeposits"]},"description":"The other ways to verify that country offered the person when they continued, in the order it offered them: `statement` (a statement upload), then `microdeposits`. Empty when it offered none."},{"type":"null","items":{"type":"string","enum":["statement","microdeposits"]},"description":"The other ways to verify that country offered the person when they continued, in the order it offered them: `statement` (a statement upload), then `microdeposits`. Empty when it offered none."}]},"institution_id":{"oneOf":[{"type":"string","description":"For `institution_unsupported`, the ID of the bank the person could not use: the bank they picked, or the bank their last attempt ended on. Didit takes it from its own list of banks, never from the person's device, so a bank that list does not have is `null`. `null` for every other reason."},{"type":"null","description":"For `institution_unsupported`, the ID of the bank the person could not use: the bank they picked, or the bank their last attempt ended on. Didit takes it from its own list of banks, never from the person's device, so a bank that list does not have is `null`. `null` for every other reason."}]},"institution_name":{"oneOf":[{"type":"string","description":"For `institution_unsupported`, the name of that bank, from the same list as `institution_id`. `null` when that list does not have the bank, and for every other reason."},{"type":"null","description":"For `institution_unsupported`, the name of that bank, from the same list as `institution_id`. `null` when that list does not have the bank, and for every other reason."}]},"continued_at":{"oneOf":[{"type":"string","format":"date-time","description":"When the person continued."},{"type":"null","format":"date-time","description":"When the person continued."}]}},"uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].continuation.oneOf.1","typeLabel":"null"}],"uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].continuation","typeLabel":"object | null"},"evidence_purged_at":{"oneOf":[{"type":"string","format":"date-time","description":"When the bank evidence was deleted under `bank_evidence_retention_days`. `null` otherwise.","uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].evidence_purged_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","description":"When the bank evidence was deleted under `bank_evidence_retention_days`. `null` otherwise.","uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].evidence_purged_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].evidence_purged_at","typeLabel":"string\u003cdate-time> | null"},"warnings":{"type":"array","items":{"type":"string","uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].warnings.items.[INDEX]","typeLabel":"string"},"description":"Informational codes, for example `holder_declared`. A warning never changes the status on its own.","uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].warnings","typeLabel":"string[]"},"reason_codes":{"type":"array","items":{"type":"string","uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].reason_codes.items.[INDEX]","typeLabel":"string"},"description":"Why the verdict came out the way it did, for example `OWNER_NAME_PARTIAL`. Several may apply. `NOT_COVERED`: the person continued without a bank because no method could verify their country or bank. `SKIPPED`: the person chose to continue without a bank while a way to verify was there. Neither is added when an evaluated attempt already decided the step.","uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].reason_codes","typeLabel":"string[]"},"created_at":{"type":"string","format":"date-time","uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].created_at","typeLabel":"string\u003cdate-time>"},"updated_at":{"type":"string","format":"date-time","uniqueKey":"bank_verifications.oneOf.0.items.[INDEX].updated_at","typeLabel":"string\u003cdate-time>"}},"uniqueKey":"bank_verifications.oneOf.0.items.[INDEX]","typeLabel":"object"},"uniqueKey":"bank_verifications.oneOf.0","typeLabel":"object[]"},{"type":"null","description":"Bank Verification results, one item per Bank Verification step, for User and Business Verification. `null` until a step produces one. Each item's `method` says how the account was verified: `open_banking` (bank sign-in) or `account_lookup` (account check), or a `statement` or `microdeposits` fallback, and `none` when the person continued without a bank before any attempt was evaluated (`continued_without_bank`). See [Bank verification methods](/core-technology/bank-verification/verification-methods).","items":{"type":"object","description":"One Bank Verification step's result, for User and Business Verification. `method` says how the account was verified, and `none` that the person continued without a bank before any attempt was evaluated. `continued_without_bank` says the person continued without a bank, also after an evaluated attempt. See [Bank verification methods](/core-technology/bank-verification/verification-methods) and [When the person cannot verify their bank](/core-technology/bank-verification/fallbacks).","properties":{"schema_version":{"type":"integer","description":"Version of this result shape. `1` today."},"bank_verification_id":{"type":"string","format":"uuid","description":"The ID of this result."},"node_id":{"type":"string","description":"The workflow node this result belongs to."},"status":{"type":"string","enum":["Not Finished","Approved","Declined","In Review","Expired"],"description":"The step's verdict, after its actions and status rules."},"original_status":{"oneOf":[{"type":"string","description":"The first verdict the step reached, before any later change such as a manual review."},{"type":"null","description":"The first verdict the step reached, before any later change such as a manual review."}]},"method":{"oneOf":[{"type":"string","enum":["open_banking","account_lookup","microdeposits","statement","none"],"description":"How the account was verified: `open_banking` (bank sign-in: the person signed in at their bank), `account_lookup` (account check: the person typed the account details and the bank confirmed the name), `microdeposits` or `statement` (a statement upload). `none` when the person continued without a bank before any attempt was evaluated, so no account was verified. After an evaluated attempt, it stays the method of that attempt. `null` until an account is evaluated, and when the workflow narrows the data it returns. Workflow rules read the same value as `bank.method`."},{"type":"null","enum":["open_banking","account_lookup","microdeposits","statement","none"],"description":"How the account was verified: `open_banking` (bank sign-in: the person signed in at their bank), `account_lookup` (account check: the person typed the account details and the bank confirmed the name), `microdeposits` or `statement` (a statement upload). `none` when the person continued without a bank before any attempt was evaluated, so no account was verified. After an evaluated attempt, it stays the method of that attempt. `null` until an account is evaluated, and when the workflow narrows the data it returns. Workflow rules read the same value as `bank.method`."}]},"provider":{"oneOf":[{"type":"string","description":"The key of the route that ran the connection. Read `method`, not this key, to tell how the account was verified."},{"type":"null","description":"The key of the route that ran the connection. Read `method`, not this key, to tell how the account was verified."}]},"credential_source":{"oneOf":[{"type":"string","enum":["native","byok"],"description":"`native`: Didit's own route, billed to your Didit balance. `byok`: a marketplace provider you connected with your own credentials."},{"type":"null","enum":["native","byok"],"description":"`native`: Didit's own route, billed to your Didit balance. `byok`: a marketplace provider you connected with your own credentials."}]},"route":{"oneOf":[{"type":"object","description":"The route chosen before consent. It never changes afterwards.","properties":{"provider_key":{"oneOf":[{"type":"string","description":"The route's key."},{"type":"null","description":"The route's key."}]},"credential_source":{"type":"string","enum":["native","byok"]},"is_fallback":{"type":"boolean","description":"Whether Didit's own route stood in for a marketplace provider that could not connect."},"provider_connection_id":{"oneOf":[{"type":"string","description":"The marketplace connection used, for `byok`."},{"type":"null","description":"The marketplace connection used, for `byok`."}]},"requested_scopes":{"type":"array","items":{"type":"string"},"description":"The data the connection asked for, for example `ownership` or `balances`."}}},{"type":"null","description":"The route chosen before consent. It never changes afterwards.","properties":{"provider_key":{"oneOf":[{"type":"string","description":"The route's key."},{"type":"null","description":"The route's key."}]},"credential_source":{"type":"string","enum":["native","byok"]},"is_fallback":{"type":"boolean","description":"Whether Didit's own route stood in for a marketplace provider that could not connect."},"provider_connection_id":{"oneOf":[{"type":"string","description":"The marketplace connection used, for `byok`."},{"type":"null","description":"The marketplace connection used, for `byok`."}]},"requested_scopes":{"type":"array","items":{"type":"string"},"description":"The data the connection asked for, for example `ownership` or `balances`."}}}]},"connection":{"oneOf":[{"type":"object","description":"The latest attempt's connection. `null` before the first attempt.","properties":{"status":{"type":"string","enum":["pending","connected","cancelled","timeout","failed","unsupported","revoked","expired"]},"institution_id":{"oneOf":[{"type":"string","description":"The bank's ID. `null` for an account check, where no bank is picked."},{"type":"null","description":"The bank's ID. `null` for an account check, where no bank is picked."}]},"institution_name":{"oneOf":[{"type":"string","description":"The bank's name. `null` for an account check."},{"type":"null","description":"The bank's name. `null` for an account check."}]},"institution_country":{"oneOf":[{"type":"string","description":"The account's country, ISO 3166-1 alpha-3."},{"type":"null","description":"The account's country, ISO 3166-1 alpha-3."}]},"oauth":{"oneOf":[{"type":"boolean","description":"Whether the bank sign-in ran over OAuth or app-to-app. `null` for an account check."},{"type":"null","description":"Whether the bank sign-in ran over OAuth or app-to-app. `null` for an account check."}]},"connected_at":{"oneOf":[{"type":"string","format":"date-time","description":"When the connection succeeded."},{"type":"null","format":"date-time","description":"When the connection succeeded."}]},"consent_expires_at":{"oneOf":[{"type":"string","format":"date-time","description":"When the bank consent ends, for bank sign-in."},{"type":"null","format":"date-time","description":"When the bank consent ends, for bank sign-in."}]},"last_refreshed_at":{"oneOf":[{"type":"string","format":"date-time","description":"When the financial data was last read again."},{"type":"null","format":"date-time","description":"When the financial data was last read again."}]},"attempts":{"type":"integer","description":"The attempts the person spent on this step, every method together."},"reason_code":{"oneOf":[{"type":"string","description":"Why the connection is not simply `connected`, for example `USER_CANCELLED`, `INSTITUTION_DOWN`, `ACCOUNT_NOT_FOUND`, `REFERENCE_IDENTITY_MISSING` or `VERIFICATION_COMPLETED`."},{"type":"null","description":"Why the connection is not simply `connected`, for example `USER_CANCELLED`, `INSTITUTION_DOWN`, `ACCOUNT_NOT_FOUND`, `REFERENCE_IDENTITY_MISSING` or `VERIFICATION_COMPLETED`."}]}}},{"type":"null","description":"The latest attempt's connection. `null` before the first attempt.","properties":{"status":{"type":"string","enum":["pending","connected","cancelled","timeout","failed","unsupported","revoked","expired"]},"institution_id":{"oneOf":[{"type":"string","description":"The bank's ID. `null` for an account check, where no bank is picked."},{"type":"null","description":"The bank's ID. `null` for an account check, where no bank is picked."}]},"institution_name":{"oneOf":[{"type":"string","description":"The bank's name. `null` for an account check."},{"type":"null","description":"The bank's name. `null` for an account check."}]},"institution_country":{"oneOf":[{"type":"string","description":"The account's country, ISO 3166-1 alpha-3."},{"type":"null","description":"The account's country, ISO 3166-1 alpha-3."}]},"oauth":{"oneOf":[{"type":"boolean","description":"Whether the bank sign-in ran over OAuth or app-to-app. `null` for an account check."},{"type":"null","description":"Whether the bank sign-in ran over OAuth or app-to-app. `null` for an account check."}]},"connected_at":{"oneOf":[{"type":"string","format":"date-time","description":"When the connection succeeded."},{"type":"null","format":"date-time","description":"When the connection succeeded."}]},"consent_expires_at":{"oneOf":[{"type":"string","format":"date-time","description":"When the bank consent ends, for bank sign-in."},{"type":"null","format":"date-time","description":"When the bank consent ends, for bank sign-in."}]},"last_refreshed_at":{"oneOf":[{"type":"string","format":"date-time","description":"When the financial data was last read again."},{"type":"null","format":"date-time","description":"When the financial data was last read again."}]},"attempts":{"type":"integer","description":"The attempts the person spent on this step, every method together."},"reason_code":{"oneOf":[{"type":"string","description":"Why the connection is not simply `connected`, for example `USER_CANCELLED`, `INSTITUTION_DOWN`, `ACCOUNT_NOT_FOUND`, `REFERENCE_IDENTITY_MISSING` or `VERIFICATION_COMPLETED`."},{"type":"null","description":"Why the connection is not simply `connected`, for example `USER_CANCELLED`, `INSTITUTION_DOWN`, `ACCOUNT_NOT_FOUND`, `REFERENCE_IDENTITY_MISSING` or `VERIFICATION_COMPLETED`."}]}}}]},"account":{"oneOf":[{"type":"object","description":"The evaluated account. `null` until an account is evaluated.","properties":{"account_id_masked":{"oneOf":[{"type":"string","description":"The account number, masked."},{"type":"null","description":"The account number, masked."}]},"iban_masked":{"oneOf":[{"type":"string","description":"The IBAN, masked."},{"type":"null","description":"The IBAN, masked."}]},"sort_code":{"oneOf":[{"type":"string","description":"The sort code, in the United Kingdom."},{"type":"null","description":"The sort code, in the United Kingdom."}]},"routing_number_masked":{"oneOf":[{"type":"string","description":"The routing number, masked."},{"type":"null","description":"The routing number, masked."}]},"type":{"oneOf":[{"type":"string","enum":["checking","current","savings","business","other"]},{"type":"null","enum":["checking","current","savings","business","other"]}]},"subtype":{"oneOf":[{"type":"string","description":"The bank's own account subtype."},{"type":"null","description":"The bank's own account subtype."}]},"currency":{"oneOf":[{"type":"string","description":"ISO 4217 currency of the account."},{"type":"null","description":"ISO 4217 currency of the account."}]},"holder_type":{"oneOf":[{"type":"string","enum":["person","business","unknown"]},{"type":"null","enum":["person","business","unknown"]}]},"holders_count":{"oneOf":[{"type":"integer"},{"type":"null"}]},"is_joint":{"oneOf":[{"type":"boolean"},{"type":"null"}]},"is_business":{"oneOf":[{"type":"boolean"},{"type":"null"}]}}},{"type":"null","description":"The evaluated account. `null` until an account is evaluated.","properties":{"account_id_masked":{"oneOf":[{"type":"string","description":"The account number, masked."},{"type":"null","description":"The account number, masked."}]},"iban_masked":{"oneOf":[{"type":"string","description":"The IBAN, masked."},{"type":"null","description":"The IBAN, masked."}]},"sort_code":{"oneOf":[{"type":"string","description":"The sort code, in the United Kingdom."},{"type":"null","description":"The sort code, in the United Kingdom."}]},"routing_number_masked":{"oneOf":[{"type":"string","description":"The routing number, masked."},{"type":"null","description":"The routing number, masked."}]},"type":{"oneOf":[{"type":"string","enum":["checking","current","savings","business","other"]},{"type":"null","enum":["checking","current","savings","business","other"]}]},"subtype":{"oneOf":[{"type":"string","description":"The bank's own account subtype."},{"type":"null","description":"The bank's own account subtype."}]},"currency":{"oneOf":[{"type":"string","description":"ISO 4217 currency of the account."},{"type":"null","description":"ISO 4217 currency of the account."}]},"holder_type":{"oneOf":[{"type":"string","enum":["person","business","unknown"]},{"type":"null","enum":["person","business","unknown"]}]},"holders_count":{"oneOf":[{"type":"integer"},{"type":"null"}]},"is_joint":{"oneOf":[{"type":"boolean"},{"type":"null"}]},"is_business":{"oneOf":[{"type":"boolean"},{"type":"null"}]}}}]},"ownership":{"oneOf":[{"type":"object","description":"How the account holder compared with the verified identity. `null` until an account is evaluated.","properties":{"result":{"type":"string","enum":["match","partial_match","no_match","unknown","not_verifiable"],"description":"`partial_match` is a close match. `not_verifiable`: the bank answered with no holder to compare. `unknown`: the evidence could not be read, or there was no identity to compare."},"reference_identity_source":{"oneOf":[{"type":"string","description":"The step whose identity the holder was compared against: `kyc`, `database_validation`, `expected_details`, `questionnaire`, `document_ai` or `kyb`."},{"type":"null","description":"The step whose identity the holder was compared against: `kyc`, `database_validation`, `expected_details`, `questionnaire`, `document_ai` or `kyb`."}]},"name_score":{"oneOf":[{"type":"integer","minimum":0,"maximum":100,"description":"Didit's holder name score."},{"type":"null","minimum":0,"maximum":100,"description":"Didit's holder name score."}]},"provider_name_score":{"oneOf":[{"type":"integer","minimum":0,"maximum":100,"description":"The bank's own holder name score, when it returned one."},{"type":"null","minimum":0,"maximum":100,"description":"The bank's own holder name score, when it returned one."}]},"address_score":{"oneOf":[{"type":"integer","minimum":0,"maximum":100,"description":"The holder address score, when address matching ran."},{"type":"null","minimum":0,"maximum":100,"description":"The holder address score, when address matching ran."}]},"email_score":{"oneOf":[{"type":"integer","minimum":0,"maximum":100,"description":"The holder email score, when email matching ran."},{"type":"null","minimum":0,"maximum":100,"description":"The holder email score, when email matching ran."}]},"phone_score":{"oneOf":[{"type":"integer","minimum":0,"maximum":100,"description":"The holder phone score, when phone matching ran."},{"type":"null","minimum":0,"maximum":100,"description":"The holder phone score, when phone matching ran."}]},"dob_score":{"oneOf":[{"type":"integer","minimum":0,"maximum":100,"description":"The holder date of birth score, when the bank shared one."},{"type":"null","minimum":0,"maximum":100,"description":"The holder date of birth score, when the bank shared one."}]},"close_match":{"oneOf":[{"type":"boolean","description":"Whether the name landed in the close-match band."},{"type":"null","description":"Whether the name landed in the close-match band."}]},"holder_confirmation":{"oneOf":[{"type":"string","enum":["pending","confirmed","rejected"],"description":"The person's answer when asked to confirm a close-match name. `null` when never asked."},{"type":"null","enum":["pending","confirmed","rejected"],"description":"The person's answer when asked to confirm a close-match name. `null` when never asked."}]},"method":{"oneOf":[{"type":"string","enum":["exact","token_set","nickname","transliteration","fuzzy","provider_only","microdeposits"],"description":"Which name comparison produced the score. This is not the verification method: read the top-level `method` for that."},{"type":"null","enum":["exact","token_set","nickname","transliteration","fuzzy","provider_only","microdeposits"],"description":"Which name comparison produced the score. This is not the verification method: read the top-level `method` for that."}]},"matched_holder_index":{"oneOf":[{"type":"integer"},{"type":"null"}]},"holders":{"type":"array","items":{"type":"object"},"description":"Each holder the bank listed, with its scores."},"owner_identity_available":{"oneOf":[{"type":"boolean"},{"type":"null"}]},"evidence_freshness":{"oneOf":[{"type":"string","enum":["live","cached","refreshed"]},{"type":"null","enum":["live","cached","refreshed"]}]},"evaluated_at":{"oneOf":[{"type":"string","format":"date-time","description":"When the verdict was computed."},{"type":"null","format":"date-time","description":"When the verdict was computed."}]}}},{"type":"null","description":"How the account holder compared with the verified identity. `null` until an account is evaluated.","properties":{"result":{"type":"string","enum":["match","partial_match","no_match","unknown","not_verifiable"],"description":"`partial_match` is a close match. `not_verifiable`: the bank answered with no holder to compare. `unknown`: the evidence could not be read, or there was no identity to compare."},"reference_identity_source":{"oneOf":[{"type":"string","description":"The step whose identity the holder was compared against: `kyc`, `database_validation`, `expected_details`, `questionnaire`, `document_ai` or `kyb`."},{"type":"null","description":"The step whose identity the holder was compared against: `kyc`, `database_validation`, `expected_details`, `questionnaire`, `document_ai` or `kyb`."}]},"name_score":{"oneOf":[{"type":"integer","minimum":0,"maximum":100,"description":"Didit's holder name score."},{"type":"null","minimum":0,"maximum":100,"description":"Didit's holder name score."}]},"provider_name_score":{"oneOf":[{"type":"integer","minimum":0,"maximum":100,"description":"The bank's own holder name score, when it returned one."},{"type":"null","minimum":0,"maximum":100,"description":"The bank's own holder name score, when it returned one."}]},"address_score":{"oneOf":[{"type":"integer","minimum":0,"maximum":100,"description":"The holder address score, when address matching ran."},{"type":"null","minimum":0,"maximum":100,"description":"The holder address score, when address matching ran."}]},"email_score":{"oneOf":[{"type":"integer","minimum":0,"maximum":100,"description":"The holder email score, when email matching ran."},{"type":"null","minimum":0,"maximum":100,"description":"The holder email score, when email matching ran."}]},"phone_score":{"oneOf":[{"type":"integer","minimum":0,"maximum":100,"description":"The holder phone score, when phone matching ran."},{"type":"null","minimum":0,"maximum":100,"description":"The holder phone score, when phone matching ran."}]},"dob_score":{"oneOf":[{"type":"integer","minimum":0,"maximum":100,"description":"The holder date of birth score, when the bank shared one."},{"type":"null","minimum":0,"maximum":100,"description":"The holder date of birth score, when the bank shared one."}]},"close_match":{"oneOf":[{"type":"boolean","description":"Whether the name landed in the close-match band."},{"type":"null","description":"Whether the name landed in the close-match band."}]},"holder_confirmation":{"oneOf":[{"type":"string","enum":["pending","confirmed","rejected"],"description":"The person's answer when asked to confirm a close-match name. `null` when never asked."},{"type":"null","enum":["pending","confirmed","rejected"],"description":"The person's answer when asked to confirm a close-match name. `null` when never asked."}]},"method":{"oneOf":[{"type":"string","enum":["exact","token_set","nickname","transliteration","fuzzy","provider_only","microdeposits"],"description":"Which name comparison produced the score. This is not the verification method: read the top-level `method` for that."},{"type":"null","enum":["exact","token_set","nickname","transliteration","fuzzy","provider_only","microdeposits"],"description":"Which name comparison produced the score. This is not the verification method: read the top-level `method` for that."}]},"matched_holder_index":{"oneOf":[{"type":"integer"},{"type":"null"}]},"holders":{"type":"array","items":{"type":"object"},"description":"Each holder the bank listed, with its scores."},"owner_identity_available":{"oneOf":[{"type":"boolean"},{"type":"null"}]},"evidence_freshness":{"oneOf":[{"type":"string","enum":["live","cached","refreshed"]},{"type":"null","enum":["live","cached","refreshed"]}]},"evaluated_at":{"oneOf":[{"type":"string","format":"date-time","description":"When the verdict was computed."},{"type":"null","format":"date-time","description":"When the verdict was computed."}]}}}]},"financial_data":{"type":"object","description":"The financial data the step read. Only bank sign-in reads it.","properties":{"balances":{"oneOf":[{"type":"object","description":"With the `balances` scope."},{"type":"null","description":"With the `balances` scope."}]},"transactions":{"oneOf":[{"type":"object","description":"With the `transactions` scope."},{"type":"null","description":"With the `transactions` scope."}]},"income":{"oneOf":[{"type":"object","description":"With the `income` scope."},{"type":"null","description":"With the `income` scope."}]},"categorization":{"oneOf":[{"type":"object","description":"Didit's categorization of the transactions read. `null` without them."},{"type":"null","description":"Didit's categorization of the transactions read. `null` without them."}]},"not_collected":{"type":"array","items":{"type":"string","enum":["balances","income","transactions"]},"description":"The data the step asked for that the method which verified the account does not collect. Balances, transactions and income come from bank sign-in only, so an account verified by account check lists them here. Never a failure. Empty otherwise."}}},"billing":{"oneOf":[{"type":"object","properties":{"route":{"type":"string","enum":["native","byok"]},"billed":{"type":"boolean"},"marketplace_fee":{"oneOf":[{"type":"string","description":"The marketplace platform fee charged, for `byok`."},{"type":"null","description":"The marketplace platform fee charged, for `byok`."}]},"usage_type":{"oneOf":[{"type":"string","description":"The usage line the charge was booked on: `bank_verification` for a bank sign-in or an account check, `bank_statement_upload` for a statement upload with no charged bank attempt before it, and `bank_byok_fee` for the marketplace fee on your own provider. `null` when nothing was billed."},{"type":"null","description":"The usage line the charge was booked on: `bank_verification` for a bank sign-in or an account check, `bank_statement_upload` for a statement upload with no charged bank attempt before it, and `bank_byok_fee` for the marketplace fee on your own provider. `null` when nothing was billed."}]}}},{"type":"null","properties":{"route":{"type":"string","enum":["native","byok"]},"billed":{"type":"boolean"},"marketplace_fee":{"oneOf":[{"type":"string","description":"The marketplace platform fee charged, for `byok`."},{"type":"null","description":"The marketplace platform fee charged, for `byok`."}]},"usage_type":{"oneOf":[{"type":"string","description":"The usage line the charge was booked on: `bank_verification` for a bank sign-in or an account check, `bank_statement_upload` for a statement upload with no charged bank attempt before it, and `bank_byok_fee` for the marketplace fee on your own provider. `null` when nothing was billed."},{"type":"null","description":"The usage line the charge was booked on: `bank_verification` for a bank sign-in or an account check, `bank_statement_upload` for a statement upload with no charged bank attempt before it, and `bank_byok_fee` for the marketplace fee on your own provider. `null` when nothing was billed."}]}}}]},"reference_identity":{"oneOf":[{"type":"object","description":"The identity the holder was compared against, with its source."},{"type":"null","description":"The identity the holder was compared against, with its source."}]},"signals":{"oneOf":[{"type":"object","description":"Account signals read from the transaction history, when the step read one."},{"type":"null","description":"Account signals read from the transaction history, when the step read one."}]},"connection_abandoned":{"oneOf":[{"type":"boolean","description":"Whether the step ended without a match after the person left at their bank."},{"type":"null","description":"Whether the step ended without a match after the person left at their bank."}]},"not_covered":{"oneOf":[{"type":"boolean","description":"Whether the person's bank or country could not be reached on this step. Also `true` when the person continued without a bank because no method could verify their country or bank."},{"type":"null","description":"Whether the person's bank or country could not be reached on this step. Also `true` when the person continued without a bank because no method could verify their country or bank."}]},"continued_without_bank":{"type":"boolean","description":"Whether the person left the step with **Continue without your bank**. `continuation` then says why. `method` is `none` when no attempt was evaluated before they continued. After an evaluated attempt, such as a holder that does not match, `method` stays the method of that attempt and its verdict and reason codes stand. Returned even when the workflow narrows the data it returns."},"continuation":{"oneOf":[{"type":"object","description":"How the person continued without a bank. `null` when they did not. When the workflow narrows the data it returns, `reason` is still returned and every other key is `null`.","properties":{"reason":{"type":"string","enum":["no_route","institution_unsupported","attempts_exhausted","person_choice"],"description":"Why, as Didit worked it out when the person continued: `no_route` (no bank sign-in or account check serves their country), `institution_unsupported` (the bank they picked cannot be used on this step), `attempts_exhausted` (every attempt was already spent and none was in progress), or `person_choice` (a way to verify was there and they chose to continue, also when their bank could not be reached right now). `no_route` and `institution_unsupported` follow `bank_unsupported_action`, `attempts_exhausted` follows `bank_attempts_exhausted_action`, and `person_choice` follows `bank_skipped_action`, unless an evaluated attempt already decided the step."},"country":{"oneOf":[{"type":"string","description":"The country the person was verifying in, ISO 3166-1 alpha-3. `null` when they continued before picking one."},{"type":"null","description":"The country the person was verifying in, ISO 3166-1 alpha-3. `null` when they continued before picking one."}]},"offered":{"oneOf":[{"type":"array","items":{"type":"string","enum":["statement","microdeposits"]},"description":"The other ways to verify that country offered the person when they continued, in the order it offered them: `statement` (a statement upload), then `microdeposits`. Empty when it offered none."},{"type":"null","items":{"type":"string","enum":["statement","microdeposits"]},"description":"The other ways to verify that country offered the person when they continued, in the order it offered them: `statement` (a statement upload), then `microdeposits`. Empty when it offered none."}]},"institution_id":{"oneOf":[{"type":"string","description":"For `institution_unsupported`, the ID of the bank the person could not use: the bank they picked, or the bank their last attempt ended on. Didit takes it from its own list of banks, never from the person's device, so a bank that list does not have is `null`. `null` for every other reason."},{"type":"null","description":"For `institution_unsupported`, the ID of the bank the person could not use: the bank they picked, or the bank their last attempt ended on. Didit takes it from its own list of banks, never from the person's device, so a bank that list does not have is `null`. `null` for every other reason."}]},"institution_name":{"oneOf":[{"type":"string","description":"For `institution_unsupported`, the name of that bank, from the same list as `institution_id`. `null` when that list does not have the bank, and for every other reason."},{"type":"null","description":"For `institution_unsupported`, the name of that bank, from the same list as `institution_id`. `null` when that list does not have the bank, and for every other reason."}]},"continued_at":{"oneOf":[{"type":"string","format":"date-time","description":"When the person continued."},{"type":"null","format":"date-time","description":"When the person continued."}]}}},{"type":"null","description":"How the person continued without a bank. `null` when they did not. When the workflow narrows the data it returns, `reason` is still returned and every other key is `null`.","properties":{"reason":{"type":"string","enum":["no_route","institution_unsupported","attempts_exhausted","person_choice"],"description":"Why, as Didit worked it out when the person continued: `no_route` (no bank sign-in or account check serves their country), `institution_unsupported` (the bank they picked cannot be used on this step), `attempts_exhausted` (every attempt was already spent and none was in progress), or `person_choice` (a way to verify was there and they chose to continue, also when their bank could not be reached right now). `no_route` and `institution_unsupported` follow `bank_unsupported_action`, `attempts_exhausted` follows `bank_attempts_exhausted_action`, and `person_choice` follows `bank_skipped_action`, unless an evaluated attempt already decided the step."},"country":{"oneOf":[{"type":"string","description":"The country the person was verifying in, ISO 3166-1 alpha-3. `null` when they continued before picking one."},{"type":"null","description":"The country the person was verifying in, ISO 3166-1 alpha-3. `null` when they continued before picking one."}]},"offered":{"oneOf":[{"type":"array","items":{"type":"string","enum":["statement","microdeposits"]},"description":"The other ways to verify that country offered the person when they continued, in the order it offered them: `statement` (a statement upload), then `microdeposits`. Empty when it offered none."},{"type":"null","items":{"type":"string","enum":["statement","microdeposits"]},"description":"The other ways to verify that country offered the person when they continued, in the order it offered them: `statement` (a statement upload), then `microdeposits`. Empty when it offered none."}]},"institution_id":{"oneOf":[{"type":"string","description":"For `institution_unsupported`, the ID of the bank the person could not use: the bank they picked, or the bank their last attempt ended on. Didit takes it from its own list of banks, never from the person's device, so a bank that list does not have is `null`. `null` for every other reason."},{"type":"null","description":"For `institution_unsupported`, the ID of the bank the person could not use: the bank they picked, or the bank their last attempt ended on. Didit takes it from its own list of banks, never from the person's device, so a bank that list does not have is `null`. `null` for every other reason."}]},"institution_name":{"oneOf":[{"type":"string","description":"For `institution_unsupported`, the name of that bank, from the same list as `institution_id`. `null` when that list does not have the bank, and for every other reason."},{"type":"null","description":"For `institution_unsupported`, the name of that bank, from the same list as `institution_id`. `null` when that list does not have the bank, and for every other reason."}]},"continued_at":{"oneOf":[{"type":"string","format":"date-time","description":"When the person continued."},{"type":"null","format":"date-time","description":"When the person continued."}]}}}]},"evidence_purged_at":{"oneOf":[{"type":"string","format":"date-time","description":"When the bank evidence was deleted under `bank_evidence_retention_days`. `null` otherwise."},{"type":"null","format":"date-time","description":"When the bank evidence was deleted under `bank_evidence_retention_days`. `null` otherwise."}]},"warnings":{"type":"array","items":{"type":"string"},"description":"Informational codes, for example `holder_declared`. A warning never changes the status on its own."},"reason_codes":{"type":"array","items":{"type":"string"},"description":"Why the verdict came out the way it did, for example `OWNER_NAME_PARTIAL`. Several may apply. `NOT_COVERED`: the person continued without a bank because no method could verify their country or bank. `SKIPPED`: the person chose to continue without a bank while a way to verify was there. Neither is added when an evaluated attempt already decided the step."},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}}},"uniqueKey":"bank_verifications.oneOf.1","typeLabel":"null"}],"uniqueKey":"bank_verifications","typeLabel":"object[] | null"},"signatures":{"type":"array","description":"E-signature results, one item per signer and signature step, for User and Business Verification. Present only when the workflow has an E-signature step; an empty array until a signer reaches it. See the [E-signature report](/core-technology/electronic-signature/report-electronic-signature).","items":{"type":"object","description":"One signer's result for one E-signature step. See the [E-signature report](/core-technology/electronic-signature/report-electronic-signature).","properties":{"id":{"type":"string","format":"uuid","description":"Pass it as `signature_id` to download this signer's evidence or validate their signature.","uniqueKey":"signatures.items.[INDEX].id","typeLabel":"string\u003cuuid>"},"node_id":{"type":"string","description":"The workflow step that produced it.","uniqueKey":"signatures.items.[INDEX].node_id","typeLabel":"string"},"status":{"type":"string","enum":["intro","review","code","signing","signed","declined"],"description":"Where the signer is in the step. Only `signed` means the documents are signed.","uniqueKey":"signatures.items.[INDEX].status","typeLabel":"enum\u003cstring>"},"verdict":{"type":"string","enum":["Not Finished","Approved","In Review","Declined"],"description":"The step's outcome. A warning sets it through its rule; custom status rules apply after.","uniqueKey":"signatures.items.[INDEX].verdict","typeLabel":"enum\u003cstring>"},"level":{"type":"string","enum":["simple","aes","qes"],"description":"`simple` (default), `aes` or `qes` (Qualified electronic signature, QES, an add-on: a qualified trust service provider issues the signer a qualified certificate and signs after the signer enters the code it texts them).","uniqueKey":"signatures.items.[INDEX].level","typeLabel":"enum\u003cstring>"},"format":{"type":"string","enum":["pdf","pades"],"description":"`pdf` for a Simple signature, `pades` for Advanced (AES) and Qualified (QES).","uniqueKey":"signatures.items.[INDEX].format","typeLabel":"enum\u003cstring>"},"profile":{"oneOf":[{"type":"string","description":"The PAdES profile of the signed documents: `PAdES-B-LT` once an Advanced (AES) or Qualified (QES) signature is signed, otherwise null.","uniqueKey":"signatures.items.[INDEX].profile.oneOf.0","typeLabel":"string"},{"type":"null","description":"The PAdES profile of the signed documents: `PAdES-B-LT` once an Advanced (AES) or Qualified (QES) signature is signed, otherwise null.","uniqueKey":"signatures.items.[INDEX].profile.oneOf.1","typeLabel":"null"}],"uniqueKey":"signatures.items.[INDEX].profile","typeLabel":"string | null"},"signer":{"type":"object","properties":{"name":{"oneOf":[{"type":"string","description":"The signer's name. Verified (from the approved ID verification or the session) except at the Simple level without a verified session name, where it is the name the signer typed and is not verified.","uniqueKey":"signatures.items.[INDEX].signer.name.oneOf.0","typeLabel":"string"},{"type":"null","description":"The signer's name. Verified (from the approved ID verification or the session) except at the Simple level without a verified session name, where it is the name the signer typed and is not verified.","uniqueKey":"signatures.items.[INDEX].signer.name.oneOf.1","typeLabel":"null"}],"uniqueKey":"signatures.items.[INDEX].signer.name","typeLabel":"string | null"},"capacity":{"type":"string","enum":["self","company"],"uniqueKey":"signatures.items.[INDEX].signer.capacity","typeLabel":"enum\u003cstring>"},"company":{"oneOf":[{"type":"string","uniqueKey":"signatures.items.[INDEX].signer.company.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"signatures.items.[INDEX].signer.company.oneOf.1","typeLabel":"null"}],"uniqueKey":"signatures.items.[INDEX].signer.company","typeLabel":"string | null"},"role":{"oneOf":[{"type":"string","description":"The key person's designation, as declared.","uniqueKey":"signatures.items.[INDEX].signer.role.oneOf.0","typeLabel":"string"},{"type":"null","description":"The key person's designation, as declared.","uniqueKey":"signatures.items.[INDEX].signer.role.oneOf.1","typeLabel":"null"}],"uniqueKey":"signatures.items.[INDEX].signer.role","typeLabel":"string | null"},"roles":{"type":"array","items":{"type":"string","uniqueKey":"signatures.items.[INDEX].signer.roles.items.[INDEX]","typeLabel":"string"},"description":"The key person's structured roles, as declared for the company.","uniqueKey":"signatures.items.[INDEX].signer.roles","typeLabel":"string[]"},"identity_session_id":{"type":"string","format":"uuid","description":"The KYC session that verified the signer.","uniqueKey":"signatures.items.[INDEX].signer.identity_session_id","typeLabel":"string\u003cuuid>"}},"uniqueKey":"signatures.items.[INDEX].signer","typeLabel":"object"},"identity_used":{"type":"object","description":"The verified identity the signature relies on. Empty for a Simple signature with no verified identity.","properties":{"session_id":{"type":"string","format":"uuid","uniqueKey":"signatures.items.[INDEX].identity_used.session_id","typeLabel":"string\u003cuuid>"},"kyc_id":{"oneOf":[{"type":"string","format":"uuid","uniqueKey":"signatures.items.[INDEX].identity_used.kyc_id.oneOf.0","typeLabel":"string\u003cuuid>"},{"type":"null","format":"uuid","uniqueKey":"signatures.items.[INDEX].identity_used.kyc_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"signatures.items.[INDEX].identity_used.kyc_id","typeLabel":"string\u003cuuid> | null"},"verified":{"type":"boolean","uniqueKey":"signatures.items.[INDEX].identity_used.verified","typeLabel":"boolean"},"expected_name":{"oneOf":[{"type":"string","description":"The name the signer had to match.","uniqueKey":"signatures.items.[INDEX].identity_used.expected_name.oneOf.0","typeLabel":"string"},{"type":"null","description":"The name the signer had to match.","uniqueKey":"signatures.items.[INDEX].identity_used.expected_name.oneOf.1","typeLabel":"null"}],"uniqueKey":"signatures.items.[INDEX].identity_used.expected_name","typeLabel":"string | null"}},"uniqueKey":"signatures.items.[INDEX].identity_used","typeLabel":"object"},"certificate":{"oneOf":[{"type":"object","description":"The certificate the documents were signed with. `null` until signed, and always `null` for a Simple signature.","properties":{"issuer":{"type":"string","uniqueKey":"signatures.items.[INDEX].certificate.oneOf.0.issuer","typeLabel":"string"},"issued_to":{"type":"string","uniqueKey":"signatures.items.[INDEX].certificate.oneOf.0.issued_to","typeLabel":"string"},"serial":{"type":"string","description":"Serial number, hexadecimal.","uniqueKey":"signatures.items.[INDEX].certificate.oneOf.0.serial","typeLabel":"string"},"valid_from":{"type":"string","format":"date-time","uniqueKey":"signatures.items.[INDEX].certificate.oneOf.0.valid_from","typeLabel":"string\u003cdate-time>"},"valid_until":{"type":"string","format":"date-time","uniqueKey":"signatures.items.[INDEX].certificate.oneOf.0.valid_until","typeLabel":"string\u003cdate-time>"}},"uniqueKey":"signatures.items.[INDEX].certificate.oneOf.0","typeLabel":"object"},{"type":"null","description":"The certificate the documents were signed with. `null` until signed, and always `null` for a Simple signature.","properties":{"issuer":{"type":"string"},"issued_to":{"type":"string"},"serial":{"type":"string","description":"Serial number, hexadecimal."},"valid_from":{"type":"string","format":"date-time"},"valid_until":{"type":"string","format":"date-time"}},"uniqueKey":"signatures.items.[INDEX].certificate.oneOf.1","typeLabel":"null"}],"uniqueKey":"signatures.items.[INDEX].certificate","typeLabel":"object | null"},"confirmation":{"type":"object","properties":{"sent_by":{"oneOf":[{"type":"string","enum":["didit","qualified_provider"],"description":"Who sent the code: `didit`, or `qualified_provider` for a Qualified (QES) signature, whose code comes by SMS from the qualified trust service provider and authorizes the signer's qualified certificate. `null` for a Simple signature.","uniqueKey":"signatures.items.[INDEX].confirmation.sent_by.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["didit","qualified_provider"],"description":"Who sent the code: `didit`, or `qualified_provider` for a Qualified (QES) signature, whose code comes by SMS from the qualified trust service provider and authorizes the signer's qualified certificate. `null` for a Simple signature.","uniqueKey":"signatures.items.[INDEX].confirmation.sent_by.oneOf.1","typeLabel":"null"}],"uniqueKey":"signatures.items.[INDEX].confirmation.sent_by","typeLabel":"enum\u003cstring> | null"},"channel":{"oneOf":[{"type":"string","enum":["email","sms"],"description":"`null` for a Simple signature, which has no code. Always `sms` for a Qualified (QES) signature.","uniqueKey":"signatures.items.[INDEX].confirmation.channel.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["email","sms"],"description":"`null` for a Simple signature, which has no code. Always `sms` for a Qualified (QES) signature.","uniqueKey":"signatures.items.[INDEX].confirmation.channel.oneOf.1","typeLabel":"null"}],"uniqueKey":"signatures.items.[INDEX].confirmation.channel","typeLabel":"enum\u003cstring> | null"},"destination":{"oneOf":[{"type":"string","description":"The masked contact the code went to.","uniqueKey":"signatures.items.[INDEX].confirmation.destination.oneOf.0","typeLabel":"string"},{"type":"null","description":"The masked contact the code went to.","uniqueKey":"signatures.items.[INDEX].confirmation.destination.oneOf.1","typeLabel":"null"}],"uniqueKey":"signatures.items.[INDEX].confirmation.destination","typeLabel":"string | null"},"confirmed_at":{"oneOf":[{"type":"string","format":"date-time","uniqueKey":"signatures.items.[INDEX].confirmation.confirmed_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","uniqueKey":"signatures.items.[INDEX].confirmation.confirmed_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"signatures.items.[INDEX].confirmation.confirmed_at","typeLabel":"string\u003cdate-time> | null"},"attempts":{"type":"integer","description":"Codes entered, the right one included.","uniqueKey":"signatures.items.[INDEX].confirmation.attempts","typeLabel":"integer"}},"uniqueKey":"signatures.items.[INDEX].confirmation","typeLabel":"object"},"timestamp":{"oneOf":[{"type":"object","description":"The RFC 3161 timestamp in the signature, issued by Didit. `null` until signed, and always `null` for a Simple signature.","properties":{"time":{"type":"string","format":"date-time","uniqueKey":"signatures.items.[INDEX].timestamp.oneOf.0.time","typeLabel":"string\u003cdate-time>"},"qualified":{"type":"boolean","description":"Always `false` for AES.","uniqueKey":"signatures.items.[INDEX].timestamp.oneOf.0.qualified","typeLabel":"boolean"},"valid":{"type":"boolean","uniqueKey":"signatures.items.[INDEX].timestamp.oneOf.0.valid","typeLabel":"boolean"}},"uniqueKey":"signatures.items.[INDEX].timestamp.oneOf.0","typeLabel":"object"},{"type":"null","description":"The RFC 3161 timestamp in the signature, issued by Didit. `null` until signed, and always `null` for a Simple signature.","properties":{"time":{"type":"string","format":"date-time"},"qualified":{"type":"boolean","description":"Always `false` for AES."},"valid":{"type":"boolean"}},"uniqueKey":"signatures.items.[INDEX].timestamp.oneOf.1","typeLabel":"null"}],"uniqueKey":"signatures.items.[INDEX].timestamp","typeLabel":"object | null"},"documents":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"The document on this signer's copy. Use it to download the signed file.","uniqueKey":"signatures.items.[INDEX].documents.items.[INDEX].id","typeLabel":"string\u003cuuid>"},"uuid":{"type":"string","format":"uuid","description":"Same as `id`.","uniqueKey":"signatures.items.[INDEX].documents.items.[INDEX].uuid","typeLabel":"string\u003cuuid>"},"title":{"type":"string","uniqueKey":"signatures.items.[INDEX].documents.items.[INDEX].title","typeLabel":"string"},"language":{"oneOf":[{"type":"string","description":"Language of the document version selected for this signing attempt, not necessarily the requested interface language. A complete translation matching the signer language (or session language when unset) is selected; otherwise the original is used. Null when the selected version has no language set. Frozen when the attempt starts; once signed, this is the language actually signed.","example":"en","uniqueKey":"signatures.items.[INDEX].documents.items.[INDEX].language.oneOf.0","typeLabel":"string"},{"type":"null","description":"Language of the document version selected for this signing attempt, not necessarily the requested interface language. A complete translation matching the signer language (or session language when unset) is selected; otherwise the original is used. Null when the selected version has no language set. Frozen when the attempt starts; once signed, this is the language actually signed.","example":"en","uniqueKey":"signatures.items.[INDEX].documents.items.[INDEX].language.oneOf.1","typeLabel":"null"}],"uniqueKey":"signatures.items.[INDEX].documents.items.[INDEX].language","typeLabel":"string | null"},"source_revision":{"type":"string","format":"uuid","description":"UUID of the source document revision copied into this signing attempt, including when a translated variant is selected. Distinct from id, which identifies the signer's document copy. Frozen when the attempt starts.","example":"22222222-2222-4222-8222-222222222222","uniqueKey":"signatures.items.[INDEX].documents.items.[INDEX].source_revision","typeLabel":"string\u003cuuid>"},"translation_id":{"oneOf":[{"type":"string","format":"uuid","description":"UUID of the selected translated variant, or null when the original document is selected. Frozen with the document copy when the attempt starts; later language or translation changes do not replace it.","example":null,"uniqueKey":"signatures.items.[INDEX].documents.items.[INDEX].translation_id.oneOf.0","typeLabel":"string\u003cuuid>"},{"type":"null","format":"uuid","description":"UUID of the selected translated variant, or null when the original document is selected. Frozen with the document copy when the attempt starts; later language or translation changes do not replace it.","example":null,"uniqueKey":"signatures.items.[INDEX].documents.items.[INDEX].translation_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"signatures.items.[INDEX].documents.items.[INDEX].translation_id","typeLabel":"string\u003cuuid> | null"},"file_name":{"type":"string","uniqueKey":"signatures.items.[INDEX].documents.items.[INDEX].file_name","typeLabel":"string"},"pages":{"type":"integer","description":"Pages of the document signed. For Word, of the converted PDF.","uniqueKey":"signatures.items.[INDEX].documents.items.[INDEX].pages","typeLabel":"integer"},"size_bytes":{"type":"integer","uniqueKey":"signatures.items.[INDEX].documents.items.[INDEX].size_bytes","typeLabel":"integer"},"sha256_original":{"type":"string","description":"SHA-256 of the document as the signer was shown it.","uniqueKey":"signatures.items.[INDEX].documents.items.[INDEX].sha256_original","typeLabel":"string"},"sha256_signed":{"oneOf":[{"type":"string","description":"SHA-256 of the signed PDF, once signed.","uniqueKey":"signatures.items.[INDEX].documents.items.[INDEX].sha256_signed.oneOf.0","typeLabel":"string"},{"type":"null","description":"SHA-256 of the signed PDF, once signed.","uniqueKey":"signatures.items.[INDEX].documents.items.[INDEX].sha256_signed.oneOf.1","typeLabel":"null"}],"uniqueKey":"signatures.items.[INDEX].documents.items.[INDEX].sha256_signed","typeLabel":"string | null"},"status":{"type":"string","enum":["signed","declined","not_signed","not_reached"],"description":"`not_signed`: opened but not signed. `not_reached`: never opened.","uniqueKey":"signatures.items.[INDEX].documents.items.[INDEX].status","typeLabel":"enum\u003cstring>"},"opened_at":{"oneOf":[{"type":"string","format":"date-time","uniqueKey":"signatures.items.[INDEX].documents.items.[INDEX].opened_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","uniqueKey":"signatures.items.[INDEX].documents.items.[INDEX].opened_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"signatures.items.[INDEX].documents.items.[INDEX].opened_at","typeLabel":"string\u003cdate-time> | null"},"read_at":{"oneOf":[{"type":"string","format":"date-time","description":"When the signer reached the end of a document without fields, when the step requires it.","uniqueKey":"signatures.items.[INDEX].documents.items.[INDEX].read_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","description":"When the signer reached the end of a document without fields, when the step requires it.","uniqueKey":"signatures.items.[INDEX].documents.items.[INDEX].read_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"signatures.items.[INDEX].documents.items.[INDEX].read_at","typeLabel":"string\u003cdate-time> | null"},"read_to_end":{"type":"boolean","uniqueKey":"signatures.items.[INDEX].documents.items.[INDEX].read_to_end","typeLabel":"boolean"},"consented_at":{"oneOf":[{"type":"string","format":"date-time","description":"When the signer agreed to a document without fields, or finished the fields of a document with fields.","uniqueKey":"signatures.items.[INDEX].documents.items.[INDEX].consented_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","description":"When the signer agreed to a document without fields, or finished the fields of a document with fields.","uniqueKey":"signatures.items.[INDEX].documents.items.[INDEX].consented_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"signatures.items.[INDEX].documents.items.[INDEX].consented_at","typeLabel":"string\u003cdate-time> | null"},"consent":{"type":"boolean","uniqueKey":"signatures.items.[INDEX].documents.items.[INDEX].consent","typeLabel":"boolean"},"signed_file":{"oneOf":[{"type":"string","description":"Path of the signed PDF, once signed. See [Download a signed document](/sessions-api/electronic-signature/download-signed-document).","uniqueKey":"signatures.items.[INDEX].documents.items.[INDEX].signed_file.oneOf.0","typeLabel":"string"},{"type":"null","description":"Path of the signed PDF, once signed. See [Download a signed document](/sessions-api/electronic-signature/download-signed-document).","uniqueKey":"signatures.items.[INDEX].documents.items.[INDEX].signed_file.oneOf.1","typeLabel":"null"}],"uniqueKey":"signatures.items.[INDEX].documents.items.[INDEX].signed_file","typeLabel":"string | null"},"mode":{"type":"string","enum":["fields","read_and_agree"],"description":"`fields` for a document with fields, `read_and_agree` for a document without.","uniqueKey":"signatures.items.[INDEX].documents.items.[INDEX].mode","typeLabel":"enum\u003cstring>"},"source_format":{"type":"string","enum":["pdf","docx"],"description":"`pdf`, or `docx` for a Word document Didit converted to PDF.","uniqueKey":"signatures.items.[INDEX].documents.items.[INDEX].source_format","typeLabel":"enum\u003cstring>"},"conversion":{"oneOf":[{"type":"object","description":"`null` for a PDF. For a Word document, the original file and the conversion.","properties":{"from":{"type":"string","enum":["docx"],"uniqueKey":"signatures.items.[INDEX].documents.items.[INDEX].conversion.oneOf.0.from","typeLabel":"enum\u003cstring>"},"file_name":{"type":"string","description":"Your original Word file name.","uniqueKey":"signatures.items.[INDEX].documents.items.[INDEX].conversion.oneOf.0.file_name","typeLabel":"string"},"sha256":{"type":"string","description":"SHA-256 of your original Word file.","uniqueKey":"signatures.items.[INDEX].documents.items.[INDEX].conversion.oneOf.0.sha256","typeLabel":"string"},"size_bytes":{"type":"integer","description":"Size of your original Word file.","uniqueKey":"signatures.items.[INDEX].documents.items.[INDEX].conversion.oneOf.0.size_bytes","typeLabel":"integer"},"converter":{"type":"string","description":"Version of the converter that produced the PDF.","uniqueKey":"signatures.items.[INDEX].documents.items.[INDEX].conversion.oneOf.0.converter","typeLabel":"string"}},"uniqueKey":"signatures.items.[INDEX].documents.items.[INDEX].conversion.oneOf.0","typeLabel":"object"},{"type":"null","description":"`null` for a PDF. For a Word document, the original file and the conversion.","properties":{"from":{"type":"string","enum":["docx"]},"file_name":{"type":"string","description":"Your original Word file name."},"sha256":{"type":"string","description":"SHA-256 of your original Word file."},"size_bytes":{"type":"integer","description":"Size of your original Word file."},"converter":{"type":"string","description":"Version of the converter that produced the PDF."}},"uniqueKey":"signatures.items.[INDEX].documents.items.[INDEX].conversion.oneOf.1","typeLabel":"null"}],"uniqueKey":"signatures.items.[INDEX].documents.items.[INDEX].conversion","typeLabel":"object | null"},"fields":{"type":"array","description":"Fields on the document, with their values. Empty for a document without fields.","items":{"type":"object","description":"A field of a signed document, with its value on this signer's copy. See [Fields](/core-technology/electronic-signature/report-electronic-signature#fields).","properties":{"key":{"type":"string","description":"The field's key, as used in `sign.field_values`.","uniqueKey":"signatures.items.[INDEX].documents.items.[INDEX].fields.items.[INDEX].key","typeLabel":"string"},"type":{"type":"string","enum":["signature","initials","full_name","date_signed","text","checkbox","email","data"],"uniqueKey":"signatures.items.[INDEX].documents.items.[INDEX].fields.items.[INDEX].type","typeLabel":"enum\u003cstring>"},"role":{"type":"string","enum":["verified_person","legal_representative","key_people"],"uniqueKey":"signatures.items.[INDEX].documents.items.[INDEX].fields.items.[INDEX].role","typeLabel":"enum\u003cstring>"},"label":{"type":"string","uniqueKey":"signatures.items.[INDEX].documents.items.[INDEX].fields.items.[INDEX].label","typeLabel":"string"},"page":{"type":"integer","description":"Page number, from 1. For a Word document, a page of the converted PDF.","uniqueKey":"signatures.items.[INDEX].documents.items.[INDEX].fields.items.[INDEX].page","typeLabel":"integer"},"x":{"type":"number","description":"Left edge, as a fraction of the page width.","uniqueKey":"signatures.items.[INDEX].documents.items.[INDEX].fields.items.[INDEX].x","typeLabel":"number"},"y":{"type":"number","description":"Top edge, as a fraction of the page height.","uniqueKey":"signatures.items.[INDEX].documents.items.[INDEX].fields.items.[INDEX].y","typeLabel":"number"},"width":{"type":"number","description":"Width, as a fraction of the page width.","uniqueKey":"signatures.items.[INDEX].documents.items.[INDEX].fields.items.[INDEX].width","typeLabel":"number"},"height":{"type":"number","description":"Height, as a fraction of the page height.","uniqueKey":"signatures.items.[INDEX].documents.items.[INDEX].fields.items.[INDEX].height","typeLabel":"number"},"required":{"type":"boolean","uniqueKey":"signatures.items.[INDEX].documents.items.[INDEX].fields.items.[INDEX].required","typeLabel":"boolean"},"value":{"oneOf":[{"description":"A string for `text`, `email`, `full_name`, `date_signed` and `data`, a boolean for a `checkbox`, and `true` for an applied signature or initials. `null` when empty.","uniqueKey":"signatures.items.[INDEX].documents.items.[INDEX].fields.items.[INDEX].value.oneOf.0","typeLabel":"any"},{"description":"A string for `text`, `email`, `full_name`, `date_signed` and `data`, a boolean for a `checkbox`, and `true` for an applied signature or initials. `null` when empty.","type":"null","uniqueKey":"signatures.items.[INDEX].documents.items.[INDEX].fields.items.[INDEX].value.oneOf.1","typeLabel":"null"}],"uniqueKey":"signatures.items.[INDEX].documents.items.[INDEX].fields.items.[INDEX].value","typeLabel":"any | null"},"display_value":{"oneOf":[{"type":"string","description":"The value as stamped on the page: dates in the field's `date_format`, `Yes` or `No` for a checkbox, `Signed` for a signature or initials.","uniqueKey":"signatures.items.[INDEX].documents.items.[INDEX].fields.items.[INDEX].display_value.oneOf.0","typeLabel":"string"},{"type":"null","description":"The value as stamped on the page: dates in the field's `date_format`, `Yes` or `No` for a checkbox, `Signed` for a signature or initials.","uniqueKey":"signatures.items.[INDEX].documents.items.[INDEX].fields.items.[INDEX].display_value.oneOf.1","typeLabel":"null"}],"uniqueKey":"signatures.items.[INDEX].documents.items.[INDEX].fields.items.[INDEX].display_value","typeLabel":"string | null"},"value_source":{"oneOf":[{"type":"string","enum":["signer","identity","contact","company","session","metadata","api","signing_time",null],"description":"Where the value came from: `signer` (typed, ticked or applied by the signer), `identity` (the verified ID), `contact` (the verified email or phone), `company` (the verified company), `session` (`vendor_data`), `metadata`, `api` (`sign.field_values`) or `signing_time` (the date signed).","uniqueKey":"signatures.items.[INDEX].documents.items.[INDEX].fields.items.[INDEX].value_source.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["signer","identity","contact","company","session","metadata","api","signing_time",null],"description":"Where the value came from: `signer` (typed, ticked or applied by the signer), `identity` (the verified ID), `contact` (the verified email or phone), `company` (the verified company), `session` (`vendor_data`), `metadata`, `api` (`sign.field_values`) or `signing_time` (the date signed).","uniqueKey":"signatures.items.[INDEX].documents.items.[INDEX].fields.items.[INDEX].value_source.oneOf.1","typeLabel":"null"}],"uniqueKey":"signatures.items.[INDEX].documents.items.[INDEX].fields.items.[INDEX].value_source","typeLabel":"enum\u003cstring> | null"},"filled_at":{"oneOf":[{"type":"string","format":"date-time","uniqueKey":"signatures.items.[INDEX].documents.items.[INDEX].fields.items.[INDEX].filled_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","uniqueKey":"signatures.items.[INDEX].documents.items.[INDEX].fields.items.[INDEX].filled_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"signatures.items.[INDEX].documents.items.[INDEX].fields.items.[INDEX].filled_at","typeLabel":"string\u003cdate-time> | null"},"image_url":{"oneOf":[{"type":"string","description":"Signature and initials only: the path of the applied image. See [Download a signature image](/sessions-api/electronic-signature/download-field-image).","uniqueKey":"signatures.items.[INDEX].documents.items.[INDEX].fields.items.[INDEX].image_url.oneOf.0","typeLabel":"string"},{"type":"null","description":"Signature and initials only: the path of the applied image. See [Download a signature image](/sessions-api/electronic-signature/download-field-image).","uniqueKey":"signatures.items.[INDEX].documents.items.[INDEX].fields.items.[INDEX].image_url.oneOf.1","typeLabel":"null"}],"uniqueKey":"signatures.items.[INDEX].documents.items.[INDEX].fields.items.[INDEX].image_url","typeLabel":"string | null"},"value_unavailable_reason":{"oneOf":[{"type":"string","enum":["source_empty",null],"description":"`source_empty` when a pre-filled field had no value in the session and `signature_field_data_missing_action` let the signer sign anyway.","uniqueKey":"signatures.items.[INDEX].documents.items.[INDEX].fields.items.[INDEX].value_unavailable_reason.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["source_empty",null],"description":"`source_empty` when a pre-filled field had no value in the session and `signature_field_data_missing_action` let the signer sign anyway.","uniqueKey":"signatures.items.[INDEX].documents.items.[INDEX].fields.items.[INDEX].value_unavailable_reason.oneOf.1","typeLabel":"null"}],"uniqueKey":"signatures.items.[INDEX].documents.items.[INDEX].fields.items.[INDEX].value_unavailable_reason","typeLabel":"enum\u003cstring> | null"}},"uniqueKey":"signatures.items.[INDEX].documents.items.[INDEX].fields.items.[INDEX]","typeLabel":"object"},"uniqueKey":"signatures.items.[INDEX].documents.items.[INDEX].fields","typeLabel":"object[]"}},"uniqueKey":"signatures.items.[INDEX].documents.items.[INDEX]","typeLabel":"object"},"uniqueKey":"signatures.items.[INDEX].documents","typeLabel":"object[]"},"adopted_signature":{"oneOf":[{"type":"object","description":"The signature and initials the signer adopted for signature and initials fields. `null` until the signer adopts one.","properties":{"method":{"type":"string","enum":["typed","drawn"],"description":"`typed`: the verified name in a handwriting style. `drawn`: drawn with a finger or a mouse.","uniqueKey":"signatures.items.[INDEX].adopted_signature.oneOf.0.method","typeLabel":"enum\u003cstring>"},"font":{"oneOf":[{"type":"string","description":"The handwriting style of a typed signature. `null` when drawn.","uniqueKey":"signatures.items.[INDEX].adopted_signature.oneOf.0.font.oneOf.0","typeLabel":"string"},{"type":"null","description":"The handwriting style of a typed signature. `null` when drawn.","uniqueKey":"signatures.items.[INDEX].adopted_signature.oneOf.0.font.oneOf.1","typeLabel":"null"}],"uniqueKey":"signatures.items.[INDEX].adopted_signature.oneOf.0.font","typeLabel":"string | null"},"adopted_at":{"type":"string","format":"date-time","uniqueKey":"signatures.items.[INDEX].adopted_signature.oneOf.0.adopted_at","typeLabel":"string\u003cdate-time>"}},"uniqueKey":"signatures.items.[INDEX].adopted_signature.oneOf.0","typeLabel":"object"},{"type":"null","description":"The signature and initials the signer adopted for signature and initials fields. `null` until the signer adopts one.","properties":{"method":{"type":"string","enum":["typed","drawn"],"description":"`typed`: the verified name in a handwriting style. `drawn`: drawn with a finger or a mouse."},"font":{"oneOf":[{"type":"string","description":"The handwriting style of a typed signature. `null` when drawn."},{"type":"null","description":"The handwriting style of a typed signature. `null` when drawn."}]},"adopted_at":{"type":"string","format":"date-time"}},"uniqueKey":"signatures.items.[INDEX].adopted_signature.oneOf.1","typeLabel":"null"}],"uniqueKey":"signatures.items.[INDEX].adopted_signature","typeLabel":"object | null"},"electronic_signature_consent_at":{"oneOf":[{"type":"string","format":"date-time","description":"When the signer agreed, on the review screen, to sign the documents electronically. Set when any document has fields.","uniqueKey":"signatures.items.[INDEX].electronic_signature_consent_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","description":"When the signer agreed, on the review screen, to sign the documents electronically. Set when any document has fields.","uniqueKey":"signatures.items.[INDEX].electronic_signature_consent_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"signatures.items.[INDEX].electronic_signature_consent_at","typeLabel":"string\u003cdate-time> | null"},"evidence_file":{"oneOf":[{"type":"string","description":"Path of the evidence PDF, once signed. See [Download the signature evidence](/sessions-api/electronic-signature/download-evidence).","uniqueKey":"signatures.items.[INDEX].evidence_file.oneOf.0","typeLabel":"string"},{"type":"null","description":"Path of the evidence PDF, once signed. See [Download the signature evidence](/sessions-api/electronic-signature/download-evidence).","uniqueKey":"signatures.items.[INDEX].evidence_file.oneOf.1","typeLabel":"null"}],"uniqueKey":"signatures.items.[INDEX].evidence_file","typeLabel":"string | null"},"warnings":{"type":"array","description":"Warnings raised for this signer. See [E-signature warnings](/core-technology/electronic-signature/warnings-electronic-signature).","items":{"type":"object","properties":{"code":{"type":"string","enum":["SIGNATURE_DECLINED","SIGNATURE_OTP_FAILED","SIGNATURE_NAME_MISMATCH","SIGNATURE_IDENTITY_NOT_VERIFIED","SIGNATURE_DOCUMENT_CHANGED","SIGNATURE_FIELD_DATA_MISSING"],"uniqueKey":"signatures.items.[INDEX].warnings.items.[INDEX].code","typeLabel":"enum\u003cstring>"},"node_id":{"type":"string","uniqueKey":"signatures.items.[INDEX].warnings.items.[INDEX].node_id","typeLabel":"string"}},"uniqueKey":"signatures.items.[INDEX].warnings.items.[INDEX]","typeLabel":"object"},"uniqueKey":"signatures.items.[INDEX].warnings","typeLabel":"object[]"},"validation":{"oneOf":[{"type":"object","description":"The last cryptographic check of the signed documents. `null` until the documents are signed. If Didit can't confirm the outcome of signing, it's `{\"valid\": null, \"reason\": \"signature_provider_outcome_unknown\", \"checked_at\": ...}` and `status` stays `signing`: treat it as not signed.","properties":{"valid":{"oneOf":[{"type":"boolean","description":"`true` when every document is valid. `null` when the outcome of signing couldn't be confirmed.","uniqueKey":"signatures.items.[INDEX].validation.oneOf.0.valid.oneOf.0","typeLabel":"boolean"},{"type":"null","description":"`true` when every document is valid. `null` when the outcome of signing couldn't be confirmed.","uniqueKey":"signatures.items.[INDEX].validation.oneOf.0.valid.oneOf.1","typeLabel":"null"}],"uniqueKey":"signatures.items.[INDEX].validation.oneOf.0.valid","typeLabel":"boolean | null"},"reason":{"type":"string","description":"`signature_provider_outcome_unknown` while `valid` is `null` (the signing outcome is not known yet); `signature_provider_failed` when the qualified trust service provider ended a Qualified (QES) signing without a signature: the attempt is back at review and the signer can ask for a new code.","uniqueKey":"signatures.items.[INDEX].validation.oneOf.0.reason","typeLabel":"string"},"checked_at":{"type":"string","format":"date-time","uniqueKey":"signatures.items.[INDEX].validation.oneOf.0.checked_at","typeLabel":"string\u003cdate-time>"},"documents":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","uniqueKey":"signatures.items.[INDEX].validation.oneOf.0.documents.items.[INDEX].id","typeLabel":"string\u003cuuid>"},"checked_at":{"type":"string","format":"date-time","uniqueKey":"signatures.items.[INDEX].validation.oneOf.0.documents.items.[INDEX].checked_at","typeLabel":"string\u003cdate-time>"},"valid":{"type":"boolean","description":"`true` when the signature and the timestamp are both valid and trusted.","uniqueKey":"signatures.items.[INDEX].validation.oneOf.0.documents.items.[INDEX].valid","typeLabel":"boolean"},"integrity":{"type":"boolean","description":"`true` when the document is unchanged since signing.","uniqueKey":"signatures.items.[INDEX].validation.oneOf.0.documents.items.[INDEX].integrity","typeLabel":"boolean"},"trusted":{"type":"boolean","description":"`true` when the signing certificate chains to a trusted root.","uniqueKey":"signatures.items.[INDEX].validation.oneOf.0.documents.items.[INDEX].trusted","typeLabel":"boolean"},"revoked":{"type":"boolean","uniqueKey":"signatures.items.[INDEX].validation.oneOf.0.documents.items.[INDEX].revoked","typeLabel":"boolean"},"trusted_list":{"type":"object","description":"EU Trusted List check. AES: `{\"status\": \"not_applicable\", \"reason\": \"aes_not_qualified\"}`. QES: `{\"status\": \"granted\"}` when the certificate is a qualified certificate for electronic signatures issued under the qualified trust service provider's Trusted List entry, else `{\"status\": \"not_granted\", ...}`. A sandbox session's qualified level is sealed by Didit: `{\"status\": \"not_applicable\", \"reason\": \"sandbox\"}`.","properties":{"status":{"type":"string","uniqueKey":"signatures.items.[INDEX].validation.oneOf.0.documents.items.[INDEX].trusted_list.status","typeLabel":"string"},"reason":{"type":"string","uniqueKey":"signatures.items.[INDEX].validation.oneOf.0.documents.items.[INDEX].trusted_list.reason","typeLabel":"string"}},"uniqueKey":"signatures.items.[INDEX].validation.oneOf.0.documents.items.[INDEX].trusted_list","typeLabel":"object"},"certificate":{"oneOf":[{"type":"object","description":"The certificate the documents were signed with. `null` until signed, and always `null` for a Simple signature.","properties":{"issuer":{"type":"string","uniqueKey":"signatures.items.[INDEX].validation.oneOf.0.documents.items.[INDEX].certificate.oneOf.0.issuer","typeLabel":"string"},"issued_to":{"type":"string","uniqueKey":"signatures.items.[INDEX].validation.oneOf.0.documents.items.[INDEX].certificate.oneOf.0.issued_to","typeLabel":"string"},"serial":{"type":"string","description":"Serial number, hexadecimal.","uniqueKey":"signatures.items.[INDEX].validation.oneOf.0.documents.items.[INDEX].certificate.oneOf.0.serial","typeLabel":"string"},"valid_from":{"type":"string","format":"date-time","uniqueKey":"signatures.items.[INDEX].validation.oneOf.0.documents.items.[INDEX].certificate.oneOf.0.valid_from","typeLabel":"string\u003cdate-time>"},"valid_until":{"type":"string","format":"date-time","uniqueKey":"signatures.items.[INDEX].validation.oneOf.0.documents.items.[INDEX].certificate.oneOf.0.valid_until","typeLabel":"string\u003cdate-time>"},"qualified_statements":{"type":"object","description":"QES: which ETSI EN 319 412-5 statements the certificate carries.","properties":{"qc_compliance":{"type":"boolean","description":"An EU qualified certificate.","uniqueKey":"signatures.items.[INDEX].validation.oneOf.0.documents.items.[INDEX].certificate.oneOf.0.qualified_statements.qc_compliance","typeLabel":"boolean"},"qc_sscd":{"type":"boolean","description":"The key is in a qualified signature creation device.","uniqueKey":"signatures.items.[INDEX].validation.oneOf.0.documents.items.[INDEX].certificate.oneOf.0.qualified_statements.qc_sscd","typeLabel":"boolean"},"qc_type_esign":{"type":"boolean","description":"A certificate for electronic signatures.","uniqueKey":"signatures.items.[INDEX].validation.oneOf.0.documents.items.[INDEX].certificate.oneOf.0.qualified_statements.qc_type_esign","typeLabel":"boolean"}},"uniqueKey":"signatures.items.[INDEX].validation.oneOf.0.documents.items.[INDEX].certificate.oneOf.0.qualified_statements","typeLabel":"object"}},"uniqueKey":"signatures.items.[INDEX].validation.oneOf.0.documents.items.[INDEX].certificate.oneOf.0","typeLabel":"object"},{"type":"null","description":"The certificate the documents were signed with. `null` until signed, and always `null` for a Simple signature.","properties":{"issuer":{"type":"string"},"issued_to":{"type":"string"},"serial":{"type":"string","description":"Serial number, hexadecimal."},"valid_from":{"type":"string","format":"date-time"},"valid_until":{"type":"string","format":"date-time"},"qualified_statements":{"type":"object","description":"QES: which ETSI EN 319 412-5 statements the certificate carries.","properties":{"qc_compliance":{"type":"boolean","description":"An EU qualified certificate."},"qc_sscd":{"type":"boolean","description":"The key is in a qualified signature creation device."},"qc_type_esign":{"type":"boolean","description":"A certificate for electronic signatures."}}}},"uniqueKey":"signatures.items.[INDEX].validation.oneOf.0.documents.items.[INDEX].certificate.oneOf.1","typeLabel":"null"}],"uniqueKey":"signatures.items.[INDEX].validation.oneOf.0.documents.items.[INDEX].certificate","typeLabel":"object | null"},"timestamp":{"oneOf":[{"type":"object","description":"The RFC 3161 timestamp in the signature: issued by Didit for AES, by the qualified trust service provider for QES. `null` until signed, and always `null` for a Simple signature.","properties":{"time":{"type":"string","format":"date-time","uniqueKey":"signatures.items.[INDEX].validation.oneOf.0.documents.items.[INDEX].timestamp.oneOf.0.time","typeLabel":"string\u003cdate-time>"},"qualified":{"type":"boolean","description":"`false` for AES; `true` for a valid QES time stamp.","uniqueKey":"signatures.items.[INDEX].validation.oneOf.0.documents.items.[INDEX].timestamp.oneOf.0.qualified","typeLabel":"boolean"},"valid":{"type":"boolean","uniqueKey":"signatures.items.[INDEX].validation.oneOf.0.documents.items.[INDEX].timestamp.oneOf.0.valid","typeLabel":"boolean"}},"uniqueKey":"signatures.items.[INDEX].validation.oneOf.0.documents.items.[INDEX].timestamp.oneOf.0","typeLabel":"object"},{"type":"null","description":"The RFC 3161 timestamp in the signature: issued by Didit for AES, by the qualified trust service provider for QES. `null` until signed, and always `null` for a Simple signature.","properties":{"time":{"type":"string","format":"date-time"},"qualified":{"type":"boolean","description":"`false` for AES; `true` for a valid QES time stamp."},"valid":{"type":"boolean"}},"uniqueKey":"signatures.items.[INDEX].validation.oneOf.0.documents.items.[INDEX].timestamp.oneOf.1","typeLabel":"null"}],"uniqueKey":"signatures.items.[INDEX].validation.oneOf.0.documents.items.[INDEX].timestamp","typeLabel":"object | null"},"qualified":{"type":"boolean","description":"QES: `true` only when every qualified check passed. `false` in the sandbox.","uniqueKey":"signatures.items.[INDEX].validation.oneOf.0.documents.items.[INDEX].qualified","typeLabel":"boolean"},"profile":{"oneOf":[{"type":"string","description":"QES: the PAdES profile of this document's signature.","uniqueKey":"signatures.items.[INDEX].validation.oneOf.0.documents.items.[INDEX].profile.oneOf.0","typeLabel":"string"},{"type":"null","description":"QES: the PAdES profile of this document's signature.","uniqueKey":"signatures.items.[INDEX].validation.oneOf.0.documents.items.[INDEX].profile.oneOf.1","typeLabel":"null"}],"uniqueKey":"signatures.items.[INDEX].validation.oneOf.0.documents.items.[INDEX].profile","typeLabel":"string | null"},"failed_checks":{"type":"array","items":{"type":"string","enum":["integrity","trusted","not_revoked","coverage","timestamp","qualified_certificate","signer_named","original_kept"],"uniqueKey":"signatures.items.[INDEX].validation.oneOf.0.documents.items.[INDEX].failed_checks.items.[INDEX]","typeLabel":"enum\u003cstring>"},"description":"QES: the checks that did not pass (empty when `valid` is `true`): the PDF signature's integrity, its chain to the qualified trust anchors, revocation, coverage of the document, the qualified time stamp, the certificate's qualified statements, the verified signer named in it, and the signed file extending exactly what was sent for signature.","uniqueKey":"signatures.items.[INDEX].validation.oneOf.0.documents.items.[INDEX].failed_checks","typeLabel":"enum\u003cstring>[]"}},"uniqueKey":"signatures.items.[INDEX].validation.oneOf.0.documents.items.[INDEX]","typeLabel":"object"},"uniqueKey":"signatures.items.[INDEX].validation.oneOf.0.documents","typeLabel":"object[]"},"profile":{"oneOf":[{"type":"string","description":"The PAdES profile every signed document reached.","uniqueKey":"signatures.items.[INDEX].validation.oneOf.0.profile.oneOf.0","typeLabel":"string"},{"type":"null","description":"The PAdES profile every signed document reached.","uniqueKey":"signatures.items.[INDEX].validation.oneOf.0.profile.oneOf.1","typeLabel":"null"}],"uniqueKey":"signatures.items.[INDEX].validation.oneOf.0.profile","typeLabel":"string | null"}},"uniqueKey":"signatures.items.[INDEX].validation.oneOf.0","typeLabel":"object"},{"type":"null","description":"The last cryptographic check of the signed documents. `null` until the documents are signed. If Didit can't confirm the outcome of signing, it's `{\"valid\": null, \"reason\": \"signature_provider_outcome_unknown\", \"checked_at\": ...}` and `status` stays `signing`: treat it as not signed.","properties":{"valid":{"oneOf":[{"type":"boolean","description":"`true` when every document is valid. `null` when the outcome of signing couldn't be confirmed."},{"type":"null","description":"`true` when every document is valid. `null` when the outcome of signing couldn't be confirmed."}]},"reason":{"type":"string","description":"`signature_provider_outcome_unknown` while `valid` is `null` (the signing outcome is not known yet); `signature_provider_failed` when the qualified trust service provider ended a Qualified (QES) signing without a signature: the attempt is back at review and the signer can ask for a new code."},"checked_at":{"type":"string","format":"date-time"},"documents":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"checked_at":{"type":"string","format":"date-time"},"valid":{"type":"boolean","description":"`true` when the signature and the timestamp are both valid and trusted."},"integrity":{"type":"boolean","description":"`true` when the document is unchanged since signing."},"trusted":{"type":"boolean","description":"`true` when the signing certificate chains to a trusted root."},"revoked":{"type":"boolean"},"trusted_list":{"type":"object","description":"EU Trusted List check. AES: `{\"status\": \"not_applicable\", \"reason\": \"aes_not_qualified\"}`. QES: `{\"status\": \"granted\"}` when the certificate is a qualified certificate for electronic signatures issued under the qualified trust service provider's Trusted List entry, else `{\"status\": \"not_granted\", ...}`. A sandbox session's qualified level is sealed by Didit: `{\"status\": \"not_applicable\", \"reason\": \"sandbox\"}`.","properties":{"status":{"type":"string"},"reason":{"type":"string"}}},"certificate":{"oneOf":[{"type":"object","description":"The certificate the documents were signed with. `null` until signed, and always `null` for a Simple signature.","properties":{"issuer":{"type":"string"},"issued_to":{"type":"string"},"serial":{"type":"string","description":"Serial number, hexadecimal."},"valid_from":{"type":"string","format":"date-time"},"valid_until":{"type":"string","format":"date-time"},"qualified_statements":{"type":"object","description":"QES: which ETSI EN 319 412-5 statements the certificate carries.","properties":{"qc_compliance":{"type":"boolean","description":"An EU qualified certificate."},"qc_sscd":{"type":"boolean","description":"The key is in a qualified signature creation device."},"qc_type_esign":{"type":"boolean","description":"A certificate for electronic signatures."}}}}},{"type":"null","description":"The certificate the documents were signed with. `null` until signed, and always `null` for a Simple signature.","properties":{"issuer":{"type":"string"},"issued_to":{"type":"string"},"serial":{"type":"string","description":"Serial number, hexadecimal."},"valid_from":{"type":"string","format":"date-time"},"valid_until":{"type":"string","format":"date-time"},"qualified_statements":{"type":"object","description":"QES: which ETSI EN 319 412-5 statements the certificate carries.","properties":{"qc_compliance":{"type":"boolean","description":"An EU qualified certificate."},"qc_sscd":{"type":"boolean","description":"The key is in a qualified signature creation device."},"qc_type_esign":{"type":"boolean","description":"A certificate for electronic signatures."}}}}}]},"timestamp":{"oneOf":[{"type":"object","description":"The RFC 3161 timestamp in the signature: issued by Didit for AES, by the qualified trust service provider for QES. `null` until signed, and always `null` for a Simple signature.","properties":{"time":{"type":"string","format":"date-time"},"qualified":{"type":"boolean","description":"`false` for AES; `true` for a valid QES time stamp."},"valid":{"type":"boolean"}}},{"type":"null","description":"The RFC 3161 timestamp in the signature: issued by Didit for AES, by the qualified trust service provider for QES. `null` until signed, and always `null` for a Simple signature.","properties":{"time":{"type":"string","format":"date-time"},"qualified":{"type":"boolean","description":"`false` for AES; `true` for a valid QES time stamp."},"valid":{"type":"boolean"}}}]},"qualified":{"type":"boolean","description":"QES: `true` only when every qualified check passed. `false` in the sandbox."},"profile":{"oneOf":[{"type":"string","description":"QES: the PAdES profile of this document's signature."},{"type":"null","description":"QES: the PAdES profile of this document's signature."}]},"failed_checks":{"type":"array","items":{"type":"string","enum":["integrity","trusted","not_revoked","coverage","timestamp","qualified_certificate","signer_named","original_kept"]},"description":"QES: the checks that did not pass (empty when `valid` is `true`): the PDF signature's integrity, its chain to the qualified trust anchors, revocation, coverage of the document, the qualified time stamp, the certificate's qualified statements, the verified signer named in it, and the signed file extending exactly what was sent for signature."}}}},"profile":{"oneOf":[{"type":"string","description":"The PAdES profile every signed document reached."},{"type":"null","description":"The PAdES profile every signed document reached."}]}},"uniqueKey":"signatures.items.[INDEX].validation.oneOf.1","typeLabel":"null"}],"uniqueKey":"signatures.items.[INDEX].validation","typeLabel":"object | null"},"declined_at":{"oneOf":[{"type":"string","format":"date-time","uniqueKey":"signatures.items.[INDEX].declined_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","uniqueKey":"signatures.items.[INDEX].declined_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"signatures.items.[INDEX].declined_at","typeLabel":"string\u003cdate-time> | null"},"declined_action":{"type":"string","enum":["DECLINE","REVIEW","NO_ACTION"],"uniqueKey":"signatures.items.[INDEX].declined_action","typeLabel":"enum\u003cstring>"},"signed_at":{"oneOf":[{"type":"string","format":"date-time","uniqueKey":"signatures.items.[INDEX].signed_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","uniqueKey":"signatures.items.[INDEX].signed_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"signatures.items.[INDEX].signed_at","typeLabel":"string\u003cdate-time> | null"},"expires_at":{"type":"string","format":"date-time","description":"When the signing link stops working.","uniqueKey":"signatures.items.[INDEX].expires_at","typeLabel":"string\u003cdate-time>"},"email_sent_at":{"oneOf":[{"type":"string","format":"date-time","uniqueKey":"signatures.items.[INDEX].email_sent_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","uniqueKey":"signatures.items.[INDEX].email_sent_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"signatures.items.[INDEX].email_sent_at","typeLabel":"string\u003cdate-time> | null"},"email_unavailable_reason":{"oneOf":[{"type":"string","uniqueKey":"signatures.items.[INDEX].email_unavailable_reason.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"signatures.items.[INDEX].email_unavailable_reason.oneOf.1","typeLabel":"null"}],"uniqueKey":"signatures.items.[INDEX].email_unavailable_reason","typeLabel":"string | null"},"ip_address":{"oneOf":[{"type":"string","description":"The signer's IP address when they asked for their code.","uniqueKey":"signatures.items.[INDEX].ip_address.oneOf.0","typeLabel":"string"},{"type":"null","description":"The signer's IP address when they asked for their code.","uniqueKey":"signatures.items.[INDEX].ip_address.oneOf.1","typeLabel":"null"}],"uniqueKey":"signatures.items.[INDEX].ip_address","typeLabel":"string | null"},"place":{"oneOf":[{"type":"string","description":"Not collected: always `null`.","uniqueKey":"signatures.items.[INDEX].place.oneOf.0","typeLabel":"string"},{"type":"null","description":"Not collected: always `null`.","uniqueKey":"signatures.items.[INDEX].place.oneOf.1","typeLabel":"null"}],"uniqueKey":"signatures.items.[INDEX].place","typeLabel":"string | null"},"place_unavailable_reason":{"oneOf":[{"type":"string","enum":["not_collected"],"uniqueKey":"signatures.items.[INDEX].place_unavailable_reason.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["not_collected"],"uniqueKey":"signatures.items.[INDEX].place_unavailable_reason.oneOf.1","typeLabel":"null"}],"uniqueKey":"signatures.items.[INDEX].place_unavailable_reason","typeLabel":"enum\u003cstring> | null"}},"uniqueKey":"signatures.items.[INDEX]","typeLabel":"object"},"uniqueKey":"signatures","typeLabel":"object[]"},"aml_screenings":{"oneOf":[{"type":"array","description":"**Array of AML screening reports** — always a JSON array, never a singular `aml` object. `null` until at least one AML step has produced data. Each item is the full report, including `node_id`, feature-level `status`, `total_hits`, `entity_type`, `hits[]`, `score`, `screened_data`, `is_ongoing_monitoring_enabled`, and `warnings[]`.","items":{"type":"object","properties":{"node_id":{"type":"string","description":"Unique identifier for this AML step in the workflow graph.","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].node_id","typeLabel":"string"},"status":{"type":"string","description":"Feature-level status of this AML screening. Independent of the top-level session `status` — a session can reach its overall decision while an individual feature stays `In Review`.","enum":["Not Finished","Approved","Declined","In Review","Resub Requested"],"uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].status","typeLabel":"enum\u003cstring>"},"total_hits":{"type":"integer","description":"Total number of matches found","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].total_hits","typeLabel":"integer"},"entity_type":{"type":"string","description":"Type of entity screened: person or company","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].entity_type","typeLabel":"string"},"hits":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"Didit's stable identifier for the hit: `hit_` followed by 24 hexadecimal characters. The same matched entity keeps the same `id` when the subject is screened again. Pass it as `hit_id` to the AML hit review endpoints.","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].id","typeLabel":"string"},"url":{"type":"string","format":"uri","description":"Source URL for the match","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].url","typeLabel":"string\u003curi>"},"match":{"type":"boolean","description":"Whether this is a confirmed match","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].match","typeLabel":"boolean"},"score":{"oneOf":[{"type":"number","format":"float","minimum":0,"maximum":1,"description":"Deprecated weighted match score in the 0-1 range (e.g. `0.73`). Use `match_score` (0-100) instead.","deprecated":true,"uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].score.oneOf.0","typeLabel":"number\u003cfloat>"},{"type":"null","format":"float","minimum":0,"maximum":1,"description":"Deprecated weighted match score in the 0-1 range (e.g. `0.73`). Use `match_score` (0-100) instead.","deprecated":true,"uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].score.oneOf.1","typeLabel":"null"}],"uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].score","typeLabel":"number\u003cfloat> | null"},"target":{"oneOf":[{"type":"boolean","description":"Whether the matched entity is the direct target of the listing (as opposed to a related party). `null` when the source does not specify it.","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].target.oneOf.0","typeLabel":"boolean"},{"type":"null","description":"Whether the matched entity is the direct target of the listing (as opposed to a related party). `null` when the source does not specify it.","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].target.oneOf.1","typeLabel":"null"}],"uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].target","typeLabel":"boolean | null"},"caption":{"type":"string","description":"Caption or title of the match","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].caption","typeLabel":"string"},"datasets":{"type":"array","items":{"type":"string","enum":["PEP","PEP Level 1","PEP Level 2","PEP Level 3","PEP Level 4","Sanctions","Adverse Media","Warnings and Regulatory Enforcement","Fitness and Probity","SIP","SIE","Insolvency","Other Lists"],"uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].datasets.items.[INDEX]","typeLabel":"enum\u003cstring>"},"description":"List of dataset categories where the match was found. Indicates whether the entity appeared in PEP lists (with level), sanctions databases, adverse media, warnings/regulatory enforcement, or other compliance datasets. `Other Lists` when the entity's source states none of these categories.","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].datasets","typeLabel":"enum\u003cstring>[]"},"features":{"oneOf":[{"type":"object","description":"Additional features of the match","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].features.oneOf.0","typeLabel":"object"},{"type":"null","description":"Additional features of the match","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].features.oneOf.1","typeLabel":"null"}],"uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].features","typeLabel":"object | null"},"rca_name":{"type":"string","description":"RCA name if applicable","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].rca_name","typeLabel":"string"},"last_seen":{"type":"string","format":"date-time","description":"Date when match was last seen","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].last_seen","typeLabel":"string\u003cdate-time>"},"risk_view":{"type":"object","properties":{"crimes":{"type":"object","properties":{"score":{"type":"integer","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].risk_view.crimes.score","typeLabel":"integer"},"weightage":{"type":"integer","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].risk_view.crimes.weightage","typeLabel":"integer"},"risk_level":{"type":"string","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].risk_view.crimes.risk_level","typeLabel":"string"},"risk_scores":{"type":"object","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].risk_view.crimes.risk_scores","typeLabel":"object"}},"uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].risk_view.crimes","typeLabel":"object"},"countries":{"type":"object","properties":{"score":{"type":"integer","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].risk_view.countries.score","typeLabel":"integer"},"weightage":{"type":"integer","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].risk_view.countries.weightage","typeLabel":"integer"},"risk_level":{"type":"string","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].risk_view.countries.risk_level","typeLabel":"string"},"risk_scores":{"type":"object","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].risk_view.countries.risk_scores","typeLabel":"object"}},"uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].risk_view.countries","typeLabel":"object"},"categories":{"type":"object","properties":{"score":{"type":"integer","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].risk_view.categories.score","typeLabel":"integer"},"weightage":{"type":"integer","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].risk_view.categories.weightage","typeLabel":"integer"},"risk_level":{"type":"string","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].risk_view.categories.risk_level","typeLabel":"string"},"risk_scores":{"type":"object","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].risk_view.categories.risk_scores","typeLabel":"object"}},"uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].risk_view.categories","typeLabel":"object"},"custom_list":{"type":"object","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].risk_view.custom_list","typeLabel":"object"}},"uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].risk_view","typeLabel":"object"},"first_seen":{"type":"string","format":"date-time","description":"Date when match was first seen","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].first_seen","typeLabel":"string\u003cdate-time>"},"properties":{"type":"object","properties":{"name":{"type":"array","items":{"type":"string","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].properties.name.items.[INDEX]","typeLabel":"string"},"uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].properties.name","typeLabel":"string[]"},"alias":{"type":"array","items":{"type":"string","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].properties.alias.items.[INDEX]","typeLabel":"string"},"uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].properties.alias","typeLabel":"string[]"},"notes":{"type":"array","items":{"type":"string","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].properties.notes.items.[INDEX]","typeLabel":"string"},"uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].properties.notes","typeLabel":"string[]"},"title":{"oneOf":[{"type":"string","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].properties.title.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].properties.title.oneOf.1","typeLabel":"null"}],"uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].properties.title","typeLabel":"string | null"},"gender":{"type":"array","items":{"type":"string","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].properties.gender.items.[INDEX]","typeLabel":"string"},"uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].properties.gender","typeLabel":"string[]"},"height":{"oneOf":[{"type":"string","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].properties.height.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].properties.height.oneOf.1","typeLabel":"null"}],"uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].properties.height","typeLabel":"string | null"},"topics":{"oneOf":[{"type":"string","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].properties.topics.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].properties.topics.oneOf.1","typeLabel":"null"}],"uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].properties.topics","typeLabel":"string | null"},"weight":{"oneOf":[{"type":"string","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].properties.weight.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].properties.weight.oneOf.1","typeLabel":"null"}],"uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].properties.weight","typeLabel":"string | null"},"address":{"oneOf":[{"type":"string","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].properties.address.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].properties.address.oneOf.1","typeLabel":"null"}],"uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].properties.address","typeLabel":"string | null"},"country":{"oneOf":[{"type":"string","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].properties.country.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].properties.country.oneOf.1","typeLabel":"null"}],"uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].properties.country","typeLabel":"string | null"},"website":{"oneOf":[{"type":"string","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].properties.website.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].properties.website.oneOf.1","typeLabel":"null"}],"uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].properties.website","typeLabel":"string | null"},"eyeColor":{"oneOf":[{"type":"string","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].properties.eyeColor.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].properties.eyeColor.oneOf.1","typeLabel":"null"}],"uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].properties.eyeColor","typeLabel":"string | null"},"keywords":{"oneOf":[{"type":"string","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].properties.keywords.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].properties.keywords.oneOf.1","typeLabel":"null"}],"uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].properties.keywords","typeLabel":"string | null"},"lastName":{"type":"array","items":{"type":"string","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].properties.lastName.items.[INDEX]","typeLabel":"string"},"uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].properties.lastName","typeLabel":"string[]"},"position":{"oneOf":[{"type":"string","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].properties.position.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].properties.position.oneOf.1","typeLabel":"null"}],"uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].properties.position","typeLabel":"string | null"},"religion":{"oneOf":[{"type":"string","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].properties.religion.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].properties.religion.oneOf.1","typeLabel":"null"}],"uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].properties.religion","typeLabel":"string | null"},"birthDate":{"type":"array","items":{"type":"string","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].properties.birthDate.items.[INDEX]","typeLabel":"string"},"uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].properties.birthDate","typeLabel":"string[]"},"education":{"type":"array","items":{"type":"string","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].properties.education.items.[INDEX]","typeLabel":"string"},"uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].properties.education","typeLabel":"string[]"},"ethnicity":{"oneOf":[{"type":"string","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].properties.ethnicity.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].properties.ethnicity.oneOf.1","typeLabel":"null"}],"uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].properties.ethnicity","typeLabel":"string | null"},"firstName":{"type":"array","items":{"type":"string","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].properties.firstName.items.[INDEX]","typeLabel":"string"},"uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].properties.firstName","typeLabel":"string[]"},"hairColor":{"oneOf":[{"type":"string","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].properties.hairColor.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].properties.hairColor.oneOf.1","typeLabel":"null"}],"uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].properties.hairColor","typeLabel":"string | null"},"weakAlias":{"oneOf":[{"type":"string","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].properties.weakAlias.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].properties.weakAlias.oneOf.1","typeLabel":"null"}],"uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].properties.weakAlias","typeLabel":"string | null"},"birthPlace":{"type":"array","items":{"type":"string","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].properties.birthPlace.items.[INDEX]","typeLabel":"string"},"uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].properties.birthPlace","typeLabel":"string[]"},"modifiedAt":{"oneOf":[{"type":"string","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].properties.modifiedAt.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].properties.modifiedAt.oneOf.1","typeLabel":"null"}],"uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].properties.modifiedAt","typeLabel":"string | null"},"wikidataId":{"oneOf":[{"type":"string","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].properties.wikidataId.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].properties.wikidataId.oneOf.1","typeLabel":"null"}],"uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].properties.wikidataId","typeLabel":"string | null"},"citizenship":{"oneOf":[{"type":"string","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].properties.citizenship.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].properties.citizenship.oneOf.1","typeLabel":"null"}],"uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].properties.citizenship","typeLabel":"string | null"},"nationality":{"oneOf":[{"type":"string","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].properties.nationality.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].properties.nationality.oneOf.1","typeLabel":"null"}],"uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].properties.nationality","typeLabel":"string | null"}},"uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].properties","typeLabel":"object"},"match_score":{"oneOf":[{"type":"number","description":"Weighted identity confidence score (0-100) calculated from name similarity, date of birth, and country matching. Used to determine if hit is a False Positive or Possible Match.","format":"float","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].match_score.oneOf.0","typeLabel":"number\u003cfloat>"},{"type":"null","description":"Weighted identity confidence score (0-100) calculated from name similarity, date of birth, and country matching. Used to determine if hit is a False Positive or Possible Match.","format":"float","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].match_score.oneOf.1","typeLabel":"null"}],"uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].match_score","typeLabel":"number\u003cfloat> | null"},"risk_score":{"type":"number","description":"Entity risk score (0-100). Used to determine final AML status (Approved/In Review/Declined) based on the highest risk_score among non-False-Positive hits.","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].risk_score","typeLabel":"number"},"review_status":{"type":"string","description":"Review status for this hit. Can be 'Unreviewed', 'Confirmed Match', 'False Positive', or 'Inconclusive'.","enum":["Unreviewed","Confirmed Match","False Positive","Inconclusive"],"uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].review_status","typeLabel":"enum\u003cstring>"},"score_breakdown":{"type":"object","description":"Detailed breakdown of how the match_score was calculated.","properties":{"name_score":{"type":"integer","description":"Raw name similarity percentage (0-100).","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].score_breakdown.name_score","typeLabel":"integer"},"name_weight":{"type":"integer","description":"Original weight for name from config (0-100).","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].score_breakdown.name_weight","typeLabel":"integer"},"name_weight_normalized":{"type":"number","description":"Normalized weight for name after re-weighting for missing data (0-100).","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].score_breakdown.name_weight_normalized","typeLabel":"number"},"name_contribution":{"type":"number","description":"Points contributed by name to the total score.","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].score_breakdown.name_contribution","typeLabel":"number"},"dob_score":{"type":"integer","description":"DOB match score (-100 to 100).","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].score_breakdown.dob_score","typeLabel":"integer"},"dob_weight":{"type":"integer","description":"Original weight for DOB from config (0-100).","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].score_breakdown.dob_weight","typeLabel":"integer"},"dob_weight_normalized":{"type":"number","description":"Normalized weight for DOB after re-weighting for missing data (0-100).","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].score_breakdown.dob_weight_normalized","typeLabel":"number"},"dob_contribution":{"type":"number","description":"Points contributed by DOB to the total score.","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].score_breakdown.dob_contribution","typeLabel":"number"},"country_score":{"type":"integer","description":"Country match score (-100 to 100).","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].score_breakdown.country_score","typeLabel":"integer"},"country_weight":{"type":"integer","description":"Original weight for country from config (0-100).","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].score_breakdown.country_weight","typeLabel":"integer"},"country_weight_normalized":{"type":"number","description":"Normalized weight for country after re-weighting for missing data (0-100).","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].score_breakdown.country_weight_normalized","typeLabel":"number"},"country_contribution":{"type":"number","description":"Points contributed by country to the total score.","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].score_breakdown.country_contribution","typeLabel":"number"},"document_number_match_type":{"type":"string","description":"Result of document number 'Golden Key' evaluation.","enum":["MATCH","NEUTRAL","HARD_MISMATCH"],"uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].score_breakdown.document_number_match_type","typeLabel":"enum\u003cstring>"},"document_number_effect":{"type":"string","description":"Human-readable description of the document number effect on the score.","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].score_breakdown.document_number_effect","typeLabel":"string"},"total_score":{"type":"integer","description":"Final weighted match score (0-100).","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].score_breakdown.total_score","typeLabel":"integer"}},"uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].score_breakdown","typeLabel":"object"},"pep_matches":{"type":"array","items":{"type":"object","properties":{"aliases":{"type":"array","items":{"type":"string","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].pep_matches.items.[INDEX].aliases.items.[INDEX]","typeLabel":"string"},"uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].pep_matches.items.[INDEX].aliases","typeLabel":"string[]"},"education":{"type":"array","items":{"type":"string","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].pep_matches.items.[INDEX].education.items.[INDEX]","typeLabel":"string"},"uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].pep_matches.items.[INDEX].education","typeLabel":"string[]"},"list_name":{"type":"string","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].pep_matches.items.[INDEX].list_name","typeLabel":"string"},"publisher":{"type":"string","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].pep_matches.items.[INDEX].publisher","typeLabel":"string"},"source_url":{"type":"string","format":"uri","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].pep_matches.items.[INDEX].source_url","typeLabel":"string\u003curi>"},"description":{"type":"string","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].pep_matches.items.[INDEX].description","typeLabel":"string"},"matched_name":{"type":"string","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].pep_matches.items.[INDEX].matched_name","typeLabel":"string"},"pep_position":{"type":"string","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].pep_matches.items.[INDEX].pep_position","typeLabel":"string"},"date_of_birth":{"type":"string","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].pep_matches.items.[INDEX].date_of_birth","typeLabel":"string"},"other_sources":{"type":"array","items":{"type":"string","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].pep_matches.items.[INDEX].other_sources.items.[INDEX]","typeLabel":"string"},"uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].pep_matches.items.[INDEX].other_sources","typeLabel":"string[]"},"place_of_birth":{"type":"string","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].pep_matches.items.[INDEX].place_of_birth","typeLabel":"string"}},"uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].pep_matches.items.[INDEX]","typeLabel":"object"},"uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].pep_matches","typeLabel":"object[]"},"linked_entities":{"type":"array","items":{"type":"object","properties":{"name":{"type":"array","items":{"type":"string","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].linked_entities.items.[INDEX].name.items.[INDEX]","typeLabel":"string"},"uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].linked_entities.items.[INDEX].name","typeLabel":"string[]"},"active":{"type":"array","items":{"type":"string","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].linked_entities.items.[INDEX].active.items.[INDEX]","typeLabel":"string"},"uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].linked_entities.items.[INDEX].active","typeLabel":"string[]"},"status":{"type":"array","items":{"type":"string","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].linked_entities.items.[INDEX].status.items.[INDEX]","typeLabel":"string"},"uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].linked_entities.items.[INDEX].status","typeLabel":"string[]"},"details":{"type":"array","items":{"type":"string","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].linked_entities.items.[INDEX].details.items.[INDEX]","typeLabel":"string"},"uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].linked_entities.items.[INDEX].details","typeLabel":"string[]"},"relation":{"type":"array","items":{"type":"string","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].linked_entities.items.[INDEX].relation.items.[INDEX]","typeLabel":"string"},"uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].linked_entities.items.[INDEX].relation","typeLabel":"string[]"}},"uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].linked_entities.items.[INDEX]","typeLabel":"object"},"uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].linked_entities","typeLabel":"object[]"},"warning_matches":{"type":"array","description":"List of warning and regulatory enforcement matches. Includes entries from categories: Warning, SIP, Warnings and Regulatory Enforcement, Fitness and Probity, SIE, and Insolvency.","items":{"type":"object","properties":{"list_name":{"type":"string","description":"Name of the warning list publisher","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].warning_matches.items.[INDEX].list_name","typeLabel":"string"},"matched_name":{"type":"string","description":"Name matched in the warning list","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].warning_matches.items.[INDEX].matched_name","typeLabel":"string"},"description":{"type":"string","description":"Description of the warning entry","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].warning_matches.items.[INDEX].description","typeLabel":"string"},"publisher":{"type":"string","description":"Publisher or source of the warning","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].warning_matches.items.[INDEX].publisher","typeLabel":"string"},"source_url":{"type":"string","format":"uri","description":"URL to the source of the warning","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].warning_matches.items.[INDEX].source_url","typeLabel":"string\u003curi>"},"other_sources":{"type":"array","items":{"type":"string","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].warning_matches.items.[INDEX].other_sources.items.[INDEX]","typeLabel":"string"},"description":"Additional source URLs","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].warning_matches.items.[INDEX].other_sources","typeLabel":"string[]"},"countries":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].warning_matches.items.[INDEX].countries.oneOf.0.items.[INDEX]","typeLabel":"string"},"description":"Countries associated with the warning","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].warning_matches.items.[INDEX].countries.oneOf.0","typeLabel":"string[]"},{"type":"null","items":{"type":"string"},"description":"Countries associated with the warning","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].warning_matches.items.[INDEX].countries.oneOf.1","typeLabel":"null"}],"uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].warning_matches.items.[INDEX].countries","typeLabel":"string[] | null"},"created_at":{"oneOf":[{"type":"string","description":"Date the warning entry was created","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].warning_matches.items.[INDEX].created_at.oneOf.0","typeLabel":"string"},{"type":"null","description":"Date the warning entry was created","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].warning_matches.items.[INDEX].created_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].warning_matches.items.[INDEX].created_at","typeLabel":"string | null"},"updated_at":{"oneOf":[{"type":"string","description":"Date the warning entry was last updated","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].warning_matches.items.[INDEX].updated_at.oneOf.0","typeLabel":"string"},{"type":"null","description":"Date the warning entry was last updated","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].warning_matches.items.[INDEX].updated_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].warning_matches.items.[INDEX].updated_at","typeLabel":"string | null"},"additional_data":{"type":"object","description":"Additional data from the warning source. May contain a `data` object with `case_details` array.","properties":{"data":{"type":"object","properties":{"case_details":{"type":"array","description":"Details of warning cases associated with this match","items":{"type":"object","properties":{"case_type":{"type":"string","description":"Type of the warning case","enum":["Accusation","Arrest","Bribery","Criminal","Fraud","Illegal Fundraising","Non-conviction Terror","Proclaimed Offender","Regulatory Enforcement","Terrorism","Terrorism-related","Terrorism-related listing"],"uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].warning_matches.items.[INDEX].additional_data.data.case_details.items.[INDEX].case_type","typeLabel":"enum\u003cstring>"}},"uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].warning_matches.items.[INDEX].additional_data.data.case_details.items.[INDEX]","typeLabel":"object"},"uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].warning_matches.items.[INDEX].additional_data.data.case_details","typeLabel":"object[]"}},"uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].warning_matches.items.[INDEX].additional_data.data","typeLabel":"object"}},"uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].warning_matches.items.[INDEX].additional_data","typeLabel":"object"}},"uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].warning_matches.items.[INDEX]","typeLabel":"object"},"uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].warning_matches","typeLabel":"object[]"},"sanction_matches":{"type":"array","description":"List of sanction list matches found for this entity.","items":{"type":"object","properties":{"list_name":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].sanction_matches.items.[INDEX].list_name.oneOf.0.items.[INDEX]","typeLabel":"string"},"description":"Name(s) of the sanction list(s)","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].sanction_matches.items.[INDEX].list_name.oneOf.0","typeLabel":"string[]"},{"type":"null","items":{"type":"string"},"description":"Name(s) of the sanction list(s)","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].sanction_matches.items.[INDEX].list_name.oneOf.1","typeLabel":"null"}],"uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].sanction_matches.items.[INDEX].list_name","typeLabel":"string[] | null"},"matched_name":{"type":"string","description":"Name matched in the sanction list","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].sanction_matches.items.[INDEX].matched_name","typeLabel":"string"},"description":{"type":"string","description":"Description of the sanction entry","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].sanction_matches.items.[INDEX].description","typeLabel":"string"},"reason":{"oneOf":[{"type":"string","description":"Free-text reason why the entity was sanctioned. Joined from the sanction list's reason entries. Examples: 'Executive Order 13224 (Terrorism)', 'Support for actions undermining Ukraine's sovereignty', 'Listed due to national security concerns.'","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].sanction_matches.items.[INDEX].reason.oneOf.0","typeLabel":"string"},{"type":"null","description":"Free-text reason why the entity was sanctioned. Joined from the sanction list's reason entries. Examples: 'Executive Order 13224 (Terrorism)', 'Support for actions undermining Ukraine's sovereignty', 'Listed due to national security concerns.'","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].sanction_matches.items.[INDEX].reason.oneOf.1","typeLabel":"null"}],"uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].sanction_matches.items.[INDEX].reason","typeLabel":"string | null"},"source_url":{"type":"string","format":"uri","description":"URL to the source of the sanction","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].sanction_matches.items.[INDEX].source_url","typeLabel":"string\u003curi>"},"other_sources":{"type":"array","items":{"type":"string","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].sanction_matches.items.[INDEX].other_sources.items.[INDEX]","typeLabel":"string"},"description":"Additional source URLs","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].sanction_matches.items.[INDEX].other_sources","typeLabel":"string[]"},"details":{"type":"array","items":{"type":"string","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].sanction_matches.items.[INDEX].details.items.[INDEX]","typeLabel":"string"},"description":"Additional details about the sanction","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].sanction_matches.items.[INDEX].details","typeLabel":"string[]"},"legal_basis":{"type":"array","items":{"type":"string","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].sanction_matches.items.[INDEX].legal_basis.items.[INDEX]","typeLabel":"string"},"description":"Legal basis for the sanction","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].sanction_matches.items.[INDEX].legal_basis","typeLabel":"string[]"},"listed_on":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].sanction_matches.items.[INDEX].listed_on.oneOf.0.items.[INDEX]","typeLabel":"string"},"description":"Date(s) when the entity was listed","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].sanction_matches.items.[INDEX].listed_on.oneOf.0","typeLabel":"string[]"},{"type":"null","items":{"type":"string"},"description":"Date(s) when the entity was listed","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].sanction_matches.items.[INDEX].listed_on.oneOf.1","typeLabel":"null"}],"uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].sanction_matches.items.[INDEX].listed_on","typeLabel":"string[] | null"},"sanction_list":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].sanction_matches.items.[INDEX].sanction_list.oneOf.0.items.[INDEX]","typeLabel":"string"},"description":"Sanction list identifier(s)","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].sanction_matches.items.[INDEX].sanction_list.oneOf.0","typeLabel":"string[]"},{"type":"null","items":{"type":"string"},"description":"Sanction list identifier(s)","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].sanction_matches.items.[INDEX].sanction_list.oneOf.1","typeLabel":"null"}],"uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].sanction_matches.items.[INDEX].sanction_list","typeLabel":"string[] | null"},"sanction_program":{"type":"array","items":{"type":"string","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].sanction_matches.items.[INDEX].sanction_program.items.[INDEX]","typeLabel":"string"},"description":"Sanction program(s) the entity is listed under","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].sanction_matches.items.[INDEX].sanction_program","typeLabel":"string[]"},"sanctioning_authority":{"type":"array","items":{"type":"string","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].sanction_matches.items.[INDEX].sanctioning_authority.items.[INDEX]","typeLabel":"string"},"description":"Authority/authorities that imposed the sanction","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].sanction_matches.items.[INDEX].sanctioning_authority","typeLabel":"string[]"},"updated_on":{"type":"array","items":{"type":"string","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].sanction_matches.items.[INDEX].updated_on.items.[INDEX]","typeLabel":"string"},"description":"Date(s) when the sanction entry was last updated","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].sanction_matches.items.[INDEX].updated_on","typeLabel":"string[]"},"additional_data":{"type":"object","description":"Additional data from the sanction source not captured in the main fields","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].sanction_matches.items.[INDEX].additional_data","typeLabel":"object"}},"uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].sanction_matches.items.[INDEX]","typeLabel":"object"},"uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].sanction_matches","typeLabel":"object[]"},"adverse_media_details":{"type":"object","properties":{"sentiment":{"type":"string","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].adverse_media_details.sentiment","typeLabel":"string"},"entity_type":{"type":"string","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].adverse_media_details.entity_type","typeLabel":"string"},"sentiment_score":{"type":"integer","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].adverse_media_details.sentiment_score","typeLabel":"integer"},"adverse_keywords":{"type":"object","additionalProperties":{"type":"integer","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].adverse_media_details.adverse_keywords.additionalProperties","typeLabel":"integer"},"uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].adverse_media_details.adverse_keywords","typeLabel":"object"}},"uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].adverse_media_details","typeLabel":"object"},"adverse_media_matches":{"type":"array","items":{"type":"object","properties":{"country":{"type":"string","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].adverse_media_matches.items.[INDEX].country","typeLabel":"string"},"summary":{"type":"string","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].adverse_media_matches.items.[INDEX].summary","typeLabel":"string"},"headline":{"type":"string","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].adverse_media_matches.items.[INDEX].headline","typeLabel":"string"},"sentiment":{"type":"string","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].adverse_media_matches.items.[INDEX].sentiment","typeLabel":"string"},"thumbnail":{"type":"string","format":"uri","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].adverse_media_matches.items.[INDEX].thumbnail","typeLabel":"string\u003curi>"},"source_url":{"type":"string","format":"uri","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].adverse_media_matches.items.[INDEX].source_url","typeLabel":"string\u003curi>"},"author_name":{"oneOf":[{"type":"string","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].adverse_media_matches.items.[INDEX].author_name.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].adverse_media_matches.items.[INDEX].author_name.oneOf.1","typeLabel":"null"}],"uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].adverse_media_matches.items.[INDEX].author_name","typeLabel":"string | null"},"other_sources":{"type":"array","items":{"type":"string","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].adverse_media_matches.items.[INDEX].other_sources.items.[INDEX]","typeLabel":"string"},"uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].adverse_media_matches.items.[INDEX].other_sources","typeLabel":"string[]"},"adverse_keywords":{"type":"array","items":{"type":"string","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].adverse_media_matches.items.[INDEX].adverse_keywords.items.[INDEX]","typeLabel":"string"},"uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].adverse_media_matches.items.[INDEX].adverse_keywords","typeLabel":"string[]"},"sentiment_score":{"type":"integer","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].adverse_media_matches.items.[INDEX].sentiment_score","typeLabel":"integer"},"publication_date":{"type":"string","format":"date-time","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].adverse_media_matches.items.[INDEX].publication_date","typeLabel":"string\u003cdate-time>"}},"uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].adverse_media_matches.items.[INDEX]","typeLabel":"object"},"uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].adverse_media_matches","typeLabel":"object[]"},"additional_information":{"type":"object","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX].additional_information","typeLabel":"object"}},"uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits.items.[INDEX]","typeLabel":"object"},"uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].hits","typeLabel":"object[]"},"score":{"oneOf":[{"type":"number","format":"float","minimum":0,"maximum":100,"description":"Overall AML screening score — the highest risk score across all hits (float, 0-100). `null` until computed.","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].score.oneOf.0","typeLabel":"number\u003cfloat>"},{"type":"null","format":"float","minimum":0,"maximum":100,"description":"Overall AML screening score — the highest risk score across all hits (float, 0-100). `null` until computed.","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].score.oneOf.1","typeLabel":"null"}],"uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].score","typeLabel":"number\u003cfloat> | null"},"screened_data":{"type":"object","properties":{"full_name":{"type":"string","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].screened_data.full_name","typeLabel":"string"},"nationality":{"type":"string","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].screened_data.nationality","typeLabel":"string"},"date_of_birth":{"type":"string","format":"date","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].screened_data.date_of_birth","typeLabel":"string\u003cdate>"},"document_number":{"oneOf":[{"type":"string","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].screened_data.document_number.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].screened_data.document_number.oneOf.1","typeLabel":"null"}],"uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].screened_data.document_number","typeLabel":"string | null"}},"uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].screened_data","typeLabel":"object"},"is_ongoing_monitoring_enabled":{"type":"boolean","description":"Whether AML ongoing monitoring is enabled for this screening. When `true`, the entity is re-screened periodically and any new hits update the report.","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].is_ongoing_monitoring_enabled","typeLabel":"boolean"},"next_ongoing_monitoring_bill_date":{"oneOf":[{"type":"string","format":"date","description":"Date (YYYY-MM-DD) when this ongoing-monitoring subscription will next be billed. Computed as the date of the last ongoing-monitoring billing plus 365 days when `is_ongoing_monitoring_enabled = true`; otherwise `null`. This is a billing date, not a screening date - use `last_ongoing_screening_at` for that.","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].next_ongoing_monitoring_bill_date.oneOf.0","typeLabel":"string\u003cdate>"},{"type":"null","format":"date","description":"Date (YYYY-MM-DD) when this ongoing-monitoring subscription will next be billed. Computed as the date of the last ongoing-monitoring billing plus 365 days when `is_ongoing_monitoring_enabled = true`; otherwise `null`. This is a billing date, not a screening date - use `last_ongoing_screening_at` for that.","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].next_ongoing_monitoring_bill_date.oneOf.1","typeLabel":"null"}],"uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].next_ongoing_monitoring_bill_date","typeLabel":"string\u003cdate> | null"},"last_ongoing_screening_at":{"oneOf":[{"type":"string","format":"date-time","description":"When ongoing monitoring last completed a re-screening of this record, whether or not the result changed. `null` when the record has never been re-screened; it is never back-filled from the enablement or billing date.","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].last_ongoing_screening_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","description":"When ongoing monitoring last completed a re-screening of this record, whether or not the result changed. `null` when the record has never been re-screened; it is never back-filled from the enablement or billing date.","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].last_ongoing_screening_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].last_ongoing_screening_at","typeLabel":"string\u003cdate-time> | null"},"last_ongoing_screening_datasets_updated_at":{"oneOf":[{"type":"string","format":"date-time","description":"The most recent AML dataset update date the provider reported at the time of that screening. `null` when the provider reported no dataset dates; never estimated.","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].last_ongoing_screening_datasets_updated_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","description":"The most recent AML dataset update date the provider reported at the time of that screening. `null` when the provider reported no dataset dates; never estimated.","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].last_ongoing_screening_datasets_updated_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].last_ongoing_screening_datasets_updated_at","typeLabel":"string\u003cdate-time> | null"},"warnings":{"type":"array","items":{"type":"object","properties":{"feature":{"type":"string","enum":["ID_VERIFICATION","NFC","LIVENESS","FACEMATCH","PROOF_OF_ADDRESS","PHONE","EMAIL","AML","LOCATION","DATABASE_VALIDATION","QUESTIONNAIRE","DOCUMENT_AI","KYB_REGISTRY","KYB_DOCUMENTS","KYB_KEY_PEOPLE","GEOLOCATION","SIGNATURE"],"description":"The feature that generated this warning. The value identifies the feature block the warning belongs to. Within an AML screening this is typically `AML`, but the enum above is authoritative across all feature warnings on the decision payload.","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].warnings.items.[INDEX].feature","typeLabel":"enum\u003cstring>"},"risk":{"type":"string","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].warnings.items.[INDEX].risk","typeLabel":"string"},"additional_data":{"oneOf":[{"type":"object","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].warnings.items.[INDEX].additional_data.oneOf.0","typeLabel":"object"},{"type":"null","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].warnings.items.[INDEX].additional_data.oneOf.1","typeLabel":"null"}],"uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].warnings.items.[INDEX].additional_data","typeLabel":"object | null"},"log_type":{"type":"string","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].warnings.items.[INDEX].log_type","typeLabel":"string"},"short_description":{"type":"string","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].warnings.items.[INDEX].short_description","typeLabel":"string"},"long_description":{"type":"string","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].warnings.items.[INDEX].long_description","typeLabel":"string"},"node_id":{"type":"string","description":"The workflow graph node ID that generated this warning","uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].warnings.items.[INDEX].node_id","typeLabel":"string"}},"uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].warnings.items.[INDEX]","typeLabel":"object"},"uniqueKey":"aml_screenings.oneOf.0.items.[INDEX].warnings","typeLabel":"object[]"}},"uniqueKey":"aml_screenings.oneOf.0.items.[INDEX]","typeLabel":"object"},"uniqueKey":"aml_screenings.oneOf.0","typeLabel":"object[]"},{"type":"null","description":"**Array of AML screening reports** — always a JSON array, never a singular `aml` object. `null` until at least one AML step has produced data. Each item is the full report, including `node_id`, feature-level `status`, `total_hits`, `entity_type`, `hits[]`, `score`, `screened_data`, `is_ongoing_monitoring_enabled`, and `warnings[]`.","items":{"type":"object","properties":{"node_id":{"type":"string","description":"Unique identifier for this AML step in the workflow graph."},"status":{"type":"string","description":"Feature-level status of this AML screening. Independent of the top-level session `status` — a session can reach its overall decision while an individual feature stays `In Review`.","enum":["Not Finished","Approved","Declined","In Review","Resub Requested"]},"total_hits":{"type":"integer","description":"Total number of matches found"},"entity_type":{"type":"string","description":"Type of entity screened: person or company"},"hits":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"Didit's stable identifier for the hit: `hit_` followed by 24 hexadecimal characters. The same matched entity keeps the same `id` when the subject is screened again. Pass it as `hit_id` to the AML hit review endpoints."},"url":{"type":"string","format":"uri","description":"Source URL for the match"},"match":{"type":"boolean","description":"Whether this is a confirmed match"},"score":{"oneOf":[{"type":"number","format":"float","minimum":0,"maximum":1,"description":"Deprecated weighted match score in the 0-1 range (e.g. `0.73`). Use `match_score` (0-100) instead.","deprecated":true},{"type":"null","format":"float","minimum":0,"maximum":1,"description":"Deprecated weighted match score in the 0-1 range (e.g. `0.73`). Use `match_score` (0-100) instead.","deprecated":true}]},"target":{"oneOf":[{"type":"boolean","description":"Whether the matched entity is the direct target of the listing (as opposed to a related party). `null` when the source does not specify it."},{"type":"null","description":"Whether the matched entity is the direct target of the listing (as opposed to a related party). `null` when the source does not specify it."}]},"caption":{"type":"string","description":"Caption or title of the match"},"datasets":{"type":"array","items":{"type":"string","enum":["PEP","PEP Level 1","PEP Level 2","PEP Level 3","PEP Level 4","Sanctions","Adverse Media","Warnings and Regulatory Enforcement","Fitness and Probity","SIP","SIE","Insolvency","Other Lists"]},"description":"List of dataset categories where the match was found. Indicates whether the entity appeared in PEP lists (with level), sanctions databases, adverse media, warnings/regulatory enforcement, or other compliance datasets. `Other Lists` when the entity's source states none of these categories."},"features":{"oneOf":[{"type":"object","description":"Additional features of the match"},{"type":"null","description":"Additional features of the match"}]},"rca_name":{"type":"string","description":"RCA name if applicable"},"last_seen":{"type":"string","format":"date-time","description":"Date when match was last seen"},"risk_view":{"type":"object","properties":{"crimes":{"type":"object","properties":{"score":{"type":"integer"},"weightage":{"type":"integer"},"risk_level":{"type":"string"},"risk_scores":{"type":"object"}}},"countries":{"type":"object","properties":{"score":{"type":"integer"},"weightage":{"type":"integer"},"risk_level":{"type":"string"},"risk_scores":{"type":"object"}}},"categories":{"type":"object","properties":{"score":{"type":"integer"},"weightage":{"type":"integer"},"risk_level":{"type":"string"},"risk_scores":{"type":"object"}}},"custom_list":{"type":"object"}}},"first_seen":{"type":"string","format":"date-time","description":"Date when match was first seen"},"properties":{"type":"object","properties":{"name":{"type":"array","items":{"type":"string"}},"alias":{"type":"array","items":{"type":"string"}},"notes":{"type":"array","items":{"type":"string"}},"title":{"oneOf":[{"type":"string"},{"type":"null"}]},"gender":{"type":"array","items":{"type":"string"}},"height":{"oneOf":[{"type":"string"},{"type":"null"}]},"topics":{"oneOf":[{"type":"string"},{"type":"null"}]},"weight":{"oneOf":[{"type":"string"},{"type":"null"}]},"address":{"oneOf":[{"type":"string"},{"type":"null"}]},"country":{"oneOf":[{"type":"string"},{"type":"null"}]},"website":{"oneOf":[{"type":"string"},{"type":"null"}]},"eyeColor":{"oneOf":[{"type":"string"},{"type":"null"}]},"keywords":{"oneOf":[{"type":"string"},{"type":"null"}]},"lastName":{"type":"array","items":{"type":"string"}},"position":{"oneOf":[{"type":"string"},{"type":"null"}]},"religion":{"oneOf":[{"type":"string"},{"type":"null"}]},"birthDate":{"type":"array","items":{"type":"string"}},"education":{"type":"array","items":{"type":"string"}},"ethnicity":{"oneOf":[{"type":"string"},{"type":"null"}]},"firstName":{"type":"array","items":{"type":"string"}},"hairColor":{"oneOf":[{"type":"string"},{"type":"null"}]},"weakAlias":{"oneOf":[{"type":"string"},{"type":"null"}]},"birthPlace":{"type":"array","items":{"type":"string"}},"modifiedAt":{"oneOf":[{"type":"string"},{"type":"null"}]},"wikidataId":{"oneOf":[{"type":"string"},{"type":"null"}]},"citizenship":{"oneOf":[{"type":"string"},{"type":"null"}]},"nationality":{"oneOf":[{"type":"string"},{"type":"null"}]}}},"match_score":{"oneOf":[{"type":"number","description":"Weighted identity confidence score (0-100) calculated from name similarity, date of birth, and country matching. Used to determine if hit is a False Positive or Possible Match.","format":"float"},{"type":"null","description":"Weighted identity confidence score (0-100) calculated from name similarity, date of birth, and country matching. Used to determine if hit is a False Positive or Possible Match.","format":"float"}]},"risk_score":{"type":"number","description":"Entity risk score (0-100). Used to determine final AML status (Approved/In Review/Declined) based on the highest risk_score among non-False-Positive hits."},"review_status":{"type":"string","description":"Review status for this hit. Can be 'Unreviewed', 'Confirmed Match', 'False Positive', or 'Inconclusive'.","enum":["Unreviewed","Confirmed Match","False Positive","Inconclusive"]},"score_breakdown":{"type":"object","description":"Detailed breakdown of how the match_score was calculated.","properties":{"name_score":{"type":"integer","description":"Raw name similarity percentage (0-100)."},"name_weight":{"type":"integer","description":"Original weight for name from config (0-100)."},"name_weight_normalized":{"type":"number","description":"Normalized weight for name after re-weighting for missing data (0-100)."},"name_contribution":{"type":"number","description":"Points contributed by name to the total score."},"dob_score":{"type":"integer","description":"DOB match score (-100 to 100)."},"dob_weight":{"type":"integer","description":"Original weight for DOB from config (0-100)."},"dob_weight_normalized":{"type":"number","description":"Normalized weight for DOB after re-weighting for missing data (0-100)."},"dob_contribution":{"type":"number","description":"Points contributed by DOB to the total score."},"country_score":{"type":"integer","description":"Country match score (-100 to 100)."},"country_weight":{"type":"integer","description":"Original weight for country from config (0-100)."},"country_weight_normalized":{"type":"number","description":"Normalized weight for country after re-weighting for missing data (0-100)."},"country_contribution":{"type":"number","description":"Points contributed by country to the total score."},"document_number_match_type":{"type":"string","description":"Result of document number 'Golden Key' evaluation.","enum":["MATCH","NEUTRAL","HARD_MISMATCH"]},"document_number_effect":{"type":"string","description":"Human-readable description of the document number effect on the score."},"total_score":{"type":"integer","description":"Final weighted match score (0-100)."}}},"pep_matches":{"type":"array","items":{"type":"object","properties":{"aliases":{"type":"array","items":{"type":"string"}},"education":{"type":"array","items":{"type":"string"}},"list_name":{"type":"string"},"publisher":{"type":"string"},"source_url":{"type":"string","format":"uri"},"description":{"type":"string"},"matched_name":{"type":"string"},"pep_position":{"type":"string"},"date_of_birth":{"type":"string"},"other_sources":{"type":"array","items":{"type":"string"}},"place_of_birth":{"type":"string"}}}},"linked_entities":{"type":"array","items":{"type":"object","properties":{"name":{"type":"array","items":{"type":"string"}},"active":{"type":"array","items":{"type":"string"}},"status":{"type":"array","items":{"type":"string"}},"details":{"type":"array","items":{"type":"string"}},"relation":{"type":"array","items":{"type":"string"}}}}},"warning_matches":{"type":"array","description":"List of warning and regulatory enforcement matches. Includes entries from categories: Warning, SIP, Warnings and Regulatory Enforcement, Fitness and Probity, SIE, and Insolvency.","items":{"type":"object","properties":{"list_name":{"type":"string","description":"Name of the warning list publisher"},"matched_name":{"type":"string","description":"Name matched in the warning list"},"description":{"type":"string","description":"Description of the warning entry"},"publisher":{"type":"string","description":"Publisher or source of the warning"},"source_url":{"type":"string","format":"uri","description":"URL to the source of the warning"},"other_sources":{"type":"array","items":{"type":"string"},"description":"Additional source URLs"},"countries":{"oneOf":[{"type":"array","items":{"type":"string"},"description":"Countries associated with the warning"},{"type":"null","items":{"type":"string"},"description":"Countries associated with the warning"}]},"created_at":{"oneOf":[{"type":"string","description":"Date the warning entry was created"},{"type":"null","description":"Date the warning entry was created"}]},"updated_at":{"oneOf":[{"type":"string","description":"Date the warning entry was last updated"},{"type":"null","description":"Date the warning entry was last updated"}]},"additional_data":{"type":"object","description":"Additional data from the warning source. May contain a `data` object with `case_details` array.","properties":{"data":{"type":"object","properties":{"case_details":{"type":"array","description":"Details of warning cases associated with this match","items":{"type":"object","properties":{"case_type":{"type":"string","description":"Type of the warning case","enum":["Accusation","Arrest","Bribery","Criminal","Fraud","Illegal Fundraising","Non-conviction Terror","Proclaimed Offender","Regulatory Enforcement","Terrorism","Terrorism-related","Terrorism-related listing"]}}}}}}}}}}},"sanction_matches":{"type":"array","description":"List of sanction list matches found for this entity.","items":{"type":"object","properties":{"list_name":{"oneOf":[{"type":"array","items":{"type":"string"},"description":"Name(s) of the sanction list(s)"},{"type":"null","items":{"type":"string"},"description":"Name(s) of the sanction list(s)"}]},"matched_name":{"type":"string","description":"Name matched in the sanction list"},"description":{"type":"string","description":"Description of the sanction entry"},"reason":{"oneOf":[{"type":"string","description":"Free-text reason why the entity was sanctioned. Joined from the sanction list's reason entries. Examples: 'Executive Order 13224 (Terrorism)', 'Support for actions undermining Ukraine's sovereignty', 'Listed due to national security concerns.'"},{"type":"null","description":"Free-text reason why the entity was sanctioned. Joined from the sanction list's reason entries. Examples: 'Executive Order 13224 (Terrorism)', 'Support for actions undermining Ukraine's sovereignty', 'Listed due to national security concerns.'"}]},"source_url":{"type":"string","format":"uri","description":"URL to the source of the sanction"},"other_sources":{"type":"array","items":{"type":"string"},"description":"Additional source URLs"},"details":{"type":"array","items":{"type":"string"},"description":"Additional details about the sanction"},"legal_basis":{"type":"array","items":{"type":"string"},"description":"Legal basis for the sanction"},"listed_on":{"oneOf":[{"type":"array","items":{"type":"string"},"description":"Date(s) when the entity was listed"},{"type":"null","items":{"type":"string"},"description":"Date(s) when the entity was listed"}]},"sanction_list":{"oneOf":[{"type":"array","items":{"type":"string"},"description":"Sanction list identifier(s)"},{"type":"null","items":{"type":"string"},"description":"Sanction list identifier(s)"}]},"sanction_program":{"type":"array","items":{"type":"string"},"description":"Sanction program(s) the entity is listed under"},"sanctioning_authority":{"type":"array","items":{"type":"string"},"description":"Authority/authorities that imposed the sanction"},"updated_on":{"type":"array","items":{"type":"string"},"description":"Date(s) when the sanction entry was last updated"},"additional_data":{"type":"object","description":"Additional data from the sanction source not captured in the main fields"}}}},"adverse_media_details":{"type":"object","properties":{"sentiment":{"type":"string"},"entity_type":{"type":"string"},"sentiment_score":{"type":"integer"},"adverse_keywords":{"type":"object","additionalProperties":{"type":"integer"}}}},"adverse_media_matches":{"type":"array","items":{"type":"object","properties":{"country":{"type":"string"},"summary":{"type":"string"},"headline":{"type":"string"},"sentiment":{"type":"string"},"thumbnail":{"type":"string","format":"uri"},"source_url":{"type":"string","format":"uri"},"author_name":{"oneOf":[{"type":"string"},{"type":"null"}]},"other_sources":{"type":"array","items":{"type":"string"}},"adverse_keywords":{"type":"array","items":{"type":"string"}},"sentiment_score":{"type":"integer"},"publication_date":{"type":"string","format":"date-time"}}}},"additional_information":{"type":"object"}}}},"score":{"oneOf":[{"type":"number","format":"float","minimum":0,"maximum":100,"description":"Overall AML screening score — the highest risk score across all hits (float, 0-100). `null` until computed."},{"type":"null","format":"float","minimum":0,"maximum":100,"description":"Overall AML screening score — the highest risk score across all hits (float, 0-100). `null` until computed."}]},"screened_data":{"type":"object","properties":{"full_name":{"type":"string"},"nationality":{"type":"string"},"date_of_birth":{"type":"string","format":"date"},"document_number":{"oneOf":[{"type":"string"},{"type":"null"}]}}},"is_ongoing_monitoring_enabled":{"type":"boolean","description":"Whether AML ongoing monitoring is enabled for this screening. When `true`, the entity is re-screened periodically and any new hits update the report."},"next_ongoing_monitoring_bill_date":{"oneOf":[{"type":"string","format":"date","description":"Date (YYYY-MM-DD) when this ongoing-monitoring subscription will next be billed. Computed as the date of the last ongoing-monitoring billing plus 365 days when `is_ongoing_monitoring_enabled = true`; otherwise `null`. This is a billing date, not a screening date - use `last_ongoing_screening_at` for that."},{"type":"null","format":"date","description":"Date (YYYY-MM-DD) when this ongoing-monitoring subscription will next be billed. Computed as the date of the last ongoing-monitoring billing plus 365 days when `is_ongoing_monitoring_enabled = true`; otherwise `null`. This is a billing date, not a screening date - use `last_ongoing_screening_at` for that."}]},"last_ongoing_screening_at":{"oneOf":[{"type":"string","format":"date-time","description":"When ongoing monitoring last completed a re-screening of this record, whether or not the result changed. `null` when the record has never been re-screened; it is never back-filled from the enablement or billing date."},{"type":"null","format":"date-time","description":"When ongoing monitoring last completed a re-screening of this record, whether or not the result changed. `null` when the record has never been re-screened; it is never back-filled from the enablement or billing date."}]},"last_ongoing_screening_datasets_updated_at":{"oneOf":[{"type":"string","format":"date-time","description":"The most recent AML dataset update date the provider reported at the time of that screening. `null` when the provider reported no dataset dates; never estimated."},{"type":"null","format":"date-time","description":"The most recent AML dataset update date the provider reported at the time of that screening. `null` when the provider reported no dataset dates; never estimated."}]},"warnings":{"type":"array","items":{"type":"object","properties":{"feature":{"type":"string","enum":["ID_VERIFICATION","NFC","LIVENESS","FACEMATCH","PROOF_OF_ADDRESS","PHONE","EMAIL","AML","LOCATION","DATABASE_VALIDATION","QUESTIONNAIRE","DOCUMENT_AI","KYB_REGISTRY","KYB_DOCUMENTS","KYB_KEY_PEOPLE","GEOLOCATION","SIGNATURE"],"description":"The feature that generated this warning. The value identifies the feature block the warning belongs to. Within an AML screening this is typically `AML`, but the enum above is authoritative across all feature warnings on the decision payload."},"risk":{"type":"string"},"additional_data":{"oneOf":[{"type":"object"},{"type":"null"}]},"log_type":{"type":"string"},"short_description":{"type":"string"},"long_description":{"type":"string"},"node_id":{"type":"string","description":"The workflow graph node ID that generated this warning"}}}}}},"uniqueKey":"aml_screenings.oneOf.1","typeLabel":"null"}],"uniqueKey":"aml_screenings","typeLabel":"object[] | null"},"ip_analyses":{"oneOf":[{"type":"array","description":"**Array of Device \u0026 IP Analysis reports** — always a JSON array, never a singular `ip_analysis` object. `null` until at least one IP-analysis step has produced data. Each item is the full report, including `node_id`, feature-level `status`, IP and geolocation data, device fingerprint, and `warnings[]`. Entries with duplicate `(node_id, ip_address, device_fingerprint)` are deduplicated server-side.","items":{"type":"object","properties":{"node_id":{"type":"string","description":"Unique identifier for this Device \u0026 IP Analysis step in the workflow graph.","uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].node_id","typeLabel":"string"},"status":{"type":"string","description":"Feature-level status of this Device \u0026 IP Analysis entry. Independent of the top-level session `status` — a session can reach its overall decision while an individual feature stays `In Review`.","enum":["Not Finished","Approved","Declined","In Review","Resub Requested"],"uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].status","typeLabel":"enum\u003cstring>"},"device_brand":{"type":"string","description":"Brand of the device used","uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].device_brand","typeLabel":"string"},"device_model":{"type":"string","description":"Model of the device used","uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].device_model","typeLabel":"string"},"browser_family":{"type":"string","description":"Browser family used","uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].browser_family","typeLabel":"string"},"os_family":{"type":"string","description":"Operating system family","uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].os_family","typeLabel":"string"},"platform":{"type":"string","description":"Platform type (mobile, desktop, etc)","uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].platform","typeLabel":"string"},"device_fingerprint":{"oneOf":[{"type":"string","description":"Unique device fingerprint identifier","uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].device_fingerprint.oneOf.0","typeLabel":"string"},{"type":"null","description":"Unique device fingerprint identifier","uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].device_fingerprint.oneOf.1","typeLabel":"null"}],"uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].device_fingerprint","typeLabel":"string | null"},"ip_country":{"type":"string","description":"Country detected from IP","uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].ip_country","typeLabel":"string"},"ip_country_code":{"type":"string","description":"Two-letter country code from IP","uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].ip_country_code","typeLabel":"string"},"ip_state":{"type":"string","description":"State/region detected from IP","uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].ip_state","typeLabel":"string"},"ip_city":{"type":"string","description":"City detected from IP","uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].ip_city","typeLabel":"string"},"latitude":{"type":"number","description":"Latitude coordinate of IP location","uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].latitude","typeLabel":"number"},"longitude":{"type":"number","description":"Longitude coordinate of IP location","uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].longitude","typeLabel":"number"},"ip_address":{"type":"string","description":"IP address","uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].ip_address","typeLabel":"string"},"isp":{"oneOf":[{"type":"string","description":"Internet Service Provider","uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].isp.oneOf.0","typeLabel":"string"},{"type":"null","description":"Internet Service Provider","uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].isp.oneOf.1","typeLabel":"null"}],"uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].isp","typeLabel":"string | null"},"organization":{"oneOf":[{"type":"string","description":"Organization associated with IP","uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].organization.oneOf.0","typeLabel":"string"},{"type":"null","description":"Organization associated with IP","uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].organization.oneOf.1","typeLabel":"null"}],"uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].organization","typeLabel":"string | null"},"is_vpn_or_tor":{"type":"boolean","description":"Whether IP is from VPN or Tor network","uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].is_vpn_or_tor","typeLabel":"boolean"},"is_data_center":{"type":"boolean","description":"Whether IP is from a data center","uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].is_data_center","typeLabel":"boolean"},"time_zone":{"type":"string","description":"Time zone detected from IP","uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].time_zone","typeLabel":"string"},"time_zone_offset":{"type":"string","description":"Time zone offset","uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].time_zone_offset","typeLabel":"string"},"ip":{"type":"object","description":"IP geolocation of this entry plus great-circle distances (km) to the ID document address and the POA document address. Distances are `null` when either side has no resolvable location.","properties":{"location":{"oneOf":[{"type":"object","properties":{"latitude":{"type":"number","example":41.2706327,"uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].ip.location.oneOf.0.latitude","typeLabel":"number"},"longitude":{"type":"number","example":1.9770097,"uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].ip.location.oneOf.0.longitude","typeLabel":"number"}},"description":"Coordinates, or `null` when unavailable.","uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].ip.location.oneOf.0","typeLabel":"object"},{"type":"null","properties":{"latitude":{"type":"number","example":41.2706327},"longitude":{"type":"number","example":1.9770097}},"description":"Coordinates, or `null` when unavailable.","uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].ip.location.oneOf.1","typeLabel":"null"}],"uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].ip.location","typeLabel":"object | null"},"distance_from_id_document":{"oneOf":[{"type":"number","example":23.4,"uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].ip.distance_from_id_document.oneOf.0","typeLabel":"number"},{"type":"null","example":23.4,"uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].ip.distance_from_id_document.oneOf.1","typeLabel":"null"}],"uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].ip.distance_from_id_document","typeLabel":"number | null"},"distance_from_poa_document":{"oneOf":[{"type":"number","example":12.3,"uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].ip.distance_from_poa_document.oneOf.0","typeLabel":"number"},{"type":"null","example":12.3,"uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].ip.distance_from_poa_document.oneOf.1","typeLabel":"null"}],"uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].ip.distance_from_poa_document","typeLabel":"number | null"}},"uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].ip","typeLabel":"object"},"id_document":{"type":"object","description":"Location extracted from the ID document address plus distances (km) to the IP geolocation and the POA document address. `location` is `null` when no document address could be geocoded.","properties":{"location":{"oneOf":[{"type":"object","properties":{"latitude":{"type":"number","example":41.2706327,"uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].id_document.location.oneOf.0.latitude","typeLabel":"number"},"longitude":{"type":"number","example":1.9770097,"uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].id_document.location.oneOf.0.longitude","typeLabel":"number"}},"description":"Coordinates, or `null` when unavailable.","uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].id_document.location.oneOf.0","typeLabel":"object"},{"type":"null","properties":{"latitude":{"type":"number","example":41.2706327},"longitude":{"type":"number","example":1.9770097}},"description":"Coordinates, or `null` when unavailable.","uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].id_document.location.oneOf.1","typeLabel":"null"}],"uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].id_document.location","typeLabel":"object | null"},"distance_from_ip":{"oneOf":[{"type":"number","example":23.4,"uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].id_document.distance_from_ip.oneOf.0","typeLabel":"number"},{"type":"null","example":23.4,"uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].id_document.distance_from_ip.oneOf.1","typeLabel":"null"}],"uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].id_document.distance_from_ip","typeLabel":"number | null"},"distance_from_poa_document":{"oneOf":[{"type":"number","example":18.7,"uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].id_document.distance_from_poa_document.oneOf.0","typeLabel":"number"},{"type":"null","example":18.7,"uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].id_document.distance_from_poa_document.oneOf.1","typeLabel":"null"}],"uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].id_document.distance_from_poa_document","typeLabel":"number | null"}},"uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].id_document","typeLabel":"object"},"poa_document":{"type":"object","description":"Location extracted from the Proof of Address document plus distances (km) to the IP geolocation and the ID document address. `location` is `null` when the session has no POA step or the address could not be geocoded.","properties":{"location":{"oneOf":[{"type":"object","properties":{"latitude":{"type":"number","example":41.2706327,"uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].poa_document.location.oneOf.0.latitude","typeLabel":"number"},"longitude":{"type":"number","example":1.9770097,"uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].poa_document.location.oneOf.0.longitude","typeLabel":"number"}},"description":"Coordinates, or `null` when unavailable.","uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].poa_document.location.oneOf.0","typeLabel":"object"},{"type":"null","properties":{"latitude":{"type":"number","example":41.2706327},"longitude":{"type":"number","example":1.9770097}},"description":"Coordinates, or `null` when unavailable.","uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].poa_document.location.oneOf.1","typeLabel":"null"}],"uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].poa_document.location","typeLabel":"object | null"},"distance_from_ip":{"oneOf":[{"type":"number","example":12.3,"uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].poa_document.distance_from_ip.oneOf.0","typeLabel":"number"},{"type":"null","example":12.3,"uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].poa_document.distance_from_ip.oneOf.1","typeLabel":"null"}],"uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].poa_document.distance_from_ip","typeLabel":"number | null"},"distance_from_id_document":{"oneOf":[{"type":"number","example":18.7,"uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].poa_document.distance_from_id_document.oneOf.0","typeLabel":"number"},{"type":"null","example":18.7,"uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].poa_document.distance_from_id_document.oneOf.1","typeLabel":"null"}],"uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].poa_document.distance_from_id_document","typeLabel":"number | null"}},"uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].poa_document","typeLabel":"object"},"warnings":{"type":"array","items":{"type":"object","properties":{"feature":{"type":"string","enum":["ID_VERIFICATION","NFC","LIVENESS","FACEMATCH","PROOF_OF_ADDRESS","PHONE","EMAIL","AML","LOCATION","DATABASE_VALIDATION","QUESTIONNAIRE","DOCUMENT_AI","KYB_REGISTRY","KYB_DOCUMENTS","KYB_KEY_PEOPLE","GEOLOCATION","SIGNATURE"],"description":"The feature that generated this warning. The value identifies the feature block the warning belongs to. Each module's warnings array typically uses the value matching its module (e.g. `PHONE` inside `phone_verifications[].warnings`), but the enum above is authoritative across all feature warnings on the decision payload.","uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].warnings.items.[INDEX].feature","typeLabel":"enum\u003cstring>"},"risk":{"type":"string","uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].warnings.items.[INDEX].risk","typeLabel":"string"},"additional_data":{"oneOf":[{"type":"object","uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].warnings.items.[INDEX].additional_data.oneOf.0","typeLabel":"object"},{"type":"null","uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].warnings.items.[INDEX].additional_data.oneOf.1","typeLabel":"null"}],"uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].warnings.items.[INDEX].additional_data","typeLabel":"object | null"},"log_type":{"type":"string","uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].warnings.items.[INDEX].log_type","typeLabel":"string"},"short_description":{"type":"string","uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].warnings.items.[INDEX].short_description","typeLabel":"string"},"long_description":{"type":"string","uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].warnings.items.[INDEX].long_description","typeLabel":"string"},"node_id":{"type":"string","description":"The workflow graph node ID that generated this warning","uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].warnings.items.[INDEX].node_id","typeLabel":"string"}},"uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].warnings.items.[INDEX]","typeLabel":"object"},"uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].warnings","typeLabel":"object[]"},"matches":{"type":"array","description":"Cross-session matches found for this entry's IP address or device identity. Every match is another verification session in your application (`source` is always `session`) that shares the same value, always belonging to a different vendor user / `vendor_data` than the current session, capped at 5 per collector (`device_fingerprint` sums two independently capped collectors, so up to 10 entries are possible). Every item carries `match_source`, `confidence`, `match_mode`, `device_info` and `location_info`; the keys `recovery_similarity`, `tls_ja4_corroborated` and `recovery_gate_reason` are present only when `match_source` is `recovered_high`.","items":{"type":"object","additionalProperties":false,"properties":{"session_id":{"type":"string","format":"uuid","description":"Session ID of the matching session.","uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].matches.items.[INDEX].session_id","typeLabel":"string\u003cuuid>"},"session_number":{"type":"integer","description":"Sequential number of the matching session.","uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].matches.items.[INDEX].session_number","typeLabel":"integer"},"vendor_data":{"oneOf":[{"type":"string","description":"`vendor_data` of the matching session — always different from the current session's vendor user.","uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].matches.items.[INDEX].vendor_data.oneOf.0","typeLabel":"string"},{"type":"null","description":"`vendor_data` of the matching session — always different from the current session's vendor user.","uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].matches.items.[INDEX].vendor_data.oneOf.1","typeLabel":"null"}],"uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].matches.items.[INDEX].vendor_data","typeLabel":"string | null"},"verification_date":{"oneOf":[{"type":"string","format":"date-time","description":"Creation date of the matching session (`YYYY-MM-DDTHH:MM:SSZ`).","uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].matches.items.[INDEX].verification_date.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","description":"Creation date of the matching session (`YYYY-MM-DDTHH:MM:SSZ`).","uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].matches.items.[INDEX].verification_date.oneOf.1","typeLabel":"null"}],"uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].matches.items.[INDEX].verification_date","typeLabel":"string\u003cdate-time> | null"},"match_type":{"type":"string","enum":["ip_address","device_fingerprint"],"description":"Whether the match was on IP address or device fingerprint","uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].matches.items.[INDEX].match_type","typeLabel":"enum\u003cstring>"},"match_source":{"type":"string","enum":["ip_address","persistent_id","legacy_fp","recovered_high"],"description":"How this match was reached: `ip_address` (shared IP address — network co-location, not a device-identity claim), `persistent_id` (exact stored persistent device identifier), `legacy_fp` (legacy `didit-fp-*` device-fingerprint hash), or `recovered_high` (high-confidence fuzzy fingerprint-recovery hit). Lower-confidence recovery candidates surface as risk warnings only, never in this array.","uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].matches.items.[INDEX].match_source","typeLabel":"enum\u003cstring>"},"matched_value":{"oneOf":[{"type":"string","description":"The value that matched: the shared IP address, the persistent device identifier or legacy fingerprint hash, or — for `recovered_high` — the UUID of the recovered device.","uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].matches.items.[INDEX].matched_value.oneOf.0","typeLabel":"string"},{"type":"null","description":"The value that matched: the shared IP address, the persistent device identifier or legacy fingerprint hash, or — for `recovered_high` — the UUID of the recovered device.","uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].matches.items.[INDEX].matched_value.oneOf.1","typeLabel":"null"}],"uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].matches.items.[INDEX].matched_value","typeLabel":"string | null"},"status":{"type":"string","description":"Lifecycle status of the matching session.","uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].matches.items.[INDEX].status","typeLabel":"string"},"is_blocklisted":{"type":"boolean","description":"Whether the matched value is on a blocklist. Currently always `false` for device/IP matches.","uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].matches.items.[INDEX].is_blocklisted","typeLabel":"boolean"},"api_service":{"oneOf":[{"type":"string","description":"Standalone API service of the matching session; `null` for workflow sessions.","uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].matches.items.[INDEX].api_service.oneOf.0","typeLabel":"string"},{"type":"null","description":"Standalone API service of the matching session; `null` for workflow sessions.","uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].matches.items.[INDEX].api_service.oneOf.1","typeLabel":"null"}],"uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].matches.items.[INDEX].api_service","typeLabel":"string | null"},"source":{"type":"string","enum":["session"],"description":"Always `session` for device/IP matches — every match is another verification session in your application.","uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].matches.items.[INDEX].source","typeLabel":"enum\u003cstring>"},"device_info":{"type":"object","description":"Device details observed on the matching session.","properties":{"device_brand":{"oneOf":[{"type":"string","uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].matches.items.[INDEX].device_info.device_brand.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].matches.items.[INDEX].device_info.device_brand.oneOf.1","typeLabel":"null"}],"uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].matches.items.[INDEX].device_info.device_brand","typeLabel":"string | null"},"device_model":{"oneOf":[{"type":"string","uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].matches.items.[INDEX].device_info.device_model.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].matches.items.[INDEX].device_info.device_model.oneOf.1","typeLabel":"null"}],"uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].matches.items.[INDEX].device_info.device_model","typeLabel":"string | null"},"browser_family":{"oneOf":[{"type":"string","uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].matches.items.[INDEX].device_info.browser_family.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].matches.items.[INDEX].device_info.browser_family.oneOf.1","typeLabel":"null"}],"uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].matches.items.[INDEX].device_info.browser_family","typeLabel":"string | null"},"os_family":{"oneOf":[{"type":"string","uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].matches.items.[INDEX].device_info.os_family.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].matches.items.[INDEX].device_info.os_family.oneOf.1","typeLabel":"null"}],"uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].matches.items.[INDEX].device_info.os_family","typeLabel":"string | null"},"platform":{"oneOf":[{"type":"string","uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].matches.items.[INDEX].device_info.platform.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].matches.items.[INDEX].device_info.platform.oneOf.1","typeLabel":"null"}],"uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].matches.items.[INDEX].device_info.platform","typeLabel":"string | null"},"device_fingerprint":{"oneOf":[{"type":"string","uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].matches.items.[INDEX].device_info.device_fingerprint.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].matches.items.[INDEX].device_info.device_fingerprint.oneOf.1","typeLabel":"null"}],"uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].matches.items.[INDEX].device_info.device_fingerprint","typeLabel":"string | null"}},"uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].matches.items.[INDEX].device_info","typeLabel":"object"},"location_info":{"type":"object","description":"Network and geolocation details observed on the matching session.","properties":{"ip_address":{"oneOf":[{"type":"string","uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].matches.items.[INDEX].location_info.ip_address.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].matches.items.[INDEX].location_info.ip_address.oneOf.1","typeLabel":"null"}],"uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].matches.items.[INDEX].location_info.ip_address","typeLabel":"string | null"},"ip_country":{"oneOf":[{"type":"string","uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].matches.items.[INDEX].location_info.ip_country.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].matches.items.[INDEX].location_info.ip_country.oneOf.1","typeLabel":"null"}],"uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].matches.items.[INDEX].location_info.ip_country","typeLabel":"string | null"},"ip_country_code":{"oneOf":[{"type":"string","uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].matches.items.[INDEX].location_info.ip_country_code.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].matches.items.[INDEX].location_info.ip_country_code.oneOf.1","typeLabel":"null"}],"uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].matches.items.[INDEX].location_info.ip_country_code","typeLabel":"string | null"},"ip_state":{"oneOf":[{"type":"string","uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].matches.items.[INDEX].location_info.ip_state.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].matches.items.[INDEX].location_info.ip_state.oneOf.1","typeLabel":"null"}],"uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].matches.items.[INDEX].location_info.ip_state","typeLabel":"string | null"},"ip_city":{"oneOf":[{"type":"string","uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].matches.items.[INDEX].location_info.ip_city.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].matches.items.[INDEX].location_info.ip_city.oneOf.1","typeLabel":"null"}],"uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].matches.items.[INDEX].location_info.ip_city","typeLabel":"string | null"},"is_vpn_or_tor":{"type":"boolean","uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].matches.items.[INDEX].location_info.is_vpn_or_tor","typeLabel":"boolean"},"is_data_center":{"type":"boolean","uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].matches.items.[INDEX].location_info.is_data_center","typeLabel":"boolean"}},"uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].matches.items.[INDEX].location_info","typeLabel":"object"},"confidence":{"type":"number","minimum":0,"maximum":1,"description":"Server-side identification confidence, computed as `1 - P(false positive)`: `1.0` for deterministic matches (`persistent_id`, or hardware-rooted `recovered_high`), `0.5` for `legacy_fp`, `0.0` for `ip_address` (co-location only), and a corroboration-adjusted value below `1.0` for probabilistic recovered matches (higher when the TLS JA4 fingerprint and IP country independently agree).","uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].matches.items.[INDEX].confidence","typeLabel":"number"},"match_mode":{"type":"string","enum":["deterministic","probabilistic","co_occurrence"],"description":"Evidence class of the match: `deterministic` (exact stored or hardware-rooted identifier that cannot collide between physical devices), `probabilistic` (fuzzy fingerprint evidence), or `co_occurrence` (shared network only, no device-identity claim).","uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].matches.items.[INDEX].match_mode","typeLabel":"enum\u003cstring>"},"recovery_similarity":{"type":"number","description":"Cosine similarity of the fingerprint-recovery match, rounded to 4 decimals. Present only when `match_source` is `recovered_high`.","uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].matches.items.[INDEX].recovery_similarity","typeLabel":"number"},"tls_ja4_corroborated":{"type":"boolean","description":"Whether the TLS JA4 fingerprints of the two observations agree — a server-observed signal the browser cannot spoof. Present only when `match_source` is `recovered_high`.","uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].matches.items.[INDEX].tls_ja4_corroborated","typeLabel":"boolean"},"recovery_gate_reason":{"type":"string","description":"Why the recovery match passed the false-positive hard gate: `hardware_root_match` (a hardware-rooted device identifier matched exactly) or, on configurations that admit probe-only evidence, `exact_composite_plus_\u003cn>_families` / `very_high_similarity_plus_\u003cn>_families`. Present only when `match_source` is `recovered_high`.","uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].matches.items.[INDEX].recovery_gate_reason","typeLabel":"string"}},"uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].matches.items.[INDEX]","typeLabel":"object"},"uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].matches","typeLabel":"object[]"},"browser_version":{"oneOf":[{"type":"string","uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].browser_version.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].browser_version.oneOf.1","typeLabel":"null"}],"uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].browser_version","typeLabel":"string | null"},"os_version":{"oneOf":[{"type":"string","uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].os_version.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].os_version.oneOf.1","typeLabel":"null"}],"uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].os_version","typeLabel":"string | null"},"user_agent":{"oneOf":[{"type":"string","description":"The browser's user agent string.","uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].user_agent.oneOf.0","typeLabel":"string"},{"type":"null","description":"The browser's user agent string.","uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].user_agent.oneOf.1","typeLabel":"null"}],"uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].user_agent","typeLabel":"string | null"},"accept_language":{"oneOf":[{"type":"string","description":"The `Accept-Language` header the browser sent.","uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].accept_language.oneOf.0","typeLabel":"string"},{"type":"null","description":"The `Accept-Language` header the browser sent.","uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].accept_language.oneOf.1","typeLabel":"null"}],"uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].accept_language","typeLabel":"string | null"},"session_identifier":{"oneOf":[{"type":"string","description":"Identifier of the browsing session the verification ran in.","uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].session_identifier.oneOf.0","typeLabel":"string"},{"type":"null","description":"Identifier of the browsing session the verification ran in.","uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].session_identifier.oneOf.1","typeLabel":"null"}],"uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].session_identifier","typeLabel":"string | null"},"session_age_ms":{"oneOf":[{"type":"integer","description":"Age of that browsing session in milliseconds when the step ran.","uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].session_age_ms.oneOf.0","typeLabel":"integer"},{"type":"null","description":"Age of that browsing session in milliseconds when the step ran.","uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].session_age_ms.oneOf.1","typeLabel":"null"}],"uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].session_age_ms","typeLabel":"integer | null"},"coords_accuracy":{"oneOf":[{"type":"number","description":"Accuracy radius, in metres, of the coordinates the device reported.","uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].coords_accuracy.oneOf.0","typeLabel":"number"},{"type":"null","description":"Accuracy radius, in metres, of the coordinates the device reported.","uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].coords_accuracy.oneOf.1","typeLabel":"null"}],"uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].coords_accuracy","typeLabel":"number | null"},"raw_device_data":{"oneOf":[{"type":"object","additionalProperties":true,"description":"Raw device signals collected for the step.","uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].raw_device_data.oneOf.0","typeLabel":"object"},{"type":"null","additionalProperties":true,"description":"Raw device signals collected for the step.","uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].raw_device_data.oneOf.1","typeLabel":"null"}],"uniqueKey":"ip_analyses.oneOf.0.items.[INDEX].raw_device_data","typeLabel":"object | null"}},"uniqueKey":"ip_analyses.oneOf.0.items.[INDEX]","typeLabel":"object"},"uniqueKey":"ip_analyses.oneOf.0","typeLabel":"object[]"},{"type":"null","description":"**Array of Device \u0026 IP Analysis reports** — always a JSON array, never a singular `ip_analysis` object. `null` until at least one IP-analysis step has produced data. Each item is the full report, including `node_id`, feature-level `status`, IP and geolocation data, device fingerprint, and `warnings[]`. Entries with duplicate `(node_id, ip_address, device_fingerprint)` are deduplicated server-side.","items":{"type":"object","properties":{"node_id":{"type":"string","description":"Unique identifier for this Device \u0026 IP Analysis step in the workflow graph."},"status":{"type":"string","description":"Feature-level status of this Device \u0026 IP Analysis entry. Independent of the top-level session `status` — a session can reach its overall decision while an individual feature stays `In Review`.","enum":["Not Finished","Approved","Declined","In Review","Resub Requested"]},"device_brand":{"type":"string","description":"Brand of the device used"},"device_model":{"type":"string","description":"Model of the device used"},"browser_family":{"type":"string","description":"Browser family used"},"os_family":{"type":"string","description":"Operating system family"},"platform":{"type":"string","description":"Platform type (mobile, desktop, etc)"},"device_fingerprint":{"oneOf":[{"type":"string","description":"Unique device fingerprint identifier"},{"type":"null","description":"Unique device fingerprint identifier"}]},"ip_country":{"type":"string","description":"Country detected from IP"},"ip_country_code":{"type":"string","description":"Two-letter country code from IP"},"ip_state":{"type":"string","description":"State/region detected from IP"},"ip_city":{"type":"string","description":"City detected from IP"},"latitude":{"type":"number","description":"Latitude coordinate of IP location"},"longitude":{"type":"number","description":"Longitude coordinate of IP location"},"ip_address":{"type":"string","description":"IP address"},"isp":{"oneOf":[{"type":"string","description":"Internet Service Provider"},{"type":"null","description":"Internet Service Provider"}]},"organization":{"oneOf":[{"type":"string","description":"Organization associated with IP"},{"type":"null","description":"Organization associated with IP"}]},"is_vpn_or_tor":{"type":"boolean","description":"Whether IP is from VPN or Tor network"},"is_data_center":{"type":"boolean","description":"Whether IP is from a data center"},"time_zone":{"type":"string","description":"Time zone detected from IP"},"time_zone_offset":{"type":"string","description":"Time zone offset"},"ip":{"type":"object","description":"IP geolocation of this entry plus great-circle distances (km) to the ID document address and the POA document address. Distances are `null` when either side has no resolvable location.","properties":{"location":{"oneOf":[{"type":"object","properties":{"latitude":{"type":"number","example":41.2706327},"longitude":{"type":"number","example":1.9770097}},"description":"Coordinates, or `null` when unavailable."},{"type":"null","properties":{"latitude":{"type":"number","example":41.2706327},"longitude":{"type":"number","example":1.9770097}},"description":"Coordinates, or `null` when unavailable."}]},"distance_from_id_document":{"oneOf":[{"type":"number","example":23.4},{"type":"null","example":23.4}]},"distance_from_poa_document":{"oneOf":[{"type":"number","example":12.3},{"type":"null","example":12.3}]}}},"id_document":{"type":"object","description":"Location extracted from the ID document address plus distances (km) to the IP geolocation and the POA document address. `location` is `null` when no document address could be geocoded.","properties":{"location":{"oneOf":[{"type":"object","properties":{"latitude":{"type":"number","example":41.2706327},"longitude":{"type":"number","example":1.9770097}},"description":"Coordinates, or `null` when unavailable."},{"type":"null","properties":{"latitude":{"type":"number","example":41.2706327},"longitude":{"type":"number","example":1.9770097}},"description":"Coordinates, or `null` when unavailable."}]},"distance_from_ip":{"oneOf":[{"type":"number","example":23.4},{"type":"null","example":23.4}]},"distance_from_poa_document":{"oneOf":[{"type":"number","example":18.7},{"type":"null","example":18.7}]}}},"poa_document":{"type":"object","description":"Location extracted from the Proof of Address document plus distances (km) to the IP geolocation and the ID document address. `location` is `null` when the session has no POA step or the address could not be geocoded.","properties":{"location":{"oneOf":[{"type":"object","properties":{"latitude":{"type":"number","example":41.2706327},"longitude":{"type":"number","example":1.9770097}},"description":"Coordinates, or `null` when unavailable."},{"type":"null","properties":{"latitude":{"type":"number","example":41.2706327},"longitude":{"type":"number","example":1.9770097}},"description":"Coordinates, or `null` when unavailable."}]},"distance_from_ip":{"oneOf":[{"type":"number","example":12.3},{"type":"null","example":12.3}]},"distance_from_id_document":{"oneOf":[{"type":"number","example":18.7},{"type":"null","example":18.7}]}}},"warnings":{"type":"array","items":{"type":"object","properties":{"feature":{"type":"string","enum":["ID_VERIFICATION","NFC","LIVENESS","FACEMATCH","PROOF_OF_ADDRESS","PHONE","EMAIL","AML","LOCATION","DATABASE_VALIDATION","QUESTIONNAIRE","DOCUMENT_AI","KYB_REGISTRY","KYB_DOCUMENTS","KYB_KEY_PEOPLE","GEOLOCATION","SIGNATURE"],"description":"The feature that generated this warning. The value identifies the feature block the warning belongs to. Each module's warnings array typically uses the value matching its module (e.g. `PHONE` inside `phone_verifications[].warnings`), but the enum above is authoritative across all feature warnings on the decision payload."},"risk":{"type":"string"},"additional_data":{"oneOf":[{"type":"object"},{"type":"null"}]},"log_type":{"type":"string"},"short_description":{"type":"string"},"long_description":{"type":"string"},"node_id":{"type":"string","description":"The workflow graph node ID that generated this warning"}}}},"matches":{"type":"array","description":"Cross-session matches found for this entry's IP address or device identity. Every match is another verification session in your application (`source` is always `session`) that shares the same value, always belonging to a different vendor user / `vendor_data` than the current session, capped at 5 per collector (`device_fingerprint` sums two independently capped collectors, so up to 10 entries are possible). Every item carries `match_source`, `confidence`, `match_mode`, `device_info` and `location_info`; the keys `recovery_similarity`, `tls_ja4_corroborated` and `recovery_gate_reason` are present only when `match_source` is `recovered_high`.","items":{"type":"object","additionalProperties":false,"properties":{"session_id":{"type":"string","format":"uuid","description":"Session ID of the matching session."},"session_number":{"type":"integer","description":"Sequential number of the matching session."},"vendor_data":{"oneOf":[{"type":"string","description":"`vendor_data` of the matching session — always different from the current session's vendor user."},{"type":"null","description":"`vendor_data` of the matching session — always different from the current session's vendor user."}]},"verification_date":{"oneOf":[{"type":"string","format":"date-time","description":"Creation date of the matching session (`YYYY-MM-DDTHH:MM:SSZ`)."},{"type":"null","format":"date-time","description":"Creation date of the matching session (`YYYY-MM-DDTHH:MM:SSZ`)."}]},"match_type":{"type":"string","enum":["ip_address","device_fingerprint"],"description":"Whether the match was on IP address or device fingerprint"},"match_source":{"type":"string","enum":["ip_address","persistent_id","legacy_fp","recovered_high"],"description":"How this match was reached: `ip_address` (shared IP address — network co-location, not a device-identity claim), `persistent_id` (exact stored persistent device identifier), `legacy_fp` (legacy `didit-fp-*` device-fingerprint hash), or `recovered_high` (high-confidence fuzzy fingerprint-recovery hit). Lower-confidence recovery candidates surface as risk warnings only, never in this array."},"matched_value":{"oneOf":[{"type":"string","description":"The value that matched: the shared IP address, the persistent device identifier or legacy fingerprint hash, or — for `recovered_high` — the UUID of the recovered device."},{"type":"null","description":"The value that matched: the shared IP address, the persistent device identifier or legacy fingerprint hash, or — for `recovered_high` — the UUID of the recovered device."}]},"status":{"type":"string","description":"Lifecycle status of the matching session."},"is_blocklisted":{"type":"boolean","description":"Whether the matched value is on a blocklist. Currently always `false` for device/IP matches."},"api_service":{"oneOf":[{"type":"string","description":"Standalone API service of the matching session; `null` for workflow sessions."},{"type":"null","description":"Standalone API service of the matching session; `null` for workflow sessions."}]},"source":{"type":"string","enum":["session"],"description":"Always `session` for device/IP matches — every match is another verification session in your application."},"device_info":{"type":"object","description":"Device details observed on the matching session.","properties":{"device_brand":{"oneOf":[{"type":"string"},{"type":"null"}]},"device_model":{"oneOf":[{"type":"string"},{"type":"null"}]},"browser_family":{"oneOf":[{"type":"string"},{"type":"null"}]},"os_family":{"oneOf":[{"type":"string"},{"type":"null"}]},"platform":{"oneOf":[{"type":"string"},{"type":"null"}]},"device_fingerprint":{"oneOf":[{"type":"string"},{"type":"null"}]}}},"location_info":{"type":"object","description":"Network and geolocation details observed on the matching session.","properties":{"ip_address":{"oneOf":[{"type":"string"},{"type":"null"}]},"ip_country":{"oneOf":[{"type":"string"},{"type":"null"}]},"ip_country_code":{"oneOf":[{"type":"string"},{"type":"null"}]},"ip_state":{"oneOf":[{"type":"string"},{"type":"null"}]},"ip_city":{"oneOf":[{"type":"string"},{"type":"null"}]},"is_vpn_or_tor":{"type":"boolean"},"is_data_center":{"type":"boolean"}}},"confidence":{"type":"number","minimum":0,"maximum":1,"description":"Server-side identification confidence, computed as `1 - P(false positive)`: `1.0` for deterministic matches (`persistent_id`, or hardware-rooted `recovered_high`), `0.5` for `legacy_fp`, `0.0` for `ip_address` (co-location only), and a corroboration-adjusted value below `1.0` for probabilistic recovered matches (higher when the TLS JA4 fingerprint and IP country independently agree)."},"match_mode":{"type":"string","enum":["deterministic","probabilistic","co_occurrence"],"description":"Evidence class of the match: `deterministic` (exact stored or hardware-rooted identifier that cannot collide between physical devices), `probabilistic` (fuzzy fingerprint evidence), or `co_occurrence` (shared network only, no device-identity claim)."},"recovery_similarity":{"type":"number","description":"Cosine similarity of the fingerprint-recovery match, rounded to 4 decimals. Present only when `match_source` is `recovered_high`."},"tls_ja4_corroborated":{"type":"boolean","description":"Whether the TLS JA4 fingerprints of the two observations agree — a server-observed signal the browser cannot spoof. Present only when `match_source` is `recovered_high`."},"recovery_gate_reason":{"type":"string","description":"Why the recovery match passed the false-positive hard gate: `hardware_root_match` (a hardware-rooted device identifier matched exactly) or, on configurations that admit probe-only evidence, `exact_composite_plus_\u003cn>_families` / `very_high_similarity_plus_\u003cn>_families`. Present only when `match_source` is `recovered_high`."}}}},"browser_version":{"oneOf":[{"type":"string"},{"type":"null"}]},"os_version":{"oneOf":[{"type":"string"},{"type":"null"}]},"user_agent":{"oneOf":[{"type":"string","description":"The browser's user agent string."},{"type":"null","description":"The browser's user agent string."}]},"accept_language":{"oneOf":[{"type":"string","description":"The `Accept-Language` header the browser sent."},{"type":"null","description":"The `Accept-Language` header the browser sent."}]},"session_identifier":{"oneOf":[{"type":"string","description":"Identifier of the browsing session the verification ran in."},{"type":"null","description":"Identifier of the browsing session the verification ran in."}]},"session_age_ms":{"oneOf":[{"type":"integer","description":"Age of that browsing session in milliseconds when the step ran."},{"type":"null","description":"Age of that browsing session in milliseconds when the step ran."}]},"coords_accuracy":{"oneOf":[{"type":"number","description":"Accuracy radius, in metres, of the coordinates the device reported."},{"type":"null","description":"Accuracy radius, in metres, of the coordinates the device reported."}]},"raw_device_data":{"oneOf":[{"type":"object","additionalProperties":true,"description":"Raw device signals collected for the step."},{"type":"null","additionalProperties":true,"description":"Raw device signals collected for the step."}]}}},"uniqueKey":"ip_analyses.oneOf.1","typeLabel":"null"}],"uniqueKey":"ip_analyses","typeLabel":"object[] | null"},"geolocation_checks":{"oneOf":[{"type":"array","description":"**Array of Location verification results**, one per Location verification step: that step's accepted attempt. `null` until a Location verification step has produced data. Earlier attempts of the same step are in `geolocation_attempts`.","items":{"type":"object","description":"One Location verification result, the accepted attempt of one workflow node. Measurement, uncertainty and authenticity are separate keys, so a precise unattested fix reads differently from an imprecise attested one.","properties":{"node_id":{"oneOf":[{"type":"string","description":"Workflow node that produced this result, so a workflow with two Location verification steps stays readable.","uniqueKey":"geolocation_checks.oneOf.0.items.[INDEX].node_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"Workflow node that produced this result, so a workflow with two Location verification steps stays readable.","uniqueKey":"geolocation_checks.oneOf.0.items.[INDEX].node_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"geolocation_checks.oneOf.0.items.[INDEX].node_id","typeLabel":"string | null"},"status":{"type":"string","enum":["Not Finished","Approved","Declined","In Review","Resub Requested"],"description":"Feature-level status of this Location verification step, resolved from its warnings. Independent of the session `status`.","uniqueKey":"geolocation_checks.oneOf.0.items.[INDEX].status","typeLabel":"enum\u003cstring>"},"outcome":{"oneOf":[{"type":"string","description":"What happened on this attempt.","enum":["verified","low_accuracy","accuracy_undetermined","stale","approximate","denied","restricted","unavailable","timeout","mock_detected","outside_geofence","in_blocked_area","anonymizer_detected","skipped","replay_rejected","unsupported_client",null],"uniqueKey":"geolocation_checks.oneOf.0.items.[INDEX].outcome.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","description":"What happened on this attempt.","enum":["verified","low_accuracy","accuracy_undetermined","stale","approximate","denied","restricted","unavailable","timeout","mock_detected","outside_geofence","in_blocked_area","anonymizer_detected","skipped","replay_rejected","unsupported_client",null],"uniqueKey":"geolocation_checks.oneOf.0.items.[INDEX].outcome.oneOf.1","typeLabel":"null"}],"uniqueKey":"geolocation_checks.oneOf.0.items.[INDEX].outcome","typeLabel":"enum\u003cstring> | null"},"permission":{"oneOf":[{"type":"string","description":"What the operating system or browser granted. `not_requested` means the step uses the connection's IP location only, so the person is never asked for a permission.","enum":["granted_precise","granted_approximate","denied","restricted","unavailable","timeout","dismissed","not_requested",null],"uniqueKey":"geolocation_checks.oneOf.0.items.[INDEX].permission.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","description":"What the operating system or browser granted. `not_requested` means the step uses the connection's IP location only, so the person is never asked for a permission.","enum":["granted_precise","granted_approximate","denied","restricted","unavailable","timeout","dismissed","not_requested",null],"uniqueKey":"geolocation_checks.oneOf.0.items.[INDEX].permission.oneOf.1","typeLabel":"null"}],"uniqueKey":"geolocation_checks.oneOf.0.items.[INDEX].permission","typeLabel":"enum\u003cstring> | null"},"latitude":{"oneOf":[{"type":"number","description":"WGS84 latitude of the fix. `null` when there is no fix.","format":"double","uniqueKey":"geolocation_checks.oneOf.0.items.[INDEX].latitude.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"null","description":"WGS84 latitude of the fix. `null` when there is no fix.","format":"double","uniqueKey":"geolocation_checks.oneOf.0.items.[INDEX].latitude.oneOf.1","typeLabel":"null"}],"uniqueKey":"geolocation_checks.oneOf.0.items.[INDEX].latitude","typeLabel":"number\u003cdouble> | null"},"longitude":{"oneOf":[{"type":"number","description":"WGS84 longitude of the fix. `null` when there is no fix.","format":"double","uniqueKey":"geolocation_checks.oneOf.0.items.[INDEX].longitude.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"null","description":"WGS84 longitude of the fix. `null` when there is no fix.","format":"double","uniqueKey":"geolocation_checks.oneOf.0.items.[INDEX].longitude.oneOf.1","typeLabel":"null"}],"uniqueKey":"geolocation_checks.oneOf.0.items.[INDEX].longitude","typeLabel":"number\u003cdouble> | null"},"accuracy_m":{"oneOf":[{"type":"number","description":"Radius of uncertainty in metres, at the confidence level in `accuracy_confidence`.","format":"double","uniqueKey":"geolocation_checks.oneOf.0.items.[INDEX].accuracy_m.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"null","description":"Radius of uncertainty in metres, at the confidence level in `accuracy_confidence`.","format":"double","uniqueKey":"geolocation_checks.oneOf.0.items.[INDEX].accuracy_m.oneOf.1","typeLabel":"null"}],"uniqueKey":"geolocation_checks.oneOf.0.items.[INDEX].accuracy_m","typeLabel":"number\u003cdouble> | null"},"accuracy_confidence":{"oneOf":[{"type":"string","description":"Confidence level the platform attaches to `accuracy_m`: `p95` (browsers), `p68` (Android) or `unspecified` (iOS).","enum":["p95","p68","unspecified",null],"uniqueKey":"geolocation_checks.oneOf.0.items.[INDEX].accuracy_confidence.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","description":"Confidence level the platform attaches to `accuracy_m`: `p95` (browsers), `p68` (Android) or `unspecified` (iOS).","enum":["p95","p68","unspecified",null],"uniqueKey":"geolocation_checks.oneOf.0.items.[INDEX].accuracy_confidence.oneOf.1","typeLabel":"null"}],"uniqueKey":"geolocation_checks.oneOf.0.items.[INDEX].accuracy_confidence","typeLabel":"enum\u003cstring> | null"},"measured_at":{"oneOf":[{"type":"string","description":"When the device took the fix, by its own clock.","format":"date-time","uniqueKey":"geolocation_checks.oneOf.0.items.[INDEX].measured_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","description":"When the device took the fix, by its own clock.","format":"date-time","uniqueKey":"geolocation_checks.oneOf.0.items.[INDEX].measured_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"geolocation_checks.oneOf.0.items.[INDEX].measured_at","typeLabel":"string\u003cdate-time> | null"},"age_seconds":{"oneOf":[{"type":"integer","description":"Seconds between the device taking the fix and Didit receiving it.","uniqueKey":"geolocation_checks.oneOf.0.items.[INDEX].age_seconds.oneOf.0","typeLabel":"integer"},{"type":"null","description":"Seconds between the device taking the fix and Didit receiving it.","uniqueKey":"geolocation_checks.oneOf.0.items.[INDEX].age_seconds.oneOf.1","typeLabel":"null"}],"uniqueKey":"geolocation_checks.oneOf.0.items.[INDEX].age_seconds","typeLabel":"integer | null"},"source":{"oneOf":[{"type":"string","description":"Where the fix came from, when the platform says. `ip` means the position is the connection's IP location.","enum":["gps","fused","network","wifi","cell","browser","unknown","ip",null],"uniqueKey":"geolocation_checks.oneOf.0.items.[INDEX].source.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","description":"Where the fix came from, when the platform says. `ip` means the position is the connection's IP location.","enum":["gps","fused","network","wifi","cell","browser","unknown","ip",null],"uniqueKey":"geolocation_checks.oneOf.0.items.[INDEX].source.oneOf.1","typeLabel":"null"}],"uniqueKey":"geolocation_checks.oneOf.0.items.[INDEX].source","typeLabel":"enum\u003cstring> | null"},"platform":{"oneOf":[{"type":"string","description":"The client that produced the fix.","enum":["web","ios","android","react_native","flutter",null],"uniqueKey":"geolocation_checks.oneOf.0.items.[INDEX].platform.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","description":"The client that produced the fix.","enum":["web","ios","android","react_native","flutter",null],"uniqueKey":"geolocation_checks.oneOf.0.items.[INDEX].platform.oneOf.1","typeLabel":"null"}],"uniqueKey":"geolocation_checks.oneOf.0.items.[INDEX].platform","typeLabel":"enum\u003cstring> | null"},"sdk_version":{"oneOf":[{"type":"string","description":"Version of the SDK that produced the fix.","uniqueKey":"geolocation_checks.oneOf.0.items.[INDEX].sdk_version.oneOf.0","typeLabel":"string"},{"type":"null","description":"Version of the SDK that produced the fix.","uniqueKey":"geolocation_checks.oneOf.0.items.[INDEX].sdk_version.oneOf.1","typeLabel":"null"}],"uniqueKey":"geolocation_checks.oneOf.0.items.[INDEX].sdk_version","typeLabel":"string | null"},"is_mock":{"oneOf":[{"type":"boolean","description":"`true` when the device says the fix came from a mock location provider or simulation software. `null` when the platform does not report it (browsers cannot tell); `null` is not `false`.","uniqueKey":"geolocation_checks.oneOf.0.items.[INDEX].is_mock.oneOf.0","typeLabel":"boolean"},{"type":"null","description":"`true` when the device says the fix came from a mock location provider or simulation software. `null` when the platform does not report it (browsers cannot tell); `null` is not `false`.","uniqueKey":"geolocation_checks.oneOf.0.items.[INDEX].is_mock.oneOf.1","typeLabel":"null"}],"uniqueKey":"geolocation_checks.oneOf.0.items.[INDEX].is_mock","typeLabel":"boolean | null"},"produced_by_accessory":{"oneOf":[{"type":"boolean","description":"iOS only: `true` when the fix came from an external accessory. `null` elsewhere.","uniqueKey":"geolocation_checks.oneOf.0.items.[INDEX].produced_by_accessory.oneOf.0","typeLabel":"boolean"},{"type":"null","description":"iOS only: `true` when the fix came from an external accessory. `null` elsewhere.","uniqueKey":"geolocation_checks.oneOf.0.items.[INDEX].produced_by_accessory.oneOf.1","typeLabel":"null"}],"uniqueKey":"geolocation_checks.oneOf.0.items.[INDEX].produced_by_accessory","typeLabel":"boolean | null"},"integrity":{"type":"string","enum":["attested","not_attested","failed","unsupported","not_determined"],"description":"Whether device attestation backs the fix. `unsupported` is what browsers report, because the web has no attestation mechanism; it is not a failure.","uniqueKey":"geolocation_checks.oneOf.0.items.[INDEX].integrity","typeLabel":"enum\u003cstring>"},"country_code":{"oneOf":[{"type":"string","description":"ISO 3166-1 alpha-2 country the fix is in.","uniqueKey":"geolocation_checks.oneOf.0.items.[INDEX].country_code.oneOf.0","typeLabel":"string"},{"type":"null","description":"ISO 3166-1 alpha-2 country the fix is in.","uniqueKey":"geolocation_checks.oneOf.0.items.[INDEX].country_code.oneOf.1","typeLabel":"null"}],"uniqueKey":"geolocation_checks.oneOf.0.items.[INDEX].country_code","typeLabel":"string | null"},"region_code":{"oneOf":[{"type":"string","description":"ISO 3166-2 subdivision the fix is in.","uniqueKey":"geolocation_checks.oneOf.0.items.[INDEX].region_code.oneOf.0","typeLabel":"string"},{"type":"null","description":"ISO 3166-2 subdivision the fix is in.","uniqueKey":"geolocation_checks.oneOf.0.items.[INDEX].region_code.oneOf.1","typeLabel":"null"}],"uniqueKey":"geolocation_checks.oneOf.0.items.[INDEX].region_code","typeLabel":"string | null"},"city":{"oneOf":[{"type":"string","description":"Nearest populated place, a label for reviewers.","uniqueKey":"geolocation_checks.oneOf.0.items.[INDEX].city.oneOf.0","typeLabel":"string"},{"type":"null","description":"Nearest populated place, a label for reviewers.","uniqueKey":"geolocation_checks.oneOf.0.items.[INDEX].city.oneOf.1","typeLabel":"null"}],"uniqueKey":"geolocation_checks.oneOf.0.items.[INDEX].city","typeLabel":"string | null"},"geofence":{"type":"object","description":"Result of the country and area rules of the step.","properties":{"enabled":{"type":"boolean","description":"Whether the step applies any country or area rule.","uniqueKey":"geolocation_checks.oneOf.0.items.[INDEX].geofence.enabled","typeLabel":"boolean"},"result":{"oneOf":[{"type":"string","description":"Where the position sits relative to the rules. `undetermined` means the accuracy circle straddles the border or the position resolved to no country; it is not evidence of being outside.","enum":["inside","outside","undetermined",null],"uniqueKey":"geolocation_checks.oneOf.0.items.[INDEX].geofence.result.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","description":"Where the position sits relative to the rules. `undetermined` means the accuracy circle straddles the border or the position resolved to no country; it is not evidence of being outside.","enum":["inside","outside","undetermined",null],"uniqueKey":"geolocation_checks.oneOf.0.items.[INDEX].geofence.result.oneOf.1","typeLabel":"null"}],"uniqueKey":"geolocation_checks.oneOf.0.items.[INDEX].geofence.result","typeLabel":"enum\u003cstring> | null"}},"uniqueKey":"geolocation_checks.oneOf.0.items.[INDEX].geofence","typeLabel":"object"},"inside_geofence":{"oneOf":[{"type":"boolean","description":"`true` when `geofence.result` is `inside`, `false` when `outside`, `null` otherwise.","uniqueKey":"geolocation_checks.oneOf.0.items.[INDEX].inside_geofence.oneOf.0","typeLabel":"boolean"},{"type":"null","description":"`true` when `geofence.result` is `inside`, `false` when `outside`, `null` otherwise.","uniqueKey":"geolocation_checks.oneOf.0.items.[INDEX].inside_geofence.oneOf.1","typeLabel":"null"}],"uniqueKey":"geolocation_checks.oneOf.0.items.[INDEX].inside_geofence","typeLabel":"boolean | null"},"geofence_basis":{"oneOf":[{"type":"string","description":"Which position the area result was judged from: the `device` fix, or the connection's `ip` location.","enum":["device","ip",null],"uniqueKey":"geolocation_checks.oneOf.0.items.[INDEX].geofence_basis.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","description":"Which position the area result was judged from: the `device` fix, or the connection's `ip` location.","enum":["device","ip",null],"uniqueKey":"geolocation_checks.oneOf.0.items.[INDEX].geofence_basis.oneOf.1","typeLabel":"null"}],"uniqueKey":"geolocation_checks.oneOf.0.items.[INDEX].geofence_basis","typeLabel":"enum\u003cstring> | null"},"inside_areas":{"type":"array","items":{"type":"string","uniqueKey":"geolocation_checks.oneOf.0.items.[INDEX].inside_areas.items.[INDEX]","typeLabel":"string"},"description":"Ids of the configured allowed areas the position is inside.","uniqueKey":"geolocation_checks.oneOf.0.items.[INDEX].inside_areas","typeLabel":"string[]"},"blocked_areas":{"type":"array","items":{"type":"string","uniqueKey":"geolocation_checks.oneOf.0.items.[INDEX].blocked_areas.items.[INDEX]","typeLabel":"string"},"description":"Ids of the configured blocked areas the position is in.","uniqueKey":"geolocation_checks.oneOf.0.items.[INDEX].blocked_areas","typeLabel":"string[]"},"position_source":{"oneOf":[{"type":"string","description":"Where the step takes the position from, as configured: the device checked against the IP location, the device only, or the IP location only.","enum":["device_and_ip","device_only","ip_only",null],"uniqueKey":"geolocation_checks.oneOf.0.items.[INDEX].position_source.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","description":"Where the step takes the position from, as configured: the device checked against the IP location, the device only, or the IP location only.","enum":["device_and_ip","device_only","ip_only",null],"uniqueKey":"geolocation_checks.oneOf.0.items.[INDEX].position_source.oneOf.1","typeLabel":"null"}],"uniqueKey":"geolocation_checks.oneOf.0.items.[INDEX].position_source","typeLabel":"enum\u003cstring> | null"},"anonymizers":{"oneOf":[{"type":"object","description":"What the connection and device look like, each `true`, `false` or `null` when the source cannot tell.","properties":{"vpn":{"oneOf":[{"type":"boolean","uniqueKey":"geolocation_checks.oneOf.0.items.[INDEX].anonymizers.oneOf.0.vpn.oneOf.0","typeLabel":"boolean"},{"type":"null","uniqueKey":"geolocation_checks.oneOf.0.items.[INDEX].anonymizers.oneOf.0.vpn.oneOf.1","typeLabel":"null"}],"uniqueKey":"geolocation_checks.oneOf.0.items.[INDEX].anonymizers.oneOf.0.vpn","typeLabel":"boolean | null"},"proxy":{"oneOf":[{"type":"boolean","uniqueKey":"geolocation_checks.oneOf.0.items.[INDEX].anonymizers.oneOf.0.proxy.oneOf.0","typeLabel":"boolean"},{"type":"null","uniqueKey":"geolocation_checks.oneOf.0.items.[INDEX].anonymizers.oneOf.0.proxy.oneOf.1","typeLabel":"null"}],"uniqueKey":"geolocation_checks.oneOf.0.items.[INDEX].anonymizers.oneOf.0.proxy","typeLabel":"boolean | null"},"tor":{"oneOf":[{"type":"boolean","uniqueKey":"geolocation_checks.oneOf.0.items.[INDEX].anonymizers.oneOf.0.tor.oneOf.0","typeLabel":"boolean"},{"type":"null","uniqueKey":"geolocation_checks.oneOf.0.items.[INDEX].anonymizers.oneOf.0.tor.oneOf.1","typeLabel":"null"}],"uniqueKey":"geolocation_checks.oneOf.0.items.[INDEX].anonymizers.oneOf.0.tor","typeLabel":"boolean | null"},"spoofing":{"oneOf":[{"type":"boolean","uniqueKey":"geolocation_checks.oneOf.0.items.[INDEX].anonymizers.oneOf.0.spoofing.oneOf.0","typeLabel":"boolean"},{"type":"null","uniqueKey":"geolocation_checks.oneOf.0.items.[INDEX].anonymizers.oneOf.0.spoofing.oneOf.1","typeLabel":"null"}],"uniqueKey":"geolocation_checks.oneOf.0.items.[INDEX].anonymizers.oneOf.0.spoofing","typeLabel":"boolean | null"},"emulator":{"oneOf":[{"type":"boolean","uniqueKey":"geolocation_checks.oneOf.0.items.[INDEX].anonymizers.oneOf.0.emulator.oneOf.0","typeLabel":"boolean"},{"type":"null","uniqueKey":"geolocation_checks.oneOf.0.items.[INDEX].anonymizers.oneOf.0.emulator.oneOf.1","typeLabel":"null"}],"uniqueKey":"geolocation_checks.oneOf.0.items.[INDEX].anonymizers.oneOf.0.emulator","typeLabel":"boolean | null"}},"uniqueKey":"geolocation_checks.oneOf.0.items.[INDEX].anonymizers.oneOf.0","typeLabel":"object"},{"type":"null","description":"What the connection and device look like, each `true`, `false` or `null` when the source cannot tell.","properties":{"vpn":{"oneOf":[{"type":"boolean"},{"type":"null"}]},"proxy":{"oneOf":[{"type":"boolean"},{"type":"null"}]},"tor":{"oneOf":[{"type":"boolean"},{"type":"null"}]},"spoofing":{"oneOf":[{"type":"boolean"},{"type":"null"}]},"emulator":{"oneOf":[{"type":"boolean"},{"type":"null"}]}},"uniqueKey":"geolocation_checks.oneOf.0.items.[INDEX].anonymizers.oneOf.1","typeLabel":"null"}],"uniqueKey":"geolocation_checks.oneOf.0.items.[INDEX].anonymizers","typeLabel":"object | null"},"ip_distance_km":{"oneOf":[{"type":"number","description":"Distance to the session's IP location after both uncertainty radii are subtracted; `0` when they overlap.","format":"double","uniqueKey":"geolocation_checks.oneOf.0.items.[INDEX].ip_distance_km.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"null","description":"Distance to the session's IP location after both uncertainty radii are subtracted; `0` when they overlap.","format":"double","uniqueKey":"geolocation_checks.oneOf.0.items.[INDEX].ip_distance_km.oneOf.1","typeLabel":"null"}],"uniqueKey":"geolocation_checks.oneOf.0.items.[INDEX].ip_distance_km","typeLabel":"number\u003cdouble> | null"},"ip_distance_uncertainty_km":{"oneOf":[{"type":"number","description":"Combined radius that was subtracted: the IP location's radius plus this fix's accuracy.","format":"double","uniqueKey":"geolocation_checks.oneOf.0.items.[INDEX].ip_distance_uncertainty_km.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"null","description":"Combined radius that was subtracted: the IP location's radius plus this fix's accuracy.","format":"double","uniqueKey":"geolocation_checks.oneOf.0.items.[INDEX].ip_distance_uncertainty_km.oneOf.1","typeLabel":"null"}],"uniqueKey":"geolocation_checks.oneOf.0.items.[INDEX].ip_distance_uncertainty_km","typeLabel":"number\u003cdouble> | null"},"ip_consistent":{"oneOf":[{"type":"boolean","description":"Whether `ip_distance_km` is within the distance configured on the step. `null` when either side is unknown.","uniqueKey":"geolocation_checks.oneOf.0.items.[INDEX].ip_consistent.oneOf.0","typeLabel":"boolean"},{"type":"null","description":"Whether `ip_distance_km` is within the distance configured on the step. `null` when either side is unknown.","uniqueKey":"geolocation_checks.oneOf.0.items.[INDEX].ip_consistent.oneOf.1","typeLabel":"null"}],"uniqueKey":"geolocation_checks.oneOf.0.items.[INDEX].ip_consistent","typeLabel":"boolean | null"},"document_distance_km":{"oneOf":[{"type":"number","description":"Distance to the geocoded address on the ID document or proof of address. `null` when no address is on file.","format":"double","uniqueKey":"geolocation_checks.oneOf.0.items.[INDEX].document_distance_km.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"null","description":"Distance to the geocoded address on the ID document or proof of address. `null` when no address is on file.","format":"double","uniqueKey":"geolocation_checks.oneOf.0.items.[INDEX].document_distance_km.oneOf.1","typeLabel":"null"}],"uniqueKey":"geolocation_checks.oneOf.0.items.[INDEX].document_distance_km","typeLabel":"number\u003cdouble> | null"},"travel_excused":{"oneOf":[{"type":"boolean","description":"Whether the step's travel tolerance excused the distance from the address. `null` when tolerance is off.","uniqueKey":"geolocation_checks.oneOf.0.items.[INDEX].travel_excused.oneOf.0","typeLabel":"boolean"},{"type":"null","description":"Whether the step's travel tolerance excused the distance from the address. `null` when tolerance is off.","uniqueKey":"geolocation_checks.oneOf.0.items.[INDEX].travel_excused.oneOf.1","typeLabel":"null"}],"uniqueKey":"geolocation_checks.oneOf.0.items.[INDEX].travel_excused","typeLabel":"boolean | null"},"consecutive_mismatches":{"oneOf":[{"type":"integer","description":"On the final attempt: this check plus the same person's earlier mismatches in a row.","uniqueKey":"geolocation_checks.oneOf.0.items.[INDEX].consecutive_mismatches.oneOf.0","typeLabel":"integer"},{"type":"null","description":"On the final attempt: this check plus the same person's earlier mismatches in a row.","uniqueKey":"geolocation_checks.oneOf.0.items.[INDEX].consecutive_mismatches.oneOf.1","typeLabel":"null"}],"uniqueKey":"geolocation_checks.oneOf.0.items.[INDEX].consecutive_mismatches","typeLabel":"integer | null"},"attempts":{"type":"integer","description":"Number of this attempt within the node, starting at 1.","uniqueKey":"geolocation_checks.oneOf.0.items.[INDEX].attempts","typeLabel":"integer"},"consent":{"oneOf":[{"type":"object","description":"The consent the person gave before the system prompt, recorded with the wording version and language they saw.","properties":{"accepted_at":{"type":"string","format":"date-time","uniqueKey":"geolocation_checks.oneOf.0.items.[INDEX].consent.oneOf.0.accepted_at","typeLabel":"string\u003cdate-time>"},"version":{"oneOf":[{"type":"string","uniqueKey":"geolocation_checks.oneOf.0.items.[INDEX].consent.oneOf.0.version.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"geolocation_checks.oneOf.0.items.[INDEX].consent.oneOf.0.version.oneOf.1","typeLabel":"null"}],"uniqueKey":"geolocation_checks.oneOf.0.items.[INDEX].consent.oneOf.0.version","typeLabel":"string | null"},"locale":{"oneOf":[{"type":"string","uniqueKey":"geolocation_checks.oneOf.0.items.[INDEX].consent.oneOf.0.locale.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"geolocation_checks.oneOf.0.items.[INDEX].consent.oneOf.0.locale.oneOf.1","typeLabel":"null"}],"uniqueKey":"geolocation_checks.oneOf.0.items.[INDEX].consent.oneOf.0.locale","typeLabel":"string | null"}},"uniqueKey":"geolocation_checks.oneOf.0.items.[INDEX].consent.oneOf.0","typeLabel":"object"},{"type":"null","description":"The consent the person gave before the system prompt, recorded with the wording version and language they saw.","properties":{"accepted_at":{"type":"string","format":"date-time"},"version":{"oneOf":[{"type":"string"},{"type":"null"}]},"locale":{"oneOf":[{"type":"string"},{"type":"null"}]}},"uniqueKey":"geolocation_checks.oneOf.0.items.[INDEX].consent.oneOf.1","typeLabel":"null"}],"uniqueKey":"geolocation_checks.oneOf.0.items.[INDEX].consent","typeLabel":"object | null"},"warnings":{"type":"array","items":{"type":"object","properties":{"feature":{"type":"string","enum":["ID_VERIFICATION","NFC","LIVENESS","FACEMATCH","PROOF_OF_ADDRESS","PHONE","EMAIL","AML","LOCATION","DATABASE_VALIDATION","QUESTIONNAIRE","DOCUMENT_AI","KYB_REGISTRY","KYB_DOCUMENTS","KYB_KEY_PEOPLE","GEOLOCATION","SIGNATURE"],"description":"The feature that generated this warning. The value identifies the feature block the warning belongs to. Each module's warnings array typically uses the value matching its module (e.g. `PHONE` inside `phone_verifications[].warnings`), but the enum above is authoritative across all feature warnings on the decision payload.","uniqueKey":"geolocation_checks.oneOf.0.items.[INDEX].warnings.items.[INDEX].feature","typeLabel":"enum\u003cstring>"},"risk":{"type":"string","uniqueKey":"geolocation_checks.oneOf.0.items.[INDEX].warnings.items.[INDEX].risk","typeLabel":"string"},"additional_data":{"oneOf":[{"type":"object","uniqueKey":"geolocation_checks.oneOf.0.items.[INDEX].warnings.items.[INDEX].additional_data.oneOf.0","typeLabel":"object"},{"type":"null","uniqueKey":"geolocation_checks.oneOf.0.items.[INDEX].warnings.items.[INDEX].additional_data.oneOf.1","typeLabel":"null"}],"uniqueKey":"geolocation_checks.oneOf.0.items.[INDEX].warnings.items.[INDEX].additional_data","typeLabel":"object | null"},"log_type":{"type":"string","uniqueKey":"geolocation_checks.oneOf.0.items.[INDEX].warnings.items.[INDEX].log_type","typeLabel":"string"},"short_description":{"type":"string","uniqueKey":"geolocation_checks.oneOf.0.items.[INDEX].warnings.items.[INDEX].short_description","typeLabel":"string"},"long_description":{"type":"string","uniqueKey":"geolocation_checks.oneOf.0.items.[INDEX].warnings.items.[INDEX].long_description","typeLabel":"string"},"node_id":{"type":"string","description":"The workflow graph node ID that generated this warning","uniqueKey":"geolocation_checks.oneOf.0.items.[INDEX].warnings.items.[INDEX].node_id","typeLabel":"string"}},"uniqueKey":"geolocation_checks.oneOf.0.items.[INDEX].warnings.items.[INDEX]","typeLabel":"object"},"description":"Warnings this Location verification step raised, with `feature` set to `GEOLOCATION`. Warning codes start with `LOCATION_`.","uniqueKey":"geolocation_checks.oneOf.0.items.[INDEX].warnings","typeLabel":"object[]"}},"uniqueKey":"geolocation_checks.oneOf.0.items.[INDEX]","typeLabel":"object"},"uniqueKey":"geolocation_checks.oneOf.0","typeLabel":"object[]"},{"type":"null","description":"**Array of Location verification results**, one per Location verification step: that step's accepted attempt. `null` until a Location verification step has produced data. Earlier attempts of the same step are in `geolocation_attempts`.","items":{"type":"object","description":"One Location verification result, the accepted attempt of one workflow node. Measurement, uncertainty and authenticity are separate keys, so a precise unattested fix reads differently from an imprecise attested one.","properties":{"node_id":{"oneOf":[{"type":"string","description":"Workflow node that produced this result, so a workflow with two Location verification steps stays readable."},{"type":"null","description":"Workflow node that produced this result, so a workflow with two Location verification steps stays readable."}]},"status":{"type":"string","enum":["Not Finished","Approved","Declined","In Review","Resub Requested"],"description":"Feature-level status of this Location verification step, resolved from its warnings. Independent of the session `status`."},"outcome":{"oneOf":[{"type":"string","description":"What happened on this attempt.","enum":["verified","low_accuracy","accuracy_undetermined","stale","approximate","denied","restricted","unavailable","timeout","mock_detected","outside_geofence","in_blocked_area","anonymizer_detected","skipped","replay_rejected","unsupported_client",null]},{"type":"null","description":"What happened on this attempt.","enum":["verified","low_accuracy","accuracy_undetermined","stale","approximate","denied","restricted","unavailable","timeout","mock_detected","outside_geofence","in_blocked_area","anonymizer_detected","skipped","replay_rejected","unsupported_client",null]}]},"permission":{"oneOf":[{"type":"string","description":"What the operating system or browser granted. `not_requested` means the step uses the connection's IP location only, so the person is never asked for a permission.","enum":["granted_precise","granted_approximate","denied","restricted","unavailable","timeout","dismissed","not_requested",null]},{"type":"null","description":"What the operating system or browser granted. `not_requested` means the step uses the connection's IP location only, so the person is never asked for a permission.","enum":["granted_precise","granted_approximate","denied","restricted","unavailable","timeout","dismissed","not_requested",null]}]},"latitude":{"oneOf":[{"type":"number","description":"WGS84 latitude of the fix. `null` when there is no fix.","format":"double"},{"type":"null","description":"WGS84 latitude of the fix. `null` when there is no fix.","format":"double"}]},"longitude":{"oneOf":[{"type":"number","description":"WGS84 longitude of the fix. `null` when there is no fix.","format":"double"},{"type":"null","description":"WGS84 longitude of the fix. `null` when there is no fix.","format":"double"}]},"accuracy_m":{"oneOf":[{"type":"number","description":"Radius of uncertainty in metres, at the confidence level in `accuracy_confidence`.","format":"double"},{"type":"null","description":"Radius of uncertainty in metres, at the confidence level in `accuracy_confidence`.","format":"double"}]},"accuracy_confidence":{"oneOf":[{"type":"string","description":"Confidence level the platform attaches to `accuracy_m`: `p95` (browsers), `p68` (Android) or `unspecified` (iOS).","enum":["p95","p68","unspecified",null]},{"type":"null","description":"Confidence level the platform attaches to `accuracy_m`: `p95` (browsers), `p68` (Android) or `unspecified` (iOS).","enum":["p95","p68","unspecified",null]}]},"measured_at":{"oneOf":[{"type":"string","description":"When the device took the fix, by its own clock.","format":"date-time"},{"type":"null","description":"When the device took the fix, by its own clock.","format":"date-time"}]},"age_seconds":{"oneOf":[{"type":"integer","description":"Seconds between the device taking the fix and Didit receiving it."},{"type":"null","description":"Seconds between the device taking the fix and Didit receiving it."}]},"source":{"oneOf":[{"type":"string","description":"Where the fix came from, when the platform says. `ip` means the position is the connection's IP location.","enum":["gps","fused","network","wifi","cell","browser","unknown","ip",null]},{"type":"null","description":"Where the fix came from, when the platform says. `ip` means the position is the connection's IP location.","enum":["gps","fused","network","wifi","cell","browser","unknown","ip",null]}]},"platform":{"oneOf":[{"type":"string","description":"The client that produced the fix.","enum":["web","ios","android","react_native","flutter",null]},{"type":"null","description":"The client that produced the fix.","enum":["web","ios","android","react_native","flutter",null]}]},"sdk_version":{"oneOf":[{"type":"string","description":"Version of the SDK that produced the fix."},{"type":"null","description":"Version of the SDK that produced the fix."}]},"is_mock":{"oneOf":[{"type":"boolean","description":"`true` when the device says the fix came from a mock location provider or simulation software. `null` when the platform does not report it (browsers cannot tell); `null` is not `false`."},{"type":"null","description":"`true` when the device says the fix came from a mock location provider or simulation software. `null` when the platform does not report it (browsers cannot tell); `null` is not `false`."}]},"produced_by_accessory":{"oneOf":[{"type":"boolean","description":"iOS only: `true` when the fix came from an external accessory. `null` elsewhere."},{"type":"null","description":"iOS only: `true` when the fix came from an external accessory. `null` elsewhere."}]},"integrity":{"type":"string","enum":["attested","not_attested","failed","unsupported","not_determined"],"description":"Whether device attestation backs the fix. `unsupported` is what browsers report, because the web has no attestation mechanism; it is not a failure."},"country_code":{"oneOf":[{"type":"string","description":"ISO 3166-1 alpha-2 country the fix is in."},{"type":"null","description":"ISO 3166-1 alpha-2 country the fix is in."}]},"region_code":{"oneOf":[{"type":"string","description":"ISO 3166-2 subdivision the fix is in."},{"type":"null","description":"ISO 3166-2 subdivision the fix is in."}]},"city":{"oneOf":[{"type":"string","description":"Nearest populated place, a label for reviewers."},{"type":"null","description":"Nearest populated place, a label for reviewers."}]},"geofence":{"type":"object","description":"Result of the country and area rules of the step.","properties":{"enabled":{"type":"boolean","description":"Whether the step applies any country or area rule."},"result":{"oneOf":[{"type":"string","description":"Where the position sits relative to the rules. `undetermined` means the accuracy circle straddles the border or the position resolved to no country; it is not evidence of being outside.","enum":["inside","outside","undetermined",null]},{"type":"null","description":"Where the position sits relative to the rules. `undetermined` means the accuracy circle straddles the border or the position resolved to no country; it is not evidence of being outside.","enum":["inside","outside","undetermined",null]}]}}},"inside_geofence":{"oneOf":[{"type":"boolean","description":"`true` when `geofence.result` is `inside`, `false` when `outside`, `null` otherwise."},{"type":"null","description":"`true` when `geofence.result` is `inside`, `false` when `outside`, `null` otherwise."}]},"geofence_basis":{"oneOf":[{"type":"string","description":"Which position the area result was judged from: the `device` fix, or the connection's `ip` location.","enum":["device","ip",null]},{"type":"null","description":"Which position the area result was judged from: the `device` fix, or the connection's `ip` location.","enum":["device","ip",null]}]},"inside_areas":{"type":"array","items":{"type":"string"},"description":"Ids of the configured allowed areas the position is inside."},"blocked_areas":{"type":"array","items":{"type":"string"},"description":"Ids of the configured blocked areas the position is in."},"position_source":{"oneOf":[{"type":"string","description":"Where the step takes the position from, as configured: the device checked against the IP location, the device only, or the IP location only.","enum":["device_and_ip","device_only","ip_only",null]},{"type":"null","description":"Where the step takes the position from, as configured: the device checked against the IP location, the device only, or the IP location only.","enum":["device_and_ip","device_only","ip_only",null]}]},"anonymizers":{"oneOf":[{"type":"object","description":"What the connection and device look like, each `true`, `false` or `null` when the source cannot tell.","properties":{"vpn":{"oneOf":[{"type":"boolean"},{"type":"null"}]},"proxy":{"oneOf":[{"type":"boolean"},{"type":"null"}]},"tor":{"oneOf":[{"type":"boolean"},{"type":"null"}]},"spoofing":{"oneOf":[{"type":"boolean"},{"type":"null"}]},"emulator":{"oneOf":[{"type":"boolean"},{"type":"null"}]}}},{"type":"null","description":"What the connection and device look like, each `true`, `false` or `null` when the source cannot tell.","properties":{"vpn":{"oneOf":[{"type":"boolean"},{"type":"null"}]},"proxy":{"oneOf":[{"type":"boolean"},{"type":"null"}]},"tor":{"oneOf":[{"type":"boolean"},{"type":"null"}]},"spoofing":{"oneOf":[{"type":"boolean"},{"type":"null"}]},"emulator":{"oneOf":[{"type":"boolean"},{"type":"null"}]}}}]},"ip_distance_km":{"oneOf":[{"type":"number","description":"Distance to the session's IP location after both uncertainty radii are subtracted; `0` when they overlap.","format":"double"},{"type":"null","description":"Distance to the session's IP location after both uncertainty radii are subtracted; `0` when they overlap.","format":"double"}]},"ip_distance_uncertainty_km":{"oneOf":[{"type":"number","description":"Combined radius that was subtracted: the IP location's radius plus this fix's accuracy.","format":"double"},{"type":"null","description":"Combined radius that was subtracted: the IP location's radius plus this fix's accuracy.","format":"double"}]},"ip_consistent":{"oneOf":[{"type":"boolean","description":"Whether `ip_distance_km` is within the distance configured on the step. `null` when either side is unknown."},{"type":"null","description":"Whether `ip_distance_km` is within the distance configured on the step. `null` when either side is unknown."}]},"document_distance_km":{"oneOf":[{"type":"number","description":"Distance to the geocoded address on the ID document or proof of address. `null` when no address is on file.","format":"double"},{"type":"null","description":"Distance to the geocoded address on the ID document or proof of address. `null` when no address is on file.","format":"double"}]},"travel_excused":{"oneOf":[{"type":"boolean","description":"Whether the step's travel tolerance excused the distance from the address. `null` when tolerance is off."},{"type":"null","description":"Whether the step's travel tolerance excused the distance from the address. `null` when tolerance is off."}]},"consecutive_mismatches":{"oneOf":[{"type":"integer","description":"On the final attempt: this check plus the same person's earlier mismatches in a row."},{"type":"null","description":"On the final attempt: this check plus the same person's earlier mismatches in a row."}]},"attempts":{"type":"integer","description":"Number of this attempt within the node, starting at 1."},"consent":{"oneOf":[{"type":"object","description":"The consent the person gave before the system prompt, recorded with the wording version and language they saw.","properties":{"accepted_at":{"type":"string","format":"date-time"},"version":{"oneOf":[{"type":"string"},{"type":"null"}]},"locale":{"oneOf":[{"type":"string"},{"type":"null"}]}}},{"type":"null","description":"The consent the person gave before the system prompt, recorded with the wording version and language they saw.","properties":{"accepted_at":{"type":"string","format":"date-time"},"version":{"oneOf":[{"type":"string"},{"type":"null"}]},"locale":{"oneOf":[{"type":"string"},{"type":"null"}]}}}]},"warnings":{"type":"array","items":{"type":"object","properties":{"feature":{"type":"string","enum":["ID_VERIFICATION","NFC","LIVENESS","FACEMATCH","PROOF_OF_ADDRESS","PHONE","EMAIL","AML","LOCATION","DATABASE_VALIDATION","QUESTIONNAIRE","DOCUMENT_AI","KYB_REGISTRY","KYB_DOCUMENTS","KYB_KEY_PEOPLE","GEOLOCATION","SIGNATURE"],"description":"The feature that generated this warning. The value identifies the feature block the warning belongs to. Each module's warnings array typically uses the value matching its module (e.g. `PHONE` inside `phone_verifications[].warnings`), but the enum above is authoritative across all feature warnings on the decision payload."},"risk":{"type":"string"},"additional_data":{"oneOf":[{"type":"object"},{"type":"null"}]},"log_type":{"type":"string"},"short_description":{"type":"string"},"long_description":{"type":"string"},"node_id":{"type":"string","description":"The workflow graph node ID that generated this warning"}}},"description":"Warnings this Location verification step raised, with `feature` set to `GEOLOCATION`. Warning codes start with `LOCATION_`."}}},"uniqueKey":"geolocation_checks.oneOf.1","typeLabel":"null"}],"uniqueKey":"geolocation_checks","typeLabel":"object[] | null"},"geolocation_attempts":{"oneOf":[{"type":"array","description":"Every attempt of every Location verification step of this session, oldest first. Attempts that a resubmission replaced are left out. A workflow that withholds `geolocation_checks` through its response attributes withholds this list too.","items":{"type":"object","description":"One attempt of a Location verification step: the same keys as `geolocation_checks[]` except `warnings`, plus when Didit received it.","properties":{"node_id":{"oneOf":[{"type":"string","description":"Workflow node that produced this result, so a workflow with two Location verification steps stays readable.","uniqueKey":"geolocation_attempts.oneOf.0.items.[INDEX].node_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"Workflow node that produced this result, so a workflow with two Location verification steps stays readable.","uniqueKey":"geolocation_attempts.oneOf.0.items.[INDEX].node_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"geolocation_attempts.oneOf.0.items.[INDEX].node_id","typeLabel":"string | null"},"status":{"type":"string","enum":["Not Finished","Approved","Declined","In Review","Resub Requested"],"description":"Feature-level status of this Location verification step, resolved from its warnings. Independent of the session `status`.","uniqueKey":"geolocation_attempts.oneOf.0.items.[INDEX].status","typeLabel":"enum\u003cstring>"},"outcome":{"oneOf":[{"type":"string","description":"What happened on this attempt.","enum":["verified","low_accuracy","accuracy_undetermined","stale","approximate","denied","restricted","unavailable","timeout","mock_detected","outside_geofence","in_blocked_area","anonymizer_detected","skipped","replay_rejected","unsupported_client",null],"uniqueKey":"geolocation_attempts.oneOf.0.items.[INDEX].outcome.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","description":"What happened on this attempt.","enum":["verified","low_accuracy","accuracy_undetermined","stale","approximate","denied","restricted","unavailable","timeout","mock_detected","outside_geofence","in_blocked_area","anonymizer_detected","skipped","replay_rejected","unsupported_client",null],"uniqueKey":"geolocation_attempts.oneOf.0.items.[INDEX].outcome.oneOf.1","typeLabel":"null"}],"uniqueKey":"geolocation_attempts.oneOf.0.items.[INDEX].outcome","typeLabel":"enum\u003cstring> | null"},"permission":{"oneOf":[{"type":"string","description":"What the operating system or browser granted. `not_requested` means the step uses the connection's IP location only, so the person is never asked for a permission.","enum":["granted_precise","granted_approximate","denied","restricted","unavailable","timeout","dismissed","not_requested",null],"uniqueKey":"geolocation_attempts.oneOf.0.items.[INDEX].permission.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","description":"What the operating system or browser granted. `not_requested` means the step uses the connection's IP location only, so the person is never asked for a permission.","enum":["granted_precise","granted_approximate","denied","restricted","unavailable","timeout","dismissed","not_requested",null],"uniqueKey":"geolocation_attempts.oneOf.0.items.[INDEX].permission.oneOf.1","typeLabel":"null"}],"uniqueKey":"geolocation_attempts.oneOf.0.items.[INDEX].permission","typeLabel":"enum\u003cstring> | null"},"latitude":{"oneOf":[{"type":"number","description":"WGS84 latitude of the fix. `null` when there is no fix.","format":"double","uniqueKey":"geolocation_attempts.oneOf.0.items.[INDEX].latitude.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"null","description":"WGS84 latitude of the fix. `null` when there is no fix.","format":"double","uniqueKey":"geolocation_attempts.oneOf.0.items.[INDEX].latitude.oneOf.1","typeLabel":"null"}],"uniqueKey":"geolocation_attempts.oneOf.0.items.[INDEX].latitude","typeLabel":"number\u003cdouble> | null"},"longitude":{"oneOf":[{"type":"number","description":"WGS84 longitude of the fix. `null` when there is no fix.","format":"double","uniqueKey":"geolocation_attempts.oneOf.0.items.[INDEX].longitude.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"null","description":"WGS84 longitude of the fix. `null` when there is no fix.","format":"double","uniqueKey":"geolocation_attempts.oneOf.0.items.[INDEX].longitude.oneOf.1","typeLabel":"null"}],"uniqueKey":"geolocation_attempts.oneOf.0.items.[INDEX].longitude","typeLabel":"number\u003cdouble> | null"},"accuracy_m":{"oneOf":[{"type":"number","description":"Radius of uncertainty in metres, at the confidence level in `accuracy_confidence`.","format":"double","uniqueKey":"geolocation_attempts.oneOf.0.items.[INDEX].accuracy_m.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"null","description":"Radius of uncertainty in metres, at the confidence level in `accuracy_confidence`.","format":"double","uniqueKey":"geolocation_attempts.oneOf.0.items.[INDEX].accuracy_m.oneOf.1","typeLabel":"null"}],"uniqueKey":"geolocation_attempts.oneOf.0.items.[INDEX].accuracy_m","typeLabel":"number\u003cdouble> | null"},"accuracy_confidence":{"oneOf":[{"type":"string","description":"Confidence level the platform attaches to `accuracy_m`: `p95` (browsers), `p68` (Android) or `unspecified` (iOS).","enum":["p95","p68","unspecified",null],"uniqueKey":"geolocation_attempts.oneOf.0.items.[INDEX].accuracy_confidence.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","description":"Confidence level the platform attaches to `accuracy_m`: `p95` (browsers), `p68` (Android) or `unspecified` (iOS).","enum":["p95","p68","unspecified",null],"uniqueKey":"geolocation_attempts.oneOf.0.items.[INDEX].accuracy_confidence.oneOf.1","typeLabel":"null"}],"uniqueKey":"geolocation_attempts.oneOf.0.items.[INDEX].accuracy_confidence","typeLabel":"enum\u003cstring> | null"},"measured_at":{"oneOf":[{"type":"string","description":"When the device took the fix, by its own clock.","format":"date-time","uniqueKey":"geolocation_attempts.oneOf.0.items.[INDEX].measured_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","description":"When the device took the fix, by its own clock.","format":"date-time","uniqueKey":"geolocation_attempts.oneOf.0.items.[INDEX].measured_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"geolocation_attempts.oneOf.0.items.[INDEX].measured_at","typeLabel":"string\u003cdate-time> | null"},"age_seconds":{"oneOf":[{"type":"integer","description":"Seconds between the device taking the fix and Didit receiving it.","uniqueKey":"geolocation_attempts.oneOf.0.items.[INDEX].age_seconds.oneOf.0","typeLabel":"integer"},{"type":"null","description":"Seconds between the device taking the fix and Didit receiving it.","uniqueKey":"geolocation_attempts.oneOf.0.items.[INDEX].age_seconds.oneOf.1","typeLabel":"null"}],"uniqueKey":"geolocation_attempts.oneOf.0.items.[INDEX].age_seconds","typeLabel":"integer | null"},"source":{"oneOf":[{"type":"string","description":"Where the fix came from, when the platform says. `ip` means the position is the connection's IP location.","enum":["gps","fused","network","wifi","cell","browser","unknown","ip",null],"uniqueKey":"geolocation_attempts.oneOf.0.items.[INDEX].source.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","description":"Where the fix came from, when the platform says. `ip` means the position is the connection's IP location.","enum":["gps","fused","network","wifi","cell","browser","unknown","ip",null],"uniqueKey":"geolocation_attempts.oneOf.0.items.[INDEX].source.oneOf.1","typeLabel":"null"}],"uniqueKey":"geolocation_attempts.oneOf.0.items.[INDEX].source","typeLabel":"enum\u003cstring> | null"},"platform":{"oneOf":[{"type":"string","description":"The client that produced the fix.","enum":["web","ios","android","react_native","flutter",null],"uniqueKey":"geolocation_attempts.oneOf.0.items.[INDEX].platform.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","description":"The client that produced the fix.","enum":["web","ios","android","react_native","flutter",null],"uniqueKey":"geolocation_attempts.oneOf.0.items.[INDEX].platform.oneOf.1","typeLabel":"null"}],"uniqueKey":"geolocation_attempts.oneOf.0.items.[INDEX].platform","typeLabel":"enum\u003cstring> | null"},"sdk_version":{"oneOf":[{"type":"string","description":"Version of the SDK that produced the fix.","uniqueKey":"geolocation_attempts.oneOf.0.items.[INDEX].sdk_version.oneOf.0","typeLabel":"string"},{"type":"null","description":"Version of the SDK that produced the fix.","uniqueKey":"geolocation_attempts.oneOf.0.items.[INDEX].sdk_version.oneOf.1","typeLabel":"null"}],"uniqueKey":"geolocation_attempts.oneOf.0.items.[INDEX].sdk_version","typeLabel":"string | null"},"is_mock":{"oneOf":[{"type":"boolean","description":"`true` when the device says the fix came from a mock location provider or simulation software. `null` when the platform does not report it (browsers cannot tell); `null` is not `false`.","uniqueKey":"geolocation_attempts.oneOf.0.items.[INDEX].is_mock.oneOf.0","typeLabel":"boolean"},{"type":"null","description":"`true` when the device says the fix came from a mock location provider or simulation software. `null` when the platform does not report it (browsers cannot tell); `null` is not `false`.","uniqueKey":"geolocation_attempts.oneOf.0.items.[INDEX].is_mock.oneOf.1","typeLabel":"null"}],"uniqueKey":"geolocation_attempts.oneOf.0.items.[INDEX].is_mock","typeLabel":"boolean | null"},"produced_by_accessory":{"oneOf":[{"type":"boolean","description":"iOS only: `true` when the fix came from an external accessory. `null` elsewhere.","uniqueKey":"geolocation_attempts.oneOf.0.items.[INDEX].produced_by_accessory.oneOf.0","typeLabel":"boolean"},{"type":"null","description":"iOS only: `true` when the fix came from an external accessory. `null` elsewhere.","uniqueKey":"geolocation_attempts.oneOf.0.items.[INDEX].produced_by_accessory.oneOf.1","typeLabel":"null"}],"uniqueKey":"geolocation_attempts.oneOf.0.items.[INDEX].produced_by_accessory","typeLabel":"boolean | null"},"integrity":{"type":"string","enum":["attested","not_attested","failed","unsupported","not_determined"],"description":"Whether device attestation backs the fix. `unsupported` is what browsers report, because the web has no attestation mechanism; it is not a failure.","uniqueKey":"geolocation_attempts.oneOf.0.items.[INDEX].integrity","typeLabel":"enum\u003cstring>"},"country_code":{"oneOf":[{"type":"string","description":"ISO 3166-1 alpha-2 country the fix is in.","uniqueKey":"geolocation_attempts.oneOf.0.items.[INDEX].country_code.oneOf.0","typeLabel":"string"},{"type":"null","description":"ISO 3166-1 alpha-2 country the fix is in.","uniqueKey":"geolocation_attempts.oneOf.0.items.[INDEX].country_code.oneOf.1","typeLabel":"null"}],"uniqueKey":"geolocation_attempts.oneOf.0.items.[INDEX].country_code","typeLabel":"string | null"},"region_code":{"oneOf":[{"type":"string","description":"ISO 3166-2 subdivision the fix is in.","uniqueKey":"geolocation_attempts.oneOf.0.items.[INDEX].region_code.oneOf.0","typeLabel":"string"},{"type":"null","description":"ISO 3166-2 subdivision the fix is in.","uniqueKey":"geolocation_attempts.oneOf.0.items.[INDEX].region_code.oneOf.1","typeLabel":"null"}],"uniqueKey":"geolocation_attempts.oneOf.0.items.[INDEX].region_code","typeLabel":"string | null"},"city":{"oneOf":[{"type":"string","description":"Nearest populated place, a label for reviewers.","uniqueKey":"geolocation_attempts.oneOf.0.items.[INDEX].city.oneOf.0","typeLabel":"string"},{"type":"null","description":"Nearest populated place, a label for reviewers.","uniqueKey":"geolocation_attempts.oneOf.0.items.[INDEX].city.oneOf.1","typeLabel":"null"}],"uniqueKey":"geolocation_attempts.oneOf.0.items.[INDEX].city","typeLabel":"string | null"},"geofence":{"type":"object","description":"Result of the country and area rules of the step.","properties":{"enabled":{"type":"boolean","description":"Whether the step applies any country or area rule.","uniqueKey":"geolocation_attempts.oneOf.0.items.[INDEX].geofence.enabled","typeLabel":"boolean"},"result":{"oneOf":[{"type":"string","description":"Where the position sits relative to the rules. `undetermined` means the accuracy circle straddles the border or the position resolved to no country; it is not evidence of being outside.","enum":["inside","outside","undetermined",null],"uniqueKey":"geolocation_attempts.oneOf.0.items.[INDEX].geofence.result.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","description":"Where the position sits relative to the rules. `undetermined` means the accuracy circle straddles the border or the position resolved to no country; it is not evidence of being outside.","enum":["inside","outside","undetermined",null],"uniqueKey":"geolocation_attempts.oneOf.0.items.[INDEX].geofence.result.oneOf.1","typeLabel":"null"}],"uniqueKey":"geolocation_attempts.oneOf.0.items.[INDEX].geofence.result","typeLabel":"enum\u003cstring> | null"}},"uniqueKey":"geolocation_attempts.oneOf.0.items.[INDEX].geofence","typeLabel":"object"},"inside_geofence":{"oneOf":[{"type":"boolean","description":"`true` when `geofence.result` is `inside`, `false` when `outside`, `null` otherwise.","uniqueKey":"geolocation_attempts.oneOf.0.items.[INDEX].inside_geofence.oneOf.0","typeLabel":"boolean"},{"type":"null","description":"`true` when `geofence.result` is `inside`, `false` when `outside`, `null` otherwise.","uniqueKey":"geolocation_attempts.oneOf.0.items.[INDEX].inside_geofence.oneOf.1","typeLabel":"null"}],"uniqueKey":"geolocation_attempts.oneOf.0.items.[INDEX].inside_geofence","typeLabel":"boolean | null"},"geofence_basis":{"oneOf":[{"type":"string","description":"Which position the area result was judged from: the `device` fix, or the connection's `ip` location.","enum":["device","ip",null],"uniqueKey":"geolocation_attempts.oneOf.0.items.[INDEX].geofence_basis.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","description":"Which position the area result was judged from: the `device` fix, or the connection's `ip` location.","enum":["device","ip",null],"uniqueKey":"geolocation_attempts.oneOf.0.items.[INDEX].geofence_basis.oneOf.1","typeLabel":"null"}],"uniqueKey":"geolocation_attempts.oneOf.0.items.[INDEX].geofence_basis","typeLabel":"enum\u003cstring> | null"},"inside_areas":{"type":"array","items":{"type":"string","uniqueKey":"geolocation_attempts.oneOf.0.items.[INDEX].inside_areas.items.[INDEX]","typeLabel":"string"},"description":"Ids of the configured allowed areas the position is inside.","uniqueKey":"geolocation_attempts.oneOf.0.items.[INDEX].inside_areas","typeLabel":"string[]"},"blocked_areas":{"type":"array","items":{"type":"string","uniqueKey":"geolocation_attempts.oneOf.0.items.[INDEX].blocked_areas.items.[INDEX]","typeLabel":"string"},"description":"Ids of the configured blocked areas the position is in.","uniqueKey":"geolocation_attempts.oneOf.0.items.[INDEX].blocked_areas","typeLabel":"string[]"},"position_source":{"oneOf":[{"type":"string","description":"Where the step takes the position from, as configured: the device checked against the IP location, the device only, or the IP location only.","enum":["device_and_ip","device_only","ip_only",null],"uniqueKey":"geolocation_attempts.oneOf.0.items.[INDEX].position_source.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","description":"Where the step takes the position from, as configured: the device checked against the IP location, the device only, or the IP location only.","enum":["device_and_ip","device_only","ip_only",null],"uniqueKey":"geolocation_attempts.oneOf.0.items.[INDEX].position_source.oneOf.1","typeLabel":"null"}],"uniqueKey":"geolocation_attempts.oneOf.0.items.[INDEX].position_source","typeLabel":"enum\u003cstring> | null"},"anonymizers":{"oneOf":[{"type":"object","description":"What the connection and device look like, each `true`, `false` or `null` when the source cannot tell.","properties":{"vpn":{"oneOf":[{"type":"boolean","uniqueKey":"geolocation_attempts.oneOf.0.items.[INDEX].anonymizers.oneOf.0.vpn.oneOf.0","typeLabel":"boolean"},{"type":"null","uniqueKey":"geolocation_attempts.oneOf.0.items.[INDEX].anonymizers.oneOf.0.vpn.oneOf.1","typeLabel":"null"}],"uniqueKey":"geolocation_attempts.oneOf.0.items.[INDEX].anonymizers.oneOf.0.vpn","typeLabel":"boolean | null"},"proxy":{"oneOf":[{"type":"boolean","uniqueKey":"geolocation_attempts.oneOf.0.items.[INDEX].anonymizers.oneOf.0.proxy.oneOf.0","typeLabel":"boolean"},{"type":"null","uniqueKey":"geolocation_attempts.oneOf.0.items.[INDEX].anonymizers.oneOf.0.proxy.oneOf.1","typeLabel":"null"}],"uniqueKey":"geolocation_attempts.oneOf.0.items.[INDEX].anonymizers.oneOf.0.proxy","typeLabel":"boolean | null"},"tor":{"oneOf":[{"type":"boolean","uniqueKey":"geolocation_attempts.oneOf.0.items.[INDEX].anonymizers.oneOf.0.tor.oneOf.0","typeLabel":"boolean"},{"type":"null","uniqueKey":"geolocation_attempts.oneOf.0.items.[INDEX].anonymizers.oneOf.0.tor.oneOf.1","typeLabel":"null"}],"uniqueKey":"geolocation_attempts.oneOf.0.items.[INDEX].anonymizers.oneOf.0.tor","typeLabel":"boolean | null"},"spoofing":{"oneOf":[{"type":"boolean","uniqueKey":"geolocation_attempts.oneOf.0.items.[INDEX].anonymizers.oneOf.0.spoofing.oneOf.0","typeLabel":"boolean"},{"type":"null","uniqueKey":"geolocation_attempts.oneOf.0.items.[INDEX].anonymizers.oneOf.0.spoofing.oneOf.1","typeLabel":"null"}],"uniqueKey":"geolocation_attempts.oneOf.0.items.[INDEX].anonymizers.oneOf.0.spoofing","typeLabel":"boolean | null"},"emulator":{"oneOf":[{"type":"boolean","uniqueKey":"geolocation_attempts.oneOf.0.items.[INDEX].anonymizers.oneOf.0.emulator.oneOf.0","typeLabel":"boolean"},{"type":"null","uniqueKey":"geolocation_attempts.oneOf.0.items.[INDEX].anonymizers.oneOf.0.emulator.oneOf.1","typeLabel":"null"}],"uniqueKey":"geolocation_attempts.oneOf.0.items.[INDEX].anonymizers.oneOf.0.emulator","typeLabel":"boolean | null"}},"uniqueKey":"geolocation_attempts.oneOf.0.items.[INDEX].anonymizers.oneOf.0","typeLabel":"object"},{"type":"null","description":"What the connection and device look like, each `true`, `false` or `null` when the source cannot tell.","properties":{"vpn":{"oneOf":[{"type":"boolean"},{"type":"null"}]},"proxy":{"oneOf":[{"type":"boolean"},{"type":"null"}]},"tor":{"oneOf":[{"type":"boolean"},{"type":"null"}]},"spoofing":{"oneOf":[{"type":"boolean"},{"type":"null"}]},"emulator":{"oneOf":[{"type":"boolean"},{"type":"null"}]}},"uniqueKey":"geolocation_attempts.oneOf.0.items.[INDEX].anonymizers.oneOf.1","typeLabel":"null"}],"uniqueKey":"geolocation_attempts.oneOf.0.items.[INDEX].anonymizers","typeLabel":"object | null"},"ip_distance_km":{"oneOf":[{"type":"number","description":"Distance to the session's IP location after both uncertainty radii are subtracted; `0` when they overlap.","format":"double","uniqueKey":"geolocation_attempts.oneOf.0.items.[INDEX].ip_distance_km.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"null","description":"Distance to the session's IP location after both uncertainty radii are subtracted; `0` when they overlap.","format":"double","uniqueKey":"geolocation_attempts.oneOf.0.items.[INDEX].ip_distance_km.oneOf.1","typeLabel":"null"}],"uniqueKey":"geolocation_attempts.oneOf.0.items.[INDEX].ip_distance_km","typeLabel":"number\u003cdouble> | null"},"ip_distance_uncertainty_km":{"oneOf":[{"type":"number","description":"Combined radius that was subtracted: the IP location's radius plus this fix's accuracy.","format":"double","uniqueKey":"geolocation_attempts.oneOf.0.items.[INDEX].ip_distance_uncertainty_km.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"null","description":"Combined radius that was subtracted: the IP location's radius plus this fix's accuracy.","format":"double","uniqueKey":"geolocation_attempts.oneOf.0.items.[INDEX].ip_distance_uncertainty_km.oneOf.1","typeLabel":"null"}],"uniqueKey":"geolocation_attempts.oneOf.0.items.[INDEX].ip_distance_uncertainty_km","typeLabel":"number\u003cdouble> | null"},"ip_consistent":{"oneOf":[{"type":"boolean","description":"Whether `ip_distance_km` is within the distance configured on the step. `null` when either side is unknown.","uniqueKey":"geolocation_attempts.oneOf.0.items.[INDEX].ip_consistent.oneOf.0","typeLabel":"boolean"},{"type":"null","description":"Whether `ip_distance_km` is within the distance configured on the step. `null` when either side is unknown.","uniqueKey":"geolocation_attempts.oneOf.0.items.[INDEX].ip_consistent.oneOf.1","typeLabel":"null"}],"uniqueKey":"geolocation_attempts.oneOf.0.items.[INDEX].ip_consistent","typeLabel":"boolean | null"},"document_distance_km":{"oneOf":[{"type":"number","description":"Distance to the geocoded address on the ID document or proof of address. `null` when no address is on file.","format":"double","uniqueKey":"geolocation_attempts.oneOf.0.items.[INDEX].document_distance_km.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"null","description":"Distance to the geocoded address on the ID document or proof of address. `null` when no address is on file.","format":"double","uniqueKey":"geolocation_attempts.oneOf.0.items.[INDEX].document_distance_km.oneOf.1","typeLabel":"null"}],"uniqueKey":"geolocation_attempts.oneOf.0.items.[INDEX].document_distance_km","typeLabel":"number\u003cdouble> | null"},"travel_excused":{"oneOf":[{"type":"boolean","description":"Whether the step's travel tolerance excused the distance from the address. `null` when tolerance is off.","uniqueKey":"geolocation_attempts.oneOf.0.items.[INDEX].travel_excused.oneOf.0","typeLabel":"boolean"},{"type":"null","description":"Whether the step's travel tolerance excused the distance from the address. `null` when tolerance is off.","uniqueKey":"geolocation_attempts.oneOf.0.items.[INDEX].travel_excused.oneOf.1","typeLabel":"null"}],"uniqueKey":"geolocation_attempts.oneOf.0.items.[INDEX].travel_excused","typeLabel":"boolean | null"},"consecutive_mismatches":{"oneOf":[{"type":"integer","description":"On the final attempt: this check plus the same person's earlier mismatches in a row.","uniqueKey":"geolocation_attempts.oneOf.0.items.[INDEX].consecutive_mismatches.oneOf.0","typeLabel":"integer"},{"type":"null","description":"On the final attempt: this check plus the same person's earlier mismatches in a row.","uniqueKey":"geolocation_attempts.oneOf.0.items.[INDEX].consecutive_mismatches.oneOf.1","typeLabel":"null"}],"uniqueKey":"geolocation_attempts.oneOf.0.items.[INDEX].consecutive_mismatches","typeLabel":"integer | null"},"attempts":{"type":"integer","description":"Number of this attempt within the node, starting at 1.","uniqueKey":"geolocation_attempts.oneOf.0.items.[INDEX].attempts","typeLabel":"integer"},"consent":{"oneOf":[{"type":"object","description":"The consent the person gave before the system prompt, recorded with the wording version and language they saw.","properties":{"accepted_at":{"type":"string","format":"date-time","uniqueKey":"geolocation_attempts.oneOf.0.items.[INDEX].consent.oneOf.0.accepted_at","typeLabel":"string\u003cdate-time>"},"version":{"oneOf":[{"type":"string","uniqueKey":"geolocation_attempts.oneOf.0.items.[INDEX].consent.oneOf.0.version.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"geolocation_attempts.oneOf.0.items.[INDEX].consent.oneOf.0.version.oneOf.1","typeLabel":"null"}],"uniqueKey":"geolocation_attempts.oneOf.0.items.[INDEX].consent.oneOf.0.version","typeLabel":"string | null"},"locale":{"oneOf":[{"type":"string","uniqueKey":"geolocation_attempts.oneOf.0.items.[INDEX].consent.oneOf.0.locale.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"geolocation_attempts.oneOf.0.items.[INDEX].consent.oneOf.0.locale.oneOf.1","typeLabel":"null"}],"uniqueKey":"geolocation_attempts.oneOf.0.items.[INDEX].consent.oneOf.0.locale","typeLabel":"string | null"}},"uniqueKey":"geolocation_attempts.oneOf.0.items.[INDEX].consent.oneOf.0","typeLabel":"object"},{"type":"null","description":"The consent the person gave before the system prompt, recorded with the wording version and language they saw.","properties":{"accepted_at":{"type":"string","format":"date-time"},"version":{"oneOf":[{"type":"string"},{"type":"null"}]},"locale":{"oneOf":[{"type":"string"},{"type":"null"}]}},"uniqueKey":"geolocation_attempts.oneOf.0.items.[INDEX].consent.oneOf.1","typeLabel":"null"}],"uniqueKey":"geolocation_attempts.oneOf.0.items.[INDEX].consent","typeLabel":"object | null"},"received_at":{"oneOf":[{"type":"string","description":"When Didit received the attempt.","format":"date-time","uniqueKey":"geolocation_attempts.oneOf.0.items.[INDEX].received_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","description":"When Didit received the attempt.","format":"date-time","uniqueKey":"geolocation_attempts.oneOf.0.items.[INDEX].received_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"geolocation_attempts.oneOf.0.items.[INDEX].received_at","typeLabel":"string\u003cdate-time> | null"},"created_at":{"type":"string","format":"date-time","uniqueKey":"geolocation_attempts.oneOf.0.items.[INDEX].created_at","typeLabel":"string\u003cdate-time>"}},"uniqueKey":"geolocation_attempts.oneOf.0.items.[INDEX]","typeLabel":"object"},"uniqueKey":"geolocation_attempts.oneOf.0","typeLabel":"object[]"},{"type":"null","description":"Every attempt of every Location verification step of this session, oldest first. Attempts that a resubmission replaced are left out. A workflow that withholds `geolocation_checks` through its response attributes withholds this list too.","items":{"type":"object","description":"One attempt of a Location verification step: the same keys as `geolocation_checks[]` except `warnings`, plus when Didit received it.","properties":{"node_id":{"oneOf":[{"type":"string","description":"Workflow node that produced this result, so a workflow with two Location verification steps stays readable."},{"type":"null","description":"Workflow node that produced this result, so a workflow with two Location verification steps stays readable."}]},"status":{"type":"string","enum":["Not Finished","Approved","Declined","In Review","Resub Requested"],"description":"Feature-level status of this Location verification step, resolved from its warnings. Independent of the session `status`."},"outcome":{"oneOf":[{"type":"string","description":"What happened on this attempt.","enum":["verified","low_accuracy","accuracy_undetermined","stale","approximate","denied","restricted","unavailable","timeout","mock_detected","outside_geofence","in_blocked_area","anonymizer_detected","skipped","replay_rejected","unsupported_client",null]},{"type":"null","description":"What happened on this attempt.","enum":["verified","low_accuracy","accuracy_undetermined","stale","approximate","denied","restricted","unavailable","timeout","mock_detected","outside_geofence","in_blocked_area","anonymizer_detected","skipped","replay_rejected","unsupported_client",null]}]},"permission":{"oneOf":[{"type":"string","description":"What the operating system or browser granted. `not_requested` means the step uses the connection's IP location only, so the person is never asked for a permission.","enum":["granted_precise","granted_approximate","denied","restricted","unavailable","timeout","dismissed","not_requested",null]},{"type":"null","description":"What the operating system or browser granted. `not_requested` means the step uses the connection's IP location only, so the person is never asked for a permission.","enum":["granted_precise","granted_approximate","denied","restricted","unavailable","timeout","dismissed","not_requested",null]}]},"latitude":{"oneOf":[{"type":"number","description":"WGS84 latitude of the fix. `null` when there is no fix.","format":"double"},{"type":"null","description":"WGS84 latitude of the fix. `null` when there is no fix.","format":"double"}]},"longitude":{"oneOf":[{"type":"number","description":"WGS84 longitude of the fix. `null` when there is no fix.","format":"double"},{"type":"null","description":"WGS84 longitude of the fix. `null` when there is no fix.","format":"double"}]},"accuracy_m":{"oneOf":[{"type":"number","description":"Radius of uncertainty in metres, at the confidence level in `accuracy_confidence`.","format":"double"},{"type":"null","description":"Radius of uncertainty in metres, at the confidence level in `accuracy_confidence`.","format":"double"}]},"accuracy_confidence":{"oneOf":[{"type":"string","description":"Confidence level the platform attaches to `accuracy_m`: `p95` (browsers), `p68` (Android) or `unspecified` (iOS).","enum":["p95","p68","unspecified",null]},{"type":"null","description":"Confidence level the platform attaches to `accuracy_m`: `p95` (browsers), `p68` (Android) or `unspecified` (iOS).","enum":["p95","p68","unspecified",null]}]},"measured_at":{"oneOf":[{"type":"string","description":"When the device took the fix, by its own clock.","format":"date-time"},{"type":"null","description":"When the device took the fix, by its own clock.","format":"date-time"}]},"age_seconds":{"oneOf":[{"type":"integer","description":"Seconds between the device taking the fix and Didit receiving it."},{"type":"null","description":"Seconds between the device taking the fix and Didit receiving it."}]},"source":{"oneOf":[{"type":"string","description":"Where the fix came from, when the platform says. `ip` means the position is the connection's IP location.","enum":["gps","fused","network","wifi","cell","browser","unknown","ip",null]},{"type":"null","description":"Where the fix came from, when the platform says. `ip` means the position is the connection's IP location.","enum":["gps","fused","network","wifi","cell","browser","unknown","ip",null]}]},"platform":{"oneOf":[{"type":"string","description":"The client that produced the fix.","enum":["web","ios","android","react_native","flutter",null]},{"type":"null","description":"The client that produced the fix.","enum":["web","ios","android","react_native","flutter",null]}]},"sdk_version":{"oneOf":[{"type":"string","description":"Version of the SDK that produced the fix."},{"type":"null","description":"Version of the SDK that produced the fix."}]},"is_mock":{"oneOf":[{"type":"boolean","description":"`true` when the device says the fix came from a mock location provider or simulation software. `null` when the platform does not report it (browsers cannot tell); `null` is not `false`."},{"type":"null","description":"`true` when the device says the fix came from a mock location provider or simulation software. `null` when the platform does not report it (browsers cannot tell); `null` is not `false`."}]},"produced_by_accessory":{"oneOf":[{"type":"boolean","description":"iOS only: `true` when the fix came from an external accessory. `null` elsewhere."},{"type":"null","description":"iOS only: `true` when the fix came from an external accessory. `null` elsewhere."}]},"integrity":{"type":"string","enum":["attested","not_attested","failed","unsupported","not_determined"],"description":"Whether device attestation backs the fix. `unsupported` is what browsers report, because the web has no attestation mechanism; it is not a failure."},"country_code":{"oneOf":[{"type":"string","description":"ISO 3166-1 alpha-2 country the fix is in."},{"type":"null","description":"ISO 3166-1 alpha-2 country the fix is in."}]},"region_code":{"oneOf":[{"type":"string","description":"ISO 3166-2 subdivision the fix is in."},{"type":"null","description":"ISO 3166-2 subdivision the fix is in."}]},"city":{"oneOf":[{"type":"string","description":"Nearest populated place, a label for reviewers."},{"type":"null","description":"Nearest populated place, a label for reviewers."}]},"geofence":{"type":"object","description":"Result of the country and area rules of the step.","properties":{"enabled":{"type":"boolean","description":"Whether the step applies any country or area rule."},"result":{"oneOf":[{"type":"string","description":"Where the position sits relative to the rules. `undetermined` means the accuracy circle straddles the border or the position resolved to no country; it is not evidence of being outside.","enum":["inside","outside","undetermined",null]},{"type":"null","description":"Where the position sits relative to the rules. `undetermined` means the accuracy circle straddles the border or the position resolved to no country; it is not evidence of being outside.","enum":["inside","outside","undetermined",null]}]}}},"inside_geofence":{"oneOf":[{"type":"boolean","description":"`true` when `geofence.result` is `inside`, `false` when `outside`, `null` otherwise."},{"type":"null","description":"`true` when `geofence.result` is `inside`, `false` when `outside`, `null` otherwise."}]},"geofence_basis":{"oneOf":[{"type":"string","description":"Which position the area result was judged from: the `device` fix, or the connection's `ip` location.","enum":["device","ip",null]},{"type":"null","description":"Which position the area result was judged from: the `device` fix, or the connection's `ip` location.","enum":["device","ip",null]}]},"inside_areas":{"type":"array","items":{"type":"string"},"description":"Ids of the configured allowed areas the position is inside."},"blocked_areas":{"type":"array","items":{"type":"string"},"description":"Ids of the configured blocked areas the position is in."},"position_source":{"oneOf":[{"type":"string","description":"Where the step takes the position from, as configured: the device checked against the IP location, the device only, or the IP location only.","enum":["device_and_ip","device_only","ip_only",null]},{"type":"null","description":"Where the step takes the position from, as configured: the device checked against the IP location, the device only, or the IP location only.","enum":["device_and_ip","device_only","ip_only",null]}]},"anonymizers":{"oneOf":[{"type":"object","description":"What the connection and device look like, each `true`, `false` or `null` when the source cannot tell.","properties":{"vpn":{"oneOf":[{"type":"boolean"},{"type":"null"}]},"proxy":{"oneOf":[{"type":"boolean"},{"type":"null"}]},"tor":{"oneOf":[{"type":"boolean"},{"type":"null"}]},"spoofing":{"oneOf":[{"type":"boolean"},{"type":"null"}]},"emulator":{"oneOf":[{"type":"boolean"},{"type":"null"}]}}},{"type":"null","description":"What the connection and device look like, each `true`, `false` or `null` when the source cannot tell.","properties":{"vpn":{"oneOf":[{"type":"boolean"},{"type":"null"}]},"proxy":{"oneOf":[{"type":"boolean"},{"type":"null"}]},"tor":{"oneOf":[{"type":"boolean"},{"type":"null"}]},"spoofing":{"oneOf":[{"type":"boolean"},{"type":"null"}]},"emulator":{"oneOf":[{"type":"boolean"},{"type":"null"}]}}}]},"ip_distance_km":{"oneOf":[{"type":"number","description":"Distance to the session's IP location after both uncertainty radii are subtracted; `0` when they overlap.","format":"double"},{"type":"null","description":"Distance to the session's IP location after both uncertainty radii are subtracted; `0` when they overlap.","format":"double"}]},"ip_distance_uncertainty_km":{"oneOf":[{"type":"number","description":"Combined radius that was subtracted: the IP location's radius plus this fix's accuracy.","format":"double"},{"type":"null","description":"Combined radius that was subtracted: the IP location's radius plus this fix's accuracy.","format":"double"}]},"ip_consistent":{"oneOf":[{"type":"boolean","description":"Whether `ip_distance_km` is within the distance configured on the step. `null` when either side is unknown."},{"type":"null","description":"Whether `ip_distance_km` is within the distance configured on the step. `null` when either side is unknown."}]},"document_distance_km":{"oneOf":[{"type":"number","description":"Distance to the geocoded address on the ID document or proof of address. `null` when no address is on file.","format":"double"},{"type":"null","description":"Distance to the geocoded address on the ID document or proof of address. `null` when no address is on file.","format":"double"}]},"travel_excused":{"oneOf":[{"type":"boolean","description":"Whether the step's travel tolerance excused the distance from the address. `null` when tolerance is off."},{"type":"null","description":"Whether the step's travel tolerance excused the distance from the address. `null` when tolerance is off."}]},"consecutive_mismatches":{"oneOf":[{"type":"integer","description":"On the final attempt: this check plus the same person's earlier mismatches in a row."},{"type":"null","description":"On the final attempt: this check plus the same person's earlier mismatches in a row."}]},"attempts":{"type":"integer","description":"Number of this attempt within the node, starting at 1."},"consent":{"oneOf":[{"type":"object","description":"The consent the person gave before the system prompt, recorded with the wording version and language they saw.","properties":{"accepted_at":{"type":"string","format":"date-time"},"version":{"oneOf":[{"type":"string"},{"type":"null"}]},"locale":{"oneOf":[{"type":"string"},{"type":"null"}]}}},{"type":"null","description":"The consent the person gave before the system prompt, recorded with the wording version and language they saw.","properties":{"accepted_at":{"type":"string","format":"date-time"},"version":{"oneOf":[{"type":"string"},{"type":"null"}]},"locale":{"oneOf":[{"type":"string"},{"type":"null"}]}}}]},"received_at":{"oneOf":[{"type":"string","description":"When Didit received the attempt.","format":"date-time"},{"type":"null","description":"When Didit received the attempt.","format":"date-time"}]},"created_at":{"type":"string","format":"date-time"}}},"uniqueKey":"geolocation_attempts.oneOf.1","typeLabel":"null"}],"uniqueKey":"geolocation_attempts","typeLabel":"object[] | null"},"database_validations":{"oneOf":[{"type":"array","description":"**Array of Database Validation reports** — always a JSON array, never a singular `database_validation` object. `null` until at least one DB validation step has produced data. Each item is the full report, including `node_id`, feature-level `status`, `screened_data`, the per-service `validations[]` (each with its registry `source_data`), and `warnings[]`. The `screened_data` and `source_data` fields vary by country:\n\n**ARG (Argentina)**: screened_data: {document_number, selfie, gender, first_name, last_name}. source_data: {identification_number, first_name, last_name, full_name, date_of_birth, date_of_death, tax_id, tax_id_type, face_match_score, sit_1_since, banks, last_position, highest_position, rejected_checks}. Uses RENAPER biometric face-match validation. Gender is auto-inferred from face analysis or given name when not present in the document (e.g., driver licenses)\n\n**BOL (Bolivia)**: screened_data: {document_number, date_of_birth, first_name, last_name}. source_data: {identification_number, first_name, last_name, full_name, date_of_birth, gender}\n\n**BRA (Brazil)**: screened_data: {tax_number, first_name, last_name, date_of_birth}. source_data always includes {identification_number, first_name, last_name, date_of_birth, lgpd_minor, minor_under_18, minor_under_16} for successful CPF matches. Successful adult lookups set those flags to false. The Receita Federal Consulta CPF service may return HTTP 422 (minor under 18) or 451 (under 16) with LGPD-withheld data; in those cases source_data sets the minor flags to true as appropriate, includes the upstream HTTP status, and field-level validation is no_match. See the Brazil section of the Database Validation Outcome Codes reference for the full code list.\n\n**CHL (Chile)**: screened_data: {personal_number, first_name, last_name, date_of_birth}. source_data: {identification_number, first_name, last_name, date_of_birth, gender}\n\n**COL (Colombia)**: screened_data: {document_number, document_type, first_name, last_name}. source_data: {identification_number, first_name, last_name, full_name, date_of_birth, document_type}\n\n**CRI (Costa Rica)**: screened_data: {personal_number, first_name, last_name}. source_data: {identification_number, first_name, last_name, full_name}\n\n**DOM (Dominican Republic)**: screened_data: {personal_number}. source_data: {identification_number} (returns valid/invalid only)\n\n**ECU (Ecuador)**: screened_data: {personal_number, first_name, last_name}. source_data: {identification_number, first_name, last_name, street, formatted_address, gender, nationality, education, marital_status, spouse, mother_name, father_name, profession}\n\n**ESP (Spain)**: screened_data: {personal_number, document_type, expiration_date, first_name, last_name}. source_data: {identification_number, first_name, last_name, full_name, document_type, expiration_date}\n\n**GTM (Guatemala)**: screened_data: {document_number, first_name, last_name}. source_data: {identification_number, first_name, last_name, full_name}\n\n**HND (Honduras)**: screened_data: {document_number, first_name, last_name}. source_data: {identification_number, first_name, last_name, full_name}\n\n**MEX (Mexico)**: screened_data: {personal_number (CURP), first_name, last_name}. source_data: {identification_number, first_name, last_name, full_name, date_of_birth, gender, nationality, curp_status, state_of_birth, doc_probatorio, registration_year, registration_state, registration_municipality, num_acta, crip, issuing_state_code, foreign_registry_number, folio_carta, folio_certificado}. Uses the RENAPO civil registry. A separate INE validity-check service is also available for MEX as an additional one-by-one validation.\n\n**PAN (Panama)**: screened_data: {personal_number, selfie}. source_data: {identification_number}. Uses SIB biometric validation\n\n**PER (Peru)**: screened_data: {personal_number (DNI), first_name, last_name}. source_data: {identification_number, first_name, last_name, paternal_name, maternal_name, verification_number, verification_letter}\n\n**PRY (Paraguay)**: screened_data: {document_number, first_name, last_name}. source_data: {identification_number, first_name, last_name, full_name}\n\n**SLV (El Salvador)**: screened_data: {document_number, date_of_birth, first_name, last_name}. source_data: {identification_number, first_name, last_name, full_name}\n\n**URY (Uruguay)**: screened_data: {personal_number, date_of_birth, first_name, last_name}. source_data: {identification_number, first_name, last_name, full_name}\n\n**VEN (Venezuela)**: screened_data: {document_number, first_name, last_name}. source_data: {identification_number, first_name, last_name, full_name, gender, date_of_birth, document_type}","items":{"type":"object","properties":{"node_id":{"type":"string","description":"Unique identifier for this database validation step in the workflow graph.","uniqueKey":"database_validations.oneOf.0.items.[INDEX].node_id","typeLabel":"string"},"issuing_state":{"type":"string","description":"ISO 3166-1 alpha-3 code of the country whose government/registry sources were queried (e.g. `BRA`, `MEX`, `ESP`, `NGA`, `IDN`). Database Validation covers 60+ countries across the Americas, Europe, Africa, the Middle East and Asia-Pacific, plus global multi-country sources — coverage expands regularly, so treat the value as an open set rather than a fixed enum.","uniqueKey":"database_validations.oneOf.0.items.[INDEX].issuing_state","typeLabel":"string"},"validation_type":{"type":"string","enum":["one_by_one","two_by_two","not_enabled"],"description":"How the result was corroborated: `one_by_one` (single-service outcome), `two_by_two` (two or more distinct services independently full-matched the identification number), or `not_enabled` (persisted when no service produced a usable match). The value is never `null`. Dedicated biometric 2x2 validation modes are currently available for `ECU` and `PER`.","uniqueKey":"database_validations.oneOf.0.items.[INDEX].validation_type","typeLabel":"enum\u003cstring>"},"screened_data":{"type":"object","description":"The input data used for validation. Fields vary by country — see the Database Validation docs (`/core-technology/database-validation/overview`) for country-specific formats.","properties":{"last_name":{"type":"string","uniqueKey":"database_validations.oneOf.0.items.[INDEX].screened_data.last_name","typeLabel":"string"},"first_name":{"type":"string","uniqueKey":"database_validations.oneOf.0.items.[INDEX].screened_data.first_name","typeLabel":"string"},"tax_number":{"type":"string","description":"Brazil: CPF (11 digits)","uniqueKey":"database_validations.oneOf.0.items.[INDEX].screened_data.tax_number","typeLabel":"string"},"personal_number":{"type":"string","description":"Chile: RUT, DOM: Cédula (11 digits), ECU: Cédula (10 digits), ESP: DNI/NIE, MEX: CURP (18 chars), PER: DNI (8 digits), URY: CI","uniqueKey":"database_validations.oneOf.0.items.[INDEX].screened_data.personal_number","typeLabel":"string"},"document_number":{"type":"string","description":"ARG: DNI, BOL: CI, COL: Cédula, GTM: DPI, HND: DNI, PAN: Cédula, PRY: CI, SLV: DUI, VEN: Cédula","uniqueKey":"database_validations.oneOf.0.items.[INDEX].screened_data.document_number","typeLabel":"string"},"date_of_birth":{"type":"string","format":"date","uniqueKey":"database_validations.oneOf.0.items.[INDEX].screened_data.date_of_birth","typeLabel":"string\u003cdate>"},"document_type":{"type":"string","description":"COL: CC/CE/TI/NIT, ESP: ID/PASSPORT","uniqueKey":"database_validations.oneOf.0.items.[INDEX].screened_data.document_type","typeLabel":"string"},"expiration_date":{"type":"string","format":"date","description":"Required for ESP","uniqueKey":"database_validations.oneOf.0.items.[INDEX].screened_data.expiration_date","typeLabel":"string\u003cdate>"}},"uniqueKey":"database_validations.oneOf.0.items.[INDEX].screened_data","typeLabel":"object"},"validations":{"type":"array","description":"One entry per registry service that returned a validation payload. Each entry identifies the service (`service_id`, `service_name`) and carries the per-field `validation` comparison, the service `outcome_code` / `outcome_detail` when reported, and the normalised registry record in `source_data`.","items":{"type":"object","properties":{"service_id":{"type":"string","description":"Identifier of the registry service that produced this validation result.","example":"bra_cpf","uniqueKey":"database_validations.oneOf.0.items.[INDEX].validations.items.[INDEX].service_id","typeLabel":"string"},"service_name":{"type":"string","description":"Human-readable name of the registry service.","example":"Brazil - CPF status check","uniqueKey":"database_validations.oneOf.0.items.[INDEX].validations.items.[INDEX].service_name","typeLabel":"string"},"validation":{"type":"object","description":"The results of the field validations.","properties":{"full_name":{"type":"string","description":"Match result for full name (e.g., 'full_match', 'partial_match', 'no_match').","uniqueKey":"database_validations.oneOf.0.items.[INDEX].validations.items.[INDEX].validation.full_name","typeLabel":"string"},"date_of_birth":{"type":"string","description":"Match result for date of birth.","uniqueKey":"database_validations.oneOf.0.items.[INDEX].validations.items.[INDEX].validation.date_of_birth","typeLabel":"string"},"identification_number":{"type":"string","description":"Match result for identification number.","uniqueKey":"database_validations.oneOf.0.items.[INDEX].validations.items.[INDEX].validation.identification_number","typeLabel":"string"}},"uniqueKey":"database_validations.oneOf.0.items.[INDEX].validations.items.[INDEX].validation","typeLabel":"object"},"outcome_code":{"oneOf":[{"type":"string","description":"Machine-readable outcome of the registry lookup (e.g. `MATCH`, `NO_MATCH`, `PARTIAL_MATCH`, `INCONCLUSIVE`, source-specific codes). Present when the service reports one.","uniqueKey":"database_validations.oneOf.0.items.[INDEX].validations.items.[INDEX].outcome_code.oneOf.0","typeLabel":"string"},{"type":"null","description":"Machine-readable outcome of the registry lookup (e.g. `MATCH`, `NO_MATCH`, `PARTIAL_MATCH`, `INCONCLUSIVE`, source-specific codes). Present when the service reports one.","uniqueKey":"database_validations.oneOf.0.items.[INDEX].validations.items.[INDEX].outcome_code.oneOf.1","typeLabel":"null"}],"uniqueKey":"database_validations.oneOf.0.items.[INDEX].validations.items.[INDEX].outcome_code","typeLabel":"string | null"},"outcome_detail":{"oneOf":[{"type":"string","description":"Human-readable explanation of `outcome_code`, when provided by the service.","uniqueKey":"database_validations.oneOf.0.items.[INDEX].validations.items.[INDEX].outcome_detail.oneOf.0","typeLabel":"string"},{"type":"null","description":"Human-readable explanation of `outcome_code`, when provided by the service.","uniqueKey":"database_validations.oneOf.0.items.[INDEX].validations.items.[INDEX].outcome_detail.oneOf.1","typeLabel":"null"}],"uniqueKey":"database_validations.oneOf.0.items.[INDEX].validations.items.[INDEX].outcome_detail","typeLabel":"string | null"},"source_data":{"type":"object","description":"The data returned from the government database. Common fields: identification_number, first_name, last_name, full_name, date_of_birth, gender. Additional fields by country: BRA always includes lgpd_minor, minor_under_18, and minor_under_16 on successful CPF matches; it also includes the upstream HTTP status when CPF data is withheld under LGPD (HTTP 422/451). ECU adds street, formatted_address, nationality, education, marital_status, spouse, mother_name, father_name, profession. PER adds paternal_name, maternal_name, verification_number, verification_letter. ESP adds document_type, expiration_date. VEN/COL add document_type.","additionalProperties":true,"uniqueKey":"database_validations.oneOf.0.items.[INDEX].validations.items.[INDEX].source_data","typeLabel":"object"}},"uniqueKey":"database_validations.oneOf.0.items.[INDEX].validations.items.[INDEX]","typeLabel":"object"},"uniqueKey":"database_validations.oneOf.0.items.[INDEX].validations","typeLabel":"object[]"},"errors":{"type":"array","description":"Errors returned by registry services while validating, each tagged with the `service_id` that produced it. **This key is omitted entirely when there are no errors.**","items":{"type":"object","description":"The upstream service's error object spread as-is — its keys vary by service (commonly a message/code and any provider-specific details) — plus `service_id` identifying the service that errored.","properties":{"service_id":{"oneOf":[{"type":"string","description":"Identifier of the registry service that errored.","uniqueKey":"database_validations.oneOf.0.items.[INDEX].errors.items.[INDEX].service_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"Identifier of the registry service that errored.","uniqueKey":"database_validations.oneOf.0.items.[INDEX].errors.items.[INDEX].service_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"database_validations.oneOf.0.items.[INDEX].errors.items.[INDEX].service_id","typeLabel":"string | null"}},"additionalProperties":true,"uniqueKey":"database_validations.oneOf.0.items.[INDEX].errors.items.[INDEX]","typeLabel":"object"},"uniqueKey":"database_validations.oneOf.0.items.[INDEX].errors","typeLabel":"object[]"},"match_type":{"oneOf":[{"type":"string","enum":["no_match","partial_match","full_match"],"description":"The aggregate match outcome across the queried services. `null` until the validation has been evaluated.","uniqueKey":"database_validations.oneOf.0.items.[INDEX].match_type.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["no_match","partial_match","full_match"],"description":"The aggregate match outcome across the queried services. `null` until the validation has been evaluated.","uniqueKey":"database_validations.oneOf.0.items.[INDEX].match_type.oneOf.1","typeLabel":"null"}],"uniqueKey":"database_validations.oneOf.0.items.[INDEX].match_type","typeLabel":"enum\u003cstring> | null"},"status":{"type":"string","description":"Feature-level status of this database validation. Independent of the top-level session `status` — a session can reach its overall decision while an individual feature stays `In Review`.","enum":["Not Finished","Approved","Declined","In Review","Resub Requested"],"uniqueKey":"database_validations.oneOf.0.items.[INDEX].status","typeLabel":"enum\u003cstring>"},"warnings":{"type":"array","items":{"type":"object","properties":{"feature":{"type":"string","enum":["ID_VERIFICATION","NFC","LIVENESS","FACEMATCH","PROOF_OF_ADDRESS","PHONE","EMAIL","AML","LOCATION","DATABASE_VALIDATION","QUESTIONNAIRE","DOCUMENT_AI","KYB_REGISTRY","KYB_DOCUMENTS","KYB_KEY_PEOPLE","GEOLOCATION","SIGNATURE"],"description":"The feature that generated this warning. The value identifies the feature block the warning belongs to. Each module's warnings array typically uses the value matching its module (e.g. `PHONE` inside `phone_verifications[].warnings`), but the enum above is authoritative across all feature warnings on the decision payload.","uniqueKey":"database_validations.oneOf.0.items.[INDEX].warnings.items.[INDEX].feature","typeLabel":"enum\u003cstring>"},"risk":{"type":"string","uniqueKey":"database_validations.oneOf.0.items.[INDEX].warnings.items.[INDEX].risk","typeLabel":"string"},"additional_data":{"oneOf":[{"type":"object","uniqueKey":"database_validations.oneOf.0.items.[INDEX].warnings.items.[INDEX].additional_data.oneOf.0","typeLabel":"object"},{"type":"null","uniqueKey":"database_validations.oneOf.0.items.[INDEX].warnings.items.[INDEX].additional_data.oneOf.1","typeLabel":"null"}],"uniqueKey":"database_validations.oneOf.0.items.[INDEX].warnings.items.[INDEX].additional_data","typeLabel":"object | null"},"log_type":{"type":"string","uniqueKey":"database_validations.oneOf.0.items.[INDEX].warnings.items.[INDEX].log_type","typeLabel":"string"},"short_description":{"type":"string","uniqueKey":"database_validations.oneOf.0.items.[INDEX].warnings.items.[INDEX].short_description","typeLabel":"string"},"long_description":{"type":"string","uniqueKey":"database_validations.oneOf.0.items.[INDEX].warnings.items.[INDEX].long_description","typeLabel":"string"},"node_id":{"type":"string","description":"The workflow graph node ID that generated this warning","uniqueKey":"database_validations.oneOf.0.items.[INDEX].warnings.items.[INDEX].node_id","typeLabel":"string"}},"uniqueKey":"database_validations.oneOf.0.items.[INDEX].warnings.items.[INDEX]","typeLabel":"object"},"description":"Warnings related to the database validation.","uniqueKey":"database_validations.oneOf.0.items.[INDEX].warnings","typeLabel":"object[]"}},"uniqueKey":"database_validations.oneOf.0.items.[INDEX]","typeLabel":"object"},"uniqueKey":"database_validations.oneOf.0","typeLabel":"object[]"},{"type":"null","description":"**Array of Database Validation reports** — always a JSON array, never a singular `database_validation` object. `null` until at least one DB validation step has produced data. Each item is the full report, including `node_id`, feature-level `status`, `screened_data`, the per-service `validations[]` (each with its registry `source_data`), and `warnings[]`. The `screened_data` and `source_data` fields vary by country:\n\n**ARG (Argentina)**: screened_data: {document_number, selfie, gender, first_name, last_name}. source_data: {identification_number, first_name, last_name, full_name, date_of_birth, date_of_death, tax_id, tax_id_type, face_match_score, sit_1_since, banks, last_position, highest_position, rejected_checks}. Uses RENAPER biometric face-match validation. Gender is auto-inferred from face analysis or given name when not present in the document (e.g., driver licenses)\n\n**BOL (Bolivia)**: screened_data: {document_number, date_of_birth, first_name, last_name}. source_data: {identification_number, first_name, last_name, full_name, date_of_birth, gender}\n\n**BRA (Brazil)**: screened_data: {tax_number, first_name, last_name, date_of_birth}. source_data always includes {identification_number, first_name, last_name, date_of_birth, lgpd_minor, minor_under_18, minor_under_16} for successful CPF matches. Successful adult lookups set those flags to false. The Receita Federal Consulta CPF service may return HTTP 422 (minor under 18) or 451 (under 16) with LGPD-withheld data; in those cases source_data sets the minor flags to true as appropriate, includes the upstream HTTP status, and field-level validation is no_match. See the Brazil section of the Database Validation Outcome Codes reference for the full code list.\n\n**CHL (Chile)**: screened_data: {personal_number, first_name, last_name, date_of_birth}. source_data: {identification_number, first_name, last_name, date_of_birth, gender}\n\n**COL (Colombia)**: screened_data: {document_number, document_type, first_name, last_name}. source_data: {identification_number, first_name, last_name, full_name, date_of_birth, document_type}\n\n**CRI (Costa Rica)**: screened_data: {personal_number, first_name, last_name}. source_data: {identification_number, first_name, last_name, full_name}\n\n**DOM (Dominican Republic)**: screened_data: {personal_number}. source_data: {identification_number} (returns valid/invalid only)\n\n**ECU (Ecuador)**: screened_data: {personal_number, first_name, last_name}. source_data: {identification_number, first_name, last_name, street, formatted_address, gender, nationality, education, marital_status, spouse, mother_name, father_name, profession}\n\n**ESP (Spain)**: screened_data: {personal_number, document_type, expiration_date, first_name, last_name}. source_data: {identification_number, first_name, last_name, full_name, document_type, expiration_date}\n\n**GTM (Guatemala)**: screened_data: {document_number, first_name, last_name}. source_data: {identification_number, first_name, last_name, full_name}\n\n**HND (Honduras)**: screened_data: {document_number, first_name, last_name}. source_data: {identification_number, first_name, last_name, full_name}\n\n**MEX (Mexico)**: screened_data: {personal_number (CURP), first_name, last_name}. source_data: {identification_number, first_name, last_name, full_name, date_of_birth, gender, nationality, curp_status, state_of_birth, doc_probatorio, registration_year, registration_state, registration_municipality, num_acta, crip, issuing_state_code, foreign_registry_number, folio_carta, folio_certificado}. Uses the RENAPO civil registry. A separate INE validity-check service is also available for MEX as an additional one-by-one validation.\n\n**PAN (Panama)**: screened_data: {personal_number, selfie}. source_data: {identification_number}. Uses SIB biometric validation\n\n**PER (Peru)**: screened_data: {personal_number (DNI), first_name, last_name}. source_data: {identification_number, first_name, last_name, paternal_name, maternal_name, verification_number, verification_letter}\n\n**PRY (Paraguay)**: screened_data: {document_number, first_name, last_name}. source_data: {identification_number, first_name, last_name, full_name}\n\n**SLV (El Salvador)**: screened_data: {document_number, date_of_birth, first_name, last_name}. source_data: {identification_number, first_name, last_name, full_name}\n\n**URY (Uruguay)**: screened_data: {personal_number, date_of_birth, first_name, last_name}. source_data: {identification_number, first_name, last_name, full_name}\n\n**VEN (Venezuela)**: screened_data: {document_number, first_name, last_name}. source_data: {identification_number, first_name, last_name, full_name, gender, date_of_birth, document_type}","items":{"type":"object","properties":{"node_id":{"type":"string","description":"Unique identifier for this database validation step in the workflow graph."},"issuing_state":{"type":"string","description":"ISO 3166-1 alpha-3 code of the country whose government/registry sources were queried (e.g. `BRA`, `MEX`, `ESP`, `NGA`, `IDN`). Database Validation covers 60+ countries across the Americas, Europe, Africa, the Middle East and Asia-Pacific, plus global multi-country sources — coverage expands regularly, so treat the value as an open set rather than a fixed enum."},"validation_type":{"type":"string","enum":["one_by_one","two_by_two","not_enabled"],"description":"How the result was corroborated: `one_by_one` (single-service outcome), `two_by_two` (two or more distinct services independently full-matched the identification number), or `not_enabled` (persisted when no service produced a usable match). The value is never `null`. Dedicated biometric 2x2 validation modes are currently available for `ECU` and `PER`."},"screened_data":{"type":"object","description":"The input data used for validation. Fields vary by country — see the Database Validation docs (`/core-technology/database-validation/overview`) for country-specific formats.","properties":{"last_name":{"type":"string"},"first_name":{"type":"string"},"tax_number":{"type":"string","description":"Brazil: CPF (11 digits)"},"personal_number":{"type":"string","description":"Chile: RUT, DOM: Cédula (11 digits), ECU: Cédula (10 digits), ESP: DNI/NIE, MEX: CURP (18 chars), PER: DNI (8 digits), URY: CI"},"document_number":{"type":"string","description":"ARG: DNI, BOL: CI, COL: Cédula, GTM: DPI, HND: DNI, PAN: Cédula, PRY: CI, SLV: DUI, VEN: Cédula"},"date_of_birth":{"type":"string","format":"date"},"document_type":{"type":"string","description":"COL: CC/CE/TI/NIT, ESP: ID/PASSPORT"},"expiration_date":{"type":"string","format":"date","description":"Required for ESP"}}},"validations":{"type":"array","description":"One entry per registry service that returned a validation payload. Each entry identifies the service (`service_id`, `service_name`) and carries the per-field `validation` comparison, the service `outcome_code` / `outcome_detail` when reported, and the normalised registry record in `source_data`.","items":{"type":"object","properties":{"service_id":{"type":"string","description":"Identifier of the registry service that produced this validation result.","example":"bra_cpf"},"service_name":{"type":"string","description":"Human-readable name of the registry service.","example":"Brazil - CPF status check"},"validation":{"type":"object","description":"The results of the field validations.","properties":{"full_name":{"type":"string","description":"Match result for full name (e.g., 'full_match', 'partial_match', 'no_match')."},"date_of_birth":{"type":"string","description":"Match result for date of birth."},"identification_number":{"type":"string","description":"Match result for identification number."}}},"outcome_code":{"oneOf":[{"type":"string","description":"Machine-readable outcome of the registry lookup (e.g. `MATCH`, `NO_MATCH`, `PARTIAL_MATCH`, `INCONCLUSIVE`, source-specific codes). Present when the service reports one."},{"type":"null","description":"Machine-readable outcome of the registry lookup (e.g. `MATCH`, `NO_MATCH`, `PARTIAL_MATCH`, `INCONCLUSIVE`, source-specific codes). Present when the service reports one."}]},"outcome_detail":{"oneOf":[{"type":"string","description":"Human-readable explanation of `outcome_code`, when provided by the service."},{"type":"null","description":"Human-readable explanation of `outcome_code`, when provided by the service."}]},"source_data":{"type":"object","description":"The data returned from the government database. Common fields: identification_number, first_name, last_name, full_name, date_of_birth, gender. Additional fields by country: BRA always includes lgpd_minor, minor_under_18, and minor_under_16 on successful CPF matches; it also includes the upstream HTTP status when CPF data is withheld under LGPD (HTTP 422/451). ECU adds street, formatted_address, nationality, education, marital_status, spouse, mother_name, father_name, profession. PER adds paternal_name, maternal_name, verification_number, verification_letter. ESP adds document_type, expiration_date. VEN/COL add document_type.","additionalProperties":true}}}},"errors":{"type":"array","description":"Errors returned by registry services while validating, each tagged with the `service_id` that produced it. **This key is omitted entirely when there are no errors.**","items":{"type":"object","description":"The upstream service's error object spread as-is — its keys vary by service (commonly a message/code and any provider-specific details) — plus `service_id` identifying the service that errored.","properties":{"service_id":{"oneOf":[{"type":"string","description":"Identifier of the registry service that errored."},{"type":"null","description":"Identifier of the registry service that errored."}]}},"additionalProperties":true}},"match_type":{"oneOf":[{"type":"string","enum":["no_match","partial_match","full_match"],"description":"The aggregate match outcome across the queried services. `null` until the validation has been evaluated."},{"type":"null","enum":["no_match","partial_match","full_match"],"description":"The aggregate match outcome across the queried services. `null` until the validation has been evaluated."}]},"status":{"type":"string","description":"Feature-level status of this database validation. Independent of the top-level session `status` — a session can reach its overall decision while an individual feature stays `In Review`.","enum":["Not Finished","Approved","Declined","In Review","Resub Requested"]},"warnings":{"type":"array","items":{"type":"object","properties":{"feature":{"type":"string","enum":["ID_VERIFICATION","NFC","LIVENESS","FACEMATCH","PROOF_OF_ADDRESS","PHONE","EMAIL","AML","LOCATION","DATABASE_VALIDATION","QUESTIONNAIRE","DOCUMENT_AI","KYB_REGISTRY","KYB_DOCUMENTS","KYB_KEY_PEOPLE","GEOLOCATION","SIGNATURE"],"description":"The feature that generated this warning. The value identifies the feature block the warning belongs to. Each module's warnings array typically uses the value matching its module (e.g. `PHONE` inside `phone_verifications[].warnings`), but the enum above is authoritative across all feature warnings on the decision payload."},"risk":{"type":"string"},"additional_data":{"oneOf":[{"type":"object"},{"type":"null"}]},"log_type":{"type":"string"},"short_description":{"type":"string"},"long_description":{"type":"string"},"node_id":{"type":"string","description":"The workflow graph node ID that generated this warning"}}},"description":"Warnings related to the database validation."}}},"uniqueKey":"database_validations.oneOf.1","typeLabel":"null"}],"uniqueKey":"database_validations","typeLabel":"object[] | null"},"database_validation_not_performed_reason":{"oneOf":[{"type":"object","additionalProperties":true,"description":"Why a configured database validation produced no result, as `{code, message}` plus context fields. Present only when `database_validations` is `null` for a workflow that has the step, so you can tell \"the registry agreed\" from \"nothing ran\". `null` otherwise.","properties":{"code":{"type":"string","description":"Stable machine-readable reason.","uniqueKey":"database_validation_not_performed_reason.oneOf.0.code","typeLabel":"string"},"message":{"type":"string","description":"Human-readable explanation.","uniqueKey":"database_validation_not_performed_reason.oneOf.0.message","typeLabel":"string"}},"uniqueKey":"database_validation_not_performed_reason.oneOf.0","typeLabel":"object"},{"type":"null","additionalProperties":true,"description":"Why a configured database validation produced no result, as `{code, message}` plus context fields. Present only when `database_validations` is `null` for a workflow that has the step, so you can tell \"the registry agreed\" from \"nothing ran\". `null` otherwise.","properties":{"code":{"type":"string","description":"Stable machine-readable reason."},"message":{"type":"string","description":"Human-readable explanation."}},"uniqueKey":"database_validation_not_performed_reason.oneOf.1","typeLabel":"null"}],"uniqueKey":"database_validation_not_performed_reason","typeLabel":"object | null"},"reviews":{"type":"array","items":{"type":"object","properties":{"user":{"type":"string","description":"Who performed the review. Usually the console reviewer's identifier (their email), but the value is `\"API Client\"` for status updates made with an API key and `\"Unknown\"` when no actor could be resolved — so do not parse this field as an email address.","uniqueKey":"reviews.items.[INDEX].user","typeLabel":"string"},"new_status":{"type":"string","uniqueKey":"reviews.items.[INDEX].new_status","typeLabel":"string"},"comment":{"type":"string","uniqueKey":"reviews.items.[INDEX].comment","typeLabel":"string"},"created_at":{"type":"string","format":"date-time","uniqueKey":"reviews.items.[INDEX].created_at","typeLabel":"string\u003cdate-time>"}},"uniqueKey":"reviews.items.[INDEX]","typeLabel":"object"},"uniqueKey":"reviews","typeLabel":"object[]"},"assignee":{"oneOf":[{"type":"object","description":"The Console reviewer the session is assigned to, or `null` when nobody holds it.","properties":{"email":{"type":"string","format":"email","uniqueKey":"assignee.oneOf.0.email","typeLabel":"string\u003cemail>"},"assigned_at":{"oneOf":[{"type":"string","format":"date-time","uniqueKey":"assignee.oneOf.0.assigned_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","uniqueKey":"assignee.oneOf.0.assigned_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"assignee.oneOf.0.assigned_at","typeLabel":"string\u003cdate-time> | null"}},"uniqueKey":"assignee.oneOf.0","typeLabel":"object"},{"type":"null","description":"The Console reviewer the session is assigned to, or `null` when nobody holds it.","properties":{"email":{"type":"string","format":"email"},"assigned_at":{"oneOf":[{"type":"string","format":"date-time"},{"type":"null","format":"date-time"}]}},"uniqueKey":"assignee.oneOf.1","typeLabel":"null"}],"uniqueKey":"assignee","typeLabel":"object | null"},"waiting_since":{"oneOf":[{"type":"string","format":"date-time","description":"When the session started waiting for review. `null` unless the session is `In Review` and your application sets a review deadline.","uniqueKey":"waiting_since.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","description":"When the session started waiting for review. `null` unless the session is `In Review` and your application sets a review deadline.","uniqueKey":"waiting_since.oneOf.1","typeLabel":"null"}],"uniqueKey":"waiting_since","typeLabel":"string\u003cdate-time> | null"},"sla_due_at":{"oneOf":[{"type":"string","format":"date-time","description":"When the review is due. `null` unless the session is `In Review` and your application sets a review deadline.","uniqueKey":"sla_due_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","description":"When the review is due. `null` unless the session is `In Review` and your application sets a review deadline.","uniqueKey":"sla_due_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"sla_due_at","typeLabel":"string\u003cdate-time> | null"},"created_at":{"type":"string","format":"date-time","description":"Timestamp at which the session was created (ISO 8601, UTC).","uniqueKey":"created_at","typeLabel":"string\u003cdate-time>"},"expires_at":{"oneOf":[{"type":"string","format":"date-time","description":"Timestamp at which this session is scheduled to expire. Set on User Verification (KYC) sessions when an expiration was configured at creation time (or once `Approved` status triggers KYC expiry computation). `null` for sessions without a configured expiration, and for kinds that do not use expiry (e.g. Business Verification (KYB) sessions that never received an `expires_at`).","uniqueKey":"expires_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","description":"Timestamp at which this session is scheduled to expire. Set on User Verification (KYC) sessions when an expiration was configured at creation time (or once `Approved` status triggers KYC expiry computation). `null` for sessions without a configured expiration, and for kinds that do not use expiry (e.g. Business Verification (KYB) sessions that never received an `expires_at`).","uniqueKey":"expires_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"expires_at","typeLabel":"string\u003cdate-time> | null"},"registry_checks":{"oneOf":[{"type":"array","description":"Company registry checks. Present only when `session_kind = business`. Each item wraps the full company-registry payload.","items":{"type":"object","description":"One company registry check — the full company-registry payload enriched with ownership structure and warnings. Present only when `session_kind = business`.","properties":{"status":{"type":"string","description":"Feature lifecycle status.","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].status","typeLabel":"string"},"node_id":{"oneOf":[{"type":"string","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].node_id.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].node_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].node_id","typeLabel":"string | null"},"data_resolved":{"type":"boolean","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].data_resolved","typeLabel":"boolean"},"company":{"type":"object","description":"Full registry payload for the company (registry record merged with any user-provided or console-edited data).","properties":{"uuid":{"type":"string","format":"uuid","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.uuid","typeLabel":"string\u003cuuid>"},"node_id":{"oneOf":[{"type":"string","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.node_id.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.node_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.node_id","typeLabel":"string | null"},"status":{"type":"string","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.status","typeLabel":"string"},"registry_status":{"oneOf":[{"type":"string","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.registry_status.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.registry_status.oneOf.1","typeLabel":"null"}],"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.registry_status","typeLabel":"string | null"},"data_resolved":{"type":"boolean","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.data_resolved","typeLabel":"boolean"},"company_name":{"type":"string","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.company_name","typeLabel":"string"},"registration_number":{"oneOf":[{"type":"string","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.registration_number.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.registration_number.oneOf.1","typeLabel":"null"}],"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.registration_number","typeLabel":"string | null"},"country_code":{"type":"string","description":"Country of incorporation (ISO 3166-1 alpha-2, e.g. `GB`, `DE`, `US`).","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.country_code","typeLabel":"string"},"region":{"oneOf":[{"type":"string","description":"ISO 3166-2 subdivision code when applicable (e.g. `CA`, `NY` for US states).","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.region.oneOf.0","typeLabel":"string"},{"type":"null","description":"ISO 3166-2 subdivision code when applicable (e.g. `CA`, `NY` for US states).","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.region.oneOf.1","typeLabel":"null"}],"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.region","typeLabel":"string | null"},"company_type":{"oneOf":[{"type":"string","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.company_type.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.company_type.oneOf.1","typeLabel":"null"}],"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.company_type","typeLabel":"string | null"},"incorporation_date":{"oneOf":[{"type":"string","format":"date","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.incorporation_date.oneOf.0","typeLabel":"string\u003cdate>"},{"type":"null","format":"date","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.incorporation_date.oneOf.1","typeLabel":"null"}],"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.incorporation_date","typeLabel":"string\u003cdate> | null"},"registered_address":{"oneOf":[{"type":"string","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.registered_address.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.registered_address.oneOf.1","typeLabel":"null"}],"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.registered_address","typeLabel":"string | null"},"tax_number":{"oneOf":[{"type":"string","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.tax_number.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.tax_number.oneOf.1","typeLabel":"null"}],"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.tax_number","typeLabel":"string | null"},"risk_level":{"oneOf":[{"type":"string","enum":["LOW","MEDIUM","HIGH"],"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.risk_level.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["LOW","MEDIUM","HIGH"],"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.risk_level.oneOf.1","typeLabel":"null"}],"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.risk_level","typeLabel":"enum\u003cstring> | null"},"verification_status":{"oneOf":[{"type":"string","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.verification_status.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.verification_status.oneOf.1","typeLabel":"null"}],"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.verification_status","typeLabel":"string | null"},"is_from_registry":{"type":"boolean","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.is_from_registry","typeLabel":"boolean"},"fetch_status":{"oneOf":[{"type":"string","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.fetch_status.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.fetch_status.oneOf.1","typeLabel":"null"}],"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.fetch_status","typeLabel":"string | null"},"alternative_names":{"oneOf":[{"type":"string","description":"Alternative, trading, former or original-language company names as text, when reported.","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.alternative_names.oneOf.0","typeLabel":"string"},{"type":"null","description":"Alternative, trading, former or original-language company names as text, when reported.","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.alternative_names.oneOf.1","typeLabel":"null"}],"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.alternative_names","typeLabel":"string | null"},"nature_of_business":{"oneOf":[{"type":"string","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.nature_of_business.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.nature_of_business.oneOf.1","typeLabel":"null"}],"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.nature_of_business","typeLabel":"string | null"},"registered_capital":{"oneOf":[{"type":"string","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.registered_capital.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.registered_capital.oneOf.1","typeLabel":"null"}],"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.registered_capital","typeLabel":"string | null"},"registered_capital_amount":{"oneOf":[{"type":"string","format":"decimal","description":"Registered/share capital amount as a decimal string (e.g. `\"100.00\"`), parsed from the registry filing. `null` when not available.","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.registered_capital_amount.oneOf.0","typeLabel":"string\u003cdecimal>"},{"type":"null","format":"decimal","description":"Registered/share capital amount as a decimal string (e.g. `\"100.00\"`), parsed from the registry filing. `null` when not available.","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.registered_capital_amount.oneOf.1","typeLabel":"null"}],"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.registered_capital_amount","typeLabel":"string\u003cdecimal> | null"},"registered_capital_currency":{"oneOf":[{"type":"string","description":"ISO 4217 currency code of `registered_capital_amount` (e.g. `\"GBP\"`). `null` when not available.","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.registered_capital_currency.oneOf.0","typeLabel":"string"},{"type":"null","description":"ISO 4217 currency code of `registered_capital_amount` (e.g. `\"GBP\"`). `null` when not available.","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.registered_capital_currency.oneOf.1","typeLabel":"null"}],"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.registered_capital_currency","typeLabel":"string | null"},"website":{"oneOf":[{"type":"string","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.website.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.website.oneOf.1","typeLabel":"null"}],"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.website","typeLabel":"string | null"},"email":{"oneOf":[{"type":"string","format":"email","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.email.oneOf.0","typeLabel":"string\u003cemail>"},{"type":"null","format":"email","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.email.oneOf.1","typeLabel":"null"}],"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.email","typeLabel":"string\u003cemail> | null"},"phone":{"oneOf":[{"type":"string","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.phone.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.phone.oneOf.1","typeLabel":"null"}],"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.phone","typeLabel":"string | null"},"legal_entity_identifier":{"oneOf":[{"type":"string","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.legal_entity_identifier.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.legal_entity_identifier.oneOf.1","typeLabel":"null"}],"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.legal_entity_identifier","typeLabel":"string | null"},"location_of_registration":{"oneOf":[{"type":"string","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.location_of_registration.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.location_of_registration.oneOf.1","typeLabel":"null"}],"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.location_of_registration","typeLabel":"string | null"},"vat_number":{"oneOf":[{"type":"string","description":"EU VAT number, when collected during the hosted registry step or edited afterwards.","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.vat_number.oneOf.0","typeLabel":"string"},{"type":"null","description":"EU VAT number, when collected during the hosted registry step or edited afterwards.","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.vat_number.oneOf.1","typeLabel":"null"}],"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.vat_number","typeLabel":"string | null"},"vat_validation_status":{"type":"string","enum":["valid","invalid","format_valid","invalid_format","could_not_validate","not_applicable"],"description":"Result of validating the VAT number or, when there is none, the `tax_number`, at registry submit. `valid` / `invalid`: decided by the official registry of the country (EU VIES, Norway, Switzerland, Brazil, Colombia, Costa Rica, Ecuador, Paraguay; Poland also by its domestic VAT register). `format_valid` / `invalid_format`: decided by the country's format and check-digit rules where no registry can be queried. `could_not_validate`: the registry was unavailable. `not_applicable`: no number, a country without registry or rules, or a sandbox session.","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.vat_validation_status","typeLabel":"enum\u003cstring>"},"vat_validated_number":{"oneOf":[{"type":"string","description":"The number that was checked, as the source knows it (for example the VAT number derived from a French SIREN or a Dutch RSIN). `null` when no check ran.","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.vat_validated_number.oneOf.0","typeLabel":"string"},{"type":"null","description":"The number that was checked, as the source knows it (for example the VAT number derived from a French SIREN or a Dutch RSIN). `null` when no check ran.","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.vat_validated_number.oneOf.1","typeLabel":"null"}],"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.vat_validated_number","typeLabel":"string | null"},"vat_validation_source":{"oneOf":[{"type":"string","enum":["eu_vies","pl_vat_white_list","no_brreg","ch_uid_register","br_receita_federal","co_rues","cr_hacienda","ec_sri","py_dnit","format_rules",null],"description":"The source that decided `vat_validation_status`: an official registry, or `format_rules`. `null` when no check ran.","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.vat_validation_source.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["eu_vies","pl_vat_white_list","no_brreg","ch_uid_register","br_receita_federal","co_rues","cr_hacienda","ec_sri","py_dnit","format_rules",null],"description":"The source that decided `vat_validation_status`: an official registry, or `format_rules`. `null` when no check ran.","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.vat_validation_source.oneOf.1","typeLabel":"null"}],"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.vat_validation_source","typeLabel":"enum\u003cstring> | null"},"vat_validated_name":{"oneOf":[{"type":"string","description":"Name registered with the source that validated the number, when it discloses one. Only set when the status is `valid`.","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.vat_validated_name.oneOf.0","typeLabel":"string"},{"type":"null","description":"Name registered with the source that validated the number, when it discloses one. Only set when the status is `valid`.","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.vat_validated_name.oneOf.1","typeLabel":"null"}],"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.vat_validated_name","typeLabel":"string | null"},"vat_validated_address":{"oneOf":[{"type":"string","description":"Address registered with the source that validated the number, when it discloses one. Only set when the status is `valid`.","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.vat_validated_address.oneOf.0","typeLabel":"string"},{"type":"null","description":"Address registered with the source that validated the number, when it discloses one. Only set when the status is `valid`.","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.vat_validated_address.oneOf.1","typeLabel":"null"}],"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.vat_validated_address","typeLabel":"string | null"},"vat_checked_at":{"oneOf":[{"type":"string","format":"date-time","description":"Timestamp of the check. `null` when no check ran.","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.vat_checked_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","description":"Timestamp of the check. `null` when no check ran.","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.vat_checked_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.vat_checked_at","typeLabel":"string\u003cdate-time> | null"},"financial_summary":{"oneOf":[{"type":"object","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.financial_summary.oneOf.0","typeLabel":"object"},{"type":"null","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.financial_summary.oneOf.1","typeLabel":"null"}],"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.financial_summary","typeLabel":"object | null"},"officers":{"type":"array","items":{"type":"object","properties":{"uuid":{"type":"string","format":"uuid","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.officers.items.[INDEX].uuid","typeLabel":"string\u003cuuid>"},"name":{"type":"string","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.officers.items.[INDEX].name","typeLabel":"string"},"designation":{"oneOf":[{"type":"string","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.officers.items.[INDEX].designation.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.officers.items.[INDEX].designation.oneOf.1","typeLabel":"null"}],"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.officers.items.[INDEX].designation","typeLabel":"string | null"},"role":{"oneOf":[{"type":"string","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.officers.items.[INDEX].role.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.officers.items.[INDEX].role.oneOf.1","typeLabel":"null"}],"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.officers.items.[INDEX].role","typeLabel":"string | null"},"nationality":{"oneOf":[{"type":"string","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.officers.items.[INDEX].nationality.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.officers.items.[INDEX].nationality.oneOf.1","typeLabel":"null"}],"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.officers.items.[INDEX].nationality","typeLabel":"string | null"},"is_active":{"type":"boolean","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.officers.items.[INDEX].is_active","typeLabel":"boolean"},"kyc_status":{"oneOf":[{"type":"string","enum":["Approved","Declined","Pending"],"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.officers.items.[INDEX].kyc_status.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["Approved","Declined","Pending"],"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.officers.items.[INDEX].kyc_status.oneOf.1","typeLabel":"null"}],"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.officers.items.[INDEX].kyc_status","typeLabel":"enum\u003cstring> | null"},"kyc_session_url":{"oneOf":[{"type":"string","format":"uri","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.officers.items.[INDEX].kyc_session_url.oneOf.0","typeLabel":"string\u003curi>"},{"type":"null","format":"uri","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.officers.items.[INDEX].kyc_session_url.oneOf.1","typeLabel":"null"}],"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.officers.items.[INDEX].kyc_session_url","typeLabel":"string\u003curi> | null"},"first_name":{"oneOf":[{"type":"string","description":"Given name when explicitly reported by the registry; not inferred from the full name.","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.officers.items.[INDEX].first_name.oneOf.0","typeLabel":"string"},{"type":"null","description":"Given name when explicitly reported by the registry; not inferred from the full name.","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.officers.items.[INDEX].first_name.oneOf.1","typeLabel":"null"}],"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.officers.items.[INDEX].first_name","typeLabel":"string | null"},"last_name":{"oneOf":[{"type":"string","description":"Family name when explicitly reported by the registry.","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.officers.items.[INDEX].last_name.oneOf.0","typeLabel":"string"},{"type":"null","description":"Family name when explicitly reported by the registry.","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.officers.items.[INDEX].last_name.oneOf.1","typeLabel":"null"}],"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.officers.items.[INDEX].last_name","typeLabel":"string | null"},"address":{"oneOf":[{"type":"string","description":"Officer address reported by the registry.","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.officers.items.[INDEX].address.oneOf.0","typeLabel":"string"},{"type":"null","description":"Officer address reported by the registry.","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.officers.items.[INDEX].address.oneOf.1","typeLabel":"null"}],"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.officers.items.[INDEX].address","typeLabel":"string | null"},"appointment_date":{"oneOf":[{"type":"string","description":"Date the officer was appointed.","format":"date","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.officers.items.[INDEX].appointment_date.oneOf.0","typeLabel":"string\u003cdate>"},{"type":"null","description":"Date the officer was appointed.","format":"date","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.officers.items.[INDEX].appointment_date.oneOf.1","typeLabel":"null"}],"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.officers.items.[INDEX].appointment_date","typeLabel":"string\u003cdate> | null"},"termination_date":{"oneOf":[{"type":"string","description":"Date the appointment ended, when reported.","format":"date","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.officers.items.[INDEX].termination_date.oneOf.0","typeLabel":"string\u003cdate>"},{"type":"null","description":"Date the appointment ended, when reported.","format":"date","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.officers.items.[INDEX].termination_date.oneOf.1","typeLabel":"null"}],"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.officers.items.[INDEX].termination_date","typeLabel":"string\u003cdate> | null"},"date_of_birth":{"oneOf":[{"type":"string","description":"Complete registry-reported birth date. Null when only a birth year or month is known.","format":"date","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.officers.items.[INDEX].date_of_birth.oneOf.0","typeLabel":"string\u003cdate>"},{"type":"null","description":"Complete registry-reported birth date. Null when only a birth year or month is known.","format":"date","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.officers.items.[INDEX].date_of_birth.oneOf.1","typeLabel":"null"}],"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.officers.items.[INDEX].date_of_birth","typeLabel":"string\u003cdate> | null"},"date_of_birth_year":{"oneOf":[{"type":"integer","minimum":1,"maximum":9999,"description":"Registry-reported birth year, including when the full date is unavailable.","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.officers.items.[INDEX].date_of_birth_year.oneOf.0","typeLabel":"integer"},{"type":"null","minimum":1,"maximum":9999,"description":"Registry-reported birth year, including when the full date is unavailable.","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.officers.items.[INDEX].date_of_birth_year.oneOf.1","typeLabel":"null"}],"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.officers.items.[INDEX].date_of_birth_year","typeLabel":"integer | null"},"date_of_birth_month":{"oneOf":[{"type":"integer","minimum":1,"maximum":12,"description":"Registry-reported birth month. Null when only the year is known.","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.officers.items.[INDEX].date_of_birth_month.oneOf.0","typeLabel":"integer"},{"type":"null","minimum":1,"maximum":12,"description":"Registry-reported birth month. Null when only the year is known.","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.officers.items.[INDEX].date_of_birth_month.oneOf.1","typeLabel":"null"}],"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.officers.items.[INDEX].date_of_birth_month","typeLabel":"integer | null"}},"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.officers.items.[INDEX]","typeLabel":"object"},"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.officers","typeLabel":"object[]"},"beneficial_owners":{"type":"array","items":{"type":"object","properties":{"uuid":{"type":"string","format":"uuid","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.beneficial_owners.items.[INDEX].uuid","typeLabel":"string\u003cuuid>"},"name":{"type":"string","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.beneficial_owners.items.[INDEX].name","typeLabel":"string"},"first_name":{"oneOf":[{"type":"string","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.beneficial_owners.items.[INDEX].first_name.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.beneficial_owners.items.[INDEX].first_name.oneOf.1","typeLabel":"null"}],"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.beneficial_owners.items.[INDEX].first_name","typeLabel":"string | null"},"last_name":{"oneOf":[{"type":"string","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.beneficial_owners.items.[INDEX].last_name.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.beneficial_owners.items.[INDEX].last_name.oneOf.1","typeLabel":"null"}],"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.beneficial_owners.items.[INDEX].last_name","typeLabel":"string | null"},"entity_type":{"type":"string","enum":["person","company"],"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.beneficial_owners.items.[INDEX].entity_type","typeLabel":"enum\u003cstring>"},"roles":{"type":"array","items":{"type":"string","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.beneficial_owners.items.[INDEX].roles.items.[INDEX]","typeLabel":"string"},"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.beneficial_owners.items.[INDEX].roles","typeLabel":"string[]"},"ownership_min_shares":{"oneOf":[{"type":"string","description":"Lower bound of the ownership percentage as reported by the registry. Free-form string (e.g. `\"25.00\"`, `\"50\"`); use `effective_ownership_percent` for a parsed numeric value.","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.beneficial_owners.items.[INDEX].ownership_min_shares.oneOf.0","typeLabel":"string"},{"type":"null","description":"Lower bound of the ownership percentage as reported by the registry. Free-form string (e.g. `\"25.00\"`, `\"50\"`); use `effective_ownership_percent` for a parsed numeric value.","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.beneficial_owners.items.[INDEX].ownership_min_shares.oneOf.1","typeLabel":"null"}],"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.beneficial_owners.items.[INDEX].ownership_min_shares","typeLabel":"string | null"},"ownership_max_shares":{"oneOf":[{"type":"string","description":"Upper bound of the ownership percentage as reported by the registry. Free-form string; use `effective_ownership_percent` for a parsed numeric value.","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.beneficial_owners.items.[INDEX].ownership_max_shares.oneOf.0","typeLabel":"string"},{"type":"null","description":"Upper bound of the ownership percentage as reported by the registry. Free-form string; use `effective_ownership_percent` for a parsed numeric value.","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.beneficial_owners.items.[INDEX].ownership_max_shares.oneOf.1","typeLabel":"null"}],"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.beneficial_owners.items.[INDEX].ownership_max_shares","typeLabel":"string | null"},"is_active":{"type":"boolean","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.beneficial_owners.items.[INDEX].is_active","typeLabel":"boolean"},"kyc_status":{"oneOf":[{"type":"string","enum":["Approved","Declined","Pending"],"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.beneficial_owners.items.[INDEX].kyc_status.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["Approved","Declined","Pending"],"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.beneficial_owners.items.[INDEX].kyc_status.oneOf.1","typeLabel":"null"}],"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.beneficial_owners.items.[INDEX].kyc_status","typeLabel":"enum\u003cstring> | null"},"kyc_session_url":{"oneOf":[{"type":"string","format":"uri","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.beneficial_owners.items.[INDEX].kyc_session_url.oneOf.0","typeLabel":"string\u003curi>"},{"type":"null","format":"uri","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.beneficial_owners.items.[INDEX].kyc_session_url.oneOf.1","typeLabel":"null"}],"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.beneficial_owners.items.[INDEX].kyc_session_url","typeLabel":"string\u003curi> | null"},"effective_ownership_percent":{"oneOf":[{"type":"number","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.beneficial_owners.items.[INDEX].effective_ownership_percent.oneOf.0","typeLabel":"number"},{"type":"null","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.beneficial_owners.items.[INDEX].effective_ownership_percent.oneOf.1","typeLabel":"null"}],"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.beneficial_owners.items.[INDEX].effective_ownership_percent","typeLabel":"number | null"},"company_name":{"oneOf":[{"type":"string","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.beneficial_owners.items.[INDEX].company_name.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.beneficial_owners.items.[INDEX].company_name.oneOf.1","typeLabel":"null"}],"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.beneficial_owners.items.[INDEX].company_name","typeLabel":"string | null"},"registration_number":{"oneOf":[{"type":"string","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.beneficial_owners.items.[INDEX].registration_number.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.beneficial_owners.items.[INDEX].registration_number.oneOf.1","typeLabel":"null"}],"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.beneficial_owners.items.[INDEX].registration_number","typeLabel":"string | null"},"country_of_birth":{"oneOf":[{"type":"string","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.beneficial_owners.items.[INDEX].country_of_birth.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.beneficial_owners.items.[INDEX].country_of_birth.oneOf.1","typeLabel":"null"}],"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.beneficial_owners.items.[INDEX].country_of_birth","typeLabel":"string | null"},"email":{"oneOf":[{"type":"string","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.beneficial_owners.items.[INDEX].email.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.beneficial_owners.items.[INDEX].email.oneOf.1","typeLabel":"null"}],"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.beneficial_owners.items.[INDEX].email","typeLabel":"string | null"},"nationality":{"oneOf":[{"type":"string","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.beneficial_owners.items.[INDEX].nationality.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.beneficial_owners.items.[INDEX].nationality.oneOf.1","typeLabel":"null"}],"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.beneficial_owners.items.[INDEX].nationality","typeLabel":"string | null"},"designation":{"oneOf":[{"type":"string","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.beneficial_owners.items.[INDEX].designation.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.beneficial_owners.items.[INDEX].designation.oneOf.1","typeLabel":"null"}],"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.beneficial_owners.items.[INDEX].designation","typeLabel":"string | null"},"voting_min_shares":{"oneOf":[{"type":"string","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.beneficial_owners.items.[INDEX].voting_min_shares.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.beneficial_owners.items.[INDEX].voting_min_shares.oneOf.1","typeLabel":"null"}],"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.beneficial_owners.items.[INDEX].voting_min_shares","typeLabel":"string | null"},"voting_max_shares":{"oneOf":[{"type":"string","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.beneficial_owners.items.[INDEX].voting_max_shares.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.beneficial_owners.items.[INDEX].voting_max_shares.oneOf.1","typeLabel":"null"}],"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.beneficial_owners.items.[INDEX].voting_max_shares","typeLabel":"string | null"},"date_of_birth":{"oneOf":[{"type":"string","description":"Complete birth date when reported.","format":"date","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.beneficial_owners.items.[INDEX].date_of_birth.oneOf.0","typeLabel":"string\u003cdate>"},{"type":"null","description":"Complete birth date when reported.","format":"date","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.beneficial_owners.items.[INDEX].date_of_birth.oneOf.1","typeLabel":"null"}],"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.beneficial_owners.items.[INDEX].date_of_birth","typeLabel":"string\u003cdate> | null"},"appointment_date":{"oneOf":[{"type":"string","description":"Appointment date when reported.","format":"date","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.beneficial_owners.items.[INDEX].appointment_date.oneOf.0","typeLabel":"string\u003cdate>"},{"type":"null","description":"Appointment date when reported.","format":"date","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.beneficial_owners.items.[INDEX].appointment_date.oneOf.1","typeLabel":"null"}],"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.beneficial_owners.items.[INDEX].appointment_date","typeLabel":"string\u003cdate> | null"},"shareholding":{"oneOf":[{"type":"object","description":"What an owner holds, in the same shape for every country and registry source. Null when the registry states no holding. A band (for example a UK PSC's 25-50%) is not a stake: `percentage` is null and the band stays in `ownership_min_shares` / `ownership_max_shares`.","properties":{"share_class":{"oneOf":[{"type":"string","description":"Share class or type as the registry names it.","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.beneficial_owners.items.[INDEX].shareholding.oneOf.0.share_class.oneOf.0","typeLabel":"string"},{"type":"null","description":"Share class or type as the registry names it.","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.beneficial_owners.items.[INDEX].shareholding.oneOf.0.share_class.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.beneficial_owners.items.[INDEX].shareholding.oneOf.0.share_class","typeLabel":"string | null"},"number_of_shares":{"oneOf":[{"type":"number","description":"Number of shares held.","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.beneficial_owners.items.[INDEX].shareholding.oneOf.0.number_of_shares.oneOf.0","typeLabel":"number"},{"type":"null","description":"Number of shares held.","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.beneficial_owners.items.[INDEX].shareholding.oneOf.0.number_of_shares.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.beneficial_owners.items.[INDEX].shareholding.oneOf.0.number_of_shares","typeLabel":"number | null"},"currency":{"oneOf":[{"type":"string","description":"ISO 4217 currency of the values below.","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.beneficial_owners.items.[INDEX].shareholding.oneOf.0.currency.oneOf.0","typeLabel":"string"},{"type":"null","description":"ISO 4217 currency of the values below.","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.beneficial_owners.items.[INDEX].shareholding.oneOf.0.currency.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.beneficial_owners.items.[INDEX].shareholding.oneOf.0.currency","typeLabel":"string | null"},"nominal_value":{"oneOf":[{"type":"number","description":"Nominal value per share.","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.beneficial_owners.items.[INDEX].shareholding.oneOf.0.nominal_value.oneOf.0","typeLabel":"number"},{"type":"null","description":"Nominal value per share.","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.beneficial_owners.items.[INDEX].shareholding.oneOf.0.nominal_value.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.beneficial_owners.items.[INDEX].shareholding.oneOf.0.nominal_value","typeLabel":"number | null"},"total_value":{"oneOf":[{"type":"number","description":"Total value of the holding.","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.beneficial_owners.items.[INDEX].shareholding.oneOf.0.total_value.oneOf.0","typeLabel":"number"},{"type":"null","description":"Total value of the holding.","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.beneficial_owners.items.[INDEX].shareholding.oneOf.0.total_value.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.beneficial_owners.items.[INDEX].shareholding.oneOf.0.total_value","typeLabel":"number | null"},"percentage":{"oneOf":[{"type":"number","description":"Exact stake in percent, to four decimal places.","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.beneficial_owners.items.[INDEX].shareholding.oneOf.0.percentage.oneOf.0","typeLabel":"number"},{"type":"null","description":"Exact stake in percent, to four decimal places.","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.beneficial_owners.items.[INDEX].shareholding.oneOf.0.percentage.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.beneficial_owners.items.[INDEX].shareholding.oneOf.0.percentage","typeLabel":"number | null"}},"required":["share_class","number_of_shares","currency","nominal_value","total_value","percentage"],"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.beneficial_owners.items.[INDEX].shareholding.oneOf.0","typeLabel":"object"},{"type":"null","description":"What an owner holds, in the same shape for every country and registry source. Null when the registry states no holding. A band (for example a UK PSC's 25-50%) is not a stake: `percentage` is null and the band stays in `ownership_min_shares` / `ownership_max_shares`.","properties":{"share_class":{"oneOf":[{"type":"string","description":"Share class or type as the registry names it."},{"type":"null","description":"Share class or type as the registry names it."}]},"number_of_shares":{"oneOf":[{"type":"number","description":"Number of shares held."},{"type":"null","description":"Number of shares held."}]},"currency":{"oneOf":[{"type":"string","description":"ISO 4217 currency of the values below."},{"type":"null","description":"ISO 4217 currency of the values below."}]},"nominal_value":{"oneOf":[{"type":"number","description":"Nominal value per share."},{"type":"null","description":"Nominal value per share."}]},"total_value":{"oneOf":[{"type":"number","description":"Total value of the holding."},{"type":"null","description":"Total value of the holding."}]},"percentage":{"oneOf":[{"type":"number","description":"Exact stake in percent, to four decimal places."},{"type":"null","description":"Exact stake in percent, to four decimal places."}]}},"required":["share_class","number_of_shares","currency","nominal_value","total_value","percentage"],"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.beneficial_owners.items.[INDEX].shareholding.oneOf.1","typeLabel":"null"}],"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.beneficial_owners.items.[INDEX].shareholding","typeLabel":"object | null"}},"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.beneficial_owners.items.[INDEX]","typeLabel":"object"},"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.beneficial_owners","typeLabel":"object[]"},"addresses":{"oneOf":[{"type":"array","description":"Every address the registry states, one canonical shape. Null when it states none.","items":{"type":"object","description":"An address the registry states, in the same shape for every country and registry source. Every key is always present; a part the registry does not publish is null.","properties":{"type":{"oneOf":[{"type":"string","description":"Address type in lower case: `registered` for the registered office; other types as the registry names them (for example `postal`, `office`). `null` when the registry does not say what the address is.","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.addresses.oneOf.0.items.[INDEX].type.oneOf.0","typeLabel":"string"},{"type":"null","description":"Address type in lower case: `registered` for the registered office; other types as the registry names them (for example `postal`, `office`). `null` when the registry does not say what the address is.","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.addresses.oneOf.0.items.[INDEX].type.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.addresses.oneOf.0.items.[INDEX].type","typeLabel":"string | null"},"address":{"type":"string","description":"The full address as one line. Always present on every address.","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.addresses.oneOf.0.items.[INDEX].address","typeLabel":"string"},"street":{"oneOf":[{"type":"string","description":"Street and number.","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.addresses.oneOf.0.items.[INDEX].street.oneOf.0","typeLabel":"string"},{"type":"null","description":"Street and number.","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.addresses.oneOf.0.items.[INDEX].street.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.addresses.oneOf.0.items.[INDEX].street","typeLabel":"string | null"},"city":{"oneOf":[{"type":"string","description":"City or locality.","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.addresses.oneOf.0.items.[INDEX].city.oneOf.0","typeLabel":"string"},{"type":"null","description":"City or locality.","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.addresses.oneOf.0.items.[INDEX].city.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.addresses.oneOf.0.items.[INDEX].city","typeLabel":"string | null"},"postal_code":{"oneOf":[{"type":"string","description":"Postal code.","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.addresses.oneOf.0.items.[INDEX].postal_code.oneOf.0","typeLabel":"string"},{"type":"null","description":"Postal code.","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.addresses.oneOf.0.items.[INDEX].postal_code.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.addresses.oneOf.0.items.[INDEX].postal_code","typeLabel":"string | null"},"region":{"oneOf":[{"type":"string","description":"Region, state or province.","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.addresses.oneOf.0.items.[INDEX].region.oneOf.0","typeLabel":"string"},{"type":"null","description":"Region, state or province.","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.addresses.oneOf.0.items.[INDEX].region.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.addresses.oneOf.0.items.[INDEX].region","typeLabel":"string | null"},"country_code":{"oneOf":[{"type":"string","description":"ISO 3166-1 alpha-2 country code.","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.addresses.oneOf.0.items.[INDEX].country_code.oneOf.0","typeLabel":"string"},{"type":"null","description":"ISO 3166-1 alpha-2 country code.","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.addresses.oneOf.0.items.[INDEX].country_code.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.addresses.oneOf.0.items.[INDEX].country_code","typeLabel":"string | null"},"description":{"oneOf":[{"type":"string","description":"The registry's own label for the address, when it gives one.","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.addresses.oneOf.0.items.[INDEX].description.oneOf.0","typeLabel":"string"},{"type":"null","description":"The registry's own label for the address, when it gives one.","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.addresses.oneOf.0.items.[INDEX].description.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.addresses.oneOf.0.items.[INDEX].description","typeLabel":"string | null"}},"required":["type","address","street","city","postal_code","region","country_code","description"],"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.addresses.oneOf.0.items.[INDEX]","typeLabel":"object"},"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.addresses.oneOf.0","typeLabel":"object[]"},{"type":"null","description":"Every address the registry states, one canonical shape. Null when it states none.","items":{"type":"object","description":"An address the registry states, in the same shape for every country and registry source. Every key is always present; a part the registry does not publish is null.","properties":{"type":{"oneOf":[{"type":"string","description":"Address type in lower case: `registered` for the registered office; other types as the registry names them (for example `postal`, `office`). `null` when the registry does not say what the address is."},{"type":"null","description":"Address type in lower case: `registered` for the registered office; other types as the registry names them (for example `postal`, `office`). `null` when the registry does not say what the address is."}]},"address":{"type":"string","description":"The full address as one line. Always present on every address."},"street":{"oneOf":[{"type":"string","description":"Street and number."},{"type":"null","description":"Street and number."}]},"city":{"oneOf":[{"type":"string","description":"City or locality."},{"type":"null","description":"City or locality."}]},"postal_code":{"oneOf":[{"type":"string","description":"Postal code."},{"type":"null","description":"Postal code."}]},"region":{"oneOf":[{"type":"string","description":"Region, state or province."},{"type":"null","description":"Region, state or province."}]},"country_code":{"oneOf":[{"type":"string","description":"ISO 3166-1 alpha-2 country code."},{"type":"null","description":"ISO 3166-1 alpha-2 country code."}]},"description":{"oneOf":[{"type":"string","description":"The registry's own label for the address, when it gives one."},{"type":"null","description":"The registry's own label for the address, when it gives one."}]}},"required":["type","address","street","city","postal_code","region","country_code","description"]},"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.addresses.oneOf.1","typeLabel":"null"}],"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.addresses","typeLabel":"object[] | null"},"industries":{"oneOf":[{"type":"array","description":"The activities the registry classifies the company under, one canonical shape. Null when it states none.","items":{"type":"object","description":"An activity the registry classifies the company under, in the same shape for every country and registry source.","properties":{"code":{"oneOf":[{"type":"string","description":"Activity code as the registry prints it (for example `73110`).","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.industries.oneOf.0.items.[INDEX].code.oneOf.0","typeLabel":"string"},{"type":"null","description":"Activity code as the registry prints it (for example `73110`).","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.industries.oneOf.0.items.[INDEX].code.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.industries.oneOf.0.items.[INDEX].code","typeLabel":"string | null"},"description":{"oneOf":[{"type":"string","description":"Activity label, when the registry publishes one.","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.industries.oneOf.0.items.[INDEX].description.oneOf.0","typeLabel":"string"},{"type":"null","description":"Activity label, when the registry publishes one.","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.industries.oneOf.0.items.[INDEX].description.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.industries.oneOf.0.items.[INDEX].description","typeLabel":"string | null"},"scheme":{"oneOf":[{"type":"string","description":"Classification system, one name per system whichever source reported it: `UK SIC 2007`, `US SIC`, `NACE Rev. 2`, `NACE Rev. 2.1`, `NAF Rev. 2`, `CNAE`, `SBI`, `NOGA 2008`, `CAE Rev. 4`, `Canada SIC 1977`; other national systems keep the registry's own name. Null when the registry does not name the system.","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.industries.oneOf.0.items.[INDEX].scheme.oneOf.0","typeLabel":"string"},{"type":"null","description":"Classification system, one name per system whichever source reported it: `UK SIC 2007`, `US SIC`, `NACE Rev. 2`, `NACE Rev. 2.1`, `NAF Rev. 2`, `CNAE`, `SBI`, `NOGA 2008`, `CAE Rev. 4`, `Canada SIC 1977`; other national systems keep the registry's own name. Null when the registry does not name the system.","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.industries.oneOf.0.items.[INDEX].scheme.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.industries.oneOf.0.items.[INDEX].scheme","typeLabel":"string | null"},"is_primary":{"type":"boolean","description":"True for the company's main activity. Exactly one entry is primary when the list is not empty.","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.industries.oneOf.0.items.[INDEX].is_primary","typeLabel":"boolean"}},"required":["code","description","scheme","is_primary"],"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.industries.oneOf.0.items.[INDEX]","typeLabel":"object"},"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.industries.oneOf.0","typeLabel":"object[]"},{"type":"null","description":"The activities the registry classifies the company under, one canonical shape. Null when it states none.","items":{"type":"object","description":"An activity the registry classifies the company under, in the same shape for every country and registry source.","properties":{"code":{"oneOf":[{"type":"string","description":"Activity code as the registry prints it (for example `73110`)."},{"type":"null","description":"Activity code as the registry prints it (for example `73110`)."}]},"description":{"oneOf":[{"type":"string","description":"Activity label, when the registry publishes one."},{"type":"null","description":"Activity label, when the registry publishes one."}]},"scheme":{"oneOf":[{"type":"string","description":"Classification system, one name per system whichever source reported it: `UK SIC 2007`, `US SIC`, `NACE Rev. 2`, `NACE Rev. 2.1`, `NAF Rev. 2`, `CNAE`, `SBI`, `NOGA 2008`, `CAE Rev. 4`, `Canada SIC 1977`; other national systems keep the registry's own name. Null when the registry does not name the system."},{"type":"null","description":"Classification system, one name per system whichever source reported it: `UK SIC 2007`, `US SIC`, `NACE Rev. 2`, `NACE Rev. 2.1`, `NAF Rev. 2`, `CNAE`, `SBI`, `NOGA 2008`, `CAE Rev. 4`, `Canada SIC 1977`; other national systems keep the registry's own name. Null when the registry does not name the system."}]},"is_primary":{"type":"boolean","description":"True for the company's main activity. Exactly one entry is primary when the list is not empty."}},"required":["code","description","scheme","is_primary"]},"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.industries.oneOf.1","typeLabel":"null"}],"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.industries","typeLabel":"object[] | null"},"accounts":{"oneOf":[{"type":"object","additionalProperties":true,"description":"Registry filing dates, when available. Annual returns and general meetings use last_annual_return_date and last_agm_date; they are distinct from financial accounts.","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.accounts.oneOf.0","typeLabel":"object"},{"type":"null","additionalProperties":true,"description":"Registry filing dates, when available. Annual returns and general meetings use last_annual_return_date and last_agm_date; they are distinct from financial accounts.","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.accounts.oneOf.1","typeLabel":"null"}],"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.accounts","typeLabel":"object | null"},"registry_data":{"oneOf":[{"type":"object","description":"Didit's normalized registry detail for the company: the ownership outcome (`ownership_error`, `section_errors`, `ubo_resolution`, `lite_enrichment`), the corrections made with update-data, and registry facts that have no field of their own. It never carries the registry source's own record. Every key is optional and present only when the company has a value for it; new keys may be added. Read the canonical fields (`addresses`, `industries`, `ownership`, `beneficial_owners[].shareholding`) for anything they cover.","properties":{"company_name":{"type":"string","description":"Company name as corrected in the console.","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.registry_data.oneOf.0.company_name","typeLabel":"string"},"registration_number":{"type":"string","description":"Registration number as the registry or a console correction states it.","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.registry_data.oneOf.0.registration_number","typeLabel":"string"},"country_code":{"type":"string","description":"Country of the registration as the registry or a console correction states it.","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.registry_data.oneOf.0.country_code","typeLabel":"string"},"region":{"type":"string","description":"Region or state of the registration.","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.registry_data.oneOf.0.region","typeLabel":"string"},"incorporation_date":{"type":"string","description":"Incorporation date (ISO 8601).","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.registry_data.oneOf.0.incorporation_date","typeLabel":"string"},"registration_date":{"type":"string","description":"Registration date (ISO 8601) when the registry states one apart from the incorporation date.","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.registry_data.oneOf.0.registration_date","typeLabel":"string"},"dissolution_date":{"type":"string","description":"Dissolution date (ISO 8601) when the registry states one.","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.registry_data.oneOf.0.dissolution_date","typeLabel":"string"},"tax_number":{"type":"string","description":"Tax identification number.","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.registry_data.oneOf.0.tax_number","typeLabel":"string"},"vat_number":{"type":"string","description":"VAT number.","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.registry_data.oneOf.0.vat_number","typeLabel":"string"},"legal_address":{"type":"string","description":"Legal address as corrected in the console.","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.registry_data.oneOf.0.legal_address","typeLabel":"string"},"registered_address":{"type":"string","description":"Registered address as the registry states it.","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.registry_data.oneOf.0.registered_address","typeLabel":"string"},"company_type":{"type":"string","description":"Legal form.","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.registry_data.oneOf.0.company_type","typeLabel":"string"},"registry_status":{"type":"string","description":"Company status at the registry.","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.registry_data.oneOf.0.registry_status","typeLabel":"string"},"verification_status":{"type":"string","description":"Verification status.","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.registry_data.oneOf.0.verification_status","typeLabel":"string"},"alternative_names":{"type":"string","description":"Other names the company trades or traded under.","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.registry_data.oneOf.0.alternative_names","typeLabel":"string"},"nature_of_business":{"type":"string","description":"Activity description.","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.registry_data.oneOf.0.nature_of_business","typeLabel":"string"},"registered_capital":{"type":"string","description":"Registered capital as printed.","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.registry_data.oneOf.0.registered_capital","typeLabel":"string"},"registered_capital_amount":{"type":"string","description":"Registered capital amount, as a decimal string.","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.registry_data.oneOf.0.registered_capital_amount","typeLabel":"string"},"registered_capital_currency":{"type":"string","description":"Registered capital currency (ISO 4217).","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.registry_data.oneOf.0.registered_capital_currency","typeLabel":"string"},"website":{"type":"string","description":"Website.","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.registry_data.oneOf.0.website","typeLabel":"string"},"email":{"type":"string","description":"Contact email.","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.registry_data.oneOf.0.email","typeLabel":"string"},"phone":{"type":"string","description":"Contact phone.","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.registry_data.oneOf.0.phone","typeLabel":"string"},"legal_entity_identifier":{"type":"string","description":"Legal Entity Identifier (LEI).","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.registry_data.oneOf.0.legal_entity_identifier","typeLabel":"string"},"location_of_registration":{"type":"string","description":"Place of registration.","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.registry_data.oneOf.0.location_of_registration","typeLabel":"string"},"control_scheme":{"type":"string","description":"Governance scheme when the registry exposes it.","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.registry_data.oneOf.0.control_scheme","typeLabel":"string"},"ownership_error":{"type":"string","enum":["no_owners_on_record","no_natural_person_owner","ownership_section_unavailable","company_not_found","ambiguous_company_match","missing_registration_number","entity_type_not_covered","provider_unavailable","other"],"description":"Why a requested ownership tier was not delivered, in the same codes as `ownership.unavailable_reason`. `no_owners_on_record` (the registry answered and names no owner) and `ownership_section_unavailable` (the registry did not return the ownership section) are different findings.","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.registry_data.oneOf.0.ownership_error","typeLabel":"enum\u003cstring>"},"section_errors":{"type":"object","description":"Sections the registry did not return, keyed by section (`officers`, `shareholders`, `group_structure`). A section listed here was never delivered: an empty list next to it says nothing about the company.","additionalProperties":{"type":"object","description":"A section the registry did not return.","properties":{"status_code":{"oneOf":[{"type":"integer","description":"The status the registry answered for the section.","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.registry_data.oneOf.0.section_errors.additionalProperties.status_code.oneOf.0","typeLabel":"integer"},{"type":"null","description":"The status the registry answered for the section.","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.registry_data.oneOf.0.section_errors.additionalProperties.status_code.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.registry_data.oneOf.0.section_errors.additionalProperties.status_code","typeLabel":"integer | null"}},"required":["status_code"],"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.registry_data.oneOf.0.section_errors.additionalProperties","typeLabel":"object"},"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.registry_data.oneOf.0.section_errors","typeLabel":"object"},"ubo_resolution":{"type":"object","description":"How the UBO tier walked the ownership chain above the company.","properties":{"parent_chain":{"type":"array","description":"Corporate parents from the ultimate parent down to the company.","items":{"type":"object","description":"A company of the corporate group, by its registry identity.","properties":{"name":{"oneOf":[{"type":"string","description":"Company name.","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.registry_data.oneOf.0.ubo_resolution.parent_chain.items.[INDEX].name.oneOf.0","typeLabel":"string"},{"type":"null","description":"Company name.","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.registry_data.oneOf.0.ubo_resolution.parent_chain.items.[INDEX].name.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.registry_data.oneOf.0.ubo_resolution.parent_chain.items.[INDEX].name","typeLabel":"string | null"},"country_code":{"oneOf":[{"type":"string","description":"Country of registration.","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.registry_data.oneOf.0.ubo_resolution.parent_chain.items.[INDEX].country_code.oneOf.0","typeLabel":"string"},{"type":"null","description":"Country of registration.","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.registry_data.oneOf.0.ubo_resolution.parent_chain.items.[INDEX].country_code.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.registry_data.oneOf.0.ubo_resolution.parent_chain.items.[INDEX].country_code","typeLabel":"string | null"},"registration_number":{"oneOf":[{"type":"string","description":"Registration number.","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.registry_data.oneOf.0.ubo_resolution.parent_chain.items.[INDEX].registration_number.oneOf.0","typeLabel":"string"},{"type":"null","description":"Registration number.","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.registry_data.oneOf.0.ubo_resolution.parent_chain.items.[INDEX].registration_number.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.registry_data.oneOf.0.ubo_resolution.parent_chain.items.[INDEX].registration_number","typeLabel":"string | null"}},"required":["name","country_code","registration_number"],"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.registry_data.oneOf.0.ubo_resolution.parent_chain.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.registry_data.oneOf.0.ubo_resolution.parent_chain","typeLabel":"object[]"},"subsidiaries":{"type":"array","description":"Companies directly below the company in its corporate group.","items":{"type":"object","description":"A company of the corporate group, by its registry identity.","properties":{"name":{"oneOf":[{"type":"string","description":"Company name.","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.registry_data.oneOf.0.ubo_resolution.subsidiaries.items.[INDEX].name.oneOf.0","typeLabel":"string"},{"type":"null","description":"Company name.","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.registry_data.oneOf.0.ubo_resolution.subsidiaries.items.[INDEX].name.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.registry_data.oneOf.0.ubo_resolution.subsidiaries.items.[INDEX].name","typeLabel":"string | null"},"country_code":{"oneOf":[{"type":"string","description":"Country of registration.","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.registry_data.oneOf.0.ubo_resolution.subsidiaries.items.[INDEX].country_code.oneOf.0","typeLabel":"string"},{"type":"null","description":"Country of registration.","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.registry_data.oneOf.0.ubo_resolution.subsidiaries.items.[INDEX].country_code.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.registry_data.oneOf.0.ubo_resolution.subsidiaries.items.[INDEX].country_code","typeLabel":"string | null"},"registration_number":{"oneOf":[{"type":"string","description":"Registration number.","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.registry_data.oneOf.0.ubo_resolution.subsidiaries.items.[INDEX].registration_number.oneOf.0","typeLabel":"string"},{"type":"null","description":"Registration number.","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.registry_data.oneOf.0.ubo_resolution.subsidiaries.items.[INDEX].registration_number.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.registry_data.oneOf.0.ubo_resolution.subsidiaries.items.[INDEX].registration_number","typeLabel":"string | null"}},"required":["name","country_code","registration_number"],"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.registry_data.oneOf.0.ubo_resolution.subsidiaries.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.registry_data.oneOf.0.ubo_resolution.subsidiaries","typeLabel":"object[]"},"unresolved":{"type":"array","description":"Parts of the chain the registry could not resolve (the same entries as `ownership.unresolved`).","items":{"type":"object","properties":{"reason":{"type":"string","description":"Why, for example `no_group_structure_on_record`, `selected_company_not_in_group_structure` or `section_error`.","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.registry_data.oneOf.0.ubo_resolution.unresolved.items.[INDEX].reason","typeLabel":"string"},"section":{"oneOf":[{"type":"string","description":"The section concerned, for example `group_structure`.","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.registry_data.oneOf.0.ubo_resolution.unresolved.items.[INDEX].section.oneOf.0","typeLabel":"string"},{"type":"null","description":"The section concerned, for example `group_structure`.","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.registry_data.oneOf.0.ubo_resolution.unresolved.items.[INDEX].section.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.registry_data.oneOf.0.ubo_resolution.unresolved.items.[INDEX].section","typeLabel":"string | null"}},"required":["reason","section"],"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.registry_data.oneOf.0.ubo_resolution.unresolved.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.registry_data.oneOf.0.ubo_resolution.unresolved","typeLabel":"object[]"}},"required":["parent_chain","subsidiaries","unresolved"],"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.registry_data.oneOf.0.ubo_resolution","typeLabel":"object"},"lite_enrichment":{"type":"object","description":"Blank Lite profile fields another of the country's registry sources filled. The source is not named.","properties":{"fields":{"type":"array","items":{"type":"string","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.registry_data.oneOf.0.lite_enrichment.fields.items.[INDEX]","typeLabel":"string"},"description":"The company fields that were filled.","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.registry_data.oneOf.0.lite_enrichment.fields","typeLabel":"string[]"},"people_added":{"type":"integer","description":"How many officers or owners were added.","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.registry_data.oneOf.0.lite_enrichment.people_added","typeLabel":"integer"}},"required":["fields","people_added"],"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.registry_data.oneOf.0.lite_enrichment","typeLabel":"object"},"registry_metadata":{"type":"object","additionalProperties":{"oneOf":[{"type":"string","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.registry_data.oneOf.0.registry_metadata.additionalProperties.oneOf.0","typeLabel":"string"},{"type":"number","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.registry_data.oneOf.0.registry_metadata.additionalProperties.oneOf.1","typeLabel":"number"},{"type":"boolean","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.registry_data.oneOf.0.registry_metadata.additionalProperties.oneOf.2","typeLabel":"boolean"}],"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.registry_data.oneOf.0.registry_metadata.additionalProperties","typeLabel":"string | number | boolean"},"description":"The register's own fields for the company, keyed as the register names them, as plain values (legacy records). Only fields reviewed as registry facts are included.","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.registry_data.oneOf.0.registry_metadata","typeLabel":"object"},"registry_sources":{"type":"array","description":"The official registers the record was read from (legacy records). Other sources are not named.","items":{"type":"object","description":"An official register the record was read from. Only official government registers, regulators and the official identifier system are named; any other source is left out.","properties":{"name":{"type":"string","description":"Register name, for example `UK Companies House`.","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.registry_data.oneOf.0.registry_sources.items.[INDEX].name","typeLabel":"string"},"source_type":{"type":"string","enum":["official"],"description":"Always `official`.","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.registry_data.oneOf.0.registry_sources.items.[INDEX].source_type","typeLabel":"enum\u003cstring>"}},"required":["name","source_type"],"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.registry_data.oneOf.0.registry_sources.items.[INDEX]","typeLabel":"object"},"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.registry_data.oneOf.0.registry_sources","typeLabel":"object[]"},"previous_names":{"type":"array","items":{"type":"string","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.registry_data.oneOf.0.previous_names.items.[INDEX]","typeLabel":"string"},"description":"Names the company was registered under before (legacy records).","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.registry_data.oneOf.0.previous_names","typeLabel":"string[]"},"parent_companies":{"type":"array","items":{"type":"string","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.registry_data.oneOf.0.parent_companies.items.[INDEX]","typeLabel":"string"},"description":"Parent companies the registry names (legacy records).","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.registry_data.oneOf.0.parent_companies","typeLabel":"string[]"},"documents_available":{"type":"integer","description":"How many filings the registry offers for the company (legacy records).","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.registry_data.oneOf.0.documents_available","typeLabel":"integer"}},"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.registry_data.oneOf.0","typeLabel":"object"},{"type":"null","description":"Didit's normalized registry detail for the company: the ownership outcome (`ownership_error`, `section_errors`, `ubo_resolution`, `lite_enrichment`), the corrections made with update-data, and registry facts that have no field of their own. It never carries the registry source's own record. Every key is optional and present only when the company has a value for it; new keys may be added. Read the canonical fields (`addresses`, `industries`, `ownership`, `beneficial_owners[].shareholding`) for anything they cover.","properties":{"company_name":{"type":"string","description":"Company name as corrected in the console."},"registration_number":{"type":"string","description":"Registration number as the registry or a console correction states it."},"country_code":{"type":"string","description":"Country of the registration as the registry or a console correction states it."},"region":{"type":"string","description":"Region or state of the registration."},"incorporation_date":{"type":"string","description":"Incorporation date (ISO 8601)."},"registration_date":{"type":"string","description":"Registration date (ISO 8601) when the registry states one apart from the incorporation date."},"dissolution_date":{"type":"string","description":"Dissolution date (ISO 8601) when the registry states one."},"tax_number":{"type":"string","description":"Tax identification number."},"vat_number":{"type":"string","description":"VAT number."},"legal_address":{"type":"string","description":"Legal address as corrected in the console."},"registered_address":{"type":"string","description":"Registered address as the registry states it."},"company_type":{"type":"string","description":"Legal form."},"registry_status":{"type":"string","description":"Company status at the registry."},"verification_status":{"type":"string","description":"Verification status."},"alternative_names":{"type":"string","description":"Other names the company trades or traded under."},"nature_of_business":{"type":"string","description":"Activity description."},"registered_capital":{"type":"string","description":"Registered capital as printed."},"registered_capital_amount":{"type":"string","description":"Registered capital amount, as a decimal string."},"registered_capital_currency":{"type":"string","description":"Registered capital currency (ISO 4217)."},"website":{"type":"string","description":"Website."},"email":{"type":"string","description":"Contact email."},"phone":{"type":"string","description":"Contact phone."},"legal_entity_identifier":{"type":"string","description":"Legal Entity Identifier (LEI)."},"location_of_registration":{"type":"string","description":"Place of registration."},"control_scheme":{"type":"string","description":"Governance scheme when the registry exposes it."},"ownership_error":{"type":"string","enum":["no_owners_on_record","no_natural_person_owner","ownership_section_unavailable","company_not_found","ambiguous_company_match","missing_registration_number","entity_type_not_covered","provider_unavailable","other"],"description":"Why a requested ownership tier was not delivered, in the same codes as `ownership.unavailable_reason`. `no_owners_on_record` (the registry answered and names no owner) and `ownership_section_unavailable` (the registry did not return the ownership section) are different findings."},"section_errors":{"type":"object","description":"Sections the registry did not return, keyed by section (`officers`, `shareholders`, `group_structure`). A section listed here was never delivered: an empty list next to it says nothing about the company.","additionalProperties":{"type":"object","description":"A section the registry did not return.","properties":{"status_code":{"oneOf":[{"type":"integer","description":"The status the registry answered for the section."},{"type":"null","description":"The status the registry answered for the section."}]}},"required":["status_code"]}},"ubo_resolution":{"type":"object","description":"How the UBO tier walked the ownership chain above the company.","properties":{"parent_chain":{"type":"array","description":"Corporate parents from the ultimate parent down to the company.","items":{"type":"object","description":"A company of the corporate group, by its registry identity.","properties":{"name":{"oneOf":[{"type":"string","description":"Company name."},{"type":"null","description":"Company name."}]},"country_code":{"oneOf":[{"type":"string","description":"Country of registration."},{"type":"null","description":"Country of registration."}]},"registration_number":{"oneOf":[{"type":"string","description":"Registration number."},{"type":"null","description":"Registration number."}]}},"required":["name","country_code","registration_number"]}},"subsidiaries":{"type":"array","description":"Companies directly below the company in its corporate group.","items":{"type":"object","description":"A company of the corporate group, by its registry identity.","properties":{"name":{"oneOf":[{"type":"string","description":"Company name."},{"type":"null","description":"Company name."}]},"country_code":{"oneOf":[{"type":"string","description":"Country of registration."},{"type":"null","description":"Country of registration."}]},"registration_number":{"oneOf":[{"type":"string","description":"Registration number."},{"type":"null","description":"Registration number."}]}},"required":["name","country_code","registration_number"]}},"unresolved":{"type":"array","description":"Parts of the chain the registry could not resolve (the same entries as `ownership.unresolved`).","items":{"type":"object","properties":{"reason":{"type":"string","description":"Why, for example `no_group_structure_on_record`, `selected_company_not_in_group_structure` or `section_error`."},"section":{"oneOf":[{"type":"string","description":"The section concerned, for example `group_structure`."},{"type":"null","description":"The section concerned, for example `group_structure`."}]}},"required":["reason","section"]}}},"required":["parent_chain","subsidiaries","unresolved"]},"lite_enrichment":{"type":"object","description":"Blank Lite profile fields another of the country's registry sources filled. The source is not named.","properties":{"fields":{"type":"array","items":{"type":"string"},"description":"The company fields that were filled."},"people_added":{"type":"integer","description":"How many officers or owners were added."}},"required":["fields","people_added"]},"registry_metadata":{"type":"object","additionalProperties":{"oneOf":[{"type":"string"},{"type":"number"},{"type":"boolean"}]},"description":"The register's own fields for the company, keyed as the register names them, as plain values (legacy records). Only fields reviewed as registry facts are included."},"registry_sources":{"type":"array","description":"The official registers the record was read from (legacy records). Other sources are not named.","items":{"type":"object","description":"An official register the record was read from. Only official government registers, regulators and the official identifier system are named; any other source is left out.","properties":{"name":{"type":"string","description":"Register name, for example `UK Companies House`."},"source_type":{"type":"string","enum":["official"],"description":"Always `official`."}},"required":["name","source_type"]}},"previous_names":{"type":"array","items":{"type":"string"},"description":"Names the company was registered under before (legacy records)."},"parent_companies":{"type":"array","items":{"type":"string"},"description":"Parent companies the registry names (legacy records)."},"documents_available":{"type":"integer","description":"How many filings the registry offers for the company (legacy records)."}},"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.registry_data.oneOf.1","typeLabel":"null"}],"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.registry_data","typeLabel":"object | null"},"user_provided_data":{"type":"object","description":"Data confirmed or edited by the end user.","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.user_provided_data","typeLabel":"object"},"confirmed_by_user_at":{"oneOf":[{"type":"string","format":"date-time","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.confirmed_by_user_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.confirmed_by_user_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.confirmed_by_user_at","typeLabel":"string\u003cdate-time> | null"},"last_console_edit_at":{"oneOf":[{"type":"string","format":"date-time","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.last_console_edit_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.last_console_edit_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.last_console_edit_at","typeLabel":"string\u003cdate-time> | null"},"is_editable":{"type":"boolean","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.is_editable","typeLabel":"boolean"},"ownership":{"type":"object","description":"The outcome of the ownership (Shareholders / UBO) tier, in the same shape for every country and registry source.","properties":{"status":{"oneOf":[{"type":"string","enum":["not_requested","pending","delivered","not_held","unavailable",null],"description":"`delivered` when the registry published ownership; `not_held` when the ownership registry answered and does not list the company at all (see `unavailable_reason`); `unavailable` when it did not serve the ownership data for any other reason (see `unavailable_reason`); `pending` while the registry is still fetching it; `not_requested` for the Basic tier.","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.ownership.status.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["not_requested","pending","delivered","not_held","unavailable",null],"description":"`delivered` when the registry published ownership; `not_held` when the ownership registry answered and does not list the company at all (see `unavailable_reason`); `unavailable` when it did not serve the ownership data for any other reason (see `unavailable_reason`); `pending` while the registry is still fetching it; `not_requested` for the Basic tier.","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.ownership.status.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.ownership.status","typeLabel":"enum\u003cstring> | null"},"tier_requested":{"oneOf":[{"type":"string","enum":["basic","shareholders","ubo",null],"description":"The tier the workflow ordered.","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.ownership.tier_requested.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["basic","shareholders","ubo",null],"description":"The tier the workflow ordered.","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.ownership.tier_requested.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.ownership.tier_requested","typeLabel":"enum\u003cstring> | null"},"tier_delivered":{"oneOf":[{"type":"string","enum":["basic","shareholders","ubo",null],"description":"The tier the registry delivered (and that is billed). A UBO request answered with direct shareholders only is `shareholders`.","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.ownership.tier_delivered.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["basic","shareholders","ubo",null],"description":"The tier the registry delivered (and that is billed). A UBO request answered with direct shareholders only is `shareholders`.","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.ownership.tier_delivered.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.ownership.tier_delivered","typeLabel":"enum\u003cstring> | null"},"unavailable_reason":{"oneOf":[{"type":"string","enum":["no_owners_on_record","no_natural_person_owner","ownership_section_unavailable","company_not_found","ambiguous_company_match","missing_registration_number","entity_type_not_covered","provider_unavailable","other",null],"description":"Why a requested ownership tier was not delivered. Null unless `status` is `unavailable` or `pending`.","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.ownership.unavailable_reason.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["no_owners_on_record","no_natural_person_owner","ownership_section_unavailable","company_not_found","ambiguous_company_match","missing_registration_number","entity_type_not_covered","provider_unavailable","other",null],"description":"Why a requested ownership tier was not delivered. Null unless `status` is `unavailable` or `pending`.","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.ownership.unavailable_reason.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.ownership.unavailable_reason","typeLabel":"enum\u003cstring> | null"},"direct_ownership_complete":{"oneOf":[{"type":"boolean","description":"True when the direct shareholders' stated stakes add up to 100% (within one percentage point of rounding); false when they do not; null when ownership was not delivered or a stake is not stated.","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.ownership.direct_ownership_complete.oneOf.0","typeLabel":"boolean"},{"type":"null","description":"True when the direct shareholders' stated stakes add up to 100% (within one percentage point of rounding); false when they do not; null when ownership was not delivered or a stake is not stated.","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.ownership.direct_ownership_complete.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.ownership.direct_ownership_complete","typeLabel":"boolean | null"},"unresolved":{"type":"array","description":"Parts of the ownership chain the registry could not resolve, for example no group structure on record above the direct owners.","items":{"type":"object","properties":{"reason":{"type":"string","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.ownership.unresolved.items.[INDEX].reason","typeLabel":"string"},"section":{"oneOf":[{"type":"string","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.ownership.unresolved.items.[INDEX].section.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.ownership.unresolved.items.[INDEX].section.oneOf.1","typeLabel":"null"}],"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.ownership.unresolved.items.[INDEX].section","typeLabel":"string | null"}},"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.ownership.unresolved.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.ownership.unresolved","typeLabel":"object[]"}},"required":["status","tier_requested","tier_delivered","unavailable_reason","direct_ownership_complete","unresolved"],"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.ownership","typeLabel":"object"},"registry_tier":{"oneOf":[{"type":"string","description":"The registry tier the workflow ordered: `basic`, `shareholders` or `ubo`. Also in `ownership.tier_requested`.","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.registry_tier.oneOf.0","typeLabel":"string"},{"type":"null","description":"The registry tier the workflow ordered: `basic`, `shareholders` or `ubo`. Also in `ownership.tier_requested`.","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.registry_tier.oneOf.1","typeLabel":"null"}],"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.registry_tier","typeLabel":"string | null"},"registry_tier_delivered":{"oneOf":[{"type":"string","description":"The tier the registry delivered and that is billed. Also in `ownership.tier_delivered`.","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.registry_tier_delivered.oneOf.0","typeLabel":"string"},{"type":"null","description":"The tier the registry delivered and that is billed. Also in `ownership.tier_delivered`.","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.registry_tier_delivered.oneOf.1","typeLabel":"null"}],"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.registry_tier_delivered","typeLabel":"string | null"},"registry_ownership_status":{"oneOf":[{"type":"string","description":"`not_requested`, `pending`, `delivered`, `not_held` or `unavailable`. Also in `ownership.status`.","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.registry_ownership_status.oneOf.0","typeLabel":"string"},{"type":"null","description":"`not_requested`, `pending`, `delivered`, `not_held` or `unavailable`. Also in `ownership.status`.","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.registry_ownership_status.oneOf.1","typeLabel":"null"}],"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.registry_ownership_status","typeLabel":"string | null"},"registry_monitoring":{"oneOf":[{"type":"object","description":"The latest registry monitor for the company, or `null` when none exists.","properties":{"uuid":{"type":"string","format":"uuid","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.registry_monitoring.oneOf.0.uuid","typeLabel":"string\u003cuuid>"},"status":{"type":"string","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.registry_monitoring.oneOf.0.status","typeLabel":"string"},"unavailable_reason":{"oneOf":[{"type":"string","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.registry_monitoring.oneOf.0.unavailable_reason.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.registry_monitoring.oneOf.0.unavailable_reason.oneOf.1","typeLabel":"null"}],"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.registry_monitoring.oneOf.0.unavailable_reason","typeLabel":"string | null"},"enrolled_at":{"oneOf":[{"type":"string","format":"date-time","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.registry_monitoring.oneOf.0.enrolled_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.registry_monitoring.oneOf.0.enrolled_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.registry_monitoring.oneOf.0.enrolled_at","typeLabel":"string\u003cdate-time> | null"},"cancelled_at":{"oneOf":[{"type":"string","format":"date-time","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.registry_monitoring.oneOf.0.cancelled_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.registry_monitoring.oneOf.0.cancelled_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.registry_monitoring.oneOf.0.cancelled_at","typeLabel":"string\u003cdate-time> | null"},"last_bill_date":{"oneOf":[{"type":"string","format":"date","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.registry_monitoring.oneOf.0.last_bill_date.oneOf.0","typeLabel":"string\u003cdate>"},{"type":"null","format":"date","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.registry_monitoring.oneOf.0.last_bill_date.oneOf.1","typeLabel":"null"}],"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.registry_monitoring.oneOf.0.last_bill_date","typeLabel":"string\u003cdate> | null"},"next_bill_date":{"oneOf":[{"type":"string","format":"date","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.registry_monitoring.oneOf.0.next_bill_date.oneOf.0","typeLabel":"string\u003cdate>"},{"type":"null","format":"date","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.registry_monitoring.oneOf.0.next_bill_date.oneOf.1","typeLabel":"null"}],"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.registry_monitoring.oneOf.0.next_bill_date","typeLabel":"string\u003cdate> | null"},"last_event_at":{"oneOf":[{"type":"string","format":"date-time","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.registry_monitoring.oneOf.0.last_event_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.registry_monitoring.oneOf.0.last_event_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.registry_monitoring.oneOf.0.last_event_at","typeLabel":"string\u003cdate-time> | null"},"events_count":{"type":"integer","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.registry_monitoring.oneOf.0.events_count","typeLabel":"integer"},"watched_fields":{"description":"The company fields the monitor watches.","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.registry_monitoring.oneOf.0.watched_fields","typeLabel":"any"}},"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.registry_monitoring.oneOf.0","typeLabel":"object"},{"type":"null","description":"The latest registry monitor for the company, or `null` when none exists.","properties":{"uuid":{"type":"string","format":"uuid"},"status":{"type":"string"},"unavailable_reason":{"oneOf":[{"type":"string"},{"type":"null"}]},"enrolled_at":{"oneOf":[{"type":"string","format":"date-time"},{"type":"null","format":"date-time"}]},"cancelled_at":{"oneOf":[{"type":"string","format":"date-time"},{"type":"null","format":"date-time"}]},"last_bill_date":{"oneOf":[{"type":"string","format":"date"},{"type":"null","format":"date"}]},"next_bill_date":{"oneOf":[{"type":"string","format":"date"},{"type":"null","format":"date"}]},"last_event_at":{"oneOf":[{"type":"string","format":"date-time"},{"type":"null","format":"date-time"}]},"events_count":{"type":"integer"},"watched_fields":{"description":"The company fields the monitor watches."}},"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.registry_monitoring.oneOf.1","typeLabel":"null"}],"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company.registry_monitoring","typeLabel":"object | null"}},"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].company","typeLabel":"object"},"ownership_structure":{"oneOf":[{"type":"object","description":"The cap table the registry proved, as it stood when the ownership tier was delivered: direct `shareholders` and `beneficial_owners`. Null when the registry proved no ownership. It never carries the registry source's own rows; read `company.beneficial_owners` and `company.ownership` for the current record.","properties":{"shareholders":{"type":"array","items":{"type":"object","description":"One owner of the ownership snapshot: the same registry identity and stake as `company.beneficial_owners[]`, and its canonical `shareholding`.","properties":{"name":{"oneOf":[{"type":"string","description":"Owner name as the registry states it.","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].ownership_structure.oneOf.0.shareholders.items.[INDEX].name.oneOf.0","typeLabel":"string"},{"type":"null","description":"Owner name as the registry states it.","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].ownership_structure.oneOf.0.shareholders.items.[INDEX].name.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].ownership_structure.oneOf.0.shareholders.items.[INDEX].name","typeLabel":"string | null"},"first_name":{"oneOf":[{"type":"string","description":"Given name, for a natural person, when the registry states it.","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].ownership_structure.oneOf.0.shareholders.items.[INDEX].first_name.oneOf.0","typeLabel":"string"},{"type":"null","description":"Given name, for a natural person, when the registry states it.","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].ownership_structure.oneOf.0.shareholders.items.[INDEX].first_name.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].ownership_structure.oneOf.0.shareholders.items.[INDEX].first_name","typeLabel":"string | null"},"last_name":{"oneOf":[{"type":"string","description":"Family name, for a natural person, when the registry states it.","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].ownership_structure.oneOf.0.shareholders.items.[INDEX].last_name.oneOf.0","typeLabel":"string"},{"type":"null","description":"Family name, for a natural person, when the registry states it.","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].ownership_structure.oneOf.0.shareholders.items.[INDEX].last_name.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].ownership_structure.oneOf.0.shareholders.items.[INDEX].last_name","typeLabel":"string | null"},"date_of_birth":{"oneOf":[{"type":"string","description":"Date of birth (ISO 8601) when the registry publishes it.","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].ownership_structure.oneOf.0.shareholders.items.[INDEX].date_of_birth.oneOf.0","typeLabel":"string"},{"type":"null","description":"Date of birth (ISO 8601) when the registry publishes it.","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].ownership_structure.oneOf.0.shareholders.items.[INDEX].date_of_birth.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].ownership_structure.oneOf.0.shareholders.items.[INDEX].date_of_birth","typeLabel":"string | null"},"country_of_birth":{"oneOf":[{"type":"string","description":"Country of birth when the registry publishes it.","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].ownership_structure.oneOf.0.shareholders.items.[INDEX].country_of_birth.oneOf.0","typeLabel":"string"},{"type":"null","description":"Country of birth when the registry publishes it.","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].ownership_structure.oneOf.0.shareholders.items.[INDEX].country_of_birth.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].ownership_structure.oneOf.0.shareholders.items.[INDEX].country_of_birth","typeLabel":"string | null"},"company_name":{"oneOf":[{"type":"string","description":"Company name, for a corporate owner.","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].ownership_structure.oneOf.0.shareholders.items.[INDEX].company_name.oneOf.0","typeLabel":"string"},{"type":"null","description":"Company name, for a corporate owner.","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].ownership_structure.oneOf.0.shareholders.items.[INDEX].company_name.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].ownership_structure.oneOf.0.shareholders.items.[INDEX].company_name","typeLabel":"string | null"},"registration_number":{"oneOf":[{"type":"string","description":"Registration number, for a corporate owner.","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].ownership_structure.oneOf.0.shareholders.items.[INDEX].registration_number.oneOf.0","typeLabel":"string"},{"type":"null","description":"Registration number, for a corporate owner.","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].ownership_structure.oneOf.0.shareholders.items.[INDEX].registration_number.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].ownership_structure.oneOf.0.shareholders.items.[INDEX].registration_number","typeLabel":"string | null"},"entity_type":{"oneOf":[{"type":"string","enum":["person","company",null],"description":"Whether the owner is a natural person or a company.","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].ownership_structure.oneOf.0.shareholders.items.[INDEX].entity_type.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["person","company",null],"description":"Whether the owner is a natural person or a company.","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].ownership_structure.oneOf.0.shareholders.items.[INDEX].entity_type.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].ownership_structure.oneOf.0.shareholders.items.[INDEX].entity_type","typeLabel":"enum\u003cstring> | null"},"nationality":{"oneOf":[{"type":"string","description":"Nationality when the registry states it.","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].ownership_structure.oneOf.0.shareholders.items.[INDEX].nationality.oneOf.0","typeLabel":"string"},{"type":"null","description":"Nationality when the registry states it.","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].ownership_structure.oneOf.0.shareholders.items.[INDEX].nationality.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].ownership_structure.oneOf.0.shareholders.items.[INDEX].nationality","typeLabel":"string | null"},"designation":{"oneOf":[{"type":"string","description":"The owner's title or role as the registry prints it.","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].ownership_structure.oneOf.0.shareholders.items.[INDEX].designation.oneOf.0","typeLabel":"string"},{"type":"null","description":"The owner's title or role as the registry prints it.","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].ownership_structure.oneOf.0.shareholders.items.[INDEX].designation.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].ownership_structure.oneOf.0.shareholders.items.[INDEX].designation","typeLabel":"string | null"},"roles":{"type":"array","items":{"type":"string","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].ownership_structure.oneOf.0.shareholders.items.[INDEX].roles.items.[INDEX]","typeLabel":"string"},"description":"`shareholder` for a direct holder, `ubo` for a beneficial owner.","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].ownership_structure.oneOf.0.shareholders.items.[INDEX].roles","typeLabel":"string[]"},"ownership_min_shares":{"oneOf":[{"type":"string","description":"Lower bound of the stake, in percent (equal to the upper bound for an exact stake).","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].ownership_structure.oneOf.0.shareholders.items.[INDEX].ownership_min_shares.oneOf.0","typeLabel":"string"},{"type":"null","description":"Lower bound of the stake, in percent (equal to the upper bound for an exact stake).","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].ownership_structure.oneOf.0.shareholders.items.[INDEX].ownership_min_shares.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].ownership_structure.oneOf.0.shareholders.items.[INDEX].ownership_min_shares","typeLabel":"string | null"},"ownership_max_shares":{"oneOf":[{"type":"string","description":"Upper bound of the stake, in percent.","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].ownership_structure.oneOf.0.shareholders.items.[INDEX].ownership_max_shares.oneOf.0","typeLabel":"string"},{"type":"null","description":"Upper bound of the stake, in percent.","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].ownership_structure.oneOf.0.shareholders.items.[INDEX].ownership_max_shares.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].ownership_structure.oneOf.0.shareholders.items.[INDEX].ownership_max_shares","typeLabel":"string | null"},"voting_min_shares":{"oneOf":[{"type":"string","description":"Lower bound of the voting rights, in percent.","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].ownership_structure.oneOf.0.shareholders.items.[INDEX].voting_min_shares.oneOf.0","typeLabel":"string"},{"type":"null","description":"Lower bound of the voting rights, in percent.","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].ownership_structure.oneOf.0.shareholders.items.[INDEX].voting_min_shares.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].ownership_structure.oneOf.0.shareholders.items.[INDEX].voting_min_shares","typeLabel":"string | null"},"voting_max_shares":{"oneOf":[{"type":"string","description":"Upper bound of the voting rights, in percent.","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].ownership_structure.oneOf.0.shareholders.items.[INDEX].voting_max_shares.oneOf.0","typeLabel":"string"},{"type":"null","description":"Upper bound of the voting rights, in percent.","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].ownership_structure.oneOf.0.shareholders.items.[INDEX].voting_max_shares.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].ownership_structure.oneOf.0.shareholders.items.[INDEX].voting_max_shares","typeLabel":"string | null"},"appointment_date":{"oneOf":[{"type":"string","description":"Date the holding or appointment started (ISO 8601).","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].ownership_structure.oneOf.0.shareholders.items.[INDEX].appointment_date.oneOf.0","typeLabel":"string"},{"type":"null","description":"Date the holding or appointment started (ISO 8601).","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].ownership_structure.oneOf.0.shareholders.items.[INDEX].appointment_date.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].ownership_structure.oneOf.0.shareholders.items.[INDEX].appointment_date","typeLabel":"string | null"},"is_active":{"oneOf":[{"type":"boolean","description":"False for a former owner.","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].ownership_structure.oneOf.0.shareholders.items.[INDEX].is_active.oneOf.0","typeLabel":"boolean"},{"type":"null","description":"False for a former owner.","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].ownership_structure.oneOf.0.shareholders.items.[INDEX].is_active.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].ownership_structure.oneOf.0.shareholders.items.[INDEX].is_active","typeLabel":"boolean | null"},"shareholding":{"oneOf":[{"type":"object","description":"What an owner holds, in the same shape for every country and registry source. Null when the registry states no holding. A band (for example a UK PSC's 25-50%) is not a stake: `percentage` is null and the band stays in `ownership_min_shares` / `ownership_max_shares`.","properties":{"share_class":{"oneOf":[{"type":"string","description":"Share class or type as the registry names it.","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].ownership_structure.oneOf.0.shareholders.items.[INDEX].shareholding.oneOf.0.share_class.oneOf.0","typeLabel":"string"},{"type":"null","description":"Share class or type as the registry names it.","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].ownership_structure.oneOf.0.shareholders.items.[INDEX].shareholding.oneOf.0.share_class.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].ownership_structure.oneOf.0.shareholders.items.[INDEX].shareholding.oneOf.0.share_class","typeLabel":"string | null"},"number_of_shares":{"oneOf":[{"type":"number","description":"Number of shares held.","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].ownership_structure.oneOf.0.shareholders.items.[INDEX].shareholding.oneOf.0.number_of_shares.oneOf.0","typeLabel":"number"},{"type":"null","description":"Number of shares held.","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].ownership_structure.oneOf.0.shareholders.items.[INDEX].shareholding.oneOf.0.number_of_shares.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].ownership_structure.oneOf.0.shareholders.items.[INDEX].shareholding.oneOf.0.number_of_shares","typeLabel":"number | null"},"currency":{"oneOf":[{"type":"string","description":"ISO 4217 currency of the values below.","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].ownership_structure.oneOf.0.shareholders.items.[INDEX].shareholding.oneOf.0.currency.oneOf.0","typeLabel":"string"},{"type":"null","description":"ISO 4217 currency of the values below.","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].ownership_structure.oneOf.0.shareholders.items.[INDEX].shareholding.oneOf.0.currency.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].ownership_structure.oneOf.0.shareholders.items.[INDEX].shareholding.oneOf.0.currency","typeLabel":"string | null"},"nominal_value":{"oneOf":[{"type":"number","description":"Nominal value per share.","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].ownership_structure.oneOf.0.shareholders.items.[INDEX].shareholding.oneOf.0.nominal_value.oneOf.0","typeLabel":"number"},{"type":"null","description":"Nominal value per share.","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].ownership_structure.oneOf.0.shareholders.items.[INDEX].shareholding.oneOf.0.nominal_value.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].ownership_structure.oneOf.0.shareholders.items.[INDEX].shareholding.oneOf.0.nominal_value","typeLabel":"number | null"},"total_value":{"oneOf":[{"type":"number","description":"Total value of the holding.","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].ownership_structure.oneOf.0.shareholders.items.[INDEX].shareholding.oneOf.0.total_value.oneOf.0","typeLabel":"number"},{"type":"null","description":"Total value of the holding.","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].ownership_structure.oneOf.0.shareholders.items.[INDEX].shareholding.oneOf.0.total_value.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].ownership_structure.oneOf.0.shareholders.items.[INDEX].shareholding.oneOf.0.total_value","typeLabel":"number | null"},"percentage":{"oneOf":[{"type":"number","description":"Exact stake in percent, to four decimal places.","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].ownership_structure.oneOf.0.shareholders.items.[INDEX].shareholding.oneOf.0.percentage.oneOf.0","typeLabel":"number"},{"type":"null","description":"Exact stake in percent, to four decimal places.","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].ownership_structure.oneOf.0.shareholders.items.[INDEX].shareholding.oneOf.0.percentage.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].ownership_structure.oneOf.0.shareholders.items.[INDEX].shareholding.oneOf.0.percentage","typeLabel":"number | null"}},"required":["share_class","number_of_shares","currency","nominal_value","total_value","percentage"],"isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].ownership_structure.oneOf.0.shareholders.items.[INDEX].shareholding.oneOf.0","typeLabel":"object"},{"type":"null","description":"What an owner holds, in the same shape for every country and registry source. Null when the registry states no holding. A band (for example a UK PSC's 25-50%) is not a stake: `percentage` is null and the band stays in `ownership_min_shares` / `ownership_max_shares`.","properties":{"share_class":{"oneOf":[{"type":"string","description":"Share class or type as the registry names it."},{"type":"null","description":"Share class or type as the registry names it."}]},"number_of_shares":{"oneOf":[{"type":"number","description":"Number of shares held."},{"type":"null","description":"Number of shares held."}]},"currency":{"oneOf":[{"type":"string","description":"ISO 4217 currency of the values below."},{"type":"null","description":"ISO 4217 currency of the values below."}]},"nominal_value":{"oneOf":[{"type":"number","description":"Nominal value per share."},{"type":"null","description":"Nominal value per share."}]},"total_value":{"oneOf":[{"type":"number","description":"Total value of the holding."},{"type":"null","description":"Total value of the holding."}]},"percentage":{"oneOf":[{"type":"number","description":"Exact stake in percent, to four decimal places."},{"type":"null","description":"Exact stake in percent, to four decimal places."}]}},"required":["share_class","number_of_shares","currency","nominal_value","total_value","percentage"],"isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].ownership_structure.oneOf.0.shareholders.items.[INDEX].shareholding.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].ownership_structure.oneOf.0.shareholders.items.[INDEX].shareholding","typeLabel":"object | null"}},"required":["name","first_name","last_name","date_of_birth","country_of_birth","company_name","registration_number","entity_type","nationality","designation","roles","ownership_min_shares","ownership_max_shares","voting_min_shares","voting_max_shares","appointment_date","is_active","shareholding"],"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].ownership_structure.oneOf.0.shareholders.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].ownership_structure.oneOf.0.shareholders","typeLabel":"object[]"},"beneficial_owners":{"type":"array","items":{"type":"object","description":"One owner of the ownership snapshot: the same registry identity and stake as `company.beneficial_owners[]`, and its canonical `shareholding`.","properties":{"name":{"oneOf":[{"type":"string","description":"Owner name as the registry states it.","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].ownership_structure.oneOf.0.beneficial_owners.items.[INDEX].name.oneOf.0","typeLabel":"string"},{"type":"null","description":"Owner name as the registry states it.","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].ownership_structure.oneOf.0.beneficial_owners.items.[INDEX].name.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].ownership_structure.oneOf.0.beneficial_owners.items.[INDEX].name","typeLabel":"string | null"},"first_name":{"oneOf":[{"type":"string","description":"Given name, for a natural person, when the registry states it.","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].ownership_structure.oneOf.0.beneficial_owners.items.[INDEX].first_name.oneOf.0","typeLabel":"string"},{"type":"null","description":"Given name, for a natural person, when the registry states it.","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].ownership_structure.oneOf.0.beneficial_owners.items.[INDEX].first_name.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].ownership_structure.oneOf.0.beneficial_owners.items.[INDEX].first_name","typeLabel":"string | null"},"last_name":{"oneOf":[{"type":"string","description":"Family name, for a natural person, when the registry states it.","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].ownership_structure.oneOf.0.beneficial_owners.items.[INDEX].last_name.oneOf.0","typeLabel":"string"},{"type":"null","description":"Family name, for a natural person, when the registry states it.","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].ownership_structure.oneOf.0.beneficial_owners.items.[INDEX].last_name.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].ownership_structure.oneOf.0.beneficial_owners.items.[INDEX].last_name","typeLabel":"string | null"},"date_of_birth":{"oneOf":[{"type":"string","description":"Date of birth (ISO 8601) when the registry publishes it.","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].ownership_structure.oneOf.0.beneficial_owners.items.[INDEX].date_of_birth.oneOf.0","typeLabel":"string"},{"type":"null","description":"Date of birth (ISO 8601) when the registry publishes it.","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].ownership_structure.oneOf.0.beneficial_owners.items.[INDEX].date_of_birth.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].ownership_structure.oneOf.0.beneficial_owners.items.[INDEX].date_of_birth","typeLabel":"string | null"},"country_of_birth":{"oneOf":[{"type":"string","description":"Country of birth when the registry publishes it.","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].ownership_structure.oneOf.0.beneficial_owners.items.[INDEX].country_of_birth.oneOf.0","typeLabel":"string"},{"type":"null","description":"Country of birth when the registry publishes it.","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].ownership_structure.oneOf.0.beneficial_owners.items.[INDEX].country_of_birth.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].ownership_structure.oneOf.0.beneficial_owners.items.[INDEX].country_of_birth","typeLabel":"string | null"},"company_name":{"oneOf":[{"type":"string","description":"Company name, for a corporate owner.","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].ownership_structure.oneOf.0.beneficial_owners.items.[INDEX].company_name.oneOf.0","typeLabel":"string"},{"type":"null","description":"Company name, for a corporate owner.","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].ownership_structure.oneOf.0.beneficial_owners.items.[INDEX].company_name.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].ownership_structure.oneOf.0.beneficial_owners.items.[INDEX].company_name","typeLabel":"string | null"},"registration_number":{"oneOf":[{"type":"string","description":"Registration number, for a corporate owner.","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].ownership_structure.oneOf.0.beneficial_owners.items.[INDEX].registration_number.oneOf.0","typeLabel":"string"},{"type":"null","description":"Registration number, for a corporate owner.","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].ownership_structure.oneOf.0.beneficial_owners.items.[INDEX].registration_number.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].ownership_structure.oneOf.0.beneficial_owners.items.[INDEX].registration_number","typeLabel":"string | null"},"entity_type":{"oneOf":[{"type":"string","enum":["person","company",null],"description":"Whether the owner is a natural person or a company.","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].ownership_structure.oneOf.0.beneficial_owners.items.[INDEX].entity_type.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["person","company",null],"description":"Whether the owner is a natural person or a company.","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].ownership_structure.oneOf.0.beneficial_owners.items.[INDEX].entity_type.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].ownership_structure.oneOf.0.beneficial_owners.items.[INDEX].entity_type","typeLabel":"enum\u003cstring> | null"},"nationality":{"oneOf":[{"type":"string","description":"Nationality when the registry states it.","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].ownership_structure.oneOf.0.beneficial_owners.items.[INDEX].nationality.oneOf.0","typeLabel":"string"},{"type":"null","description":"Nationality when the registry states it.","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].ownership_structure.oneOf.0.beneficial_owners.items.[INDEX].nationality.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].ownership_structure.oneOf.0.beneficial_owners.items.[INDEX].nationality","typeLabel":"string | null"},"designation":{"oneOf":[{"type":"string","description":"The owner's title or role as the registry prints it.","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].ownership_structure.oneOf.0.beneficial_owners.items.[INDEX].designation.oneOf.0","typeLabel":"string"},{"type":"null","description":"The owner's title or role as the registry prints it.","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].ownership_structure.oneOf.0.beneficial_owners.items.[INDEX].designation.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].ownership_structure.oneOf.0.beneficial_owners.items.[INDEX].designation","typeLabel":"string | null"},"roles":{"type":"array","items":{"type":"string","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].ownership_structure.oneOf.0.beneficial_owners.items.[INDEX].roles.items.[INDEX]","typeLabel":"string"},"description":"`shareholder` for a direct holder, `ubo` for a beneficial owner.","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].ownership_structure.oneOf.0.beneficial_owners.items.[INDEX].roles","typeLabel":"string[]"},"ownership_min_shares":{"oneOf":[{"type":"string","description":"Lower bound of the stake, in percent (equal to the upper bound for an exact stake).","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].ownership_structure.oneOf.0.beneficial_owners.items.[INDEX].ownership_min_shares.oneOf.0","typeLabel":"string"},{"type":"null","description":"Lower bound of the stake, in percent (equal to the upper bound for an exact stake).","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].ownership_structure.oneOf.0.beneficial_owners.items.[INDEX].ownership_min_shares.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].ownership_structure.oneOf.0.beneficial_owners.items.[INDEX].ownership_min_shares","typeLabel":"string | null"},"ownership_max_shares":{"oneOf":[{"type":"string","description":"Upper bound of the stake, in percent.","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].ownership_structure.oneOf.0.beneficial_owners.items.[INDEX].ownership_max_shares.oneOf.0","typeLabel":"string"},{"type":"null","description":"Upper bound of the stake, in percent.","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].ownership_structure.oneOf.0.beneficial_owners.items.[INDEX].ownership_max_shares.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].ownership_structure.oneOf.0.beneficial_owners.items.[INDEX].ownership_max_shares","typeLabel":"string | null"},"voting_min_shares":{"oneOf":[{"type":"string","description":"Lower bound of the voting rights, in percent.","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].ownership_structure.oneOf.0.beneficial_owners.items.[INDEX].voting_min_shares.oneOf.0","typeLabel":"string"},{"type":"null","description":"Lower bound of the voting rights, in percent.","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].ownership_structure.oneOf.0.beneficial_owners.items.[INDEX].voting_min_shares.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].ownership_structure.oneOf.0.beneficial_owners.items.[INDEX].voting_min_shares","typeLabel":"string | null"},"voting_max_shares":{"oneOf":[{"type":"string","description":"Upper bound of the voting rights, in percent.","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].ownership_structure.oneOf.0.beneficial_owners.items.[INDEX].voting_max_shares.oneOf.0","typeLabel":"string"},{"type":"null","description":"Upper bound of the voting rights, in percent.","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].ownership_structure.oneOf.0.beneficial_owners.items.[INDEX].voting_max_shares.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].ownership_structure.oneOf.0.beneficial_owners.items.[INDEX].voting_max_shares","typeLabel":"string | null"},"appointment_date":{"oneOf":[{"type":"string","description":"Date the holding or appointment started (ISO 8601).","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].ownership_structure.oneOf.0.beneficial_owners.items.[INDEX].appointment_date.oneOf.0","typeLabel":"string"},{"type":"null","description":"Date the holding or appointment started (ISO 8601).","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].ownership_structure.oneOf.0.beneficial_owners.items.[INDEX].appointment_date.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].ownership_structure.oneOf.0.beneficial_owners.items.[INDEX].appointment_date","typeLabel":"string | null"},"is_active":{"oneOf":[{"type":"boolean","description":"False for a former owner.","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].ownership_structure.oneOf.0.beneficial_owners.items.[INDEX].is_active.oneOf.0","typeLabel":"boolean"},{"type":"null","description":"False for a former owner.","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].ownership_structure.oneOf.0.beneficial_owners.items.[INDEX].is_active.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].ownership_structure.oneOf.0.beneficial_owners.items.[INDEX].is_active","typeLabel":"boolean | null"},"shareholding":{"oneOf":[{"type":"object","description":"What an owner holds, in the same shape for every country and registry source. Null when the registry states no holding. A band (for example a UK PSC's 25-50%) is not a stake: `percentage` is null and the band stays in `ownership_min_shares` / `ownership_max_shares`.","properties":{"share_class":{"oneOf":[{"type":"string","description":"Share class or type as the registry names it.","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].ownership_structure.oneOf.0.beneficial_owners.items.[INDEX].shareholding.oneOf.0.share_class.oneOf.0","typeLabel":"string"},{"type":"null","description":"Share class or type as the registry names it.","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].ownership_structure.oneOf.0.beneficial_owners.items.[INDEX].shareholding.oneOf.0.share_class.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].ownership_structure.oneOf.0.beneficial_owners.items.[INDEX].shareholding.oneOf.0.share_class","typeLabel":"string | null"},"number_of_shares":{"oneOf":[{"type":"number","description":"Number of shares held.","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].ownership_structure.oneOf.0.beneficial_owners.items.[INDEX].shareholding.oneOf.0.number_of_shares.oneOf.0","typeLabel":"number"},{"type":"null","description":"Number of shares held.","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].ownership_structure.oneOf.0.beneficial_owners.items.[INDEX].shareholding.oneOf.0.number_of_shares.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].ownership_structure.oneOf.0.beneficial_owners.items.[INDEX].shareholding.oneOf.0.number_of_shares","typeLabel":"number | null"},"currency":{"oneOf":[{"type":"string","description":"ISO 4217 currency of the values below.","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].ownership_structure.oneOf.0.beneficial_owners.items.[INDEX].shareholding.oneOf.0.currency.oneOf.0","typeLabel":"string"},{"type":"null","description":"ISO 4217 currency of the values below.","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].ownership_structure.oneOf.0.beneficial_owners.items.[INDEX].shareholding.oneOf.0.currency.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].ownership_structure.oneOf.0.beneficial_owners.items.[INDEX].shareholding.oneOf.0.currency","typeLabel":"string | null"},"nominal_value":{"oneOf":[{"type":"number","description":"Nominal value per share.","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].ownership_structure.oneOf.0.beneficial_owners.items.[INDEX].shareholding.oneOf.0.nominal_value.oneOf.0","typeLabel":"number"},{"type":"null","description":"Nominal value per share.","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].ownership_structure.oneOf.0.beneficial_owners.items.[INDEX].shareholding.oneOf.0.nominal_value.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].ownership_structure.oneOf.0.beneficial_owners.items.[INDEX].shareholding.oneOf.0.nominal_value","typeLabel":"number | null"},"total_value":{"oneOf":[{"type":"number","description":"Total value of the holding.","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].ownership_structure.oneOf.0.beneficial_owners.items.[INDEX].shareholding.oneOf.0.total_value.oneOf.0","typeLabel":"number"},{"type":"null","description":"Total value of the holding.","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].ownership_structure.oneOf.0.beneficial_owners.items.[INDEX].shareholding.oneOf.0.total_value.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].ownership_structure.oneOf.0.beneficial_owners.items.[INDEX].shareholding.oneOf.0.total_value","typeLabel":"number | null"},"percentage":{"oneOf":[{"type":"number","description":"Exact stake in percent, to four decimal places.","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].ownership_structure.oneOf.0.beneficial_owners.items.[INDEX].shareholding.oneOf.0.percentage.oneOf.0","typeLabel":"number"},{"type":"null","description":"Exact stake in percent, to four decimal places.","isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].ownership_structure.oneOf.0.beneficial_owners.items.[INDEX].shareholding.oneOf.0.percentage.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].ownership_structure.oneOf.0.beneficial_owners.items.[INDEX].shareholding.oneOf.0.percentage","typeLabel":"number | null"}},"required":["share_class","number_of_shares","currency","nominal_value","total_value","percentage"],"isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].ownership_structure.oneOf.0.beneficial_owners.items.[INDEX].shareholding.oneOf.0","typeLabel":"object"},{"type":"null","description":"What an owner holds, in the same shape for every country and registry source. Null when the registry states no holding. A band (for example a UK PSC's 25-50%) is not a stake: `percentage` is null and the band stays in `ownership_min_shares` / `ownership_max_shares`.","properties":{"share_class":{"oneOf":[{"type":"string","description":"Share class or type as the registry names it."},{"type":"null","description":"Share class or type as the registry names it."}]},"number_of_shares":{"oneOf":[{"type":"number","description":"Number of shares held."},{"type":"null","description":"Number of shares held."}]},"currency":{"oneOf":[{"type":"string","description":"ISO 4217 currency of the values below."},{"type":"null","description":"ISO 4217 currency of the values below."}]},"nominal_value":{"oneOf":[{"type":"number","description":"Nominal value per share."},{"type":"null","description":"Nominal value per share."}]},"total_value":{"oneOf":[{"type":"number","description":"Total value of the holding."},{"type":"null","description":"Total value of the holding."}]},"percentage":{"oneOf":[{"type":"number","description":"Exact stake in percent, to four decimal places."},{"type":"null","description":"Exact stake in percent, to four decimal places."}]}},"required":["share_class","number_of_shares","currency","nominal_value","total_value","percentage"],"isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].ownership_structure.oneOf.0.beneficial_owners.items.[INDEX].shareholding.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].ownership_structure.oneOf.0.beneficial_owners.items.[INDEX].shareholding","typeLabel":"object | null"}},"required":["name","first_name","last_name","date_of_birth","country_of_birth","company_name","registration_number","entity_type","nationality","designation","roles","ownership_min_shares","ownership_max_shares","voting_min_shares","voting_max_shares","appointment_date","is_active","shareholding"],"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].ownership_structure.oneOf.0.beneficial_owners.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].ownership_structure.oneOf.0.beneficial_owners","typeLabel":"object[]"}},"required":["shareholders","beneficial_owners"],"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].ownership_structure.oneOf.0","typeLabel":"object"},{"type":"null","description":"The cap table the registry proved, as it stood when the ownership tier was delivered: direct `shareholders` and `beneficial_owners`. Null when the registry proved no ownership. It never carries the registry source's own rows; read `company.beneficial_owners` and `company.ownership` for the current record.","properties":{"shareholders":{"type":"array","items":{"type":"object","description":"One owner of the ownership snapshot: the same registry identity and stake as `company.beneficial_owners[]`, and its canonical `shareholding`.","properties":{"name":{"oneOf":[{"type":"string","description":"Owner name as the registry states it."},{"type":"null","description":"Owner name as the registry states it."}]},"first_name":{"oneOf":[{"type":"string","description":"Given name, for a natural person, when the registry states it."},{"type":"null","description":"Given name, for a natural person, when the registry states it."}]},"last_name":{"oneOf":[{"type":"string","description":"Family name, for a natural person, when the registry states it."},{"type":"null","description":"Family name, for a natural person, when the registry states it."}]},"date_of_birth":{"oneOf":[{"type":"string","description":"Date of birth (ISO 8601) when the registry publishes it."},{"type":"null","description":"Date of birth (ISO 8601) when the registry publishes it."}]},"country_of_birth":{"oneOf":[{"type":"string","description":"Country of birth when the registry publishes it."},{"type":"null","description":"Country of birth when the registry publishes it."}]},"company_name":{"oneOf":[{"type":"string","description":"Company name, for a corporate owner."},{"type":"null","description":"Company name, for a corporate owner."}]},"registration_number":{"oneOf":[{"type":"string","description":"Registration number, for a corporate owner."},{"type":"null","description":"Registration number, for a corporate owner."}]},"entity_type":{"oneOf":[{"type":"string","enum":["person","company",null],"description":"Whether the owner is a natural person or a company."},{"type":"null","enum":["person","company",null],"description":"Whether the owner is a natural person or a company."}]},"nationality":{"oneOf":[{"type":"string","description":"Nationality when the registry states it."},{"type":"null","description":"Nationality when the registry states it."}]},"designation":{"oneOf":[{"type":"string","description":"The owner's title or role as the registry prints it."},{"type":"null","description":"The owner's title or role as the registry prints it."}]},"roles":{"type":"array","items":{"type":"string"},"description":"`shareholder` for a direct holder, `ubo` for a beneficial owner."},"ownership_min_shares":{"oneOf":[{"type":"string","description":"Lower bound of the stake, in percent (equal to the upper bound for an exact stake)."},{"type":"null","description":"Lower bound of the stake, in percent (equal to the upper bound for an exact stake)."}]},"ownership_max_shares":{"oneOf":[{"type":"string","description":"Upper bound of the stake, in percent."},{"type":"null","description":"Upper bound of the stake, in percent."}]},"voting_min_shares":{"oneOf":[{"type":"string","description":"Lower bound of the voting rights, in percent."},{"type":"null","description":"Lower bound of the voting rights, in percent."}]},"voting_max_shares":{"oneOf":[{"type":"string","description":"Upper bound of the voting rights, in percent."},{"type":"null","description":"Upper bound of the voting rights, in percent."}]},"appointment_date":{"oneOf":[{"type":"string","description":"Date the holding or appointment started (ISO 8601)."},{"type":"null","description":"Date the holding or appointment started (ISO 8601)."}]},"is_active":{"oneOf":[{"type":"boolean","description":"False for a former owner."},{"type":"null","description":"False for a former owner."}]},"shareholding":{"oneOf":[{"type":"object","description":"What an owner holds, in the same shape for every country and registry source. Null when the registry states no holding. A band (for example a UK PSC's 25-50%) is not a stake: `percentage` is null and the band stays in `ownership_min_shares` / `ownership_max_shares`.","properties":{"share_class":{"oneOf":[{"type":"string","description":"Share class or type as the registry names it."},{"type":"null","description":"Share class or type as the registry names it."}]},"number_of_shares":{"oneOf":[{"type":"number","description":"Number of shares held."},{"type":"null","description":"Number of shares held."}]},"currency":{"oneOf":[{"type":"string","description":"ISO 4217 currency of the values below."},{"type":"null","description":"ISO 4217 currency of the values below."}]},"nominal_value":{"oneOf":[{"type":"number","description":"Nominal value per share."},{"type":"null","description":"Nominal value per share."}]},"total_value":{"oneOf":[{"type":"number","description":"Total value of the holding."},{"type":"null","description":"Total value of the holding."}]},"percentage":{"oneOf":[{"type":"number","description":"Exact stake in percent, to four decimal places."},{"type":"null","description":"Exact stake in percent, to four decimal places."}]}},"required":["share_class","number_of_shares","currency","nominal_value","total_value","percentage"]},{"type":"null","description":"What an owner holds, in the same shape for every country and registry source. Null when the registry states no holding. A band (for example a UK PSC's 25-50%) is not a stake: `percentage` is null and the band stays in `ownership_min_shares` / `ownership_max_shares`.","properties":{"share_class":{"oneOf":[{"type":"string","description":"Share class or type as the registry names it."},{"type":"null","description":"Share class or type as the registry names it."}]},"number_of_shares":{"oneOf":[{"type":"number","description":"Number of shares held."},{"type":"null","description":"Number of shares held."}]},"currency":{"oneOf":[{"type":"string","description":"ISO 4217 currency of the values below."},{"type":"null","description":"ISO 4217 currency of the values below."}]},"nominal_value":{"oneOf":[{"type":"number","description":"Nominal value per share."},{"type":"null","description":"Nominal value per share."}]},"total_value":{"oneOf":[{"type":"number","description":"Total value of the holding."},{"type":"null","description":"Total value of the holding."}]},"percentage":{"oneOf":[{"type":"number","description":"Exact stake in percent, to four decimal places."},{"type":"null","description":"Exact stake in percent, to four decimal places."}]}},"required":["share_class","number_of_shares","currency","nominal_value","total_value","percentage"]}]}},"required":["name","first_name","last_name","date_of_birth","country_of_birth","company_name","registration_number","entity_type","nationality","designation","roles","ownership_min_shares","ownership_max_shares","voting_min_shares","voting_max_shares","appointment_date","is_active","shareholding"]}},"beneficial_owners":{"type":"array","items":{"type":"object","description":"One owner of the ownership snapshot: the same registry identity and stake as `company.beneficial_owners[]`, and its canonical `shareholding`.","properties":{"name":{"oneOf":[{"type":"string","description":"Owner name as the registry states it."},{"type":"null","description":"Owner name as the registry states it."}]},"first_name":{"oneOf":[{"type":"string","description":"Given name, for a natural person, when the registry states it."},{"type":"null","description":"Given name, for a natural person, when the registry states it."}]},"last_name":{"oneOf":[{"type":"string","description":"Family name, for a natural person, when the registry states it."},{"type":"null","description":"Family name, for a natural person, when the registry states it."}]},"date_of_birth":{"oneOf":[{"type":"string","description":"Date of birth (ISO 8601) when the registry publishes it."},{"type":"null","description":"Date of birth (ISO 8601) when the registry publishes it."}]},"country_of_birth":{"oneOf":[{"type":"string","description":"Country of birth when the registry publishes it."},{"type":"null","description":"Country of birth when the registry publishes it."}]},"company_name":{"oneOf":[{"type":"string","description":"Company name, for a corporate owner."},{"type":"null","description":"Company name, for a corporate owner."}]},"registration_number":{"oneOf":[{"type":"string","description":"Registration number, for a corporate owner."},{"type":"null","description":"Registration number, for a corporate owner."}]},"entity_type":{"oneOf":[{"type":"string","enum":["person","company",null],"description":"Whether the owner is a natural person or a company."},{"type":"null","enum":["person","company",null],"description":"Whether the owner is a natural person or a company."}]},"nationality":{"oneOf":[{"type":"string","description":"Nationality when the registry states it."},{"type":"null","description":"Nationality when the registry states it."}]},"designation":{"oneOf":[{"type":"string","description":"The owner's title or role as the registry prints it."},{"type":"null","description":"The owner's title or role as the registry prints it."}]},"roles":{"type":"array","items":{"type":"string"},"description":"`shareholder` for a direct holder, `ubo` for a beneficial owner."},"ownership_min_shares":{"oneOf":[{"type":"string","description":"Lower bound of the stake, in percent (equal to the upper bound for an exact stake)."},{"type":"null","description":"Lower bound of the stake, in percent (equal to the upper bound for an exact stake)."}]},"ownership_max_shares":{"oneOf":[{"type":"string","description":"Upper bound of the stake, in percent."},{"type":"null","description":"Upper bound of the stake, in percent."}]},"voting_min_shares":{"oneOf":[{"type":"string","description":"Lower bound of the voting rights, in percent."},{"type":"null","description":"Lower bound of the voting rights, in percent."}]},"voting_max_shares":{"oneOf":[{"type":"string","description":"Upper bound of the voting rights, in percent."},{"type":"null","description":"Upper bound of the voting rights, in percent."}]},"appointment_date":{"oneOf":[{"type":"string","description":"Date the holding or appointment started (ISO 8601)."},{"type":"null","description":"Date the holding or appointment started (ISO 8601)."}]},"is_active":{"oneOf":[{"type":"boolean","description":"False for a former owner."},{"type":"null","description":"False for a former owner."}]},"shareholding":{"oneOf":[{"type":"object","description":"What an owner holds, in the same shape for every country and registry source. Null when the registry states no holding. A band (for example a UK PSC's 25-50%) is not a stake: `percentage` is null and the band stays in `ownership_min_shares` / `ownership_max_shares`.","properties":{"share_class":{"oneOf":[{"type":"string","description":"Share class or type as the registry names it."},{"type":"null","description":"Share class or type as the registry names it."}]},"number_of_shares":{"oneOf":[{"type":"number","description":"Number of shares held."},{"type":"null","description":"Number of shares held."}]},"currency":{"oneOf":[{"type":"string","description":"ISO 4217 currency of the values below."},{"type":"null","description":"ISO 4217 currency of the values below."}]},"nominal_value":{"oneOf":[{"type":"number","description":"Nominal value per share."},{"type":"null","description":"Nominal value per share."}]},"total_value":{"oneOf":[{"type":"number","description":"Total value of the holding."},{"type":"null","description":"Total value of the holding."}]},"percentage":{"oneOf":[{"type":"number","description":"Exact stake in percent, to four decimal places."},{"type":"null","description":"Exact stake in percent, to four decimal places."}]}},"required":["share_class","number_of_shares","currency","nominal_value","total_value","percentage"]},{"type":"null","description":"What an owner holds, in the same shape for every country and registry source. Null when the registry states no holding. A band (for example a UK PSC's 25-50%) is not a stake: `percentage` is null and the band stays in `ownership_min_shares` / `ownership_max_shares`.","properties":{"share_class":{"oneOf":[{"type":"string","description":"Share class or type as the registry names it."},{"type":"null","description":"Share class or type as the registry names it."}]},"number_of_shares":{"oneOf":[{"type":"number","description":"Number of shares held."},{"type":"null","description":"Number of shares held."}]},"currency":{"oneOf":[{"type":"string","description":"ISO 4217 currency of the values below."},{"type":"null","description":"ISO 4217 currency of the values below."}]},"nominal_value":{"oneOf":[{"type":"number","description":"Nominal value per share."},{"type":"null","description":"Nominal value per share."}]},"total_value":{"oneOf":[{"type":"number","description":"Total value of the holding."},{"type":"null","description":"Total value of the holding."}]},"percentage":{"oneOf":[{"type":"number","description":"Exact stake in percent, to four decimal places."},{"type":"null","description":"Exact stake in percent, to four decimal places."}]}},"required":["share_class","number_of_shares","currency","nominal_value","total_value","percentage"]}]}},"required":["name","first_name","last_name","date_of_birth","country_of_birth","company_name","registration_number","entity_type","nationality","designation","roles","ownership_min_shares","ownership_max_shares","voting_min_shares","voting_max_shares","appointment_date","is_active","shareholding"]}}},"required":["shareholders","beneficial_owners"],"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].ownership_structure.oneOf.1","typeLabel":"null"}],"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].ownership_structure","typeLabel":"object | null"},"warnings":{"type":"array","items":{"type":"object","uniqueKey":"registry_checks.oneOf.0.items.[INDEX].warnings.items.[INDEX]","typeLabel":"object"},"uniqueKey":"registry_checks.oneOf.0.items.[INDEX].warnings","typeLabel":"object[]"}},"uniqueKey":"registry_checks.oneOf.0.items.[INDEX]","typeLabel":"object"},"uniqueKey":"registry_checks.oneOf.0","typeLabel":"object[]"},{"type":"null","description":"Company registry checks. Present only when `session_kind = business`. Each item wraps the full company-registry payload.","items":{"type":"object","description":"One company registry check — the full company-registry payload enriched with ownership structure and warnings. Present only when `session_kind = business`.","properties":{"status":{"type":"string","description":"Feature lifecycle status."},"node_id":{"oneOf":[{"type":"string"},{"type":"null"}]},"data_resolved":{"type":"boolean"},"company":{"type":"object","description":"Full registry payload for the company (registry record merged with any user-provided or console-edited data).","properties":{"uuid":{"type":"string","format":"uuid"},"node_id":{"oneOf":[{"type":"string"},{"type":"null"}]},"status":{"type":"string"},"registry_status":{"oneOf":[{"type":"string"},{"type":"null"}]},"data_resolved":{"type":"boolean"},"company_name":{"type":"string"},"registration_number":{"oneOf":[{"type":"string"},{"type":"null"}]},"country_code":{"type":"string","description":"Country of incorporation (ISO 3166-1 alpha-2, e.g. `GB`, `DE`, `US`)."},"region":{"oneOf":[{"type":"string","description":"ISO 3166-2 subdivision code when applicable (e.g. `CA`, `NY` for US states)."},{"type":"null","description":"ISO 3166-2 subdivision code when applicable (e.g. `CA`, `NY` for US states)."}]},"company_type":{"oneOf":[{"type":"string"},{"type":"null"}]},"incorporation_date":{"oneOf":[{"type":"string","format":"date"},{"type":"null","format":"date"}]},"registered_address":{"oneOf":[{"type":"string"},{"type":"null"}]},"tax_number":{"oneOf":[{"type":"string"},{"type":"null"}]},"risk_level":{"oneOf":[{"type":"string","enum":["LOW","MEDIUM","HIGH"]},{"type":"null","enum":["LOW","MEDIUM","HIGH"]}]},"verification_status":{"oneOf":[{"type":"string"},{"type":"null"}]},"is_from_registry":{"type":"boolean"},"fetch_status":{"oneOf":[{"type":"string"},{"type":"null"}]},"alternative_names":{"oneOf":[{"type":"string","description":"Alternative, trading, former or original-language company names as text, when reported."},{"type":"null","description":"Alternative, trading, former or original-language company names as text, when reported."}]},"nature_of_business":{"oneOf":[{"type":"string"},{"type":"null"}]},"registered_capital":{"oneOf":[{"type":"string"},{"type":"null"}]},"registered_capital_amount":{"oneOf":[{"type":"string","format":"decimal","description":"Registered/share capital amount as a decimal string (e.g. `\"100.00\"`), parsed from the registry filing. `null` when not available."},{"type":"null","format":"decimal","description":"Registered/share capital amount as a decimal string (e.g. `\"100.00\"`), parsed from the registry filing. `null` when not available."}]},"registered_capital_currency":{"oneOf":[{"type":"string","description":"ISO 4217 currency code of `registered_capital_amount` (e.g. `\"GBP\"`). `null` when not available."},{"type":"null","description":"ISO 4217 currency code of `registered_capital_amount` (e.g. `\"GBP\"`). `null` when not available."}]},"website":{"oneOf":[{"type":"string"},{"type":"null"}]},"email":{"oneOf":[{"type":"string","format":"email"},{"type":"null","format":"email"}]},"phone":{"oneOf":[{"type":"string"},{"type":"null"}]},"legal_entity_identifier":{"oneOf":[{"type":"string"},{"type":"null"}]},"location_of_registration":{"oneOf":[{"type":"string"},{"type":"null"}]},"vat_number":{"oneOf":[{"type":"string","description":"EU VAT number, when collected during the hosted registry step or edited afterwards."},{"type":"null","description":"EU VAT number, when collected during the hosted registry step or edited afterwards."}]},"vat_validation_status":{"type":"string","enum":["valid","invalid","format_valid","invalid_format","could_not_validate","not_applicable"],"description":"Result of validating the VAT number or, when there is none, the `tax_number`, at registry submit. `valid` / `invalid`: decided by the official registry of the country (EU VIES, Norway, Switzerland, Brazil, Colombia, Costa Rica, Ecuador, Paraguay; Poland also by its domestic VAT register). `format_valid` / `invalid_format`: decided by the country's format and check-digit rules where no registry can be queried. `could_not_validate`: the registry was unavailable. `not_applicable`: no number, a country without registry or rules, or a sandbox session."},"vat_validated_number":{"oneOf":[{"type":"string","description":"The number that was checked, as the source knows it (for example the VAT number derived from a French SIREN or a Dutch RSIN). `null` when no check ran."},{"type":"null","description":"The number that was checked, as the source knows it (for example the VAT number derived from a French SIREN or a Dutch RSIN). `null` when no check ran."}]},"vat_validation_source":{"oneOf":[{"type":"string","enum":["eu_vies","pl_vat_white_list","no_brreg","ch_uid_register","br_receita_federal","co_rues","cr_hacienda","ec_sri","py_dnit","format_rules",null],"description":"The source that decided `vat_validation_status`: an official registry, or `format_rules`. `null` when no check ran."},{"type":"null","enum":["eu_vies","pl_vat_white_list","no_brreg","ch_uid_register","br_receita_federal","co_rues","cr_hacienda","ec_sri","py_dnit","format_rules",null],"description":"The source that decided `vat_validation_status`: an official registry, or `format_rules`. `null` when no check ran."}]},"vat_validated_name":{"oneOf":[{"type":"string","description":"Name registered with the source that validated the number, when it discloses one. Only set when the status is `valid`."},{"type":"null","description":"Name registered with the source that validated the number, when it discloses one. Only set when the status is `valid`."}]},"vat_validated_address":{"oneOf":[{"type":"string","description":"Address registered with the source that validated the number, when it discloses one. Only set when the status is `valid`."},{"type":"null","description":"Address registered with the source that validated the number, when it discloses one. Only set when the status is `valid`."}]},"vat_checked_at":{"oneOf":[{"type":"string","format":"date-time","description":"Timestamp of the check. `null` when no check ran."},{"type":"null","format":"date-time","description":"Timestamp of the check. `null` when no check ran."}]},"financial_summary":{"oneOf":[{"type":"object"},{"type":"null"}]},"officers":{"type":"array","items":{"type":"object","properties":{"uuid":{"type":"string","format":"uuid"},"name":{"type":"string"},"designation":{"oneOf":[{"type":"string"},{"type":"null"}]},"role":{"oneOf":[{"type":"string"},{"type":"null"}]},"nationality":{"oneOf":[{"type":"string"},{"type":"null"}]},"is_active":{"type":"boolean"},"kyc_status":{"oneOf":[{"type":"string","enum":["Approved","Declined","Pending"]},{"type":"null","enum":["Approved","Declined","Pending"]}]},"kyc_session_url":{"oneOf":[{"type":"string","format":"uri"},{"type":"null","format":"uri"}]},"first_name":{"oneOf":[{"type":"string","description":"Given name when explicitly reported by the registry; not inferred from the full name."},{"type":"null","description":"Given name when explicitly reported by the registry; not inferred from the full name."}]},"last_name":{"oneOf":[{"type":"string","description":"Family name when explicitly reported by the registry."},{"type":"null","description":"Family name when explicitly reported by the registry."}]},"address":{"oneOf":[{"type":"string","description":"Officer address reported by the registry."},{"type":"null","description":"Officer address reported by the registry."}]},"appointment_date":{"oneOf":[{"type":"string","description":"Date the officer was appointed.","format":"date"},{"type":"null","description":"Date the officer was appointed.","format":"date"}]},"termination_date":{"oneOf":[{"type":"string","description":"Date the appointment ended, when reported.","format":"date"},{"type":"null","description":"Date the appointment ended, when reported.","format":"date"}]},"date_of_birth":{"oneOf":[{"type":"string","description":"Complete registry-reported birth date. Null when only a birth year or month is known.","format":"date"},{"type":"null","description":"Complete registry-reported birth date. Null when only a birth year or month is known.","format":"date"}]},"date_of_birth_year":{"oneOf":[{"type":"integer","minimum":1,"maximum":9999,"description":"Registry-reported birth year, including when the full date is unavailable."},{"type":"null","minimum":1,"maximum":9999,"description":"Registry-reported birth year, including when the full date is unavailable."}]},"date_of_birth_month":{"oneOf":[{"type":"integer","minimum":1,"maximum":12,"description":"Registry-reported birth month. Null when only the year is known."},{"type":"null","minimum":1,"maximum":12,"description":"Registry-reported birth month. Null when only the year is known."}]}}}},"beneficial_owners":{"type":"array","items":{"type":"object","properties":{"uuid":{"type":"string","format":"uuid"},"name":{"type":"string"},"first_name":{"oneOf":[{"type":"string"},{"type":"null"}]},"last_name":{"oneOf":[{"type":"string"},{"type":"null"}]},"entity_type":{"type":"string","enum":["person","company"]},"roles":{"type":"array","items":{"type":"string"}},"ownership_min_shares":{"oneOf":[{"type":"string","description":"Lower bound of the ownership percentage as reported by the registry. Free-form string (e.g. `\"25.00\"`, `\"50\"`); use `effective_ownership_percent` for a parsed numeric value."},{"type":"null","description":"Lower bound of the ownership percentage as reported by the registry. Free-form string (e.g. `\"25.00\"`, `\"50\"`); use `effective_ownership_percent` for a parsed numeric value."}]},"ownership_max_shares":{"oneOf":[{"type":"string","description":"Upper bound of the ownership percentage as reported by the registry. Free-form string; use `effective_ownership_percent` for a parsed numeric value."},{"type":"null","description":"Upper bound of the ownership percentage as reported by the registry. Free-form string; use `effective_ownership_percent` for a parsed numeric value."}]},"is_active":{"type":"boolean"},"kyc_status":{"oneOf":[{"type":"string","enum":["Approved","Declined","Pending"]},{"type":"null","enum":["Approved","Declined","Pending"]}]},"kyc_session_url":{"oneOf":[{"type":"string","format":"uri"},{"type":"null","format":"uri"}]},"effective_ownership_percent":{"oneOf":[{"type":"number"},{"type":"null"}]},"company_name":{"oneOf":[{"type":"string"},{"type":"null"}]},"registration_number":{"oneOf":[{"type":"string"},{"type":"null"}]},"country_of_birth":{"oneOf":[{"type":"string"},{"type":"null"}]},"email":{"oneOf":[{"type":"string"},{"type":"null"}]},"nationality":{"oneOf":[{"type":"string"},{"type":"null"}]},"designation":{"oneOf":[{"type":"string"},{"type":"null"}]},"voting_min_shares":{"oneOf":[{"type":"string"},{"type":"null"}]},"voting_max_shares":{"oneOf":[{"type":"string"},{"type":"null"}]},"date_of_birth":{"oneOf":[{"type":"string","description":"Complete birth date when reported.","format":"date"},{"type":"null","description":"Complete birth date when reported.","format":"date"}]},"appointment_date":{"oneOf":[{"type":"string","description":"Appointment date when reported.","format":"date"},{"type":"null","description":"Appointment date when reported.","format":"date"}]},"shareholding":{"oneOf":[{"type":"object","description":"What an owner holds, in the same shape for every country and registry source. Null when the registry states no holding. A band (for example a UK PSC's 25-50%) is not a stake: `percentage` is null and the band stays in `ownership_min_shares` / `ownership_max_shares`.","properties":{"share_class":{"oneOf":[{"type":"string","description":"Share class or type as the registry names it."},{"type":"null","description":"Share class or type as the registry names it."}]},"number_of_shares":{"oneOf":[{"type":"number","description":"Number of shares held."},{"type":"null","description":"Number of shares held."}]},"currency":{"oneOf":[{"type":"string","description":"ISO 4217 currency of the values below."},{"type":"null","description":"ISO 4217 currency of the values below."}]},"nominal_value":{"oneOf":[{"type":"number","description":"Nominal value per share."},{"type":"null","description":"Nominal value per share."}]},"total_value":{"oneOf":[{"type":"number","description":"Total value of the holding."},{"type":"null","description":"Total value of the holding."}]},"percentage":{"oneOf":[{"type":"number","description":"Exact stake in percent, to four decimal places."},{"type":"null","description":"Exact stake in percent, to four decimal places."}]}},"required":["share_class","number_of_shares","currency","nominal_value","total_value","percentage"]},{"type":"null","description":"What an owner holds, in the same shape for every country and registry source. Null when the registry states no holding. A band (for example a UK PSC's 25-50%) is not a stake: `percentage` is null and the band stays in `ownership_min_shares` / `ownership_max_shares`.","properties":{"share_class":{"oneOf":[{"type":"string","description":"Share class or type as the registry names it."},{"type":"null","description":"Share class or type as the registry names it."}]},"number_of_shares":{"oneOf":[{"type":"number","description":"Number of shares held."},{"type":"null","description":"Number of shares held."}]},"currency":{"oneOf":[{"type":"string","description":"ISO 4217 currency of the values below."},{"type":"null","description":"ISO 4217 currency of the values below."}]},"nominal_value":{"oneOf":[{"type":"number","description":"Nominal value per share."},{"type":"null","description":"Nominal value per share."}]},"total_value":{"oneOf":[{"type":"number","description":"Total value of the holding."},{"type":"null","description":"Total value of the holding."}]},"percentage":{"oneOf":[{"type":"number","description":"Exact stake in percent, to four decimal places."},{"type":"null","description":"Exact stake in percent, to four decimal places."}]}},"required":["share_class","number_of_shares","currency","nominal_value","total_value","percentage"]}]}}}},"addresses":{"oneOf":[{"type":"array","description":"Every address the registry states, one canonical shape. Null when it states none.","items":{"type":"object","description":"An address the registry states, in the same shape for every country and registry source. Every key is always present; a part the registry does not publish is null.","properties":{"type":{"oneOf":[{"type":"string","description":"Address type in lower case: `registered` for the registered office; other types as the registry names them (for example `postal`, `office`). `null` when the registry does not say what the address is."},{"type":"null","description":"Address type in lower case: `registered` for the registered office; other types as the registry names them (for example `postal`, `office`). `null` when the registry does not say what the address is."}]},"address":{"type":"string","description":"The full address as one line. Always present on every address."},"street":{"oneOf":[{"type":"string","description":"Street and number."},{"type":"null","description":"Street and number."}]},"city":{"oneOf":[{"type":"string","description":"City or locality."},{"type":"null","description":"City or locality."}]},"postal_code":{"oneOf":[{"type":"string","description":"Postal code."},{"type":"null","description":"Postal code."}]},"region":{"oneOf":[{"type":"string","description":"Region, state or province."},{"type":"null","description":"Region, state or province."}]},"country_code":{"oneOf":[{"type":"string","description":"ISO 3166-1 alpha-2 country code."},{"type":"null","description":"ISO 3166-1 alpha-2 country code."}]},"description":{"oneOf":[{"type":"string","description":"The registry's own label for the address, when it gives one."},{"type":"null","description":"The registry's own label for the address, when it gives one."}]}},"required":["type","address","street","city","postal_code","region","country_code","description"]}},{"type":"null","description":"Every address the registry states, one canonical shape. Null when it states none.","items":{"type":"object","description":"An address the registry states, in the same shape for every country and registry source. Every key is always present; a part the registry does not publish is null.","properties":{"type":{"oneOf":[{"type":"string","description":"Address type in lower case: `registered` for the registered office; other types as the registry names them (for example `postal`, `office`). `null` when the registry does not say what the address is."},{"type":"null","description":"Address type in lower case: `registered` for the registered office; other types as the registry names them (for example `postal`, `office`). `null` when the registry does not say what the address is."}]},"address":{"type":"string","description":"The full address as one line. Always present on every address."},"street":{"oneOf":[{"type":"string","description":"Street and number."},{"type":"null","description":"Street and number."}]},"city":{"oneOf":[{"type":"string","description":"City or locality."},{"type":"null","description":"City or locality."}]},"postal_code":{"oneOf":[{"type":"string","description":"Postal code."},{"type":"null","description":"Postal code."}]},"region":{"oneOf":[{"type":"string","description":"Region, state or province."},{"type":"null","description":"Region, state or province."}]},"country_code":{"oneOf":[{"type":"string","description":"ISO 3166-1 alpha-2 country code."},{"type":"null","description":"ISO 3166-1 alpha-2 country code."}]},"description":{"oneOf":[{"type":"string","description":"The registry's own label for the address, when it gives one."},{"type":"null","description":"The registry's own label for the address, when it gives one."}]}},"required":["type","address","street","city","postal_code","region","country_code","description"]}}]},"industries":{"oneOf":[{"type":"array","description":"The activities the registry classifies the company under, one canonical shape. Null when it states none.","items":{"type":"object","description":"An activity the registry classifies the company under, in the same shape for every country and registry source.","properties":{"code":{"oneOf":[{"type":"string","description":"Activity code as the registry prints it (for example `73110`)."},{"type":"null","description":"Activity code as the registry prints it (for example `73110`)."}]},"description":{"oneOf":[{"type":"string","description":"Activity label, when the registry publishes one."},{"type":"null","description":"Activity label, when the registry publishes one."}]},"scheme":{"oneOf":[{"type":"string","description":"Classification system, one name per system whichever source reported it: `UK SIC 2007`, `US SIC`, `NACE Rev. 2`, `NACE Rev. 2.1`, `NAF Rev. 2`, `CNAE`, `SBI`, `NOGA 2008`, `CAE Rev. 4`, `Canada SIC 1977`; other national systems keep the registry's own name. Null when the registry does not name the system."},{"type":"null","description":"Classification system, one name per system whichever source reported it: `UK SIC 2007`, `US SIC`, `NACE Rev. 2`, `NACE Rev. 2.1`, `NAF Rev. 2`, `CNAE`, `SBI`, `NOGA 2008`, `CAE Rev. 4`, `Canada SIC 1977`; other national systems keep the registry's own name. Null when the registry does not name the system."}]},"is_primary":{"type":"boolean","description":"True for the company's main activity. Exactly one entry is primary when the list is not empty."}},"required":["code","description","scheme","is_primary"]}},{"type":"null","description":"The activities the registry classifies the company under, one canonical shape. Null when it states none.","items":{"type":"object","description":"An activity the registry classifies the company under, in the same shape for every country and registry source.","properties":{"code":{"oneOf":[{"type":"string","description":"Activity code as the registry prints it (for example `73110`)."},{"type":"null","description":"Activity code as the registry prints it (for example `73110`)."}]},"description":{"oneOf":[{"type":"string","description":"Activity label, when the registry publishes one."},{"type":"null","description":"Activity label, when the registry publishes one."}]},"scheme":{"oneOf":[{"type":"string","description":"Classification system, one name per system whichever source reported it: `UK SIC 2007`, `US SIC`, `NACE Rev. 2`, `NACE Rev. 2.1`, `NAF Rev. 2`, `CNAE`, `SBI`, `NOGA 2008`, `CAE Rev. 4`, `Canada SIC 1977`; other national systems keep the registry's own name. Null when the registry does not name the system."},{"type":"null","description":"Classification system, one name per system whichever source reported it: `UK SIC 2007`, `US SIC`, `NACE Rev. 2`, `NACE Rev. 2.1`, `NAF Rev. 2`, `CNAE`, `SBI`, `NOGA 2008`, `CAE Rev. 4`, `Canada SIC 1977`; other national systems keep the registry's own name. Null when the registry does not name the system."}]},"is_primary":{"type":"boolean","description":"True for the company's main activity. Exactly one entry is primary when the list is not empty."}},"required":["code","description","scheme","is_primary"]}}]},"accounts":{"oneOf":[{"type":"object","additionalProperties":true,"description":"Registry filing dates, when available. Annual returns and general meetings use last_annual_return_date and last_agm_date; they are distinct from financial accounts."},{"type":"null","additionalProperties":true,"description":"Registry filing dates, when available. Annual returns and general meetings use last_annual_return_date and last_agm_date; they are distinct from financial accounts."}]},"registry_data":{"oneOf":[{"type":"object","description":"Didit's normalized registry detail for the company: the ownership outcome (`ownership_error`, `section_errors`, `ubo_resolution`, `lite_enrichment`), the corrections made with update-data, and registry facts that have no field of their own. It never carries the registry source's own record. Every key is optional and present only when the company has a value for it; new keys may be added. Read the canonical fields (`addresses`, `industries`, `ownership`, `beneficial_owners[].shareholding`) for anything they cover.","properties":{"company_name":{"type":"string","description":"Company name as corrected in the console."},"registration_number":{"type":"string","description":"Registration number as the registry or a console correction states it."},"country_code":{"type":"string","description":"Country of the registration as the registry or a console correction states it."},"region":{"type":"string","description":"Region or state of the registration."},"incorporation_date":{"type":"string","description":"Incorporation date (ISO 8601)."},"registration_date":{"type":"string","description":"Registration date (ISO 8601) when the registry states one apart from the incorporation date."},"dissolution_date":{"type":"string","description":"Dissolution date (ISO 8601) when the registry states one."},"tax_number":{"type":"string","description":"Tax identification number."},"vat_number":{"type":"string","description":"VAT number."},"legal_address":{"type":"string","description":"Legal address as corrected in the console."},"registered_address":{"type":"string","description":"Registered address as the registry states it."},"company_type":{"type":"string","description":"Legal form."},"registry_status":{"type":"string","description":"Company status at the registry."},"verification_status":{"type":"string","description":"Verification status."},"alternative_names":{"type":"string","description":"Other names the company trades or traded under."},"nature_of_business":{"type":"string","description":"Activity description."},"registered_capital":{"type":"string","description":"Registered capital as printed."},"registered_capital_amount":{"type":"string","description":"Registered capital amount, as a decimal string."},"registered_capital_currency":{"type":"string","description":"Registered capital currency (ISO 4217)."},"website":{"type":"string","description":"Website."},"email":{"type":"string","description":"Contact email."},"phone":{"type":"string","description":"Contact phone."},"legal_entity_identifier":{"type":"string","description":"Legal Entity Identifier (LEI)."},"location_of_registration":{"type":"string","description":"Place of registration."},"control_scheme":{"type":"string","description":"Governance scheme when the registry exposes it."},"ownership_error":{"type":"string","enum":["no_owners_on_record","no_natural_person_owner","ownership_section_unavailable","company_not_found","ambiguous_company_match","missing_registration_number","entity_type_not_covered","provider_unavailable","other"],"description":"Why a requested ownership tier was not delivered, in the same codes as `ownership.unavailable_reason`. `no_owners_on_record` (the registry answered and names no owner) and `ownership_section_unavailable` (the registry did not return the ownership section) are different findings."},"section_errors":{"type":"object","description":"Sections the registry did not return, keyed by section (`officers`, `shareholders`, `group_structure`). A section listed here was never delivered: an empty list next to it says nothing about the company.","additionalProperties":{"type":"object","description":"A section the registry did not return.","properties":{"status_code":{"oneOf":[{"type":"integer","description":"The status the registry answered for the section."},{"type":"null","description":"The status the registry answered for the section."}]}},"required":["status_code"]}},"ubo_resolution":{"type":"object","description":"How the UBO tier walked the ownership chain above the company.","properties":{"parent_chain":{"type":"array","description":"Corporate parents from the ultimate parent down to the company.","items":{"type":"object","description":"A company of the corporate group, by its registry identity.","properties":{"name":{"oneOf":[{"type":"string","description":"Company name."},{"type":"null","description":"Company name."}]},"country_code":{"oneOf":[{"type":"string","description":"Country of registration."},{"type":"null","description":"Country of registration."}]},"registration_number":{"oneOf":[{"type":"string","description":"Registration number."},{"type":"null","description":"Registration number."}]}},"required":["name","country_code","registration_number"]}},"subsidiaries":{"type":"array","description":"Companies directly below the company in its corporate group.","items":{"type":"object","description":"A company of the corporate group, by its registry identity.","properties":{"name":{"oneOf":[{"type":"string","description":"Company name."},{"type":"null","description":"Company name."}]},"country_code":{"oneOf":[{"type":"string","description":"Country of registration."},{"type":"null","description":"Country of registration."}]},"registration_number":{"oneOf":[{"type":"string","description":"Registration number."},{"type":"null","description":"Registration number."}]}},"required":["name","country_code","registration_number"]}},"unresolved":{"type":"array","description":"Parts of the chain the registry could not resolve (the same entries as `ownership.unresolved`).","items":{"type":"object","properties":{"reason":{"type":"string","description":"Why, for example `no_group_structure_on_record`, `selected_company_not_in_group_structure` or `section_error`."},"section":{"oneOf":[{"type":"string","description":"The section concerned, for example `group_structure`."},{"type":"null","description":"The section concerned, for example `group_structure`."}]}},"required":["reason","section"]}}},"required":["parent_chain","subsidiaries","unresolved"]},"lite_enrichment":{"type":"object","description":"Blank Lite profile fields another of the country's registry sources filled. The source is not named.","properties":{"fields":{"type":"array","items":{"type":"string"},"description":"The company fields that were filled."},"people_added":{"type":"integer","description":"How many officers or owners were added."}},"required":["fields","people_added"]},"registry_metadata":{"type":"object","additionalProperties":{"oneOf":[{"type":"string"},{"type":"number"},{"type":"boolean"}]},"description":"The register's own fields for the company, keyed as the register names them, as plain values (legacy records). Only fields reviewed as registry facts are included."},"registry_sources":{"type":"array","description":"The official registers the record was read from (legacy records). Other sources are not named.","items":{"type":"object","description":"An official register the record was read from. Only official government registers, regulators and the official identifier system are named; any other source is left out.","properties":{"name":{"type":"string","description":"Register name, for example `UK Companies House`."},"source_type":{"type":"string","enum":["official"],"description":"Always `official`."}},"required":["name","source_type"]}},"previous_names":{"type":"array","items":{"type":"string"},"description":"Names the company was registered under before (legacy records)."},"parent_companies":{"type":"array","items":{"type":"string"},"description":"Parent companies the registry names (legacy records)."},"documents_available":{"type":"integer","description":"How many filings the registry offers for the company (legacy records)."}}},{"type":"null","description":"Didit's normalized registry detail for the company: the ownership outcome (`ownership_error`, `section_errors`, `ubo_resolution`, `lite_enrichment`), the corrections made with update-data, and registry facts that have no field of their own. It never carries the registry source's own record. Every key is optional and present only when the company has a value for it; new keys may be added. Read the canonical fields (`addresses`, `industries`, `ownership`, `beneficial_owners[].shareholding`) for anything they cover.","properties":{"company_name":{"type":"string","description":"Company name as corrected in the console."},"registration_number":{"type":"string","description":"Registration number as the registry or a console correction states it."},"country_code":{"type":"string","description":"Country of the registration as the registry or a console correction states it."},"region":{"type":"string","description":"Region or state of the registration."},"incorporation_date":{"type":"string","description":"Incorporation date (ISO 8601)."},"registration_date":{"type":"string","description":"Registration date (ISO 8601) when the registry states one apart from the incorporation date."},"dissolution_date":{"type":"string","description":"Dissolution date (ISO 8601) when the registry states one."},"tax_number":{"type":"string","description":"Tax identification number."},"vat_number":{"type":"string","description":"VAT number."},"legal_address":{"type":"string","description":"Legal address as corrected in the console."},"registered_address":{"type":"string","description":"Registered address as the registry states it."},"company_type":{"type":"string","description":"Legal form."},"registry_status":{"type":"string","description":"Company status at the registry."},"verification_status":{"type":"string","description":"Verification status."},"alternative_names":{"type":"string","description":"Other names the company trades or traded under."},"nature_of_business":{"type":"string","description":"Activity description."},"registered_capital":{"type":"string","description":"Registered capital as printed."},"registered_capital_amount":{"type":"string","description":"Registered capital amount, as a decimal string."},"registered_capital_currency":{"type":"string","description":"Registered capital currency (ISO 4217)."},"website":{"type":"string","description":"Website."},"email":{"type":"string","description":"Contact email."},"phone":{"type":"string","description":"Contact phone."},"legal_entity_identifier":{"type":"string","description":"Legal Entity Identifier (LEI)."},"location_of_registration":{"type":"string","description":"Place of registration."},"control_scheme":{"type":"string","description":"Governance scheme when the registry exposes it."},"ownership_error":{"type":"string","enum":["no_owners_on_record","no_natural_person_owner","ownership_section_unavailable","company_not_found","ambiguous_company_match","missing_registration_number","entity_type_not_covered","provider_unavailable","other"],"description":"Why a requested ownership tier was not delivered, in the same codes as `ownership.unavailable_reason`. `no_owners_on_record` (the registry answered and names no owner) and `ownership_section_unavailable` (the registry did not return the ownership section) are different findings."},"section_errors":{"type":"object","description":"Sections the registry did not return, keyed by section (`officers`, `shareholders`, `group_structure`). A section listed here was never delivered: an empty list next to it says nothing about the company.","additionalProperties":{"type":"object","description":"A section the registry did not return.","properties":{"status_code":{"oneOf":[{"type":"integer","description":"The status the registry answered for the section."},{"type":"null","description":"The status the registry answered for the section."}]}},"required":["status_code"]}},"ubo_resolution":{"type":"object","description":"How the UBO tier walked the ownership chain above the company.","properties":{"parent_chain":{"type":"array","description":"Corporate parents from the ultimate parent down to the company.","items":{"type":"object","description":"A company of the corporate group, by its registry identity.","properties":{"name":{"oneOf":[{"type":"string","description":"Company name."},{"type":"null","description":"Company name."}]},"country_code":{"oneOf":[{"type":"string","description":"Country of registration."},{"type":"null","description":"Country of registration."}]},"registration_number":{"oneOf":[{"type":"string","description":"Registration number."},{"type":"null","description":"Registration number."}]}},"required":["name","country_code","registration_number"]}},"subsidiaries":{"type":"array","description":"Companies directly below the company in its corporate group.","items":{"type":"object","description":"A company of the corporate group, by its registry identity.","properties":{"name":{"oneOf":[{"type":"string","description":"Company name."},{"type":"null","description":"Company name."}]},"country_code":{"oneOf":[{"type":"string","description":"Country of registration."},{"type":"null","description":"Country of registration."}]},"registration_number":{"oneOf":[{"type":"string","description":"Registration number."},{"type":"null","description":"Registration number."}]}},"required":["name","country_code","registration_number"]}},"unresolved":{"type":"array","description":"Parts of the chain the registry could not resolve (the same entries as `ownership.unresolved`).","items":{"type":"object","properties":{"reason":{"type":"string","description":"Why, for example `no_group_structure_on_record`, `selected_company_not_in_group_structure` or `section_error`."},"section":{"oneOf":[{"type":"string","description":"The section concerned, for example `group_structure`."},{"type":"null","description":"The section concerned, for example `group_structure`."}]}},"required":["reason","section"]}}},"required":["parent_chain","subsidiaries","unresolved"]},"lite_enrichment":{"type":"object","description":"Blank Lite profile fields another of the country's registry sources filled. The source is not named.","properties":{"fields":{"type":"array","items":{"type":"string"},"description":"The company fields that were filled."},"people_added":{"type":"integer","description":"How many officers or owners were added."}},"required":["fields","people_added"]},"registry_metadata":{"type":"object","additionalProperties":{"oneOf":[{"type":"string"},{"type":"number"},{"type":"boolean"}]},"description":"The register's own fields for the company, keyed as the register names them, as plain values (legacy records). Only fields reviewed as registry facts are included."},"registry_sources":{"type":"array","description":"The official registers the record was read from (legacy records). Other sources are not named.","items":{"type":"object","description":"An official register the record was read from. Only official government registers, regulators and the official identifier system are named; any other source is left out.","properties":{"name":{"type":"string","description":"Register name, for example `UK Companies House`."},"source_type":{"type":"string","enum":["official"],"description":"Always `official`."}},"required":["name","source_type"]}},"previous_names":{"type":"array","items":{"type":"string"},"description":"Names the company was registered under before (legacy records)."},"parent_companies":{"type":"array","items":{"type":"string"},"description":"Parent companies the registry names (legacy records)."},"documents_available":{"type":"integer","description":"How many filings the registry offers for the company (legacy records)."}}}]},"user_provided_data":{"type":"object","description":"Data confirmed or edited by the end user."},"confirmed_by_user_at":{"oneOf":[{"type":"string","format":"date-time"},{"type":"null","format":"date-time"}]},"last_console_edit_at":{"oneOf":[{"type":"string","format":"date-time"},{"type":"null","format":"date-time"}]},"is_editable":{"type":"boolean"},"ownership":{"type":"object","description":"The outcome of the ownership (Shareholders / UBO) tier, in the same shape for every country and registry source.","properties":{"status":{"oneOf":[{"type":"string","enum":["not_requested","pending","delivered","not_held","unavailable",null],"description":"`delivered` when the registry published ownership; `not_held` when the ownership registry answered and does not list the company at all (see `unavailable_reason`); `unavailable` when it did not serve the ownership data for any other reason (see `unavailable_reason`); `pending` while the registry is still fetching it; `not_requested` for the Basic tier."},{"type":"null","enum":["not_requested","pending","delivered","not_held","unavailable",null],"description":"`delivered` when the registry published ownership; `not_held` when the ownership registry answered and does not list the company at all (see `unavailable_reason`); `unavailable` when it did not serve the ownership data for any other reason (see `unavailable_reason`); `pending` while the registry is still fetching it; `not_requested` for the Basic tier."}]},"tier_requested":{"oneOf":[{"type":"string","enum":["basic","shareholders","ubo",null],"description":"The tier the workflow ordered."},{"type":"null","enum":["basic","shareholders","ubo",null],"description":"The tier the workflow ordered."}]},"tier_delivered":{"oneOf":[{"type":"string","enum":["basic","shareholders","ubo",null],"description":"The tier the registry delivered (and that is billed). A UBO request answered with direct shareholders only is `shareholders`."},{"type":"null","enum":["basic","shareholders","ubo",null],"description":"The tier the registry delivered (and that is billed). A UBO request answered with direct shareholders only is `shareholders`."}]},"unavailable_reason":{"oneOf":[{"type":"string","enum":["no_owners_on_record","no_natural_person_owner","ownership_section_unavailable","company_not_found","ambiguous_company_match","missing_registration_number","entity_type_not_covered","provider_unavailable","other",null],"description":"Why a requested ownership tier was not delivered. Null unless `status` is `unavailable` or `pending`."},{"type":"null","enum":["no_owners_on_record","no_natural_person_owner","ownership_section_unavailable","company_not_found","ambiguous_company_match","missing_registration_number","entity_type_not_covered","provider_unavailable","other",null],"description":"Why a requested ownership tier was not delivered. Null unless `status` is `unavailable` or `pending`."}]},"direct_ownership_complete":{"oneOf":[{"type":"boolean","description":"True when the direct shareholders' stated stakes add up to 100% (within one percentage point of rounding); false when they do not; null when ownership was not delivered or a stake is not stated."},{"type":"null","description":"True when the direct shareholders' stated stakes add up to 100% (within one percentage point of rounding); false when they do not; null when ownership was not delivered or a stake is not stated."}]},"unresolved":{"type":"array","description":"Parts of the ownership chain the registry could not resolve, for example no group structure on record above the direct owners.","items":{"type":"object","properties":{"reason":{"type":"string"},"section":{"oneOf":[{"type":"string"},{"type":"null"}]}}}}},"required":["status","tier_requested","tier_delivered","unavailable_reason","direct_ownership_complete","unresolved"]},"registry_tier":{"oneOf":[{"type":"string","description":"The registry tier the workflow ordered: `basic`, `shareholders` or `ubo`. Also in `ownership.tier_requested`."},{"type":"null","description":"The registry tier the workflow ordered: `basic`, `shareholders` or `ubo`. Also in `ownership.tier_requested`."}]},"registry_tier_delivered":{"oneOf":[{"type":"string","description":"The tier the registry delivered and that is billed. Also in `ownership.tier_delivered`."},{"type":"null","description":"The tier the registry delivered and that is billed. Also in `ownership.tier_delivered`."}]},"registry_ownership_status":{"oneOf":[{"type":"string","description":"`not_requested`, `pending`, `delivered`, `not_held` or `unavailable`. Also in `ownership.status`."},{"type":"null","description":"`not_requested`, `pending`, `delivered`, `not_held` or `unavailable`. Also in `ownership.status`."}]},"registry_monitoring":{"oneOf":[{"type":"object","description":"The latest registry monitor for the company, or `null` when none exists.","properties":{"uuid":{"type":"string","format":"uuid"},"status":{"type":"string"},"unavailable_reason":{"oneOf":[{"type":"string"},{"type":"null"}]},"enrolled_at":{"oneOf":[{"type":"string","format":"date-time"},{"type":"null","format":"date-time"}]},"cancelled_at":{"oneOf":[{"type":"string","format":"date-time"},{"type":"null","format":"date-time"}]},"last_bill_date":{"oneOf":[{"type":"string","format":"date"},{"type":"null","format":"date"}]},"next_bill_date":{"oneOf":[{"type":"string","format":"date"},{"type":"null","format":"date"}]},"last_event_at":{"oneOf":[{"type":"string","format":"date-time"},{"type":"null","format":"date-time"}]},"events_count":{"type":"integer"},"watched_fields":{"description":"The company fields the monitor watches."}}},{"type":"null","description":"The latest registry monitor for the company, or `null` when none exists.","properties":{"uuid":{"type":"string","format":"uuid"},"status":{"type":"string"},"unavailable_reason":{"oneOf":[{"type":"string"},{"type":"null"}]},"enrolled_at":{"oneOf":[{"type":"string","format":"date-time"},{"type":"null","format":"date-time"}]},"cancelled_at":{"oneOf":[{"type":"string","format":"date-time"},{"type":"null","format":"date-time"}]},"last_bill_date":{"oneOf":[{"type":"string","format":"date"},{"type":"null","format":"date"}]},"next_bill_date":{"oneOf":[{"type":"string","format":"date"},{"type":"null","format":"date"}]},"last_event_at":{"oneOf":[{"type":"string","format":"date-time"},{"type":"null","format":"date-time"}]},"events_count":{"type":"integer"},"watched_fields":{"description":"The company fields the monitor watches."}}}]}}},"ownership_structure":{"oneOf":[{"type":"object","description":"The cap table the registry proved, as it stood when the ownership tier was delivered: direct `shareholders` and `beneficial_owners`. Null when the registry proved no ownership. It never carries the registry source's own rows; read `company.beneficial_owners` and `company.ownership` for the current record.","properties":{"shareholders":{"type":"array","items":{"type":"object","description":"One owner of the ownership snapshot: the same registry identity and stake as `company.beneficial_owners[]`, and its canonical `shareholding`.","properties":{"name":{"oneOf":[{"type":"string","description":"Owner name as the registry states it."},{"type":"null","description":"Owner name as the registry states it."}]},"first_name":{"oneOf":[{"type":"string","description":"Given name, for a natural person, when the registry states it."},{"type":"null","description":"Given name, for a natural person, when the registry states it."}]},"last_name":{"oneOf":[{"type":"string","description":"Family name, for a natural person, when the registry states it."},{"type":"null","description":"Family name, for a natural person, when the registry states it."}]},"date_of_birth":{"oneOf":[{"type":"string","description":"Date of birth (ISO 8601) when the registry publishes it."},{"type":"null","description":"Date of birth (ISO 8601) when the registry publishes it."}]},"country_of_birth":{"oneOf":[{"type":"string","description":"Country of birth when the registry publishes it."},{"type":"null","description":"Country of birth when the registry publishes it."}]},"company_name":{"oneOf":[{"type":"string","description":"Company name, for a corporate owner."},{"type":"null","description":"Company name, for a corporate owner."}]},"registration_number":{"oneOf":[{"type":"string","description":"Registration number, for a corporate owner."},{"type":"null","description":"Registration number, for a corporate owner."}]},"entity_type":{"oneOf":[{"type":"string","enum":["person","company",null],"description":"Whether the owner is a natural person or a company."},{"type":"null","enum":["person","company",null],"description":"Whether the owner is a natural person or a company."}]},"nationality":{"oneOf":[{"type":"string","description":"Nationality when the registry states it."},{"type":"null","description":"Nationality when the registry states it."}]},"designation":{"oneOf":[{"type":"string","description":"The owner's title or role as the registry prints it."},{"type":"null","description":"The owner's title or role as the registry prints it."}]},"roles":{"type":"array","items":{"type":"string"},"description":"`shareholder` for a direct holder, `ubo` for a beneficial owner."},"ownership_min_shares":{"oneOf":[{"type":"string","description":"Lower bound of the stake, in percent (equal to the upper bound for an exact stake)."},{"type":"null","description":"Lower bound of the stake, in percent (equal to the upper bound for an exact stake)."}]},"ownership_max_shares":{"oneOf":[{"type":"string","description":"Upper bound of the stake, in percent."},{"type":"null","description":"Upper bound of the stake, in percent."}]},"voting_min_shares":{"oneOf":[{"type":"string","description":"Lower bound of the voting rights, in percent."},{"type":"null","description":"Lower bound of the voting rights, in percent."}]},"voting_max_shares":{"oneOf":[{"type":"string","description":"Upper bound of the voting rights, in percent."},{"type":"null","description":"Upper bound of the voting rights, in percent."}]},"appointment_date":{"oneOf":[{"type":"string","description":"Date the holding or appointment started (ISO 8601)."},{"type":"null","description":"Date the holding or appointment started (ISO 8601)."}]},"is_active":{"oneOf":[{"type":"boolean","description":"False for a former owner."},{"type":"null","description":"False for a former owner."}]},"shareholding":{"oneOf":[{"type":"object","description":"What an owner holds, in the same shape for every country and registry source. Null when the registry states no holding. A band (for example a UK PSC's 25-50%) is not a stake: `percentage` is null and the band stays in `ownership_min_shares` / `ownership_max_shares`.","properties":{"share_class":{"oneOf":[{"type":"string","description":"Share class or type as the registry names it."},{"type":"null","description":"Share class or type as the registry names it."}]},"number_of_shares":{"oneOf":[{"type":"number","description":"Number of shares held."},{"type":"null","description":"Number of shares held."}]},"currency":{"oneOf":[{"type":"string","description":"ISO 4217 currency of the values below."},{"type":"null","description":"ISO 4217 currency of the values below."}]},"nominal_value":{"oneOf":[{"type":"number","description":"Nominal value per share."},{"type":"null","description":"Nominal value per share."}]},"total_value":{"oneOf":[{"type":"number","description":"Total value of the holding."},{"type":"null","description":"Total value of the holding."}]},"percentage":{"oneOf":[{"type":"number","description":"Exact stake in percent, to four decimal places."},{"type":"null","description":"Exact stake in percent, to four decimal places."}]}},"required":["share_class","number_of_shares","currency","nominal_value","total_value","percentage"]},{"type":"null","description":"What an owner holds, in the same shape for every country and registry source. Null when the registry states no holding. A band (for example a UK PSC's 25-50%) is not a stake: `percentage` is null and the band stays in `ownership_min_shares` / `ownership_max_shares`.","properties":{"share_class":{"oneOf":[{"type":"string","description":"Share class or type as the registry names it."},{"type":"null","description":"Share class or type as the registry names it."}]},"number_of_shares":{"oneOf":[{"type":"number","description":"Number of shares held."},{"type":"null","description":"Number of shares held."}]},"currency":{"oneOf":[{"type":"string","description":"ISO 4217 currency of the values below."},{"type":"null","description":"ISO 4217 currency of the values below."}]},"nominal_value":{"oneOf":[{"type":"number","description":"Nominal value per share."},{"type":"null","description":"Nominal value per share."}]},"total_value":{"oneOf":[{"type":"number","description":"Total value of the holding."},{"type":"null","description":"Total value of the holding."}]},"percentage":{"oneOf":[{"type":"number","description":"Exact stake in percent, to four decimal places."},{"type":"null","description":"Exact stake in percent, to four decimal places."}]}},"required":["share_class","number_of_shares","currency","nominal_value","total_value","percentage"]}]}},"required":["name","first_name","last_name","date_of_birth","country_of_birth","company_name","registration_number","entity_type","nationality","designation","roles","ownership_min_shares","ownership_max_shares","voting_min_shares","voting_max_shares","appointment_date","is_active","shareholding"]}},"beneficial_owners":{"type":"array","items":{"type":"object","description":"One owner of the ownership snapshot: the same registry identity and stake as `company.beneficial_owners[]`, and its canonical `shareholding`.","properties":{"name":{"oneOf":[{"type":"string","description":"Owner name as the registry states it."},{"type":"null","description":"Owner name as the registry states it."}]},"first_name":{"oneOf":[{"type":"string","description":"Given name, for a natural person, when the registry states it."},{"type":"null","description":"Given name, for a natural person, when the registry states it."}]},"last_name":{"oneOf":[{"type":"string","description":"Family name, for a natural person, when the registry states it."},{"type":"null","description":"Family name, for a natural person, when the registry states it."}]},"date_of_birth":{"oneOf":[{"type":"string","description":"Date of birth (ISO 8601) when the registry publishes it."},{"type":"null","description":"Date of birth (ISO 8601) when the registry publishes it."}]},"country_of_birth":{"oneOf":[{"type":"string","description":"Country of birth when the registry publishes it."},{"type":"null","description":"Country of birth when the registry publishes it."}]},"company_name":{"oneOf":[{"type":"string","description":"Company name, for a corporate owner."},{"type":"null","description":"Company name, for a corporate owner."}]},"registration_number":{"oneOf":[{"type":"string","description":"Registration number, for a corporate owner."},{"type":"null","description":"Registration number, for a corporate owner."}]},"entity_type":{"oneOf":[{"type":"string","enum":["person","company",null],"description":"Whether the owner is a natural person or a company."},{"type":"null","enum":["person","company",null],"description":"Whether the owner is a natural person or a company."}]},"nationality":{"oneOf":[{"type":"string","description":"Nationality when the registry states it."},{"type":"null","description":"Nationality when the registry states it."}]},"designation":{"oneOf":[{"type":"string","description":"The owner's title or role as the registry prints it."},{"type":"null","description":"The owner's title or role as the registry prints it."}]},"roles":{"type":"array","items":{"type":"string"},"description":"`shareholder` for a direct holder, `ubo` for a beneficial owner."},"ownership_min_shares":{"oneOf":[{"type":"string","description":"Lower bound of the stake, in percent (equal to the upper bound for an exact stake)."},{"type":"null","description":"Lower bound of the stake, in percent (equal to the upper bound for an exact stake)."}]},"ownership_max_shares":{"oneOf":[{"type":"string","description":"Upper bound of the stake, in percent."},{"type":"null","description":"Upper bound of the stake, in percent."}]},"voting_min_shares":{"oneOf":[{"type":"string","description":"Lower bound of the voting rights, in percent."},{"type":"null","description":"Lower bound of the voting rights, in percent."}]},"voting_max_shares":{"oneOf":[{"type":"string","description":"Upper bound of the voting rights, in percent."},{"type":"null","description":"Upper bound of the voting rights, in percent."}]},"appointment_date":{"oneOf":[{"type":"string","description":"Date the holding or appointment started (ISO 8601)."},{"type":"null","description":"Date the holding or appointment started (ISO 8601)."}]},"is_active":{"oneOf":[{"type":"boolean","description":"False for a former owner."},{"type":"null","description":"False for a former owner."}]},"shareholding":{"oneOf":[{"type":"object","description":"What an owner holds, in the same shape for every country and registry source. Null when the registry states no holding. A band (for example a UK PSC's 25-50%) is not a stake: `percentage` is null and the band stays in `ownership_min_shares` / `ownership_max_shares`.","properties":{"share_class":{"oneOf":[{"type":"string","description":"Share class or type as the registry names it."},{"type":"null","description":"Share class or type as the registry names it."}]},"number_of_shares":{"oneOf":[{"type":"number","description":"Number of shares held."},{"type":"null","description":"Number of shares held."}]},"currency":{"oneOf":[{"type":"string","description":"ISO 4217 currency of the values below."},{"type":"null","description":"ISO 4217 currency of the values below."}]},"nominal_value":{"oneOf":[{"type":"number","description":"Nominal value per share."},{"type":"null","description":"Nominal value per share."}]},"total_value":{"oneOf":[{"type":"number","description":"Total value of the holding."},{"type":"null","description":"Total value of the holding."}]},"percentage":{"oneOf":[{"type":"number","description":"Exact stake in percent, to four decimal places."},{"type":"null","description":"Exact stake in percent, to four decimal places."}]}},"required":["share_class","number_of_shares","currency","nominal_value","total_value","percentage"]},{"type":"null","description":"What an owner holds, in the same shape for every country and registry source. Null when the registry states no holding. A band (for example a UK PSC's 25-50%) is not a stake: `percentage` is null and the band stays in `ownership_min_shares` / `ownership_max_shares`.","properties":{"share_class":{"oneOf":[{"type":"string","description":"Share class or type as the registry names it."},{"type":"null","description":"Share class or type as the registry names it."}]},"number_of_shares":{"oneOf":[{"type":"number","description":"Number of shares held."},{"type":"null","description":"Number of shares held."}]},"currency":{"oneOf":[{"type":"string","description":"ISO 4217 currency of the values below."},{"type":"null","description":"ISO 4217 currency of the values below."}]},"nominal_value":{"oneOf":[{"type":"number","description":"Nominal value per share."},{"type":"null","description":"Nominal value per share."}]},"total_value":{"oneOf":[{"type":"number","description":"Total value of the holding."},{"type":"null","description":"Total value of the holding."}]},"percentage":{"oneOf":[{"type":"number","description":"Exact stake in percent, to four decimal places."},{"type":"null","description":"Exact stake in percent, to four decimal places."}]}},"required":["share_class","number_of_shares","currency","nominal_value","total_value","percentage"]}]}},"required":["name","first_name","last_name","date_of_birth","country_of_birth","company_name","registration_number","entity_type","nationality","designation","roles","ownership_min_shares","ownership_max_shares","voting_min_shares","voting_max_shares","appointment_date","is_active","shareholding"]}}},"required":["shareholders","beneficial_owners"]},{"type":"null","description":"The cap table the registry proved, as it stood when the ownership tier was delivered: direct `shareholders` and `beneficial_owners`. Null when the registry proved no ownership. It never carries the registry source's own rows; read `company.beneficial_owners` and `company.ownership` for the current record.","properties":{"shareholders":{"type":"array","items":{"type":"object","description":"One owner of the ownership snapshot: the same registry identity and stake as `company.beneficial_owners[]`, and its canonical `shareholding`.","properties":{"name":{"oneOf":[{"type":"string","description":"Owner name as the registry states it."},{"type":"null","description":"Owner name as the registry states it."}]},"first_name":{"oneOf":[{"type":"string","description":"Given name, for a natural person, when the registry states it."},{"type":"null","description":"Given name, for a natural person, when the registry states it."}]},"last_name":{"oneOf":[{"type":"string","description":"Family name, for a natural person, when the registry states it."},{"type":"null","description":"Family name, for a natural person, when the registry states it."}]},"date_of_birth":{"oneOf":[{"type":"string","description":"Date of birth (ISO 8601) when the registry publishes it."},{"type":"null","description":"Date of birth (ISO 8601) when the registry publishes it."}]},"country_of_birth":{"oneOf":[{"type":"string","description":"Country of birth when the registry publishes it."},{"type":"null","description":"Country of birth when the registry publishes it."}]},"company_name":{"oneOf":[{"type":"string","description":"Company name, for a corporate owner."},{"type":"null","description":"Company name, for a corporate owner."}]},"registration_number":{"oneOf":[{"type":"string","description":"Registration number, for a corporate owner."},{"type":"null","description":"Registration number, for a corporate owner."}]},"entity_type":{"oneOf":[{"type":"string","enum":["person","company",null],"description":"Whether the owner is a natural person or a company."},{"type":"null","enum":["person","company",null],"description":"Whether the owner is a natural person or a company."}]},"nationality":{"oneOf":[{"type":"string","description":"Nationality when the registry states it."},{"type":"null","description":"Nationality when the registry states it."}]},"designation":{"oneOf":[{"type":"string","description":"The owner's title or role as the registry prints it."},{"type":"null","description":"The owner's title or role as the registry prints it."}]},"roles":{"type":"array","items":{"type":"string"},"description":"`shareholder` for a direct holder, `ubo` for a beneficial owner."},"ownership_min_shares":{"oneOf":[{"type":"string","description":"Lower bound of the stake, in percent (equal to the upper bound for an exact stake)."},{"type":"null","description":"Lower bound of the stake, in percent (equal to the upper bound for an exact stake)."}]},"ownership_max_shares":{"oneOf":[{"type":"string","description":"Upper bound of the stake, in percent."},{"type":"null","description":"Upper bound of the stake, in percent."}]},"voting_min_shares":{"oneOf":[{"type":"string","description":"Lower bound of the voting rights, in percent."},{"type":"null","description":"Lower bound of the voting rights, in percent."}]},"voting_max_shares":{"oneOf":[{"type":"string","description":"Upper bound of the voting rights, in percent."},{"type":"null","description":"Upper bound of the voting rights, in percent."}]},"appointment_date":{"oneOf":[{"type":"string","description":"Date the holding or appointment started (ISO 8601)."},{"type":"null","description":"Date the holding or appointment started (ISO 8601)."}]},"is_active":{"oneOf":[{"type":"boolean","description":"False for a former owner."},{"type":"null","description":"False for a former owner."}]},"shareholding":{"oneOf":[{"type":"object","description":"What an owner holds, in the same shape for every country and registry source. Null when the registry states no holding. A band (for example a UK PSC's 25-50%) is not a stake: `percentage` is null and the band stays in `ownership_min_shares` / `ownership_max_shares`.","properties":{"share_class":{"oneOf":[{"type":"string","description":"Share class or type as the registry names it."},{"type":"null","description":"Share class or type as the registry names it."}]},"number_of_shares":{"oneOf":[{"type":"number","description":"Number of shares held."},{"type":"null","description":"Number of shares held."}]},"currency":{"oneOf":[{"type":"string","description":"ISO 4217 currency of the values below."},{"type":"null","description":"ISO 4217 currency of the values below."}]},"nominal_value":{"oneOf":[{"type":"number","description":"Nominal value per share."},{"type":"null","description":"Nominal value per share."}]},"total_value":{"oneOf":[{"type":"number","description":"Total value of the holding."},{"type":"null","description":"Total value of the holding."}]},"percentage":{"oneOf":[{"type":"number","description":"Exact stake in percent, to four decimal places."},{"type":"null","description":"Exact stake in percent, to four decimal places."}]}},"required":["share_class","number_of_shares","currency","nominal_value","total_value","percentage"]},{"type":"null","description":"What an owner holds, in the same shape for every country and registry source. Null when the registry states no holding. A band (for example a UK PSC's 25-50%) is not a stake: `percentage` is null and the band stays in `ownership_min_shares` / `ownership_max_shares`.","properties":{"share_class":{"oneOf":[{"type":"string","description":"Share class or type as the registry names it."},{"type":"null","description":"Share class or type as the registry names it."}]},"number_of_shares":{"oneOf":[{"type":"number","description":"Number of shares held."},{"type":"null","description":"Number of shares held."}]},"currency":{"oneOf":[{"type":"string","description":"ISO 4217 currency of the values below."},{"type":"null","description":"ISO 4217 currency of the values below."}]},"nominal_value":{"oneOf":[{"type":"number","description":"Nominal value per share."},{"type":"null","description":"Nominal value per share."}]},"total_value":{"oneOf":[{"type":"number","description":"Total value of the holding."},{"type":"null","description":"Total value of the holding."}]},"percentage":{"oneOf":[{"type":"number","description":"Exact stake in percent, to four decimal places."},{"type":"null","description":"Exact stake in percent, to four decimal places."}]}},"required":["share_class","number_of_shares","currency","nominal_value","total_value","percentage"]}]}},"required":["name","first_name","last_name","date_of_birth","country_of_birth","company_name","registration_number","entity_type","nationality","designation","roles","ownership_min_shares","ownership_max_shares","voting_min_shares","voting_max_shares","appointment_date","is_active","shareholding"]}},"beneficial_owners":{"type":"array","items":{"type":"object","description":"One owner of the ownership snapshot: the same registry identity and stake as `company.beneficial_owners[]`, and its canonical `shareholding`.","properties":{"name":{"oneOf":[{"type":"string","description":"Owner name as the registry states it."},{"type":"null","description":"Owner name as the registry states it."}]},"first_name":{"oneOf":[{"type":"string","description":"Given name, for a natural person, when the registry states it."},{"type":"null","description":"Given name, for a natural person, when the registry states it."}]},"last_name":{"oneOf":[{"type":"string","description":"Family name, for a natural person, when the registry states it."},{"type":"null","description":"Family name, for a natural person, when the registry states it."}]},"date_of_birth":{"oneOf":[{"type":"string","description":"Date of birth (ISO 8601) when the registry publishes it."},{"type":"null","description":"Date of birth (ISO 8601) when the registry publishes it."}]},"country_of_birth":{"oneOf":[{"type":"string","description":"Country of birth when the registry publishes it."},{"type":"null","description":"Country of birth when the registry publishes it."}]},"company_name":{"oneOf":[{"type":"string","description":"Company name, for a corporate owner."},{"type":"null","description":"Company name, for a corporate owner."}]},"registration_number":{"oneOf":[{"type":"string","description":"Registration number, for a corporate owner."},{"type":"null","description":"Registration number, for a corporate owner."}]},"entity_type":{"oneOf":[{"type":"string","enum":["person","company",null],"description":"Whether the owner is a natural person or a company."},{"type":"null","enum":["person","company",null],"description":"Whether the owner is a natural person or a company."}]},"nationality":{"oneOf":[{"type":"string","description":"Nationality when the registry states it."},{"type":"null","description":"Nationality when the registry states it."}]},"designation":{"oneOf":[{"type":"string","description":"The owner's title or role as the registry prints it."},{"type":"null","description":"The owner's title or role as the registry prints it."}]},"roles":{"type":"array","items":{"type":"string"},"description":"`shareholder` for a direct holder, `ubo` for a beneficial owner."},"ownership_min_shares":{"oneOf":[{"type":"string","description":"Lower bound of the stake, in percent (equal to the upper bound for an exact stake)."},{"type":"null","description":"Lower bound of the stake, in percent (equal to the upper bound for an exact stake)."}]},"ownership_max_shares":{"oneOf":[{"type":"string","description":"Upper bound of the stake, in percent."},{"type":"null","description":"Upper bound of the stake, in percent."}]},"voting_min_shares":{"oneOf":[{"type":"string","description":"Lower bound of the voting rights, in percent."},{"type":"null","description":"Lower bound of the voting rights, in percent."}]},"voting_max_shares":{"oneOf":[{"type":"string","description":"Upper bound of the voting rights, in percent."},{"type":"null","description":"Upper bound of the voting rights, in percent."}]},"appointment_date":{"oneOf":[{"type":"string","description":"Date the holding or appointment started (ISO 8601)."},{"type":"null","description":"Date the holding or appointment started (ISO 8601)."}]},"is_active":{"oneOf":[{"type":"boolean","description":"False for a former owner."},{"type":"null","description":"False for a former owner."}]},"shareholding":{"oneOf":[{"type":"object","description":"What an owner holds, in the same shape for every country and registry source. Null when the registry states no holding. A band (for example a UK PSC's 25-50%) is not a stake: `percentage` is null and the band stays in `ownership_min_shares` / `ownership_max_shares`.","properties":{"share_class":{"oneOf":[{"type":"string","description":"Share class or type as the registry names it."},{"type":"null","description":"Share class or type as the registry names it."}]},"number_of_shares":{"oneOf":[{"type":"number","description":"Number of shares held."},{"type":"null","description":"Number of shares held."}]},"currency":{"oneOf":[{"type":"string","description":"ISO 4217 currency of the values below."},{"type":"null","description":"ISO 4217 currency of the values below."}]},"nominal_value":{"oneOf":[{"type":"number","description":"Nominal value per share."},{"type":"null","description":"Nominal value per share."}]},"total_value":{"oneOf":[{"type":"number","description":"Total value of the holding."},{"type":"null","description":"Total value of the holding."}]},"percentage":{"oneOf":[{"type":"number","description":"Exact stake in percent, to four decimal places."},{"type":"null","description":"Exact stake in percent, to four decimal places."}]}},"required":["share_class","number_of_shares","currency","nominal_value","total_value","percentage"]},{"type":"null","description":"What an owner holds, in the same shape for every country and registry source. Null when the registry states no holding. A band (for example a UK PSC's 25-50%) is not a stake: `percentage` is null and the band stays in `ownership_min_shares` / `ownership_max_shares`.","properties":{"share_class":{"oneOf":[{"type":"string","description":"Share class or type as the registry names it."},{"type":"null","description":"Share class or type as the registry names it."}]},"number_of_shares":{"oneOf":[{"type":"number","description":"Number of shares held."},{"type":"null","description":"Number of shares held."}]},"currency":{"oneOf":[{"type":"string","description":"ISO 4217 currency of the values below."},{"type":"null","description":"ISO 4217 currency of the values below."}]},"nominal_value":{"oneOf":[{"type":"number","description":"Nominal value per share."},{"type":"null","description":"Nominal value per share."}]},"total_value":{"oneOf":[{"type":"number","description":"Total value of the holding."},{"type":"null","description":"Total value of the holding."}]},"percentage":{"oneOf":[{"type":"number","description":"Exact stake in percent, to four decimal places."},{"type":"null","description":"Exact stake in percent, to four decimal places."}]}},"required":["share_class","number_of_shares","currency","nominal_value","total_value","percentage"]}]}},"required":["name","first_name","last_name","date_of_birth","country_of_birth","company_name","registration_number","entity_type","nationality","designation","roles","ownership_min_shares","ownership_max_shares","voting_min_shares","voting_max_shares","appointment_date","is_active","shareholding"]}}},"required":["shareholders","beneficial_owners"]}]},"warnings":{"type":"array","items":{"type":"object"}}}},"uniqueKey":"registry_checks.oneOf.1","typeLabel":"null"}],"uniqueKey":"registry_checks","typeLabel":"object[] | null"},"key_people_checks":{"oneOf":[{"type":"array","description":"Aggregate key-people checks. Present only when `session_kind = business`. Each item uses the two-bucket shape (`registry`, `submitted`, `ubo_kyc_summary`).","items":{"type":"object","description":"Aggregate check over the company's officers + UBOs. Uses the `registry` / `submitted` shape. Present only when session_kind = business.","properties":{"status":{"type":"string","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].status","typeLabel":"string"},"node_id":{"oneOf":[{"type":"string","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].node_id.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].node_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].node_id","typeLabel":"string | null"},"registry":{"type":"object","description":"Parties discovered via the registry check.","properties":{"officers":{"type":"array","description":"Officers discovered via the registry check, each enriched with the status of any child KYC session and AML screening spawned for them.","items":{"type":"object","properties":{"uuid":{"type":"string","format":"uuid","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.officers.items.[INDEX].uuid","typeLabel":"string\u003cuuid>"},"name":{"type":"string","description":"Officer's full name as recorded in the registry.","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.officers.items.[INDEX].name","typeLabel":"string"},"designation":{"oneOf":[{"type":"string","description":"Free-text designation from the registry (e.g. `Director`, `Company Secretary`).","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.officers.items.[INDEX].designation.oneOf.0","typeLabel":"string"},{"type":"null","description":"Free-text designation from the registry (e.g. `Director`, `Company Secretary`).","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.officers.items.[INDEX].designation.oneOf.1","typeLabel":"null"}],"uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.officers.items.[INDEX].designation","typeLabel":"string | null"},"role":{"type":"string","enum":["director","non_executive_director","secretary","chairman","ubo","shareholder","representative","founder","legal_advisor","authorized_signatory","trustee","beneficiary","settlor","protector","company_officer","investor","other"],"description":"Normalized officer role.","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.officers.items.[INDEX].role","typeLabel":"enum\u003cstring>"},"nationality":{"oneOf":[{"type":"string","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.officers.items.[INDEX].nationality.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.officers.items.[INDEX].nationality.oneOf.1","typeLabel":"null"}],"uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.officers.items.[INDEX].nationality","typeLabel":"string | null"},"appointment_date":{"oneOf":[{"type":"string","description":"Date the officer was appointed.","format":"date","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.officers.items.[INDEX].appointment_date.oneOf.0","typeLabel":"string\u003cdate>"},{"type":"null","description":"Date the officer was appointed.","format":"date","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.officers.items.[INDEX].appointment_date.oneOf.1","typeLabel":"null"}],"uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.officers.items.[INDEX].appointment_date","typeLabel":"string\u003cdate> | null"},"termination_date":{"oneOf":[{"type":"string","description":"Date the appointment ended, when reported.","format":"date","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.officers.items.[INDEX].termination_date.oneOf.0","typeLabel":"string\u003cdate>"},{"type":"null","description":"Date the appointment ended, when reported.","format":"date","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.officers.items.[INDEX].termination_date.oneOf.1","typeLabel":"null"}],"uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.officers.items.[INDEX].termination_date","typeLabel":"string\u003cdate> | null"},"is_active":{"type":"boolean","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.officers.items.[INDEX].is_active","typeLabel":"boolean"},"address":{"oneOf":[{"type":"string","description":"Officer address reported by the registry.","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.officers.items.[INDEX].address.oneOf.0","typeLabel":"string"},{"type":"null","description":"Officer address reported by the registry.","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.officers.items.[INDEX].address.oneOf.1","typeLabel":"null"}],"uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.officers.items.[INDEX].address","typeLabel":"string | null"},"aml_status":{"oneOf":[{"type":"string","enum":["Not Finished","Approved","Declined","In Review","Resub Requested"],"description":"Status of the AML screening run for this officer. `null` when no AML screening was run.","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.officers.items.[INDEX].aml_status.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["Not Finished","Approved","Declined","In Review","Resub Requested"],"description":"Status of the AML screening run for this officer. `null` when no AML screening was run.","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.officers.items.[INDEX].aml_status.oneOf.1","typeLabel":"null"}],"uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.officers.items.[INDEX].aml_status","typeLabel":"enum\u003cstring> | null"},"kyc_status":{"oneOf":[{"type":"string","enum":["Not Started","In Progress","Approved","Declined","In Review","Expired","Abandoned","Kyc Expired","Resubmitted","Awaiting User"],"description":"Raw lifecycle status of the child KYC session spawned for this officer. This is the full session status enum (not a reduced Approved/Declined/Pending set). `null` when no child KYC session exists.","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.officers.items.[INDEX].kyc_status.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["Not Started","In Progress","Approved","Declined","In Review","Expired","Abandoned","Kyc Expired","Resubmitted","Awaiting User"],"description":"Raw lifecycle status of the child KYC session spawned for this officer. This is the full session status enum (not a reduced Approved/Declined/Pending set). `null` when no child KYC session exists.","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.officers.items.[INDEX].kyc_status.oneOf.1","typeLabel":"null"}],"uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.officers.items.[INDEX].kyc_status","typeLabel":"enum\u003cstring> | null"},"kyc_session_url":{"oneOf":[{"type":"string","format":"uri","description":"Shareable URL of the child KYC session. `null` when no child session exists.","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.officers.items.[INDEX].kyc_session_url.oneOf.0","typeLabel":"string\u003curi>"},{"type":"null","format":"uri","description":"Shareable URL of the child KYC session. `null` when no child session exists.","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.officers.items.[INDEX].kyc_session_url.oneOf.1","typeLabel":"null"}],"uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.officers.items.[INDEX].kyc_session_url","typeLabel":"string\u003curi> | null"},"kyc_session_id":{"oneOf":[{"type":"string","format":"uuid","description":"Session id of the child KYC session. Pass it to this same decision endpoint to fetch the person's full KYC report. `null` when no child session exists.","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.officers.items.[INDEX].kyc_session_id.oneOf.0","typeLabel":"string\u003cuuid>"},{"type":"null","format":"uuid","description":"Session id of the child KYC session. Pass it to this same decision endpoint to fetch the person's full KYC report. `null` when no child session exists.","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.officers.items.[INDEX].kyc_session_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.officers.items.[INDEX].kyc_session_id","typeLabel":"string\u003cuuid> | null"},"verification_workflow_type":{"oneOf":[{"type":"string","description":"Base workflow type of the child session's workflow (e.g. `kyc`). `null` for graph-based workflows or when no child session exists.","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.officers.items.[INDEX].verification_workflow_type.oneOf.0","typeLabel":"string"},{"type":"null","description":"Base workflow type of the child session's workflow (e.g. `kyc`). `null` for graph-based workflows or when no child session exists.","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.officers.items.[INDEX].verification_workflow_type.oneOf.1","typeLabel":"null"}],"uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.officers.items.[INDEX].verification_workflow_type","typeLabel":"string | null"},"verification_workflow_id":{"oneOf":[{"type":"string","format":"uuid","description":"Workflow id used by the child session. `null` when no child session exists.","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.officers.items.[INDEX].verification_workflow_id.oneOf.0","typeLabel":"string\u003cuuid>"},{"type":"null","format":"uuid","description":"Workflow id used by the child session. `null` when no child session exists.","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.officers.items.[INDEX].verification_workflow_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.officers.items.[INDEX].verification_workflow_id","typeLabel":"string\u003cuuid> | null"},"verification_workflow_label":{"oneOf":[{"type":"string","description":"Human-readable label of the child session's workflow. `null` when unset.","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.officers.items.[INDEX].verification_workflow_label.oneOf.0","typeLabel":"string"},{"type":"null","description":"Human-readable label of the child session's workflow. `null` when unset.","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.officers.items.[INDEX].verification_workflow_label.oneOf.1","typeLabel":"null"}],"uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.officers.items.[INDEX].verification_workflow_label","typeLabel":"string | null"},"verification_workflow_features":{"oneOf":[{"type":"array","description":"Per-feature progress of the child verification session, e.g. `[{\"feature\": \"ID_VERIFICATION\", \"status\": \"Approved\"}]`. `null` when the child session has no resolvable feature list.","items":{"type":"object","properties":{"feature":{"type":"string","description":"Feature display name (e.g. `ID_VERIFICATION`, `LIVENESS`, `AML`).","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.officers.items.[INDEX].verification_workflow_features.oneOf.0.items.[INDEX].feature","typeLabel":"string"},"status":{"type":"string","enum":["Not Finished","Approved","Declined","In Review","Resub Requested"],"description":"Feature-level status inside the child session.","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.officers.items.[INDEX].verification_workflow_features.oneOf.0.items.[INDEX].status","typeLabel":"enum\u003cstring>"}},"uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.officers.items.[INDEX].verification_workflow_features.oneOf.0.items.[INDEX]","typeLabel":"object"},"uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.officers.items.[INDEX].verification_workflow_features.oneOf.0","typeLabel":"object[]"},{"type":"null","description":"Per-feature progress of the child verification session, e.g. `[{\"feature\": \"ID_VERIFICATION\", \"status\": \"Approved\"}]`. `null` when the child session has no resolvable feature list.","items":{"type":"object","properties":{"feature":{"type":"string","description":"Feature display name (e.g. `ID_VERIFICATION`, `LIVENESS`, `AML`)."},"status":{"type":"string","enum":["Not Finished","Approved","Declined","In Review","Resub Requested"],"description":"Feature-level status inside the child session."}}},"uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.officers.items.[INDEX].verification_workflow_features.oneOf.1","typeLabel":"null"}],"uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.officers.items.[INDEX].verification_workflow_features","typeLabel":"object[] | null"},"didit_internal_id":{"oneOf":[{"type":"string","description":"Stable internal identifier of the verified individual behind the child session — useful for cross-session linking. `null` when no child session exists or the user has not been resolved yet.","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.officers.items.[INDEX].didit_internal_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"Stable internal identifier of the verified individual behind the child session — useful for cross-session linking. `null` when no child session exists or the user has not been resolved yet.","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.officers.items.[INDEX].didit_internal_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.officers.items.[INDEX].didit_internal_id","typeLabel":"string | null"},"kyc_document_type":{"oneOf":[{"type":"string","description":"Document type presented in the child KYC session (e.g. `P`, `ID`, `DL`). `null` until the child session has an ID verification result.","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.officers.items.[INDEX].kyc_document_type.oneOf.0","typeLabel":"string"},{"type":"null","description":"Document type presented in the child KYC session (e.g. `P`, `ID`, `DL`). `null` until the child session has an ID verification result.","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.officers.items.[INDEX].kyc_document_type.oneOf.1","typeLabel":"null"}],"uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.officers.items.[INDEX].kyc_document_type","typeLabel":"string | null"},"kyc_nationality":{"oneOf":[{"type":"string","description":"Nationality extracted from the document in the child KYC session. `null` until available.","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.officers.items.[INDEX].kyc_nationality.oneOf.0","typeLabel":"string"},{"type":"null","description":"Nationality extracted from the document in the child KYC session. `null` until available.","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.officers.items.[INDEX].kyc_nationality.oneOf.1","typeLabel":"null"}],"uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.officers.items.[INDEX].kyc_nationality","typeLabel":"string | null"},"kyc_liveness_passed":{"oneOf":[{"type":"boolean","description":"Whether the child KYC session's liveness check passed. `null` when no liveness check has run.","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.officers.items.[INDEX].kyc_liveness_passed.oneOf.0","typeLabel":"boolean"},{"type":"null","description":"Whether the child KYC session's liveness check passed. `null` when no liveness check has run.","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.officers.items.[INDEX].kyc_liveness_passed.oneOf.1","typeLabel":"null"}],"uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.officers.items.[INDEX].kyc_liveness_passed","typeLabel":"boolean | null"},"kyc_verified_at":{"oneOf":[{"type":"string","format":"date-time","description":"When the child KYC session reached `Approved`. `null` while the child session has any other status.","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.officers.items.[INDEX].kyc_verified_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","description":"When the child KYC session reached `Approved`. `null` while the child session has any other status.","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.officers.items.[INDEX].kyc_verified_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.officers.items.[INDEX].kyc_verified_at","typeLabel":"string\u003cdate-time> | null"},"kyc_aml_categories":{"oneOf":[{"type":"object","description":"Per-category summary derived from the person's AML hits. `null` when there are no hits.","properties":{"sanctions":{"type":"string","enum":["match","clear"],"uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.officers.items.[INDEX].kyc_aml_categories.oneOf.0.sanctions","typeLabel":"enum\u003cstring>"},"pep":{"type":"string","enum":["match","clear"],"uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.officers.items.[INDEX].kyc_aml_categories.oneOf.0.pep","typeLabel":"enum\u003cstring>"},"adverse_media":{"type":"string","enum":["match","clear"],"uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.officers.items.[INDEX].kyc_aml_categories.oneOf.0.adverse_media","typeLabel":"enum\u003cstring>"},"warnings":{"type":"string","enum":["match","clear"],"uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.officers.items.[INDEX].kyc_aml_categories.oneOf.0.warnings","typeLabel":"enum\u003cstring>"}},"uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.officers.items.[INDEX].kyc_aml_categories.oneOf.0","typeLabel":"object"},{"type":"null","description":"Per-category summary derived from the person's AML hits. `null` when there are no hits.","properties":{"sanctions":{"type":"string","enum":["match","clear"]},"pep":{"type":"string","enum":["match","clear"]},"adverse_media":{"type":"string","enum":["match","clear"]},"warnings":{"type":"string","enum":["match","clear"]}},"uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.officers.items.[INDEX].kyc_aml_categories.oneOf.1","typeLabel":"null"}],"uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.officers.items.[INDEX].kyc_aml_categories","typeLabel":"object | null"},"kyc_notification_sent_at":{"oneOf":[{"type":"string","description":"ISO 8601 timestamp of the last verification-invite notification sent for this person's child session. `null` when none was sent.","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.officers.items.[INDEX].kyc_notification_sent_at.oneOf.0","typeLabel":"string"},{"type":"null","description":"ISO 8601 timestamp of the last verification-invite notification sent for this person's child session. `null` when none was sent.","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.officers.items.[INDEX].kyc_notification_sent_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.officers.items.[INDEX].kyc_notification_sent_at","typeLabel":"string | null"},"first_name":{"oneOf":[{"type":"string","description":"Given name when explicitly reported by the registry; not inferred from the full name.","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.officers.items.[INDEX].first_name.oneOf.0","typeLabel":"string"},{"type":"null","description":"Given name when explicitly reported by the registry; not inferred from the full name.","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.officers.items.[INDEX].first_name.oneOf.1","typeLabel":"null"}],"uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.officers.items.[INDEX].first_name","typeLabel":"string | null"},"last_name":{"oneOf":[{"type":"string","description":"Family name when explicitly reported by the registry.","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.officers.items.[INDEX].last_name.oneOf.0","typeLabel":"string"},{"type":"null","description":"Family name when explicitly reported by the registry.","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.officers.items.[INDEX].last_name.oneOf.1","typeLabel":"null"}],"uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.officers.items.[INDEX].last_name","typeLabel":"string | null"},"date_of_birth":{"oneOf":[{"type":"string","description":"Complete registry-reported birth date. Null when only a birth year or month is known.","format":"date","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.officers.items.[INDEX].date_of_birth.oneOf.0","typeLabel":"string\u003cdate>"},{"type":"null","description":"Complete registry-reported birth date. Null when only a birth year or month is known.","format":"date","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.officers.items.[INDEX].date_of_birth.oneOf.1","typeLabel":"null"}],"uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.officers.items.[INDEX].date_of_birth","typeLabel":"string\u003cdate> | null"},"date_of_birth_year":{"oneOf":[{"type":"integer","minimum":1,"maximum":9999,"description":"Registry-reported birth year, including when the full date is unavailable.","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.officers.items.[INDEX].date_of_birth_year.oneOf.0","typeLabel":"integer"},{"type":"null","minimum":1,"maximum":9999,"description":"Registry-reported birth year, including when the full date is unavailable.","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.officers.items.[INDEX].date_of_birth_year.oneOf.1","typeLabel":"null"}],"uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.officers.items.[INDEX].date_of_birth_year","typeLabel":"integer | null"},"date_of_birth_month":{"oneOf":[{"type":"integer","minimum":1,"maximum":12,"description":"Registry-reported birth month. Null when only the year is known.","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.officers.items.[INDEX].date_of_birth_month.oneOf.0","typeLabel":"integer"},{"type":"null","minimum":1,"maximum":12,"description":"Registry-reported birth month. Null when only the year is known.","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.officers.items.[INDEX].date_of_birth_month.oneOf.1","typeLabel":"null"}],"uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.officers.items.[INDEX].date_of_birth_month","typeLabel":"integer | null"}},"uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.officers.items.[INDEX]","typeLabel":"object"},"uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.officers","typeLabel":"object[]"},"beneficial_owners":{"type":"array","description":"Beneficial owners discovered via the registry check, each enriched with the status of any child KYC session and AML screening spawned for them.","items":{"type":"object","properties":{"uuid":{"type":"string","format":"uuid","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.beneficial_owners.items.[INDEX].uuid","typeLabel":"string\u003cuuid>"},"name":{"type":"string","description":"Beneficial owner's full name (or company name for corporate UBOs).","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.beneficial_owners.items.[INDEX].name","typeLabel":"string"},"first_name":{"oneOf":[{"type":"string","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.beneficial_owners.items.[INDEX].first_name.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.beneficial_owners.items.[INDEX].first_name.oneOf.1","typeLabel":"null"}],"uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.beneficial_owners.items.[INDEX].first_name","typeLabel":"string | null"},"last_name":{"oneOf":[{"type":"string","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.beneficial_owners.items.[INDEX].last_name.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.beneficial_owners.items.[INDEX].last_name.oneOf.1","typeLabel":"null"}],"uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.beneficial_owners.items.[INDEX].last_name","typeLabel":"string | null"},"date_of_birth":{"oneOf":[{"type":"string","description":"Complete birth date when reported.","format":"date","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.beneficial_owners.items.[INDEX].date_of_birth.oneOf.0","typeLabel":"string\u003cdate>"},{"type":"null","description":"Complete birth date when reported.","format":"date","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.beneficial_owners.items.[INDEX].date_of_birth.oneOf.1","typeLabel":"null"}],"uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.beneficial_owners.items.[INDEX].date_of_birth","typeLabel":"string\u003cdate> | null"},"country_of_birth":{"oneOf":[{"type":"string","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.beneficial_owners.items.[INDEX].country_of_birth.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.beneficial_owners.items.[INDEX].country_of_birth.oneOf.1","typeLabel":"null"}],"uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.beneficial_owners.items.[INDEX].country_of_birth","typeLabel":"string | null"},"email":{"oneOf":[{"type":"string","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.beneficial_owners.items.[INDEX].email.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.beneficial_owners.items.[INDEX].email.oneOf.1","typeLabel":"null"}],"uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.beneficial_owners.items.[INDEX].email","typeLabel":"string | null"},"company_name":{"oneOf":[{"type":"string","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.beneficial_owners.items.[INDEX].company_name.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.beneficial_owners.items.[INDEX].company_name.oneOf.1","typeLabel":"null"}],"uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.beneficial_owners.items.[INDEX].company_name","typeLabel":"string | null"},"registration_number":{"oneOf":[{"type":"string","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.beneficial_owners.items.[INDEX].registration_number.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.beneficial_owners.items.[INDEX].registration_number.oneOf.1","typeLabel":"null"}],"uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.beneficial_owners.items.[INDEX].registration_number","typeLabel":"string | null"},"entity_type":{"type":"string","enum":["person","company"],"uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.beneficial_owners.items.[INDEX].entity_type","typeLabel":"enum\u003cstring>"},"nationality":{"oneOf":[{"type":"string","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.beneficial_owners.items.[INDEX].nationality.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.beneficial_owners.items.[INDEX].nationality.oneOf.1","typeLabel":"null"}],"uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.beneficial_owners.items.[INDEX].nationality","typeLabel":"string | null"},"designation":{"oneOf":[{"type":"string","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.beneficial_owners.items.[INDEX].designation.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.beneficial_owners.items.[INDEX].designation.oneOf.1","typeLabel":"null"}],"uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.beneficial_owners.items.[INDEX].designation","typeLabel":"string | null"},"roles":{"type":"array","description":"Role names held by this owner, e.g. `[\"ubo\", \"shareholder\"]`.","items":{"type":"string","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.beneficial_owners.items.[INDEX].roles.items.[INDEX]","typeLabel":"string"},"uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.beneficial_owners.items.[INDEX].roles","typeLabel":"string[]"},"ownership_min_shares":{"oneOf":[{"type":"string","description":"Lower bound of the ownership percentage as reported by the registry. Free-form string (e.g. `\"25\"`, `\"25-50%\"`); use `effective_ownership_percent` for a parsed numeric value.","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.beneficial_owners.items.[INDEX].ownership_min_shares.oneOf.0","typeLabel":"string"},{"type":"null","description":"Lower bound of the ownership percentage as reported by the registry. Free-form string (e.g. `\"25\"`, `\"25-50%\"`); use `effective_ownership_percent` for a parsed numeric value.","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.beneficial_owners.items.[INDEX].ownership_min_shares.oneOf.1","typeLabel":"null"}],"uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.beneficial_owners.items.[INDEX].ownership_min_shares","typeLabel":"string | null"},"ownership_max_shares":{"oneOf":[{"type":"string","description":"Upper bound of the ownership percentage as reported by the registry. Free-form string; use `effective_ownership_percent` for a parsed numeric value.","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.beneficial_owners.items.[INDEX].ownership_max_shares.oneOf.0","typeLabel":"string"},{"type":"null","description":"Upper bound of the ownership percentage as reported by the registry. Free-form string; use `effective_ownership_percent` for a parsed numeric value.","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.beneficial_owners.items.[INDEX].ownership_max_shares.oneOf.1","typeLabel":"null"}],"uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.beneficial_owners.items.[INDEX].ownership_max_shares","typeLabel":"string | null"},"is_active":{"type":"boolean","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.beneficial_owners.items.[INDEX].is_active","typeLabel":"boolean"},"aml_status":{"oneOf":[{"type":"string","enum":["Not Finished","Approved","Declined","In Review","Resub Requested"],"description":"Status of the AML screening run for this beneficial owner. `null` when no AML screening was run.","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.beneficial_owners.items.[INDEX].aml_status.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["Not Finished","Approved","Declined","In Review","Resub Requested"],"description":"Status of the AML screening run for this beneficial owner. `null` when no AML screening was run.","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.beneficial_owners.items.[INDEX].aml_status.oneOf.1","typeLabel":"null"}],"uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.beneficial_owners.items.[INDEX].aml_status","typeLabel":"enum\u003cstring> | null"},"kyc_status":{"oneOf":[{"type":"string","enum":["Not Started","In Progress","Approved","Declined","In Review","Expired","Abandoned","Kyc Expired","Resubmitted","Awaiting User"],"description":"Raw lifecycle status of the child KYC session spawned for this beneficial owner. This is the full session status enum (not a reduced Approved/Declined/Pending set). `null` when no child KYC session exists.","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.beneficial_owners.items.[INDEX].kyc_status.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["Not Started","In Progress","Approved","Declined","In Review","Expired","Abandoned","Kyc Expired","Resubmitted","Awaiting User"],"description":"Raw lifecycle status of the child KYC session spawned for this beneficial owner. This is the full session status enum (not a reduced Approved/Declined/Pending set). `null` when no child KYC session exists.","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.beneficial_owners.items.[INDEX].kyc_status.oneOf.1","typeLabel":"null"}],"uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.beneficial_owners.items.[INDEX].kyc_status","typeLabel":"enum\u003cstring> | null"},"kyc_session_url":{"oneOf":[{"type":"string","format":"uri","description":"Shareable URL of the child KYC session. `null` when no child session exists.","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.beneficial_owners.items.[INDEX].kyc_session_url.oneOf.0","typeLabel":"string\u003curi>"},{"type":"null","format":"uri","description":"Shareable URL of the child KYC session. `null` when no child session exists.","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.beneficial_owners.items.[INDEX].kyc_session_url.oneOf.1","typeLabel":"null"}],"uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.beneficial_owners.items.[INDEX].kyc_session_url","typeLabel":"string\u003curi> | null"},"kyc_session_id":{"oneOf":[{"type":"string","format":"uuid","description":"Session id of the child KYC session. Pass it to this same decision endpoint to fetch the person's full KYC report. `null` when no child session exists.","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.beneficial_owners.items.[INDEX].kyc_session_id.oneOf.0","typeLabel":"string\u003cuuid>"},{"type":"null","format":"uuid","description":"Session id of the child KYC session. Pass it to this same decision endpoint to fetch the person's full KYC report. `null` when no child session exists.","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.beneficial_owners.items.[INDEX].kyc_session_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.beneficial_owners.items.[INDEX].kyc_session_id","typeLabel":"string\u003cuuid> | null"},"verification_workflow_type":{"oneOf":[{"type":"string","description":"Base workflow type of the child session's workflow (e.g. `kyc`). `null` for graph-based workflows or when no child session exists.","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.beneficial_owners.items.[INDEX].verification_workflow_type.oneOf.0","typeLabel":"string"},{"type":"null","description":"Base workflow type of the child session's workflow (e.g. `kyc`). `null` for graph-based workflows or when no child session exists.","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.beneficial_owners.items.[INDEX].verification_workflow_type.oneOf.1","typeLabel":"null"}],"uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.beneficial_owners.items.[INDEX].verification_workflow_type","typeLabel":"string | null"},"verification_workflow_id":{"oneOf":[{"type":"string","format":"uuid","description":"Workflow id used by the child session. `null` when no child session exists.","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.beneficial_owners.items.[INDEX].verification_workflow_id.oneOf.0","typeLabel":"string\u003cuuid>"},{"type":"null","format":"uuid","description":"Workflow id used by the child session. `null` when no child session exists.","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.beneficial_owners.items.[INDEX].verification_workflow_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.beneficial_owners.items.[INDEX].verification_workflow_id","typeLabel":"string\u003cuuid> | null"},"verification_workflow_label":{"oneOf":[{"type":"string","description":"Human-readable label of the child session's workflow. `null` when unset.","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.beneficial_owners.items.[INDEX].verification_workflow_label.oneOf.0","typeLabel":"string"},{"type":"null","description":"Human-readable label of the child session's workflow. `null` when unset.","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.beneficial_owners.items.[INDEX].verification_workflow_label.oneOf.1","typeLabel":"null"}],"uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.beneficial_owners.items.[INDEX].verification_workflow_label","typeLabel":"string | null"},"verification_workflow_features":{"oneOf":[{"type":"array","description":"Per-feature progress of the child verification session, e.g. `[{\"feature\": \"ID_VERIFICATION\", \"status\": \"Approved\"}]`. `null` when the child session has no resolvable feature list.","items":{"type":"object","properties":{"feature":{"type":"string","description":"Feature display name (e.g. `ID_VERIFICATION`, `LIVENESS`, `AML`).","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.beneficial_owners.items.[INDEX].verification_workflow_features.oneOf.0.items.[INDEX].feature","typeLabel":"string"},"status":{"type":"string","enum":["Not Finished","Approved","Declined","In Review","Resub Requested"],"description":"Feature-level status inside the child session.","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.beneficial_owners.items.[INDEX].verification_workflow_features.oneOf.0.items.[INDEX].status","typeLabel":"enum\u003cstring>"}},"uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.beneficial_owners.items.[INDEX].verification_workflow_features.oneOf.0.items.[INDEX]","typeLabel":"object"},"uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.beneficial_owners.items.[INDEX].verification_workflow_features.oneOf.0","typeLabel":"object[]"},{"type":"null","description":"Per-feature progress of the child verification session, e.g. `[{\"feature\": \"ID_VERIFICATION\", \"status\": \"Approved\"}]`. `null` when the child session has no resolvable feature list.","items":{"type":"object","properties":{"feature":{"type":"string","description":"Feature display name (e.g. `ID_VERIFICATION`, `LIVENESS`, `AML`)."},"status":{"type":"string","enum":["Not Finished","Approved","Declined","In Review","Resub Requested"],"description":"Feature-level status inside the child session."}}},"uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.beneficial_owners.items.[INDEX].verification_workflow_features.oneOf.1","typeLabel":"null"}],"uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.beneficial_owners.items.[INDEX].verification_workflow_features","typeLabel":"object[] | null"},"didit_internal_id":{"oneOf":[{"type":"string","description":"Stable internal identifier of the verified individual behind the child session — useful for cross-session linking. `null` when no child session exists or the user has not been resolved yet.","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.beneficial_owners.items.[INDEX].didit_internal_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"Stable internal identifier of the verified individual behind the child session — useful for cross-session linking. `null` when no child session exists or the user has not been resolved yet.","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.beneficial_owners.items.[INDEX].didit_internal_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.beneficial_owners.items.[INDEX].didit_internal_id","typeLabel":"string | null"},"kyc_document_type":{"oneOf":[{"type":"string","description":"Document type presented in the child KYC session (e.g. `P`, `ID`, `DL`). `null` until the child session has an ID verification result.","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.beneficial_owners.items.[INDEX].kyc_document_type.oneOf.0","typeLabel":"string"},{"type":"null","description":"Document type presented in the child KYC session (e.g. `P`, `ID`, `DL`). `null` until the child session has an ID verification result.","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.beneficial_owners.items.[INDEX].kyc_document_type.oneOf.1","typeLabel":"null"}],"uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.beneficial_owners.items.[INDEX].kyc_document_type","typeLabel":"string | null"},"kyc_nationality":{"oneOf":[{"type":"string","description":"Nationality extracted from the document in the child KYC session. `null` until available.","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.beneficial_owners.items.[INDEX].kyc_nationality.oneOf.0","typeLabel":"string"},{"type":"null","description":"Nationality extracted from the document in the child KYC session. `null` until available.","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.beneficial_owners.items.[INDEX].kyc_nationality.oneOf.1","typeLabel":"null"}],"uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.beneficial_owners.items.[INDEX].kyc_nationality","typeLabel":"string | null"},"kyc_liveness_passed":{"oneOf":[{"type":"boolean","description":"Whether the child KYC session's liveness check passed. `null` when no liveness check has run.","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.beneficial_owners.items.[INDEX].kyc_liveness_passed.oneOf.0","typeLabel":"boolean"},{"type":"null","description":"Whether the child KYC session's liveness check passed. `null` when no liveness check has run.","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.beneficial_owners.items.[INDEX].kyc_liveness_passed.oneOf.1","typeLabel":"null"}],"uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.beneficial_owners.items.[INDEX].kyc_liveness_passed","typeLabel":"boolean | null"},"kyc_verified_at":{"oneOf":[{"type":"string","format":"date-time","description":"When the child KYC session reached `Approved`. `null` while the child session has any other status.","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.beneficial_owners.items.[INDEX].kyc_verified_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","description":"When the child KYC session reached `Approved`. `null` while the child session has any other status.","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.beneficial_owners.items.[INDEX].kyc_verified_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.beneficial_owners.items.[INDEX].kyc_verified_at","typeLabel":"string\u003cdate-time> | null"},"kyc_aml_categories":{"oneOf":[{"type":"object","description":"Per-category summary derived from the person's AML hits. `null` when there are no hits.","properties":{"sanctions":{"type":"string","enum":["match","clear"],"uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.beneficial_owners.items.[INDEX].kyc_aml_categories.oneOf.0.sanctions","typeLabel":"enum\u003cstring>"},"pep":{"type":"string","enum":["match","clear"],"uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.beneficial_owners.items.[INDEX].kyc_aml_categories.oneOf.0.pep","typeLabel":"enum\u003cstring>"},"adverse_media":{"type":"string","enum":["match","clear"],"uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.beneficial_owners.items.[INDEX].kyc_aml_categories.oneOf.0.adverse_media","typeLabel":"enum\u003cstring>"},"warnings":{"type":"string","enum":["match","clear"],"uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.beneficial_owners.items.[INDEX].kyc_aml_categories.oneOf.0.warnings","typeLabel":"enum\u003cstring>"}},"uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.beneficial_owners.items.[INDEX].kyc_aml_categories.oneOf.0","typeLabel":"object"},{"type":"null","description":"Per-category summary derived from the person's AML hits. `null` when there are no hits.","properties":{"sanctions":{"type":"string","enum":["match","clear"]},"pep":{"type":"string","enum":["match","clear"]},"adverse_media":{"type":"string","enum":["match","clear"]},"warnings":{"type":"string","enum":["match","clear"]}},"uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.beneficial_owners.items.[INDEX].kyc_aml_categories.oneOf.1","typeLabel":"null"}],"uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.beneficial_owners.items.[INDEX].kyc_aml_categories","typeLabel":"object | null"},"kyc_notification_sent_at":{"oneOf":[{"type":"string","description":"ISO 8601 timestamp of the last verification-invite notification sent for this person's child session. `null` when none was sent.","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.beneficial_owners.items.[INDEX].kyc_notification_sent_at.oneOf.0","typeLabel":"string"},{"type":"null","description":"ISO 8601 timestamp of the last verification-invite notification sent for this person's child session. `null` when none was sent.","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.beneficial_owners.items.[INDEX].kyc_notification_sent_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.beneficial_owners.items.[INDEX].kyc_notification_sent_at","typeLabel":"string | null"},"child_beneficial_owners":{"type":"array","description":"For corporate UBOs: the owning entity's own beneficial owners, as raw objects extracted from the registry. Empty array when not applicable.","items":{"type":"object","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.beneficial_owners.items.[INDEX].child_beneficial_owners.items.[INDEX]","typeLabel":"object"},"uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.beneficial_owners.items.[INDEX].child_beneficial_owners","typeLabel":"object[]"},"effective_ownership_percent":{"oneOf":[{"type":"number","description":"Parsed numeric ownership percentage — the max bound when available, otherwise the min bound. `null` when neither bound could be parsed.","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.beneficial_owners.items.[INDEX].effective_ownership_percent.oneOf.0","typeLabel":"number"},{"type":"null","description":"Parsed numeric ownership percentage — the max bound when available, otherwise the min bound. `null` when neither bound could be parsed.","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.beneficial_owners.items.[INDEX].effective_ownership_percent.oneOf.1","typeLabel":"null"}],"uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.beneficial_owners.items.[INDEX].effective_ownership_percent","typeLabel":"number | null"},"voting_min_shares":{"oneOf":[{"type":"string","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.beneficial_owners.items.[INDEX].voting_min_shares.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.beneficial_owners.items.[INDEX].voting_min_shares.oneOf.1","typeLabel":"null"}],"uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.beneficial_owners.items.[INDEX].voting_min_shares","typeLabel":"string | null"},"voting_max_shares":{"oneOf":[{"type":"string","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.beneficial_owners.items.[INDEX].voting_max_shares.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.beneficial_owners.items.[INDEX].voting_max_shares.oneOf.1","typeLabel":"null"}],"uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.beneficial_owners.items.[INDEX].voting_max_shares","typeLabel":"string | null"},"appointment_date":{"oneOf":[{"type":"string","description":"Appointment date when reported.","format":"date","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.beneficial_owners.items.[INDEX].appointment_date.oneOf.0","typeLabel":"string\u003cdate>"},{"type":"null","description":"Appointment date when reported.","format":"date","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.beneficial_owners.items.[INDEX].appointment_date.oneOf.1","typeLabel":"null"}],"uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.beneficial_owners.items.[INDEX].appointment_date","typeLabel":"string\u003cdate> | null"}},"uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.beneficial_owners.items.[INDEX]","typeLabel":"object"},"uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry.beneficial_owners","typeLabel":"object[]"}},"uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].registry","typeLabel":"object"},"submitted":{"type":"object","description":"Parties submitted by the business admin during the Key People flow (BusinessParty rows where source=USER).","properties":{"parties":{"type":"array","items":{"type":"object","description":"Party submitted by the business admin via the Key People flow (source=USER).","properties":{"uuid":{"type":"string","format":"uuid","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].submitted.parties.items.[INDEX].uuid","typeLabel":"string\u003cuuid>"},"entity_type":{"type":"string","enum":["person","company"],"uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].submitted.parties.items.[INDEX].entity_type","typeLabel":"enum\u003cstring>"},"source":{"type":"string","enum":["USER"],"description":"Always `USER` here — this bucket only contains parties entered or confirmed by the end user in the Key People flow (registry-discovered people appear under `registry`).","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].submitted.parties.items.[INDEX].source","typeLabel":"enum\u003cstring>"},"name":{"type":"string","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].submitted.parties.items.[INDEX].name","typeLabel":"string"},"first_name":{"oneOf":[{"type":"string","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].submitted.parties.items.[INDEX].first_name.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].submitted.parties.items.[INDEX].first_name.oneOf.1","typeLabel":"null"}],"uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].submitted.parties.items.[INDEX].first_name","typeLabel":"string | null"},"last_name":{"oneOf":[{"type":"string","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].submitted.parties.items.[INDEX].last_name.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].submitted.parties.items.[INDEX].last_name.oneOf.1","typeLabel":"null"}],"uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].submitted.parties.items.[INDEX].last_name","typeLabel":"string | null"},"company_name":{"oneOf":[{"type":"string","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].submitted.parties.items.[INDEX].company_name.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].submitted.parties.items.[INDEX].company_name.oneOf.1","typeLabel":"null"}],"uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].submitted.parties.items.[INDEX].company_name","typeLabel":"string | null"},"registration_number":{"oneOf":[{"type":"string","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].submitted.parties.items.[INDEX].registration_number.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].submitted.parties.items.[INDEX].registration_number.oneOf.1","typeLabel":"null"}],"uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].submitted.parties.items.[INDEX].registration_number","typeLabel":"string | null"},"email":{"oneOf":[{"type":"string","format":"email","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].submitted.parties.items.[INDEX].email.oneOf.0","typeLabel":"string\u003cemail>"},{"type":"null","format":"email","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].submitted.parties.items.[INDEX].email.oneOf.1","typeLabel":"null"}],"uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].submitted.parties.items.[INDEX].email","typeLabel":"string\u003cemail> | null"},"nationality":{"oneOf":[{"type":"string","description":"Nationality for persons; country of incorporation for company parties.","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].submitted.parties.items.[INDEX].nationality.oneOf.0","typeLabel":"string"},{"type":"null","description":"Nationality for persons; country of incorporation for company parties.","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].submitted.parties.items.[INDEX].nationality.oneOf.1","typeLabel":"null"}],"uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].submitted.parties.items.[INDEX].nationality","typeLabel":"string | null"},"phone_number":{"oneOf":[{"type":"string","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].submitted.parties.items.[INDEX].phone_number.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].submitted.parties.items.[INDEX].phone_number.oneOf.1","typeLabel":"null"}],"uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].submitted.parties.items.[INDEX].phone_number","typeLabel":"string | null"},"date_of_birth":{"oneOf":[{"type":"string","format":"date","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].submitted.parties.items.[INDEX].date_of_birth.oneOf.0","typeLabel":"string\u003cdate>"},{"type":"null","format":"date","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].submitted.parties.items.[INDEX].date_of_birth.oneOf.1","typeLabel":"null"}],"uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].submitted.parties.items.[INDEX].date_of_birth","typeLabel":"string\u003cdate> | null"},"position":{"oneOf":[{"type":"string","description":"Free-text job title / position (persons only).","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].submitted.parties.items.[INDEX].position.oneOf.0","typeLabel":"string"},{"type":"null","description":"Free-text job title / position (persons only).","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].submitted.parties.items.[INDEX].position.oneOf.1","typeLabel":"null"}],"uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].submitted.parties.items.[INDEX].position","typeLabel":"string | null"},"custom_fields":{"type":"object","description":"Workflow-defined custom fields collected for this party; keys are defined by the workflow's key-people field descriptors.","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].submitted.parties.items.[INDEX].custom_fields","typeLabel":"object"},"is_active":{"type":"boolean","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].submitted.parties.items.[INDEX].is_active","typeLabel":"boolean"},"is_skipped":{"type":"boolean","description":"True when the end user skipped verification for this party (only possible when the role allows skipping).","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].submitted.parties.items.[INDEX].is_skipped","typeLabel":"boolean"},"requires_verification":{"type":"boolean","description":"True when a child KYC / KYB sub-session is required for this party based on role settings and ownership thresholds.","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].submitted.parties.items.[INDEX].requires_verification","typeLabel":"boolean"},"roles":{"type":"array","description":"All roles held by this party, each with its own ownership and voting percentages. There is no scalar `role`/`ownership_percent` on the party itself.","items":{"type":"object","properties":{"role":{"type":"string","enum":["director","non_executive_director","secretary","chairman","ubo","shareholder","representative","founder","legal_advisor","authorized_signatory","trustee","beneficiary","settlor","protector","company_officer","investor","other"],"uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].submitted.parties.items.[INDEX].roles.items.[INDEX].role","typeLabel":"enum\u003cstring>"},"ownership_percent":{"oneOf":[{"type":"number","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].submitted.parties.items.[INDEX].roles.items.[INDEX].ownership_percent.oneOf.0","typeLabel":"number"},{"type":"null","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].submitted.parties.items.[INDEX].roles.items.[INDEX].ownership_percent.oneOf.1","typeLabel":"null"}],"uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].submitted.parties.items.[INDEX].roles.items.[INDEX].ownership_percent","typeLabel":"number | null"},"voting_percent":{"oneOf":[{"type":"number","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].submitted.parties.items.[INDEX].roles.items.[INDEX].voting_percent.oneOf.0","typeLabel":"number"},{"type":"null","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].submitted.parties.items.[INDEX].roles.items.[INDEX].voting_percent.oneOf.1","typeLabel":"null"}],"uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].submitted.parties.items.[INDEX].roles.items.[INDEX].voting_percent","typeLabel":"number | null"}},"uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].submitted.parties.items.[INDEX].roles.items.[INDEX]","typeLabel":"object"},"uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].submitted.parties.items.[INDEX].roles","typeLabel":"object[]"},"kyc_session_id":{"oneOf":[{"type":"string","format":"uuid","description":"Child KYC session id for person parties requiring verification. `null` otherwise.","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].submitted.parties.items.[INDEX].kyc_session_id.oneOf.0","typeLabel":"string\u003cuuid>"},{"type":"null","format":"uuid","description":"Child KYC session id for person parties requiring verification. `null` otherwise.","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].submitted.parties.items.[INDEX].kyc_session_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].submitted.parties.items.[INDEX].kyc_session_id","typeLabel":"string\u003cuuid> | null"},"kyc_session_status":{"oneOf":[{"type":"string","enum":["Not Started","In Progress","Approved","Declined","In Review","Expired","Abandoned","Kyc Expired","Resubmitted","Awaiting User"],"description":"Lifecycle status of the child KYC session. `null` when no child KYC session exists.","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].submitted.parties.items.[INDEX].kyc_session_status.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["Not Started","In Progress","Approved","Declined","In Review","Expired","Abandoned","Kyc Expired","Resubmitted","Awaiting User"],"description":"Lifecycle status of the child KYC session. `null` when no child KYC session exists.","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].submitted.parties.items.[INDEX].kyc_session_status.oneOf.1","typeLabel":"null"}],"uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].submitted.parties.items.[INDEX].kyc_session_status","typeLabel":"enum\u003cstring> | null"},"kyc_session_url":{"oneOf":[{"type":"string","format":"uri","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].submitted.parties.items.[INDEX].kyc_session_url.oneOf.0","typeLabel":"string\u003curi>"},{"type":"null","format":"uri","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].submitted.parties.items.[INDEX].kyc_session_url.oneOf.1","typeLabel":"null"}],"uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].submitted.parties.items.[INDEX].kyc_session_url","typeLabel":"string\u003curi> | null"},"kyb_sub_session_id":{"oneOf":[{"type":"string","format":"uuid","description":"Child KYB sub-session id for corporate parties requiring verification. `null` otherwise.","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].submitted.parties.items.[INDEX].kyb_sub_session_id.oneOf.0","typeLabel":"string\u003cuuid>"},{"type":"null","format":"uuid","description":"Child KYB sub-session id for corporate parties requiring verification. `null` otherwise.","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].submitted.parties.items.[INDEX].kyb_sub_session_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].submitted.parties.items.[INDEX].kyb_sub_session_id","typeLabel":"string\u003cuuid> | null"},"kyb_sub_session_status":{"oneOf":[{"type":"string","enum":["Not Started","In Progress","Approved","Declined","In Review","Expired","Abandoned","Kyc Expired","Resubmitted","Awaiting User"],"description":"Lifecycle status of the child KYB sub-session. `null` when no sub-session exists.","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].submitted.parties.items.[INDEX].kyb_sub_session_status.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["Not Started","In Progress","Approved","Declined","In Review","Expired","Abandoned","Kyc Expired","Resubmitted","Awaiting User"],"description":"Lifecycle status of the child KYB sub-session. `null` when no sub-session exists.","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].submitted.parties.items.[INDEX].kyb_sub_session_status.oneOf.1","typeLabel":"null"}],"uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].submitted.parties.items.[INDEX].kyb_sub_session_status","typeLabel":"enum\u003cstring> | null"},"kyb_sub_session_url":{"oneOf":[{"type":"string","format":"uri","description":"Shareable URL of the child KYB sub-session. `null` when no sub-session exists.","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].submitted.parties.items.[INDEX].kyb_sub_session_url.oneOf.0","typeLabel":"string\u003curi>"},{"type":"null","format":"uri","description":"Shareable URL of the child KYB sub-session. `null` when no sub-session exists.","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].submitted.parties.items.[INDEX].kyb_sub_session_url.oneOf.1","typeLabel":"null"}],"uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].submitted.parties.items.[INDEX].kyb_sub_session_url","typeLabel":"string\u003curi> | null"},"verification_workflow_type":{"oneOf":[{"type":"string","description":"Base workflow type of the child session's workflow (KYC session preferred, falling back to the KYB sub-session). `null` for graph-based workflows or when no child session exists.","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].submitted.parties.items.[INDEX].verification_workflow_type.oneOf.0","typeLabel":"string"},{"type":"null","description":"Base workflow type of the child session's workflow (KYC session preferred, falling back to the KYB sub-session). `null` for graph-based workflows or when no child session exists.","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].submitted.parties.items.[INDEX].verification_workflow_type.oneOf.1","typeLabel":"null"}],"uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].submitted.parties.items.[INDEX].verification_workflow_type","typeLabel":"string | null"},"verification_workflow_id":{"oneOf":[{"type":"string","format":"uuid","description":"Workflow id used by the child session. `null` when no child session exists.","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].submitted.parties.items.[INDEX].verification_workflow_id.oneOf.0","typeLabel":"string\u003cuuid>"},{"type":"null","format":"uuid","description":"Workflow id used by the child session. `null` when no child session exists.","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].submitted.parties.items.[INDEX].verification_workflow_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].submitted.parties.items.[INDEX].verification_workflow_id","typeLabel":"string\u003cuuid> | null"},"verification_workflow_label":{"oneOf":[{"type":"string","description":"Human-readable label of the child session's workflow. `null` when unset.","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].submitted.parties.items.[INDEX].verification_workflow_label.oneOf.0","typeLabel":"string"},{"type":"null","description":"Human-readable label of the child session's workflow. `null` when unset.","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].submitted.parties.items.[INDEX].verification_workflow_label.oneOf.1","typeLabel":"null"}],"uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].submitted.parties.items.[INDEX].verification_workflow_label","typeLabel":"string | null"},"verification_workflow_features":{"oneOf":[{"type":"array","description":"Per-feature progress of the child verification session, e.g. `[{\"feature\": \"ID_VERIFICATION\", \"status\": \"Approved\"}]`. `null` when the child session has no resolvable feature list.","items":{"type":"object","properties":{"feature":{"type":"string","description":"Feature display name (e.g. `ID_VERIFICATION`, `LIVENESS`, `AML`).","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].submitted.parties.items.[INDEX].verification_workflow_features.oneOf.0.items.[INDEX].feature","typeLabel":"string"},"status":{"type":"string","enum":["Not Finished","Approved","Declined","In Review","Resub Requested"],"description":"Feature-level status inside the child session.","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].submitted.parties.items.[INDEX].verification_workflow_features.oneOf.0.items.[INDEX].status","typeLabel":"enum\u003cstring>"}},"uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].submitted.parties.items.[INDEX].verification_workflow_features.oneOf.0.items.[INDEX]","typeLabel":"object"},"uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].submitted.parties.items.[INDEX].verification_workflow_features.oneOf.0","typeLabel":"object[]"},{"type":"null","description":"Per-feature progress of the child verification session, e.g. `[{\"feature\": \"ID_VERIFICATION\", \"status\": \"Approved\"}]`. `null` when the child session has no resolvable feature list.","items":{"type":"object","properties":{"feature":{"type":"string","description":"Feature display name (e.g. `ID_VERIFICATION`, `LIVENESS`, `AML`)."},"status":{"type":"string","enum":["Not Finished","Approved","Declined","In Review","Resub Requested"],"description":"Feature-level status inside the child session."}}},"uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].submitted.parties.items.[INDEX].verification_workflow_features.oneOf.1","typeLabel":"null"}],"uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].submitted.parties.items.[INDEX].verification_workflow_features","typeLabel":"object[] | null"},"didit_internal_id":{"oneOf":[{"type":"string","description":"Stable internal identifier of the verified individual behind the child session. `null` when not resolved.","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].submitted.parties.items.[INDEX].didit_internal_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"Stable internal identifier of the verified individual behind the child session. `null` when not resolved.","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].submitted.parties.items.[INDEX].didit_internal_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].submitted.parties.items.[INDEX].didit_internal_id","typeLabel":"string | null"}},"uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].submitted.parties.items.[INDEX]","typeLabel":"object"},"uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].submitted.parties","typeLabel":"object[]"}},"uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].submitted","typeLabel":"object"},"ubo_kyc_summary":{"oneOf":[{"type":"object","description":"Aggregate UBO KYC progress, or null when no UBOs have linked KYC sessions.","properties":{"total":{"type":"integer","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].ubo_kyc_summary.oneOf.0.total","typeLabel":"integer"},"approved":{"type":"integer","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].ubo_kyc_summary.oneOf.0.approved","typeLabel":"integer"},"flagged":{"type":"integer","description":"UBOs whose KYC is Declined or In Review.","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].ubo_kyc_summary.oneOf.0.flagged","typeLabel":"integer"},"pending":{"type":"integer","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].ubo_kyc_summary.oneOf.0.pending","typeLabel":"integer"}},"uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].ubo_kyc_summary.oneOf.0","typeLabel":"object"},{"type":"null","description":"Aggregate UBO KYC progress, or null when no UBOs have linked KYC sessions.","properties":{"total":{"type":"integer"},"approved":{"type":"integer"},"flagged":{"type":"integer","description":"UBOs whose KYC is Declined or In Review."},"pending":{"type":"integer"}},"uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].ubo_kyc_summary.oneOf.1","typeLabel":"null"}],"uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].ubo_kyc_summary","typeLabel":"object | null"},"listed_company_declaration":{"oneOf":[{"type":"object","description":"The company's own declaration that it is listed on a stock exchange, or owned by a listed company, made on the Key People screen instead of naming a beneficial owner. Present in every `key_people_checks` entry unless the workflow's Returned data settings leave it out, and `null` unless the company made the declaration, which it can only do where the workflow allows it (`kyb_key_people_allow_listed_company_declaration`). Didit does not check the declaration against a stock exchange: the workflow's `kyb_key_people_listed_company_action` decides the Key People outcome (Review by default) and the `KYB_LISTED_COMPANY_DECLARED` warning is added. The company must still name at least one person who manages or represents it (director, non-executive director, chairman, representative, authorized signatory or company officer).","required":["type","stock_exchange","isin","listed_parent_company_name"],"properties":{"type":{"type":"string","enum":["listed_company","subsidiary_of_listed_company"],"description":"`listed_company`: the company itself is listed on a stock exchange. `subsidiary_of_listed_company`: the company is owned by a listed company.","isRequired":true,"uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].listed_company_declaration.oneOf.0.type","typeLabel":"enum\u003cstring>"},"stock_exchange":{"oneOf":[{"type":"string","description":"Name of the stock exchange, as typed by the company (for example `London Stock Exchange`). `null` when left empty.","isRequired":true,"uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].listed_company_declaration.oneOf.0.stock_exchange.oneOf.0","typeLabel":"string"},{"type":"null","description":"Name of the stock exchange, as typed by the company (for example `London Stock Exchange`). `null` when left empty.","isRequired":true,"uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].listed_company_declaration.oneOf.0.stock_exchange.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].listed_company_declaration.oneOf.0.stock_exchange","typeLabel":"string | null"},"isin":{"oneOf":[{"type":"string","description":"ISIN of the listed security: 12 characters, upper-case, no spaces, with a valid check digit (for example `GBEXAMPLE002`). `null` when left empty.","isRequired":true,"uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].listed_company_declaration.oneOf.0.isin.oneOf.0","typeLabel":"string"},{"type":"null","description":"ISIN of the listed security: 12 characters, upper-case, no spaces, with a valid check digit (for example `GBEXAMPLE002`). `null` when left empty.","isRequired":true,"uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].listed_company_declaration.oneOf.0.isin.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].listed_company_declaration.oneOf.0.isin","typeLabel":"string | null"},"listed_parent_company_name":{"oneOf":[{"type":"string","description":"Name of the listed parent company. Only set when `type` is `subsidiary_of_listed_company`; `null` otherwise.","isRequired":true,"uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].listed_company_declaration.oneOf.0.listed_parent_company_name.oneOf.0","typeLabel":"string"},{"type":"null","description":"Name of the listed parent company. Only set when `type` is `subsidiary_of_listed_company`; `null` otherwise.","isRequired":true,"uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].listed_company_declaration.oneOf.0.listed_parent_company_name.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].listed_company_declaration.oneOf.0.listed_parent_company_name","typeLabel":"string | null"}},"uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].listed_company_declaration.oneOf.0","typeLabel":"object"},{"type":"null","description":"The company's own declaration that it is listed on a stock exchange, or owned by a listed company, made on the Key People screen instead of naming a beneficial owner. Present in every `key_people_checks` entry unless the workflow's Returned data settings leave it out, and `null` unless the company made the declaration, which it can only do where the workflow allows it (`kyb_key_people_allow_listed_company_declaration`). Didit does not check the declaration against a stock exchange: the workflow's `kyb_key_people_listed_company_action` decides the Key People outcome (Review by default) and the `KYB_LISTED_COMPANY_DECLARED` warning is added. The company must still name at least one person who manages or represents it (director, non-executive director, chairman, representative, authorized signatory or company officer).","required":["type","stock_exchange","isin","listed_parent_company_name"],"properties":{"type":{"type":"string","enum":["listed_company","subsidiary_of_listed_company"],"description":"`listed_company`: the company itself is listed on a stock exchange. `subsidiary_of_listed_company`: the company is owned by a listed company."},"stock_exchange":{"oneOf":[{"type":"string","description":"Name of the stock exchange, as typed by the company (for example `London Stock Exchange`). `null` when left empty."},{"type":"null","description":"Name of the stock exchange, as typed by the company (for example `London Stock Exchange`). `null` when left empty."}]},"isin":{"oneOf":[{"type":"string","description":"ISIN of the listed security: 12 characters, upper-case, no spaces, with a valid check digit (for example `GBEXAMPLE002`). `null` when left empty."},{"type":"null","description":"ISIN of the listed security: 12 characters, upper-case, no spaces, with a valid check digit (for example `GBEXAMPLE002`). `null` when left empty."}]},"listed_parent_company_name":{"oneOf":[{"type":"string","description":"Name of the listed parent company. Only set when `type` is `subsidiary_of_listed_company`; `null` otherwise."},{"type":"null","description":"Name of the listed parent company. Only set when `type` is `subsidiary_of_listed_company`; `null` otherwise."}]}},"uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].listed_company_declaration.oneOf.1","typeLabel":"null"}],"uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].listed_company_declaration","typeLabel":"object | null"},"warnings":{"type":"array","items":{"type":"object","uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].warnings.items.[INDEX]","typeLabel":"object"},"uniqueKey":"key_people_checks.oneOf.0.items.[INDEX].warnings","typeLabel":"object[]"}},"uniqueKey":"key_people_checks.oneOf.0.items.[INDEX]","typeLabel":"object"},"uniqueKey":"key_people_checks.oneOf.0","typeLabel":"object[]"},{"type":"null","description":"Aggregate key-people checks. Present only when `session_kind = business`. Each item uses the two-bucket shape (`registry`, `submitted`, `ubo_kyc_summary`).","items":{"type":"object","description":"Aggregate check over the company's officers + UBOs. Uses the `registry` / `submitted` shape. Present only when session_kind = business.","properties":{"status":{"type":"string"},"node_id":{"oneOf":[{"type":"string"},{"type":"null"}]},"registry":{"type":"object","description":"Parties discovered via the registry check.","properties":{"officers":{"type":"array","description":"Officers discovered via the registry check, each enriched with the status of any child KYC session and AML screening spawned for them.","items":{"type":"object","properties":{"uuid":{"type":"string","format":"uuid"},"name":{"type":"string","description":"Officer's full name as recorded in the registry."},"designation":{"oneOf":[{"type":"string","description":"Free-text designation from the registry (e.g. `Director`, `Company Secretary`)."},{"type":"null","description":"Free-text designation from the registry (e.g. `Director`, `Company Secretary`)."}]},"role":{"type":"string","enum":["director","non_executive_director","secretary","chairman","ubo","shareholder","representative","founder","legal_advisor","authorized_signatory","trustee","beneficiary","settlor","protector","company_officer","investor","other"],"description":"Normalized officer role."},"nationality":{"oneOf":[{"type":"string"},{"type":"null"}]},"appointment_date":{"oneOf":[{"type":"string","description":"Date the officer was appointed.","format":"date"},{"type":"null","description":"Date the officer was appointed.","format":"date"}]},"termination_date":{"oneOf":[{"type":"string","description":"Date the appointment ended, when reported.","format":"date"},{"type":"null","description":"Date the appointment ended, when reported.","format":"date"}]},"is_active":{"type":"boolean"},"address":{"oneOf":[{"type":"string","description":"Officer address reported by the registry."},{"type":"null","description":"Officer address reported by the registry."}]},"aml_status":{"oneOf":[{"type":"string","enum":["Not Finished","Approved","Declined","In Review","Resub Requested"],"description":"Status of the AML screening run for this officer. `null` when no AML screening was run."},{"type":"null","enum":["Not Finished","Approved","Declined","In Review","Resub Requested"],"description":"Status of the AML screening run for this officer. `null` when no AML screening was run."}]},"kyc_status":{"oneOf":[{"type":"string","enum":["Not Started","In Progress","Approved","Declined","In Review","Expired","Abandoned","Kyc Expired","Resubmitted","Awaiting User"],"description":"Raw lifecycle status of the child KYC session spawned for this officer. This is the full session status enum (not a reduced Approved/Declined/Pending set). `null` when no child KYC session exists."},{"type":"null","enum":["Not Started","In Progress","Approved","Declined","In Review","Expired","Abandoned","Kyc Expired","Resubmitted","Awaiting User"],"description":"Raw lifecycle status of the child KYC session spawned for this officer. This is the full session status enum (not a reduced Approved/Declined/Pending set). `null` when no child KYC session exists."}]},"kyc_session_url":{"oneOf":[{"type":"string","format":"uri","description":"Shareable URL of the child KYC session. `null` when no child session exists."},{"type":"null","format":"uri","description":"Shareable URL of the child KYC session. `null` when no child session exists."}]},"kyc_session_id":{"oneOf":[{"type":"string","format":"uuid","description":"Session id of the child KYC session. Pass it to this same decision endpoint to fetch the person's full KYC report. `null` when no child session exists."},{"type":"null","format":"uuid","description":"Session id of the child KYC session. Pass it to this same decision endpoint to fetch the person's full KYC report. `null` when no child session exists."}]},"verification_workflow_type":{"oneOf":[{"type":"string","description":"Base workflow type of the child session's workflow (e.g. `kyc`). `null` for graph-based workflows or when no child session exists."},{"type":"null","description":"Base workflow type of the child session's workflow (e.g. `kyc`). `null` for graph-based workflows or when no child session exists."}]},"verification_workflow_id":{"oneOf":[{"type":"string","format":"uuid","description":"Workflow id used by the child session. `null` when no child session exists."},{"type":"null","format":"uuid","description":"Workflow id used by the child session. `null` when no child session exists."}]},"verification_workflow_label":{"oneOf":[{"type":"string","description":"Human-readable label of the child session's workflow. `null` when unset."},{"type":"null","description":"Human-readable label of the child session's workflow. `null` when unset."}]},"verification_workflow_features":{"oneOf":[{"type":"array","description":"Per-feature progress of the child verification session, e.g. `[{\"feature\": \"ID_VERIFICATION\", \"status\": \"Approved\"}]`. `null` when the child session has no resolvable feature list.","items":{"type":"object","properties":{"feature":{"type":"string","description":"Feature display name (e.g. `ID_VERIFICATION`, `LIVENESS`, `AML`)."},"status":{"type":"string","enum":["Not Finished","Approved","Declined","In Review","Resub Requested"],"description":"Feature-level status inside the child session."}}}},{"type":"null","description":"Per-feature progress of the child verification session, e.g. `[{\"feature\": \"ID_VERIFICATION\", \"status\": \"Approved\"}]`. `null` when the child session has no resolvable feature list.","items":{"type":"object","properties":{"feature":{"type":"string","description":"Feature display name (e.g. `ID_VERIFICATION`, `LIVENESS`, `AML`)."},"status":{"type":"string","enum":["Not Finished","Approved","Declined","In Review","Resub Requested"],"description":"Feature-level status inside the child session."}}}}]},"didit_internal_id":{"oneOf":[{"type":"string","description":"Stable internal identifier of the verified individual behind the child session — useful for cross-session linking. `null` when no child session exists or the user has not been resolved yet."},{"type":"null","description":"Stable internal identifier of the verified individual behind the child session — useful for cross-session linking. `null` when no child session exists or the user has not been resolved yet."}]},"kyc_document_type":{"oneOf":[{"type":"string","description":"Document type presented in the child KYC session (e.g. `P`, `ID`, `DL`). `null` until the child session has an ID verification result."},{"type":"null","description":"Document type presented in the child KYC session (e.g. `P`, `ID`, `DL`). `null` until the child session has an ID verification result."}]},"kyc_nationality":{"oneOf":[{"type":"string","description":"Nationality extracted from the document in the child KYC session. `null` until available."},{"type":"null","description":"Nationality extracted from the document in the child KYC session. `null` until available."}]},"kyc_liveness_passed":{"oneOf":[{"type":"boolean","description":"Whether the child KYC session's liveness check passed. `null` when no liveness check has run."},{"type":"null","description":"Whether the child KYC session's liveness check passed. `null` when no liveness check has run."}]},"kyc_verified_at":{"oneOf":[{"type":"string","format":"date-time","description":"When the child KYC session reached `Approved`. `null` while the child session has any other status."},{"type":"null","format":"date-time","description":"When the child KYC session reached `Approved`. `null` while the child session has any other status."}]},"kyc_aml_categories":{"oneOf":[{"type":"object","description":"Per-category summary derived from the person's AML hits. `null` when there are no hits.","properties":{"sanctions":{"type":"string","enum":["match","clear"]},"pep":{"type":"string","enum":["match","clear"]},"adverse_media":{"type":"string","enum":["match","clear"]},"warnings":{"type":"string","enum":["match","clear"]}}},{"type":"null","description":"Per-category summary derived from the person's AML hits. `null` when there are no hits.","properties":{"sanctions":{"type":"string","enum":["match","clear"]},"pep":{"type":"string","enum":["match","clear"]},"adverse_media":{"type":"string","enum":["match","clear"]},"warnings":{"type":"string","enum":["match","clear"]}}}]},"kyc_notification_sent_at":{"oneOf":[{"type":"string","description":"ISO 8601 timestamp of the last verification-invite notification sent for this person's child session. `null` when none was sent."},{"type":"null","description":"ISO 8601 timestamp of the last verification-invite notification sent for this person's child session. `null` when none was sent."}]},"first_name":{"oneOf":[{"type":"string","description":"Given name when explicitly reported by the registry; not inferred from the full name."},{"type":"null","description":"Given name when explicitly reported by the registry; not inferred from the full name."}]},"last_name":{"oneOf":[{"type":"string","description":"Family name when explicitly reported by the registry."},{"type":"null","description":"Family name when explicitly reported by the registry."}]},"date_of_birth":{"oneOf":[{"type":"string","description":"Complete registry-reported birth date. Null when only a birth year or month is known.","format":"date"},{"type":"null","description":"Complete registry-reported birth date. Null when only a birth year or month is known.","format":"date"}]},"date_of_birth_year":{"oneOf":[{"type":"integer","minimum":1,"maximum":9999,"description":"Registry-reported birth year, including when the full date is unavailable."},{"type":"null","minimum":1,"maximum":9999,"description":"Registry-reported birth year, including when the full date is unavailable."}]},"date_of_birth_month":{"oneOf":[{"type":"integer","minimum":1,"maximum":12,"description":"Registry-reported birth month. Null when only the year is known."},{"type":"null","minimum":1,"maximum":12,"description":"Registry-reported birth month. Null when only the year is known."}]}}}},"beneficial_owners":{"type":"array","description":"Beneficial owners discovered via the registry check, each enriched with the status of any child KYC session and AML screening spawned for them.","items":{"type":"object","properties":{"uuid":{"type":"string","format":"uuid"},"name":{"type":"string","description":"Beneficial owner's full name (or company name for corporate UBOs)."},"first_name":{"oneOf":[{"type":"string"},{"type":"null"}]},"last_name":{"oneOf":[{"type":"string"},{"type":"null"}]},"date_of_birth":{"oneOf":[{"type":"string","description":"Complete birth date when reported.","format":"date"},{"type":"null","description":"Complete birth date when reported.","format":"date"}]},"country_of_birth":{"oneOf":[{"type":"string"},{"type":"null"}]},"email":{"oneOf":[{"type":"string"},{"type":"null"}]},"company_name":{"oneOf":[{"type":"string"},{"type":"null"}]},"registration_number":{"oneOf":[{"type":"string"},{"type":"null"}]},"entity_type":{"type":"string","enum":["person","company"]},"nationality":{"oneOf":[{"type":"string"},{"type":"null"}]},"designation":{"oneOf":[{"type":"string"},{"type":"null"}]},"roles":{"type":"array","description":"Role names held by this owner, e.g. `[\"ubo\", \"shareholder\"]`.","items":{"type":"string"}},"ownership_min_shares":{"oneOf":[{"type":"string","description":"Lower bound of the ownership percentage as reported by the registry. Free-form string (e.g. `\"25\"`, `\"25-50%\"`); use `effective_ownership_percent` for a parsed numeric value."},{"type":"null","description":"Lower bound of the ownership percentage as reported by the registry. Free-form string (e.g. `\"25\"`, `\"25-50%\"`); use `effective_ownership_percent` for a parsed numeric value."}]},"ownership_max_shares":{"oneOf":[{"type":"string","description":"Upper bound of the ownership percentage as reported by the registry. Free-form string; use `effective_ownership_percent` for a parsed numeric value."},{"type":"null","description":"Upper bound of the ownership percentage as reported by the registry. Free-form string; use `effective_ownership_percent` for a parsed numeric value."}]},"is_active":{"type":"boolean"},"aml_status":{"oneOf":[{"type":"string","enum":["Not Finished","Approved","Declined","In Review","Resub Requested"],"description":"Status of the AML screening run for this beneficial owner. `null` when no AML screening was run."},{"type":"null","enum":["Not Finished","Approved","Declined","In Review","Resub Requested"],"description":"Status of the AML screening run for this beneficial owner. `null` when no AML screening was run."}]},"kyc_status":{"oneOf":[{"type":"string","enum":["Not Started","In Progress","Approved","Declined","In Review","Expired","Abandoned","Kyc Expired","Resubmitted","Awaiting User"],"description":"Raw lifecycle status of the child KYC session spawned for this beneficial owner. This is the full session status enum (not a reduced Approved/Declined/Pending set). `null` when no child KYC session exists."},{"type":"null","enum":["Not Started","In Progress","Approved","Declined","In Review","Expired","Abandoned","Kyc Expired","Resubmitted","Awaiting User"],"description":"Raw lifecycle status of the child KYC session spawned for this beneficial owner. This is the full session status enum (not a reduced Approved/Declined/Pending set). `null` when no child KYC session exists."}]},"kyc_session_url":{"oneOf":[{"type":"string","format":"uri","description":"Shareable URL of the child KYC session. `null` when no child session exists."},{"type":"null","format":"uri","description":"Shareable URL of the child KYC session. `null` when no child session exists."}]},"kyc_session_id":{"oneOf":[{"type":"string","format":"uuid","description":"Session id of the child KYC session. Pass it to this same decision endpoint to fetch the person's full KYC report. `null` when no child session exists."},{"type":"null","format":"uuid","description":"Session id of the child KYC session. Pass it to this same decision endpoint to fetch the person's full KYC report. `null` when no child session exists."}]},"verification_workflow_type":{"oneOf":[{"type":"string","description":"Base workflow type of the child session's workflow (e.g. `kyc`). `null` for graph-based workflows or when no child session exists."},{"type":"null","description":"Base workflow type of the child session's workflow (e.g. `kyc`). `null` for graph-based workflows or when no child session exists."}]},"verification_workflow_id":{"oneOf":[{"type":"string","format":"uuid","description":"Workflow id used by the child session. `null` when no child session exists."},{"type":"null","format":"uuid","description":"Workflow id used by the child session. `null` when no child session exists."}]},"verification_workflow_label":{"oneOf":[{"type":"string","description":"Human-readable label of the child session's workflow. `null` when unset."},{"type":"null","description":"Human-readable label of the child session's workflow. `null` when unset."}]},"verification_workflow_features":{"oneOf":[{"type":"array","description":"Per-feature progress of the child verification session, e.g. `[{\"feature\": \"ID_VERIFICATION\", \"status\": \"Approved\"}]`. `null` when the child session has no resolvable feature list.","items":{"type":"object","properties":{"feature":{"type":"string","description":"Feature display name (e.g. `ID_VERIFICATION`, `LIVENESS`, `AML`)."},"status":{"type":"string","enum":["Not Finished","Approved","Declined","In Review","Resub Requested"],"description":"Feature-level status inside the child session."}}}},{"type":"null","description":"Per-feature progress of the child verification session, e.g. `[{\"feature\": \"ID_VERIFICATION\", \"status\": \"Approved\"}]`. `null` when the child session has no resolvable feature list.","items":{"type":"object","properties":{"feature":{"type":"string","description":"Feature display name (e.g. `ID_VERIFICATION`, `LIVENESS`, `AML`)."},"status":{"type":"string","enum":["Not Finished","Approved","Declined","In Review","Resub Requested"],"description":"Feature-level status inside the child session."}}}}]},"didit_internal_id":{"oneOf":[{"type":"string","description":"Stable internal identifier of the verified individual behind the child session — useful for cross-session linking. `null` when no child session exists or the user has not been resolved yet."},{"type":"null","description":"Stable internal identifier of the verified individual behind the child session — useful for cross-session linking. `null` when no child session exists or the user has not been resolved yet."}]},"kyc_document_type":{"oneOf":[{"type":"string","description":"Document type presented in the child KYC session (e.g. `P`, `ID`, `DL`). `null` until the child session has an ID verification result."},{"type":"null","description":"Document type presented in the child KYC session (e.g. `P`, `ID`, `DL`). `null` until the child session has an ID verification result."}]},"kyc_nationality":{"oneOf":[{"type":"string","description":"Nationality extracted from the document in the child KYC session. `null` until available."},{"type":"null","description":"Nationality extracted from the document in the child KYC session. `null` until available."}]},"kyc_liveness_passed":{"oneOf":[{"type":"boolean","description":"Whether the child KYC session's liveness check passed. `null` when no liveness check has run."},{"type":"null","description":"Whether the child KYC session's liveness check passed. `null` when no liveness check has run."}]},"kyc_verified_at":{"oneOf":[{"type":"string","format":"date-time","description":"When the child KYC session reached `Approved`. `null` while the child session has any other status."},{"type":"null","format":"date-time","description":"When the child KYC session reached `Approved`. `null` while the child session has any other status."}]},"kyc_aml_categories":{"oneOf":[{"type":"object","description":"Per-category summary derived from the person's AML hits. `null` when there are no hits.","properties":{"sanctions":{"type":"string","enum":["match","clear"]},"pep":{"type":"string","enum":["match","clear"]},"adverse_media":{"type":"string","enum":["match","clear"]},"warnings":{"type":"string","enum":["match","clear"]}}},{"type":"null","description":"Per-category summary derived from the person's AML hits. `null` when there are no hits.","properties":{"sanctions":{"type":"string","enum":["match","clear"]},"pep":{"type":"string","enum":["match","clear"]},"adverse_media":{"type":"string","enum":["match","clear"]},"warnings":{"type":"string","enum":["match","clear"]}}}]},"kyc_notification_sent_at":{"oneOf":[{"type":"string","description":"ISO 8601 timestamp of the last verification-invite notification sent for this person's child session. `null` when none was sent."},{"type":"null","description":"ISO 8601 timestamp of the last verification-invite notification sent for this person's child session. `null` when none was sent."}]},"child_beneficial_owners":{"type":"array","description":"For corporate UBOs: the owning entity's own beneficial owners, as raw objects extracted from the registry. Empty array when not applicable.","items":{"type":"object"}},"effective_ownership_percent":{"oneOf":[{"type":"number","description":"Parsed numeric ownership percentage — the max bound when available, otherwise the min bound. `null` when neither bound could be parsed."},{"type":"null","description":"Parsed numeric ownership percentage — the max bound when available, otherwise the min bound. `null` when neither bound could be parsed."}]},"voting_min_shares":{"oneOf":[{"type":"string"},{"type":"null"}]},"voting_max_shares":{"oneOf":[{"type":"string"},{"type":"null"}]},"appointment_date":{"oneOf":[{"type":"string","description":"Appointment date when reported.","format":"date"},{"type":"null","description":"Appointment date when reported.","format":"date"}]}}}}}},"submitted":{"type":"object","description":"Parties submitted by the business admin during the Key People flow (BusinessParty rows where source=USER).","properties":{"parties":{"type":"array","items":{"type":"object","description":"Party submitted by the business admin via the Key People flow (source=USER).","properties":{"uuid":{"type":"string","format":"uuid"},"entity_type":{"type":"string","enum":["person","company"]},"source":{"type":"string","enum":["USER"],"description":"Always `USER` here — this bucket only contains parties entered or confirmed by the end user in the Key People flow (registry-discovered people appear under `registry`)."},"name":{"type":"string"},"first_name":{"oneOf":[{"type":"string"},{"type":"null"}]},"last_name":{"oneOf":[{"type":"string"},{"type":"null"}]},"company_name":{"oneOf":[{"type":"string"},{"type":"null"}]},"registration_number":{"oneOf":[{"type":"string"},{"type":"null"}]},"email":{"oneOf":[{"type":"string","format":"email"},{"type":"null","format":"email"}]},"nationality":{"oneOf":[{"type":"string","description":"Nationality for persons; country of incorporation for company parties."},{"type":"null","description":"Nationality for persons; country of incorporation for company parties."}]},"phone_number":{"oneOf":[{"type":"string"},{"type":"null"}]},"date_of_birth":{"oneOf":[{"type":"string","format":"date"},{"type":"null","format":"date"}]},"position":{"oneOf":[{"type":"string","description":"Free-text job title / position (persons only)."},{"type":"null","description":"Free-text job title / position (persons only)."}]},"custom_fields":{"type":"object","description":"Workflow-defined custom fields collected for this party; keys are defined by the workflow's key-people field descriptors."},"is_active":{"type":"boolean"},"is_skipped":{"type":"boolean","description":"True when the end user skipped verification for this party (only possible when the role allows skipping)."},"requires_verification":{"type":"boolean","description":"True when a child KYC / KYB sub-session is required for this party based on role settings and ownership thresholds."},"roles":{"type":"array","description":"All roles held by this party, each with its own ownership and voting percentages. There is no scalar `role`/`ownership_percent` on the party itself.","items":{"type":"object","properties":{"role":{"type":"string","enum":["director","non_executive_director","secretary","chairman","ubo","shareholder","representative","founder","legal_advisor","authorized_signatory","trustee","beneficiary","settlor","protector","company_officer","investor","other"]},"ownership_percent":{"oneOf":[{"type":"number"},{"type":"null"}]},"voting_percent":{"oneOf":[{"type":"number"},{"type":"null"}]}}}},"kyc_session_id":{"oneOf":[{"type":"string","format":"uuid","description":"Child KYC session id for person parties requiring verification. `null` otherwise."},{"type":"null","format":"uuid","description":"Child KYC session id for person parties requiring verification. `null` otherwise."}]},"kyc_session_status":{"oneOf":[{"type":"string","enum":["Not Started","In Progress","Approved","Declined","In Review","Expired","Abandoned","Kyc Expired","Resubmitted","Awaiting User"],"description":"Lifecycle status of the child KYC session. `null` when no child KYC session exists."},{"type":"null","enum":["Not Started","In Progress","Approved","Declined","In Review","Expired","Abandoned","Kyc Expired","Resubmitted","Awaiting User"],"description":"Lifecycle status of the child KYC session. `null` when no child KYC session exists."}]},"kyc_session_url":{"oneOf":[{"type":"string","format":"uri"},{"type":"null","format":"uri"}]},"kyb_sub_session_id":{"oneOf":[{"type":"string","format":"uuid","description":"Child KYB sub-session id for corporate parties requiring verification. `null` otherwise."},{"type":"null","format":"uuid","description":"Child KYB sub-session id for corporate parties requiring verification. `null` otherwise."}]},"kyb_sub_session_status":{"oneOf":[{"type":"string","enum":["Not Started","In Progress","Approved","Declined","In Review","Expired","Abandoned","Kyc Expired","Resubmitted","Awaiting User"],"description":"Lifecycle status of the child KYB sub-session. `null` when no sub-session exists."},{"type":"null","enum":["Not Started","In Progress","Approved","Declined","In Review","Expired","Abandoned","Kyc Expired","Resubmitted","Awaiting User"],"description":"Lifecycle status of the child KYB sub-session. `null` when no sub-session exists."}]},"kyb_sub_session_url":{"oneOf":[{"type":"string","format":"uri","description":"Shareable URL of the child KYB sub-session. `null` when no sub-session exists."},{"type":"null","format":"uri","description":"Shareable URL of the child KYB sub-session. `null` when no sub-session exists."}]},"verification_workflow_type":{"oneOf":[{"type":"string","description":"Base workflow type of the child session's workflow (KYC session preferred, falling back to the KYB sub-session). `null` for graph-based workflows or when no child session exists."},{"type":"null","description":"Base workflow type of the child session's workflow (KYC session preferred, falling back to the KYB sub-session). `null` for graph-based workflows or when no child session exists."}]},"verification_workflow_id":{"oneOf":[{"type":"string","format":"uuid","description":"Workflow id used by the child session. `null` when no child session exists."},{"type":"null","format":"uuid","description":"Workflow id used by the child session. `null` when no child session exists."}]},"verification_workflow_label":{"oneOf":[{"type":"string","description":"Human-readable label of the child session's workflow. `null` when unset."},{"type":"null","description":"Human-readable label of the child session's workflow. `null` when unset."}]},"verification_workflow_features":{"oneOf":[{"type":"array","description":"Per-feature progress of the child verification session, e.g. `[{\"feature\": \"ID_VERIFICATION\", \"status\": \"Approved\"}]`. `null` when the child session has no resolvable feature list.","items":{"type":"object","properties":{"feature":{"type":"string","description":"Feature display name (e.g. `ID_VERIFICATION`, `LIVENESS`, `AML`)."},"status":{"type":"string","enum":["Not Finished","Approved","Declined","In Review","Resub Requested"],"description":"Feature-level status inside the child session."}}}},{"type":"null","description":"Per-feature progress of the child verification session, e.g. `[{\"feature\": \"ID_VERIFICATION\", \"status\": \"Approved\"}]`. `null` when the child session has no resolvable feature list.","items":{"type":"object","properties":{"feature":{"type":"string","description":"Feature display name (e.g. `ID_VERIFICATION`, `LIVENESS`, `AML`)."},"status":{"type":"string","enum":["Not Finished","Approved","Declined","In Review","Resub Requested"],"description":"Feature-level status inside the child session."}}}}]},"didit_internal_id":{"oneOf":[{"type":"string","description":"Stable internal identifier of the verified individual behind the child session. `null` when not resolved."},{"type":"null","description":"Stable internal identifier of the verified individual behind the child session. `null` when not resolved."}]}}}}}},"ubo_kyc_summary":{"oneOf":[{"type":"object","description":"Aggregate UBO KYC progress, or null when no UBOs have linked KYC sessions.","properties":{"total":{"type":"integer"},"approved":{"type":"integer"},"flagged":{"type":"integer","description":"UBOs whose KYC is Declined or In Review."},"pending":{"type":"integer"}}},{"type":"null","description":"Aggregate UBO KYC progress, or null when no UBOs have linked KYC sessions.","properties":{"total":{"type":"integer"},"approved":{"type":"integer"},"flagged":{"type":"integer","description":"UBOs whose KYC is Declined or In Review."},"pending":{"type":"integer"}}}]},"listed_company_declaration":{"oneOf":[{"type":"object","description":"The company's own declaration that it is listed on a stock exchange, or owned by a listed company, made on the Key People screen instead of naming a beneficial owner. Present in every `key_people_checks` entry unless the workflow's Returned data settings leave it out, and `null` unless the company made the declaration, which it can only do where the workflow allows it (`kyb_key_people_allow_listed_company_declaration`). Didit does not check the declaration against a stock exchange: the workflow's `kyb_key_people_listed_company_action` decides the Key People outcome (Review by default) and the `KYB_LISTED_COMPANY_DECLARED` warning is added. The company must still name at least one person who manages or represents it (director, non-executive director, chairman, representative, authorized signatory or company officer).","required":["type","stock_exchange","isin","listed_parent_company_name"],"properties":{"type":{"type":"string","enum":["listed_company","subsidiary_of_listed_company"],"description":"`listed_company`: the company itself is listed on a stock exchange. `subsidiary_of_listed_company`: the company is owned by a listed company."},"stock_exchange":{"oneOf":[{"type":"string","description":"Name of the stock exchange, as typed by the company (for example `London Stock Exchange`). `null` when left empty."},{"type":"null","description":"Name of the stock exchange, as typed by the company (for example `London Stock Exchange`). `null` when left empty."}]},"isin":{"oneOf":[{"type":"string","description":"ISIN of the listed security: 12 characters, upper-case, no spaces, with a valid check digit (for example `GBEXAMPLE002`). `null` when left empty."},{"type":"null","description":"ISIN of the listed security: 12 characters, upper-case, no spaces, with a valid check digit (for example `GBEXAMPLE002`). `null` when left empty."}]},"listed_parent_company_name":{"oneOf":[{"type":"string","description":"Name of the listed parent company. Only set when `type` is `subsidiary_of_listed_company`; `null` otherwise."},{"type":"null","description":"Name of the listed parent company. Only set when `type` is `subsidiary_of_listed_company`; `null` otherwise."}]}}},{"type":"null","description":"The company's own declaration that it is listed on a stock exchange, or owned by a listed company, made on the Key People screen instead of naming a beneficial owner. Present in every `key_people_checks` entry unless the workflow's Returned data settings leave it out, and `null` unless the company made the declaration, which it can only do where the workflow allows it (`kyb_key_people_allow_listed_company_declaration`). Didit does not check the declaration against a stock exchange: the workflow's `kyb_key_people_listed_company_action` decides the Key People outcome (Review by default) and the `KYB_LISTED_COMPANY_DECLARED` warning is added. The company must still name at least one person who manages or represents it (director, non-executive director, chairman, representative, authorized signatory or company officer).","required":["type","stock_exchange","isin","listed_parent_company_name"],"properties":{"type":{"type":"string","enum":["listed_company","subsidiary_of_listed_company"],"description":"`listed_company`: the company itself is listed on a stock exchange. `subsidiary_of_listed_company`: the company is owned by a listed company."},"stock_exchange":{"oneOf":[{"type":"string","description":"Name of the stock exchange, as typed by the company (for example `London Stock Exchange`). `null` when left empty."},{"type":"null","description":"Name of the stock exchange, as typed by the company (for example `London Stock Exchange`). `null` when left empty."}]},"isin":{"oneOf":[{"type":"string","description":"ISIN of the listed security: 12 characters, upper-case, no spaces, with a valid check digit (for example `GBEXAMPLE002`). `null` when left empty."},{"type":"null","description":"ISIN of the listed security: 12 characters, upper-case, no spaces, with a valid check digit (for example `GBEXAMPLE002`). `null` when left empty."}]},"listed_parent_company_name":{"oneOf":[{"type":"string","description":"Name of the listed parent company. Only set when `type` is `subsidiary_of_listed_company`; `null` otherwise."},{"type":"null","description":"Name of the listed parent company. Only set when `type` is `subsidiary_of_listed_company`; `null` otherwise."}]}}}]},"warnings":{"type":"array","items":{"type":"object"}}}},"uniqueKey":"key_people_checks.oneOf.1","typeLabel":"null"}],"uniqueKey":"key_people_checks","typeLabel":"object[] | null"},"document_verifications":{"oneOf":[{"type":"array","description":"Document verification checks grouped by workflow node. Present only when `session_kind = business`.","items":{"type":"object","description":"Documents grouped by workflow node. Present only when session_kind = business.","properties":{"status":{"type":"string","uniqueKey":"document_verifications.oneOf.0.items.[INDEX].status","typeLabel":"string"},"node_id":{"oneOf":[{"type":"string","uniqueKey":"document_verifications.oneOf.0.items.[INDEX].node_id.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"document_verifications.oneOf.0.items.[INDEX].node_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"document_verifications.oneOf.0.items.[INDEX].node_id","typeLabel":"string | null"},"items":{"type":"array","items":{"type":"object","properties":{"uuid":{"type":"string","format":"uuid","uniqueKey":"document_verifications.oneOf.0.items.[INDEX].\\items.items.[INDEX].uuid","typeLabel":"string\u003cuuid>"},"document_type":{"oneOf":[{"type":"string","enum":["LEGAL_PRESENCE","COMPANY_DETAILS","OWNERSHIP_STRUCTURE","REPRESENTATIVES_AUTHORIZATION","OTHER"],"description":"High-level KYB document group the file was classified into. `null` while unclassified.","uniqueKey":"document_verifications.oneOf.0.items.[INDEX].\\items.items.[INDEX].document_type.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["LEGAL_PRESENCE","COMPANY_DETAILS","OWNERSHIP_STRUCTURE","REPRESENTATIVES_AUTHORIZATION","OTHER"],"description":"High-level KYB document group the file was classified into. `null` while unclassified.","uniqueKey":"document_verifications.oneOf.0.items.[INDEX].\\items.items.[INDEX].document_type.oneOf.1","typeLabel":"null"}],"uniqueKey":"document_verifications.oneOf.0.items.[INDEX].\\items.items.[INDEX].document_type","typeLabel":"enum\u003cstring> | null"},"document_subtype":{"oneOf":[{"type":"string","description":"Specific OCR-detected subtype (e.g. `CERTIFICATE_OF_INCORPORATION`, `SHAREHOLDER_REGISTRY`); `UNKNOWN` when the OCR could not confidently classify the document.","uniqueKey":"document_verifications.oneOf.0.items.[INDEX].\\items.items.[INDEX].document_subtype.oneOf.0","typeLabel":"string"},{"type":"null","description":"Specific OCR-detected subtype (e.g. `CERTIFICATE_OF_INCORPORATION`, `SHAREHOLDER_REGISTRY`); `UNKNOWN` when the OCR could not confidently classify the document.","uniqueKey":"document_verifications.oneOf.0.items.[INDEX].\\items.items.[INDEX].document_subtype.oneOf.1","typeLabel":"null"}],"uniqueKey":"document_verifications.oneOf.0.items.[INDEX].\\items.items.[INDEX].document_subtype","typeLabel":"string | null"},"document_group":{"oneOf":[{"type":"string","enum":["LEGAL_PRESENCE","COMPANY_DETAILS","OWNERSHIP_STRUCTURE","REPRESENTATIVES_AUTHORIZATION","OTHER"],"description":"Alias of `document_type` — the group name used by `groups` and `required_groups`.","uniqueKey":"document_verifications.oneOf.0.items.[INDEX].\\items.items.[INDEX].document_group.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["LEGAL_PRESENCE","COMPANY_DETAILS","OWNERSHIP_STRUCTURE","REPRESENTATIVES_AUTHORIZATION","OTHER"],"description":"Alias of `document_type` — the group name used by `groups` and `required_groups`.","uniqueKey":"document_verifications.oneOf.0.items.[INDEX].\\items.items.[INDEX].document_group.oneOf.1","typeLabel":"null"}],"uniqueKey":"document_verifications.oneOf.0.items.[INDEX].\\items.items.[INDEX].document_group","typeLabel":"enum\u003cstring> | null"},"file_url":{"oneOf":[{"type":"string","format":"uri","description":"Short-lived presigned link to the uploaded file. `null` for analyst-created document request placeholders (`is_requested = true`) that have not been fulfilled yet.","uniqueKey":"document_verifications.oneOf.0.items.[INDEX].\\items.items.[INDEX].file_url.oneOf.0","typeLabel":"string\u003curi>"},{"type":"null","format":"uri","description":"Short-lived presigned link to the uploaded file. `null` for analyst-created document request placeholders (`is_requested = true`) that have not been fulfilled yet.","uniqueKey":"document_verifications.oneOf.0.items.[INDEX].\\items.items.[INDEX].file_url.oneOf.1","typeLabel":"null"}],"uniqueKey":"document_verifications.oneOf.0.items.[INDEX].\\items.items.[INDEX].file_url","typeLabel":"string\u003curi> | null"},"original_filename":{"oneOf":[{"type":"string","description":"Filename as uploaded by the user or analyst.","uniqueKey":"document_verifications.oneOf.0.items.[INDEX].\\items.items.[INDEX].original_filename.oneOf.0","typeLabel":"string"},{"type":"null","description":"Filename as uploaded by the user or analyst.","uniqueKey":"document_verifications.oneOf.0.items.[INDEX].\\items.items.[INDEX].original_filename.oneOf.1","typeLabel":"null"}],"uniqueKey":"document_verifications.oneOf.0.items.[INDEX].\\items.items.[INDEX].original_filename","typeLabel":"string | null"},"file_size":{"oneOf":[{"type":"integer","description":"File size in bytes.","uniqueKey":"document_verifications.oneOf.0.items.[INDEX].\\items.items.[INDEX].file_size.oneOf.0","typeLabel":"integer"},{"type":"null","description":"File size in bytes.","uniqueKey":"document_verifications.oneOf.0.items.[INDEX].\\items.items.[INDEX].file_size.oneOf.1","typeLabel":"null"}],"uniqueKey":"document_verifications.oneOf.0.items.[INDEX].\\items.items.[INDEX].file_size","typeLabel":"integer | null"},"status":{"type":"string","enum":["Not Finished","Approved","Declined","In Review","Resub Requested"],"description":"Per-document verification status.","uniqueKey":"document_verifications.oneOf.0.items.[INDEX].\\items.items.[INDEX].status","typeLabel":"enum\u003cstring>"},"created_at":{"type":"string","format":"date-time","uniqueKey":"document_verifications.oneOf.0.items.[INDEX].\\items.items.[INDEX].created_at","typeLabel":"string\u003cdate-time>"},"cross_check_result":{"oneOf":[{"type":"object","description":"Cross-reference of the OCR-extracted document fields against the registry company profile. An object with `critical`, `non_critical` and `people` sections, each mapping a field name (e.g. `company_name`, `registration_number`, `incorporation_date`, `registered_address`) to a comparison record like `{\"document\": \"...\", \"registry\": \"...\", \"match\": true, \"score\": 0.97}`. `null` when the document had no OCR data or there was no registry company to compare against.","uniqueKey":"document_verifications.oneOf.0.items.[INDEX].\\items.items.[INDEX].cross_check_result.oneOf.0","typeLabel":"object"},{"type":"null","description":"Cross-reference of the OCR-extracted document fields against the registry company profile. An object with `critical`, `non_critical` and `people` sections, each mapping a field name (e.g. `company_name`, `registration_number`, `incorporation_date`, `registered_address`) to a comparison record like `{\"document\": \"...\", \"registry\": \"...\", \"match\": true, \"score\": 0.97}`. `null` when the document had no OCR data or there was no registry company to compare against.","uniqueKey":"document_verifications.oneOf.0.items.[INDEX].\\items.items.[INDEX].cross_check_result.oneOf.1","typeLabel":"null"}],"uniqueKey":"document_verifications.oneOf.0.items.[INDEX].\\items.items.[INDEX].cross_check_result","typeLabel":"object | null"},"document_metadata":{"oneOf":[{"type":"object","description":"Metadata extracted from the uploaded corporate document. When metadata extraction succeeded, all 16 keys are always present (individual values are `null` when not applicable to the file type); the whole object is `null` when nothing could be extracted. For PDFs, `overlay_manipulation` carries forensic overlay-text analysis.","properties":{"file_size":{"oneOf":[{"type":"integer","description":"Size of the document.","uniqueKey":"document_verifications.oneOf.0.items.[INDEX].\\items.items.[INDEX].document_metadata.oneOf.0.file_size.oneOf.0","typeLabel":"integer"},{"type":"null","description":"Size of the document.","uniqueKey":"document_verifications.oneOf.0.items.[INDEX].\\items.items.[INDEX].document_metadata.oneOf.0.file_size.oneOf.1","typeLabel":"null"}],"uniqueKey":"document_verifications.oneOf.0.items.[INDEX].\\items.items.[INDEX].document_metadata.oneOf.0.file_size","typeLabel":"integer | null"},"content_type":{"oneOf":[{"type":"string","description":"Content type of the document.","uniqueKey":"document_verifications.oneOf.0.items.[INDEX].\\items.items.[INDEX].document_metadata.oneOf.0.content_type.oneOf.0","typeLabel":"string"},{"type":"null","description":"Content type of the document.","uniqueKey":"document_verifications.oneOf.0.items.[INDEX].\\items.items.[INDEX].document_metadata.oneOf.0.content_type.oneOf.1","typeLabel":"null"}],"uniqueKey":"document_verifications.oneOf.0.items.[INDEX].\\items.items.[INDEX].document_metadata.oneOf.0.content_type","typeLabel":"string | null"},"creation_date":{"oneOf":[{"type":"string","description":"Date when the document was created.","uniqueKey":"document_verifications.oneOf.0.items.[INDEX].\\items.items.[INDEX].document_metadata.oneOf.0.creation_date.oneOf.0","typeLabel":"string"},{"type":"null","description":"Date when the document was created.","uniqueKey":"document_verifications.oneOf.0.items.[INDEX].\\items.items.[INDEX].document_metadata.oneOf.0.creation_date.oneOf.1","typeLabel":"null"}],"uniqueKey":"document_verifications.oneOf.0.items.[INDEX].\\items.items.[INDEX].document_metadata.oneOf.0.creation_date","typeLabel":"string | null"},"modified_date":{"oneOf":[{"type":"string","description":"Date when the document was modified.","uniqueKey":"document_verifications.oneOf.0.items.[INDEX].\\items.items.[INDEX].document_metadata.oneOf.0.modified_date.oneOf.0","typeLabel":"string"},{"type":"null","description":"Date when the document was modified.","uniqueKey":"document_verifications.oneOf.0.items.[INDEX].\\items.items.[INDEX].document_metadata.oneOf.0.modified_date.oneOf.1","typeLabel":"null"}],"uniqueKey":"document_verifications.oneOf.0.items.[INDEX].\\items.items.[INDEX].document_metadata.oneOf.0.modified_date","typeLabel":"string | null"},"creator":{"oneOf":[{"type":"string","description":"Authoring tool/user recorded in the file metadata (PDF `Creator`).","uniqueKey":"document_verifications.oneOf.0.items.[INDEX].\\items.items.[INDEX].document_metadata.oneOf.0.creator.oneOf.0","typeLabel":"string"},{"type":"null","description":"Authoring tool/user recorded in the file metadata (PDF `Creator`).","uniqueKey":"document_verifications.oneOf.0.items.[INDEX].\\items.items.[INDEX].document_metadata.oneOf.0.creator.oneOf.1","typeLabel":"null"}],"uniqueKey":"document_verifications.oneOf.0.items.[INDEX].\\items.items.[INDEX].document_metadata.oneOf.0.creator","typeLabel":"string | null"},"producer":{"oneOf":[{"type":"string","description":"Software that produced the file (PDF `Producer`).","uniqueKey":"document_verifications.oneOf.0.items.[INDEX].\\items.items.[INDEX].document_metadata.oneOf.0.producer.oneOf.0","typeLabel":"string"},{"type":"null","description":"Software that produced the file (PDF `Producer`).","uniqueKey":"document_verifications.oneOf.0.items.[INDEX].\\items.items.[INDEX].document_metadata.oneOf.0.producer.oneOf.1","typeLabel":"null"}],"uniqueKey":"document_verifications.oneOf.0.items.[INDEX].\\items.items.[INDEX].document_metadata.oneOf.0.producer","typeLabel":"string | null"},"software":{"oneOf":[{"type":"string","description":"Editing software recorded in the file metadata.","uniqueKey":"document_verifications.oneOf.0.items.[INDEX].\\items.items.[INDEX].document_metadata.oneOf.0.software.oneOf.0","typeLabel":"string"},{"type":"null","description":"Editing software recorded in the file metadata.","uniqueKey":"document_verifications.oneOf.0.items.[INDEX].\\items.items.[INDEX].document_metadata.oneOf.0.software.oneOf.1","typeLabel":"null"}],"uniqueKey":"document_verifications.oneOf.0.items.[INDEX].\\items.items.[INDEX].document_metadata.oneOf.0.software","typeLabel":"string | null"},"encryption":{"oneOf":[{"type":"string","description":"Encryption scheme of the file, when encrypted.","uniqueKey":"document_verifications.oneOf.0.items.[INDEX].\\items.items.[INDEX].document_metadata.oneOf.0.encryption.oneOf.0","typeLabel":"string"},{"type":"null","description":"Encryption scheme of the file, when encrypted.","uniqueKey":"document_verifications.oneOf.0.items.[INDEX].\\items.items.[INDEX].document_metadata.oneOf.0.encryption.oneOf.1","typeLabel":"null"}],"uniqueKey":"document_verifications.oneOf.0.items.[INDEX].\\items.items.[INDEX].document_metadata.oneOf.0.encryption","typeLabel":"string | null"},"is_signed":{"oneOf":[{"type":"boolean","description":"Whether the document carries a digital signature.","uniqueKey":"document_verifications.oneOf.0.items.[INDEX].\\items.items.[INDEX].document_metadata.oneOf.0.is_signed.oneOf.0","typeLabel":"boolean"},{"type":"null","description":"Whether the document carries a digital signature.","uniqueKey":"document_verifications.oneOf.0.items.[INDEX].\\items.items.[INDEX].document_metadata.oneOf.0.is_signed.oneOf.1","typeLabel":"null"}],"uniqueKey":"document_verifications.oneOf.0.items.[INDEX].\\items.items.[INDEX].document_metadata.oneOf.0.is_signed","typeLabel":"boolean | null"},"is_tampered":{"oneOf":[{"type":"boolean","description":"Whether the digital signature failed validation (post-signing modification).","uniqueKey":"document_verifications.oneOf.0.items.[INDEX].\\items.items.[INDEX].document_metadata.oneOf.0.is_tampered.oneOf.0","typeLabel":"boolean"},{"type":"null","description":"Whether the digital signature failed validation (post-signing modification).","uniqueKey":"document_verifications.oneOf.0.items.[INDEX].\\items.items.[INDEX].document_metadata.oneOf.0.is_tampered.oneOf.1","typeLabel":"null"}],"uniqueKey":"document_verifications.oneOf.0.items.[INDEX].\\items.items.[INDEX].document_metadata.oneOf.0.is_tampered","typeLabel":"boolean | null"},"signature_info":{"oneOf":[{"type":"object","description":"Details of the digital signature(s), when present.","uniqueKey":"document_verifications.oneOf.0.items.[INDEX].\\items.items.[INDEX].document_metadata.oneOf.0.signature_info.oneOf.0","typeLabel":"object"},{"type":"null","description":"Details of the digital signature(s), when present.","uniqueKey":"document_verifications.oneOf.0.items.[INDEX].\\items.items.[INDEX].document_metadata.oneOf.0.signature_info.oneOf.1","typeLabel":"null"}],"uniqueKey":"document_verifications.oneOf.0.items.[INDEX].\\items.items.[INDEX].document_metadata.oneOf.0.signature_info","typeLabel":"object | null"},"exif_original_date":{"oneOf":[{"type":"string","description":"EXIF original capture date, for image uploads.","uniqueKey":"document_verifications.oneOf.0.items.[INDEX].\\items.items.[INDEX].document_metadata.oneOf.0.exif_original_date.oneOf.0","typeLabel":"string"},{"type":"null","description":"EXIF original capture date, for image uploads.","uniqueKey":"document_verifications.oneOf.0.items.[INDEX].\\items.items.[INDEX].document_metadata.oneOf.0.exif_original_date.oneOf.1","typeLabel":"null"}],"uniqueKey":"document_verifications.oneOf.0.items.[INDEX].\\items.items.[INDEX].document_metadata.oneOf.0.exif_original_date","typeLabel":"string | null"},"exif_digitized_date":{"oneOf":[{"type":"string","description":"EXIF digitization date, for image uploads.","uniqueKey":"document_verifications.oneOf.0.items.[INDEX].\\items.items.[INDEX].document_metadata.oneOf.0.exif_digitized_date.oneOf.0","typeLabel":"string"},{"type":"null","description":"EXIF digitization date, for image uploads.","uniqueKey":"document_verifications.oneOf.0.items.[INDEX].\\items.items.[INDEX].document_metadata.oneOf.0.exif_digitized_date.oneOf.1","typeLabel":"null"}],"uniqueKey":"document_verifications.oneOf.0.items.[INDEX].\\items.items.[INDEX].document_metadata.oneOf.0.exif_digitized_date","typeLabel":"string | null"},"processed_by_known_editor":{"oneOf":[{"type":"boolean","description":"Whether metadata indicates the file passed through a known image/PDF editor.","uniqueKey":"document_verifications.oneOf.0.items.[INDEX].\\items.items.[INDEX].document_metadata.oneOf.0.processed_by_known_editor.oneOf.0","typeLabel":"boolean"},{"type":"null","description":"Whether metadata indicates the file passed through a known image/PDF editor.","uniqueKey":"document_verifications.oneOf.0.items.[INDEX].\\items.items.[INDEX].document_metadata.oneOf.0.processed_by_known_editor.oneOf.1","typeLabel":"null"}],"uniqueKey":"document_verifications.oneOf.0.items.[INDEX].\\items.items.[INDEX].document_metadata.oneOf.0.processed_by_known_editor","typeLabel":"boolean | null"},"has_different_creation_mod_date":{"oneOf":[{"type":"boolean","description":"Whether creation and modification dates differ — a possible (but not conclusive) editing signal.","uniqueKey":"document_verifications.oneOf.0.items.[INDEX].\\items.items.[INDEX].document_metadata.oneOf.0.has_different_creation_mod_date.oneOf.0","typeLabel":"boolean"},{"type":"null","description":"Whether creation and modification dates differ — a possible (but not conclusive) editing signal.","uniqueKey":"document_verifications.oneOf.0.items.[INDEX].\\items.items.[INDEX].document_metadata.oneOf.0.has_different_creation_mod_date.oneOf.1","typeLabel":"null"}],"uniqueKey":"document_verifications.oneOf.0.items.[INDEX].\\items.items.[INDEX].document_metadata.oneOf.0.has_different_creation_mod_date","typeLabel":"boolean | null"},"overlay_manipulation":{"oneOf":[{"type":"object","description":"PDF forensic analysis for suspected overlay-text manipulation. Null when no overlay manipulation evidence was found or the document was not a PDF.","properties":{"detected":{"type":"boolean","description":"Whether overlay-text manipulation evidence was detected.","uniqueKey":"document_verifications.oneOf.0.items.[INDEX].\\items.items.[INDEX].document_metadata.oneOf.0.overlay_manipulation.oneOf.0.detected","typeLabel":"boolean"},"analyzed":{"type":"boolean","description":"Whether the PDF could be analyzed.","uniqueKey":"document_verifications.oneOf.0.items.[INDEX].\\items.items.[INDEX].document_metadata.oneOf.0.overlay_manipulation.oneOf.0.analyzed","typeLabel":"boolean"},"analysis_incomplete":{"type":"boolean","description":"Present and true only when the file could not be checked in full. What was checked keeps its findings where it can, and the document raises the unproven text replacement warning.","uniqueKey":"document_verifications.oneOf.0.items.[INDEX].\\items.items.[INDEX].document_metadata.oneOf.0.overlay_manipulation.oneOf.0.analysis_incomplete","typeLabel":"boolean"},"signals":{"type":"array","items":{"type":"string","uniqueKey":"document_verifications.oneOf.0.items.[INDEX].\\items.items.[INDEX].document_metadata.oneOf.0.overlay_manipulation.oneOf.0.signals.items.[INDEX]","typeLabel":"string"},"description":"Forensic signals that fired, such as duplicate_font_subset or glyph_fragmentation.","uniqueKey":"document_verifications.oneOf.0.items.[INDEX].\\items.items.[INDEX].document_metadata.oneOf.0.overlay_manipulation.oneOf.0.signals","typeLabel":"string[]"},"manipulated_regions":{"type":"array","description":"Suspected manipulated areas in PDF page coordinates.","items":{"type":"object","properties":{"page":{"type":"integer","uniqueKey":"document_verifications.oneOf.0.items.[INDEX].\\items.items.[INDEX].document_metadata.oneOf.0.overlay_manipulation.oneOf.0.manipulated_regions.items.[INDEX].page","typeLabel":"integer"},"x":{"type":"number","uniqueKey":"document_verifications.oneOf.0.items.[INDEX].\\items.items.[INDEX].document_metadata.oneOf.0.overlay_manipulation.oneOf.0.manipulated_regions.items.[INDEX].x","typeLabel":"number"},"y":{"type":"number","uniqueKey":"document_verifications.oneOf.0.items.[INDEX].\\items.items.[INDEX].document_metadata.oneOf.0.overlay_manipulation.oneOf.0.manipulated_regions.items.[INDEX].y","typeLabel":"number"},"width":{"type":"number","uniqueKey":"document_verifications.oneOf.0.items.[INDEX].\\items.items.[INDEX].document_metadata.oneOf.0.overlay_manipulation.oneOf.0.manipulated_regions.items.[INDEX].width","typeLabel":"number"},"height":{"type":"number","uniqueKey":"document_verifications.oneOf.0.items.[INDEX].\\items.items.[INDEX].document_metadata.oneOf.0.overlay_manipulation.oneOf.0.manipulated_regions.items.[INDEX].height","typeLabel":"number"},"page_width":{"type":"number","uniqueKey":"document_verifications.oneOf.0.items.[INDEX].\\items.items.[INDEX].document_metadata.oneOf.0.overlay_manipulation.oneOf.0.manipulated_regions.items.[INDEX].page_width","typeLabel":"number"},"page_height":{"type":"number","uniqueKey":"document_verifications.oneOf.0.items.[INDEX].\\items.items.[INDEX].document_metadata.oneOf.0.overlay_manipulation.oneOf.0.manipulated_regions.items.[INDEX].page_height","typeLabel":"number"}},"uniqueKey":"document_verifications.oneOf.0.items.[INDEX].\\items.items.[INDEX].document_metadata.oneOf.0.overlay_manipulation.oneOf.0.manipulated_regions.items.[INDEX]","typeLabel":"object"},"uniqueKey":"document_verifications.oneOf.0.items.[INDEX].\\items.items.[INDEX].document_metadata.oneOf.0.overlay_manipulation.oneOf.0.manipulated_regions","typeLabel":"object[]"}},"uniqueKey":"document_verifications.oneOf.0.items.[INDEX].\\items.items.[INDEX].document_metadata.oneOf.0.overlay_manipulation.oneOf.0","typeLabel":"object"},{"type":"null","description":"PDF forensic analysis for suspected overlay-text manipulation. Null when no overlay manipulation evidence was found or the document was not a PDF.","properties":{"detected":{"type":"boolean","description":"Whether overlay-text manipulation evidence was detected."},"analyzed":{"type":"boolean","description":"Whether the PDF could be analyzed."},"analysis_incomplete":{"type":"boolean","description":"Present and true only when the file could not be checked in full. What was checked keeps its findings where it can, and the document raises the unproven text replacement warning."},"signals":{"type":"array","items":{"type":"string"},"description":"Forensic signals that fired, such as duplicate_font_subset or glyph_fragmentation."},"manipulated_regions":{"type":"array","description":"Suspected manipulated areas in PDF page coordinates.","items":{"type":"object","properties":{"page":{"type":"integer"},"x":{"type":"number"},"y":{"type":"number"},"width":{"type":"number"},"height":{"type":"number"},"page_width":{"type":"number"},"page_height":{"type":"number"}}}}},"uniqueKey":"document_verifications.oneOf.0.items.[INDEX].\\items.items.[INDEX].document_metadata.oneOf.0.overlay_manipulation.oneOf.1","typeLabel":"null"}],"uniqueKey":"document_verifications.oneOf.0.items.[INDEX].\\items.items.[INDEX].document_metadata.oneOf.0.overlay_manipulation","typeLabel":"object | null"}},"uniqueKey":"document_verifications.oneOf.0.items.[INDEX].\\items.items.[INDEX].document_metadata.oneOf.0","typeLabel":"object"},{"type":"null","description":"Metadata extracted from the uploaded corporate document. When metadata extraction succeeded, all 16 keys are always present (individual values are `null` when not applicable to the file type); the whole object is `null` when nothing could be extracted. For PDFs, `overlay_manipulation` carries forensic overlay-text analysis.","properties":{"file_size":{"oneOf":[{"type":"integer","description":"Size of the document."},{"type":"null","description":"Size of the document."}]},"content_type":{"oneOf":[{"type":"string","description":"Content type of the document."},{"type":"null","description":"Content type of the document."}]},"creation_date":{"oneOf":[{"type":"string","description":"Date when the document was created."},{"type":"null","description":"Date when the document was created."}]},"modified_date":{"oneOf":[{"type":"string","description":"Date when the document was modified."},{"type":"null","description":"Date when the document was modified."}]},"creator":{"oneOf":[{"type":"string","description":"Authoring tool/user recorded in the file metadata (PDF `Creator`)."},{"type":"null","description":"Authoring tool/user recorded in the file metadata (PDF `Creator`)."}]},"producer":{"oneOf":[{"type":"string","description":"Software that produced the file (PDF `Producer`)."},{"type":"null","description":"Software that produced the file (PDF `Producer`)."}]},"software":{"oneOf":[{"type":"string","description":"Editing software recorded in the file metadata."},{"type":"null","description":"Editing software recorded in the file metadata."}]},"encryption":{"oneOf":[{"type":"string","description":"Encryption scheme of the file, when encrypted."},{"type":"null","description":"Encryption scheme of the file, when encrypted."}]},"is_signed":{"oneOf":[{"type":"boolean","description":"Whether the document carries a digital signature."},{"type":"null","description":"Whether the document carries a digital signature."}]},"is_tampered":{"oneOf":[{"type":"boolean","description":"Whether the digital signature failed validation (post-signing modification)."},{"type":"null","description":"Whether the digital signature failed validation (post-signing modification)."}]},"signature_info":{"oneOf":[{"type":"object","description":"Details of the digital signature(s), when present."},{"type":"null","description":"Details of the digital signature(s), when present."}]},"exif_original_date":{"oneOf":[{"type":"string","description":"EXIF original capture date, for image uploads."},{"type":"null","description":"EXIF original capture date, for image uploads."}]},"exif_digitized_date":{"oneOf":[{"type":"string","description":"EXIF digitization date, for image uploads."},{"type":"null","description":"EXIF digitization date, for image uploads."}]},"processed_by_known_editor":{"oneOf":[{"type":"boolean","description":"Whether metadata indicates the file passed through a known image/PDF editor."},{"type":"null","description":"Whether metadata indicates the file passed through a known image/PDF editor."}]},"has_different_creation_mod_date":{"oneOf":[{"type":"boolean","description":"Whether creation and modification dates differ — a possible (but not conclusive) editing signal."},{"type":"null","description":"Whether creation and modification dates differ — a possible (but not conclusive) editing signal."}]},"overlay_manipulation":{"oneOf":[{"type":"object","description":"PDF forensic analysis for suspected overlay-text manipulation. Null when no overlay manipulation evidence was found or the document was not a PDF.","properties":{"detected":{"type":"boolean","description":"Whether overlay-text manipulation evidence was detected."},"analyzed":{"type":"boolean","description":"Whether the PDF could be analyzed."},"analysis_incomplete":{"type":"boolean","description":"Present and true only when the file could not be checked in full. What was checked keeps its findings where it can, and the document raises the unproven text replacement warning."},"signals":{"type":"array","items":{"type":"string"},"description":"Forensic signals that fired, such as duplicate_font_subset or glyph_fragmentation."},"manipulated_regions":{"type":"array","description":"Suspected manipulated areas in PDF page coordinates.","items":{"type":"object","properties":{"page":{"type":"integer"},"x":{"type":"number"},"y":{"type":"number"},"width":{"type":"number"},"height":{"type":"number"},"page_width":{"type":"number"},"page_height":{"type":"number"}}}}}},{"type":"null","description":"PDF forensic analysis for suspected overlay-text manipulation. Null when no overlay manipulation evidence was found or the document was not a PDF.","properties":{"detected":{"type":"boolean","description":"Whether overlay-text manipulation evidence was detected."},"analyzed":{"type":"boolean","description":"Whether the PDF could be analyzed."},"analysis_incomplete":{"type":"boolean","description":"Present and true only when the file could not be checked in full. What was checked keeps its findings where it can, and the document raises the unproven text replacement warning."},"signals":{"type":"array","items":{"type":"string"},"description":"Forensic signals that fired, such as duplicate_font_subset or glyph_fragmentation."},"manipulated_regions":{"type":"array","description":"Suspected manipulated areas in PDF page coordinates.","items":{"type":"object","properties":{"page":{"type":"integer"},"x":{"type":"number"},"y":{"type":"number"},"width":{"type":"number"},"height":{"type":"number"},"page_width":{"type":"number"},"page_height":{"type":"number"}}}}}}]}},"uniqueKey":"document_verifications.oneOf.0.items.[INDEX].\\items.items.[INDEX].document_metadata.oneOf.1","typeLabel":"null"}],"uniqueKey":"document_verifications.oneOf.0.items.[INDEX].\\items.items.[INDEX].document_metadata","typeLabel":"object | null"},"description":{"oneOf":[{"type":"string","description":"Analyst-provided label or reason for a document request. `null` for regular uploads.","uniqueKey":"document_verifications.oneOf.0.items.[INDEX].\\items.items.[INDEX].description.oneOf.0","typeLabel":"string"},{"type":"null","description":"Analyst-provided label or reason for a document request. `null` for regular uploads.","uniqueKey":"document_verifications.oneOf.0.items.[INDEX].\\items.items.[INDEX].description.oneOf.1","typeLabel":"null"}],"uniqueKey":"document_verifications.oneOf.0.items.[INDEX].\\items.items.[INDEX].description","typeLabel":"string | null"},"is_requested":{"type":"boolean","description":"True for analyst-created document request placeholders awaiting an upload.","uniqueKey":"document_verifications.oneOf.0.items.[INDEX].\\items.items.[INDEX].is_requested","typeLabel":"boolean"},"ocr_data":{"oneOf":[{"type":"object","uniqueKey":"document_verifications.oneOf.0.items.[INDEX].\\items.items.[INDEX].ocr_data.oneOf.0","typeLabel":"object"},{"type":"null","uniqueKey":"document_verifications.oneOf.0.items.[INDEX].\\items.items.[INDEX].ocr_data.oneOf.1","typeLabel":"null"}],"uniqueKey":"document_verifications.oneOf.0.items.[INDEX].\\items.items.[INDEX].ocr_data","typeLabel":"object | null"},"is_console_upload":{"type":"boolean","description":"True for documents uploaded from the console rather than the end-user flow. Console uploads never change the feature-level aggregate status.","uniqueKey":"document_verifications.oneOf.0.items.[INDEX].\\items.items.[INDEX].is_console_upload","typeLabel":"boolean"},"is_confirmed":{"type":"boolean","description":"Console uploads start `false` and flip `true` once the admin confirms them; end-user uploads are always `true`.","uniqueKey":"document_verifications.oneOf.0.items.[INDEX].\\items.items.[INDEX].is_confirmed","typeLabel":"boolean"}},"uniqueKey":"document_verifications.oneOf.0.items.[INDEX].\\items.items.[INDEX]","typeLabel":"object"},"uniqueKey":"document_verifications.oneOf.0.items.[INDEX].\\items","typeLabel":"object[]"},"groups":{"type":"object","description":"Per-group progress counters keyed by group name (e.g. legal_presence, ownership_structure).","additionalProperties":{"type":"object","properties":{"total":{"type":"integer","uniqueKey":"document_verifications.oneOf.0.items.[INDEX].groups.additionalProperties.total","typeLabel":"integer"},"approved":{"type":"integer","uniqueKey":"document_verifications.oneOf.0.items.[INDEX].groups.additionalProperties.approved","typeLabel":"integer"},"pending":{"type":"integer","uniqueKey":"document_verifications.oneOf.0.items.[INDEX].groups.additionalProperties.pending","typeLabel":"integer"},"declined":{"type":"integer","uniqueKey":"document_verifications.oneOf.0.items.[INDEX].groups.additionalProperties.declined","typeLabel":"integer"},"in_review":{"type":"integer","uniqueKey":"document_verifications.oneOf.0.items.[INDEX].groups.additionalProperties.in_review","typeLabel":"integer"},"other":{"type":"integer","uniqueKey":"document_verifications.oneOf.0.items.[INDEX].groups.additionalProperties.other","typeLabel":"integer"},"missing":{"type":"integer","description":"Requested placeholders with no file uploaded yet.","uniqueKey":"document_verifications.oneOf.0.items.[INDEX].groups.additionalProperties.missing","typeLabel":"integer"}},"uniqueKey":"document_verifications.oneOf.0.items.[INDEX].groups.additionalProperties","typeLabel":"object"},"uniqueKey":"document_verifications.oneOf.0.items.[INDEX].groups","typeLabel":"object"},"required_groups":{"type":"array","items":{"type":"string","uniqueKey":"document_verifications.oneOf.0.items.[INDEX].required_groups.items.[INDEX]","typeLabel":"string"},"uniqueKey":"document_verifications.oneOf.0.items.[INDEX].required_groups","typeLabel":"string[]"},"warnings":{"type":"array","items":{"type":"object","uniqueKey":"document_verifications.oneOf.0.items.[INDEX].warnings.items.[INDEX]","typeLabel":"object"},"uniqueKey":"document_verifications.oneOf.0.items.[INDEX].warnings","typeLabel":"object[]"}},"uniqueKey":"document_verifications.oneOf.0.items.[INDEX]","typeLabel":"object"},"uniqueKey":"document_verifications.oneOf.0","typeLabel":"object[]"},{"type":"null","description":"Document verification checks grouped by workflow node. Present only when `session_kind = business`.","items":{"type":"object","description":"Documents grouped by workflow node. Present only when session_kind = business.","properties":{"status":{"type":"string"},"node_id":{"oneOf":[{"type":"string"},{"type":"null"}]},"items":{"type":"array","items":{"type":"object","properties":{"uuid":{"type":"string","format":"uuid"},"document_type":{"oneOf":[{"type":"string","enum":["LEGAL_PRESENCE","COMPANY_DETAILS","OWNERSHIP_STRUCTURE","REPRESENTATIVES_AUTHORIZATION","OTHER"],"description":"High-level KYB document group the file was classified into. `null` while unclassified."},{"type":"null","enum":["LEGAL_PRESENCE","COMPANY_DETAILS","OWNERSHIP_STRUCTURE","REPRESENTATIVES_AUTHORIZATION","OTHER"],"description":"High-level KYB document group the file was classified into. `null` while unclassified."}]},"document_subtype":{"oneOf":[{"type":"string","description":"Specific OCR-detected subtype (e.g. `CERTIFICATE_OF_INCORPORATION`, `SHAREHOLDER_REGISTRY`); `UNKNOWN` when the OCR could not confidently classify the document."},{"type":"null","description":"Specific OCR-detected subtype (e.g. `CERTIFICATE_OF_INCORPORATION`, `SHAREHOLDER_REGISTRY`); `UNKNOWN` when the OCR could not confidently classify the document."}]},"document_group":{"oneOf":[{"type":"string","enum":["LEGAL_PRESENCE","COMPANY_DETAILS","OWNERSHIP_STRUCTURE","REPRESENTATIVES_AUTHORIZATION","OTHER"],"description":"Alias of `document_type` — the group name used by `groups` and `required_groups`."},{"type":"null","enum":["LEGAL_PRESENCE","COMPANY_DETAILS","OWNERSHIP_STRUCTURE","REPRESENTATIVES_AUTHORIZATION","OTHER"],"description":"Alias of `document_type` — the group name used by `groups` and `required_groups`."}]},"file_url":{"oneOf":[{"type":"string","format":"uri","description":"Short-lived presigned link to the uploaded file. `null` for analyst-created document request placeholders (`is_requested = true`) that have not been fulfilled yet."},{"type":"null","format":"uri","description":"Short-lived presigned link to the uploaded file. `null` for analyst-created document request placeholders (`is_requested = true`) that have not been fulfilled yet."}]},"original_filename":{"oneOf":[{"type":"string","description":"Filename as uploaded by the user or analyst."},{"type":"null","description":"Filename as uploaded by the user or analyst."}]},"file_size":{"oneOf":[{"type":"integer","description":"File size in bytes."},{"type":"null","description":"File size in bytes."}]},"status":{"type":"string","enum":["Not Finished","Approved","Declined","In Review","Resub Requested"],"description":"Per-document verification status."},"created_at":{"type":"string","format":"date-time"},"cross_check_result":{"oneOf":[{"type":"object","description":"Cross-reference of the OCR-extracted document fields against the registry company profile. An object with `critical`, `non_critical` and `people` sections, each mapping a field name (e.g. `company_name`, `registration_number`, `incorporation_date`, `registered_address`) to a comparison record like `{\"document\": \"...\", \"registry\": \"...\", \"match\": true, \"score\": 0.97}`. `null` when the document had no OCR data or there was no registry company to compare against."},{"type":"null","description":"Cross-reference of the OCR-extracted document fields against the registry company profile. An object with `critical`, `non_critical` and `people` sections, each mapping a field name (e.g. `company_name`, `registration_number`, `incorporation_date`, `registered_address`) to a comparison record like `{\"document\": \"...\", \"registry\": \"...\", \"match\": true, \"score\": 0.97}`. `null` when the document had no OCR data or there was no registry company to compare against."}]},"document_metadata":{"oneOf":[{"type":"object","description":"Metadata extracted from the uploaded corporate document. When metadata extraction succeeded, all 16 keys are always present (individual values are `null` when not applicable to the file type); the whole object is `null` when nothing could be extracted. For PDFs, `overlay_manipulation` carries forensic overlay-text analysis.","properties":{"file_size":{"oneOf":[{"type":"integer","description":"Size of the document."},{"type":"null","description":"Size of the document."}]},"content_type":{"oneOf":[{"type":"string","description":"Content type of the document."},{"type":"null","description":"Content type of the document."}]},"creation_date":{"oneOf":[{"type":"string","description":"Date when the document was created."},{"type":"null","description":"Date when the document was created."}]},"modified_date":{"oneOf":[{"type":"string","description":"Date when the document was modified."},{"type":"null","description":"Date when the document was modified."}]},"creator":{"oneOf":[{"type":"string","description":"Authoring tool/user recorded in the file metadata (PDF `Creator`)."},{"type":"null","description":"Authoring tool/user recorded in the file metadata (PDF `Creator`)."}]},"producer":{"oneOf":[{"type":"string","description":"Software that produced the file (PDF `Producer`)."},{"type":"null","description":"Software that produced the file (PDF `Producer`)."}]},"software":{"oneOf":[{"type":"string","description":"Editing software recorded in the file metadata."},{"type":"null","description":"Editing software recorded in the file metadata."}]},"encryption":{"oneOf":[{"type":"string","description":"Encryption scheme of the file, when encrypted."},{"type":"null","description":"Encryption scheme of the file, when encrypted."}]},"is_signed":{"oneOf":[{"type":"boolean","description":"Whether the document carries a digital signature."},{"type":"null","description":"Whether the document carries a digital signature."}]},"is_tampered":{"oneOf":[{"type":"boolean","description":"Whether the digital signature failed validation (post-signing modification)."},{"type":"null","description":"Whether the digital signature failed validation (post-signing modification)."}]},"signature_info":{"oneOf":[{"type":"object","description":"Details of the digital signature(s), when present."},{"type":"null","description":"Details of the digital signature(s), when present."}]},"exif_original_date":{"oneOf":[{"type":"string","description":"EXIF original capture date, for image uploads."},{"type":"null","description":"EXIF original capture date, for image uploads."}]},"exif_digitized_date":{"oneOf":[{"type":"string","description":"EXIF digitization date, for image uploads."},{"type":"null","description":"EXIF digitization date, for image uploads."}]},"processed_by_known_editor":{"oneOf":[{"type":"boolean","description":"Whether metadata indicates the file passed through a known image/PDF editor."},{"type":"null","description":"Whether metadata indicates the file passed through a known image/PDF editor."}]},"has_different_creation_mod_date":{"oneOf":[{"type":"boolean","description":"Whether creation and modification dates differ — a possible (but not conclusive) editing signal."},{"type":"null","description":"Whether creation and modification dates differ — a possible (but not conclusive) editing signal."}]},"overlay_manipulation":{"oneOf":[{"type":"object","description":"PDF forensic analysis for suspected overlay-text manipulation. Null when no overlay manipulation evidence was found or the document was not a PDF.","properties":{"detected":{"type":"boolean","description":"Whether overlay-text manipulation evidence was detected."},"analyzed":{"type":"boolean","description":"Whether the PDF could be analyzed."},"analysis_incomplete":{"type":"boolean","description":"Present and true only when the file could not be checked in full. What was checked keeps its findings where it can, and the document raises the unproven text replacement warning."},"signals":{"type":"array","items":{"type":"string"},"description":"Forensic signals that fired, such as duplicate_font_subset or glyph_fragmentation."},"manipulated_regions":{"type":"array","description":"Suspected manipulated areas in PDF page coordinates.","items":{"type":"object","properties":{"page":{"type":"integer"},"x":{"type":"number"},"y":{"type":"number"},"width":{"type":"number"},"height":{"type":"number"},"page_width":{"type":"number"},"page_height":{"type":"number"}}}}}},{"type":"null","description":"PDF forensic analysis for suspected overlay-text manipulation. Null when no overlay manipulation evidence was found or the document was not a PDF.","properties":{"detected":{"type":"boolean","description":"Whether overlay-text manipulation evidence was detected."},"analyzed":{"type":"boolean","description":"Whether the PDF could be analyzed."},"analysis_incomplete":{"type":"boolean","description":"Present and true only when the file could not be checked in full. What was checked keeps its findings where it can, and the document raises the unproven text replacement warning."},"signals":{"type":"array","items":{"type":"string"},"description":"Forensic signals that fired, such as duplicate_font_subset or glyph_fragmentation."},"manipulated_regions":{"type":"array","description":"Suspected manipulated areas in PDF page coordinates.","items":{"type":"object","properties":{"page":{"type":"integer"},"x":{"type":"number"},"y":{"type":"number"},"width":{"type":"number"},"height":{"type":"number"},"page_width":{"type":"number"},"page_height":{"type":"number"}}}}}}]}}},{"type":"null","description":"Metadata extracted from the uploaded corporate document. When metadata extraction succeeded, all 16 keys are always present (individual values are `null` when not applicable to the file type); the whole object is `null` when nothing could be extracted. For PDFs, `overlay_manipulation` carries forensic overlay-text analysis.","properties":{"file_size":{"oneOf":[{"type":"integer","description":"Size of the document."},{"type":"null","description":"Size of the document."}]},"content_type":{"oneOf":[{"type":"string","description":"Content type of the document."},{"type":"null","description":"Content type of the document."}]},"creation_date":{"oneOf":[{"type":"string","description":"Date when the document was created."},{"type":"null","description":"Date when the document was created."}]},"modified_date":{"oneOf":[{"type":"string","description":"Date when the document was modified."},{"type":"null","description":"Date when the document was modified."}]},"creator":{"oneOf":[{"type":"string","description":"Authoring tool/user recorded in the file metadata (PDF `Creator`)."},{"type":"null","description":"Authoring tool/user recorded in the file metadata (PDF `Creator`)."}]},"producer":{"oneOf":[{"type":"string","description":"Software that produced the file (PDF `Producer`)."},{"type":"null","description":"Software that produced the file (PDF `Producer`)."}]},"software":{"oneOf":[{"type":"string","description":"Editing software recorded in the file metadata."},{"type":"null","description":"Editing software recorded in the file metadata."}]},"encryption":{"oneOf":[{"type":"string","description":"Encryption scheme of the file, when encrypted."},{"type":"null","description":"Encryption scheme of the file, when encrypted."}]},"is_signed":{"oneOf":[{"type":"boolean","description":"Whether the document carries a digital signature."},{"type":"null","description":"Whether the document carries a digital signature."}]},"is_tampered":{"oneOf":[{"type":"boolean","description":"Whether the digital signature failed validation (post-signing modification)."},{"type":"null","description":"Whether the digital signature failed validation (post-signing modification)."}]},"signature_info":{"oneOf":[{"type":"object","description":"Details of the digital signature(s), when present."},{"type":"null","description":"Details of the digital signature(s), when present."}]},"exif_original_date":{"oneOf":[{"type":"string","description":"EXIF original capture date, for image uploads."},{"type":"null","description":"EXIF original capture date, for image uploads."}]},"exif_digitized_date":{"oneOf":[{"type":"string","description":"EXIF digitization date, for image uploads."},{"type":"null","description":"EXIF digitization date, for image uploads."}]},"processed_by_known_editor":{"oneOf":[{"type":"boolean","description":"Whether metadata indicates the file passed through a known image/PDF editor."},{"type":"null","description":"Whether metadata indicates the file passed through a known image/PDF editor."}]},"has_different_creation_mod_date":{"oneOf":[{"type":"boolean","description":"Whether creation and modification dates differ — a possible (but not conclusive) editing signal."},{"type":"null","description":"Whether creation and modification dates differ — a possible (but not conclusive) editing signal."}]},"overlay_manipulation":{"oneOf":[{"type":"object","description":"PDF forensic analysis for suspected overlay-text manipulation. Null when no overlay manipulation evidence was found or the document was not a PDF.","properties":{"detected":{"type":"boolean","description":"Whether overlay-text manipulation evidence was detected."},"analyzed":{"type":"boolean","description":"Whether the PDF could be analyzed."},"analysis_incomplete":{"type":"boolean","description":"Present and true only when the file could not be checked in full. What was checked keeps its findings where it can, and the document raises the unproven text replacement warning."},"signals":{"type":"array","items":{"type":"string"},"description":"Forensic signals that fired, such as duplicate_font_subset or glyph_fragmentation."},"manipulated_regions":{"type":"array","description":"Suspected manipulated areas in PDF page coordinates.","items":{"type":"object","properties":{"page":{"type":"integer"},"x":{"type":"number"},"y":{"type":"number"},"width":{"type":"number"},"height":{"type":"number"},"page_width":{"type":"number"},"page_height":{"type":"number"}}}}}},{"type":"null","description":"PDF forensic analysis for suspected overlay-text manipulation. Null when no overlay manipulation evidence was found or the document was not a PDF.","properties":{"detected":{"type":"boolean","description":"Whether overlay-text manipulation evidence was detected."},"analyzed":{"type":"boolean","description":"Whether the PDF could be analyzed."},"analysis_incomplete":{"type":"boolean","description":"Present and true only when the file could not be checked in full. What was checked keeps its findings where it can, and the document raises the unproven text replacement warning."},"signals":{"type":"array","items":{"type":"string"},"description":"Forensic signals that fired, such as duplicate_font_subset or glyph_fragmentation."},"manipulated_regions":{"type":"array","description":"Suspected manipulated areas in PDF page coordinates.","items":{"type":"object","properties":{"page":{"type":"integer"},"x":{"type":"number"},"y":{"type":"number"},"width":{"type":"number"},"height":{"type":"number"},"page_width":{"type":"number"},"page_height":{"type":"number"}}}}}}]}}}]},"description":{"oneOf":[{"type":"string","description":"Analyst-provided label or reason for a document request. `null` for regular uploads."},{"type":"null","description":"Analyst-provided label or reason for a document request. `null` for regular uploads."}]},"is_requested":{"type":"boolean","description":"True for analyst-created document request placeholders awaiting an upload."},"ocr_data":{"oneOf":[{"type":"object"},{"type":"null"}]},"is_console_upload":{"type":"boolean","description":"True for documents uploaded from the console rather than the end-user flow. Console uploads never change the feature-level aggregate status."},"is_confirmed":{"type":"boolean","description":"Console uploads start `false` and flip `true` once the admin confirms them; end-user uploads are always `true`."}}}},"groups":{"type":"object","description":"Per-group progress counters keyed by group name (e.g. legal_presence, ownership_structure).","additionalProperties":{"type":"object","properties":{"total":{"type":"integer"},"approved":{"type":"integer"},"pending":{"type":"integer"},"declined":{"type":"integer"},"in_review":{"type":"integer"},"other":{"type":"integer"},"missing":{"type":"integer","description":"Requested placeholders with no file uploaded yet."}}}},"required_groups":{"type":"array","items":{"type":"string"}},"warnings":{"type":"array","items":{"type":"object"}}}},"uniqueKey":"document_verifications.oneOf.1","typeLabel":"null"}],"uniqueKey":"document_verifications","typeLabel":"object[] | null"},"environment":{"type":"string","enum":["live","sandbox"],"description":"Whether the session was created by a live application (`live`) or a sandbox application (`sandbox`). Sandbox sessions are free, fully simulated, and never bill credits.","uniqueKey":"environment","typeLabel":"enum\u003cstring>"},"sandbox_scenario":{"oneOf":[{"type":"string","description":"The sandbox scenario the session was created with. `null` for live sessions and for sandbox sessions created without one.","uniqueKey":"sandbox_scenario.oneOf.0","typeLabel":"string"},{"type":"null","description":"The sandbox scenario the session was created with. `null` for live sessions and for sandbox sessions created without one.","uniqueKey":"sandbox_scenario.oneOf.1","typeLabel":"null"}],"uniqueKey":"sandbox_scenario","typeLabel":"string | null"},"resubmissions":{"type":"array","description":"Returned only with `include=resubmissions`, for user and business sessions. One entry per resubmission request, oldest first. Each entry carries the results the resubmitted steps returned before the request, so earlier submissions stay readable. Deleting the session deletes every submission.","items":{"type":"object","properties":{"number":{"type":"integer","description":"1 for the first resubmission of the session, 2 for the second, and so on.","uniqueKey":"resubmissions.items.[INDEX].number","typeLabel":"integer"},"created_at":{"type":"string","format":"date-time","description":"When the resubmission was requested.","uniqueKey":"resubmissions.items.[INDEX].created_at","typeLabel":"string\u003cdate-time>"},"previous_status":{"type":"string","description":"The session status just before the request.","uniqueKey":"resubmissions.items.[INDEX].previous_status","typeLabel":"string"},"nodes":{"type":"array","description":"The workflow steps sent back to the user.","items":{"type":"object","properties":{"node_id":{"type":"string","uniqueKey":"resubmissions.items.[INDEX].nodes.items.[INDEX].node_id","typeLabel":"string"},"feature":{"type":"string","uniqueKey":"resubmissions.items.[INDEX].nodes.items.[INDEX].feature","typeLabel":"string"}},"uniqueKey":"resubmissions.items.[INDEX].nodes.items.[INDEX]","typeLabel":"object"},"uniqueKey":"resubmissions.items.[INDEX].nodes","typeLabel":"object[]"},"reasons":{"oneOf":[{"type":"object","additionalProperties":{"type":"string","uniqueKey":"resubmissions.items.[INDEX].reasons.oneOf.0.additionalProperties","typeLabel":"string"},"description":"The reason given for each step, keyed by `node_id`.","uniqueKey":"resubmissions.items.[INDEX].reasons.oneOf.0","typeLabel":"object"},{"type":"null","additionalProperties":{"type":"string","uniqueKey":"resubmissions.items.[INDEX].reasons.oneOf.1.additionalProperties","typeLabel":"string"},"description":"The reason given for each step, keyed by `node_id`.","uniqueKey":"resubmissions.items.[INDEX].reasons.oneOf.1","typeLabel":"null"}],"uniqueKey":"resubmissions.items.[INDEX].reasons","typeLabel":"object | null"},"requested_by":{"oneOf":[{"type":"object","description":"Who requested the resubmission.","properties":{"name":{"type":"string","uniqueKey":"resubmissions.items.[INDEX].requested_by.oneOf.0.name","typeLabel":"string"},"email":{"type":"string","uniqueKey":"resubmissions.items.[INDEX].requested_by.oneOf.0.email","typeLabel":"string"},"type":{"type":"string","uniqueKey":"resubmissions.items.[INDEX].requested_by.oneOf.0.type","typeLabel":"string"}},"uniqueKey":"resubmissions.items.[INDEX].requested_by.oneOf.0","typeLabel":"object"},{"type":"null","description":"Who requested the resubmission.","properties":{"name":{"type":"string"},"email":{"type":"string"},"type":{"type":"string"}},"uniqueKey":"resubmissions.items.[INDEX].requested_by.oneOf.1","typeLabel":"null"}],"uniqueKey":"resubmissions.items.[INDEX].requested_by","typeLabel":"object | null"},"results":{"type":"object","additionalProperties":true,"description":"What the resubmitted steps returned before the request, under the same keys and in the same shape as the current results of this response (`id_verifications`, `nfc_verifications`, `liveness_checks`, `face_matches`, `poa_verifications`, `phone_verifications`, `email_verifications`, `aml_screenings`, `ip_analyses`, `database_validations`, `questionnaire_responses`, `document_ai_documents`, `geolocation_checks`; for business sessions also `document_verifications`). Only the keys of the steps that were sent back appear.","uniqueKey":"resubmissions.items.[INDEX].results","typeLabel":"object"}},"uniqueKey":"resubmissions.items.[INDEX]","typeLabel":"object"},"uniqueKey":"resubmissions","typeLabel":"object[]"},"biometric_consent":{"oneOf":[{"type":"object","description":"Whether the session required explicit biometric consent before a face capture, why, and the evidence of the answer. User Verification (KYC) sessions only; the same object is in the `decision` of session webhooks. `null` when the session was never evaluated, for example a workflow without a face capture. Fields with no recorded value are `null`. A native SDK below 4.10.0, or one that does not report its version, cannot show the consent step: its face captures run as before, and a session that required consent then reports `status: \"pending\"` with `reason: \"BIOMETRIC_CONSENT_UNSUPPORTED_SDK\"`. See [Biometric consent](/getting-started/biometric-consent).","properties":{"required":{"type":"boolean","description":"Whether the session must collect explicit biometric consent. Never goes back to `false`.","uniqueKey":"biometric_consent.oneOf.0.required","typeLabel":"boolean"},"trigger":{"oneOf":[{"type":"string","enum":["declared_state","ip_state","ip_unknown","document_issuer","forced","customer_collected"],"description":"Why consent is required, or how it was satisfied. `declared_state`: you declared a covered state (`user_state`, or a US address in `expected_details`). `ip_state`: the person's IP is in a covered state (Illinois, Texas, Colorado). `ip_unknown`: the evidence places the person in the US but the state cannot be told (the IP is in the US with no state, or cannot be located while your details or the document place the person in the US). `document_issuer`: the identity document was issued by a covered state. `forced`: the application's mode is Always. `customer_collected`: you sent `biometric_consent` when creating the session. `null` while not required.","uniqueKey":"biometric_consent.oneOf.0.trigger.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["declared_state","ip_state","ip_unknown","document_issuer","forced","customer_collected"],"description":"Why consent is required, or how it was satisfied. `declared_state`: you declared a covered state (`user_state`, or a US address in `expected_details`). `ip_state`: the person's IP is in a covered state (Illinois, Texas, Colorado). `ip_unknown`: the evidence places the person in the US but the state cannot be told (the IP is in the US with no state, or cannot be located while your details or the document place the person in the US). `document_issuer`: the identity document was issued by a covered state. `forced`: the application's mode is Always. `customer_collected`: you sent `biometric_consent` when creating the session. `null` while not required.","uniqueKey":"biometric_consent.oneOf.0.trigger.oneOf.1","typeLabel":"null"}],"uniqueKey":"biometric_consent.oneOf.0.trigger","typeLabel":"enum\u003cstring> | null"},"status":{"type":"string","enum":["not_required","pending","given","declined"],"description":"`not_required`; `pending` (required and not given: the person has not answered yet, or `reason` says why it was not collected); `given`; `declined` (a decline was recorded and the session ended as `Declined`; no Didit screen offers a decline today).","uniqueKey":"biometric_consent.oneOf.0.status","typeLabel":"enum\u003cstring>"},"given_at":{"oneOf":[{"type":"string","format":"date-time","description":"When consent was given. For `customer_collected`, the `given_at` you sent.","uniqueKey":"biometric_consent.oneOf.0.given_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","description":"When consent was given. For `customer_collected`, the `given_at` you sent.","uniqueKey":"biometric_consent.oneOf.0.given_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"biometric_consent.oneOf.0.given_at","typeLabel":"string\u003cdate-time> | null"},"declined_at":{"oneOf":[{"type":"string","format":"date-time","description":"When a decline was recorded.","uniqueKey":"biometric_consent.oneOf.0.declined_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","description":"When a decline was recorded.","uniqueKey":"biometric_consent.oneOf.0.declined_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"biometric_consent.oneOf.0.declined_at","typeLabel":"string\u003cdate-time> | null"},"text_version":{"oneOf":[{"type":"string","description":"Version id of the consent text the person answered, or the one you sent.","uniqueKey":"biometric_consent.oneOf.0.text_version.oneOf.0","typeLabel":"string"},{"type":"null","description":"Version id of the consent text the person answered, or the one you sent.","uniqueKey":"biometric_consent.oneOf.0.text_version.oneOf.1","typeLabel":"null"}],"uniqueKey":"biometric_consent.oneOf.0.text_version","typeLabel":"string | null"},"text_hash":{"oneOf":[{"type":"string","description":"SHA-256 (hex) of the exact consent text shown, in the language it was shown in.","uniqueKey":"biometric_consent.oneOf.0.text_hash.oneOf.0","typeLabel":"string"},{"type":"null","description":"SHA-256 (hex) of the exact consent text shown, in the language it was shown in.","uniqueKey":"biometric_consent.oneOf.0.text_hash.oneOf.1","typeLabel":"null"}],"uniqueKey":"biometric_consent.oneOf.0.text_hash","typeLabel":"string | null"},"locale":{"oneOf":[{"type":"string","description":"Language the consent text was shown in.","uniqueKey":"biometric_consent.oneOf.0.locale.oneOf.0","typeLabel":"string"},{"type":"null","description":"Language the consent text was shown in.","uniqueKey":"biometric_consent.oneOf.0.locale.oneOf.1","typeLabel":"null"}],"uniqueKey":"biometric_consent.oneOf.0.locale","typeLabel":"string | null"},"policy_url":{"oneOf":[{"type":"string","format":"uri","description":"The biometric data policy the consent step linked to.","uniqueKey":"biometric_consent.oneOf.0.policy_url.oneOf.0","typeLabel":"string\u003curi>"},{"type":"null","format":"uri","description":"The biometric data policy the consent step linked to.","uniqueKey":"biometric_consent.oneOf.0.policy_url.oneOf.1","typeLabel":"null"}],"uniqueKey":"biometric_consent.oneOf.0.policy_url","typeLabel":"string\u003curi> | null"},"step":{"oneOf":[{"type":"string","description":"Workflow step the session was on when the person answered, for example `LIVENESS`.","uniqueKey":"biometric_consent.oneOf.0.step.oneOf.0","typeLabel":"string"},{"type":"null","description":"Workflow step the session was on when the person answered, for example `LIVENESS`.","uniqueKey":"biometric_consent.oneOf.0.step.oneOf.1","typeLabel":"null"}],"uniqueKey":"biometric_consent.oneOf.0.step","typeLabel":"string | null"},"node_id":{"oneOf":[{"type":"string","description":"Workflow graph node the session was on when the person answered.","uniqueKey":"biometric_consent.oneOf.0.node_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"Workflow graph node the session was on when the person answered.","uniqueKey":"biometric_consent.oneOf.0.node_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"biometric_consent.oneOf.0.node_id","typeLabel":"string | null"},"ip_address":{"oneOf":[{"type":"string","description":"IP the answer came from.","uniqueKey":"biometric_consent.oneOf.0.ip_address.oneOf.0","typeLabel":"string"},{"type":"null","description":"IP the answer came from.","uniqueKey":"biometric_consent.oneOf.0.ip_address.oneOf.1","typeLabel":"null"}],"uniqueKey":"biometric_consent.oneOf.0.ip_address","typeLabel":"string | null"},"ip_country_code":{"oneOf":[{"type":"string","description":"ISO 3166-1 alpha-2 country of the answer's IP.","uniqueKey":"biometric_consent.oneOf.0.ip_country_code.oneOf.0","typeLabel":"string"},{"type":"null","description":"ISO 3166-1 alpha-2 country of the answer's IP.","uniqueKey":"biometric_consent.oneOf.0.ip_country_code.oneOf.1","typeLabel":"null"}],"uniqueKey":"biometric_consent.oneOf.0.ip_country_code","typeLabel":"string | null"},"ip_state":{"oneOf":[{"type":"string","description":"ISO 3166-2 subdivision of the answer's IP, for example `US-IL`.","uniqueKey":"biometric_consent.oneOf.0.ip_state.oneOf.0","typeLabel":"string"},{"type":"null","description":"ISO 3166-2 subdivision of the answer's IP, for example `US-IL`.","uniqueKey":"biometric_consent.oneOf.0.ip_state.oneOf.1","typeLabel":"null"}],"uniqueKey":"biometric_consent.oneOf.0.ip_state","typeLabel":"string | null"},"ip_city":{"oneOf":[{"type":"string","description":"City of the answer's IP.","uniqueKey":"biometric_consent.oneOf.0.ip_city.oneOf.0","typeLabel":"string"},{"type":"null","description":"City of the answer's IP.","uniqueKey":"biometric_consent.oneOf.0.ip_city.oneOf.1","typeLabel":"null"}],"uniqueKey":"biometric_consent.oneOf.0.ip_city","typeLabel":"string | null"},"user_agent":{"oneOf":[{"type":"string","description":"User agent of the answer's request.","uniqueKey":"biometric_consent.oneOf.0.user_agent.oneOf.0","typeLabel":"string"},{"type":"null","description":"User agent of the answer's request.","uniqueKey":"biometric_consent.oneOf.0.user_agent.oneOf.1","typeLabel":"null"}],"uniqueKey":"biometric_consent.oneOf.0.user_agent","typeLabel":"string | null"},"detected_ip_address":{"oneOf":[{"type":"string","description":"The person's IP the requirement was last evaluated from. Can differ from `ip_address` when the person answered on another device.","uniqueKey":"biometric_consent.oneOf.0.detected_ip_address.oneOf.0","typeLabel":"string"},{"type":"null","description":"The person's IP the requirement was last evaluated from. Can differ from `ip_address` when the person answered on another device.","uniqueKey":"biometric_consent.oneOf.0.detected_ip_address.oneOf.1","typeLabel":"null"}],"uniqueKey":"biometric_consent.oneOf.0.detected_ip_address","typeLabel":"string | null"},"detected_country_code":{"oneOf":[{"type":"string","description":"ISO 3166-1 alpha-2 country of the detected IP.","uniqueKey":"biometric_consent.oneOf.0.detected_country_code.oneOf.0","typeLabel":"string"},{"type":"null","description":"ISO 3166-1 alpha-2 country of the detected IP.","uniqueKey":"biometric_consent.oneOf.0.detected_country_code.oneOf.1","typeLabel":"null"}],"uniqueKey":"biometric_consent.oneOf.0.detected_country_code","typeLabel":"string | null"},"detected_state":{"oneOf":[{"type":"string","description":"ISO 3166-2 subdivision of the detected IP.","uniqueKey":"biometric_consent.oneOf.0.detected_state.oneOf.0","typeLabel":"string"},{"type":"null","description":"ISO 3166-2 subdivision of the detected IP.","uniqueKey":"biometric_consent.oneOf.0.detected_state.oneOf.1","typeLabel":"null"}],"uniqueKey":"biometric_consent.oneOf.0.detected_state","typeLabel":"string | null"},"detected_city":{"oneOf":[{"type":"string","description":"City of the detected IP.","uniqueKey":"biometric_consent.oneOf.0.detected_city.oneOf.0","typeLabel":"string"},{"type":"null","description":"City of the detected IP.","uniqueKey":"biometric_consent.oneOf.0.detected_city.oneOf.1","typeLabel":"null"}],"uniqueKey":"biometric_consent.oneOf.0.detected_city","typeLabel":"string | null"},"declared_state":{"oneOf":[{"type":"string","description":"ISO 3166-2 subdivision you declared: `user_state`, or the state of a US address in `expected_details`.","uniqueKey":"biometric_consent.oneOf.0.declared_state.oneOf.0","typeLabel":"string"},{"type":"null","description":"ISO 3166-2 subdivision you declared: `user_state`, or the state of a US address in `expected_details`.","uniqueKey":"biometric_consent.oneOf.0.declared_state.oneOf.1","typeLabel":"null"}],"uniqueKey":"biometric_consent.oneOf.0.declared_state","typeLabel":"string | null"},"document_state":{"oneOf":[{"type":"string","description":"ISO 3166-2 subdivision that issued the identity document, read at ID capture.","uniqueKey":"biometric_consent.oneOf.0.document_state.oneOf.0","typeLabel":"string"},{"type":"null","description":"ISO 3166-2 subdivision that issued the identity document, read at ID capture.","uniqueKey":"biometric_consent.oneOf.0.document_state.oneOf.1","typeLabel":"null"}],"uniqueKey":"biometric_consent.oneOf.0.document_state","typeLabel":"string | null"},"jurisdictions":{"type":"array","items":{"type":"string","uniqueKey":"biometric_consent.oneOf.0.jurisdictions.items.[INDEX]","typeLabel":"string"},"description":"US states (USPS codes, for example `IL`) whose biometric law covers the person. `US` when the evidence places the person in the US but no state is known. Empty when none applies.","uniqueKey":"biometric_consent.oneOf.0.jurisdictions","typeLabel":"string[]"},"retention_months":{"oneOf":[{"type":"integer","description":"The shortest biometric retention limit, in months, among `jurisdictions`. `null` when none applies.","uniqueKey":"biometric_consent.oneOf.0.retention_months.oneOf.0","typeLabel":"integer"},{"type":"null","description":"The shortest biometric retention limit, in months, among `jurisdictions`. `null` when none applies.","uniqueKey":"biometric_consent.oneOf.0.retention_months.oneOf.1","typeLabel":"null"}],"uniqueKey":"biometric_consent.oneOf.0.retention_months","typeLabel":"integer | null"},"reason":{"oneOf":[{"type":"string","enum":["BIOMETRIC_CONSENT_UNSUPPORTED_SDK","BIOMETRIC_CONSENT_DECLINED"],"description":"`BIOMETRIC_CONSENT_UNSUPPORTED_SDK`: consent was required and a native SDK below 4.10.0, or one that did not report its version, captured a face without the consent step; `status` stays `pending`, or `given` if the person later agreed in the hosted flow. `BIOMETRIC_CONSENT_DECLINED`: a decline was recorded (it replaces the SDK reason). `null` otherwise, and always `null` when the session did not require consent.","uniqueKey":"biometric_consent.oneOf.0.reason.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["BIOMETRIC_CONSENT_UNSUPPORTED_SDK","BIOMETRIC_CONSENT_DECLINED"],"description":"`BIOMETRIC_CONSENT_UNSUPPORTED_SDK`: consent was required and a native SDK below 4.10.0, or one that did not report its version, captured a face without the consent step; `status` stays `pending`, or `given` if the person later agreed in the hosted flow. `BIOMETRIC_CONSENT_DECLINED`: a decline was recorded (it replaces the SDK reason). `null` otherwise, and always `null` when the session did not require consent.","uniqueKey":"biometric_consent.oneOf.0.reason.oneOf.1","typeLabel":"null"}],"uniqueKey":"biometric_consent.oneOf.0.reason","typeLabel":"enum\u003cstring> | null"},"decline_reason":{"oneOf":[{"type":"string","enum":["BIOMETRIC_CONSENT_DECLINED"],"description":"`BIOMETRIC_CONSENT_DECLINED` when a recorded decline ended the session, otherwise `null`.","uniqueKey":"biometric_consent.oneOf.0.decline_reason.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["BIOMETRIC_CONSENT_DECLINED"],"description":"`BIOMETRIC_CONSENT_DECLINED` when a recorded decline ended the session, otherwise `null`.","uniqueKey":"biometric_consent.oneOf.0.decline_reason.oneOf.1","typeLabel":"null"}],"uniqueKey":"biometric_consent.oneOf.0.decline_reason","typeLabel":"enum\u003cstring> | null"},"face_data_deleted_at":{"oneOf":[{"type":"string","format":"date-time","description":"When the decline deleted the session's face images, videos and face templates. `null` unless a decline was recorded.","uniqueKey":"biometric_consent.oneOf.0.face_data_deleted_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","description":"When the decline deleted the session's face images, videos and face templates. `null` unless a decline was recorded.","uniqueKey":"biometric_consent.oneOf.0.face_data_deleted_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"biometric_consent.oneOf.0.face_data_deleted_at","typeLabel":"string\u003cdate-time> | null"}},"uniqueKey":"biometric_consent.oneOf.0","typeLabel":"object"},{"type":"null","description":"Whether the session required explicit biometric consent before a face capture, why, and the evidence of the answer. User Verification (KYC) sessions only; the same object is in the `decision` of session webhooks. `null` when the session was never evaluated, for example a workflow without a face capture. Fields with no recorded value are `null`. A native SDK below 4.10.0, or one that does not report its version, cannot show the consent step: its face captures run as before, and a session that required consent then reports `status: \"pending\"` with `reason: \"BIOMETRIC_CONSENT_UNSUPPORTED_SDK\"`. See [Biometric consent](/getting-started/biometric-consent).","properties":{"required":{"type":"boolean","description":"Whether the session must collect explicit biometric consent. Never goes back to `false`."},"trigger":{"oneOf":[{"type":"string","enum":["declared_state","ip_state","ip_unknown","document_issuer","forced","customer_collected"],"description":"Why consent is required, or how it was satisfied. `declared_state`: you declared a covered state (`user_state`, or a US address in `expected_details`). `ip_state`: the person's IP is in a covered state (Illinois, Texas, Colorado). `ip_unknown`: the evidence places the person in the US but the state cannot be told (the IP is in the US with no state, or cannot be located while your details or the document place the person in the US). `document_issuer`: the identity document was issued by a covered state. `forced`: the application's mode is Always. `customer_collected`: you sent `biometric_consent` when creating the session. `null` while not required."},{"type":"null","enum":["declared_state","ip_state","ip_unknown","document_issuer","forced","customer_collected"],"description":"Why consent is required, or how it was satisfied. `declared_state`: you declared a covered state (`user_state`, or a US address in `expected_details`). `ip_state`: the person's IP is in a covered state (Illinois, Texas, Colorado). `ip_unknown`: the evidence places the person in the US but the state cannot be told (the IP is in the US with no state, or cannot be located while your details or the document place the person in the US). `document_issuer`: the identity document was issued by a covered state. `forced`: the application's mode is Always. `customer_collected`: you sent `biometric_consent` when creating the session. `null` while not required."}]},"status":{"type":"string","enum":["not_required","pending","given","declined"],"description":"`not_required`; `pending` (required and not given: the person has not answered yet, or `reason` says why it was not collected); `given`; `declined` (a decline was recorded and the session ended as `Declined`; no Didit screen offers a decline today)."},"given_at":{"oneOf":[{"type":"string","format":"date-time","description":"When consent was given. For `customer_collected`, the `given_at` you sent."},{"type":"null","format":"date-time","description":"When consent was given. For `customer_collected`, the `given_at` you sent."}]},"declined_at":{"oneOf":[{"type":"string","format":"date-time","description":"When a decline was recorded."},{"type":"null","format":"date-time","description":"When a decline was recorded."}]},"text_version":{"oneOf":[{"type":"string","description":"Version id of the consent text the person answered, or the one you sent."},{"type":"null","description":"Version id of the consent text the person answered, or the one you sent."}]},"text_hash":{"oneOf":[{"type":"string","description":"SHA-256 (hex) of the exact consent text shown, in the language it was shown in."},{"type":"null","description":"SHA-256 (hex) of the exact consent text shown, in the language it was shown in."}]},"locale":{"oneOf":[{"type":"string","description":"Language the consent text was shown in."},{"type":"null","description":"Language the consent text was shown in."}]},"policy_url":{"oneOf":[{"type":"string","format":"uri","description":"The biometric data policy the consent step linked to."},{"type":"null","format":"uri","description":"The biometric data policy the consent step linked to."}]},"step":{"oneOf":[{"type":"string","description":"Workflow step the session was on when the person answered, for example `LIVENESS`."},{"type":"null","description":"Workflow step the session was on when the person answered, for example `LIVENESS`."}]},"node_id":{"oneOf":[{"type":"string","description":"Workflow graph node the session was on when the person answered."},{"type":"null","description":"Workflow graph node the session was on when the person answered."}]},"ip_address":{"oneOf":[{"type":"string","description":"IP the answer came from."},{"type":"null","description":"IP the answer came from."}]},"ip_country_code":{"oneOf":[{"type":"string","description":"ISO 3166-1 alpha-2 country of the answer's IP."},{"type":"null","description":"ISO 3166-1 alpha-2 country of the answer's IP."}]},"ip_state":{"oneOf":[{"type":"string","description":"ISO 3166-2 subdivision of the answer's IP, for example `US-IL`."},{"type":"null","description":"ISO 3166-2 subdivision of the answer's IP, for example `US-IL`."}]},"ip_city":{"oneOf":[{"type":"string","description":"City of the answer's IP."},{"type":"null","description":"City of the answer's IP."}]},"user_agent":{"oneOf":[{"type":"string","description":"User agent of the answer's request."},{"type":"null","description":"User agent of the answer's request."}]},"detected_ip_address":{"oneOf":[{"type":"string","description":"The person's IP the requirement was last evaluated from. Can differ from `ip_address` when the person answered on another device."},{"type":"null","description":"The person's IP the requirement was last evaluated from. Can differ from `ip_address` when the person answered on another device."}]},"detected_country_code":{"oneOf":[{"type":"string","description":"ISO 3166-1 alpha-2 country of the detected IP."},{"type":"null","description":"ISO 3166-1 alpha-2 country of the detected IP."}]},"detected_state":{"oneOf":[{"type":"string","description":"ISO 3166-2 subdivision of the detected IP."},{"type":"null","description":"ISO 3166-2 subdivision of the detected IP."}]},"detected_city":{"oneOf":[{"type":"string","description":"City of the detected IP."},{"type":"null","description":"City of the detected IP."}]},"declared_state":{"oneOf":[{"type":"string","description":"ISO 3166-2 subdivision you declared: `user_state`, or the state of a US address in `expected_details`."},{"type":"null","description":"ISO 3166-2 subdivision you declared: `user_state`, or the state of a US address in `expected_details`."}]},"document_state":{"oneOf":[{"type":"string","description":"ISO 3166-2 subdivision that issued the identity document, read at ID capture."},{"type":"null","description":"ISO 3166-2 subdivision that issued the identity document, read at ID capture."}]},"jurisdictions":{"type":"array","items":{"type":"string"},"description":"US states (USPS codes, for example `IL`) whose biometric law covers the person. `US` when the evidence places the person in the US but no state is known. Empty when none applies."},"retention_months":{"oneOf":[{"type":"integer","description":"The shortest biometric retention limit, in months, among `jurisdictions`. `null` when none applies."},{"type":"null","description":"The shortest biometric retention limit, in months, among `jurisdictions`. `null` when none applies."}]},"reason":{"oneOf":[{"type":"string","enum":["BIOMETRIC_CONSENT_UNSUPPORTED_SDK","BIOMETRIC_CONSENT_DECLINED"],"description":"`BIOMETRIC_CONSENT_UNSUPPORTED_SDK`: consent was required and a native SDK below 4.10.0, or one that did not report its version, captured a face without the consent step; `status` stays `pending`, or `given` if the person later agreed in the hosted flow. `BIOMETRIC_CONSENT_DECLINED`: a decline was recorded (it replaces the SDK reason). `null` otherwise, and always `null` when the session did not require consent."},{"type":"null","enum":["BIOMETRIC_CONSENT_UNSUPPORTED_SDK","BIOMETRIC_CONSENT_DECLINED"],"description":"`BIOMETRIC_CONSENT_UNSUPPORTED_SDK`: consent was required and a native SDK below 4.10.0, or one that did not report its version, captured a face without the consent step; `status` stays `pending`, or `given` if the person later agreed in the hosted flow. `BIOMETRIC_CONSENT_DECLINED`: a decline was recorded (it replaces the SDK reason). `null` otherwise, and always `null` when the session did not require consent."}]},"decline_reason":{"oneOf":[{"type":"string","enum":["BIOMETRIC_CONSENT_DECLINED"],"description":"`BIOMETRIC_CONSENT_DECLINED` when a recorded decline ended the session, otherwise `null`."},{"type":"null","enum":["BIOMETRIC_CONSENT_DECLINED"],"description":"`BIOMETRIC_CONSENT_DECLINED` when a recorded decline ended the session, otherwise `null`."}]},"face_data_deleted_at":{"oneOf":[{"type":"string","format":"date-time","description":"When the decline deleted the session's face images, videos and face templates. `null` unless a decline was recorded."},{"type":"null","format":"date-time","description":"When the decline deleted the session's face images, videos and face templates. `null` unless a decline was recorded."}]}},"uniqueKey":"biometric_consent.oneOf.1","typeLabel":"null"}],"uniqueKey":"biometric_consent","typeLabel":"object | null"},"investigator":{"oneOf":[{"type":"object","description":"The item's latest Investigator review, or null when it never had one. Carried by the V3 session and business session decision (and so by `status.updated` webhooks).","properties":{"run_id":{"type":"string","format":"uuid","uniqueKey":"investigator.oneOf.0.run_id","typeLabel":"string\u003cuuid>"},"status":{"type":"string","enum":["running","completed","failed"],"uniqueKey":"investigator.oneOf.0.status","typeLabel":"enum\u003cstring>"},"stage":{"type":"string","enum":["shadow","live"],"uniqueKey":"investigator.oneOf.0.stage","typeLabel":"enum\u003cstring>"},"queue":{"type":"string","enum":["kyc","kyb","aml","transactions","cases"],"uniqueKey":"investigator.oneOf.0.queue","typeLabel":"enum\u003cstring>"},"is_open":{"type":"boolean","uniqueKey":"investigator.oneOf.0.is_open","typeLabel":"boolean"},"recommendation":{"oneOf":[{"type":"string","enum":["approve","decline","escalate","request"],"uniqueKey":"investigator.oneOf.0.recommendation.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["approve","decline","escalate","request"],"uniqueKey":"investigator.oneOf.0.recommendation.oneOf.1","typeLabel":"null"}],"uniqueKey":"investigator.oneOf.0.recommendation","typeLabel":"enum\u003cstring> | null"},"recommendation_detail":{"oneOf":[{"type":"string","uniqueKey":"investigator.oneOf.0.recommendation_detail.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"investigator.oneOf.0.recommendation_detail.oneOf.1","typeLabel":"null"}],"uniqueKey":"investigator.oneOf.0.recommendation_detail","typeLabel":"string | null"},"confidence":{"oneOf":[{"type":"string","enum":["high","moderate","low"],"uniqueKey":"investigator.oneOf.0.confidence.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["high","moderate","low"],"uniqueKey":"investigator.oneOf.0.confidence.oneOf.1","typeLabel":"null"}],"uniqueKey":"investigator.oneOf.0.confidence","typeLabel":"enum\u003cstring> | null"},"summary":{"oneOf":[{"type":"string","uniqueKey":"investigator.oneOf.0.summary.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"investigator.oneOf.0.summary.oneOf.1","typeLabel":"null"}],"uniqueKey":"investigator.oneOf.0.summary","typeLabel":"string | null"},"ready_to_accept":{"type":"boolean","uniqueKey":"investigator.oneOf.0.ready_to_accept","typeLabel":"boolean"},"prepared_at":{"oneOf":[{"type":"string","format":"date-time","uniqueKey":"investigator.oneOf.0.prepared_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","uniqueKey":"investigator.oneOf.0.prepared_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"investigator.oneOf.0.prepared_at","typeLabel":"string\u003cdate-time> | null"},"automated":{"type":"boolean","description":"The Investigator decided on its own, even if the decision was later overridden.","uniqueKey":"investigator.oneOf.0.automated","typeLabel":"boolean"},"decided_by":{"oneOf":[{"type":"string","enum":["investigator","member"],"uniqueKey":"investigator.oneOf.0.decided_by.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["investigator","member"],"uniqueKey":"investigator.oneOf.0.decided_by.oneOf.1","typeLabel":"null"}],"uniqueKey":"investigator.oneOf.0.decided_by","typeLabel":"enum\u003cstring> | null"},"decision":{"oneOf":[{"type":"object","description":"How the item left the Investigator queue. `decided_by`, `original_outcome` and `overrides` are returned by the accept and override endpoints and the report; the `investigator` block of a session decision carries the other fields.","properties":{"outcome":{"type":"string","enum":["accepted","edited","overridden","decided_elsewhere","automated"],"description":"`accepted` or `edited` took the recommendation (`edited` with a rewritten narrative), `overridden` took another action, `decided_elsewhere` is a decision taken outside the Investigator while the report was open, `automated` is a decision the Investigator took on its own.","uniqueKey":"investigator.oneOf.0.decision.oneOf.0.outcome","typeLabel":"enum\u003cstring>"},"action":{"type":"string","enum":["approve","decline","escalate","request"],"uniqueKey":"investigator.oneOf.0.decision.oneOf.0.action","typeLabel":"enum\u003cstring>"},"actor_email":{"oneOf":[{"type":"string","uniqueKey":"investigator.oneOf.0.decision.oneOf.0.actor_email.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"investigator.oneOf.0.decision.oneOf.0.actor_email.oneOf.1","typeLabel":"null"}],"uniqueKey":"investigator.oneOf.0.decision.oneOf.0.actor_email","typeLabel":"string | null"},"actor_name":{"oneOf":[{"type":"string","uniqueKey":"investigator.oneOf.0.decision.oneOf.0.actor_name.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"investigator.oneOf.0.decision.oneOf.0.actor_name.oneOf.1","typeLabel":"null"}],"uniqueKey":"investigator.oneOf.0.decision.oneOf.0.actor_name","typeLabel":"string | null"},"override_category":{"oneOf":[{"type":"string","enum":["missing_context","needs_information","policy_differs","evidence_misread","other",""],"uniqueKey":"investigator.oneOf.0.decision.oneOf.0.override_category.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["missing_context","needs_information","policy_differs","evidence_misread","other",""],"uniqueKey":"investigator.oneOf.0.decision.oneOf.0.override_category.oneOf.1","typeLabel":"null"}],"uniqueKey":"investigator.oneOf.0.decision.oneOf.0.override_category","typeLabel":"enum\u003cstring> | null"},"override_reason":{"oneOf":[{"type":"string","uniqueKey":"investigator.oneOf.0.decision.oneOf.0.override_reason.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"investigator.oneOf.0.decision.oneOf.0.override_reason.oneOf.1","typeLabel":"null"}],"uniqueKey":"investigator.oneOf.0.decision.oneOf.0.override_reason","typeLabel":"string | null"},"final_status":{"type":"string","description":"The item's status after the decision.","uniqueKey":"investigator.oneOf.0.decision.oneOf.0.final_status","typeLabel":"string"},"agreed":{"oneOf":[{"type":"boolean","description":"Whether the decision matched the recommendation.","uniqueKey":"investigator.oneOf.0.decision.oneOf.0.agreed.oneOf.0","typeLabel":"boolean"},{"type":"null","description":"Whether the decision matched the recommendation.","uniqueKey":"investigator.oneOf.0.decision.oneOf.0.agreed.oneOf.1","typeLabel":"null"}],"uniqueKey":"investigator.oneOf.0.decision.oneOf.0.agreed","typeLabel":"boolean | null"},"decided_at":{"type":"string","format":"date-time","uniqueKey":"investigator.oneOf.0.decision.oneOf.0.decided_at","typeLabel":"string\u003cdate-time>"},"billed":{"type":"boolean","description":"The review was charged.","uniqueKey":"investigator.oneOf.0.decision.oneOf.0.billed","typeLabel":"boolean"},"decided_by":{"type":"string","enum":["investigator","member"],"uniqueKey":"investigator.oneOf.0.decision.oneOf.0.decided_by","typeLabel":"enum\u003cstring>"},"original_outcome":{"oneOf":[{"type":"object","description":"The decision the Investigator took on its own, unchanged by later overrides. Null for a decision the team took.","properties":{"action":{"type":"string","uniqueKey":"investigator.oneOf.0.decision.oneOf.0.original_outcome.oneOf.0.action","typeLabel":"string"},"final_status":{"type":"string","uniqueKey":"investigator.oneOf.0.decision.oneOf.0.original_outcome.oneOf.0.final_status","typeLabel":"string"},"decided_at":{"type":"string","format":"date-time","uniqueKey":"investigator.oneOf.0.decision.oneOf.0.original_outcome.oneOf.0.decided_at","typeLabel":"string\u003cdate-time>"}},"uniqueKey":"investigator.oneOf.0.decision.oneOf.0.original_outcome.oneOf.0","typeLabel":"object"},{"type":"null","description":"The decision the Investigator took on its own, unchanged by later overrides. Null for a decision the team took.","properties":{"action":{"type":"string"},"final_status":{"type":"string"},"decided_at":{"type":"string","format":"date-time"}},"uniqueKey":"investigator.oneOf.0.decision.oneOf.0.original_outcome.oneOf.1","typeLabel":"null"}],"uniqueKey":"investigator.oneOf.0.decision.oneOf.0.original_outcome","typeLabel":"object | null"},"overrides":{"type":"array","description":"Every override of a decision the Investigator took on its own, oldest first.","items":{"type":"object","properties":{"action":{"type":"string","uniqueKey":"investigator.oneOf.0.decision.oneOf.0.overrides.items.[INDEX].action","typeLabel":"string"},"actor_email":{"oneOf":[{"type":"string","uniqueKey":"investigator.oneOf.0.decision.oneOf.0.overrides.items.[INDEX].actor_email.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"investigator.oneOf.0.decision.oneOf.0.overrides.items.[INDEX].actor_email.oneOf.1","typeLabel":"null"}],"uniqueKey":"investigator.oneOf.0.decision.oneOf.0.overrides.items.[INDEX].actor_email","typeLabel":"string | null"},"actor_name":{"oneOf":[{"type":"string","uniqueKey":"investigator.oneOf.0.decision.oneOf.0.overrides.items.[INDEX].actor_name.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"investigator.oneOf.0.decision.oneOf.0.overrides.items.[INDEX].actor_name.oneOf.1","typeLabel":"null"}],"uniqueKey":"investigator.oneOf.0.decision.oneOf.0.overrides.items.[INDEX].actor_name","typeLabel":"string | null"},"override_category":{"type":"string","uniqueKey":"investigator.oneOf.0.decision.oneOf.0.overrides.items.[INDEX].override_category","typeLabel":"string"},"override_reason":{"type":"string","uniqueKey":"investigator.oneOf.0.decision.oneOf.0.overrides.items.[INDEX].override_reason","typeLabel":"string"},"previous_status":{"type":"string","uniqueKey":"investigator.oneOf.0.decision.oneOf.0.overrides.items.[INDEX].previous_status","typeLabel":"string"},"final_status":{"type":"string","uniqueKey":"investigator.oneOf.0.decision.oneOf.0.overrides.items.[INDEX].final_status","typeLabel":"string"},"agreed":{"oneOf":[{"type":"boolean","uniqueKey":"investigator.oneOf.0.decision.oneOf.0.overrides.items.[INDEX].agreed.oneOf.0","typeLabel":"boolean"},{"type":"null","uniqueKey":"investigator.oneOf.0.decision.oneOf.0.overrides.items.[INDEX].agreed.oneOf.1","typeLabel":"null"}],"uniqueKey":"investigator.oneOf.0.decision.oneOf.0.overrides.items.[INDEX].agreed","typeLabel":"boolean | null"},"overridden_at":{"type":"string","format":"date-time","uniqueKey":"investigator.oneOf.0.decision.oneOf.0.overrides.items.[INDEX].overridden_at","typeLabel":"string\u003cdate-time>"}},"uniqueKey":"investigator.oneOf.0.decision.oneOf.0.overrides.items.[INDEX]","typeLabel":"object"},"uniqueKey":"investigator.oneOf.0.decision.oneOf.0.overrides","typeLabel":"object[]"}},"uniqueKey":"investigator.oneOf.0.decision.oneOf.0","typeLabel":"object"},{"type":"null","uniqueKey":"investigator.oneOf.0.decision.oneOf.1","typeLabel":"null"}],"uniqueKey":"investigator.oneOf.0.decision","typeLabel":"object | null"}},"uniqueKey":"investigator.oneOf.0","typeLabel":"object"},{"type":"null","description":"The item's latest Investigator review, or null when it never had one. Carried by the V3 session and business session decision (and so by `status.updated` webhooks).","properties":{"run_id":{"type":"string","format":"uuid"},"status":{"type":"string","enum":["running","completed","failed"]},"stage":{"type":"string","enum":["shadow","live"]},"queue":{"type":"string","enum":["kyc","kyb","aml","transactions","cases"]},"is_open":{"type":"boolean"},"recommendation":{"oneOf":[{"type":"string","enum":["approve","decline","escalate","request"]},{"type":"null","enum":["approve","decline","escalate","request"]}]},"recommendation_detail":{"oneOf":[{"type":"string"},{"type":"null"}]},"confidence":{"oneOf":[{"type":"string","enum":["high","moderate","low"]},{"type":"null","enum":["high","moderate","low"]}]},"summary":{"oneOf":[{"type":"string"},{"type":"null"}]},"ready_to_accept":{"type":"boolean"},"prepared_at":{"oneOf":[{"type":"string","format":"date-time"},{"type":"null","format":"date-time"}]},"automated":{"type":"boolean","description":"The Investigator decided on its own, even if the decision was later overridden."},"decided_by":{"oneOf":[{"type":"string","enum":["investigator","member"]},{"type":"null","enum":["investigator","member"]}]},"decision":{"oneOf":[{"type":"object","description":"How the item left the Investigator queue. `decided_by`, `original_outcome` and `overrides` are returned by the accept and override endpoints and the report; the `investigator` block of a session decision carries the other fields.","properties":{"outcome":{"type":"string","enum":["accepted","edited","overridden","decided_elsewhere","automated"],"description":"`accepted` or `edited` took the recommendation (`edited` with a rewritten narrative), `overridden` took another action, `decided_elsewhere` is a decision taken outside the Investigator while the report was open, `automated` is a decision the Investigator took on its own."},"action":{"type":"string","enum":["approve","decline","escalate","request"]},"actor_email":{"oneOf":[{"type":"string"},{"type":"null"}]},"actor_name":{"oneOf":[{"type":"string"},{"type":"null"}]},"override_category":{"oneOf":[{"type":"string","enum":["missing_context","needs_information","policy_differs","evidence_misread","other",""]},{"type":"null","enum":["missing_context","needs_information","policy_differs","evidence_misread","other",""]}]},"override_reason":{"oneOf":[{"type":"string"},{"type":"null"}]},"final_status":{"type":"string","description":"The item's status after the decision."},"agreed":{"oneOf":[{"type":"boolean","description":"Whether the decision matched the recommendation."},{"type":"null","description":"Whether the decision matched the recommendation."}]},"decided_at":{"type":"string","format":"date-time"},"billed":{"type":"boolean","description":"The review was charged."},"decided_by":{"type":"string","enum":["investigator","member"]},"original_outcome":{"oneOf":[{"type":"object","description":"The decision the Investigator took on its own, unchanged by later overrides. Null for a decision the team took.","properties":{"action":{"type":"string"},"final_status":{"type":"string"},"decided_at":{"type":"string","format":"date-time"}}},{"type":"null","description":"The decision the Investigator took on its own, unchanged by later overrides. Null for a decision the team took.","properties":{"action":{"type":"string"},"final_status":{"type":"string"},"decided_at":{"type":"string","format":"date-time"}}}]},"overrides":{"type":"array","description":"Every override of a decision the Investigator took on its own, oldest first.","items":{"type":"object","properties":{"action":{"type":"string"},"actor_email":{"oneOf":[{"type":"string"},{"type":"null"}]},"actor_name":{"oneOf":[{"type":"string"},{"type":"null"}]},"override_category":{"type":"string"},"override_reason":{"type":"string"},"previous_status":{"type":"string"},"final_status":{"type":"string"},"agreed":{"oneOf":[{"type":"boolean"},{"type":"null"}]},"overridden_at":{"type":"string","format":"date-time"}}}}}},{"type":"null"}]}},"uniqueKey":"investigator.oneOf.1","typeLabel":"null"}],"uniqueKey":"investigator","typeLabel":"object | null"},"biometric_retention":{"type":"object","description":"When the live biometric data of this session is deleted.","required":["jurisdictions","deletes_at"],"properties":{"jurisdictions":{"type":"array","items":{"type":"string","uniqueKey":"biometric_retention.jurisdictions.items.[INDEX]","typeLabel":"string"},"description":"Codes of the US states whose biometric rules set a deletion limit for this person (`US` when the state is unknown). Empty when none applies.","isRequired":true,"uniqueKey":"biometric_retention.jurisdictions","typeLabel":"string[]"},"deletes_at":{"oneOf":[{"type":"string","format":"date-time","description":"The date the live biometric data (face images and templates) of this session is deleted, from your application's retention setting and, where one applies, the legal limit for the person's jurisdiction. `null` when no date applies yet.","isRequired":true,"uniqueKey":"biometric_retention.deletes_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","description":"The date the live biometric data (face images and templates) of this session is deleted, from your application's retention setting and, where one applies, the legal limit for the person's jurisdiction. `null` when no date applies yet.","isRequired":true,"uniqueKey":"biometric_retention.deletes_at.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"biometric_retention.deletes_at","typeLabel":"string\u003cdate-time> | null"}},"uniqueKey":"biometric_retention","typeLabel":"object"},"fraud_check":{"oneOf":[{"type":"object","additionalProperties":true,"description":"The result of a Fraud Check API call. `null` for every other session.","uniqueKey":"fraud_check.oneOf.0","typeLabel":"object"},{"type":"null","additionalProperties":true,"description":"The result of a Fraud Check API call. `null` for every other session.","uniqueKey":"fraud_check.oneOf.1","typeLabel":"null"}],"uniqueKey":"fraud_check","typeLabel":"object | null"},"full_session_video":{"oneOf":[{"type":"string","format":"uri","description":"Expiring URL of the full-session recording. Returned only when your organization records full-session video.","uniqueKey":"full_session_video.oneOf.0","typeLabel":"string\u003curi>"},{"type":"null","format":"uri","description":"Expiring URL of the full-session recording. Returned only when your organization records full-session video.","uniqueKey":"full_session_video.oneOf.1","typeLabel":"null"}],"uniqueKey":"full_session_video","typeLabel":"string\u003curi> | null"},"full_session_video_recorded_at":{"oneOf":[{"type":"string","format":"date-time","description":"When the full-session recording was made. Returned only when your organization records full-session video.","uniqueKey":"full_session_video_recorded_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","description":"When the full-session recording was made. Returned only when your organization records full-session video.","uniqueKey":"full_session_video_recorded_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"full_session_video_recorded_at","typeLabel":"string\u003cdate-time> | null"}},"uniqueKey":"","typeLabel":"object"},"examples":{"User session imported":{"title":"User session imported","value":{"session_id":"11111111-2222-3333-4444-555555555555","session_kind":"user","shared_from_session":"99999999-8888-7777-6666-555555555555","session_number":43762,"session_url":null,"status":"In Review","workflow_id":"9f9b1234-aaaa-bbbb-cccc-1234567890ab","vendor_data":"user-1","created_at":"2026-05-17T08:42:11Z","expires_at":"2026-05-24T08:42:11Z"}},"Business session imported":{"title":"Business session imported","value":{"session_id":"22222222-3333-4444-5555-666666666666","session_kind":"business","shared_from_session":"88888888-7777-6666-5555-444444444444","session_number":982,"session_url":null,"status":"Approved","workflow_id":"9f9b1234-aaaa-bbbb-cccc-1234567890ab","vendor_data":"company-1"}}},"exampleType":"examples"}},"exampleType":"examples"},"5246dcba-1d97-4544-a82b-716d2fcc3cf6":{"description":"Validation error (token invalid, expired, wrong target, or references a session that no longer exists).","content":{"application/json":{"examples":{"Invalid Share Token":{"title":"Invalid Share Token","value":{"share_token":["Invalid share token."]}},"Expired Share Token":{"title":"Expired Share Token","value":{"share_token":["Share token has expired."]}},"Wrong audience":{"title":"Wrong audience","value":{"share_token":["This token is not valid for this application."]}},"Original missing":{"title":"Original missing","value":{"share_token":["Original session does not exist."]}}},"exampleType":"examples"}},"exampleType":"examples"},"3ec67817-e338-43ae-9169-837982a4e4e6":{"description":"Missing API key (a wrong, revoked or expired key gets `401`), or this source session has already been imported into the calling application (one redeem per receiver).","content":{"application/json":{"examples":{"Forbidden":{"title":"Forbidden","value":{"detail":"You do not have permission to perform this action."}},"Already imported":{"title":"Already imported","value":{"detail":"This session has already been shared with your application."}}},"exampleType":"examples"}},"exampleType":"examples"},"4cabc25a-c5cc-487c-a6c2-9c40e4801ac8":{"description":"`workflow_id` does not belong to the calling application.","content":{"application/json":{"examples":{"Workflow not found":{"title":"Workflow not found","value":{"detail":"Workflow does not exist for this application."}}},"exampleType":"examples"}},"exampleType":"examples"}},"security":{"bd6bfe85-d48e-442d-a164-024062db5cae":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"x-api-key","description":"Your application's API key, from Developers -> API keys in the Business Console. The primary key has full access. A named key can be scoped: none, read or write per resource, limited to some workflows or to approved sessions, to a list of IP addresses, and to an expiry date. 401 means the key is wrong, revoked or expired; 403 means no key was sent, the key has no access to this resource or action, or the request came from an address outside its IP list; 404 on a session route means the session is outside the key's workflows or statuses. A key without media access receives image, video and PDF URLs as null, and a key without sessions write receives session links and tokens as null. See https://docs.didit.me/console/api-keys.","scopes":[],"schemeName":"ApiKeyAuth"}}},"servers":{"b0ba96d4-d4bf-4592-a911-47e2a156ceb7":{"url":"https://verification.didit.me"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"apiKey","in":"header","name":"x-api-key","description":"Your application's API key, from Developers -> API keys in the Business Console. The primary key has full access. A named key can be scoped: none, read or write per resource, limited to some workflows or to approved sessions, to a list of IP addresses, and to an expiry date. 401 means the key is wrong, revoked or expired; 403 means no key was sent, the key has no access to this resource or action, or the request came from an address outside its IP list; 404 on a session route means the session is outside the key's workflows or statuses. A key without media access receives image, video and PDF URLs as null, and a key without sessions write receives session links and tokens as null. See https://docs.didit.me/console/api-keys.","scopes":[],"schemeName":"ApiKeyAuth"},"schema":{"title":"x-api-key","type":"string","description":"Your application's API key, from Developers -> API keys in the Business Console. The primary key has full access. A named key can be scoped: none, read or write per resource, limited to some workflows or to approved sessions, to a list of IP addresses, and to an expiry date. 401 means the key is wrong, revoked or expired; 403 means no key was sent, the key has no access to this resource or action, or the request came from an address outside its IP list; 404 on a session route means the session is outside the key's workflows or statuses. A key without media access receives image, video and PDF URLs as null, and a key without sessions write receives session links and tokens as null. See https://docs.didit.me/console/api-keys.","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"ApiKeyAuth","name":"x-api-key"}],"title":"ApiKeyAuth"}]},"originalFileLocation":"openapi-25.json"},"subdomain":"didit-0f962782","siteName":"Didit Docs","title":"Import Shared Session API: Reusable KYC \u0026 KYB - Didit Docs","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{"en":{"href":"/sessions-api/share-session/import","matchLevel":0},"es":{"href":"/es/sessions-api/share-session/import","matchLevel":1},"pt-BR":{"href":"/pt-br/sessions-api/share-session/import","matchLevel":1},"ja":{"href":"/ja/sessions-api/share-session/import","matchLevel":1},"de":{"href":"/de/sessions-api/share-session/import","matchLevel":1},"fr":{"href":"/fr/sessions-api/share-session/import","matchLevel":1},"it":{"href":"/it/sessions-api/share-session/import","matchLevel":1},"pt":{"href":"/pt/sessions-api/share-session/import","matchLevel":1},"ca":{"href":"/ca/sessions-api/share-session/import","matchLevel":1},"id":{"href":"/id/sessions-api/share-session/import","matchLevel":1},"ru":{"href":"/ru/sessions-api/share-session/import","matchLevel":1},"ko":{"href":"/ko/sessions-api/share-session/import","matchLevel":1},"zh":{"href":"/zh/sessions-api/share-session/import","matchLevel":1},"ar":{"href":"/ar/sessions-api/share-session/import","matchLevel":1},"hi":{"href":"/hi/sessions-api/share-session/import","matchLevel":1}}},"lastModified":"2026-11-12T09:05:22.397Z","gitLastModified":"2026-11-01T10:56:28.000Z","originalFileLocation":"sessions-api/share-session/import.mdx","locale":"en"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"POST /v3/session/import-shared/ to import a KYC or KYB session via a partner share token. Reusable identity, no re-verification, pay-per-use pricing.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Didit Docs\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/didit-0f962782/h7Er2opLBVoQwrdf/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/didit-0f962782/h7Er2opLBVoQwrdf/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/didit-0f962782/h7Er2opLBVoQwrdf/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/didit-0f962782/h7Er2opLBVoQwrdf/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/didit-0f962782/h7Er2opLBVoQwrdf/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/didit-0f962782/h7Er2opLBVoQwrdf/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/didit-0f962782/h7Er2opLBVoQwrdf/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/didit-0f962782/h7Er2opLBVoQwrdf/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/didit-0f962782/h7Er2opLBVoQwrdf/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Import Shared Session API: Reusable KYC \u0026amp; KYB - Didit Docs\">\u003cmeta data-mint-head property=\"og:description\" content=\"POST /v3/session/import-shared/ to import a KYC or KYB session via a partner share token. Reusable identity, no re-verification, pay-per-use pricing.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Didit Docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.didit.me/sessions-api/share-session/import\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://didit-0f962782.mintlify.site/_mintlify/api/og/v2?division=User+and+Business+Verifications\u0026amp;title=Import+Shared+Session+API%3A+Reusable+KYC+%26+KYB\u0026amp;description=POST+%2Fv3%2Fsession%2Fimport-shared%2F+to+import+a+KYC+or+KYB+session+via+a+partner+share+token.+Reusable+identity%2C+no+re-verification%2C+pay-per-use+pricing.\u0026amp;theme=6763de7356559382b06288d9\u0026amp;signature=dc82999f793c8aaeea5acb07143034d5888f0d6f37ca7391c6b5d43ee150e910\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Import Shared Session API: Reusable KYC \u0026amp; KYB - Didit Docs\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"POST /v3/session/import-shared/ to import a KYC or KYB session via a partner share token. Reusable identity, no re-verification, pay-per-use pricing.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://didit-0f962782.mintlify.site/_mintlify/api/og/v2?division=User+and+Business+Verifications\u0026amp;title=Import+Shared+Session+API%3A+Reusable+KYC+%26+KYB\u0026amp;description=POST+%2Fv3%2Fsession%2Fimport-shared%2F+to+import+a+KYC+or+KYB+session+via+a+partner+share+token.+Reusable+identity%2C+no+re-verification%2C+pay-per-use+pricing.\u0026amp;theme=6763de7356559382b06288d9\u0026amp;signature=dc82999f793c8aaeea5acb07143034d5888f0d6f37ca7391c6b5d43ee150e910\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/didit-0f962782/h7Er2opLBVoQwrdf/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Didit Docs\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#2567FF\">\u003cmeta data-mint-head name=\"theme-color\" content=\"#2567FF\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.didit.me/sessions-api/share-session/import\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/sessions-api/share-session/import.md\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"en\" href=\"https://docs.didit.me/sessions-api/share-session/import\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"es\" href=\"https://docs.didit.me/es/sessions-api/share-session/import\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"pt-BR\" href=\"https://docs.didit.me/pt-br/sessions-api/share-session/import\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"ja\" href=\"https://docs.didit.me/ja/sessions-api/share-session/import\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"de\" href=\"https://docs.didit.me/de/sessions-api/share-session/import\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"fr\" href=\"https://docs.didit.me/fr/sessions-api/share-session/import\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"it\" href=\"https://docs.didit.me/it/sessions-api/share-session/import\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"pt\" href=\"https://docs.didit.me/pt/sessions-api/share-session/import\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"ca\" href=\"https://docs.didit.me/ca/sessions-api/share-session/import\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"id\" href=\"https://docs.didit.me/id/sessions-api/share-session/import\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"ru\" href=\"https://docs.didit.me/ru/sessions-api/share-session/import\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"ko\" href=\"https://docs.didit.me/ko/sessions-api/share-session/import\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"zh\" href=\"https://docs.didit.me/zh/sessions-api/share-session/import\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"ar\" href=\"https://docs.didit.me/ar/sessions-api/share-session/import\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"hi\" href=\"https://docs.didit.me/hi/sessions-api/share-session/import\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"x-default\" href=\"https://docs.didit.me/sessions-api/share-session/import\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://didit.me/#organization\",\"name\":\"Didit\",\"legalName\":\"Didit Protocol\",\"url\":\"https://didit.me\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://didit.me/logos/primary-horizontal-light.png\"},\"sameAs\":[\"https://www.linkedin.com/company/91001155\",\"https://www.youtube.com/@getdidit\",\"https://github.com/didit-protocol\",\"https://x.com/didit\"]},{\"@type\":\"WebSite\",\"@id\":\"https://docs.didit.me#website\",\"name\":\"Didit Docs\",\"url\":\"https://docs.didit.me\",\"publisher\":{\"@id\":\"https://didit.me/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.didit.me/sessions-api/share-session/import#webpage\",\"url\":\"https://docs.didit.me/sessions-api/share-session/import\",\"name\":\"Import Shared Session API: Reusable KYC \u0026 KYB\",\"description\":\"POST /v3/session/import-shared/ to import a KYC or KYB session via a partner share token. Reusable identity, no re-verification, pay-per-use pricing.\",\"dateModified\":\"2026-11-01T10:56:28.000Z\",\"isPartOf\":{\"@id\":\"https://docs.didit.me#website\"},\"breadcrumb\":{\"@id\":\"https://docs.didit.me/sessions-api/share-session/import#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.didit.me/sessions-api/share-session/import#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"User and Business Verifications\",\"item\":\"https://docs.didit.me/sessions-api/overview\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Import Shared Session API: Reusable KYC \u0026 KYB\",\"item\":\"https://docs.didit.me/sessions-api/share-session/import\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.didit.me/sessions-api/share-session/import#apireference\",\"headline\":\"Import Shared Session API: Reusable KYC \u0026 KYB\",\"name\":\"Import Shared Session API: Reusable KYC \u0026 KYB\",\"description\":\"POST /v3/session/import-shared/ to import a KYC or KYB session via a partner share token. Reusable identity, no re-verification, pay-per-use pricing.\",\"url\":\"https://docs.didit.me/sessions-api/share-session/import\",\"mainEntityOfPage\":{\"@id\":\"https://docs.didit.me/sessions-api/share-session/import#webpage\"},\"dateModified\":\"2026-11-01T10:56:28.000Z\",\"keywords\":\"import shared session API, reusable KYC, reusable identity, partner KYC import, share token API, identity verification API, POST import-shared, cross-organization KYC, pay-per-call KYC, Didit API\",\"publisher\":{\"@id\":\"https://didit.me/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.didit.me#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Didit Docs\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Didit\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/sessions-api/share-session/import.md","siteName":"Didit Docs","nav":{"global":null,"languages":[{"language":"en","tabs":[{"tab":"Get Started","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/rocket.svg","pages":[{"title":"Get Started","href":""}]},{"tab":"Integrate / SDKs","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/code.svg","pages":[{"title":"Integrate / SDKs","href":"/integration/sdks"}]},{"tab":"API Reference","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/code.svg","groups":[{"group":"Overview","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/overview.svg","pages":[{"title":"Didit API Reference: Identity Verification REST API","sidebarTitle":"API Reference","href":"/api-reference/overview"},{"title":"Healthcheck API: Public Liveness Probe","sidebarTitle":"Healthcheck","openapi":"openapi-healthcheck.json GET /system/healthcheck","href":"/api-reference/healthcheck"},{"title":"Service Status API: Public Didit Status Feed","sidebarTitle":"Service status","openapi":"openapi-25.json GET /v3/status/","href":"/api-reference/service-status"},{"title":"Bank Verification Pricing API: Public Price Feed","sidebarTitle":"Bank verification prices","openapi":"openapi-25.json GET /v3/organization/bank-verification-pricing/","href":"/api-reference/bank-verification-pricing"}]},{"group":"User and Business Verifications","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/user-verifications.svg","pages":[{"title":"Sessions API: Unified KYC \u0026 KYB Verification","sidebarTitle":"Overview","href":"/sessions-api/overview"},{"title":"Create Session API: Start KYC or KYB Verification","sidebarTitle":"Create Session","openapi":"openapi-25.json POST /v3/session/","href":"/sessions-api/create-session"},{"title":"Import Data from Another Provider","openapi":"openapi-25.json POST /v3/session/imports/","href":"/sessions-api/import-verifications"},{"title":"Retrieve Session API: KYC \u0026 KYB Decision Data","sidebarTitle":"Retrieve Session","openapi":"openapi-25.json GET /v3/session/{sessionId}/decision/","href":"/sessions-api/retrieve-session"},{"title":"List Sessions API: Filter KYC \u0026 KYB Sessions","sidebarTitle":"List Sessions","openapi":"openapi-25.json GET /v3/sessions/","href":"/sessions-api/list-sessions"},{"title":"Update Session Status API: Approve \u0026 Decline","sidebarTitle":"Update Session Status","openapi":"openapi-25.json PATCH /v3/session/{sessionId}/update-status/","href":"/sessions-api/update-status"},{"title":"Preview Resubmission Email","openapi":"openapi-25.json POST /v3/session/{sessionId}/resubmission-preview/","href":"/sessions-api/preview-resubmission"},{"title":"Preview Decision Email API: Approved and Declined Emails","sidebarTitle":"Preview Decision Email","openapi":"openapi-25.json POST /v3/session/{sessionId}/decision-email-preview/","href":"/sessions-api/preview-decision-email"},{"title":"Update Feature Status API: Approve/Decline a Single Step","sidebarTitle":"Update Feature Status","openapi":"openapi-25.json PATCH /v3/session/{sessionId}/features/{nodeId}/update-status/","href":"/sessions-api/update-feature-status"},{"title":"List Feature Overrides API: Step Status History","sidebarTitle":"List Feature Overrides","openapi":"openapi-25.json GET /v3/session/{sessionId}/features/overrides/","href":"/sessions-api/list-feature-overrides"},{"title":"Cancel Feature Override API: Drop a Pending Step Override","sidebarTitle":"Cancel Feature Override","openapi":"openapi-25.json POST /v3/session/{sessionId}/features/overrides/{overrideId}/cancel/","href":"/sessions-api/cancel-feature-override"},{"title":"Update AML Hit Status API: Clear \u0026 Confirm Matches","sidebarTitle":"Update AML Hit Status","openapi":"openapi-25.json PATCH /v3/session/{sessionId}/update-aml-hit-status/","href":"/sessions-api/update-aml-hit-status"},{"title":"Update Session Data API: Fix KYC \u0026 KYB Fields","sidebarTitle":"Update Session Data","href":"/sessions-api/update-data"},{"title":"Update AML Check Status API","sidebarTitle":"Update AML Check Status","openapi":"openapi-25.json PATCH /v3/session/{sessionId}/update-aml-status/","href":"/sessions-api/update-aml-status"},{"title":"Update Document AI Data API","sidebarTitle":"Update Document AI Data","openapi":"openapi-25.json PATCH /v3/document-ai/{sessionId}/documents/{documentUuid}/","href":"/sessions-api/update-document-ai-data"},{"title":"Regenerate Key People KYC Session API","sidebarTitle":"Regenerate Key People KYC Session","openapi":"openapi-25.json POST /v3/session/{sessionId}/kyb/parties/{partyUuid}/regenerate/","href":"/sessions-api/regenerate-kyb-party"},{"title":"Upload KYB Documents API","sidebarTitle":"Upload KYB Documents","openapi":"openapi-25.json POST /v3/session/{sessionId}/kyb/documents/","href":"/sessions-api/kyb-upload-documents"},{"title":"List KYB Extracted Parties API","sidebarTitle":"List KYB Extracted Parties","openapi":"openapi-25.json GET /v3/session/{sessionId}/kyb/extracted-parties/","href":"/sessions-api/kyb-extracted-parties"},{"title":"List KYB Party Drafts API","sidebarTitle":"List KYB Party Drafts","openapi":"openapi-25.json GET /v3/session/{sessionId}/kyb/parties/drafts/","href":"/sessions-api/kyb-list-party-drafts"},{"title":"Create KYB Party Draft API","sidebarTitle":"Create KYB Party Draft","openapi":"openapi-25.json POST /v3/session/{sessionId}/kyb/parties/drafts/","href":"/sessions-api/kyb-create-party-draft"},{"title":"Edit KYB Party Draft API","sidebarTitle":"Edit KYB Party Draft","openapi":"openapi-25.json PATCH /v3/session/{sessionId}/kyb/parties/drafts/{draftId}/","href":"/sessions-api/kyb-update-party-draft"},{"title":"Delete KYB Party Draft API","sidebarTitle":"Delete KYB Party Draft","openapi":"openapi-25.json DELETE /v3/session/{sessionId}/kyb/parties/drafts/{draftId}/","href":"/sessions-api/kyb-delete-party-draft"},{"title":"Submit KYB Key People API","sidebarTitle":"Submit KYB Key People","openapi":"openapi-25.json POST /v3/session/{sessionId}/kyb/parties/submit/","href":"/sessions-api/kyb-submit-parties"},{"title":"Add Images to a Session API","sidebarTitle":"Add Images to a Session","openapi":"openapi-25.json PATCH /v3/session/{sessionId}/add-images/","href":"/sessions-api/add-images"},{"title":"Delete Session API: GDPR Right-to-Be-Forgotten","sidebarTitle":"Delete Session","openapi":"openapi-25.json DELETE /v3/session/{sessionId}/delete/","href":"/sessions-api/delete-session"},{"title":"Generate PDF API: KYC \u0026 KYB Compliance Reports","sidebarTitle":"Generate PDF","openapi":"openapi-25.json GET /v3/session/{sessionId}/generate-pdf/","href":"/sessions-api/generate-pdf"},{"title":"Export Session Files API: Download Every File as One ZIP","sidebarTitle":"Export files","openapi":"openapi-25.json POST /v3/session/{sessionId}/files-export/","href":"/sessions-api/export-files"},{"title":"Get Session Files Export API: Status and Download Link","sidebarTitle":"Get files export","openapi":"openapi-25.json GET /v3/session/{sessionId}/files-export/{exportId}/","href":"/sessions-api/get-files-export"},{"group":"E-signatures","pages":[{"title":"Download Signed Document API: Signed PDF","sidebarTitle":"Download a Signed Document","openapi":"openapi-25.json GET /v3/session/{sessionId}/signatures/{nodeId}/documents/{documentId}/file/","href":"/sessions-api/electronic-signature/download-signed-document"},{"title":"Signature Evidence API: Audit Trail PDF","sidebarTitle":"Download the Signature Evidence","openapi":"openapi-25.json GET /v3/session/{sessionId}/signatures/{nodeId}/evidence/","href":"/sessions-api/electronic-signature/download-evidence"},{"title":"Signature Image API: Adopted Signature PNG","sidebarTitle":"Download a Signature Image","openapi":"openapi-25.json GET /v3/session/{sessionId}/signatures/{nodeId}/fields/{fieldId}/image/","href":"/sessions-api/electronic-signature/download-field-image"},{"title":"Validate Signatures API: Re-check Signed PDFs","sidebarTitle":"Validate Signatures","openapi":"openapi-25.json POST /v3/session/{sessionId}/signatures/{nodeId}/validate/","href":"/sessions-api/electronic-signature/validate-signatures"}]},{"title":"Share Session API: Reusable KYC Between Partners","sidebarTitle":"Overview","href":"/sessions-api/share-session/overview"},{"title":"Share Session API: Generate Share Token","sidebarTitle":"Share Session","description":"POST /v3/session/{id}/share/ to generate a time-limited share token for reusable KYC or KYB. JWT-signed, partner-ready, pay-per-call, no contracts.","openapi":"openapi-25.json POST /v3/session/{sessionId}/share/","href":"/sessions-api/share-session/share"},{"title":"Import Shared Session API: Reusable KYC \u0026 KYB","sidebarTitle":"Import Shared Session","openapi":"openapi-25.json POST /v3/session/import-shared/","href":"/sessions-api/share-session/import"}]},{"group":"Lists","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/lists.svg","pages":[{"title":"Lists API: Blocklists \u0026 Allowlists","sidebarTitle":"Overview","description":"Manage Didit blocklists, allowlists, and custom lists for KYC, fraud, and transaction screening. All-in-one identity infrastructure, pay-per-call.","href":"/management-api/lists/overview"},{"title":"List All Lists API: Blocklists \u0026 Allowlists","sidebarTitle":"List Lists","openapi":"openapi-25.json GET /v3/lists/","href":"/management-api/lists/list"},{"title":"Create List API: Allowlist \u0026 Custom List","sidebarTitle":"Create List","openapi":"openapi-25.json POST /v3/lists/","href":"/management-api/lists/create"},{"title":"Get List API: Retrieve Compliance List","sidebarTitle":"Get List","openapi":"openapi-25.json GET /v3/lists/{list_uuid}/","href":"/management-api/lists/get"},{"title":"Update List API: Edit Compliance List","sidebarTitle":"Update List","openapi":"openapi-25.json PATCH /v3/lists/{list_uuid}/","href":"/management-api/lists/update"},{"title":"Delete List API: Remove Compliance List","sidebarTitle":"Delete List","openapi":"openapi-25.json DELETE /v3/lists/{list_uuid}/","href":"/management-api/lists/delete"},{"title":"List Entries API: Blocklist \u0026 Allowlist Items","sidebarTitle":"List Entries","openapi":"openapi-25.json GET /v3/lists/{list_uuid}/entries/","href":"/management-api/lists/list-entries"},{"title":"Create List Entry API: Blocklist \u0026 Allowlist","sidebarTitle":"Create List Entry","openapi":"openapi-25.json POST /v3/lists/{list_uuid}/entries/","href":"/management-api/lists/create-entry"},{"title":"Delete List Entry API: Unblock Item","sidebarTitle":"Delete List Entry","openapi":"openapi-25.json DELETE /v3/lists/{list_uuid}/entries/{entry_uuid}/","href":"/management-api/lists/delete-entry"},{"title":"Upload Face API: Biometric Lists","sidebarTitle":"Upload Face","openapi":"openapi-25.json POST /v3/lists/{list_uuid}/entries/face-upload/","href":"/management-api/lists/upload-face"}]},{"group":"Blocklist","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/lists.svg","pages":[{"title":"List Blocklisted Items API","sidebarTitle":"List Blocklisted Items","openapi":"openapi-25.json GET /v3/blocklist/","href":"/management-api/blocklist/list"},{"title":"Add to Blocklist API: Block Session Items","sidebarTitle":"Add to Blocklist","openapi":"openapi-25.json POST /v3/blocklist/add/","href":"/management-api/blocklist/add"},{"title":"Remove from Blocklist API: Unblock Session Items","sidebarTitle":"Remove from Blocklist","openapi":"openapi-25.json POST /v3/blocklist/remove/","href":"/management-api/blocklist/remove"}]},{"group":"Workflows","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/workflows.svg","pages":[{"title":"List Workflows API: Verification Flows","sidebarTitle":"List Workflows","openapi":"openapi-25.json GET /v3/workflows/","href":"/management-api/workflows/list"},{"title":"Create Workflow API: Build KYC Flow","sidebarTitle":"Create Workflow","openapi":"openapi-25.json POST /v3/workflows/","href":"/management-api/workflows/create"},{"title":"Workflow Feature Configs API Reference","sidebarTitle":"Workflow Feature Configs","href":"/management-api/workflows/feature-configs"},{"title":"Get Workflow API: Retrieve KYC Flow","sidebarTitle":"Get Workflow","openapi":"openapi-25.json GET /v3/workflows/{settings_uuid}/","href":"/management-api/workflows/get"},{"title":"Update Workflow API: Edit KYC Flow","sidebarTitle":"Update Workflow","openapi":"openapi-25.json PATCH /v3/workflows/{settings_uuid}/","href":"/management-api/workflows/update"},{"title":"Delete Workflow API: Remove KYC Flow","sidebarTitle":"Delete Workflow","openapi":"openapi-25.json DELETE /v3/workflows/{settings_uuid}/","href":"/management-api/workflows/delete"}]},{"group":"Questionnaires","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/task-square.svg","pages":[{"title":"List Questionnaires API: KYC Forms","sidebarTitle":"List Questionnaires","openapi":"openapi-25.json GET /v3/questionnaires/","href":"/management-api/questionnaires/list"},{"title":"Create Questionnaire API: Custom KYC Form","sidebarTitle":"Create Questionnaire","openapi":"openapi-25.json POST /v3/questionnaires/","href":"/management-api/questionnaires/create"},{"title":"Get Questionnaire API: Retrieve KYC Form","sidebarTitle":"Get Questionnaire","openapi":"openapi-25.json GET /v3/questionnaires/{questionnaire_uuid}/","href":"/management-api/questionnaires/get"},{"title":"Update Questionnaire API: Edit KYC Form","sidebarTitle":"Update Questionnaire","openapi":"openapi-25.json PATCH /v3/questionnaires/{questionnaire_uuid}/","href":"/management-api/questionnaires/update"},{"title":"Delete Questionnaire API: Remove KYC Form","sidebarTitle":"Delete Questionnaire","openapi":"openapi-25.json DELETE /v3/questionnaires/{questionnaire_uuid}/","href":"/management-api/questionnaires/delete"}]},{"group":"Users","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/users.svg","pages":[{"title":"List Users API: Vendor User Entities","sidebarTitle":"List Users","openapi":"openapi-25.json GET /v3/users/","href":"/management-api/users/list"},{"title":"Create User API: Vendor User Entity","sidebarTitle":"Create User","openapi":"openapi-25.json POST /v3/users/create/","href":"/management-api/users/create"},{"title":"Upload User Face API: Vendor User Profile","sidebarTitle":"Upload User Face","openapi":"openapi-25.json POST /v3/organization/{organization_id}/application/{application_id}/vendor-users/by-id/{didit_internal_id}/faces/upload/","href":"/management-api/users/upload-face"},{"title":"Get User API: Vendor User Entity","sidebarTitle":"Get User","openapi":"openapi-25.json GET /v3/users/{vendor_data}/","href":"/management-api/users/get"},{"title":"User History PDF API: All Sessions of a User","sidebarTitle":"User history PDF","openapi":"openapi-25.json GET /v3/users/{vendor_data}/generate-pdf/","href":"/management-api/users/generate-pdf"},{"title":"Update User API: Vendor User Entity","sidebarTitle":"Update User","openapi":"openapi-25.json PATCH /v3/users/{vendor_data}/","href":"/management-api/users/update"},{"title":"Update User Status API: Block or Flag","sidebarTitle":"Update User Status","openapi":"openapi-25.json PATCH /v3/users/{vendor_data}/update-status/","href":"/management-api/users/update-status"},{"title":"Batch Delete Users API: GDPR Erasure","sidebarTitle":"Batch Delete Users","openapi":"openapi-25.json POST /v3/users/delete/","href":"/management-api/users/delete"}]},{"group":"Biometric Templates","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/liveness.svg","pages":[{"title":"Biometric Templates API","sidebarTitle":"Overview","href":"/management-api/biometric-templates/overview"},{"title":"List Biometric Templates API","sidebarTitle":"List Templates","openapi":"openapi-25.json GET /v3/biometric-templates/","href":"/management-api/biometric-templates/list"},{"title":"Count Biometric Templates API","sidebarTitle":"Count Templates","openapi":"openapi-25.json GET /v3/biometric-templates/count/","href":"/management-api/biometric-templates/count"},{"title":"Get Biometric Template API","sidebarTitle":"Get Template","openapi":"openapi-25.json GET /v3/biometric-templates/{template_uuid}/","href":"/management-api/biometric-templates/get"},{"title":"Purge Biometric Template API","sidebarTitle":"Purge Template","openapi":"openapi-25.json DELETE /v3/biometric-templates/{template_uuid}/","href":"/management-api/biometric-templates/purge"},{"title":"Bulk Purge Biometric Templates API","sidebarTitle":"Bulk Purge","openapi":"openapi-25.json POST /v3/biometric-templates/delete/","href":"/management-api/biometric-templates/batch-purge"}]},{"group":"Businesses","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/businesses.svg","pages":[{"title":"List Businesses API: Vendor KYB Entities","sidebarTitle":"List Businesses","openapi":"openapi-25.json GET /v3/businesses/","href":"/management-api/businesses/list"},{"title":"Create Business API: Vendor KYB Entity","sidebarTitle":"Create Business","openapi":"openapi-25.json POST /v3/businesses/create/","href":"/management-api/businesses/create"},{"title":"Get Business API: Vendor KYB Entity","sidebarTitle":"Get Business","openapi":"openapi-25.json GET /v3/businesses/{vendor_data}/","href":"/management-api/businesses/get"},{"title":"Business Session PDF API","sidebarTitle":"Generate Business Session PDF","openapi":"openapi-25.json GET /v3/organization/{organization_id}/application/{application_id}/businesses/{business_session_id}/pdf/","href":"/management-api/businesses/generate-session-pdf"},{"title":"Update Business API: Vendor KYB Entity","sidebarTitle":"Update Business","openapi":"openapi-25.json PATCH /v3/businesses/{vendor_data}/","href":"/management-api/businesses/update"},{"title":"Update Business Status API: Block or Flag","sidebarTitle":"Update Business Status","openapi":"openapi-25.json PATCH /v3/businesses/{vendor_data}/update-status/","href":"/management-api/businesses/update-status"},{"title":"Batch Delete Businesses API: KYB Erasure","sidebarTitle":"Batch Delete Businesses","openapi":"openapi-25.json POST /v3/businesses/delete/","href":"/management-api/businesses/delete"}]},{"group":"AML Ongoing Monitoring","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/aml-screening.svg","pages":[{"title":"Toggle AML Monitoring for Users API","sidebarTitle":"Toggle for Users","openapi":"openapi-25.json POST /v3/users/aml-monitoring/","href":"/management-api/aml-monitoring/toggle-users"},{"title":"Toggle AML Monitoring for Businesses API","sidebarTitle":"Toggle for Businesses","openapi":"openapi-25.json POST /v3/businesses/aml-monitoring/","href":"/management-api/aml-monitoring/toggle-businesses"},{"title":"Get AML Monitoring Job API","sidebarTitle":"Get AML Monitoring Job","openapi":"openapi-25.json GET /v3/aml-monitoring/jobs/{job_id}/","href":"/management-api/aml-monitoring/get-job"}]},{"group":"Cases","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/clipboard-check.svg","pages":[{"title":"List Cases API","sidebarTitle":"List Cases","openapi":"openapi-25.json GET /v3/organization/{organization_id}/application/{application_id}/cases/","href":"/management-api/cases/list"},{"title":"Create Case API","sidebarTitle":"Create Case","openapi":"openapi-25.json POST /v3/organization/{organization_id}/application/{application_id}/cases/","href":"/management-api/cases/create"},{"title":"Get Case API","sidebarTitle":"Get Case","openapi":"openapi-25.json GET /v3/organization/{organization_id}/application/{application_id}/cases/{case_uuid}/","href":"/management-api/cases/get"},{"title":"Update Case API","sidebarTitle":"Update Case","openapi":"openapi-25.json PATCH /v3/organization/{organization_id}/application/{application_id}/cases/{case_uuid}/","href":"/management-api/cases/update"},{"title":"Delete Case API","sidebarTitle":"Delete Case","openapi":"openapi-25.json DELETE /v3/organization/{organization_id}/application/{application_id}/cases/{case_uuid}/","href":"/management-api/cases/delete"},{"title":"Resolve Case API","sidebarTitle":"Resolve Case","openapi":"openapi-25.json POST /v3/organization/{organization_id}/application/{application_id}/cases/{case_uuid}/resolve/","href":"/management-api/cases/resolve"},{"title":"Request Info Case API","sidebarTitle":"Request Info (Awaiting User)","openapi":"openapi-25.json POST /v3/organization/{organization_id}/application/{application_id}/cases/{case_uuid}/request-info/","href":"/management-api/cases/request-info"},{"title":"Transfer Case API","sidebarTitle":"Transfer Case","openapi":"openapi-25.json POST /v3/organization/{organization_id}/application/{application_id}/cases/{case_uuid}/transfer/","href":"/management-api/cases/transfer"},{"title":"Print Case PDF API","sidebarTitle":"Print Case","openapi":"openapi-25.json GET /v3/organization/{organization_id}/application/{application_id}/cases/{case_uuid}/print/","href":"/management-api/cases/print"},{"title":"Case Analytics API","sidebarTitle":"Case Analytics","openapi":"openapi-25.json GET /v3/organization/{organization_id}/application/{application_id}/cases/statistics/","href":"/management-api/cases/statistics"},{"title":"Bulk Update Case Status API","sidebarTitle":"Bulk Update Case Status","openapi":"openapi-25.json POST /v3/organization/{organization_id}/application/{application_id}/cases/bulk/status/","href":"/management-api/cases/bulk-status"},{"title":"List Case Notes API","sidebarTitle":"List Case Notes","openapi":"openapi-25.json GET /v3/organization/{organization_id}/application/{application_id}/cases/{case_uuid}/notes/","href":"/management-api/cases/list-notes"},{"title":"Create Case Note API","sidebarTitle":"Create Case Note","openapi":"openapi-25.json POST /v3/organization/{organization_id}/application/{application_id}/cases/{case_uuid}/notes/","href":"/management-api/cases/create-note"}]},{"group":"Case Blueprints","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/sliders.svg","pages":[{"title":"List Case Blueprints API","sidebarTitle":"List Case Blueprints","openapi":"openapi-25.json GET /v3/organization/{organization_id}/application/{application_id}/cases/blueprints/","href":"/management-api/case-blueprints/list"},{"title":"Create Case Blueprint API","sidebarTitle":"Create Case Blueprint","openapi":"openapi-25.json POST /v3/organization/{organization_id}/application/{application_id}/cases/blueprints/","href":"/management-api/case-blueprints/create"},{"title":"Draft case blueprint with AI API","sidebarTitle":"Draft with AI","openapi":"openapi-25.json POST /v3/organization/{organization_id}/application/{application_id}/cases/blueprints/ai-draft/","href":"/management-api/case-blueprints/ai-draft"},{"title":"Install Blueprint Presets API","sidebarTitle":"Install Blueprint Presets","openapi":"openapi-25.json POST /v3/organization/{organization_id}/application/{application_id}/cases/blueprints/presets/install/","href":"/management-api/case-blueprints/install-presets"}]},{"group":"Networks","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/link.svg","pages":[{"title":"List Fraud Networks API","sidebarTitle":"List Networks","openapi":"openapi-25.json GET /v3/organization/{organization_id}/application/{application_id}/networks/","href":"/management-api/networks/list"},{"title":"Get Fraud Network API","sidebarTitle":"Get Network","openapi":"openapi-25.json GET /v3/organization/{organization_id}/application/{application_id}/networks/{network_uuid}/","href":"/management-api/networks/get"},{"title":"Add a Tag to a Fraud Network API","sidebarTitle":"Add Network Tag","openapi":"openapi-25.json POST /v3/organization/{organization_id}/application/{application_id}/networks/{network_uuid}/tags/add/","href":"/management-api/networks/add-tag"},{"title":"Remove a Tag from a Fraud Network API","sidebarTitle":"Remove Network Tag","openapi":"openapi-25.json POST /v3/organization/{organization_id}/application/{application_id}/networks/{network_uuid}/tags/remove/","href":"/management-api/networks/remove-tag"},{"title":"Fraud Network Graph API","sidebarTitle":"Get Network Graph","openapi":"openapi-25.json GET /v3/organization/{organization_id}/application/{application_id}/networks/{network_uuid}/graph/","href":"/management-api/networks/graph"},{"title":"List Fraud Network Members API","sidebarTitle":"List Network Members","openapi":"openapi-25.json GET /v3/organization/{organization_id}/application/{application_id}/networks/{network_uuid}/members/","href":"/management-api/networks/members"},{"title":"List Fraud Network Signals API","sidebarTitle":"List Network Signals","openapi":"openapi-25.json GET /v3/organization/{organization_id}/application/{application_id}/networks/{network_uuid}/signals/","href":"/management-api/networks/signals"},{"title":"Fraud Network Timeline API","sidebarTitle":"Get Network Timeline","openapi":"openapi-25.json GET /v3/organization/{organization_id}/application/{application_id}/networks/{network_uuid}/timeline/","href":"/management-api/networks/timeline"},{"title":"Fraud Network Map API","sidebarTitle":"Get Network Map","openapi":"openapi-25.json GET /v3/organization/{organization_id}/application/{application_id}/networks/{network_uuid}/map/","href":"/management-api/networks/map"},{"title":"Network Membership Lookup API","sidebarTitle":"Membership Lookup","href":"/management-api/networks/membership-lookup"}]},{"group":"Async reports","pages":[{"title":"List Async Reports API","sidebarTitle":"List reports","openapi":"openapi-25.json GET /v3/organization/{organization_id}/application/{application_id}/reports/","href":"/management-api/reports/list"},{"title":"Retrieve Async Report API","sidebarTitle":"Retrieve report","openapi":"openapi-25.json GET /v3/organization/{organization_id}/application/{application_id}/reports/{report_uuid}/","href":"/management-api/reports/retrieve"},{"title":"Retry Async Report API","sidebarTitle":"Retry report","openapi":"openapi-25.json POST /v3/organization/{organization_id}/application/{application_id}/reports/{report_uuid}/retry/","href":"/management-api/reports/retry"}]},{"group":"Report Templates","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/task-square.svg","pages":[{"title":"List Report Templates API","sidebarTitle":"List Report Templates","openapi":"openapi-25.json GET /v3/organization/{organization_id}/application/{application_id}/report-templates/","href":"/management-api/report-templates/list"},{"title":"Create Report Template API","sidebarTitle":"Create Report Template","openapi":"openapi-25.json POST /v3/organization/{organization_id}/application/{application_id}/report-templates/","href":"/management-api/report-templates/create"}]},{"group":"Regulatory Reports","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/search-file.svg","pages":[{"title":"Create FIU Report From Case API","sidebarTitle":"Create Report From Case","openapi":"openapi-25.json POST /v3/organization/{organization_id}/application/{application_id}/cases/{case_uuid}/regulatory-reports/","href":"/management-api/regulatory-reports/create-for-case"},{"title":"List FIU Reports API","sidebarTitle":"List Reports","openapi":"openapi-25.json GET /v3/organization/{organization_id}/application/{application_id}/regulatory-reports/","href":"/management-api/regulatory-reports/list"},{"title":"Validate FIU Report API","sidebarTitle":"Validate Report","openapi":"openapi-25.json POST /v3/organization/{organization_id}/application/{application_id}/regulatory-reports/{report_uuid}/validate/","href":"/management-api/regulatory-reports/validate"},{"title":"Finalize FIU Report API","sidebarTitle":"Finalize Report","openapi":"openapi-25.json POST /v3/organization/{organization_id}/application/{application_id}/regulatory-reports/{report_uuid}/finalize/","href":"/management-api/regulatory-reports/finalize"},{"title":"Delete FIU Report API","sidebarTitle":"Delete Report","openapi":"openapi-25.json DELETE /v3/organization/{organization_id}/application/{application_id}/regulatory-reports/{report_uuid}/","href":"/management-api/regulatory-reports/delete"},{"title":"Get FIU Report Download URL API","sidebarTitle":"Get Report Download URL","openapi":"openapi-25.json GET /v3/organization/{organization_id}/application/{application_id}/regulatory-reports/{report_uuid}/download-url/","href":"/management-api/regulatory-reports/download-url"}]},{"group":"Transactions","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/transactions.svg","pages":[{"title":"List Transactions API: KYT Monitoring","sidebarTitle":"List Transactions","openapi":"openapi-25.json GET /v3/transactions/","href":"/management-api/transactions/list"},{"title":"Create Transaction API: KYT Submission","sidebarTitle":"Create Transaction","openapi":"openapi-25.json POST /v3/transactions/","href":"/management-api/transactions/create"},{"title":"Batch Delete Transactions API","sidebarTitle":"Batch Delete Transactions","openapi":"openapi-25.json DELETE /v3/organization/{organization_id}/application/{application_id}/transactions/delete/","href":"/management-api/transactions/delete"},{"title":"Get Transaction API: KYT Detail","sidebarTitle":"Get Transaction","openapi":"openapi-25.json GET /v3/transactions/{transaction_id}/","href":"/management-api/transactions/get"},{"title":"List Transaction Notes API","sidebarTitle":"List Transaction Notes","openapi":"openapi-25.json GET /v3/transactions/{transaction_id}/notes/","href":"/management-api/transactions/list-notes"},{"title":"Create Transaction Note API","sidebarTitle":"Create Transaction Note","openapi":"openapi-25.json POST /v3/transactions/{transaction_id}/notes/","href":"/management-api/transactions/create-note"},{"title":"List Related Transactions API","sidebarTitle":"List Related Transactions","openapi":"openapi-25.json GET /v3/transactions/{transaction_id}/related/","href":"/management-api/transactions/list-related"},{"title":"Transaction PDF Report API","sidebarTitle":"Generate Transaction PDF Report","openapi":"openapi-25.json GET /v3/organization/{organization_id}/application/{application_id}/transactions/{transaction_uuid}/pdf/","href":"/management-api/transactions/generate-pdf"},{"title":"Screen Wallet API: On-demand Crypto AML","sidebarTitle":"Screen Wallet","openapi":"openapi-25.json POST /v3/wallet-screening/","href":"/management-api/transactions/screen-wallet"},{"title":"Wallet Screening PDF Report API","sidebarTitle":"Screen Wallet PDF","openapi":"openapi-25.json POST /v3/wallet-screening/pdf/","href":"/management-api/transactions/screen-wallet-pdf"},{"title":"Mint SDK Transaction Token API: Client-Side KYT","sidebarTitle":"Mint SDK Transaction Token","openapi":"openapi-25.json POST /v3/transactions/sdk-token/","href":"/management-api/transactions/sdk-token"},{"title":"Submit Transaction from an SDK: Client-Side KYT","sidebarTitle":"Submit Transaction (SDK Token)","openapi":"openapi-25.json POST /v1/transactions/","href":"/management-api/transactions/submit-sdk"},{"title":"Get Transaction from an SDK: Client-Side KYT","sidebarTitle":"Get Transaction (SDK Token)","openapi":"openapi-25.json GET /v1/transactions/{transaction_id}/","href":"/management-api/transactions/get-sdk"},{"title":"List Transaction Monitoring Rules API","sidebarTitle":"List Rules","openapi":"openapi-25.json GET /v3/transactions/rules/","href":"/management-api/transactions/rules-list"},{"title":"Create Transaction Monitoring Rule API - KYT Rules","sidebarTitle":"Create Rule","openapi":"openapi-25.json POST /v3/transactions/rules/","href":"/management-api/transactions/rules-create"},{"title":"Get Transaction Monitoring Rule API","sidebarTitle":"Get Rule","openapi":"openapi-25.json GET /v3/transactions/rules/{rule_uuid}/","href":"/management-api/transactions/rules-get"},{"title":"Update Transaction Monitoring Rule API","sidebarTitle":"Update Rule","openapi":"openapi-25.json PATCH /v3/transactions/rules/{rule_uuid}/","href":"/management-api/transactions/rules-update"},{"title":"Delete Transaction Monitoring Rule API","sidebarTitle":"Delete Rule","openapi":"openapi-25.json DELETE /v3/transactions/rules/{rule_uuid}/","href":"/management-api/transactions/rules-delete"},{"title":"Backtest Transaction Monitoring Rules API","sidebarTitle":"Backtest Rules","openapi":"openapi-25.json POST /v3/transactions/rules/backtest/","href":"/management-api/transactions/rules-backtest"},{"title":"Transaction Monitoring Rule Library API - 150+ Presets","sidebarTitle":"List Rule Library","openapi":"openapi-25.json GET /v3/transactions/rules/library/","href":"/management-api/transactions/rules-library"},{"title":"Install Preset Transaction Monitoring Rules API","sidebarTitle":"Install Library Rules","openapi":"openapi-25.json POST /v3/transactions/rules/install/","href":"/management-api/transactions/rules-install"},{"title":"Uninstall Preset Transaction Monitoring Rules API","sidebarTitle":"Uninstall Library Rules","openapi":"openapi-25.json DELETE /v3/transactions/rules/install/","href":"/management-api/transactions/rules-uninstall"}]},{"group":"Monitoring Events","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/transactions.svg","pages":[{"title":"List Monitoring Events API","sidebarTitle":"List Monitoring Events","openapi":"openapi-25.json GET /v3/events/","href":"/management-api/monitoring-events/list"},{"title":"Create Monitoring Event API","sidebarTitle":"Create Monitoring Event","openapi":"openapi-25.json POST /v3/events/","href":"/management-api/monitoring-events/create"},{"title":"Batch Monitoring Events API","sidebarTitle":"Create Monitoring Events in Batch","openapi":"openapi-25.json POST /v3/events/batch/","href":"/management-api/monitoring-events/create-batch"},{"title":"Mint Monitoring SDK Token API","sidebarTitle":"Mint Monitoring SDK Token","openapi":"openapi-25.json POST /v3/events/sdk-token/","href":"/management-api/monitoring-events/sdk-token"},{"title":"Get Monitoring Event API","sidebarTitle":"Get Monitoring Event","openapi":"openapi-25.json GET /v3/events/{event_uuid}/","href":"/management-api/monitoring-events/get"},{"title":"Subject Event Timeline API","sidebarTitle":"Get Subject Event Timeline","openapi":"openapi-25.json GET /v3/events/subjects/{vendor_data}/","href":"/management-api/monitoring-events/subject-timeline"},{"title":"Event Enrichment Metrics API","sidebarTitle":"Get Event Enrichment Metrics","openapi":"openapi-25.json GET /v3/events/enrichment-metrics/","href":"/management-api/monitoring-events/enrichment-metrics"},{"title":"Delete Monitoring Event API","sidebarTitle":"Delete Monitoring Event","openapi":"openapi-25.json DELETE /v3/events/{event_uuid}/delete/","href":"/management-api/monitoring-events/delete"}]},{"group":"Travel Rule","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/transactions.svg","pages":[{"title":"Get Travel Rule Settings API: VASP Profile","sidebarTitle":"Get Travel Rule Settings","openapi":"openapi-25.json GET /v3/travel-rule/settings/","href":"/management-api/travel-rule/get-settings"},{"title":"Update Travel Rule Settings API: Enable \u0026 Configure","sidebarTitle":"Update Travel Rule Settings","openapi":"openapi-25.json PUT /v3/travel-rule/settings/","href":"/management-api/travel-rule/update-settings"},{"title":"Get Travel Rule Networks API","sidebarTitle":"Get Travel Rule Networks","openapi":"openapi-25.json GET /v3/travel-rule/networks/","href":"/management-api/travel-rule/get-networks"},{"title":"Get Travel Rule Network Questionnaire API","sidebarTitle":"Get Network Questionnaire","openapi":"openapi-25.json GET /v3/travel-rule/networks/questionnaire/","href":"/management-api/travel-rule/get-network-questionnaire"},{"title":"Save Travel Rule Network Questionnaire API","sidebarTitle":"Save Network Questionnaire Answers","openapi":"openapi-25.json PUT /v3/travel-rule/networks/questionnaire/","href":"/management-api/travel-rule/update-network-questionnaire"},{"title":"Submit Travel Rule Network Questionnaire API","sidebarTitle":"Submit Network Questionnaire","openapi":"openapi-25.json POST /v3/travel-rule/networks/questionnaire/submit/","href":"/management-api/travel-rule/submit-network-questionnaire"},{"title":"Request Travel Rule Network Access API","sidebarTitle":"Request a Travel Rule Network","openapi":"openapi-25.json POST /v3/travel-rule/networks/{network}/request/","href":"/management-api/travel-rule/request-network"},{"title":"Confirm the Travel Rule Compliance Email API","sidebarTitle":"Send the Compliance Email Confirmation","openapi":"openapi-25.json POST /v3/travel-rule/settings/compliance-email/confirmation/","href":"/management-api/travel-rule/send-compliance-email-confirmation"},{"title":"List Travel Rule Transfers API","sidebarTitle":"List Travel Rule Transfers","openapi":"openapi-25.json GET /v3/travel-rule/transfers/","href":"/management-api/travel-rule/list-transfers"},{"title":"List Unmatched Travel Rule Deposits API","sidebarTitle":"List Unmatched Deposits","openapi":"openapi-25.json GET /v3/travel-rule/unmatched/","href":"/management-api/travel-rule/list-unmatched-deposits"},{"title":"Match Travel Rule Deposit API: Pair a Message","sidebarTitle":"Match Unmatched Deposit","openapi":"openapi-25.json POST /v3/travel-rule/unmatched/{transaction_uuid}/match/","href":"/management-api/travel-rule/match-unmatched-deposit"},{"title":"Travel Rule Transfer Actions API: Finish, Resend, Update","sidebarTitle":"Finish, Cancel, Resend, or Update a Transfer","openapi":"openapi-25.json PATCH /v3/transactions/{transaction_id}/travel-rule/","href":"/management-api/travel-rule/update-transfer"},{"title":"Create or email a Travel Rule end-user link","sidebarTitle":"Create an end-user link","openapi":"openapi-25.json POST /v3/transactions/{transaction_id}/travel-rule/user-link/","href":"/management-api/travel-rule/create-user-link"},{"title":"Confirm Wallet Ownership API: Travel Rule Beneficiary","sidebarTitle":"Confirm or Deny Wallet Ownership","openapi":"openapi-25.json POST /v3/transactions/{transaction_id}/travel-rule/ownership/","href":"/management-api/travel-rule/confirm-ownership"},{"title":"List Travel Rule Messages API","sidebarTitle":"List Travel Rule Messages","openapi":"openapi-25.json GET /v3/transactions/{transaction_id}/travel-rule/messages/","href":"/management-api/travel-rule/list-messages"},{"title":"Travel Rule delivery history API","sidebarTitle":"List delivery history","openapi":"openapi-25.json GET /v3/transactions/{transaction_id}/travel-rule/deliveries/","href":"/management-api/travel-rule/list-deliveries"},{"title":"Send Travel Rule Message API","sidebarTitle":"Send a Travel Rule Message","openapi":"openapi-25.json POST /v3/transactions/{transaction_id}/travel-rule/messages/","href":"/management-api/travel-rule/create-message"},{"title":"Register Inbound Sunrise Transfer API: Travel Rule","sidebarTitle":"Register Inbound (Sunrise) Transfer","openapi":"openapi-25.json POST /v3/travel-rule/inbound/","href":"/management-api/travel-rule/register-inbound"},{"title":"Trigger Test VASP Inbound Transfer API","sidebarTitle":"Trigger Test VASP Inbound Transfer","openapi":"openapi-25.json POST /v3/travel-rule/test-vasp/inbound/","href":"/management-api/travel-rule/trigger-test-vasp-inbound"},{"title":"VASP Directory Search API: Travel Rule Routes","sidebarTitle":"Search the VASP Directory","openapi":"openapi-25.json GET /v3/travel-rule/vasps/","href":"/management-api/travel-rule/search-vasps"},{"title":"Create a private Travel Rule VASP entry","sidebarTitle":"Create a VASP","openapi":"openapi-25.json POST /v3/travel-rule/vasps/","href":"/management-api/travel-rule/create-vasp"},{"title":"Get a VASP Directory Entry API: Travel Rule Routes","sidebarTitle":"Get a VASP Directory Entry","openapi":"openapi-25.json GET /v3/travel-rule/vasps/{vasp_id}/","href":"/management-api/travel-rule/get-vasp"},{"title":"Get a Counterparty VASP Decision API: Travel Rule","sidebarTitle":"Get Your Decision on a VASP","openapi":"openapi-25.json GET /v3/travel-rule/vasps/{vasp_id}/decision/","href":"/management-api/travel-rule/get-vasp-decision"},{"title":"Set a Counterparty VASP Decision API: Travel Rule","sidebarTitle":"Set Your Decision on a VASP","openapi":"openapi-25.json PUT /v3/travel-rule/vasps/{vasp_id}/decision/","href":"/management-api/travel-rule/set-vasp-decision"},{"title":"Clear a Counterparty VASP Decision API: Travel Rule","sidebarTitle":"Clear Your Decision on a VASP","openapi":"openapi-25.json DELETE /v3/travel-rule/vasps/{vasp_id}/decision/","href":"/management-api/travel-rule/clear-vasp-decision"},{"title":"Get a Counterparty VASP Screening API: Travel Rule","sidebarTitle":"Get a VASP's Entity Screening","openapi":"openapi-25.json GET /v3/travel-rule/vasps/{vasp_id}/screening/","href":"/management-api/travel-rule/get-vasp-screening"},{"title":"Screen a Counterparty VASP API: Sanctions Check","sidebarTitle":"Screen a Counterparty VASP","openapi":"openapi-25.json POST /v3/travel-rule/vasps/{vasp_id}/screening/","href":"/management-api/travel-rule/screen-vasp"},{"title":"List VASP Due-Diligence Questionnaires API","sidebarTitle":"List Due-Diligence Questionnaires with a VASP","openapi":"openapi-25.json GET /v3/travel-rule/vasps/{vasp_id}/questionnaires/","href":"/management-api/travel-rule/list-vasp-questionnaires"},{"title":"Send a VASP Due-Diligence Questionnaire API","sidebarTitle":"Send a Due-Diligence Questionnaire to a VASP","openapi":"openapi-25.json POST /v3/travel-rule/vasps/{vasp_id}/questionnaires/","href":"/management-api/travel-rule/send-vasp-questionnaire"},{"title":"List Counterparty Contacts API - Travel Rule Email Rail","sidebarTitle":"List Counterparty Contacts","openapi":"openapi-25.json GET /v3/travel-rule/counterparty-contacts/","href":"/management-api/travel-rule/list-counterparty-contacts"},{"title":"Add a Counterparty Contact API - Travel Rule Email Rail","sidebarTitle":"Add a Counterparty Contact","openapi":"openapi-25.json POST /v3/travel-rule/counterparty-contacts/","href":"/management-api/travel-rule/create-counterparty-contact"},{"title":"Delete a Counterparty Contact API - Travel Rule","sidebarTitle":"Delete a Counterparty Contact","openapi":"openapi-25.json DELETE /v3/travel-rule/counterparty-contacts/{contact_uuid}/","href":"/management-api/travel-rule/delete-counterparty-contact"},{"title":"List Wallet Addresses API: Travel Rule Address Book","sidebarTitle":"List Wallet Addresses","openapi":"openapi-25.json GET /v3/travel-rule/wallet-addresses/","href":"/management-api/travel-rule/list-wallet-addresses"},{"title":"Register Wallet Address API: Travel Rule Address Book","sidebarTitle":"Register Wallet Address","openapi":"openapi-25.json POST /v3/travel-rule/wallet-addresses/","href":"/management-api/travel-rule/create-wallet-address"},{"title":"Import Wallet Addresses API: Travel Rule Address Book","sidebarTitle":"Import Wallet Addresses","openapi":"openapi-25.json POST /v3/travel-rule/wallet-addresses/import/","href":"/management-api/travel-rule/import-wallet-addresses"},{"title":"Update Wallet Address API: Travel Rule Address Book","sidebarTitle":"Update Wallet Address","openapi":"openapi-25.json PATCH /v3/travel-rule/wallet-addresses/{entry_uuid}/","href":"/management-api/travel-rule/update-wallet-address"},{"title":"Delete Wallet Address API: Travel Rule Address Book","sidebarTitle":"Delete Wallet Address","openapi":"openapi-25.json DELETE /v3/travel-rule/wallet-addresses/{entry_uuid}/","href":"/management-api/travel-rule/delete-wallet-address"},{"title":"List Screenshot Wallet Proofs API - Travel Rule Review","sidebarTitle":"List Wallet Proofs to Review","openapi":"openapi-25.json GET /v3/travel-rule/wallet-proofs/","href":"/management-api/travel-rule/list-wallet-proofs"},{"title":"Approve or Reject a Screenshot Wallet Proof API","sidebarTitle":"Decide a Wallet Proof","openapi":"openapi-25.json POST /v3/travel-rule/wallet-proofs/{proof_uuid}/decision/","href":"/management-api/travel-rule/decide-wallet-proof"},{"title":"Mint Wallet-Ownership Widget API: Proof of Control","sidebarTitle":"Mint Wallet-Ownership Widget Session","openapi":"openapi-25.json POST /v3/travel-rule/widget-session/","href":"/management-api/travel-rule/create-widget-session"},{"title":"Get Wallet-Ownership Widget Context API","sidebarTitle":"Get Widget Context","openapi":"openapi-25.json GET /v3/travel-rule/widget/{token}/","href":"/management-api/travel-rule/get-widget-context"},{"title":"Start a Wallet-Ownership Proof API - Travel Rule Widget","sidebarTitle":"Start a Widget Proof","openapi":"openapi-25.json POST /v3/travel-rule/widget/{token}/proofs/","href":"/management-api/travel-rule/create-widget-proof"},{"title":"Submit Wallet-Ownership Proof Evidence API - Travel Rule","sidebarTitle":"Submit Widget Proof Evidence","openapi":"openapi-25.json POST /v3/travel-rule/widget/{token}/proofs/{proof_id}/verify/","href":"/management-api/travel-rule/verify-widget-proof"},{"title":"Widget VASP Selection API: Travel Rule Counterparty","sidebarTitle":"Pick the Counterparty VASP in the Wallet Widget","openapi":"openapi-25.json POST /v3/travel-rule/widget/{token}/vasps/","href":"/management-api/travel-rule/select-widget-vasp"},{"title":"Widget VASP Picker API: Travel Rule Directory Search","sidebarTitle":"Search VASPs from the Wallet Widget","openapi":"openapi-25.json GET /v3/travel-rule/widget/{token}/vasps/","href":"/management-api/travel-rule/search-widget-vasps"},{"title":"Get Email Pickup Info API: Travel Rule Email Rail","sidebarTitle":"Get Email Pickup Info","openapi":"openapi-25.json GET /v3/travel-rule/pickup/{token}/","href":"/management-api/travel-rule/get-pickup"},{"title":"Respond to Email Pickup API: Travel Rule Email Rail","sidebarTitle":"Respond to Email Pickup","openapi":"openapi-25.json POST /v3/travel-rule/pickup/{token}/respond/","href":"/management-api/travel-rule/respond-pickup"},{"title":"List Pickup Messages API - Travel Rule Email Rail","sidebarTitle":"List Pickup Messages","openapi":"openapi-25.json GET /v3/travel-rule/pickup/{token}/messages/","href":"/management-api/travel-rule/list-pickup-messages"},{"title":"Reply in Pickup Portal API - Travel Rule Email Rail","sidebarTitle":"Reply in the Pickup Portal","openapi":"openapi-25.json POST /v3/travel-rule/pickup/{token}/messages/","href":"/management-api/travel-rule/create-pickup-message"},{"title":"Get Join Invitation API - Travel Rule Free Join","sidebarTitle":"Get Join Invitation","openapi":"openapi-25.json GET /v3/travel-rule/join/{token}/","href":"/management-api/travel-rule/get-join-invitation"},{"title":"Register a Free Travel Rule Account API","sidebarTitle":"Register a Free Travel Rule Account","openapi":"openapi-25.json POST /v3/travel-rule/join/{token}/","href":"/management-api/travel-rule/register-join"},{"title":"Verify a Free Travel Rule Account API","sidebarTitle":"Verify a Free Travel Rule Account","openapi":"openapi-25.json POST /v3/travel-rule/join/{token}/verify/","href":"/management-api/travel-rule/verify-join"},{"title":"Get Free Workspace API - Travel Rule Free Join","sidebarTitle":"Get Free Workspace","openapi":"openapi-25.json GET /v3/travel-rule/workspace/","href":"/management-api/travel-rule/get-workspace"},{"title":"Claim a Directory Entry API - Travel Rule Free Join","sidebarTitle":"Claim a Directory Entry","openapi":"openapi-25.json POST /v3/travel-rule/workspace/claim/","href":"/management-api/travel-rule/claim-workspace"},{"title":"Send Domain Code API - Travel Rule Free Join","sidebarTitle":"Send Domain Code","openapi":"openapi-25.json POST /v3/travel-rule/workspace/domain/code/","href":"/management-api/travel-rule/send-workspace-domain-code"},{"title":"Confirm Domain Code API - Travel Rule Free Join","sidebarTitle":"Confirm Domain Code","openapi":"openapi-25.json POST /v3/travel-rule/workspace/domain/confirm/","href":"/management-api/travel-rule/confirm-workspace-domain"},{"title":"Verify Domain by DNS API - Travel Rule Free Join","sidebarTitle":"Verify Domain by DNS","openapi":"openapi-25.json POST /v3/travel-rule/workspace/domain/dns/","href":"/management-api/travel-rule/verify-workspace-domain-dns"},{"title":"Enable Outbound Billing API - Travel Rule Free Join","sidebarTitle":"Enable Outbound Billing","openapi":"openapi-25.json POST /v3/travel-rule/workspace/billing/","href":"/management-api/travel-rule/enable-workspace-billing"}]},{"group":"Session Operations","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/play.svg","pages":[{"title":"Batch Delete Sessions API: KYC Cleanup","sidebarTitle":"Batch Delete Sessions","openapi":"openapi-25.json POST /v3/sessions/delete/","href":"/management-api/sessions/batch-delete"},{"title":"Get Session Deletion Job API","sidebarTitle":"Get Session Deletion Job","openapi":"openapi-25.json GET /v3/sessions/delete/{job_id}/","href":"/management-api/sessions/get-deletion-job"},{"title":"List Session Reviews API: KYC Audit Log","sidebarTitle":"List Session Reviews","openapi":"openapi-25.json GET /v3/sessions/{session_id}/reviews/","href":"/management-api/sessions/list-reviews"},{"title":"Create Session Review API: Manual KYC","sidebarTitle":"Create Session Review","openapi":"openapi-25.json POST /v3/sessions/{session_id}/reviews/","href":"/management-api/sessions/create-review"},{"title":"List Session Events API","sidebarTitle":"List Session Events","openapi":"openapi-25.json GET /v3/session/{sessionId}/events/","href":"/management-api/sessions/list-events"},{"title":"List Session Webhook Deliveries API","sidebarTitle":"List Session Webhook Deliveries","openapi":"openapi-25.json GET /v3/session/{sessionId}/webhooks/","href":"/management-api/sessions/list-webhooks"},{"title":"Get Session Webhook Delivery API","sidebarTitle":"Get Session Webhook Delivery","openapi":"openapi-25.json GET /v3/session/{sessionId}/webhook/{webhook_uuid}","href":"/management-api/sessions/get-webhook"},{"title":"Resend Session Webhook Delivery API","sidebarTitle":"Resend Session Webhook Delivery","openapi":"openapi-25.json POST /v3/session/{sessionId}/webhook/{webhook_uuid}/resend","href":"/management-api/sessions/resend-webhook"},{"title":"List AML Screening History API","sidebarTitle":"List AML Screening History","openapi":"openapi-25.json GET /v3/session/{sessionId}/aml-screening-history/","href":"/management-api/sessions/aml-screening-history"},{"title":"Export AML Screening History as CSV API","sidebarTitle":"Export AML Screening History","openapi":"openapi-25.json GET /v3/session/{sessionId}/aml-screening-history/export/","href":"/management-api/sessions/export-aml-screening-history"}]},{"group":"Customization","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/sliders.svg","pages":[{"title":"Get Branding Customization API","sidebarTitle":"Get Branding","openapi":"openapi-25.json GET /v3/customization/","href":"/management-api/customization/get"},{"title":"Update Branding Customization API","sidebarTitle":"Update Branding","openapi":"openapi-25.json PATCH /v3/customization/","href":"/management-api/customization/update"}]},{"group":"Webhook","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/link.svg","pages":[{"title":"List Webhook Destinations API","sidebarTitle":"List Webhook Destinations","openapi":"openapi-25.json GET /v3/webhook/destinations/","href":"/management-api/webhook/list-destinations"},{"title":"Create Webhook Destination API","sidebarTitle":"Create Webhook Destination","openapi":"openapi-25.json POST /v3/webhook/destinations/","href":"/management-api/webhook/create-destination"},{"title":"Retrieve a Webhook Destination: Management API","sidebarTitle":"Get Webhook Destination","openapi":"openapi-25.json GET /v3/webhook/destinations/{destination_uuid}/","href":"/management-api/webhook/get-destination"},{"title":"Update Webhook Destination API","sidebarTitle":"Update Webhook Destination","openapi":"openapi-25.json PATCH /v3/webhook/destinations/{destination_uuid}/","href":"/management-api/webhook/update-destination"},{"title":"Delete Webhook Destination API","sidebarTitle":"Delete Webhook Destination","openapi":"openapi-25.json DELETE /v3/webhook/destinations/{destination_uuid}/","href":"/management-api/webhook/delete-destination"},{"title":"Get Webhook Configuration API","sidebarTitle":"Get Webhook Configuration","openapi":"openapi-25.json GET /v3/webhook/","href":"/management-api/webhook/get-config"},{"title":"Update Webhook Configuration API","sidebarTitle":"Update Webhook Configuration","openapi":"openapi-25.json PATCH /v3/webhook/","href":"/management-api/webhook/update-config"},{"title":"Webhook Destination Analytics API","sidebarTitle":"Get Webhook Destination Analytics","openapi":"openapi-25.json GET /v3/webhook/destinations/{destination_uuid}/analytics/","href":"/management-api/webhook/destination-analytics"},{"title":"Webhook Destination Failure Activity API","sidebarTitle":"List destination activity","openapi":"openapi-25.json GET /v3/organization/{organization_id}/application/{application_id}/webhook/destinations/{destination_uuid}/activity/","href":"/management-api/webhook/destination-activity"},{"title":"List Webhook Deliveries API","sidebarTitle":"List Webhook Destination Deliveries","openapi":"openapi-25.json GET /v3/webhook/destinations/{destination_uuid}/deliveries/","href":"/management-api/webhook/list-deliveries"},{"title":"Get Webhook Delivery API","sidebarTitle":"Get Webhook Destination Delivery","openapi":"openapi-25.json GET /v3/webhook/destinations/{destination_uuid}/deliveries/{delivery_uuid}/","href":"/management-api/webhook/get-delivery"},{"title":"Resend Webhook Delivery API","sidebarTitle":"Resend Webhook Destination Delivery","openapi":"openapi-25.json POST /v3/webhook/destinations/{destination_uuid}/deliveries/{delivery_uuid}/resend/","href":"/management-api/webhook/resend-delivery"}]},{"group":"Billing","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/billing.svg","pages":[{"title":"Get Credit Balance API: KYC Billing","sidebarTitle":"Get Credit Balance","openapi":"openapi-25.json GET /v3/billing/balance/","href":"/management-api/billing/balance"},{"title":"Top Up Credits API","sidebarTitle":"Top Up Credits","openapi":"openapi-25.json POST /v3/billing/top-up/","href":"/management-api/billing/top-up"}]},{"group":"Analytics","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/overview.svg","pages":[{"title":"Application Analytics API","sidebarTitle":"Get Application Analytics","openapi":"openapi-25.json GET /v3/organization/{organization_id}/application/{application_id}/analytics/","href":"/management-api/analytics/get"},{"title":"Today's Verifications by Hour API","sidebarTitle":"Get Today's Verifications by Hour","openapi":"openapi-25.json GET /v3/organization/{organization_id}/application/{application_id}/analytics/today/","href":"/management-api/analytics/today-by-hour"}]},{"group":"Management API Overview","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/info.svg","pages":[{"title":"Management API v3: Workflows \u0026 Billing","sidebarTitle":"Management API","href":"/sessions-api/management-api"}]},{"group":"Auth API (Programmatic)","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/key.svg","pages":[{"title":"Auth API: Programmatic Registration","sidebarTitle":"Register Account","openapi":"openapi-auth.json POST /programmatic/register/","href":"/auth-api/register"},{"title":"Verify Email API: Get Didit API Credentials","sidebarTitle":"Verify Email","openapi":"openapi-auth.json POST /programmatic/verify-email/","href":"/auth-api/verify-email"},{"title":"Programmatic Login API: Headless Auth Tokens","sidebarTitle":"Login","openapi":"openapi-auth.json POST /programmatic/login/","href":"/auth-api/login"},{"title":"Get Credentials API: Fetch client_id \u0026 api_key","sidebarTitle":"Get Credentials","openapi":"openapi-auth.json GET /organizations/me/{org_id}/applications/{app_id}/","href":"/auth-api/get-credentials"},{"title":"Create Application API: Programmatic Apps","sidebarTitle":"Create Application","openapi":"openapi-auth.json POST /organizations/me/{org_id}/applications/","href":"/auth-api/create-application"},{"title":"Update Application API: Manage Customer Apps","sidebarTitle":"Update Application","openapi":"openapi-auth.json PATCH /organizations/me/{org_id}/applications/{app_id}/","href":"/auth-api/update-application"}]},{"group":"Identity \u0026 Documents","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/id-scan.svg","pages":[{"title":"ID Verification API: Document OCR \u0026 Authenticity","sidebarTitle":"ID Verification API","openapi":"openapi-25.json POST /v3/id-verification/","href":"/standalone-apis/id-verification"},{"title":"Proof of Address API: POA Verification \u0026 OCR","sidebarTitle":"Proof of Address API","openapi":"openapi-25.json POST /v3/poa/","href":"/standalone-apis/proof-of-address"},{"title":"Address Validation API: Verify and Normalise Addresses","sidebarTitle":"Address Validation","openapi":"openapi-25.json POST /v3/address-validation/","href":"/standalone-apis/address-validation"}]},{"group":"Digital ID wallets","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/id-scan.svg","pages":[{"title":"Digital ID Wallet Verification APIs","sidebarTitle":"Digital ID wallet APIs","href":"/standalone-apis/digital-id-wallets"},{"title":"Digital ID Wallet API Catalog","sidebarTitle":"List digital ID wallets","openapi":"openapi-25.json GET /v3/id-verification/wallets/","href":"/standalone-apis/digital-id-wallet-catalog"},{"group":"Start verification","pages":[{"title":"Bank iD CONNECT Verification API","sidebarTitle":"Bank iD CONNECT","openapi":"openapi-25.json POST /v3/id-verification/wallets/bankid-cz/","href":"/api-reference/digital-id-wallets/bankid-cz"},{"title":"BankID Sweden Verification API","sidebarTitle":"BankID Sweden","openapi":"openapi-25.json POST /v3/id-verification/wallets/bankid-se/","href":"/api-reference/digital-id-wallets/bankid-se"},{"title":"Finnish Trust Network Verification API","sidebarTitle":"Finnish Trust Network","openapi":"openapi-25.json POST /v3/id-verification/wallets/ftn/","href":"/api-reference/digital-id-wallets/ftn"},{"title":"Google Wallet ID Verification API","sidebarTitle":"Google Wallet ID","openapi":"openapi-25.json POST /v3/id-verification/wallets/google-wallet/","href":"/api-reference/digital-id-wallets/google-wallet"},{"title":"MitID personal Verification API","sidebarTitle":"MitID personal","openapi":"openapi-25.json POST /v3/id-verification/wallets/mitid/","href":"/api-reference/digital-id-wallets/mitid"},{"title":"Mobile-ID Verification API","sidebarTitle":"Mobile-ID","openapi":"openapi-25.json POST /v3/id-verification/wallets/mobile-id/","href":"/api-reference/digital-id-wallets/mobile-id"},{"title":"Smart-ID Verification API","sidebarTitle":"Smart-ID","openapi":"openapi-25.json POST /v3/id-verification/wallets/smart-id/","href":"/api-reference/digital-id-wallets/smart-id"},{"title":"iDIN full identification Verification API","sidebarTitle":"iDIN full identification","openapi":"openapi-25.json POST /v3/id-verification/wallets/idin/","href":"/api-reference/digital-id-wallets/idin"},{"title":"Auðkenni Verification API","sidebarTitle":"Auðkenni","openapi":"openapi-25.json POST /v3/id-verification/wallets/audkenni/","href":"/api-reference/digital-id-wallets/audkenni"},{"title":"BankID Norway Verification API","sidebarTitle":"BankID Norway","openapi":"openapi-25.json POST /v3/id-verification/wallets/bankid-no/","href":"/api-reference/digital-id-wallets/bankid-no"},{"title":"Buypass ID Verification API","sidebarTitle":"Buypass ID","openapi":"openapi-25.json POST /v3/id-verification/wallets/buypass/","href":"/api-reference/digital-id-wallets/buypass"},{"title":"ConnectID Verification API","sidebarTitle":"ConnectID","openapi":"openapi-25.json POST /v3/id-verification/wallets/connectid/","href":"/api-reference/digital-id-wallets/connectid"},{"title":"Diia Verification API","sidebarTitle":"Diia","openapi":"openapi-25.json POST /v3/id-verification/wallets/diia/","href":"/api-reference/digital-id-wallets/diia"},{"title":"EUDI Wallet Verification API","sidebarTitle":"EUDI Wallet","openapi":"openapi-25.json POST /v3/id-verification/wallets/eudi/","href":"/api-reference/digital-id-wallets/eudi"},{"title":"Estonian ID-card Verification API","sidebarTitle":"Estonian ID-card","openapi":"openapi-25.json POST /v3/id-verification/wallets/idcard-ee/","href":"/api-reference/digital-id-wallets/idcard-ee"},{"title":"FranceConnect Verification API","sidebarTitle":"FranceConnect","openapi":"openapi-25.json POST /v3/id-verification/wallets/franceconnect/","href":"/api-reference/digital-id-wallets/franceconnect"},{"title":"Freja eID Verification API","sidebarTitle":"Freja eID","openapi":"openapi-25.json POST /v3/id-verification/wallets/frejaid/","href":"/api-reference/digital-id-wallets/frejaid"},{"title":"GOV.UK Wallet Verification API","sidebarTitle":"GOV.UK Wallet","openapi":"openapi-25.json POST /v3/id-verification/wallets/govuk-wallet/","href":"/api-reference/digital-id-wallets/govuk-wallet"},{"title":"MojeID Verification API","sidebarTitle":"MojeID","openapi":"openapi-25.json POST /v3/id-verification/wallets/mojeid/","href":"/api-reference/digital-id-wallets/mojeid"},{"title":"OneID Verification API","sidebarTitle":"OneID","openapi":"openapi-25.json POST /v3/id-verification/wallets/oneid/","href":"/api-reference/digital-id-wallets/oneid"},{"title":"Personalausweis Profile 2 Verification API","sidebarTitle":"Personalausweis Profile 2","openapi":"openapi-25.json POST /v3/id-verification/wallets/personalausweis/","href":"/api-reference/digital-id-wallets/personalausweis"},{"title":"UAE PASS Verification API","sidebarTitle":"UAE PASS","openapi":"openapi-25.json POST /v3/id-verification/wallets/uae-pass/","href":"/api-reference/digital-id-wallets/uae-pass"},{"title":"Vipps Plus Verification API","sidebarTitle":"Vipps Plus","openapi":"openapi-25.json POST /v3/id-verification/wallets/vipps/","href":"/api-reference/digital-id-wallets/vipps"},{"title":"eParaksts mobile Verification API","sidebarTitle":"eParaksts mobile","openapi":"openapi-25.json POST /v3/id-verification/wallets/eparaksts-mobile/","href":"/api-reference/digital-id-wallets/eparaksts-mobile"},{"title":"gov.br Verification API","sidebarTitle":"gov.br","openapi":"openapi-25.json POST /v3/id-verification/wallets/govbr/","href":"/api-reference/digital-id-wallets/govbr"},{"title":"itsme Verification API","sidebarTitle":"itsme","openapi":"openapi-25.json POST /v3/id-verification/wallets/itsme/","href":"/api-reference/digital-id-wallets/itsme"}]},{"title":"Get Digital ID Wallet Verification Result","sidebarTitle":"Get wallet verification","openapi":"openapi-25.json GET /v3/id-verification/wallets/verifications/{request_id}/","href":"/standalone-apis/digital-id-wallet-result"},{"title":"Submit a Digital Credentials Wallet Response","sidebarTitle":"Submit wallet response","openapi":"openapi-25.json POST /v3/id-verification/wallets/verifications/{request_id}/response/","href":"/standalone-apis/digital-id-wallet-response"},{"title":"Poll Smart-ID and Mobile-ID Authentication","sidebarTitle":"Poll wallet verification","openapi":"openapi-25.json POST /v3/id-verification/wallets/verifications/{request_id}/poll/","href":"/standalone-apis/digital-id-wallet-poll"},{"title":"Cancel Digital ID Wallet Verification","sidebarTitle":"Cancel wallet verification","openapi":"openapi-25.json POST /v3/id-verification/wallets/verifications/{request_id}/cancel/","href":"/standalone-apis/digital-id-wallet-cancel"}]},{"group":"Document AI","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/document-ai.svg","pages":[{"title":"Document AI API: Custom Document Data Extraction","sidebarTitle":"Document AI API","openapi":"openapi-25.json POST /v3/document-ai/","href":"/standalone-apis/document-ai"}]},{"group":"Database Validation API","pages":[{"title":"Database Validation API: National ID Match","sidebarTitle":"Database Validation API","openapi":"openapi-25.json POST /v3/database-validation/","href":"/standalone-apis/database-validation"}]},{"group":"Database Validation","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/driver-2.svg","pages":[{"group":"🇦🇷 Argentina","pages":[{"title":"Argentina - DNI data verification API: Data Match","sidebarTitle":"Argentina - DNI data verification (RENAPER, no selfie)","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/argentina/renaper-data"},{"title":"Argentina - DNI verification (RENAPER) API","sidebarTitle":"Argentina - DNI verification (RENAPER)","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/argentina/renaper"},{"title":"Argentina Citizens (AFIP) Verification API","sidebarTitle":"Argentina Citizens (AFIP)","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/argentina/citizens"},{"title":"Argentina Credit Bureau Verification API: ID Match","sidebarTitle":"Argentina Credit Bureau","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/argentina/credit-bureau"}]},{"group":"🇦🇺 Australia","pages":[{"title":"Australia - DVS - Birth Certificate Verification API","sidebarTitle":"Australia - DVS - Birth Certificate","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/australia/birth-certificate"},{"title":"Australia - DVS - Centrelink Card Verification API","sidebarTitle":"Australia - DVS - Centrelink Card","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/australia/centrelink-card"},{"title":"Australia - DVS - ImmiCard Verification API","sidebarTitle":"Australia - DVS - ImmiCard","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/australia/immicard"},{"title":"Australia - DVS - Travel Document Verification API","sidebarTitle":"Australia - DVS - Travel Document","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/australia/travel-document"},{"title":"Australia - DVS – Change of Name Certificate API","sidebarTitle":"Australia - DVS – Change of Name Certificate","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/australia/change-of-name-certificate"},{"title":"Australia - DVS – Citizenship Certificate API","sidebarTitle":"Australia - DVS – Citizenship Certificate","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/australia/citizenship-certificate"},{"title":"Australia - DVS – Marriage Certificate API","sidebarTitle":"Australia - DVS – Marriage Certificate","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/australia/marriage-certificate"},{"title":"Australia Credit Bureau Verification API: ID Match","sidebarTitle":"Australia Credit Bureau","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/australia/credit-bureau"},{"title":"Australia Death Check (BDM) API: Real-Time Lookup","sidebarTitle":"Australia Death Check (BDM)","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/australia/death-check"},{"title":"Australia Electoral Roll Verification API: ID Match","sidebarTitle":"Australia Electoral Roll","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/australia/electoral-roll"},{"title":"Australia Superannuation \u0026 Payroll Verification API","sidebarTitle":"Australia Superannuation \u0026 Payroll","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/australia/superannuation-payroll"},{"title":"Australia VEVO Verification API: Real-Time Lookup","sidebarTitle":"Australia VEVO","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/australia/vevo"},{"title":"DVS - Australia Driver Licence Verification API","sidebarTitle":"DVS - Australia Driver Licence","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/australia/driver-licence"},{"title":"DVS - Australia Medicare Card Verification API","sidebarTitle":"DVS - Australia Medicare Card","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/australia/medicare-card"},{"title":"DVS - Australia Passport Verification API: ID Match","sidebarTitle":"DVS - Australia Passport","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/australia/passport"},{"title":"DVS - Australia Visa Verification API: Data Match","sidebarTitle":"DVS - Australia Visa","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/australia/visa"}]},{"group":"🇦🇹 Austria","pages":[{"title":"Austria Credit Bureau Verification API: Data Match","sidebarTitle":"Austria Credit Bureau","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/austria/credit-bureau"}]},{"group":"🇧🇴 Bolivia","pages":[{"title":"Bolivia - CI verification API: Real-Time ID Lookup","sidebarTitle":"Bolivia - CI verification","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/bolivia/cedula"}]},{"group":"🇧🇷 Brazil","pages":[{"title":"BRA - Unico IDCloud (CPF + selfie) Verification API","sidebarTitle":"BRA - Unico IDCloud (CPF + selfie)","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/brazil/unico-idcloud"},{"title":"Brazil - CNH QR code + face match (Datavalid) API","sidebarTitle":"Brazil - CNH QR code + face match (Datavalid)","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/brazil/cnh-facial-qrcode"},{"title":"Brazil - CPF + face match (Datavalid) API: ID Match","sidebarTitle":"Brazil - CPF + face match (Datavalid)","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/brazil/cpf-facial"},{"title":"Brazil - CPF status check API: Real-Time ID Lookup","sidebarTitle":"Brazil - CPF status check","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/brazil/cpf"},{"title":"Brazil - Company Partners and Directors (QSA) API","sidebarTitle":"Brazil - Company Partners and Directors (QSA)","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/brazil/company-directors"},{"title":"Brazil - Company Registry Lookup (CNPJ) API","sidebarTitle":"Brazil - Company Registry Lookup (CNPJ)","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/brazil/company-registry"},{"title":"Brazil - Death Check (CPF) API: Real-Time ID Lookup","sidebarTitle":"Brazil - Death Check (CPF)","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/brazil/death-check"},{"title":"Brazil - Federal Criminal Record Verification API","sidebarTitle":"Brazil - Federal Criminal Record (Polícia Federal)","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/brazil/antecedentes-criminais-pf"},{"title":"Brazil Residential Verification API: Identity Match","sidebarTitle":"Brazil Residential","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/brazil/residential"},{"title":"Brazil Tax Registration (CPF/CNPJ) Verification API","sidebarTitle":"Brazil Tax Registration (CPF/CNPJ)","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/brazil/tax-registration"}]},{"group":"🇰🇭 Cambodia","pages":[{"title":"Cambodia National ID Verification API: Data Match","sidebarTitle":"Cambodia National ID","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/cambodia/national-id"}]},{"group":"🇨🇦 Canada","pages":[{"title":"Canada Credit Bureau (FINTRAC) Verification API","sidebarTitle":"Canada Credit Bureau (FINTRAC)","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/canada/credit-bureau-fintrac"},{"title":"Canada Credit Bureau 2 (Non-FINTRAC) API: ID Match","sidebarTitle":"Canada Credit Bureau 2 (Non-FINTRAC)","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/canada/credit-bureau-2-non-fintrac"},{"title":"Canada Residential Verification API: Identity Match","sidebarTitle":"Canada Residential","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/canada/residential"}]},{"group":"🇨🇱 Chile","pages":[{"title":"Chile - RUT verification API: Real-Time ID Lookup","sidebarTitle":"Chile - RUT verification","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/chile/rut"}]},{"group":"🇨🇳 China","pages":[{"title":"China Bank Card Verification API: Real-Time Lookup","sidebarTitle":"China Bank Card","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/china/bank-card"},{"title":"China National ID Verification API: Identity Lookup","sidebarTitle":"China National ID","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/china/national-id"},{"title":"China Passport Verification API: Real-Time Lookup","sidebarTitle":"China Passport Verification","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/china/passport-verification"},{"title":"China Phone Verification API: Real-Time ID Lookup","sidebarTitle":"China Phone","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/china/phone"}]},{"group":"🇨🇴 Colombia","pages":[{"title":"Colombia - Cédula verification API: Identity Lookup","sidebarTitle":"Colombia - Cédula verification","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/colombia/cedula"},{"title":"Colombia - Migración Colombia foreigner status API","sidebarTitle":"Colombia - Migración Colombia foreigner status","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/colombia/migracion"}]},{"group":"🇨🇷 Costa Rica","pages":[{"title":"Costa Rica - Cédula verification API: Data Match","sidebarTitle":"Costa Rica - Cédula verification","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/costa-rica/cedula"}]},{"group":"🇩🇰 Denmark","pages":[{"title":"Denmark Consumer 2 Verification API: Identity Match","sidebarTitle":"Denmark Consumer 2","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/denmark/consumer-2"},{"title":"Denmark National ID Verification API: Data Match","sidebarTitle":"Denmark National ID","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/denmark/national-id"}]},{"group":"🇩🇴 Dominican Republic","pages":[{"title":"Dominican Republic - Cédula verification API","sidebarTitle":"Dominican Republic - Cédula verification","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/dominican-republic/cedula"}]},{"group":"🇪🇨 Ecuador","pages":[{"title":"Ecuador - Cédula verification API: Real-Time Lookup","sidebarTitle":"Ecuador - Cédula verification","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/ecuador/cedula"}]},{"group":"🇸🇻 El Salvador","pages":[{"title":"El Salvador - DUI verification API: Identity Lookup","sidebarTitle":"El Salvador - DUI verification","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/el-salvador/dui"}]},{"group":"🇫🇮 Finland","pages":[{"title":"Finland Consumer 2 Verification API: Identity Match","sidebarTitle":"Finland Consumer 2","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/finland/consumer-2"},{"title":"Finland National ID Verification API: Data Match","sidebarTitle":"Finland National ID","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/finland/national-id"}]},{"group":"🇫🇷 France","pages":[{"title":"France Phone Verification API: Real-Time ID Lookup","sidebarTitle":"France Phone","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/france/phone"},{"title":"France Residential Verification API: Identity Match","sidebarTitle":"France Residential","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/france/residential"},{"title":"France Utility Verification API: Real-Time Lookup","sidebarTitle":"France Utility","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/france/utility"}]},{"group":"🇩🇪 Germany","pages":[{"title":"Germany Credit Bureau Verification API: Data Match","sidebarTitle":"Germany Credit Bureau","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/germany/credit-bureau"},{"title":"Germany Phone 2 Verification API: Real-Time Lookup","sidebarTitle":"Germany Phone 2","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/germany/phone-2"}]},{"group":"🌐 Global","pages":[{"title":"Global - Core Intelligence Service Verification API","sidebarTitle":"Global - Core Intelligence Service","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/global/intelligence-service"},{"title":"Global - Sim Swap Verification API: Telco Match","sidebarTitle":"Global - Sim Swap","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/global/swap"}]},{"group":"🇬🇹 Guatemala","pages":[{"title":"Guatemala - DPI + face match (RENAP) API: ID Match","sidebarTitle":"Guatemala - DPI + face match (RENAP)","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/guatemala/dpi-facial"},{"title":"Guatemala - DPI verification API: Real-Time Lookup","sidebarTitle":"Guatemala - DPI verification","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/guatemala/dpi"}]},{"group":"🇭🇳 Honduras","pages":[{"title":"Honduras - DNI verification API: Real-Time Lookup","sidebarTitle":"Honduras - DNI verification","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/honduras/dni"}]},{"group":"🇮🇳 India","pages":[{"title":"India Aadhaar (UIDAI) Verification API: Data Match","sidebarTitle":"India Aadhaar (UIDAI)","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/india/aadhaar"},{"title":"India Drivers Licence (RTO) Verification API","sidebarTitle":"India Drivers Licence (RTO)","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/india/drivers-licence"},{"title":"India EPIC (Voter's Registration) (ECI) API","sidebarTitle":"India EPIC (Voter's Registration) (ECI)","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/india/epic-voter-s-registration"},{"title":"India PAN (Permanent Account Number) (ITD) API","sidebarTitle":"India PAN (Permanent Account Number) (ITD)","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/india/pan-permanent-account-number"}]},{"group":"🇮🇩 Indonesia","pages":[{"title":"Indonesia Residential Identity Card Verification API","sidebarTitle":"Indonesia Residential Identity Card","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/indonesia/residential-identity-card"}]},{"group":"🇮🇹 Italy","pages":[{"title":"Italy Credit Bureau Verification API: Header Match","sidebarTitle":"Italy Credit Bureau","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/italy/credit-bureau"},{"title":"Italy Residential Verification API: Identity Lookup","sidebarTitle":"Italy Residential","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/italy/residential"}]},{"group":"🇰🇪 Kenya","pages":[{"title":"Kenya National ID Verification API: Identity Lookup","sidebarTitle":"Kenya National ID","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/kenya/national-id"}]},{"group":"🇲🇾 Malaysia","pages":[{"title":"Malaysia National ID Verification API: Data Match","sidebarTitle":"Malaysia National ID","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/malaysia/national-id"}]},{"group":"🇲🇽 Mexico","pages":[{"title":"Mexico - CURP verification API: Real-Time ID Lookup","sidebarTitle":"Mexico - CURP verification","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/mexico/curp"},{"title":"Mexico - INE credential validity verification API","sidebarTitle":"Mexico - INE credential validity verification","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/mexico/ine-vigencia"}]},{"group":"🇳🇱 Netherlands","pages":[{"title":"Netherlands Residential Verification API: ID Match","sidebarTitle":"Netherlands Residential","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/netherlands/residential"}]},{"group":"🇳🇿 New Zealand","pages":[{"title":"DIA - New Zealand Births Verification API: ID Match","sidebarTitle":"DIA - New Zealand Births","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/new-zealand/births"},{"title":"DIA - New Zealand Citizenship Verification API","sidebarTitle":"DIA - New Zealand Citizenship","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/new-zealand/citizenship"},{"title":"DIA - New Zealand Passport Verification API","sidebarTitle":"DIA - New Zealand Passport","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/new-zealand/passport"},{"title":"New Zealand Death Check (BDM) API: Real-Time Lookup","sidebarTitle":"New Zealand Death Check (BDM)","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/new-zealand/death-check"},{"title":"New Zealand Drivers Licence (NZTA) Verification API","sidebarTitle":"New Zealand Drivers Licence (NZTA)","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/new-zealand/drivers-licence"}]},{"group":"🇳🇬 Nigeria","pages":[{"title":"Nigeria Bank Verification Number (BVN) API","sidebarTitle":"Nigeria Bank Verification Number (BVN)","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/nigeria/bank-verification-number"},{"title":"Nigeria Driver's Licence (FRSC) Verification API","sidebarTitle":"Nigeria Driver's Licence (FRSC)","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/nigeria/drivers-license"},{"title":"Nigeria International Passport (NIS) API: ID Match","sidebarTitle":"Nigeria International Passport (NIS)","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/nigeria/passport"},{"title":"Nigeria National ID (NIMC) Verification API","sidebarTitle":"Nigeria National ID (NIMC)","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/nigeria/national-id"},{"title":"Nigeria National ID + Selfie (NIMC) Verification API","sidebarTitle":"Nigeria National ID + Selfie (NIMC)","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/nigeria/national-id-facial"}]},{"group":"🇳🇴 Norway","pages":[{"title":"Norway Residential Verification API: Identity Match","sidebarTitle":"Norway Residential","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/norway/residential"}]},{"group":"🇵🇦 Panama","pages":[{"title":"Panama - Cédula with biometric face-match API","sidebarTitle":"Panama - Cédula with biometric face-match (SIB Plus, elevated tier)","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/panama/sib-plus"},{"title":"Panama - Cédula with biometric face-match (SIB) API","sidebarTitle":"Panama - Cédula with biometric face-match (SIB)","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/panama/sib"}]},{"group":"🇵🇾 Paraguay","pages":[{"title":"Paraguay - CI verification API: Real-Time ID Lookup","sidebarTitle":"Paraguay - CI verification","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/paraguay/cedula"}]},{"group":"🇵🇪 Peru","pages":[{"title":"Peru - DNI verification API: Real-Time ID Lookup","sidebarTitle":"Peru - DNI verification","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/peru/dni"},{"title":"Peru Tax Registration (SUNAT) Verification API","sidebarTitle":"Peru Tax Registration (SUNAT)","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/peru/tax-registration"}]},{"group":"🇵🇭 Philippines","pages":[{"title":"Philippines Residential Verification API: ID Match","sidebarTitle":"Philippines Residential","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/philippines/residential"}]},{"group":"🇸🇬 Singapore","pages":[{"title":"Singapore Credit Bureau Verification API: ID Match","sidebarTitle":"Singapore Credit Bureau","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/singapore/credit-bureau"},{"title":"Singapore Utility Verification API: Identity Lookup","sidebarTitle":"Singapore Utility","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/singapore/utility"}]},{"group":"🇿🇦 South Africa","pages":[{"title":"South Africa - Bank Account Holder Verification API","sidebarTitle":"South Africa - Bank Account Holder Verification","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/south-africa/bank-account-holder"},{"title":"South Africa - Company Directors Lookup API","sidebarTitle":"South Africa - Company Directors Lookup","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/south-africa/company-directors"},{"title":"South Africa - Company Registry Lookup API","sidebarTitle":"South Africa - Company Registry Lookup","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/south-africa/company-registry"},{"title":"South Africa - Contactability Lookup API: ID Match","sidebarTitle":"South Africa - Contactability Lookup","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/south-africa/contactability"},{"title":"South Africa - Criminal Screening by Face API","sidebarTitle":"South Africa - Criminal Screening by Face","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/south-africa/criminal-face-screening"},{"title":"South Africa - DHA Fingerprint Match API: ID Match","sidebarTitle":"South Africa - DHA Fingerprint Match","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/south-africa/dha-fingerprint-match"},{"title":"South Africa - DHA Photo Retrieval Verification API","sidebarTitle":"South Africa - DHA Photo Retrieval","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/south-africa/dha-photo"},{"title":"South Africa - Driving License Verification API","sidebarTitle":"South Africa - Driving License Verification","href":"/api-reference/database-validation/south-africa/drivers-license"},{"title":"South Africa - Fraud Prevention Screening API","sidebarTitle":"South Africa - Fraud Prevention Screening","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/south-africa/fraud-prevention"},{"title":"South Africa - Person Directorships Lookup API","sidebarTitle":"South Africa - Person Directorships Lookup","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/south-africa/person-directorships"},{"title":"South Africa - Refugee File Verification API","sidebarTitle":"South Africa - Refugee File Verification","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/south-africa/refugee"},{"title":"South Africa - Vehicle Ownership Verification API","sidebarTitle":"South Africa - Vehicle Ownership Verification","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/south-africa/vehicle-ownership"},{"title":"South Africa National ID (DHA) Verification API","sidebarTitle":"South Africa National ID (DHA)","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/south-africa/national-id"}]},{"group":"🇪🇸 Spain","pages":[{"title":"Spain - DNI/NIE verification API: Real-Time Lookup","sidebarTitle":"Spain - DNI/NIE verification","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/spain/dni"}]},{"group":"🇸🇪 Sweden","pages":[{"title":"Sweden National ID Verification API: Identity Match","sidebarTitle":"Sweden National ID","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/sweden/national-id"},{"title":"Sweden Phone Verification API: Real-Time ID Lookup","sidebarTitle":"Sweden Phone","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/sweden/phone"}]},{"group":"🇨🇭 Switzerland","pages":[{"title":"Switzerland Credit Bureau Verification API","sidebarTitle":"Switzerland Credit Bureau","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/switzerland/credit-bureau"}]},{"group":"🇹🇭 Thailand","pages":[{"title":"Thailand National ID Verification API: Data Match","sidebarTitle":"Thailand National ID","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/thailand/national-id"}]},{"group":"🇬🇧 United Kingdom","pages":[{"title":"United Kingdom Credit Bureau Verification API","sidebarTitle":"United Kingdom Credit Bureau","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/united-kingdom/credit-bureau"},{"title":"United Kingdom Financial Services Verification API","sidebarTitle":"United Kingdom Financial Services","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/united-kingdom/financial-services"},{"title":"United Kingdom Phone 2 Verification API: Data Match","sidebarTitle":"United Kingdom Phone 2","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/united-kingdom/phone-2"},{"title":"United Kingdom Residential Verification API","sidebarTitle":"United Kingdom Residential","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/united-kingdom/residential"}]},{"group":"🇺🇸 United States","pages":[{"title":"United States - Driver's License (DMV) API","sidebarTitle":"United States - Driver's License (DMV)","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/united-states/driver-license-dmv"},{"title":"United States Credit Bureau Verification API","sidebarTitle":"United States of America - United States Credit Bureau","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/united-states/credit-bureau"},{"title":"United States Death Check (SSDMF) API: Data Match","sidebarTitle":"United States of America - United States Death Check (SSDMF)","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/united-states/death-check"},{"title":"United States Financial Services Verification API","sidebarTitle":"United States of America - United States Financial Services","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/united-states/financial-services"},{"title":"United States Phone 2 Verification API: Data Match","sidebarTitle":"United States of America - United States Phone 2","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/united-states/phone-2"},{"title":"United States Residential Verification API","sidebarTitle":"United States of America - United States Residential","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/united-states/residential"}]},{"group":"🇺🇾 Uruguay","pages":[{"title":"Uruguay - CI verification API: Real-Time ID Lookup","sidebarTitle":"Uruguay - CI verification","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/uruguay/cedula"}]},{"group":"🇻🇪 Venezuela","pages":[{"title":"Venezuela - Cédula verification API: Identity Match","sidebarTitle":"Venezuela - Cédula verification","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/venezuela/cedula"}]},{"group":"🌐 Zambia","pages":[{"title":"Zambia NRC (tax register) Verification API","sidebarTitle":"Zambia NRC (tax register)","api":"POST /v3/database-validation/","href":"/api-reference/database-validation/zambia/national-id"}]}]},{"group":"Biometrics \u0026 Face","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/liveness.svg","pages":[{"title":"Passive Liveness API: Deepfake Detection","sidebarTitle":"Passive Liveness","openapi":"openapi-25.json POST /v3/passive-liveness/","href":"/standalone-apis/passive-liveness"},{"title":"Face Match API: 1:1 Face Comparison","sidebarTitle":"Face Match","openapi":"openapi-25.json POST /v3/face-match/","href":"/standalone-apis/face-match"},{"title":"Face Search API: 1:N Facial Dedup \u0026 Fraud Rings","sidebarTitle":"Face Search","openapi":"openapi-25.json POST /v3/face-search/","href":"/standalone-apis/face-search"},{"title":"Age Estimation API: Selfie-Based Age Verification","sidebarTitle":"Age Estimation API","openapi":"openapi-25.json POST /v3/age-estimation/","href":"/standalone-apis/age-estimation"}]},{"group":"Compliance \u0026 Risk","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/aml-screening.svg","pages":[{"title":"AML Screening API: Sanctions, PEP \u0026 Watchlists","sidebarTitle":"AML Screening API","openapi":"openapi-25.json POST /v3/aml/","href":"/standalone-apis/aml-screening"},{"title":"AML Dataset Freshness API","sidebarTitle":"Get AML Dataset Freshness","openapi":"openapi-25.json GET /v3/aml/dataset-freshness/","href":"/standalone-apis/aml-dataset-freshness"},{"title":"Fraud Check API","openapi":"openapi-25.json POST /v3/fraud/checks/","href":"/standalone-apis/fraud-check"},{"title":"Plan a Fraud Check","openapi":"openapi-25.json POST /v3/fraud/checks/plan/","href":"/standalone-apis/fraud-check-plan"},{"title":"Get a Fraud Check","openapi":"openapi-25.json GET /v3/fraud/checks/{check_id}/","href":"/standalone-apis/fraud-check-result"}]},{"group":"Device \u0026 IP Analysis","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/ip-analysis.svg","pages":[{"title":"IP Risk API: Geo, VPN \u0026 Datacenter Signals","sidebarTitle":"IP Risk API","openapi":"openapi-25.json POST /v3/ip/risk/","href":"/standalone-apis/ip-risk"}]},{"group":"KYB Registry","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/businesses.svg","pages":[{"title":"KYB Registry API: Company Search and Select","sidebarTitle":"Overview","href":"/standalone-apis/kyb-registry"},{"title":"KYB Registry Search API - Company Search","sidebarTitle":"KYB Registry Search","openapi":"openapi-25.json POST /v3/kyb/search/","href":"/standalone-apis/kyb-registry-search"},{"title":"KYB Registry Select API: Retrieve Company Profile","sidebarTitle":"KYB Registry Select","openapi":"openapi-25.json POST /v3/kyb/select/","href":"/standalone-apis/kyb-registry-select"},{"title":"KYB Registry Shareholders API","sidebarTitle":"KYB Registry Shareholders","openapi":"openapi-25.json POST /v3/kyb/shareholders/","href":"/standalone-apis/kyb-registry-shareholders"},{"title":"KYB Registry UBO API: Ultimate Beneficial Owners","sidebarTitle":"KYB Registry UBOs","openapi":"openapi-25.json POST /v3/kyb/ubo/","href":"/standalone-apis/kyb-registry-ubo"}]},{"group":"Email Verification","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/sms-tracking.svg","pages":[{"title":"Email Verification API: OTP \u0026 Risk Scoring","sidebarTitle":"Overview","href":"/standalone-apis/email-verification"},{"title":"Send Email OTP API: Email Verification Code","sidebarTitle":"Send Email Code","openapi":"openapi-25.json POST /v3/email/send/","href":"/standalone-apis/email-send"},{"title":"Check Email OTP API: Validate Email Code","sidebarTitle":"Check Email Code","openapi":"openapi-25.json POST /v3/email/check/","href":"/standalone-apis/email-check"},{"title":"Email Risk API: Deliverability \u0026 Breach Signals","sidebarTitle":"Email Risk API","openapi":"openapi-25.json POST /v3/email/risk/","href":"/standalone-apis/email-risk"}]},{"group":"Phone Verification","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/phone-verification.svg","pages":[{"title":"Phone Verification API: SMS OTP \u0026 Risk Signals","sidebarTitle":"Overview","href":"/standalone-apis/phone-verification"},{"title":"Send Phone OTP API: SMS Verification Code","sidebarTitle":"Send Phone Code","openapi":"openapi-25.json POST /v3/phone/send/","href":"/standalone-apis/phone-send"},{"title":"Check Phone OTP API: Validate SMS Code","sidebarTitle":"Check Phone Code","openapi":"openapi-25.json POST /v3/phone/check/","href":"/standalone-apis/phone-check"},{"title":"Phone Risk API: Carrier \u0026 Fraud Signals","sidebarTitle":"Phone Risk API","openapi":"openapi-25.json POST /v3/phone/risk/","href":"/standalone-apis/phone-risk"}]},{"group":"Bank Verification","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/billing.svg","pages":[{"title":"Account Check API: Verify a Payout Bank Account","sidebarTitle":"Account Check API","openapi":"openapi-25.json POST /v3/bank/account-check/","href":"/standalone-apis/bank-account-check"}]}]},{"tab":"User Verification","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/user-verifications.svg","pages":[{"title":"User Verification","href":"/core-technology/liveness/overview"}]},{"tab":"Business Verification","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/business-verifications.svg","pages":[{"title":"Business Verification","href":"/business-verification/overview"}]},{"tab":"Transaction Monitoring","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/transactions.svg","pages":[{"title":"Transaction Monitoring","href":"/transaction-monitoring/overview"}]},{"tab":"Changelog","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/calendar.svg","pages":[{"title":"Changelog","href":"/changelog"}]}],"global":{"anchors":[{"anchor":"API Reference","icon":"code","href":"/api-reference/overview"},{"anchor":"Business Console","icon":"gauge","href":"https://business.didit.me"},{"anchor":"OpenAPI Spec","icon":"file-code","href":"https://docs.didit.me/openapi-25.json"},{"anchor":"Integration Prompt","icon":"wand-magic-sparkles","href":"/integration/integration-prompt"},{"anchor":"MCP Server","icon":"plug","href":"/integration/mcp/overview"},{"anchor":"Agent Skills","icon":"robot","href":"https://github.com/didit-protocol/skills"}]}},{"language":"es","navbar":{"links":[{"icon":"comment-dots","href":"https://help.didit.me","label":"Soporte"},{"icon":"signal","href":"https://status.didit.me","label":"Estado"}],"primary":{"type":"button","label":"Iniciar sesión","href":"https://business.didit.me"}},"pages":[{"title":"es","href":"/es/sessions-api/share-session/import"}]},{"language":"pt-BR","navbar":{"links":[{"icon":"comment-dots","href":"https://help.didit.me","label":"Suporte"},{"icon":"signal","href":"https://status.didit.me","label":"Status"}],"primary":{"type":"button","label":"Entrar","href":"https://business.didit.me"}},"pages":[{"title":"pt-BR","href":"/pt-br/sessions-api/share-session/import"}]},{"language":"ja","navbar":{"links":[{"icon":"comment-dots","href":"https://help.didit.me","label":"サポート"},{"icon":"signal","href":"https://status.didit.me","label":"ステータス"}],"primary":{"type":"button","label":"サインイン","href":"https://business.didit.me"}},"pages":[{"title":"ja","href":"/ja/sessions-api/share-session/import"}]},{"language":"de","navbar":{"links":[{"icon":"comment-dots","href":"https://help.didit.me","label":"Support"},{"icon":"signal","href":"https://status.didit.me","label":"Status"}],"primary":{"type":"button","label":"Anmelden","href":"https://business.didit.me"}},"pages":[{"title":"de","href":"/de/sessions-api/share-session/import"}]},{"language":"fr","navbar":{"links":[{"icon":"comment-dots","href":"https://help.didit.me","label":"Assistance"},{"icon":"signal","href":"https://status.didit.me","label":"Statut"}],"primary":{"type":"button","label":"Se connecter","href":"https://business.didit.me"}},"pages":[{"title":"fr","href":"/fr/sessions-api/share-session/import"}]},{"language":"it","navbar":{"links":[{"icon":"comment-dots","href":"https://help.didit.me","label":"Supporto"},{"icon":"signal","href":"https://status.didit.me","label":"Stato"}],"primary":{"type":"button","label":"Accedi","href":"https://business.didit.me"}},"pages":[{"title":"it","href":"/it/sessions-api/share-session/import"}]},{"language":"pt","navbar":{"links":[{"icon":"comment-dots","href":"https://help.didit.me","label":"Suporte"},{"icon":"signal","href":"https://status.didit.me","label":"Estado"}],"primary":{"type":"button","label":"Iniciar sessão","href":"https://business.didit.me"}},"pages":[{"title":"pt","href":"/pt/sessions-api/share-session/import"}]},{"language":"ca","navbar":{"links":[{"icon":"comment-dots","href":"https://help.didit.me","label":"Suport"},{"icon":"signal","href":"https://status.didit.me","label":"Estat"}],"primary":{"type":"button","label":"Inicia la sessió","href":"https://business.didit.me"}},"pages":[{"title":"ca","href":"/ca/sessions-api/share-session/import"}]},{"language":"id","navbar":{"links":[{"icon":"comment-dots","href":"https://help.didit.me","label":"Dukungan"},{"icon":"signal","href":"https://status.didit.me","label":"Status"}],"primary":{"type":"button","label":"Masuk","href":"https://business.didit.me"}},"pages":[{"title":"id","href":"/id/sessions-api/share-session/import"}]},{"language":"ru","navbar":{"links":[{"icon":"comment-dots","href":"https://help.didit.me","label":"Поддержка"},{"icon":"signal","href":"https://status.didit.me","label":"Статус"}],"primary":{"type":"button","label":"Вход","href":"https://business.didit.me"}},"pages":[{"title":"ru","href":"/ru/sessions-api/share-session/import"}]},{"language":"ko","navbar":{"links":[{"icon":"comment-dots","href":"https://help.didit.me","label":"지원"},{"icon":"signal","href":"https://status.didit.me","label":"상태"}],"primary":{"type":"button","label":"로그인","href":"https://business.didit.me"}},"pages":[{"title":"ko","href":"/ko/sessions-api/share-session/import"}]},{"language":"zh","navbar":{"links":[{"icon":"comment-dots","href":"https://help.didit.me","label":"支持"},{"icon":"signal","href":"https://status.didit.me","label":"状态"}],"primary":{"type":"button","label":"登录","href":"https://business.didit.me"}},"pages":[{"title":"zh","href":"/zh/sessions-api/share-session/import"}]},{"language":"ar","navbar":{"links":[{"icon":"comment-dots","href":"https://help.didit.me","label":"الدعم"},{"icon":"signal","href":"https://status.didit.me","label":"الحالة"}],"primary":{"type":"button","label":"تسجيل الدخول","href":"https://business.didit.me"}},"pages":[{"title":"ar","href":"/ar/sessions-api/share-session/import"}]},{"language":"hi","navbar":{"links":[{"icon":"comment-dots","href":"https://help.didit.me","label":"सहायता"},{"icon":"signal","href":"https://status.didit.me","label":"स्थिति"}],"primary":{"type":"button","label":"साइन इन करें","href":"https://business.didit.me"}},"pages":[{"title":"hi","href":"/hi/sessions-api/share-session/import"}]}]},"basePath":"","title":"Import Shared Session API: Reusable KYC \u0026 KYB - Didit Docs","buildId":"dpl_G2Qd45vZZ7MkBiGF9yYx8ZsbbKXX","deploymentId":"dpl_G2Qd45vZZ7MkBiGF9yYx8ZsbbKXX","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-NXj-Rqjv.js","utils-m0thOP-_.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-D13EKcfm.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema--XTdfsEb.js","snippetPresets-D3s4lmAH.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","conditional-requirements-CFM0id0Q.js","ApiExamples-ChURybxL.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-DL8CiXq2.js","shallow-DI2-YB2E.js","getApiPlaygroundDisplay-DxbW7b_y.js","CodeSnippet-CiNYS0pP.js","CodeSnippets-BT87bThu.js","Page-DSpdRuhM.js","getPastedJson-F_g_IrFQ.js","icon-CCIG5BAs.js","MethodPill-DY3E0jwx.js","DuplicateIcon-BN88xnEg.js","createIcon-VCCc5HO5.js","DynamicMarkdown-CaSwclgK.js","SectionHeading-DXV8nWhc.js","axios-vUo_bRtp.js","Markdown-CV32Re6G.js","clsx-5ydLOnhV.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-pFDdfjRe.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-BUGO5bPJ.js"]}