> ## Documentation Index
> Fetch the complete documentation index at: https://docs.didit.me/llms.txt
> Use this file to discover all available pages before exploring further.

# API per obtenir sessió: decisions KYC i KYB

> Obtén decisions KYC o KYB de Didit: identitat, prova de vida, AML, registre i OCR en una resposta. Inferència en menys de 2s.



Prompt per recuperar la decisió de la sessió
        Copia el prompt al porta-retalls



      
      

\<pre>

\``Fetch the full decision for a Didit verification session.

Endpoint:
GET https://verification.didit.me/v3/session/{session_id}/decision/

Authentication:
Use the x-api-key header with your Didit API key. The key must hold the read:sessions privilege.

Path parameter:
\- session_id (UUID) — returned by POST /v3/session/. Didit resolves it as a User Verification session first, then as a Business Verification session — you do not need to know the kind in advance.

curl example:
curl https://verification.didit.me/v3/session/<SESSION_ID>/decision/ \
-H "x-api-key: <API_KEY>"

Response — top-level keys (both kinds share these):
\- session_id (UUID)
\- session_kind ("user" | "business") — discriminator, ALWAYS branch on this.
\- session_number (int)
\- session_url (string) — hosted URL.
\- status (string) — "Approved", "Declined", "In Review", "In Progress", "Not Started", "Expired", "Abandoned", "Kyc Expired", "Resubmitted", "Awaiting User".
\- workflow_id (workflow_version, workflow_type and workflow_version_id come only with ?include=events)
\- vendor_data, metadata, callback
\- features (string or array) — feature list the workflow runs.
\- expected_details — what you sent on create, if any.
\- created_at, expires_at (ISO 8601).
\- contact_details — { email, email_lang, send_notification_emails, phone }.
\- reviews — array of manual-review activity.
\- status_override ({ overridden_at, automatic_status } | null) — set when a reviewer changed the status by hand.
\- decision_trace — how the status was reached: status, decided_by (manual | automatic | investigator), decided_at, automatic_status, terminal_node_id, actor, warning_counts, status_warnings.
\- linked_records — same_face, earlier_verifications and networks summaries, or null.
\- biometric_retention ({ jurisdictions, deletes_at }) — the date the live biometric data of the session is deleted.
\- assignee, waiting_since, sla_due_at — the Console reviewer holding the session and its review clock; null unless the session is In Review.
\- database_validation_not_performed_reason — why a configured database validation produced no result, when database_validations is null.
\- geolocation_checks, geolocation_attempts — Location verification results and every attempt (see /core-technology/location-verification/report-location-verification).
\- shared_from_session, shared_from_session_number, sandbox_scenario, fraud_check — set only for imported sessions, sandbox scenarios and Fraud Check sessions.
\- full_session_video, full_session_video_recorded_at — only when your organization records full-session video.

Feature arrays — KYC only (session_kind: "user"):
\- id_verifications, liveness_checks, face_matches, nfc_verifications, poa_verifications, database_validations
\- `id_verifications[].barcodes` is always an array. Each entry preserves the reader output, including `type`, `position`, `data`, `data_raw`, and `side`; documents without barcode output return `[]`.
\- nfc_verifications[] items carry is_nfc_skipped (boolean) and skip_reason (string | null) alongside status/chip_data/authenticity — read the reason from the report when one exists. chip_protocol is "icao" or "jpki"; a Japan My Number Card read ("jpki") has its evidence under jpki (chain_valid, signature_valid, revocation_status, attributes, attributes_match_ocr) and null ICAO fields.
\- nfc_skip_reason (string | null), top level — why NFC did not run (USER_SKIPPED, DOCUMENT_WITHOUT_CHIP, CHIP_CERTIFICATE_UNAVAILABLE, DEVICE_WITHOUT_NFC, INTEGRATION_WITHOUT_NFC_ACCESS, MRZ_KEY_UNAVAILABLE, JPKI_UNAVAILABLE), including when the step was bypassed and nfc_verifications stays null.

Feature arrays — KYB only (session_kind: "business"):
\- registry_checks (includes company + officers + beneficial_owners + ownership_structure)
\- document_verifications
\- key_people_checks (officers + beneficial_owners + submitted parties + ubo_kyc_summary)

Shared by both kinds:
\- aml_screenings, phone_verifications, email_verifications, questionnaire_responses, ip_analyses, document_ai_documents
\- bank_verifications: Bank Verification results, one item per Bank Verification step. Read method: "open_banking" (bank sign-in) or "account_lookup" (account check), or a "microdeposits" or "statement" fallback; null until an account is evaluated. "none" when the person chose Continue without your bank before any attempt was evaluated. continued_without_bank: true when the person chose Continue without your bank, also after an evaluated attempt, whose verdict stands; continuation.reason says why (no_route, institution_unsupported, attempts_exhausted, person_choice). financial_data.not_collected lists the data an account check could not collect. See /core-technology/bank-verification/verification-methods and /core-technology/bank-verification/fallbacks.
\- signatures: E-signature results, one item per signer. Present only when the workflow has an E-signature step. Read status ("signed" means signed), verdict, signer, confirmation, certificate, timestamp, documents[] (sha256_original, sha256_signed, signed_file, fields[]) and evidence_file. See /core-technology/electronic-signature/report-electronic-signature.

V3 contract: feature arrays are ALWAYS plural arrays. If a feature was not run on the session, the field is absent or null — never a placeholder.

See /reference/data-models for the full schema (every nested field).

Handler pattern:
const decision = await (await fetch(url, { headers: { "x-api-key": API_KEY } })).json();
switch (decision.session_kind) {
case "user": return handleUserDecision(decision);
case "business": return handleBusinessDecision(decision);
}

Failure modes:
\- 404 — { "detail": "Not found." } when the session does not exist (both session types are checked) or belongs to a different application.
\- 403 — { "detail": "You do not have permission to perform this action." } when the key lacks read:sessions.
\- 401 — invalid API key.

When to call:
\- Eagerly after receiving a status.updated webhook (recommended pattern — see /integration/webhooks).
\- On-demand when your support agent or analyst opens the session in your dashboard.

Caching:
Decision payloads are mutable until the session reaches a terminal status. Cache only if you also subscribe to data.updated and status.updated webhooks.

For end-to-end Didit integration, paste in the full prompt at /integration/integration-prompt.``

\</pre>



      
      

Enganxa a

## Suport per a KYC i KYBAquest endpoint funciona tant per a sessions de **Verificació d'usuaris (KYC)** com de **Verificació d'empreses (KYB)**. La resposta sempre inclou un camp `session_kind` de primer nivell:- `"user"`: sessió de Verificació d'usuaris (KYC). La resposta inclou `id_verifications`, `liveness_checks`, `face_matches`, `nfc_verifications`, `poa_verifications` i `database_validations`.
- `"business"`: sessió de Verificació d'empreses (KYB). La resposta inclou `registry_checks`, `document_verifications` i `key_people_checks`.Els dos tipus comparteixen `aml_screenings`, `phone_verifications`, `email_verifications`, `questionnaire_responses`, `ip_analyses`, `document_ai_documents`, `bank_verifications`, `reviews` i `contact_details`, a més dels camps comuns de primer nivell (`session_id`, `session_number`, `session_url`, `status`, `workflow_id`, `vendor_data`, `metadata`, `callback`, `features`, `expected_details`, `created_at` i `expires_at`).Didit resol el `session_id` contra els dos tipus de sessió (primer Verificació d'usuaris i després Verificació d'empreses) i retorna el que coincideixi. Els UUID són únics dins de cada aplicació, de manera que no hi ha ambigüitat.Consulta la [visió general de les sessions](https://docs.didit.me/ca/sessions-api/overview.md) per veure la matriu completa de funcionalitats específiques de cada tipus.## Exemples> [tab] Verificació d'usuaris (KYC)
>
> ```bash theme={null}
> curl https://verification.didit.me/v3/session/4c5c7f3a-1f82-4f3b-8d8e-1a8d2d2f9b7a/decision/ \
>   -H "x-api-key: YOUR_API_KEY"
> ```
>
> **Resposta (truncada):**
>
> ```json theme={null}
> {
>   "session_id": "4c5c7f3a-1f82-4f3b-8d8e-1a8d2d2f9b7a",
>   "session_kind": "user",
>   "session_number": 1024,
>   "session_url": "https://verify.didit.me/...",
>   "status": "APPROVED",
>   "workflow_id": "wf_kyc_standard",
>   "vendor_data": "user-42",
>   "features": "ID_VERIFICATION,LIVENESS,FACE_MATCH,AML",
>   "id_verifications": [
>     { "node_id": "feature_ocr_1", "status": "Approved", "document_type": "Passport", "full_name": "John Doe", "barcodes": [], "...": "..." }
>   ],
>   "liveness_checks": [
>     { "node_id": "feature_liveness_1", "status": "Approved", "score": 0.98 }
>   ],
>   "face_matches": [
>     { "node_id": "feature_face_match_1", "status": "Approved", "score": 0.94 }
>   ],
>   "aml_screenings": [
>     { "node_id": "feature_aml_1", "status": "Approved", "total_hits": 0, "score": 0 }
>   ],
>   "phone_verifications": [],
>   "email_verifications": [],
>   "questionnaire_responses": [],
>   "ip_analyses": [],
>   "reviews": [],
>   "contact_details": { "email": "alex.sample@example.com", "phone": null },
>   "expected_details": null,
>   "metadata": {},
>   "callback": null,
>   "created_at": "2026-04-16T10:00:00Z",
>   "expires_at": "2026-04-23T10:00:00Z"
> }
> ```> [tab] Verificació d'empreses (KYB)
>
> ```bash theme={null}
> curl https://verification.didit.me/v3/session/bs-01HJX1.../decision/ \
>   -H "x-api-key: YOUR_API_KEY"
> ```
>
> **Resposta (truncada):**
>
> ```json theme={null}
> {
>   "session_id": "bs-01HJX1...",
>   "session_kind": "business",
>   "session_number": 89,
>   "session_url": "https://verify.didit.me/...",
>   "status": "APPROVED",
>   "workflow_id": "wf_kyb_standard",
>   "vendor_data": "biz-acme-001",
>   "features": ["KYB_REGISTRY", "KYB_COMPANY_AML", "KYB_DOCUMENTS", "KYB_KEY_PEOPLE"],
>   "registry_checks": [
>     {
>       "status": "Approved",
>       "node_id": "feature_kyb_registry",
>       "data_resolved": true,
>       "company": {
>         "uuid": "...",
>         "node_id": "feature_kyb_registry",
>         "status": "Approved",
>         "registry_status": "active",
>         "company_name": "Acme Corporation Limited",
>         "registration_number": "12345678",
>         "country_code": "GBR",
>         "company_type": "Private Limited",
>         "incorporation_date": "2010-05-14",
>         "registered_address": "1 Main Street, London EC1A 1AA, United Kingdom",
>         "tax_number": "SAMPLE-TAX-12345",
>         "risk_level": "LOW",
>         "verification_status": "verified",
>         "is_from_registry": true,
>         "fetch_status": "resolved",
>         "alternative_names": ["Acme Ltd"],
>         "nature_of_business": "Software publishing",
>         "registered_capital": "100000 GBP",
>         "website": "https://acme.example",
>         "email": "alex.sample@example.com",
>         "phone": "+15550101000",
>         "legal_entity_identifier": "529900XXXXXXXXXXXXX",
>         "financial_summary": {},
>         "officers": [
>           { "uuid": "...", "name": "Jane Doe", "role": "director", "nationality": "USA", "is_active": true, "kyc_status": "Approved", "kyc_session_url": "https://verify.didit.me/..." }
>         ],
>         "beneficial_owners": [
>           { "uuid": "...", "name": "John Smith", "entity_type": "person", "roles": ["ubo"], "ownership_min_shares": 40, "ownership_max_shares": 40, "kyc_status": "Pending", "effective_ownership_percent": 40.0 }
>         ],
>         "addresses": [],
>         "industries": [],
>         "accounts": [],
>         "registry_data": { },
>         "user_provided_data": { },
>         "confirmed_by_user_at": "2026-04-16T10:10:00Z",
>         "is_editable": false
>       },
>       "ownership_structure": { },
>       "warnings": []
>     }
>   ],
>   "aml_screenings": [
>     {
>       "node_id": "feature_kyb_company_aml",
>       "status": "Approved",
>       "total_hits": 0,
>       "score": 0,
>       "entity_type": "COMPANY",
>       "hits": []
>     }
>   ],
>   "document_verifications": [
>     {
>       "status": "Approved",
>       "node_id": "feature_kyb_documents",
>       "items": [
>         { "uuid": "...", "document_type": "certificate_of_incorporation", "status": "Approved", "file_url": "https://...", "ocr_data": { } }
>       ],
>       "groups": { "legal_presence": { "approved": 1, "pending": 0, "missing": 0 } },
>       "required_groups": ["legal_presence", "ownership_structure"],
>       "warnings": []
>     }
>   ],
>   "key_people_checks": [
>     {
>       "status": "Approved",
>       "node_id": "feature_kyb_key_people",
>       "officers": [
>         { "uuid": "...", "name": "Jane Doe", "role": "director", "kyc_status": "Approved", "kyc_session_url": "..." }
>       ],
>       "beneficial_owners": [
>         { "uuid": "...", "name": "John Smith", "roles": ["ubo"], "ownership_min_shares": 40, "ownership_max_shares": 40, "kyc_status": "Pending" }
>       ],
>       "registry": {
>         "officers": [
>           { "uuid": "...", "name": "Jane Doe", "role": "director", "kyc_status": "Approved" }
>         ],
>         "beneficial_owners": [
>           { "uuid": "...", "name": "John Smith", "roles": ["ubo"], "ownership_min_shares": 40, "kyc_status": "Pending" }
>         ]
>       },
>       "submitted": {
>         "parties": [
>           { "uuid": "...", "entity_type": "person", "name": "Alice Chen", "role": "ubo", "ownership_percent": 35.0, "requires_verification": true, "kyc_session_status": "Not Started", "kyc_session_url": "https://verify.didit.me/..." }
>         ]
>       },
>       "ubo_kyc_summary": {
>         "total": 2,
>         "approved": 1,
>         "flagged": 0,
>         "pending": 1
>       },
>       "warnings": []
>     }
>   ],
>   "phone_verifications": null,
>   "email_verifications": null,
>   "questionnaire_responses": null,
>   "ip_analyses": null,
>   "reviews": [],
>   "contact_details": { "email": "alex.sample@example.com", "email_lang": "en", "send_notification_emails": true, "phone": null },
>   "expected_details": null,
>   "metadata": {},
>   "callback": null,
>   "created_at": "2026-04-16T10:00:00Z",
>   "expires_at": "2026-04-23T10:00:00Z"
> }
> ```## Com gestionar la resposta al teu costat```typescript theme={null}
const res = await fetch(`${BASE}/v3/session/${sessionId}/decision/`, {
  headers: { "x-api-key": API_KEY },
});
const decision = await res.json();

switch (decision.session_kind) {
  case "user":
    handleUserDecision(decision);
    break;
  case "business":
    handleBusinessDecision(decision);
    break;
}
```## Estat, traça de decisió i camps de revisióCada decisió explica com s'ha arribat al seu `status`.| Camp | Què cal llegir |
| - | - |
| `status_override` | `null` quan l'estat és l'automàtic. Després que un revisor hagi definit l'estat manualment, té el valor `{ overridden_at, automatic_status }`, on `automatic_status` és el que conclouen les comprovacions. Serveix per distingir una aprovació manual d'una d'automàtica. |
| `decision_trace` | `status`, `decided_by` (`manual`, `automatic` o `investigator`; `null` mentre la sessió no estigui decidida), `decided_at`, `automatic_status`, `terminal_node_id`, `actor` (el revisor que ha pres una decisió manual), `warning_counts` per cada `log_type` més `total`, i `status_warnings`, els avisos que han definit un estat `Declined` o `In Review`. |
| `linked_records` | Un resum del que està enllaçat amb la verificació: `same_face` (altres persones amb la cara coincident i la coincidència més propera), `earlier_verifications` (un recompte per a la mateixa persona) i `networks`. `null` quan no hi ha res a mostrar. |
| `assignee`, `waiting_since`, `sla_due_at` | El revisor de la Console que té la sessió, quan ha començat a esperar i quan venç la revisió. `waiting_since` i `sla_due_at` són `null` tret que la sessió estigui `In Review` i la teva aplicació defineixi un termini de revisió. |
| `database_validation_not_performed_reason` | `{ code, message }`, que explica per què una validació en bases de dades configurada no ha produït cap resultat. Permet distingir "el registre ha donat la seva conformitat" de "no s'ha executat res" quan `database_validations` és `null`. |
| `shared_from_session`, `shared_from_session_number` | La sessió d'origen quan aquesta s'ha importat amb `POST /v3/session/import-shared/`; `null` en cas contrari. |
| `sandbox_scenario` | L'escenari amb què s'ha creat una sessió de sandbox. |
| `full_session_video`, `full_session_video_recorded_at` | Un URL de la gravació amb caducitat i el moment en què es va fer. Només es retorna quan la teva organització grava el vídeo de tota la sessió. |## Retenció de dades biomètriques`biometric_retention` sempre és present. `deletes_at` és la data en què se suprimeixen les dades biomètriques actives de la sessió, i `jurisdictions` enumera els estats dels EUA les normes biomètriques dels quals fixen un límit de supressió per a la persona (`US` quan no es coneix l'estat). `deletes_at` és `null` quan encara no s'aplica cap data.## Verificació de ubicacióQuan el flux de treball té un pas de [Verificació de ubicació](https://docs.didit.me/ca/core-technology/location-verification/overview.md), la decisió inclou dues matrius. `geolocation_checks[]` té un element per pas: el seu intent acceptat, amb el resultat, les coordenades i la seva precisió, les comprovacions contra la ubicació de la IP i l'adreça registrada, i els `warnings` del pas. `geolocation_attempts[]` enumera cada intent de cada pas, del més antic al més recent, amb el moment en què es va rebre. Els fluxos de treball sense aquest pas retornen totes dues com a `null`. Tots els camps i resultats són a l'[Informe de verificació de ubicació](https://docs.didit.me/ca/core-technology/location-verification/report-location-verification.md).## Esdeveniments d'enrutament del flux de treball`?include=events` afegeix la cronologia d'esdeveniments de la sessió. Juntament amb els canvis de pas i d'estat, un flux de treball que s'enruta a través de nodes de branca deixa un esdeveniment per cada decisió d'enrutament. Així, una integració (o la cronologia de la Console) pot explicar per què una sessió ha acabat en un resultat determinat sense haver de repassar el graf del flux de treball manualment:| `event_type` | Quan s'escriu | `details` |
| - | - | - |
| `WORKFLOW_BRANCH_EVALUATED` | Es va avaluar un node amb condicions de branca mentre la sessió avançava (nodes de branca, i nodes de funcionalitat o de webhook amb branques) | `node_id`, `node_label`, `node_type`, `matched_branch_id` (la branca que ha coincidit, o `null` si cap no ho ha fet), `fallback` (`true` quan cap condició no ha coincidit i s'ha seguit l'aresta per defecte del node), `next_node_id`, `next_node_label` |
| `WORKFLOW_STATUS_NODE_REACHED` | S'ha executat un node d'estat | `node_id`, `node_label`, `session_status` (el valor configurat, incloent `Determine`), `resolved_session_status` (el valor al qual s'ha resolt), `feature_statuses` (`[{target, status}]`) |Tots dos esdeveniments porten `sent_at` en mil·lisegons, com qualsevol altre esdeveniment, i no tenen `component`, `feature_step` ni `step`: els genera el motor del flux de treball, no el dispositiu de l'usuari. Una branca "else" (una branca sense condicions) compta com a branca coincident; `fallback` només és `true` quan no ha coincidit res. Els nodes amb una única aresta de sortida no prenen cap decisió i no deixen cap esdeveniment.La mateixa estructura también informa de `workflow_terminal_node_id`: el `node_id` de l'últim node d'estat del flux de treball registrat que ha establert un estat de sessió, o `null` si no s'ha registrat cap ID de node d'aquest tipus. És informació històrica sobre la procedència del flux de treball. Les aprovacions, els rebuigs i els reenviaments manuals no el netegen; un node d'estat posterior del flux de treball el substitueix. Per exemple, si un flux de treball envia una sessió a un node *En revisió* i un revisor l'aprova més tard, l'`status` actual és `Approved`, mentre que `workflow_terminal_node_id` continua identificant el node *En revisió*. També pot continuar emplenat mentre hi hagi un reenviament en curs. Llegeix l'`status` actual i les cronologies d'esdeveniments i d'`activity_reviews` per distingir els resultats del flux de treball de les decisions manuals posteriors.```json theme={null}
{
  "event_type": "WORKFLOW_BRANCH_EVALUATED",
  "sent_at": 1789336414007,
  "details": {
    "node_id": "branch-d57da8aa",
    "node_label": "Credential required?",
    "node_type": "branch",
    "matched_branch_id": null,
    "fallback": true,
    "next_node_id": "status-6ba0bd0d",
    "next_node_label": "In Review"
  }
}
```## Reenviaments anteriors (`?include=resubmissions`)Un reenviament torna a enviar l'usuari als passos que triïs i conserva el que aquests passos han retornat abans.
`?include=resubmissions` afegeix una matriu `resubmissions`, del més antic al més recent, amb una entrada per cada sol·licitud de reenviament.
Cada entrada conté els resultats que la sol·licitud va reemplaçar, de manera que sempre pots consultar què ha enviat l'usuari abans.
Funciona per a sessions d'usuari (KYC) i d'empresa (KYB), i el pots combinar amb esdeveniments (`?include=events,resubmissions`).
Sense el paràmetre, la resposta no canvia.| Camp | Descripció |
| - | - |
| `number` | 1 per al primer reenviament de la sessió, 2 per al segon, i així successivament. |
| `created_at` | Quan es va sol·licitar el reenviament. |
| `previous_status` | L'estat de la sessió just abans de la sol·licitud. |
| `nodes` | Els passos del flux de treball que s'han retornat a l'usuari (`[{node_id, feature}]`). |
| `reasons` | El motiu indicat per a cada pas, indexat per `node_id`, o `null`. |
| `requested_by` | Qui l'ha sol·licitat (`name`, `email`, `type`), o `null`. |
| `results` | Els resultats que aquests passos han retornat abans de la sol·licitud, amb les mateixes claus i la mateixa estructura que els resultats actuals (`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`; per a sessions d'empresa, també `document_verifications`). Només hi apareixen les claus dels passos que s'han retornat. |Els resultats actuals (`id_verifications` i la resta al nivell superior) sempre descriuen l'últim enviament.
Els passos que no s'han retornat conserven un únic resultat en aquest lloc.```json theme={null}
{
  "status": "In Review",
  "id_verifications": [{ "node_id": "feature_ocr", "status": "Approved" }],
  "resubmissions": [
    {
      "number": 1,
      "created_at": "2026-10-01T08:31:04.512Z",
      "previous_status": "In Review",
      "nodes": [{ "node_id": "feature_ocr", "feature": "OCR" }],
      "reasons": { "feature_ocr": "Passport photo too blurry" },
      "requested_by": { "name": "<reviewer name>", "email": "<reviewer email>", "type": "USER" },
      "results": {
        "id_verifications": [
          {
            "node_id": "feature_ocr",
            "status": "Declined",
            "warnings": [{ "risk": "IMAGE_TOO_BLURRY", "log_type": "error" }]
          }
        ]
      }
    }
  ]
}
```Eliminar una sessió elimina també els resultats de tots els seus enviaments.## Mètodes de verificació d'identitatCada element de `id_verifications[]` indica quin dels tres [Mètodes de verificació d'identitat](https://docs.didit.me/ca/core-technology/id-verification/verification-methods.md) l'ha produït, de manera que pots distingir una lectura de document d'una consulta en un registre o d'un inici de sessió amb cartera sense haver-ho d'endevinar pels camps que casualment estan omplerts:| Camp | Valor |
| - | - |
| `verification_method` | `document`, `id_lookup` o `wallet` |
| `assurance` | `documentary`, `data_match` o `cryptographic` |
| `wallet_provider` | Identificador de cartera del catàleg quan l'ha produït una cartera, en cas contrari `null` |
| `id_lookup` | Evidència del registre (font, intents, comparació per camp, retrat del registre), o `null` |
| `wallet_verification` | Evidència de la credencial (proveïdor, autoritat emissora, nivell de garantia, validesa de la signatura, atributs compartits), o `null` |
| `fallback_from` | Per què un mètode que no és documental no ha finalitzat el pas de verificació d'identitat: el mètode, el motiu i si l'usuari ha passat a la captura de document o ha estat rebutjat |Una sessió documental informa de `document` i `documentary` i deixa la resta en `null`, de manera que les integracions existents no necessiten cap canvi. Els tipus camp per camp són a [Models de dades](https://docs.didit.me/ca/reference/data-models.md#verificació-d’identitat).## Consentiment biomètricLes decisions de Verificació d'usuaris porten un objecte `biometric_consent`: si la sessió requeria consentiment biomètric explícit, el `trigger` que el va requerir, l'`status` de la resposta i la seva evidència. Dos valors indiquen que el consentiment no s'ha recollit:| Camp | Valor | Significat |
| - | - | - |
| `status` + `reason` | `pending` + `BIOMETRIC_CONSENT_UNSUPPORTED_SDK` | Un SDK natiu inferior a 4.10.0, o un que no ha informat de la seva versió, ha capturat una cara sense el pas de consentiment. La sessió s'ha executat com abans. |
| `status` + `reason` | `declined` + `BIOMETRIC_CONSENT_DECLINED` | S'ha registrat un rebuig. La sessió passa a `Declined` i les seves dades facials s'han eliminat. Avui cap pantalla de Didit ofereix la possibilitat de rebutjar. |Quan apareix el pas i què significa cada valor s'expliquen a [Consentiment biomètric](https://docs.didit.me/ca/getting-started/biometric-consent.md); cada camp és a [Models de dades](https://docs.didit.me/ca/reference/data-models.md#consentiment-biomètric).## Verificació bancàriaQuan el flux de treball té un pas de [Verificació bancària](https://docs.didit.me/ca/core-technology/bank-verification/verification-methods.md), la decisió inclou `bank_verifications[]`, per als dos tipus de sessió: un element per pas, `null` fins que un pas en produeix un.| Camp | Què cal llegir |
| - | - |
| `status` | El veredicte del pas: `Approved`, `In Review`, `Declined`, `Not Finished` o `Expired`. |
| `method` | Com s'ha verificat el compte: `open_banking` (inici de sessió bancari), `account_lookup` (comprovació del compte), `microdeposits` o `statement`. `null` fins que s'avalua un compte, i `none` quan la persona ha continuat sense banc abans que s'avalués cap intent. |
| `continued_without_bank`, `continuation` | Si la persona ha triat **Continua sense el teu banc**, i el motiu: `continuation.reason` és `no_route`, `institution_unsupported`, `attempts_exhausted` o `person_choice`. Per a `institution_unsupported`, `continuation.institution_name` indica el banc que la persona no ha pogut utilitzar. |
| `ownership` | Com es compara el titular del compte amb la identitat verificada: `result` és `match`, `partial_match` (una coincidència propera), `no_match`, `not_verifiable` o `unknown`. |
| `account` | El compte verificat, emmascarat. |
| `financial_data` | Saldos, transaccions i ingressos, llegits només mitjançant l'inici de sessió bancari. `not_collected` enumera les dades que el pas havia demanat i que el mètode no ha recollit, per exemple després d'una comprovació del compte. |
| `connection` | L'últim intent: el seu estat, el banc, els intents utilitzats i un `reason_code`. |Llegeix `method`, i no `ownership.method`, per distingir l'inici de sessió bancari de la comprovació del compte: `ownership.method` és la comparació del nom que ha generat la puntuació. Tots els camps són a l'esquema `BankVerificationResult` de la resposta d'aquest endpoint.## Signatura electrònicaQuan el flux de treball té un pas de [Signatura electrònica](https://docs.didit.me/ca/core-technology/electronic-signature/overview.md), la decisió inclou `signatures[]`, per als dos tipus de sessió. Hi ha un element per signatari: un per a una Verificació d'usuaris, i un per cada persona clau que signa en una Verificació d'empreses (KYB). Els fluxos de treball sense aquest pas no retornen la clau en absolut.| Camp | Què cal llegir |
| - | - |
| `status` | `signed` quan els documents estan signats. Qualsevol altre valor vol dir que encara no hi ha cap signatura. |
| `verdict` | `Approved`, `In Review`, `Declined` o `Not Finished`, segons les regles del pas. |
| `signer`, `identity_used` | Qui ha signat i la identitat verificada en què es basa. |
| `confirmation`, `certificate`, `timestamp` | La confirmació amb codi d'un sol ús i l'evidència criptogràfica. |
| `documents[]` | Els hashs de cada document, el seu estat, la ruta `signed_file` i els `fields[]` amb els valors. |
| `evidence_file` | Ruta del PDF d'evidència del signatari. |Descarrega els fitxers des de les rutes amb la teva clau d'API. Consulta l'[informe de signatura electrònica](https://docs.didit.me/ca/core-technology/electronic-signature/report-electronic-signature.md) per a tots els camps.## Errors| Estat | Motiu |
| - | - |
| `404` | No hi ha cap sessió amb aquest `session_id` per a aquesta aplicació (es comproven els dos tipus de sessió). |
| `403` | Falta el permís `read:sessions`. |
| `401` | Clau d'API no vàlida. |## Relacionats- [Visió general de les sessions](https://docs.didit.me/ca/sessions-api/overview.md): distinció entre tipus i matriu de funcionalitats.
- [Esquema de resposta KYB](https://docs.didit.me/ca/business-verification/response-schema.md): referència camp per camp de la decisió sobre empreses.
- [Estats de verificació](https://docs.didit.me/ca/integration/verification-statuses.md): la màquina d'estats compartida pels dos tipus.
- [Webhooks](https://docs.didit.me/ca/integration/webhooks.md): subscriu-te a `status.updated` per a les sessions de Verificació d'usuaris i de Verificació d'empreses (filtra per `session_kind`).
- [Mètodes de verificació d'identitat](https://docs.didit.me/ca/core-technology/id-verification/verification-methods.md): captura de documents, consulta sense document i carteres d'identitat digital, i què deixa cada un a la sessió.
- [Consentiment biomètric](https://docs.didit.me/ca/getting-started/biometric-consent.md): quan el flux demana el consentiment biomètric explícit, i l'objecte `biometric_consent`.
- [Informe de signatura electrònica](https://docs.didit.me/ca/core-technology/electronic-signature/report-electronic-signature.md): `signatures[]`, els PDF signats i l'evidència.
- [Mètodes de verificació bancària](https://docs.didit.me/ca/core-technology/bank-verification/verification-methods.md): `bank_verifications[]` i el seu `method`.
- [Quan la persona no pot verificar el seu banc](https://docs.didit.me/ca/core-technology/bank-verification/fallbacks.md): `continued_without_bank`, `continuation` i el resultat de cada motiu.


## OpenAPI

````yaml ca/openapi-25.json GET /v3/session/{sessionId}/decision/
openapi: 3.0.0
info:
  version: 3.0.0
  title: Didit Verification API
  description: API de verificació d'identitat. Autentica't amb la capçalera x-api-key.
servers:
  - url: https://verification.didit.me
security: []
tags: []
paths:
  /v3/session/{sessionId}/decision/:
    get:
      tags:
        - Sessions
      summary: Recupera la decisió completa d'una sessió de verificació
      description: >-
        Recupera l'informe de decisió complet d'una sessió de verificació:
        l'`status` consolidat de la sessió més un informe per cada funcionalitat
        de verificació que hagi executat el flux de treball. Aquest és
        l'endpoint de lectura canònic tant per a sessions de Verificació
        d'usuaris (KYC) com de Verificació d'empreses (KYB): la mateixa ruta
        serveix per a totes dues, i el discriminador de primer nivell
        `session_kind` indica quina estructura has rebut (`"user"` o
        `"business"`).


        **Cada informe de funcionalitat és un array en plural.** Els fluxos de
        treball V3 són grafs que poden executar la mateixa funcionalitat més
        d'una vegada, de manera que cada bloc (`id_verifications`,
        `nfc_verifications`, `liveness_checks`, `face_matches`,
        `poa_verifications`, `document_ai_documents`, `phone_verifications`,
        `email_verifications`, `aml_screenings`, `ip_analyses`,
        `database_validations`, `questionnaire_responses`) és un array JSON en
        què cada element conté un `node_id` que identifica el node del graf del
        flux de treball que l'ha generat. Llegeix NFC com a
        `response.nfc_verifications[0]`, mai com un camp singular `nfc`. Un bloc
        és `null` fins que el flux de treball ha executat aquesta funcionalitat
        almenys una vegada; les funcionalitats que el flux de treball no inclou
        mai apareixen amb dades. Els resultats de Signatura electrònica es
        troben a `signatures`, que només és present quan el flux de treball té
        un pas de Signatura electrònica.


        **Quan cridar-lo.** El patró recomanat es basa en esdeveniments: espera
        el webhook `status.updated` que es dispara quan la sessió arriba a una
        decisió (`Approved`, `Declined`, `In Review`), i després crida aquest
        endpoint una vegada per obtenir l'informe complet. El sondeig també
        funciona: l'endpoint es pot cridar en qualsevol moment del cicle de vida
        de la sessió i retorna les dades generades fins aleshores, però el patró
        de webhook i posterior consulta és més econòmic i ràpid. Els URL
        multimèdia de la resposta (imatges de documents, vídeos, PDF) són
        enllaços presignats de curta durada: recupera'ls ràpidament o torna a
        sol·licitar la decisió per obtenir-ne de nous, i no els conservis com a
        referències a llarg termini.


        **Estats.** L'`status` de primer nivell és l'estat del cicle de vida de
        la sessió (`Not Started`, `In Progress`, `Awaiting User`, `In Review`,
        `Approved`, `Declined`, `Resubmitted`, `Expired`, `Kyc Expired`,
        `Abandoned`). Cada element de funcionalitat inclou, a més, el seu propi
        `status` a nivell de funcionalitat (`Not Finished`, `Approved`,
        `Declined`, `In Review`, ...). Una sessió pot estar en estat general
        `Approved` mentre una funcionalitat individual està `In Review`, segons
        les regles de decisió del flux de treball.


        **Autenticació i visibilitat.** Autentica't amb la clau d'API de
        l'aplicació a la capçalera `x-api-key` (també funciona un token Bearer
        d'usuari de la consola amb el permís `read:sessions`). Només són
        visibles les sessions propietat de l'aplicació autenticada. Si el teu
        flux de treball restringeix els atributs de resposta, els camps no
        permesos dins dels elements de funcionalitat es retornen com a `null`,
        mentre que `status`, `warnings` i `node_id` es conserven sempre.


        **Límits de freqüència.** Les sol·licituds GET estan limitades a 600 per
        minut per clau d'API. Superar el límit retorna `429` amb les capçaleres
        `Retry-After` i `X-RateLimit-*`.
      operationId: get_v3_session_decision
      parameters:
        - name: sessionId
          in: path
          required: true
          description: >-
            UUID de la sessió de verificació de la qual vols recuperar la
            decisió. Aquest és el `session_id` retornat per `POST /v3/session/`.
            La mateixa ruta funciona tant per a sessions de Verificació
            d'usuaris (KYC) com de Verificació d'empreses (KYB); el servidor
            resol l'id per a tots dos tipus de sessió.


            **Ha de ser un UUID vàlid.** La ruta només coincideix amb UUIDs ben
            formats, de manera que el router d'URLs rebutja un valor mal format
            abans que s'executi qualsevol codi d'aplicació i la resposta és una
            pàgina **HTML** `404` en lloc de l'embolcall JSON `{"detail": ...}`
            que es mostra a continuació. Valida el format de l'UUID al costat
            del client per poder distingir un error d'entrada d'un `404` genuí
            perquè la sessió no existeix.
          schema:
            type: string
            format: uuid
            example: 11111111-2222-3333-4444-555555555555
        - name: include
          in: query
          required: false
          description: >-
            Llista separada per comes de seccions addicionals del payload.
            Valors admesos: `events` i `resubmissions`, sols o junts
            (`events,resubmissions`). Quan es passa `include=events`, la
            resposta conté a més el cronograma d'esdeveniments de la sessió
            (`events`, inclosos els esdeveniments d'encaminament
            `WORKFLOW_BRANCH_EVALUATED` / `WORKFLOW_STATUS_NODE_REACHED`
            descrits a la pàgina Recuperar la sessió), el registre d'activitat
            complet (`activity_reviews`), indicadors de llista de bloqueig
            (`blocklisted`), un `cost_breakdown` per sessió, metadades del flux
            de treball (`workflow_type`, `workflow_version`,
            `workflow_version_id` i `workflow_terminal_node_id`: l'últim node
            d'estat del flux de treball registrat que va establir un estat de la
            sessió, o `null` si no se n'ha registrat cap; procedència històrica
            que no s'esborra amb aprovacions manuals, rebutjos o reenviaments, i
            que se substitueix per un node d'estat del flux de treball
            posterior) i metadades de la sessió (`api_service` — cadena o
            `null`, establert només per a sessions d'API independent;
            `session_type` — `API`, `HOSTED` o `MIGRATED`;
            `has_device_nfc_support` — booleà). Dos camps canvien respecte a
            l'estructura bàsica: el discriminador de nivell superior
            `session_kind` s'**omet** (l'estructura d'esdeveniments només
            existeix per a sessions d'usuari) i la matriu `features` passa de
            cadenes simples a objectes `{feature, node_id}`, on la funcionalitat
            de correu electrònic es comunica com a `EMAIL` en comptes de
            `EMAIL_VERIFICATION`. Aquesta estructura ampliada la fa servir
            principalment la consola Didit; la majoria d'integracions d'API
            haurien d'ometre aquest paràmetre. **Limitació de KYB:**
            `include=events` només s'aplica a sessions d'usuari (KYC). Les
            sessions d'empresa (`session_kind = "business"`) sempre retornen
            l'estructura de decisió d'empresa estàndard: `events`,
            `activity_reviews`, `blocklisted`, `cost_breakdown` i les metadades
            addicionals de `workflow_*`/sessió mai no es retornen per a sessions
            d'empresa, i la seva matriu `features` continua sent una matriu de
            cadenes simples. Amb `include=resubmissions` (tant per a sessions
            d'usuari com d'empresa) la resposta també conté `resubmissions`: una
            entrada per sol·licitud de reenviament, de més antiga a més recent,
            cadascuna amb `number`, `created_at`, `previous_status`, `nodes`,
            `reasons`, `requested_by` i `results` (el que van retornar els
            passos reenviats abans de la sol·licitud, sota les mateixes claus i
            amb la mateixa estructura que els resultats actuals). Cada element
            de `cost_breakdown` inclou `usage_type`, `price`, `details` i
            `created_at`: un pas reenviat que s'executa de nou es factura com un
            element nou.
          schema:
            type: string
            enum:
              - events
              - resubmissions
              - events,resubmissions
            example: events
      responses:
        '200':
          description: >-
            Informe complet de decisió. `session_kind` distingeix les dues
            estructures: les sessions `user` inclouen les matrius de
            funcionalitats de KYC que es mostren a continuació; en canvi, les
            sessions `business` inclouen `registry_checks`,
            `document_verifications` i `key_people_checks` juntament amb les
            matrius compartides. Les matrius de funcionalitats són `null` fins
            que el flux de treball hagi executat aquesta funcionalitat; les URL
            dels fitxers multimèdia són enllaços presignats de curta durada.
          content:
            application/json:
              examples:
                Example:
                  summary: Exemple complet
                  value:
                    session_id: 11111111-2222-3333-4444-555555555555
                    session_kind: user
                    session_number: 43762
                    session_url: >-
                      https://verify.didit.me/session/11111111-2222-3333-4444-555555555555
                    status: In Review
                    environment: live
                    workflow_id: 11111111-2222-3333-4444-555555555555
                    features:
                      - ID_VERIFICATION
                      - NFC
                      - LIVENESS
                      - FACE_MATCH
                      - POA
                      - PHONE
                      - DATABASE_VALIDATION
                      - AML
                      - IP_ANALYSIS
                    vendor_data: 11111111-1111-1111-1111-111111111111
                    metadata:
                      user_type: premium
                      account_id: ABC123
                    expected_details:
                      first_name: Carmen
                      last_name: Española Española
                    contact_details:
                      email: carmen@example.com
                      email_lang: es
                      send_notification_emails: false
                      phone: null
                    callback: https://verify.didit.me/
                    id_verifications:
                      - node_id: feature_ocr_1
                        status: Approved
                        document_type: Identity Card
                        document_subtype: ID_CARD_GENERIC
                        document_number: CAA000000
                        personal_number: 99999999R
                        portrait_image: https://<media-host>/portrait.jpg
                        front_image: https://<media-host>/front.jpg
                        front_video: https://<media-host>/front.mp4
                        back_image: https://<media-host>/back.jpg
                        back_video: https://<media-host>/back.mp4
                        full_front_image: https://<media-host>/full_front.jpg
                        full_back_image: https://<media-host>/full_back.jpg
                        front_image_camera_front: https://<media-host>/front_camera_front.jpg
                        back_image_camera_front: https://<media-host>/back_camera_front.jpg
                        date_of_birth: '1980-01-01'
                        age: 45
                        expiration_date: '2031-06-02'
                        date_of_issue: '2021-06-02'
                        issuing_state: ESP
                        issuing_state_name: Spain
                        first_name: Carmen
                        last_name: Española Española
                        full_name: Carmen Española Española
                        gender: F
                        address: Avda de Madrid 34, Madrid, Madrid
                        formatted_address: Avda de Madrid 34, Madrid, Madrid 28822, Spain
                        place_of_birth: Madrid
                        marital_status: Single
                        nationality: ESP
                        extra_fields:
                          dl_categories: []
                          blood_group: null
                        mrz:
                          surname: ESPANOLA ESPANOLA
                          name: CARMEN
                          country: ESP
                          nationality: ESP
                          birth_date: '800101'
                          expiry_date: '310602'
                          sex: F
                          document_type: ID
                          document_number: CAA000000
                          optional_data: 99999999R
                          optional_data_2: ''
                          birth_date_hash: '4'
                          expiry_date_hash: '8'
                          document_number_hash: '4'
                          final_hash: '1'
                          personal_number: 99999999R
                          warnings: []
                          errors: []
                          mrz_type: TD1
                          mrz_string: |-
                            IDESPCAA000000499999999R<<<<<<
                            8001014F3106028ESP<<<<<<<<<<<1
                            ESPANOLA<ESPANOLA<<CARMEN<<<<<
                          mrz_key: CAA000000480010143106028
                        parsed_address:
                          city: Madrid
                          label: Spain ID Card Address
                          region: Madrid
                          country: ES
                          category: Residential
                          street_1: Avda de Madrid 34
                          street_2: null
                          is_verified: true
                          postal_code: '28822'
                          raw_results:
                            types:
                              - street_address
                            geometry:
                              location:
                                lat: 37.4222804
                                lng: -122.0843428
                              viewport:
                                northeast:
                                  lat: 37.4237349802915
                                  lng: -122.083183169709
                                southwest:
                                  lat: 37.4210370197085
                                  lng: -122.085881130292
                              location_type: ROOFTOP
                            place_id: ChIJN1t_tDeuEmsRUsoyG83frY4
                            formatted_address: Avda de Madrid 34, 28822 Madrid, Spain
                            navigation_points:
                              - location:
                                  latitude: 37.4222804
                                  longitude: -122.0843428
                            address_components:
                              - types:
                                  - street_number
                                long_name: '34'
                                short_name: '34'
                              - types:
                                  - route
                                long_name: Avda de Madrid
                                short_name: Avda de Madrid
                              - types:
                                  - locality
                                  - political
                                long_name: Madrid
                                short_name: Madrid
                              - types:
                                  - country
                                  - political
                                long_name: Spain
                                short_name: ES
                              - types:
                                  - postal_code
                                long_name: '28822'
                                short_name: '28822'
                          address_type: Avda
                          document_location:
                            latitude: 37.4222804
                            longitude: -122.0843428
                          formatted_address: Avda de Madrid 34, 28822 Madrid, Spain
                        front_image_camera_front_face_match_score: 95.5
                        back_image_camera_front_face_match_score: 93.2
                        document_selfie_face_matches:
                          - session_id: 3f0c9a52-7b1e-4d68-a2c4-5e9d8b7f1a20
                            session_number: 1180
                            similarity_percentage: 97.4
                            vendor_data: user_ref_001
                            vendor_user_id: null
                            biometric_template_id: null
                            verification_date: '2026-09-02T09:15:00Z'
                            user_details:
                              full_name: Jane Doe
                            match_image_url: https://<media-host>/match_face.jpg
                            status: Approved
                            is_blocklisted: false
                            is_allowlisted: false
                            api_service: null
                            source: session
                        front_image_quality_score:
                          focus_score: 85.3
                          brightness_score: 92.1
                          brightness_issue: ok
                          is_document_fully_visible: true
                          resolution_score: 72.4
                          overall_score: 88.7
                        back_image_quality_score:
                          focus_score: 79.1
                          brightness_score: 90.5
                          brightness_issue: ok
                          is_document_fully_visible: true
                          resolution_score: 72.4
                          overall_score: 85.2
                        extra_files:
                          - https://<media-host>/extra_id_verification.jpg
                        matches:
                          - session_id: 7d4f1f60-9c2e-4b8a-8f3d-2a1b5c6d7e8f
                            session_number: 1234
                            vendor_data: user_ref_001
                            verification_date: '2024-06-15T10:30:00Z'
                            user_details:
                              name: John Smith
                              document_type: ID
                              document_number: CLM148418
                            status: Approved
                            is_blocklisted: false
                            api_service: null
                            front_image_url: https://<media-host>/document_front.jpg
                          - session_id: b2c8e4d1-6a3f-4e7b-95c0-1d8f2a6b4c9e
                            session_number: 1235
                            vendor_data: null
                            verification_date: '2024-05-20T14:45:00Z'
                            user_details:
                              name: John Smith
                              document_type: ID
                              document_number: CLM148418
                            status: Declined
                            is_blocklisted: true
                            api_service: ID_VERIFICATION
                            front_image_url: https://<media-host>/document_front_2.jpg
                        warnings:
                          - feature: ID_VERIFICATION
                            risk: QR_NOT_DETECTED
                            additional_data: null
                            log_type: information
                            short_description: QR not detected
                            long_description: >-
                              The system couldn't find or read the QR code on
                              the document, which is necessary for document
                              verification. This could be due to poor image
                              quality or an unsupported document type.
                            node_id: feature_ocr_1
                        verification_method: document
                        assurance: documentary
                        wallet_provider: null
                        fallback_from: null
                        id_lookup: null
                        wallet_verification: null
                        document_liveness:
                          portrait_replace:
                            score: 96.46
                            front: 96.46
                            back: 98.2
                            decline_threshold: 35
                            review_threshold: 70
                            bucket: approve
                          printed_copy:
                            score: 91.2
                            front: 91.2
                            back: 93.7
                            decline_threshold: 35
                            review_threshold: 77
                            bucket: approve
                          screen_replay:
                            score: 99.9
                            front: 99.9
                            back: 99.5
                            decline_threshold: 30
                            review_threshold: 70
                            bucket: approve
                      - node_id: feature_ocr_2
                        status: Approved
                        issuing_state: ZAF
                        issuing_state_name: South Africa
                        first_name: Thabo
                        last_name: Mokoena
                        full_name: Thabo Mokoena
                        date_of_birth: '1991-06-15'
                        personal_number: '9106155043088'
                        verification_method: id_lookup
                        assurance: data_match
                        wallet_provider: null
                        fallback_from: null
                        id_lookup:
                          source: Department of Home Affairs
                          checked_at: '2026-09-04T09:12:44Z'
                          attempts: 1
                          max_attempts: 2
                          outcome: match
                          comparison:
                            - field: identification_number
                              label: ID number
                              provided: '9106155043088'
                              record: '9106155043088'
                              result: match
                            - field: full_name
                              label: Full name
                              provided: Thabo Mokoena
                              record: Thabo Mokoena
                              result: match
                            - field: date_of_birth
                              label: Date of birth
                              provided: '1991-06-15'
                              record: '1991-06-15'
                              result: match
                          registry_portrait: https://<media-host>/registry_portrait.jpg
                          face_match_score: 96.4
                          source_errors: []
                        wallet_verification: null
                        warnings: []
                      - node_id: feature_ocr_3
                        status: Approved
                        issuing_state: DNK
                        issuing_state_name: Denmark
                        first_name: Freja
                        last_name: Nielsen
                        full_name: Freja Nielsen
                        date_of_birth: '1988-03-02'
                        verification_method: wallet
                        assurance: cryptographic
                        wallet_provider: mitid
                        fallback_from: null
                        id_lookup: null
                        wallet_verification:
                          provider: mitid
                          provider_name: MitID
                          issuing_authority: Danish Agency for Digital Government
                          issuing_country: DNK
                          credential_type: person_identification
                          level_of_assurance: substantial
                          verified_at: '2026-09-04T09:12:44Z'
                          signature_valid: true
                          attributes:
                            full_name: Freja Nielsen
                            date_of_birth: '1988-03-02'
                            cpr_alias: b0f1c2d3-e4f5-4678-9abc-def012345678
                          portrait: null
                          face_match_score: null
                        warnings: []
                    nfc_verifications:
                      - node_id: feature_nfc_1
                        status: In Review
                        is_nfc_skipped: false
                        skip_reason: null
                        chip_protocol: icao
                        jpki: null
                        portrait_image: https://<media-host>/portrait.jpg
                        signature_image: https://<media-host>/signature.jpg
                        chip_data:
                          document_type: ID
                          issuing_country: ESP
                          document_number: '123456789'
                          expiration_date: '2030-01-01'
                          first_name: John
                          last_name: Smith
                          birth_date: '1990-05-15'
                          gender: M
                          nationality: ESP
                          address: CALLE MAYOR 123 4B, MADRID, MADRID
                          place_of_birth: MADRID, MADRID
                        authenticity:
                          sod_integrity: true
                          dg_integrity: true
                        certificate_summary:
                          issuer: >-
                            Common Name: CSCA SPAIN, Serial Number: 3,
                            Organization: DIRECCION GENERAL DE LA POLICIA,
                            Country: ES
                          subject: >-
                            Common Name: DS n-eID SPAIN 2, Organizational Unit:
                            PASSPORT, Organization: DIRECCION GENERAL DE LA
                            POLICIA, Country: ES
                          serial_number: '118120836164494130086420187336801405660'
                          not_valid_after: '2031-02-18 10:21:11'
                          not_valid_before: '2020-11-18 10:21:11'
                        warnings:
                          - feature: NFC
                            risk: DATA_INCONSISTENT
                            additional_data: null
                            log_type: warning
                            short_description: OCR and NFC mrz code extracted are not the same
                            long_description: >-
                              The Optical Character Recognition (OCR) data and
                              the NFC chip data don't match, indicating
                              potential document tampering or data
                              inconsistency.
                            node_id: feature_nfc_1
                    liveness_checks:
                      - node_id: feature_liveness_1
                        status: Approved
                        method: ACTIVE_3D
                        score: 89.92
                        reference_image: https://<media-host>/reference.jpg
                        video_url: https://<media-host>/video.mp4
                        age_estimation: 24.3
                        matches:
                          - session_id: 7d4f1f60-9c2e-4b8a-8f3d-2a1b5c6d7e8f
                            session_number: 1234
                            vendor_data: user_ref_001
                            verification_date: '2024-06-15T10:30:00Z'
                            user_details:
                              full_name: John Smith
                              document_type: ID
                              document_number: CLM148418
                            status: Approved
                            is_blocklisted: false
                            is_allowlisted: false
                            api_service: null
                            source: session
                            match_image_url: https://<media-host>/face_match.jpg
                            similarity_percentage: 98.5
                          - session_id: 3e9a7c21-5b48-4f0e-9c6a-8d2f4b1e0a35
                            session_number: 1100
                            vendor_data: customer_xyz
                            verification_date: '2024-04-10T09:15:00Z'
                            user_details:
                              full_name: John Smith
                              document_type: P
                              document_number: DZ8375806
                            status: Approved
                            is_blocklisted: false
                            is_allowlisted: false
                            api_service: PASSIVE_LIVENESS
                            source: session
                            match_image_url: https://<media-host>/face_match_2.jpg
                            similarity_percentage: 95.2
                        warnings:
                          - feature: LIVENESS
                            risk: LOW_LIVENESS_SCORE
                            additional_data: null
                            log_type: information
                            short_description: Low liveness score
                            long_description: >-
                              The liveness check resulted in a low score,
                              indicating potential use of non-live facial
                              representations or poor-quality biometric data.
                            node_id: feature_liveness_1
                        face_quality: null
                        face_luminance: null
                    face_matches:
                      - node_id: feature_face_match_1
                        status: In Review
                        score: 65.43
                        source_image_session_id: null
                        source_image: https://<media-host>/source-image.jpg
                        target_image: https://<media-host>/target-image.jpg
                        warnings:
                          - feature: FACEMATCH
                            risk: LOW_FACE_MATCH_SIMILARITY
                            additional_data: null
                            log_type: warning
                            short_description: Low face match similarity
                            long_description: >-
                              The facial features of the provided image don't
                              closely match the reference image, suggesting a
                              potential identity mismatch.
                            node_id: feature_face_match_1
                    phone_verifications:
                      - node_id: feature_phone_1
                        status: Approved
                        phone_number_prefix: '+34'
                        phone_number: '600600600'
                        full_number: '+34600600600'
                        country_code: ES
                        country_name: Spain
                        carrier:
                          name: Orange
                          type: mobile
                        is_disposable: false
                        is_virtual: false
                        verification_method: sms
                        verification_attempts: 1
                        verified_at: '2024-07-28T06:47:35.654321Z'
                        lifecycle:
                          - type: PHONE_VERIFICATION_MESSAGE_SENT
                            timestamp: '2025-08-24T09:12:39.580554+00:00'
                            details:
                              status: Success
                              reason: null
                              channel: sms
                              actual_channel: sms
                            fee: 0.1
                          - type: VALID_CODE_ENTERED
                            timestamp: '2025-08-24T09:12:39.662157+00:00'
                            details:
                              code_tried: '123456'
                              status: Approved
                            fee: 0
                          - type: PHONE_VERIFICATION_APPROVED
                            timestamp: '2025-08-24T09:12:39.684292+00:00'
                            details: null
                            fee: 0
                        warnings: []
                        matches:
                          - session_id: null
                            session_number: null
                            vendor_data: null
                            verification_date: null
                            phone_number: '+34600000000'
                            status: null
                            is_blocklisted: true
                            api_service: null
                            source: list_entry
                    email_verifications:
                      - node_id: feature_email_1
                        status: Approved
                        email: test@example.com
                        is_breached: true
                        breaches:
                          - name: TAPAirPortugal
                            domain: flytap.com
                            logo_path: https://logos.example.com/TAPAirPortugal.png
                            breach_date: '2022-08-25'
                            description: >-
                              In August 2022, the Portuguese airline <a
                              href="https://www.bleepingcomputer.com/news/security/ragnar-locker-ransomware-claims-attack-on-portugals-flag-airline/"
                              target="_blank" rel="noopener">TAP Air Portugal
                              was the target of a ransomware attack perpetrated
                              by the Ragnar Locker gang</a> who later leaked the
                              compromised data via a public dark web site. Over
                              5M unique email addresses were exposed alongside
                              other personal data including names, genders,
                              DoBs, phone numbers and physical addresses.
                            is_verified: true
                            data_classes:
                              - dates_of_birth
                              - email_addresses
                              - genders
                              - names
                              - nationalities
                              - phone_numbers
                              - physical_addresses
                              - salutations
                              - spoken_languages
                            breach_emails_count: 6083479
                        is_disposable: false
                        is_undeliverable: false
                        verification_attempts: 1
                        verified_at: '2025-09-15T17:36:19.963451Z'
                        warnings:
                          - feature: EMAIL
                            risk: BREACHED_EMAIL_DETECTED
                            additional_data: null
                            log_type: information
                            short_description: Breached email detected
                            long_description: >-
                              This email address was found in one or more known
                              data breaches.
                            node_id: feature_email_1
                        lifecycle:
                          - type: EMAIL_VERIFICATION_MESSAGE_SENT
                            timestamp: '2025-09-15T17:36:19.792684+00:00'
                            details:
                              status: Success
                              reason: null
                            fee: 0.02
                          - type: VALID_CODE_ENTERED
                            timestamp: '2025-09-15T17:36:19.963427+00:00'
                            details:
                              code_tried: '123456'
                              status: Approved
                            fee: 0
                          - type: EMAIL_VERIFICATION_DECLINED
                            timestamp: '2025-09-15T17:36:20.081471+00:00'
                            details:
                              reason: BREACHED_EMAIL_DETECTED
                            fee: 0
                        matches:
                          - session_id: null
                            session_number: null
                            vendor_data: null
                            verification_date: null
                            email: test@example.com
                            status: null
                            is_blocklisted: true
                            api_service: null
                            source: list_entry
                    poa_verifications:
                      - node_id: feature_poa_1
                        status: Declined
                        document_file: https://<media-host>/poa_document.pdf
                        issuing_state: AR
                        document_type: UTILITY_BILL
                        document_subtype: null
                        document_language: es
                        document_metadata:
                          file_size: 1000
                          content_type: application/pdf
                          creation_date: '2021-01-01'
                          modified_date: '2021-01-01'
                          overlay_manipulation: null
                          creator: null
                          producer: PDF Generator
                          software: null
                          encryption: null
                          is_signed: false
                          is_tampered: false
                          signature_info: null
                          exif_original_date: null
                          exif_digitized_date: null
                          processed_by_known_editor: false
                          has_different_creation_mod_date: true
                        issuer: Aguas del Norte
                        issue_date: '2021-02-01'
                        expiration_date: null
                        poa_address: AVDA. MONSEÑOR TAVELLA N° 3396, SALTA
                        poa_formatted_address: Av. Monseñor Tavella 3396, A4400 Salta, Argentina
                        poa_parsed_address:
                          address_type: Avenida
                          street_1: Avenida Monseñor Tavella 3396
                          street_2: null
                          city: Salta
                          region: Salta
                          country: AR
                          postal_code: A4400
                          document_location:
                            latitude: -24.8208664
                            longitude: -65.4131
                        name_on_document: Fernando De Lima
                        name_match_score_expected_details: null
                        name_match_score_id_verification: 38.5
                        expected_details_address: null
                        expected_details_formatted_address: null
                        expected_details_parsed_address: {}
                        extra_fields:
                          bank_account_number: '1234567890'
                          bank_iban: null
                          bank_sort_code: null
                          bank_routing_number: null
                          bank_swift_bic: null
                          bank_branch_name: null
                          bank_branch_address: null
                          document_phone_number: '+5491112345678'
                          additional_names: []
                        extra_files:
                          - https://<media-host>/extra_poa.pdf
                        detected_codes:
                          - type: QR_CODE
                            page_number: 1
                            position:
                              - - 820
                                - 1120
                              - - 1002
                                - 1120
                              - - 1002
                                - 1302
                              - - 820
                                - 1302
                            x: 820
                            'y': 1120
                            width: 182
                            height: 182
                            page_width: 1190
                            page_height: 1684
                            raw_payload: >-
                              aHR0cHM6Ly9hZ3Vhc2RlbG5vcnRlLmNvbS9mYWN0dXJhLzk5ODgxMQ==
                            parsed_payload: https://aguasdelnorte.com/factura/998811
                          - type: CODE_128
                            page_number: 1
                            position:
                              - - 112
                                - 1480
                              - - 560
                                - 1480
                              - - 560
                                - 1540
                              - - 112
                                - 1540
                            x: 112
                            'y': 1480
                            width: 448
                            height: 60
                            page_width: 1190
                            page_height: 1684
                            raw_payload: MDA5OTg4MTEwMDA0Mg==
                            parsed_payload: '0099881100042'
                        warnings: []
                    document_ai_documents:
                      - status: Approved
                        node_id: feature_document_ai_1
                        items:
                          - uuid: c1a2b3c4-d5e6-7f80-9a1b-2c3d4e5f6071
                            node_id: feature_document_ai_1
                            document_key: proof_of_funds
                            original_filename: bank_statement.pdf
                            file_size: 184320
                            file_url: >-
                              https://<media-host>/document_ai/proof_of_funds.pdf
                            status: Approved
                            extracted_data:
                              account_holder: John Doe
                              balance: 15230.55
                              currency: EUR
                              statement_date: '2026-05-31'
                            detected_codes:
                              - type: QR_CODE
                                page_number: 2
                                position:
                                  - - 124
                                    - 86
                                  - - 306
                                    - 86
                                  - - 306
                                    - 268
                                  - - 124
                                    - 268
                                x: 124
                                'y': 86
                                width: 182
                                height: 182
                                page_width: 1190
                                page_height: 1684
                                raw_payload: SU5WLTIwMjYtMDA0Mg==
                                parsed_payload: INV-2026-0042
                            fields:
                              - key: account_holder
                                name: Account holder
                                instruction: Extract the full name of the account holder.
                                type: text
                                required: true
                              - key: balance
                                name: Closing balance
                                instruction: Extract the closing balance amount.
                                type: number
                                required: true
                            document_metadata:
                              is_tampered: false
                            cross_check_result: null
                            created_at: '2026-06-01T12:34:56Z'
                        warnings: []
                    questionnaire_responses:
                      - node_id: feature_questionnaire_1
                        questionnaire_id: 9f7485e0-b00b-4d56-9d3e-7859b68d1213
                        title: Source of Funds
                        description: >-
                          Reply to this questionnaire to help us understand the
                          source of funds.
                        languages:
                          - en
                        default_language: en
                        is_active: true
                        is_simple_questionnaire: true
                        questionnaire_group_id: 2b6a9d40-13a8-4b1e-9a6c-3f1d2e4b5a60
                        version: 1
                        published_at: '2025-11-02T09:14:55.000000Z'
                        sections:
                          - title: null
                            description: null
                            items:
                              - uuid: 618636d9-7d5c-41ce-b8d0-1ab2a4be20db
                                value: question_1
                                element_type: DROPDOWN
                                is_required: true
                                title: What is your primary source of funds?
                                description: null
                                placeholder: null
                                choices:
                                  - label: Salary
                                    value: salary
                                  - label: Business Income
                                    value: business_income
                                  - label: Savings
                                    value: savings
                                  - label: Investments
                                    value: investments
                                  - label: Sale of Asset
                                    value: sale_of_asset
                                  - label: Inheritance/Gift
                                    value: inheritance_gift
                                  - label: Pension
                                    value: pension
                                  - label: Crypto Proceeds
                                    value: crypto_proceeds
                                  - label: Other
                                    value: other
                                    requires_text_input: true
                                max_files: 1
                                answer:
                                  value: salary
                                required_if: null
                                repeatable_config: null
                              - uuid: 2d16b527-72be-42e0-8e96-b164b818386c
                                value: question_2
                                element_type: LONG_TEXT
                                is_required: true
                                title: Provide details of the primary source.
                                description: null
                                placeholder: null
                                choices: null
                                max_files: 1
                                answer:
                                  value: Test answer
                                required_if: null
                                repeatable_config: null
                              - uuid: a9239b7c-fbfb-4ea7-b7e4-c835cd4016e0
                                value: question_3
                                element_type: DROPDOWN
                                is_required: true
                                title: What is your annual income range (pre-tax)?
                                description: null
                                placeholder: null
                                choices:
                                  - label: Less than $25,000
                                    value: <25k
                                  - label: $25,000 - $50,000
                                    value: 25k-50k
                                  - label: $50,001 - $100,000
                                    value: 50k-100k
                                  - label: $100,001 - $250,000
                                    value: 100k-250k
                                  - label: More than $250,000
                                    value: '>250k'
                                max_files: 1
                                answer:
                                  value: <25k
                                required_if: null
                                repeatable_config: null
                              - uuid: 93dede62-6d0c-4a7f-934d-42175eb94011
                                value: question_4
                                element_type: DROPDOWN
                                is_required: true
                                title: What is your approximate net worth (range)?
                                description: null
                                placeholder: null
                                choices:
                                  - label: Less than $50,000
                                    value: <50k
                                  - label: $50,000 - $250,000
                                    value: 50k-250k
                                  - label: $250,001 - $1,000,000
                                    value: 250k-1m
                                  - label: $1,000,001 - $5,000,000
                                    value: 1m-5m
                                  - label: More than $5,000,000
                                    value: '>5m'
                                max_files: 1
                                answer:
                                  value: <50k
                                required_if: null
                                repeatable_config: null
                              - uuid: 2af60d6f-6961-4692-9ee7-24b3033610a6
                                value: question_5
                                element_type: LONG_TEXT
                                is_required: true
                                title: >-
                                  For your initial deposit/funding, indicate the
                                  exact source and amount.
                                description: null
                                placeholder: null
                                choices: null
                                max_files: 1
                                answer:
                                  value: Test answer
                                required_if: null
                                repeatable_config: null
                              - uuid: 0ad9d1aa-736f-46cf-947b-9e1241b53e40
                                value: question_6
                                element_type: LONG_TEXT
                                is_required: true
                                title: Breakdown of sources by percentage.
                                description: null
                                placeholder: null
                                choices: null
                                max_files: 1
                                answer:
                                  value: Test answer
                                required_if: null
                                repeatable_config: null
                              - uuid: 1bf8a2a3-14ee-48a8-bb3d-175481aae4aa
                                value: question_7
                                element_type: SINGLE_CHOICE
                                is_required: true
                                title: >-
                                  Will any funds originate from third parties?
                                  If yes, please provide details.
                                description: null
                                placeholder: null
                                choices:
                                  - label: 'Yes'
                                    value: 'yes'
                                    requires_text_input: true
                                  - label: 'No'
                                    value: 'no'
                                max_files: 1
                                answer:
                                  text: Additional details
                                  value: 'yes'
                                required_if: null
                                repeatable_config: null
                              - uuid: e18d4dd3-b7bf-4883-ba18-d6046adbe313
                                value: question_8
                                element_type: SINGLE_CHOICE
                                is_required: true
                                title: >-
                                  Do you hold or plan to use virtual assets
                                  (e.g., crypto) to fund this account? If yes,
                                  please provide details.
                                description: null
                                placeholder: null
                                choices:
                                  - label: 'Yes'
                                    value: 'yes'
                                    requires_text_input: true
                                  - label: 'No'
                                    value: 'no'
                                max_files: 1
                                answer:
                                  text: Additional details
                                  value: 'yes'
                                required_if: null
                                repeatable_config: null
                              - uuid: a90a073d-e098-404c-bbce-5130d8b12a13
                                value: question_9
                                element_type: FILE_UPLOAD
                                is_required: true
                                title: Upload a proof of funds document
                                description: >-
                                  You can upload your three (3) most recent bank
                                  statements, three (3) most recent payslips,
                                  your most recent tax return, proof of company
                                  ownership, trading exchange statement, sale of
                                  property, or proof of inheritance.
                                placeholder: null
                                choices: null
                                max_files: 3
                                answer:
                                  files:
                                    - /media/ocr/
                                    - /media/ocr/
                                required_if: null
                                repeatable_config: null
                              - uuid: 9503b486-7cb8-4c3b-a97d-4b64926a5a47
                                value: question_10
                                element_type: LONG_TEXT
                                is_required: false
                                title: >-
                                  Would you like to add any details to help us
                                  expedite our review of the documents you
                                  submitted?
                                description: null
                                placeholder: null
                                choices: null
                                max_files: 1
                                answer:
                                  value: Test answer
                                required_if: null
                                repeatable_config: null
                        status: Approved
                    aml_screenings:
                      - node_id: feature_aml_1
                        status: In Review
                        total_hits: 1
                        entity_type: person
                        hits:
                          - id: hit_7c1e9a40b2d35f86e0a4c912
                            url: https://news.example.org/articles/sample
                            match: false
                            score: 0.73
                            target: null
                            caption: Javier Ejemplo Modelo
                            datasets:
                              - PEP
                            features: null
                            rca_name: ''
                            last_seen: '2025-06-13T00:00:00'
                            risk_view:
                              crimes:
                                score: 0
                                weightage: 20
                                risk_level: Low
                                risk_scores: {}
                              countries:
                                score: 0
                                weightage: 30
                                risk_level: Low
                                risk_scores: {}
                              categories:
                                score: 100
                                weightage: 50
                                risk_level: High
                                risk_scores:
                                  PEP: 100
                              custom_list: {}
                            first_seen: '2025-01-18T00:00:00'
                            properties:
                              name:
                                - Javier Ejemplo Modelo
                              alias:
                                - Javier Ejemplo Modelo
                                - David Azagra
                              notes:
                                - Spanish orchestra conductor
                              title: null
                              gender:
                                - male
                              height: null
                              topics: null
                              weight: null
                              address: null
                              country: null
                              website: null
                              eyeColor: null
                              keywords: null
                              lastName:
                                - Ejemplo
                                - Modelo
                              position: null
                              religion: null
                              birthDate:
                                - '1974'
                              education:
                                - Tokyo Arts and Space (2012-2012)
                                - Saint Petersburg Conservatory (-2010)
                                - Comillas Pontifical University
                              ethnicity: null
                              firstName:
                                - David
                              hairColor: null
                              weakAlias: null
                              birthPlace:
                                - Madrid
                              modifiedAt: null
                              wikidataId: null
                              citizenship: null
                              nationality: null
                            match_score: 98
                            risk_score: 73
                            review_status: Unreviewed
                            score_breakdown:
                              name_score: 95
                              name_weight: 60
                              name_weight_normalized: 70.59
                              name_contribution: 67.06
                              dob_score: 100
                              dob_weight: 25
                              dob_weight_normalized: 29.41
                              dob_contribution: 29.41
                              country_score: 0
                              country_weight: 15
                              country_weight_normalized: 0
                              country_contribution: 0
                              document_number_match_type: NEUTRAL
                              document_number_effect: No document number provided for screening
                              total_score: 98
                            pep_matches:
                              - aliases:
                                  - Javier Ejemplo Modelo
                                  - David Azagra
                                education:
                                  - Tokyo Arts and Space (2012-2012)
                                  - Saint Petersburg Conservatory (-2010)
                                  - Comillas Pontifical University
                                list_name: Wikidata
                                publisher: Wikidata
                                source_url: https://news.example.org/articles/sample
                                description: >-
                                  Wikidata is the structured data project of the
                                  Wikipedia community, providing fact-based
                                  information edited by humans and machines
                                matched_name: Javier Ejemplo Modelo
                                pep_position: ''
                                date_of_birth: '1974'
                                other_sources: []
                                place_of_birth: Madrid
                            linked_entities:
                              - name:
                                  - Antonio Ejemplo
                                active: []
                                status: []
                                details: []
                                relation: []
                            warning_matches: []
                            sanction_matches: []
                            adverse_media_details:
                              sentiment: Moderately Negative
                              entity_type: person
                              sentiment_score: -2
                              adverse_keywords:
                                fraud: 3
                                juicio: 1
                                delitos: 2
                                imputado: 1
                                impunidad: 1
                                corruption: 2
                                favoritism: 2
                                privilegio: 1
                                corrupción: 1
                                persecution: 2
                                desconfianza: 1
                                desprestigio: 1
                                fraude de ley: 2
                                manipulación: 1
                                investigación: 3
                                prevaricación: 8
                                trato de favor: 1
                                irregularidades: 2
                                crisis de confianza: 1
                                tráfico de influencias: 8
                            adverse_media_matches:
                              - country: spain
                                summary: >-
                                  Javier Ejemplo is implicated in legal
                                  violations related to favoritism and influence
                                  trafficking, leading to a negative portrayal
                                  in the article.
                                headline: >-
                                  La Diputación de Villaejemplo consolida la
                                  plaza a medida para el ex asesor de Moncloa
                                  amigo del "hermanito" de Ejemplo
                                sentiment: moderately negative
                                thumbnail: https://news.example.org/articles/sample
                                source_url: https://news.example.org/articles/sample
                                author_name: null
                                other_sources: []
                                adverse_keywords:
                                  - fraud
                                  - prevaricación
                                  - tráfico de influencias
                                  - irregularidades
                                  - imputado
                                sentiment_score: -2
                                publication_date: '2025-06-10T20:46:38'
                              - country: spain
                                summary: >-
                                  Javier Ejemplo is implicated in legal issues
                                  regarding favoritism and corruption, leading
                                  to a negative portrayal in the article.
                                headline: >-
                                  La Diputación de Villaejemplo consolida la
                                  plaza a medida para el ex asesor de Moncloa
                                  amigo del "hermanito" de Ejemplo
                                sentiment: moderately negative
                                thumbnail: https://news.example.org/articles/sample
                                source_url: https://news.example.org/articles/sample
                                author_name: null
                                other_sources: []
                                adverse_keywords:
                                  - fraud
                                  - prevaricación
                                  - tráfico de influencias
                                  - irregularidades
                                  - trato de favor
                                sentiment_score: -2
                                publication_date: '2025-06-10T20:46:38'
                              - country: spain
                                summary: >-
                                  Javier Ejemplo Modelo is mentioned in
                                  connection with Carlos Ficticio's corruption
                                  case, indicating his involvement in alleged
                                  influence peddling.
                                headline: España, paraíso del aforado
                                sentiment: moderately negative
                                thumbnail: https://news.example.org/articles/sample
                                source_url: https://news.example.org/articles/sample
                                author_name: null
                                other_sources: []
                                adverse_keywords:
                                  - prevaricación
                                  - tráfico de influencias
                                  - corrupción
                                  - impunidad
                                  - privilegio
                                  - desconfianza
                                  - manipulación
                                  - fraude de ley
                                sentiment_score: -2
                                publication_date: '2025-06-10T05:05:34'
                              - country: spain
                                summary: >-
                                  Javier Ejemplo Modelo is implicated in the
                                  same investigation as Ficticio, which raises
                                  questions about his conduct and political
                                  ethics.
                                headline: 'Aforamientos: esa figura incómoda'
                                sentiment: moderately negative
                                thumbnail: https://news.example.org/articles/sample
                                source_url: https://news.example.org/articles/sample
                                author_name: null
                                other_sources: []
                                adverse_keywords:
                                  - prevaricación
                                  - tráfico de influencias
                                  - investigación
                                  - juicio
                                  - fraude de ley
                                  - desprestigio
                                  - crisis de confianza
                                  - delitos
                                sentiment_score: -2
                                publication_date: '2025-06-08T06:01:00'
                              - country: spain
                                summary: >-
                                  Javier Ejemplo is implicated in a legal
                                  investigation regarding irregularities in his
                                  hiring, which raises serious concerns about
                                  his conduct.
                                headline: >-
                                  La jueza del 'caso Javier Ejemplo' denuncia un
                                  «fraude de ley» en el aforamiento de Ficticio
                                  (Partido Ejemplo)
                                sentiment: moderately negative
                                thumbnail: https://news.example.org/articles/sample
                                source_url: https://news.example.org/articles/sample
                                author_name: null
                                other_sources: []
                                adverse_keywords:
                                  - fraud
                                  - irregularities
                                  - prevaricación
                                  - tráfico de influencias
                                sentiment_score: -2
                                publication_date: '2025-06-09T10:19:10'
                              - country: spain
                                summary: >-
                                  Javier Ejemplo Modelo is mentioned in
                                  connection with legal allegations of
                                  corruption, contributing to a negative
                                  perception.
                                headline: >-
                                  'Caso aforamiento': la letrada mayor de la
                                  Asamblea certifica a la juez que Ficticio es
                                  diputado desde antes de prometer su cargo en
                                  el Pleno
                                sentiment: moderately negative
                                thumbnail: https://news.example.org/articles/sample
                                source_url: https://news.example.org/articles/sample
                                author_name: null
                                other_sources: []
                                adverse_keywords:
                                  - prevaricación
                                  - tráfico de influencias
                                sentiment_score: -2
                                publication_date: '2025-06-09T08:08:30'
                              - country: spain
                                summary: >-
                                  Javier Ejemplo Modelo is implicated in the
                                  same investigation as Ficticio, raising
                                  concerns about political corruption and
                                  influence.
                                headline: 'Aforamientos: esa figura incómoda'
                                sentiment: moderately negative
                                thumbnail: https://news.example.org/articles/sample
                                source_url: https://news.example.org/articles/sample
                                author_name: null
                                other_sources: []
                                adverse_keywords:
                                  - prevaricación
                                  - tráfico de influencias
                                  - investigación
                                sentiment_score: -2
                                publication_date: '2025-06-08T06:01:00'
                              - country: spain
                                summary: >-
                                  Javier Ejemplo Modelo is implicated in the
                                  same investigation as Ficticio, which raises
                                  concerns about political misconduct.
                                headline: 'Aforamientos: esa figura incómoda'
                                sentiment: moderately negative
                                thumbnail: https://news.example.org/articles/sample
                                source_url: https://news.example.org/articles/sample
                                author_name: null
                                other_sources: []
                                adverse_keywords:
                                  - prevaricación
                                  - tráfico de influencias
                                  - investigación
                                  - delitos
                                sentiment_score: -2
                                publication_date: '2025-06-08T06:00:59'
                              - country: spain
                                summary: >-
                                  Javier Ejemplo is implicated in a case of
                                  favoritism and corruption, which casts a
                                  negative light on his character and actions.
                                headline: >-
                                  'Caso Javier Ejemplo': las asociaciones
                                  judiciales salen en defensa de la juez Luisa
                                  Inventada ante las "presiones externas" que
                                  sufre
                                sentiment: moderately negative
                                thumbnail: https://news.example.org/articles/sample
                                source_url: https://news.example.org/articles/sample
                                author_name: null
                                other_sources: []
                                adverse_keywords:
                                  - favoritism
                                  - corruption
                                  - persecution
                                sentiment_score: -2
                                publication_date: '2025-06-06T10:08:15'
                              - country: spain
                                summary: >-
                                  Javier Ejemplo is implicated in a case of
                                  alleged favoritism and corruption, which casts
                                  a negative light on his character and actions.
                                headline: >-
                                  'Caso Javier Ejemplo': las asociaciones
                                  judiciales salen en defensa de la juez Luisa
                                  Inventada ante las "presiones externas" que
                                  sufre
                                sentiment: moderately negative
                                thumbnail: https://news.example.org/articles/sample
                                source_url: https://news.example.org/articles/sample
                                author_name: null
                                other_sources: []
                                adverse_keywords:
                                  - favoritism
                                  - corruption
                                  - persecution
                                sentiment_score: -2
                                publication_date: '2025-06-06T08:08:15'
                            additional_information: {}
                        score: 80
                        screened_data:
                          full_name: Javier Ejemplo Modelo
                          nationality: ES
                          date_of_birth: '1974-01-01'
                          document_number: null
                        is_ongoing_monitoring_enabled: true
                        next_ongoing_monitoring_bill_date: '2026-07-24'
                        last_ongoing_screening_at: '2026-09-12T04:03:11Z'
                        last_ongoing_screening_datasets_updated_at: '2026-09-11T06:00:00Z'
                        warnings:
                          - feature: AML
                            risk: POSSIBLE_MATCH_FOUND
                            additional_data: null
                            log_type: warning
                            short_description: Possible match found in AML screening
                            long_description: >-
                              The Anti-Money Laundering (AML) screening process
                              identified potential matches with watchlists or
                              high-risk databases, requiring further review.
                            node_id: feature_aml_1
                    ip_analyses:
                      - node_id: feature_ip_1
                        status: Approved
                        device_brand: Apple
                        device_model: iPhone
                        browser_family: Mobile Safari
                        os_family: iOS
                        platform: mobile
                        device_fingerprint: didit-fp-a1b2c3d4e5f6g7h8
                        ip_country: Spain
                        ip_country_code: ES
                        ip_state: Barcelona
                        ip_city: Barcelona
                        latitude: 41.4022
                        longitude: 2.1407
                        ip_address: 83.50.226.71
                        isp: null
                        organization: null
                        is_vpn_or_tor: false
                        is_data_center: false
                        time_zone: Europe/Madrid
                        time_zone_offset: '+0100'
                        ip:
                          location:
                            latitude: 40.2206327
                            longitude: 1.5770097
                          distance_from_id_document: 23.4
                          distance_from_poa_document: 12.3
                        id_document:
                          location:
                            latitude: 41.2706327
                            longitude: 1.9770097
                          distance_from_ip: 23.4
                          distance_from_poa_document: 18.7
                        poa_document:
                          location:
                            latitude: 41.2706327
                            longitude: 1.9770097
                          distance_from_ip: 12.3
                          distance_from_id_document: 18.7
                        warnings: []
                        matches:
                          - session_id: 99999999-8888-7777-6666-555555555555
                            session_number: 41205
                            vendor_data: 22222222-2222-2222-2222-222222222222
                            verification_date: '2024-07-20T10:15:30Z'
                            match_type: ip_address
                            match_source: ip_address
                            matched_value: 83.50.226.71
                            status: Approved
                            is_blocklisted: false
                            api_service: null
                            source: session
                            device_info:
                              device_brand: Apple
                              device_model: iPhone
                              browser_family: Mobile Safari
                              os_family: iOS
                              platform: mobile
                              device_fingerprint: didit-fp-f9e8d7c6b5a40312
                            location_info:
                              ip_address: 83.50.226.71
                              ip_country: Spain
                              ip_country_code: ES
                              ip_state: Barcelona
                              ip_city: Barcelona
                              is_vpn_or_tor: false
                              is_data_center: false
                            confidence: 0
                            match_mode: co_occurrence
                          - session_id: aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee
                            session_number: 42830
                            vendor_data: 33333333-3333-3333-3333-333333333333
                            verification_date: '2024-06-30T18:22:05Z'
                            match_type: device_fingerprint
                            match_source: recovered_high
                            matched_value: f47ac10b-58cc-4372-a567-0e02b2c3d479
                            status: Declined
                            is_blocklisted: false
                            api_service: null
                            source: session
                            device_info:
                              device_brand: Samsung
                              device_model: SM-G991B
                              browser_family: Chrome Mobile
                              os_family: Android
                              platform: mobile
                              device_fingerprint: null
                            location_info:
                              ip_address: 83.50.231.18
                              ip_country: Spain
                              ip_country_code: ES
                              ip_state: Madrid
                              ip_city: Madrid
                              is_vpn_or_tor: false
                              is_data_center: false
                            confidence: 1
                            match_mode: deterministic
                            recovery_similarity: 0.9874
                            tls_ja4_corroborated: true
                            recovery_gate_reason: hardware_root_match
                    database_validations:
                      - node_id: feature_db_validation_1
                        issuing_state: BRA
                        validation_type: one_by_one
                        screened_data:
                          last_name: De Lima
                          first_name: Fernando
                          tax_number: '01234567890'
                          date_of_birth: '1980-01-01'
                          document_type: ID
                          expiration_date: '2030-01-01'
                        validations:
                          - service_id: bra_cpf
                            service_name: Brazil - CPF status check
                            outcome_code: MATCH
                            validation:
                              full_name: full_match
                              date_of_birth: full_match
                              identification_number: full_match
                            source_data:
                              identification_number: '01234567890'
                              first_name: FERNANDO
                              last_name: DE LIMA
                              date_of_birth: '1980-01-01'
                              gender: M
                              nationality: BRA
                        match_type: full_match
                        status: Approved
                        warnings: []
                    reviews:
                      - user: compliance@example.com
                        new_status: Declined
                        comment: Possible match found in AML screening
                        created_at: '2024-07-18T13:29:00.366811Z'
                    created_at: '2024-07-24T08:54:25.443172Z'
                    expires_at: '2025-07-24T08:54:25.443172Z'
                    biometric_consent:
                      required: false
                      trigger: null
                      status: not_required
                      given_at: null
                      declined_at: null
                      text_version: null
                      text_hash: null
                      locale: null
                      policy_url: null
                      step: null
                      node_id: null
                      ip_address: null
                      ip_country_code: null
                      ip_state: null
                      ip_city: null
                      user_agent: null
                      detected_ip_address: 83.50.226.71
                      detected_country_code: ES
                      detected_state: ES-B
                      detected_city: Barcelona
                      declared_state: null
                      document_state: null
                      jurisdictions: []
                      retention_months: null
                      reason: null
                      decline_reason: null
                      face_data_deleted_at: null
                BusinessExample:
                  summary: Exemple de sessió d'empresa (KYB)
                  description: >-
                    Una decisió de `session_kind = "business"`: les sessions de
                    KYB substitueixen les matrius de funcionalitats de KYC per
                    `registry_checks`, `document_verifications` i
                    `key_people_checks`, alhora que comparteixen
                    `aml_screenings`, `phone_verifications`,
                    `email_verifications`, `questionnaire_responses`,
                    `ip_analyses`, `reviews` i l'embolcall de la sessió.
                  value:
                    session_id: 66666666-7777-8888-9999-000000000000
                    session_kind: business
                    session_number: 31415
                    session_url: https://verify.didit.me/session/business123
                    status: In Review
                    environment: live
                    workflow_id: abababab-cdcd-efef-0101-232323232323
                    features:
                      - KYB_REGISTRY
                      - KYB_DOCUMENTS
                      - KYB_KEY_PEOPLE
                    vendor_data: merchant-001234
                    metadata: null
                    callback: https://example.com/verification/callback
                    registry_checks:
                      - status: Approved
                        node_id: feature_kyb_registry_1
                        data_resolved: true
                        company:
                          uuid: dddd4444-eeee-5555-ffff-666677778888
                          node_id: feature_kyb_registry_1
                          status: Approved
                          registry_status: active
                          data_resolved: true
                          company_name: ACME HOLDINGS LTD
                          registration_number: '12345678'
                          country_code: GB
                          region: null
                          company_type: Private Limited Company
                          incorporation_date: '2015-03-12'
                          registered_address: 1 Example Street, London, EC1A 1AA
                          tax_number: null
                          risk_level: null
                          verification_status: verified
                          is_from_registry: true
                          fetch_status: resolved
                          alternative_names: null
                          nature_of_business: 62012 - Business and domestic software development
                          registered_capital: 100 GBP
                          registered_capital_amount: '100.00'
                          registered_capital_currency: GBP
                          website: null
                          email: null
                          phone: null
                          legal_entity_identifier: null
                          location_of_registration: England and Wales
                          financial_summary: null
                          officers:
                            - uuid: aaaa1111-bbbb-2222-cccc-333344445555
                              name: Jane Smith
                              designation: Director
                              role: director
                              nationality: British
                              is_active: true
                              kyc_status: Approved
                              kyc_session_url: https://verify.didit.me/session/abc123def456
                          beneficial_owners:
                            - uuid: bbbb2222-cccc-3333-dddd-444455556666
                              name: John Doe
                              first_name: John
                              last_name: Doe
                              entity_type: person
                              roles:
                                - ubo
                                - shareholder
                              ownership_min_shares: '50'
                              ownership_max_shares: '75'
                              is_active: true
                              kyc_status: Pending
                              kyc_session_url: https://verify.didit.me/session/def456ghi789
                              effective_ownership_percent: 75
                          addresses:
                            - type: registered
                              address: 1 Example Street, London, EC1A 1AA
                              country: GB
                          industries:
                            - code: '62012'
                              description: Business and domestic software development
                          accounts: null
                          registry_data: {}
                          user_provided_data:
                            company_name: ACME HOLDINGS
                            registration_number: '12345678'
                          confirmed_by_user_at: '2026-06-10T12:01:30.000000Z'
                          last_console_edit_at: null
                          is_editable: false
                        ownership_structure:
                          shareholders:
                            - name: John Doe
                              first_name: John
                              last_name: Doe
                              date_of_birth: null
                              country_of_birth: null
                              company_name: null
                              registration_number: null
                              entity_type: person
                              nationality: null
                              designation: null
                              roles:
                                - shareholder
                              ownership_min_shares: '75'
                              ownership_max_shares: '75'
                              voting_min_shares: null
                              voting_max_shares: null
                              appointment_date: null
                              is_active: true
                              shareholding:
                                share_class: ORDINARY
                                number_of_shares: 750
                                currency: GBP
                                nominal_value: 1
                                total_value: null
                                percentage: 75
                          beneficial_owners: []
                        warnings: []
                    aml_screenings: null
                    document_verifications:
                      - status: In Review
                        node_id: feature_kyb_documents_1
                        items:
                          - uuid: eeee5555-ffff-6666-0000-777788889999
                            document_type: LEGAL_PRESENCE
                            document_subtype: CERTIFICATE_OF_INCORPORATION
                            document_group: LEGAL_PRESENCE
                            file_url: >-
                              https://<media-host>/kyb/certificate-of-incorporation.pdf
                            original_filename: certificate_of_incorporation.pdf
                            file_size: 482133
                            status: Approved
                            created_at: '2026-06-10T12:03:11.000000Z'
                            cross_check_result:
                              critical:
                                company_name:
                                  document: ACME HOLDINGS LTD
                                  registry: ACME HOLDINGS LTD
                                  score: 1
                                  match: true
                                registration_number:
                                  document: '12345678'
                                  registry: '12345678'
                                  match: true
                              non_critical: {}
                              people: {}
                            document_metadata:
                              file_size: 482133
                              content_type: application/pdf
                              creation_date: '2015-03-12T09:00:00'
                              modified_date: '2015-03-12T09:00:00'
                              creator: null
                              producer: null
                              software: null
                              encryption: null
                              is_signed: true
                              is_tampered: false
                              signature_info: null
                              exif_original_date: null
                              exif_digitized_date: null
                              processed_by_known_editor: false
                              has_different_creation_mod_date: false
                              overlay_manipulation: null
                            description: null
                            is_requested: false
                            ocr_data:
                              company_name: ACME HOLDINGS LTD
                              registration_number: '12345678'
                              incorporation_date: '2015-03-12'
                            is_console_upload: false
                            is_confirmed: true
                          - uuid: ffff6666-0000-7777-1111-888899990000
                            document_type: OWNERSHIP_STRUCTURE
                            document_subtype: null
                            document_group: OWNERSHIP_STRUCTURE
                            file_url: null
                            original_filename: null
                            file_size: null
                            status: Not Finished
                            created_at: '2026-06-10T15:40:02.000000Z'
                            cross_check_result: null
                            document_metadata: null
                            description: Please upload an up-to-date shareholder registry
                            is_requested: true
                            ocr_data: null
                            is_console_upload: false
                            is_confirmed: true
                        groups:
                          LEGAL_PRESENCE:
                            total: 1
                            approved: 1
                            pending: 0
                            declined: 0
                            in_review: 0
                            other: 0
                            missing: 0
                          OWNERSHIP_STRUCTURE:
                            total: 1
                            approved: 0
                            pending: 0
                            declined: 0
                            in_review: 0
                            other: 0
                            missing: 1
                        required_groups:
                          - LEGAL_PRESENCE
                          - OWNERSHIP_STRUCTURE
                        warnings: []
                    key_people_checks:
                      - status: In Review
                        node_id: feature_kyb_key_people_1
                        registry:
                          officers:
                            - uuid: aaaa1111-bbbb-2222-cccc-333344445555
                              name: Jane Smith
                              designation: Director
                              role: director
                              nationality: British
                              appointment_date: '2015-03-12'
                              termination_date: null
                              is_active: true
                              address: 1 Example Street, London, EC1A 1AA
                              aml_status: Approved
                              kyc_status: Approved
                              kyc_session_url: https://verify.didit.me/session/abc123def456
                              kyc_session_id: 77777777-8888-9999-aaaa-bbbbbbbbbbbb
                              verification_workflow_type: kyc
                              verification_workflow_id: 12121212-3434-5656-7878-909090909090
                              verification_workflow_label: Key People KYC
                              verification_workflow_features:
                                - feature: ID_VERIFICATION
                                  status: Approved
                                - feature: LIVENESS
                                  status: Approved
                                - feature: AML
                                  status: Approved
                              didit_internal_id: 99999999-0000-1111-2222-333333333333
                              kyc_document_type: P
                              kyc_nationality: GBR
                              kyc_liveness_passed: true
                              kyc_verified_at: '2026-06-10T14:22:31.123456Z'
                              kyc_aml_categories:
                                sanctions: clear
                                pep: clear
                                adverse_media: clear
                                warnings: clear
                              kyc_notification_sent_at: '2026-06-09T09:00:00.000000Z'
                          beneficial_owners:
                            - uuid: bbbb2222-cccc-3333-dddd-444455556666
                              name: John Doe
                              first_name: John
                              last_name: Doe
                              date_of_birth: '1980-05-04'
                              country_of_birth: null
                              email: null
                              company_name: null
                              registration_number: null
                              entity_type: person
                              nationality: British
                              designation: null
                              roles:
                                - ubo
                                - shareholder
                              ownership_min_shares: '50'
                              ownership_max_shares: '75'
                              is_active: true
                              aml_status: null
                              kyc_status: In Progress
                              kyc_session_url: https://verify.didit.me/session/def456ghi789
                              kyc_session_id: 88888888-9999-aaaa-bbbb-cccccccccccc
                              verification_workflow_type: kyc
                              verification_workflow_id: 12121212-3434-5656-7878-909090909090
                              verification_workflow_label: Key People KYC
                              verification_workflow_features:
                                - feature: ID_VERIFICATION
                                  status: Not Finished
                                - feature: LIVENESS
                                  status: Not Finished
                                - feature: AML
                                  status: Not Finished
                              didit_internal_id: null
                              kyc_document_type: null
                              kyc_nationality: null
                              kyc_liveness_passed: null
                              kyc_verified_at: null
                              kyc_aml_categories: null
                              kyc_notification_sent_at: null
                              child_beneficial_owners: []
                              effective_ownership_percent: 75
                        submitted:
                          parties:
                            - uuid: cccc3333-dddd-4444-eeee-555566667777
                              entity_type: person
                              source: USER
                              name: John Doe
                              first_name: John
                              last_name: Doe
                              company_name: null
                              registration_number: null
                              email: john.doe@example.com
                              nationality: GBR
                              phone_number: '+447700900123'
                              date_of_birth: '1980-05-04'
                              position: Chief Executive Officer
                              custom_fields: {}
                              is_active: true
                              is_skipped: false
                              requires_verification: true
                              roles:
                                - role: ubo
                                  ownership_percent: 75
                                  voting_percent: 75
                                - role: director
                                  ownership_percent: null
                                  voting_percent: null
                              kyc_session_id: 88888888-9999-aaaa-bbbb-cccccccccccc
                              kyc_session_status: In Progress
                              kyc_session_url: https://verify.didit.me/session/def456ghi789
                              kyb_sub_session_id: null
                              kyb_sub_session_status: null
                              kyb_sub_session_url: null
                              verification_workflow_type: kyc
                              verification_workflow_id: 12121212-3434-5656-7878-909090909090
                              verification_workflow_label: Key People KYC
                              verification_workflow_features:
                                - feature: ID_VERIFICATION
                                  status: Not Finished
                                - feature: LIVENESS
                                  status: Not Finished
                                - feature: AML
                                  status: Not Finished
                              didit_internal_id: null
                        ubo_kyc_summary:
                          total: 1
                          approved: 0
                          flagged: 0
                          pending: 1
                        warnings: []
                    phone_verifications: null
                    email_verifications: null
                    questionnaire_responses: null
                    ip_analyses: null
                    reviews: []
                    contact_details: null
                    expected_details:
                      company_name: Tesco PLC
                      registry_country: GB
                      registration_number: '00445790'
                    created_at: '2026-06-10T11:58:04.000000Z'
                    expires_at: '2026-06-24T11:58:04.000000Z'
              schema:
                $ref: '#/components/schemas/SessionDecision'
        '403':
          description: >-
            Ha fallat l'autenticació o l'autorització. Si falta la clau, es
            retorna `403`; una clau incorrecta, revocada o caducada retorna
            `401`. Dues cadenes de `detail` distingeixen els tipus d'error:


            - `"Authentication credentials were not provided or are invalid."` —
            no hi ha cap capçalera `x-api-key` (ni cap token `Authorization:
            Bearer`), o la credencial proporcionada no ha superat la
            introspecció (revocada, caducada o malformada).

            - `"You do not have permission to perform this action."` — la
            credencial és vàlida però no té permís per llegir aquesta sessió: a
            un token Bearer d'usuari de la consola li falta el permís
            `read:sessions` o no pot accedir a l'aplicació propietària, o bé una
            clau d'API pertany a una organització diferent de la de la sessió.


            Tingues en compte que per a un `sessionId` completament desconegut,
            l'endpoint resol l'aplicació propietària abans de validar les
            credencials; per tant, una sessió que no existeix retorna `404` fins
            i tot quan la credencial falta o no és vàlida.
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
                    example: >-
                      Authentication credentials were not provided or are
                      invalid.
              examples:
                Missing or invalid credentials:
                  summary: >-
                    Falta la capçalera x-api-key, o la clau ha fallat la
                    introspecció
                  value:
                    detail: >-
                      Authentication credentials were not provided or are
                      invalid.
                Insufficient permissions:
                  summary: >-
                    Credencial vàlida sense read:sessions o sense accés a
                    l'aplicació propietària
                  value:
                    detail: You do not have permission to perform this action.
        '404':
          description: >-
            Sessió no trobada. Es retorna quan cap sessió activa coincideix amb
            el `sessionId` proporcionat com a sessió de Verificació d'usuaris
            (KYC) o de Verificació d'empreses (KYB) — una sessió que s'ha
            suprimit també arriba aquí. El cos és l'embolcall estàndard
            `{"detail": ...}`.


            **Dues cadenes `detail` diferents.** Si el `sessionId` és desconegut
            tant com a sessió de KYC com de KYB, la cerca del titular prèvia a
            l'autenticació falla i reps `{"detail": "Not found."}` — això passa
            abans de la validació de credencials, per la qual cosa es retorna
            fins i tot per a crides no autenticades. Si la sessió existeix però
            no es pot recuperar sota l'aplicació autenticada (per exemple, un
            registre obsolet o que s'acaba de suprimir), la vista retorna
            `{"detail": "Session not found."}`. Totes dues indiquen el mateix
            resultat — la sessió no és accessible —, així que fes la comprovació
            amb el codi d'estat `404` en lloc de la cadena.
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
                    example: Not found.
              examples:
                Unknown session id:
                  summary: Aquesta aplicació no reconeix sessionId
                  value:
                    detail: Not found.
                Session not retrievable:
                  summary: >-
                    La sessió existeix però no es pot recuperar per a aquesta
                    aplicació
                  value:
                    detail: Session not found.
        '429':
          description: >-
            S'ha superat el límit de freqüència. Les sol·licituds GET estan
            limitades a **600 per minut per credencial** (clau d'API, token
            Bearer o IP d'origen si no s'ha autenticat). Revisa `Retry-After` /
            `X-RateLimit-Reset` i redueix la freqüència abans de reintentar. Si
            assoleixes aquest límit mentre consultes les decisions
            periòdicament, canvia al webhook `status.updated` i obtén la decisió
            un sol cop per cada canvi d'estat.
          headers:
            Retry-After:
              description: Segons d'espera abans de reintentar la sol·licitud.
              schema:
                type: integer
                minimum: 1
                example: 30
            X-RateLimit-Limit:
              description: >-
                Nombre màxim de sol·licituds permeses a la finestra actual (600
                per a sol·licituds GET).
              schema:
                type: integer
                example: 600
            X-RateLimit-Remaining:
              description: Sol·licituds restants a la finestra actual.
              schema:
                type: integer
                example: 0
            X-RateLimit-Reset:
              description: >-
                Marca de temps Unix (segons) en què es reinicia la finestra
                actual.
              schema:
                type: integer
                example: 1750000000
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
                    description: >-
                      Explicació fàcil de llegir de la superació del límit de
                      freqüència.
                    example: >-
                      GET request rate limit exceeded. You can make up to 600
                      requests per minute.
              examples:
                Throttled:
                  summary: >-
                    Més de 600 sol·licituds GET en un minut des de la mateixa
                    credencial
                  value:
                    detail: >-
                      GET request rate limit exceeded. You can make up to 600
                      requests per minute.
      security:
        - ApiKeyAuth: []
      x-codeSamples:
        - lang: curl
          label: cURL
          source: >-
            curl -X GET
            'https://verification.didit.me/v3/session/11111111-2222-3333-4444-555555555555/decision/'
            \
              -H 'x-api-key: YOUR_API_KEY' \
              -H 'Accept: application/json'
        - lang: python
          label: Python
          source: |-
            from didit import Didit

            # Reads DIDIT_API_KEY.
            client = Didit()

            result = client.sessions.retrieve_decision(
                "11111111-2222-3333-4444-555555555555",
            )
            print(result)
        - lang: javascript
          label: Node.js
          source: >-
            import Didit from "@didit-protocol/sdk-node";


            // Reads DIDIT_API_KEY.

            const didit = new Didit();


            const result = await
            didit.sessions.retrieveDecision("11111111-2222-3333-4444-555555555555");

            console.log(result);
        - lang: go
          label: Go
          source: "ctx := context.Background()\n// Reads DIDIT_API_KEY.\nclient := didit.NewClient()\n\nresult, err := client.Sessions.RetrieveDecision(ctx, \"11111111-2222-3333-4444-555555555555\", didit.SessionsRetrieveDecisionParams{})\nif err != nil {\n\tlog.Fatal(err)\n}\nfmt.Printf(\"%+v\\n\", result)"
        - lang: java
          label: Java
          source: >-
            import me.didit.Didit;


            // Reads DIDIT_API_KEY.

            Didit client = new Didit();


            var result =
            client.sessions().retrieveDecision("11111111-2222-3333-4444-555555555555");

            System.out.println(result);
        - lang: php
          label: PHP
          source: >-
            <?php


            require 'vendor/autoload.php';


            use Didit\DiditClient;


            // Reads DIDIT_API_KEY.

            $didit = new DiditClient();


            $result =
            $didit->sessions->retrieveDecision('11111111-2222-3333-4444-555555555555');

            print_r($result->toArray());
        - lang: ruby
          label: Ruby
          source: >-
            require "didit"


            # Reads DIDIT_API_KEY.

            didit = Didit::Client.new


            result =
            didit.sessions.retrieve_decision("11111111-2222-3333-4444-555555555555")

            puts result.to_h
        - lang: csharp
          label: .NET
          source: >-
            using System;

            using System.Text.Json;

            using Didit;


            // Reads DIDIT_API_KEY.

            using var client = new DiditClient();


            var result = await
            client.Sessions.RetrieveDecisionAsync("11111111-2222-3333-4444-555555555555");

            Console.WriteLine(JsonSerializer.Serialize(result));
components:
  schemas:
    SessionDecision:
      type: object
      properties:
        session_id:
          type: string
          format: uuid
          description: L'identificador únic de la sessió.
        session_kind:
          type: string
          enum:
            - user
            - business
          description: >-
            Discriminador que indica si es tracta d'una sessió de Verificació
            d'usuaris (KYC) o de Verificació d'empreses (KYB). Quan és `user`,
            s'apliquen les matrius de funcionalitats de KYC (`id_verifications`,
            `nfc_verifications`, `liveness_checks`, `face_matches`,
            `poa_verifications`, `document_ai_documents`,
            `database_validations`, ...) i les matrius d'empresa no hi són
            presents. Quan és `business`, el payload conté en el seu lloc
            `registry_checks`, `document_verifications`, `key_people_checks` a
            més de les matrius compartides (`aml_screenings`,
            `phone_verifications`, `email_verifications`, `ip_analyses`,
            `questionnaire_responses`). **S'omet quan es passa
            `include=events`** — l'estructura d'esdeveniments només existeix per
            a sessions d'usuari, de manera que el discriminador s'elimina
            d'aquesta variant.
        shared_from_session:
          type: string
          format: uuid
          nullable: true
          description: >-
            Per a una sessió clonada amb `POST /v3/session/import-shared/`: el
            `session_id` de la sessió original a l'aplicació d'origen. `null`
            per a qualsevol altra sessió. S'omet quan es passa `include=events`.
        shared_from_session_number:
          type: integer
          nullable: true
          description: >-
            `session_number` de la sessió d'origen quan aquesta sessió s'ha
            importat des d'una altra aplicació de la teva organització. En cas
            contrari, `null`.
        session_number:
          type: integer
          description: El número de la sessió.
          nullable: true
        session_url:
          type: string
          format: uri
          description: L'URL de la sessió.
          nullable: true
        status:
          type: string
          enum:
            - Not Started
            - In Progress
            - Awaiting User
            - In Review
            - Approved
            - Declined
            - Resubmitted
            - Expired
            - Kyc Expired
            - Abandoned
          description: >-
            Estat global del cicle de vida de la sessió — el resultat agregat
            del flux de treball. Els valors finals són `Approved`, `Declined`,
            `In Review`, `Expired`, `Kyc Expired` i `Abandoned`; `Not Started`,
            `In Progress`, `Awaiting User` i `Resubmitted` indiquen que la
            sessió encara està avançant pel flux de treball.
        status_override:
          type: object
          nullable: true
          description: >-
            Present quan un revisor ha definit `status` manualment. `null` quan
            l'estat s'ha establert automàticament. Fes-lo servir per distingir
            una aprovació manual d'una d'automàtica.
          properties:
            overridden_at:
              type: string
              format: date-time
              nullable: true
            automatic_status:
              type: string
              nullable: true
              description: >-
                L'estat que conclouen les comprovacions pròpies de la
                plataforma.
        decision_trace:
          type: object
          description: >-
            Com s'ha assolit l'estat: qui l'ha establert i quines advertències
            hi han contribuït.
          properties:
            status:
              type: string
              description: L'estat de la sessió.
            decided_by:
              type: string
              nullable: true
              enum:
                - manual
                - automatic
                - investigator
                - null
              description: >-
                Qui ha definit l'estat. `null` mentre la sessió no estigui
                decidida.
            decided_at:
              type: string
              format: date-time
              nullable: true
            automatic_status:
              type: string
              nullable: true
              description: >-
                El que conclouen les comprovacions pròpies de la plataforma, que
                difereix de `status` després d'una decisió manual.
            terminal_node_id:
              type: string
              nullable: true
              description: >-
                El node d'estat del flux de treball que ha finalitzat la sessió,
                si n'hi ha hagut cap.
            actor:
              type: object
              nullable: true
              description: El revisor responsable d'una decisió manual.
              properties:
                user:
                  type: string
                  nullable: true
                actor_type:
                  type: string
                  nullable: true
            warning_counts:
              type: object
              description: >-
                Advertències per `log_type` (`error`, `warning`, `information`)
                i `total`.
              additionalProperties:
                type: integer
            status_warnings:
              type: array
              description: >-
                Les advertències que estableixen un estat `Declined` o `In
                Review`.
              items:
                type: object
                properties:
                  risk:
                    type: string
                  feature:
                    type: string
                    nullable: true
                  node_id:
                    type: string
                    nullable: true
                  log_type:
                    type: string
                    nullable: true
                  check_status:
                    type: string
                    nullable: true
                  source:
                    type: string
                    description: >-
                      La llista del payload d'on prové l'advertència, per
                      exemple `id_verifications`.
                  short_description:
                    type: string
                    nullable: true
        linked_records:
          type: object
          nullable: true
          description: >-
            Un resum d'altres registres vinculats a la sessió. `null` quan no hi
            ha res a mostrar i per a fluxos de treball que declaren un estàndard
            d'assegurament de l'edat.
          properties:
            same_face:
              type: object
              nullable: true
              description: >-
                Altres persones la cara de les quals ha coincidit amb una de les
                cerques facials d'aquesta sessió.
              properties:
                count:
                  type: integer
                best_match:
                  type: object
                  nullable: true
                  properties:
                    session_id:
                      type: string
                      format: uuid
                      nullable: true
                    session_number:
                      type: integer
                      nullable: true
                    vendor_user_id:
                      type: string
                      format: uuid
                      nullable: true
                    similarity_percentage:
                      type: number
                      nullable: true
            earlier_verifications:
              type: object
              nullable: true
              properties:
                count:
                  type: integer
                vendor_user_id:
                  type: string
                  format: uuid
                  nullable: true
            networks:
              type: object
              nullable: true
              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:
                        type: integer
                        nullable: true
                      name:
                        type: string
                      status:
                        type: string
                      risk_score:
                        type: number
                        nullable: true
        workflow_id:
          type: string
          format: uuid
          description: >-
            Identificador estable del grup del flux de treball que ha generat
            aquesta sessió. Els fluxos de treball tenen versions: aquest valor
            identifica el flux de treball en si, no la versió específica.
          nullable: true
        features:
          type: array
          items:
            type: string
            description: La funcionalitat de la sessió.
          description: >-
            Llista de funcionalitats de verificació configurades per a aquesta
            sessió, com a noms visibles: `ID_VERIFICATION`, `NFC`, `LIVENESS`,
            `FACE_MATCH`, `POA`, `PHONE`, `EMAIL_VERIFICATION`, `AML`,
            `IP_ANALYSIS`, `DATABASE_VALIDATION`, `QUESTIONNAIRE`,
            `AGE_ESTIMATION`, `FACE_SEARCH`, `GEOLOCATION` (verificació
            d'ubicació) (les sessions de Verificació d'empreses utilitzen el
            conjunt de funcionalitats de KYB: `KYB_REGISTRY`, `KYB_DOCUMENTS`,
            `KYB_KEY_PEOPLE`, `AML`, `PHONE`, `EMAIL_VERIFICATION`,
            `IP_ANALYSIS`, `QUESTIONNAIRE`). Amb `include=events` cada entrada
            es converteix en un objecte `{feature, node_id}` en comptes d'una
            cadena simple, i la funcionalitat de correu electrònic es reanomena:
            apareix com a `EMAIL` en mode d'esdeveniments en lloc del
            `EMAIL_VERIFICATION` utilitzat aquí.
        vendor_data:
          type: string
          description: El vendor_data de la sessió.
          nullable: true
        metadata:
          type: object
          description: Les metadades de la sessió.
          nullable: true
        expected_details:
          type: object
          description: >-
            Detalls esperats proporcionats en crear la sessió — s'utilitzen per
            a la validació creuada amb les dades extretes (KYC) o per emplenar
            prèviament la cerca al registre mercantil (KYB). Retorna exactament
            les claus que s'han proporcionat; `null` quan no se n'ha
            proporcionat cap. Les sessions de KYC contenen els camps de persona;
            les sessions d'empreses (KYB) contenen `company_name`,
            `registry_country` i `registration_number`.
          properties:
            first_name:
              type: string
              description: Nom de pila de l'usuari. Per exemple, `John`.
            last_name:
              type: string
              description: Cognom de l'usuari. Per exemple, `Doe`.
            date_of_birth:
              type: string
              format: date
              description: >-
                Data de naixement de l'usuari en format: YYYY-MM-DD. Per
                exemple, `1990-05-15`.
            gender:
              type: string
              nullable: true
              enum:
                - M
                - F
              default: null
              description: Gènere de l'usuari. Ha de ser 'M', 'F' o null.
            nationality:
              type: string
              description: >-
                Codi de país ISO 3166-1 alpha-3 que representa el país d'origen
                del sol·licitant. Per exemple, `USA`.
            country:
              type: string
              description: >-
                Codi de país ISO 3166-1 alpha-3 que representa el país del
                document del comprovant de domicili o el país del document
                d'identitat del sol·licitant, que pot ser diferent de la
                nacionalitat. Per exemple, `GBR`.
            address:
              type: string
              description: >-
                L'adreça en un format llegible per humans, que inclou tanta
                informació com sigui possible. Per exemple, `123 Main St, San
                Francisco, CA 94105, USA`.
            identification_number:
              type: string
              description: >-
                El número de document, número personal o identificador fiscal de
                l'usuari. Per exemple, `123456789`.
            ip_address:
              type: string
              format: ipv4
              description: >-
                Adreça IP esperada per a la sessió. Si l'adreça IP real difereix
                d'aquest valor, es registrarà una advertència. Per exemple,
                `192.168.1.100`.
            expected_document_types:
              type: array
              description: >-
                Tipus de document als quals es va restringir el pas de
                verificació d'identitat durant la creació de la sessió. Buit/no
                establert significa sense restricció. Codis: `P` (passaport),
                `ID` (document nacional d'identitat), `DL` (permís de conduir),
                `RP` (permís de residència), `HIC` (targeta sanitària), `TC`
                (targeta fiscal), `SSC` (targeta de la seguretat social).
              items:
                type: string
                enum:
                  - P
                  - ID
                  - DL
                  - RP
                  - HIC
                  - TC
                  - SSC
            id_country:
              type: string
              nullable: true
              description: >-
                País emissor esperat del document d'identitat (ISO 3166-1
                alpha-3), quan es restringeix en el moment de la creació.
              example: ESP
            poa_country:
              type: string
              nullable: true
              description: >-
                País esperat del document de Comprovant de domicili (ISO 3166-1
                alpha-3), quan es restringeix en el moment de la creació.
              example: ESP
            company_name:
              type: string
              description: >-
                Raó social esperada de l'empresa. Només per a sessions
                d'empreses (KYB).
            registry_country:
              type: string
              description: >-
                País del registre esperat com a `XX` o `XX-YY` (ISO 3166-1
                alfa-2, opcionalment amb una subdivisió ISO 3166-2 per a
                registres d'àmbit estatal, p. ex. `US-CA`). Només per a sessions
                d'empreses (KYB).
            registration_number:
              type: string
              description: >-
                Número de registre de l'empresa esperat. Només sessions
                d'empresa (KYB).
          nullable: true
        contact_details:
          type: object
          description: >-
            Dades de contacte facilitades en crear la sessió (utilitzades per
            als correus electrònics de notificació, la verificació de
            telèfon/correu electrònic amb les dades emplenades prèviament i
            l'idioma de comunicació). `null` quan no s'ha proporcionat cap
            correu electrònic ni número de telèfon.
          properties:
            email:
              type: string
              description: >-
                Adreça de correu electrònic de l'usuari (p. ex.,
                "john.doe@example.com") que s'utilitzarà durant el pas de
                Verificació de correu electrònic. Si no es proporciona, l'usuari
                l'haurà d'introduir durant el flux de verificació.
            email_lang:
              type: string
              description: >-
                Codi d'idioma (ISO 639-1) per a les notificacions per correu
                electrònic. Controla l'idioma de totes les comunicacions per
                correu electrònic (p. ex., "en", "es", "fr").
            send_notification_emails:
              type: boolean
              default: false
              description: >-
                Si és cert i s'indica un correu electrònic, Didit envia el
                correu inicial «Verifica la teva identitat» de manera asíncrona
                quan es crea la sessió de Verificació d'usuaris (KYC) o
                Verificació d'empreses (KYB). Didit també envia notificacions
                sobre l'estat de la verificació per a les sessions que
                requereixen revisió manual a l'adreça de correu electrònic
                proporcionada.
            phone:
              type: string
              nullable: true
              description: >-
                Número de telèfon de l'usuari en format E.164 si està disponible
                (p. ex., +14155552671). `null` quan només s'ha proporcionat un
                correu electrònic en crear la sessió. Nota: Aquest camp retorna
                el número de telèfon original proporcionat durant la creació de
                la sessió. Si el número no era vàlid, és possible que no estigui
                en format E.164.
          nullable: true
        callback:
          type: string
          format: uri
          description: L'URL de callback de la sessió.
          nullable: true
        id_verifications:
          type: array
          nullable: true
          description: >-
            **Matriu d'informes de verificació d'identitat (OCR)** generats per
            passos de document d'identitat al graf del flux de treball. Sempre
            és una matriu JSON — llegeix `id_verifications[0]` i itera si el teu
            flux de treball pot executar més d'una comprovació d'identitat (per
            exemple, una comprovació principal més un pas d'escalada). `null`
            fins que almenys un pas d'identitat hagi generat dades. Cada element
            és l'informe complet, incloent-hi `node_id`, l'`status` a nivell de
            funcionalitat, camps del document extrets, URL de les imatges,
            puntuacions de qualitat, MRZ, anàlisi de l'adreça, coincidències
            entre sessions i `warnings[]`.
          items:
            type: object
            description: >-
              Un informe de Verificació d'identitat: l'informe complet per a un
              únic pas de Verificació d'identitat. `verification_method` indica
              quin dels tres mètodes l'ha generat (captura de document, consulta
              sense document o inici de sessió amb cartera) i el bloc
              d'evidències específic del mètode s'omple en conseqüència.
            properties:
              node_id:
                type: string
                description: >-
                  ID del node del graf del flux de treball del pas d'OCR que ha
                  generat aquest informe.
              verification_method:
                type: string
                enum:
                  - document
                  - id_lookup
                  - wallet
                description: >-
                  Quin mètode de verificació d'identitat ha generat aquest
                  informe. `document`: l'usuari ha fotografiat un document
                  d'identitat físic (el valor per defecte, i el valor a cada
                  sessió creada abans que existissin els altres mètodes).
                  `id_lookup`: l'usuari ha introduït el seu número de document
                  d'identitat nacional i s'ha comprovat contra un registre
                  governamental o una altra font oficial d'aquell país
                  (`id_lookup.source` n'indica quina). `wallet`: l'usuari ha
                  iniciat sessió amb una identitat digital governamental o
                  bancària.
              assurance:
                type: string
                enum:
                  - documentary
                  - data_match
                  - cryptographic
                description: >-
                  Nivell de garantia derivat de `verification_method`:
                  `documentary` per a un document capturat i comprovat,
                  `data_match` per a dades que coincideixen amb un registre de
                  la font consultada, `cryptographic` per a atributs autenticats
                  i signats per un proveïdor d'identitat.
              wallet_provider:
                type: string
                nullable: true
                description: >-
                  Identificador de catàleg de la cartera quan
                  `verification_method` és `wallet` (`mitid`, `bankid_se`,
                  `itsme`, ...). `null` en cas contrari.
              fallback_from:
                type: object
                nullable: true
                description: >-
                  Per què un mètode sense document no ha finalitzat el pas
                  d'identificació. S'estableix quan una cerca o un inici de
                  sessió amb cartera ha fallat: a la verificació de document amb
                  la qual l'usuari ha continuat quan l'opció alternativa del
                  país era `fallback_to_document` (`action` és
                  `fallback_to_document`), o a l'informe rebutjat quan era
                  `decline`. `null` en cas contrari.
                properties:
                  method:
                    type: string
                    enum:
                      - id_lookup
                      - wallet
                    description: El mètode que ha fallat.
                  reason:
                    type: string
                    description: >-
                      El resultat que l'ha finalitzat, p. ex. `no_match`,
                      `provider_error`, `cancelled`, `timeout`.
                  action:
                    type: string
                    enum:
                      - fallback_to_document
                      - decline
                    description: >-
                      L'acció configurada que s'ha dut a terme:
                      `fallback_to_document` o `decline`.
              id_lookup:
                type: object
                nullable: true
                description: >-
                  Evidència del registre. Present només quan
                  `verification_method` és `id_lookup`; `null` en cas contrari.
                properties:
                  source:
                    type: string
                    description: >-
                      Nom visible per al client de la font consultada, p. ex.
                      `Department of Home Affairs` (un registre governamental) o
                      `UK credit bureau and financial services records` (no és
                      un registre governamental). Aquesta és l'única indicació
                      de procedència de la cerca; no assumeixis que es tracta
                      d'una font governamental.
                  checked_at:
                    type: string
                    format: date-time
                    nullable: true
                    description: Quan va respondre el registre.
                  attempts:
                    type: integer
                    description: >-
                      Número d'intent, començant per 1, del qual prové aquest
                      informe.
                  max_attempts:
                    type: integer
                    description: >-
                      Pressupost d'intents configurat per al país (d'1 a 5, per
                      defecte 1).
                  outcome:
                    type: string
                    enum:
                      - match
                      - partial_match
                      - no_match
                      - provider_error
                      - format_rejected
                    nullable: true
                    description: >-
                      El que ha respost el registre. Només `match`,
                      `partial_match` i `no_match` descompten del pressupost
                      d'intents i es facturen.
                  comparison:
                    type: array
                    description: >-
                      Una fila per camp comparable sobre el qual ha respost la
                      font, més una fila per cada error de la font. Les files de
                      comparació utilitzen els noms de camp normalitzats que es
                      mostren a continuació en comptes de les claus dels camps
                      de sol·licitud del país, perquè diversos camps de
                      sol·licitud (nom i cognoms, o qualsevol dels àlies
                      d'identificador) es redueixen a una única comparació. Una
                      font que hagi fallat afegeix una fila amb `field:
                      "provider"` i `result: "error"`, de manera que cal llegir
                      `result` abans de tractar una fila com un veredicte del
                      camp.
                    items:
                      type: object
                      required:
                        - field
                        - label
                        - provided
                        - record
                        - result
                      properties:
                        field:
                          type: string
                          enum:
                            - identification_number
                            - full_name
                            - date_of_birth
                            - address
                            - provider
                          description: >-
                            Camp de comparació normalitzat. `provider` no és un
                            camp d'usuari: marca una fila d'error d'origen.
                        label:
                          type: string
                          description: >-
                            Etiqueta visible per a la fila, p. ex. `ID number`,
                            `Full name`, `Provider`.
                        provided:
                          type: string
                          nullable: true
                          description: >-
                            El que ha escrit l'usuari. `null` en una fila
                            d'error de `provider`.
                        record:
                          type: string
                          nullable: true
                          description: >-
                            El que contenia la font. En una fila d'error de
                            `provider`, això conté el missatge d'error en el seu
                            lloc.
                        result:
                          type: string
                          enum:
                            - match
                            - partial
                            - no_match
                            - error
                          description: >-
                            Resultat de la comparació camp per camp. `error`
                            només apareix en una fila de `provider` i significa
                            que aquesta font no ha respost; tracta-ho com a
                            evidència sobre la consulta, mai com una no
                            coincidència de camps.
                  registry_portrait:
                    type: string
                    format: uri
                    nullable: true
                    description: >-
                      URL presignada de curta durada al retrat que ha retornat
                      la font. Només els quatre registres governamentals que en
                      retornen un (Sud-àfrica, Nigèria, Argentina, Panamà).
                  face_match_score:
                    type: number
                    nullable: true
                    description: >-
                      Selfie comparada amb el retrat del registre, 0-100. Només
                      quan el registre retorna un retrat.
              wallet_verification:
                type: object
                nullable: true
                description: >-
                  Evidència de la credencial. Present només quan
                  `verification_method` és `wallet`; `null` en cas contrari.
                properties:
                  provider:
                    type: string
                    description: Identificador de catàleg de la cartera, p. ex., `mitid`.
                  provider_name:
                    type: string
                    nullable: true
                    description: >-
                      Nom de la cartera tal com el coneix l'usuari final, p. ex.
                      `MitID`.
                  issuing_authority:
                    type: string
                    nullable: true
                    description: >-
                      L'autoritat darrere de la cartera, p. ex. `Danish Agency
                      for Digital Government`.
                  issuing_country:
                    type: string
                    description: País ISO 3166-1 alpha-3 en què s'ha ofert la cartera.
                  credential_type:
                    type: string
                    nullable: true
                    description: >-
                      Credencial que ha presentat la cartera, p. ex.
                      `person_identification`.
                  level_of_assurance:
                    type: string
                    enum:
                      - low
                      - substantial
                      - high
                    nullable: true
                    description: >-
                      El nivell de garantia que ha declarat la cartera. Un inici
                      de sessió que declari menys del nivell sol·licitat falla
                      en lloc de degradar-se.
                  verified_at:
                    type: string
                    format: date-time
                    nullable: true
                    description: L'instant d'autenticació de la cartera.
                  signature_valid:
                    type: boolean
                    nullable: true
                    description: >-
                      Si l'asserció signada que ha retornat la cartera s'ha
                      validat.
                  attributes:
                    type: object
                    additionalProperties: true
                    description: >-
                      Els atributs que la cartera ha compartit, indexats com els
                      llista l'entrada del catàleg de la cartera.
                  portrait:
                    type: string
                    format: uri
                    nullable: true
                    description: >-
                      URL presignada de curta durada al retrat que ha compartit
                      la cartera, en cas que en comparteixi un.
                  face_match_score:
                    type: number
                    nullable: true
                    description: >-
                      Selfie comparada amb el retrat de la cartera, 0-100, quan
                      la cartera en comparteix un.
              status:
                type: string
                enum:
                  - Not Finished
                  - Approved
                  - Declined
                  - In Review
                  - Expired
                description: >-
                  Estat a nivell de funcionalitat d'aquest pas de verificació
                  d'identitat. Independent de l'`status` de la sessió de nivell
                  superior: una sessió pot assolir la seva decisió global mentre
                  una funcionalitat individual roman `In Review`.
              document_type:
                type: string
                description: Tipus de document d'identitat
              document_subtype:
                type: string
                nullable: true
                description: >-
                  Codi de subtipus de document acceptat de la configuració de
                  documents del flux de treball, incloent-hi la regió del
                  document quan correspongui. Exemples: `ID_CARD_GENERIC`,
                  `QUEENSLAND_DRIVER_LICENSE_GENERIC`.
              document_number:
                type: string
                description: Número d'identificació del document
              personal_number:
                type: string
                description: Número d'identificació personal
              portrait_image:
                type: string
                format: uri
                description: URL de la imatge de retrat
              front_image:
                type: string
                format: uri
                description: URL de la imatge de l'anvers del document
              front_video:
                type: string
                format: uri
                description: URL del vídeo de l'anvers del document
              back_image:
                type: string
                format: uri
                description: URL de la imatge del revers del document
              back_video:
                type: string
                format: uri
                description: URL del vídeo del revers del document
              full_front_image:
                type: string
                format: uri
                description: URL de la imatge completa de l'anvers del document
              full_back_image:
                type: string
                format: uri
                description: URL de la imatge completa del revers del document
              front_image_camera_front:
                type: string
                format: uri
                description: >-
                  URL de la imatge de l'anvers del document capturada des de la
                  càmera frontal
              back_image_camera_front:
                type: string
                format: uri
                description: >-
                  URL de la imatge del revers del document capturada des de la
                  càmera frontal
              date_of_birth:
                type: string
                format: date
                description: Data de naixement del document
              age:
                type: integer
                description: Edat calculada a partir de la data de naixement
              expiration_date:
                type: string
                format: date
                description: Data de caducitat del document
              date_of_issue:
                type: string
                format: date
                description: Data d'emissió del document
              issuing_state:
                type: string
                description: Codi ISO de l'estat emissor
              issuing_state_name:
                type: string
                description: Nom complet de l'estat emissor
              first_name:
                type: string
                description: Nom de pila del document
              last_name:
                type: string
                description: Cognom del document
              full_name:
                type: string
                description: Nom complet extret del document
              gender:
                type: string
                description: Gènere extret del document
              address:
                type: string
                description: Adreça en brut del document
              formatted_address:
                type: string
                description: Adreça completa amb format
              place_of_birth:
                type: string
                description: Lloc de naixement del document
              marital_status:
                type: string
                description: Estat civil extret del document
              nationality:
                type: string
                description: Codi ISO de nacionalitat
              extra_fields:
                type: object
                description: >-
                  Camps addicionals del document. Inclou atributs específics del
                  document (p. ex., `dl_categories`, `blood_group`, `sponsor`,
                  `employer`, `dl_class_code_b_from`, `dl_class_code_b_to`). Les
                  dates de validesa de les classes del permís de conduir es
                  retornen com a `dl_class_code_<class>_from` i
                  `dl_class_code_<class>_to`, i els codis de
                  restricció/informació per classe (p. ex., la columna 12 dels
                  permisos del Regne Unit) com a `dl_class_code_<class>_notes`.
                  Quan el document conté noms, adreça o lloc de naixement en
                  diversos sistemes d'escriptura, aquest objecte també inclou
                  versions d'aquests camps en l'escriptura alternativa. La
                  configuració del flux de treball `preferred_characters`
                  (`latin` o `non_latin`) controla quin sistema d'escriptura
                  emplena els camps de nivell superior (`first_name`,
                  `last_name`, `full_name`, `address`, `place_of_birth`);
                  l'escriptura oposada s'inclou aquí com a
                  `first_name_non_latin` / `last_name_non_latin` /
                  `full_name_non_latin` / `middle_name_non_latin` /
                  `address_non_latin` / `place_of_birth_non_latin` (quan
                  `preferred_characters` és `latin`) o amb un sufix `_latin`
                  (quan `preferred_characters` és `non_latin`). Les claus només
                  apareixen quan l'OCR extreu realment un valor en una
                  escriptura alternativa real: s'omet un camp el valor
                  alternatiu del qual està en el mateix sistema d'escriptura que
                  el conjunt preferit (per exemple, un camp amb etiqueta en
                  ciríl·lic el valor OCR del qual s'ha retornat en homòglifs
                  llatins). Quan `preferred_characters` és `latin` però el
                  document només conté text no llatí, Didit translitera els
                  valors extrets i exposa `first_name_latin` / `last_name_latin`
                  / etc. com a alternativa.
                additionalProperties: true
                properties:
                  dl_categories:
                    type: array
                    items:
                      type: string
                  blood_group:
                    type: string
                    nullable: true
                  first_name_non_latin:
                    type: string
                    description: >-
                      Nom de pila en el sistema d'escriptura no llatí quan
                      `preferred_characters=latin` i hi ha una versió en sistema
                      d'escriptura no llatí al document (p. ex. `Айна` per a un
                      document d'identitat kirguís).
                  last_name_non_latin:
                    type: string
                    description: >-
                      Cognom en el sistema d'escriptura no llatí quan
                      `preferred_characters=latin` i hi ha present una versió no
                      llatina al document.
                  middle_name_non_latin:
                    type: string
                    description: >-
                      Segon nom / patronímic en el sistema d'escriptura no llatí
                      quan `preferred_characters=latin` i hi ha una versió no
                      llatina present al document.
                  full_name_non_latin:
                    type: string
                    description: >-
                      Nom complet compost en el sistema d'escriptura no llatí.
                      Es reconstrueix a partir dels components individuals quan
                      tant el nom com els cognoms estan disponibles.
                  address_non_latin:
                    type: string
                    description: >-
                      Adreça en el sistema d'escriptura no llatí quan
                      `preferred_characters=latin` i hi ha una versió no llatina
                      present al document.
                  place_of_birth_non_latin:
                    type: string
                    description: >-
                      Lloc de naixement en el sistema d'escriptura no llatí quan
                      `preferred_characters=latin` i hi ha una versió no llatina
                      present al document.
                  first_name_latin:
                    type: string
                    description: >-
                      Nom de pila en sistema d'escriptura llatí. S'omple quan
                      `preferred_characters=non_latin` i hi ha una versió en
                      sistema d'escriptura llatí al document, o —com a recurs de
                      transliteració— quan `preferred_characters=latin` però el
                      document només conté text en un sistema d'escriptura no
                      llatí.
                  last_name_latin:
                    type: string
                    description: >-
                      Cognom en sistema d'escriptura llatí. Mateixes regles que
                      `first_name_latin`.
                  middle_name_latin:
                    type: string
                    description: >-
                      Segon nom / patronímic en sistema d'escriptura llatí. Les
                      mateixes regles que `first_name_latin`.
                  full_name_latin:
                    type: string
                    description: >-
                      Nom complet compost en alfabet llatí. Sempre es
                      reconstrueix a partir dels components individuals quan
                      tant el nom com els cognoms estan disponibles.
                  address_latin:
                    type: string
                    description: >-
                      Adreça en sistema d'escriptura llatí. S'apliquen les
                      mateixes regles que a `first_name_latin`.
                  place_of_birth_latin:
                    type: string
                    description: >-
                      Lloc de naixement en sistema d'escriptura llatí. Mateixes
                      regles que `first_name_latin`.
              mrz:
                type: object
                nullable: true
                description: >-
                  Camps de la zona de lectura mecànica (MRZ) analitzats i
                  extrets del document. `null` si no s'ha detectat cap MRZ.
                properties:
                  surname:
                    type: string
                    example: MARTINEZ<SANCHEZ
                  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<SANCHEZ<<<<<<<<<<
                      YZA123456<9ESP8503157F3208214<X9876543L<<<<<<<2
                      MARTINEZ<SANCHEZ<<ELENA<<<<<<<<<<
                  mrz_key:
                    type: string
                    example: YZA123456985031573208214
              parsed_address:
                type: object
                description: Detalls d'adreça estructurada
                properties:
                  city:
                    type: string
                  label:
                    type: string
                  region:
                    type: string
                  country:
                    type: string
                    description: Codi de país de dues lletres
                  category:
                    type: string
                    description: Categoria de l'adreça (p. ex., Residential, Commercial)
                  street_1:
                    type: string
                  street_2:
                    type: string
                    nullable: true
                  is_verified:
                    type: boolean
                    description: Indica si l'adreça s'ha verificat
                  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: Fitxers addicionals de verificació de documents
              front_image_camera_front_face_match_score:
                type: number
                nullable: true
                description: >-
                  Puntuació de coincidència facial entre el retrat extret de la
                  imatge de l'anvers del document i la imatge de la càmera
                  frontal
              back_image_camera_front_face_match_score:
                type: number
                nullable: true
                description: >-
                  Puntuació de coincidència facial entre el retrat extret de la
                  imatge del revers del document i la imatge de la càmera
                  frontal
              document_selfie_face_matches:
                type: array
                description: >-
                  Sessions anteriors o entrades de la llista de bloqueig facial
                  en què la cara ha coincidit amb la selfie capturada per la
                  càmera frontal durant la captura del document (Cerca facial
                  amb captura silenciosa). Mateix format d'entrada que a
                  `liveness_checks[].matches`. `null` per a sessions creades
                  abans que existís aquest camp o quan la cerca no s'ha
                  executat; una matriu buida quan s'ha executat i no ha trobat
                  res. `match_image_url` és una URL presignada que caduca.
                items:
                  type: object
                  properties:
                    session_id:
                      type: string
                      format: uuid
                      nullable: true
                      description: >-
                        ID de sessió de la cara coincident. `null` quan `source`
                        és `imported`, `list_entry` o `retained_template`.
                    session_number:
                      type: integer
                      nullable: true
                    similarity_percentage:
                      type: number
                      description: >-
                        Similitud facial entre les dues imatges, acotada entre 0
                        i 100.
                    vendor_data:
                      type: string
                      nullable: true
                      description: >-
                        `vendor_data` de la sessió coincident o de l'usuari
                        vinculat per a cares importades i de plantilla
                        retinguda.
                    vendor_user_id:
                      type: string
                      format: uuid
                      nullable: true
                      description: >-
                        Identificador d'User vinculat per a coincidències
                        `imported` i `retained_template` i per a coincidències
                        de sessió vinculades a un User. `null` per a entrades de
                        llista i sessions sense un User.
                    biometric_template_id:
                      type: string
                      format: uuid
                      nullable: true
                      description: >-
                        ID de la plantilla biomètrica conservada. Només
                        s'estableix quan `source` és `retained_template`; `null`
                        en cas contrari.
                    verification_date:
                      type: string
                      format: date-time
                      nullable: true
                      description: >-
                        Quan es va capturar la cara coincident, o quan es va
                        crear una plantilla conservada. `null` per a entrades de
                        llista.
                    user_details:
                      type: object
                      nullable: true
                      description: >-
                        Dades d'identitat de la sessió coincident o del perfil
                        d'usuari importat. Sempre `null` per a coincidències de
                        `retained_template` i `list_entry`.
                      properties:
                        full_name:
                          type: string
                          nullable: true
                        document_type:
                          type: string
                          nullable: true
                        document_number:
                          type: string
                          nullable: true
                    match_image_url:
                      type: string
                      format: uri
                      nullable: true
                      description: >-
                        Imatge de referència per a coincidències basades en
                        imatges. Sempre `null` per a coincidències de
                        `retained_template` perquè les plantilles conservades no
                        contenen cap imatge.
                    status:
                      type: string
                      nullable: true
                      description: >-
                        Estat del cicle de vida de la sessió coincident. `null`
                        per a orígens que no són de sessió.
                    is_blocklisted:
                      type: boolean
                      description: >-
                        Indica si la cara coincident és en una llista de
                        bloqueig.
                    is_allowlisted:
                      type: boolean
                      description: >-
                        Indica si la cara coincident és en una llista de
                        permesos.
                    api_service:
                      type: string
                      nullable: true
                      description: >-
                        Servei d'API independent de la sessió coincident (p. ex.
                        `PASSIVE_LIVENESS`, `FACE_MATCH`); `null` per a sessions
                        de flux de treball i orígens que no són sessions.
                    source:
                      type: string
                      enum:
                        - session
                        - imported
                        - list_entry
                        - retained_template
                      description: >-
                        Origen de la cara coincident: `session`, `imported`
                        (càrrega de la cara de l'usuari), `list_entry` (llista
                        permesa/de bloqueig), o `retained_template` (una
                        plantilla biomètrica sense imatge emmagatzemada en un
                        usuari, llistada a `/v3/biometric-templates/`).
                nullable: true
              front_image_quality_score:
                type: object
                nullable: true
                description: >-
                  Mètriques de qualitat per a la imatge frontal del document.
                  Cada subpuntuació va de 0 a 100.
                properties:
                  focus_score:
                    type: number
                    description: >-
                      Nitidesa de la imatge mesurada mitjançant la variància
                      laplaciana local del 10% superior. Resistent a documents
                      amb fons uniformes grans. Els valors més alts indiquen una
                      imatge més nítida i menys borrosa.
                  brightness_score:
                    type: number
                    description: >-
                      Com d'il·luminada està la imatge. Penalitza les imatges
                      massa fosques o sobreexposades, amb una brillantor ideal
                      al voltant del rang mitjà.
                  brightness_issue:
                    type: string
                    enum:
                      - ok
                      - too_dark
                      - too_bright
                    description: >-
                      Indica la direcció del problema de brillantor quan el
                      brightness_score és baix. 'ok' significa que la brillantor
                      és acceptable, 'too_dark' que la imatge està subexposada i
                      'too_bright' que la imatge està sobreexposada.
                  is_document_fully_visible:
                    type: boolean
                    nullable: true
                    description: >-
                      true si les quatre cantonades del document són
                      completament visibles dins de l'enquadrament de la imatge,
                      false si alguna cantonada està tallada. Null quan les
                      coordenades de les cantonades no estan disponibles.
                  resolution_score:
                    type: number
                    description: >-
                      Resolució efectiva de la imatge basada en el nombre total
                      de píxels.
                  overall_score:
                    type: number
                    description: >-
                      Composició ponderada de subpuntuacions (enfocament 45%,
                      brillantor 30%, resolució 25%).
              back_image_quality_score:
                type: object
                nullable: true
                description: >-
                  Mètriques de qualitat per a la imatge del dors del document.
                  La mateixa estructura que front_image_quality_score.
                properties:
                  focus_score:
                    type: number
                    description: >-
                      Nitidesa de la imatge mesurada mitjançant la variància
                      laplaciana local del 10% superior. Resistent a documents
                      amb fons uniformes grans. Els valors més alts indiquen una
                      imatge més nítida i menys borrosa.
                  brightness_score:
                    type: number
                    description: >-
                      Com d'il·luminada està la imatge. Penalitza les imatges
                      massa fosques o sobreexposades, amb una brillantor ideal
                      al voltant del rang mitjà.
                  brightness_issue:
                    type: string
                    enum:
                      - ok
                      - too_dark
                      - too_bright
                    description: >-
                      Indica la direcció del problema de brillantor quan el
                      brightness_score és baix. 'ok' significa que la brillantor
                      és acceptable, 'too_dark' que la imatge està subexposada i
                      'too_bright' que la imatge està sobreexposada.
                  is_document_fully_visible:
                    type: boolean
                    nullable: true
                    description: >-
                      true si les quatre cantonades del document són
                      completament visibles dins de l'enquadrament de la imatge,
                      false si alguna cantonada està tallada. Null quan les
                      coordenades de les cantonades no estan disponibles.
                  resolution_score:
                    type: number
                    description: >-
                      Resolució efectiva de la imatge basada en el nombre total
                      de píxels.
                  overall_score:
                    type: number
                    description: >-
                      Composició ponderada de subpuntuacions (enfocament 45%,
                      brillantor 30%, resolució 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: >-
                        La funcionalitat que ha generat aquesta advertència (p.
                        ex., `ID_VERIFICATION`, `NFC`, `LIVENESS`). El valor
                        identifica el bloc de funcionalitat al qual pertany
                        l'advertència. L'array d'advertències de cada mòdul sol
                        utilitzar el valor que coincideix amb el seu mòdul, però
                        l'enum anterior és vinculant per a totes les
                        advertències de funcionalitats al payload de la decisió.
                    risk:
                      type: string
                    additional_data:
                      type: object
                      nullable: true
                      description: Dades contextuals addicionals sobre l'advertència
                    log_type:
                      type: string
                      description: 'Tipus de registre: informació, advertència o error'
                    short_description:
                      type: string
                    long_description:
                      type: string
                    node_id:
                      type: string
                      description: >-
                        L'ID del node del graf del flux de treball que ha
                        generat aquesta advertència (per a fluxos de treball
                        basats en grafs)
                description: Advertències de verificació de documents
              matches:
                type: array
                description: >-
                  Documents coincidents trobats durant la detecció de
                  duplicats/llista de bloqueig (fins a 5 coincidències)
                items:
                  type: object
                  properties:
                    session_id:
                      type: string
                      format: uuid
                      description: ID de sessió del document coincident
                    session_number:
                      type: integer
                      description: Número de sessió del document coincident
                    vendor_data:
                      type: string
                      nullable: true
                      description: Dades del proveïdor associades a la sessió coincident
                    verification_date:
                      type: string
                      format: date-time
                      description: Data en què es va verificar la sessió coincident
                    user_details:
                      type: object
                      properties:
                        name:
                          type: string
                          description: Nom complet extret del document coincident
                        document_type:
                          type: string
                          description: Tipus del document coincident
                        document_number:
                          type: string
                          description: Número de document del document coincident
                    status:
                      type: string
                      description: Estat de la sessió coincident
                    is_blocklisted:
                      type: boolean
                      description: >-
                        Indica si el document coincident és a la llista de
                        bloqueig
                    api_service:
                      type: string
                      nullable: true
                      description: Tipus de servei d'API de la sessió coincident
                    front_image_url:
                      type: string
                      format: uri
                      nullable: true
                      description: URL de la imatge de l'anvers del document coincident
              document_liveness:
                type: object
                nullable: true
                description: >-
                  Puntuacions de prova de vida de documents per tipus de frau,
                  reportades tant si s'ha activat una advertència com si no, de
                  manera que un document aprovat encara es pot auditar. `null`
                  quan la comprovació no s'ha executat.
                properties:
                  portrait_replace:
                    type: object
                    nullable: true
                    properties:
                      score:
                        type: number
                        nullable: true
                        description: >-
                          Probabilitat que el document sigui autèntic per a
                          aquest tipus de frau, 0-100 (més alt = més
                          probabilitat de ser autèntic). La més baixa de les
                          dues cares: el valor que ha utilitzat la decisió.
                          `null` quan cap de les dues cares ha produït una
                          puntuació utilitzable.
                      front:
                        type: number
                        nullable: true
                        description: >-
                          Puntuació de l'anvers; `null` quan no s'ha capturat o
                          quan la puntuació s'ha descartat.
                      back:
                        type: number
                        nullable: true
                        description: >-
                          Puntuació del revers; `null` quan no s'ha capturat o
                          quan la puntuació s'ha descartat.
                      decline_threshold:
                        type: number
                        nullable: true
                        description: >-
                          El llindar de rebuig desat quan es va avaluar aquest
                          document. Les edicions posteriors del flux de treball
                          no el canvien. Null quan les proves d'avaluació
                          històriques no estan disponibles.
                      review_threshold:
                        type: number
                        nullable: true
                        description: >-
                          El llindar de revisió desat quan es va avaluar aquest
                          document. Les edicions posteriors del flux de treball
                          no el modifiquen. Null quan no es disposa de proves
                          d'avaluació històriques.
                      bucket:
                        type: string
                        nullable: true
                        enum:
                          - approve
                          - review
                          - decline
                          - null
                        description: >-
                          La categoria de tipus de frau desada en el moment de
                          l'avaluació. Null quan no hi ha cap puntuació
                          utilitzable, no s'ha aplicat la comprovació o no hi ha
                          evidència històrica d'avaluació disponible. Les
                          edicions posteriors del flux de treball no la canvien.
                  printed_copy:
                    type: object
                    nullable: true
                    properties:
                      score:
                        type: number
                        nullable: true
                        description: >-
                          Probabilitat que el document sigui autèntic per a
                          aquest tipus de frau, 0-100 (més alt = més
                          probabilitat de ser autèntic). La més baixa de les
                          dues cares: el valor que ha utilitzat la decisió.
                          `null` quan cap de les dues cares ha produït una
                          puntuació utilitzable.
                      front:
                        type: number
                        nullable: true
                        description: >-
                          Puntuació de l'anvers; `null` quan no s'ha capturat o
                          quan la puntuació s'ha descartat.
                      back:
                        type: number
                        nullable: true
                        description: >-
                          Puntuació del revers; `null` quan no s'ha capturat o
                          quan la puntuació s'ha descartat.
                      decline_threshold:
                        type: number
                        nullable: true
                        description: >-
                          El llindar de rebuig desat quan es va avaluar aquest
                          document. Les edicions posteriors del flux de treball
                          no el canvien. Null quan les proves d'avaluació
                          històriques no estan disponibles.
                      review_threshold:
                        type: number
                        nullable: true
                        description: >-
                          El llindar de revisió desat quan es va avaluar aquest
                          document. Les edicions posteriors del flux de treball
                          no el modifiquen. Null quan no es disposa de proves
                          d'avaluació històriques.
                      bucket:
                        type: string
                        nullable: true
                        enum:
                          - approve
                          - review
                          - decline
                          - null
                        description: >-
                          La categoria de tipus de frau desada en el moment de
                          l'avaluació. Null quan no hi ha cap puntuació
                          utilitzable, no s'ha aplicat la comprovació o no hi ha
                          evidència històrica d'avaluació disponible. Les
                          edicions posteriors del flux de treball no la canvien.
                  screen_replay:
                    type: object
                    nullable: true
                    properties:
                      score:
                        type: number
                        nullable: true
                        description: >-
                          Probabilitat que el document sigui autèntic per a
                          aquest tipus de frau, 0-100 (més alt = més
                          probabilitat de ser autèntic). La més baixa de les
                          dues cares: el valor que ha utilitzat la decisió.
                          `null` quan cap de les dues cares ha produït una
                          puntuació utilitzable.
                      front:
                        type: number
                        nullable: true
                        description: >-
                          Puntuació de l'anvers; `null` quan no s'ha capturat o
                          quan la puntuació s'ha descartat.
                      back:
                        type: number
                        nullable: true
                        description: >-
                          Puntuació del revers; `null` quan no s'ha capturat o
                          quan la puntuació s'ha descartat.
                      decline_threshold:
                        type: number
                        nullable: true
                        description: >-
                          El llindar de rebuig desat quan es va avaluar aquest
                          document. Les edicions posteriors del flux de treball
                          no el canvien. Null quan les proves d'avaluació
                          històriques no estan disponibles.
                      review_threshold:
                        type: number
                        nullable: true
                        description: >-
                          El llindar de revisió desat quan es va avaluar aquest
                          document. Les edicions posteriors del flux de treball
                          no el modifiquen. Null quan no es disposa de proves
                          d'avaluació històriques.
                      bucket:
                        type: string
                        nullable: true
                        enum:
                          - approve
                          - review
                          - decline
                          - null
                        description: >-
                          La categoria de tipus de frau desada en el moment de
                          l'avaluació. Null quan no hi ha cap puntuació
                          utilitzable, no s'ha aplicat la comprovació o no hi ha
                          evidència històrica d'avaluació disponible. Les
                          edicions posteriors del flux de treball no la canvien.
              address_validation:
                allOf:
                  - $ref: '#/components/schemas/AddressValidationResult'
                nullable: true
                description: >-
                  Validació d'adreça de l'adreça impresa en aquest document: si
                  existeix i la seva forma normalitzada, tal com la va llegir el
                  document (una correcció posterior de `address` no la torna a
                  executar). Present quan aquest pas de Verificació d'identitat
                  tenia activat el complement de Validació d'adreça; `null` en
                  cas contrari.
              region:
                type: string
                nullable: true
                description: >-
                  Regió o estat del país emissor del document quan el document
                  n'identifiqui un.
              extracted_data:
                type: object
                nullable: true
                additionalProperties: true
                description: >-
                  Instantània de les dades extretes del document que es van
                  mostrar a la persona perquè les revisés, conservades al costat
                  dels valors confirmats per poder comparar el que es va llegir
                  amb el que la persona va confirmar. `null` si no es va demanar
                  a la persona que ho revisés.
              barcodes:
                type: array
                items:
                  type: object
                  additionalProperties: true
                description: >-
                  Dades llegides dels codis de barres del document. Buit quan el
                  document no en té cap o no se n'ha llegit cap.
        nfc_skip_reason:
          type: string
          nullable: true
          enum:
            - USER_SKIPPED
            - DOCUMENT_WITHOUT_CHIP
            - CHIP_CERTIFICATE_UNAVAILABLE
            - DEVICE_WITHOUT_NFC
            - INTEGRATION_WITHOUT_NFC_ACCESS
            - MRZ_KEY_UNAVAILABLE
            - JPKI_UNAVAILABLE
          description: >-
            Per què no s'ha executat la verificació del xip NFC, omplert sempre
            que el flux de treball inclogui un pas d'NFC. `null` mentre l'NFC
            estigui pendent o quan el xip s'hagi llegit. Valors: `USER_SKIPPED`
            - l'usuari ha triat ometre-ho en un dispositiu compatible amb NFC
            (permès per `allow_nfc_skip`); `DOCUMENT_WITHOUT_CHIP` - el document
            no té cap xip NFC llegible (no és un document electrònic ICAO 9303);
            `CHIP_CERTIFICATE_UNAVAILABLE` - el certificat de signatura del país
            emissor (CSCA) que cobreix el període d'emissió del document no està
            disponible, de manera que no es pot verificar la signatura del xip;
            `DEVICE_WITHOUT_NFC` - el dispositiu ha indicat que no té lector
            NFC; `INTEGRATION_WITHOUT_NFC_ACCESS` - la verificació s'ha executat
            sense un SDK natiu (p. ex. en un navegador web), que no té accés al
            lector NFC del telèfon; `MRZ_KEY_UNAVAILABLE` - no s'ha pogut
            obtenir la clau d'accés al xip a partir de la MRZ del document;
            `JPKI_UNAVAILABLE` - el document és una targeta My Number del Japó,
            el xip de la qual es llegeix mitjançant JPKI, i JPKI no estava
            disponible per a aquesta verificació: no està habilitat o l'SDK
            natiu de l'aplicació no pot llegir targetes My Number.
        nfc_verifications:
          type: array
          nullable: true
          description: >-
            **Matriu d'informes d'NFC / ePassport** generats per passos d'NFC al
            graf del flux de treball. **Això és sempre una matriu JSON, mai un
            objecte `nfc` singular** — llegeix `nfc_verifications[0]` i itera si
            el teu flux de treball pot executar NFC més d'una vegada. `null`
            fins que almenys un pas d'NFC hagi generat dades. Cada element és
            l'informe complet, incloent-hi `node_id`, l'`status` a nivell de
            funcionalitat, `chip_protocol`, `chip_data`, `authenticity`
            (integritat de SOD + DG), `certificate_summary` i `warnings[]`. Una
            My Number Card del Japó es llegeix mitjançant JPKI en lloc d'ICAO
            9303: el seu element té `chip_protocol: "jpki"`, inclou les seves
            proves sota `jpki` i deixa els camps ICAO com a `null`. Quan el pas
            d'NFC s'ha omès abans que es pogués arribar a oferir (document sense
            xip, certificat absent, cap capacitat NFC reportada, clau MRZ
            il·legible, JPKI no disponible per a una My Number Card), aquest
            valor roman com a `null` i `nfc_skip_reason` n'explica el motiu; una
            omissió en el pas mateix (l'usuari ha premut ometre, o el lector no
            estava disponible en el moment de l'escaneig) continua generant un
            informe amb `is_nfc_skipped: true`.
          items:
            type: object
            description: >-
              Un informe d'NFC: l'informe complet d'una única lectura de xip (un
              xip de passaport electrònic o DNI electrònic ICAO 9303, o una
              Japan My Number Card llegida mitjançant JPKI).
            properties:
              node_id:
                type: string
                description: >-
                  ID del node del graf del flux de treball del pas NFC que ha
                  generat aquest informe. Fes-lo servir per correlacionar
                  l'informe amb la definició del flux de treball.
              status:
                type: string
                enum:
                  - Not Finished
                  - Approved
                  - Declined
                  - In Review
                  - Resub Requested
                description: >-
                  Estat a nivell de funcionalitat d'aquest pas d'NFC.
                  Independent de l'`status` de la sessió de nivell superior: una
                  sessió pot assolir la seva decisió global mentre una
                  funcionalitat individual roman `In Review`.
              is_nfc_skipped:
                type: boolean
                description: >-
                  `true` quan aquest pas NFC s'ha omès explícitament en comptes
                  de llegir-se; `skip_reason` n'indica el motiu.
              skip_reason:
                type: string
                nullable: true
                enum:
                  - USER_SKIPPED
                  - DOCUMENT_WITHOUT_CHIP
                  - CHIP_CERTIFICATE_UNAVAILABLE
                  - DEVICE_WITHOUT_NFC
                  - INTEGRATION_WITHOUT_NFC_ACCESS
                  - MRZ_KEY_UNAVAILABLE
                  - JPKI_UNAVAILABLE
                description: >-
                  Per què s'ha omès aquest pas d'NFC. Només s'estableix quan
                  `is_nfc_skipped` és `true`. Té la mateixa taxonomia que el
                  paràmetre de nivell de sessió `nfc_skip_reason`, que a més
                  cobreix els casos en què l'NFC mai no ha arribat a generar cap
                  informe.
              chip_protocol:
                type: string
                enum:
                  - icao
                  - jpki
                description: >-
                  Com llegeix el xip el pas de NFC. `icao`: xip d'ePassport o
                  eID segons ICAO 9303, obert amb la clau d'accés de la MRZ.
                  `jpki`: Japan My Number Card, on la targeta signa un
                  desafiament d'un sol ús després que el titular introdueixi el
                  PIN de la targeta en un SDK natiu; el resultat es troba sota
                  `jpki`. També s'estableix en passos omesos, de manera que
                  puguis distingir una lectura omesa de la My Number Card.
              jpki:
                type: object
                nullable: true
                description: >-
                  El que ha acreditat una Japan My Number Card llegida
                  mitjançant JPKI. Present quan `chip_protocol` és `jpki` i s'ha
                  llegit la targeta. `null` per a xips ICAO, per a passos omesos
                  i quan el pas NFC s'ha tancat sense cap lectura de targeta
                  (aquest cas genera `JPKI_SIGNATURE_INVALID`). Mai no conté els
                  certificats, els seus números de sèrie, les signatures ni el
                  My Number de 12 xifres.
                properties:
                  certificate_types:
                    type: array
                    items:
                      type: string
                      enum:
                        - user_authentication
                        - signature
                    description: >-
                      Els certificats de la targeta llegits.
                      `user_authentication` (PIN de 4 xifres) sempre es llegeix;
                      `signature` (PIN de signatura) es llegeix quan la
                      configuració `jpki_request_attributes` del node NFC està
                      activada.
                  chain_valid:
                    type: boolean
                    description: >-
                      `true` quan cada certificat llegit s'encadena amb
                      l'autoritat de certificació JPKI, es troba dins del seu
                      període de validesa i és un certificat My Number Card del
                      seu tipus.
                  signature_valid:
                    type: boolean
                    description: >-
                      `true` quan es verifica cada signatura que la targeta ha
                      fet sobre el repte d'un sol ús. La targeta només signa
                      després d'introduir el seu PIN, per la qual cosa això
                      demostra la possessió de la targeta i el coneixement del
                      PIN.
                  revocation_status:
                    type: string
                    enum:
                      - good
                      - revoked
                      - unchecked
                    description: >-
                      `good` quan la comprovació de revocació ha confirmat que
                      tots els certificats són vàlids, `revoked` quan algun
                      certificat està revocat (per exemple, una targeta
                      notificada com a perduda), `unchecked` quan no hi havia
                      cap resposta de revocació disponible. `unchecked` mai no
                      es tracta com a `good`: el
                      `jpki_revocation_unchecked_action` del node NFC decideix
                      el resultat (`REVIEW` per defecte).
                  ca_generation:
                    type: string
                    nullable: true
                    description: >-
                      Generació de l'autoritat de certificació JPKI que ha emès
                      els certificats, per exemple `2023`. `null` quan cap
                      certificat forma una cadena fins a una d'aquestes
                      autoritats.
                  certificate_expires_at:
                    type: string
                    format: date-time
                    nullable: true
                    description: La caducitat més propera entre els certificats llegits.
                  certificates:
                    type: array
                    items:
                      type: object
                      description: >-
                        Què va demostrar un certificat llegit de la targeta. Mai
                        el certificat en si ni el seu número de sèrie.
                      properties:
                        type:
                          type: string
                          enum:
                            - user_authentication
                            - signature
                          description: Quin certificat de targeta descriu aquesta entrada.
                        chain_valid:
                          type: boolean
                          description: >-
                            `true` quan el certificat s'encadena amb l'autoritat
                            de certificació JPKI del seu tipus, es troba dins
                            del seu període de validesa i és un certificat My
                            Number Card d'aquest tipus.
                        signature_valid:
                          type: boolean
                          description: >-
                            `true` quan la signatura de la targeta sobre el
                            repte d'un sol ús es verifica amb aquest certificat.
                        ca_generation:
                          type: string
                          nullable: true
                          description: >-
                            Generació de l'autoritat de certificació JPKI que ha
                            emès el certificat, per exemple `2023`. `null` quan
                            no s'ha trobat cap emissor de confiança.
                        not_valid_before:
                          type: string
                          format: date-time
                          nullable: true
                          description: >-
                            Inici del període de validesa del certificat. `null`
                            quan el certificat no s'ha pogut llegir.
                        not_valid_after:
                          type: string
                          format: date-time
                          nullable: true
                          description: >-
                            Final del període de validesa del certificat. `null`
                            quan el certificat no s'ha pogut llegir.
                        failure:
                          type: string
                          nullable: true
                          enum:
                            - unreadable_certificate
                            - untrusted_issuer
                            - expired
                            - not_yet_valid
                            - wrong_policy
                            - key_usage
                            - null
                          description: >-
                            Per què `chain_valid` és `false`:
                            `unreadable_certificate`, `untrusted_issuer` (no
                            l'ha emès l'autoritat de certificació JPKI del seu
                            tipus), `expired`, `not_yet_valid`, `wrong_policy`
                            (no és un certificat de targeta My Number d'aquest
                            tipus) o `key_usage` (la clau no pot signar). `null`
                            quan la cadena és vàlida.
                    description: >-
                      Resultats per certificat, una entrada per cada certificat
                      llegit.
                  attributes:
                    type: object
                    nullable: true
                    description: >-
                      Les dades del titular extretes del certificat de
                      signatura, un cop la seva cadena és vàlida. `null` quan no
                      s'ha sol·licitat el certificat de signatura o no enllaça
                      amb l'autoritat de certificació JPKI.
                    properties:
                      full_name:
                        type: string
                        nullable: true
                        description: >-
                          Nom tal com està registrat, normalment en sistema
                          d'escriptura japonès.
                      date_of_birth:
                        type: string
                        format: date
                        nullable: true
                        description: >-
                          Data de naixement, `YYYY-MM-DD`. `null` quan la data
                          registrada està incompleta.
                      gender:
                        type: string
                        nullable: true
                        enum:
                          - M
                          - F
                          - null
                        description: '`M`, `F` o `null` quan no està registrat.'
                      address:
                        type: string
                        nullable: true
                        description: Adreça registrada.
                      name_substitute_characters:
                        type: string
                        nullable: true
                        description: >-
                          Cadena de posició que marca els caràcters de
                          `full_name` que han estat substituïts per un caràcter
                          substitut perquè el caràcter original queda fora del
                          conjunt de caràcters estàndard. `null` quan no se n'ha
                          substituït cap.
                      address_substitute_characters:
                        type: string
                        nullable: true
                        description: >-
                          Cadena de posició que marca els caràcters substituïts
                          a `address`, com per a `name_substitute_characters`.
                  attributes_match_ocr:
                    type: boolean
                    nullable: true
                    description: >-
                      `true` quan els atributs coincideixen amb les dades
                      llegides de la foto de la mateixa targeta, `false` quan
                      algun atribut difereix (`JPKI_AND_OCR_DATA_NOT_SAME`),
                      `null` quan no s'ha pogut comparar res, incloent-hi sempre
                      que `attributes` sigui `null`.
                  mismatched_attributes:
                    type: array
                    items:
                      type: string
                      enum:
                        - full_name
                        - date_of_birth
                        - gender
                        - address
                    description: >-
                      Noms dels atributs que difereixen de les dades de la foto,
                      mai els seus valors. Buit quan tot el que s'ha comparat
                      coincideix.
              portrait_image:
                type: string
                format: uri
                nullable: true
                description: >-
                  URL presignada del retrat llegit del xip (ICAO DG2). `null`
                  per a una lectura JPKI (`chip_protocol: "jpki"`) i per a
                  passos omesos.
              signature_image:
                type: string
                format: uri
                nullable: true
                description: >-
                  URL presignada de la imatge de la signatura del titular
                  llegida del xip (ICAO DG7), si el xip en conté una. `null` per
                  a una lectura JPKI (`chip_protocol: "jpki"`) i per a passos
                  omesos.
              chip_data:
                type: object
                nullable: true
                description: >-
                  Dades personals analitzades dels grups de dades del xip ICAO.
                  `null` per a una lectura JPKI (`chip_protocol: "jpki"`) i per
                  a passos omesos.
                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:
                type: object
                nullable: true
                description: >-
                  Autenticació passiva ICAO: signatura SOD (`sod_integrity`) i
                  resums criptogràfics del Data Group (`dg_integrity`). `null`
                  per a una lectura JPKI, que reporta la seva prova sota `jpki`.
                properties:
                  sod_integrity:
                    type: boolean
                  dg_integrity:
                    type: boolean
              certificate_summary:
                type: object
                nullable: true
                description: >-
                  Resum del certificat de signant de documents (Document Signer
                  Certificate) de l'ICAO. `null` per a una lectura JPKI
                  (`chip_protocol: "jpki"`) i per a passos omesos.
                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: >-
                        La funcionalitat que ha generat aquesta advertència. El
                        valor identifica el bloc de funcionalitat al qual
                        pertany l'advertència. L'array d'advertències de cada
                        mòdul sol utilitzar el valor que coincideix amb el seu
                        mòdul (p. ex. `PHONE` dins de
                        `phone_verifications[].warnings`), però l'enum anterior
                        és vinculant per a totes les advertències de
                        funcionalitats al payload de la decisió.
                    risk:
                      type: string
                    additional_data:
                      type: object
                      nullable: true
                    log_type:
                      type: string
                    short_description:
                      type: string
                    long_description:
                      type: string
                    node_id:
                      type: string
                      description: >-
                        L'ID del node del graf del flux de treball que ha
                        generat aquesta advertència
        liveness_checks:
          type: array
          nullable: true
          description: >-
            **Matriu d'informes de prova de vida** generats per passos de prova
            de vida al graf del flux de treball. Sempre és una matriu JSON — mai
            un objecte `liveness` singular. `null` fins que almenys un pas de
            prova de vida hagi generat dades. Cada element és l'informe complet,
            incloent-hi `node_id`, l'`status` a nivell de funcionalitat,
            `method`, `score`, `reference_image`, `video_url`, `age_estimation`
            opcional, `matches[]` entre sessions i `warnings[]`.
          items:
            type: object
            description: >-
              Un informe de prova de vida: l'informe complet d'una sola passada
              de prova de vida.
            properties:
              node_id:
                type: string
                description: >-
                  ID del node del graf del flux de treball del pas de prova de
                  vida que ha generat aquest informe.
              status:
                type: string
                enum:
                  - Not Finished
                  - Approved
                  - Declined
                  - In Review
                  - Resub Requested
                description: >-
                  Estat a nivell de funcionalitat d'aquest pas de prova de vida.
                  Independent de l'`status` de la sessió de nivell superior: una
                  sessió pot assolir la seva decisió global mentre una
                  funcionalitat individual roman `In Review`.
              method:
                type: string
                description: Mètode utilitzat per a la prova de vida
              score:
                type: number
                description: Puntuació de confiança de la prova de vida
              reference_image:
                type: string
                format: uri
                description: URL de la imatge de referència utilitzada
              video_url:
                type: string
                format: uri
                description: URL del vídeo de la prova de vida
              age_estimation:
                type: number
                description: Edat estimada de la persona
              matches:
                type: array
                description: >-
                  Cares similars trobades per la cerca de cares duplicades
                  (primer les millors coincidències i les entrades de la llista
                  de bloqueig/permesos). El camp `source` de cada entrada indica
                  d'on prové la cara coincident: `session` (una altra sessió de
                  verificació), `imported` (una cara penjada associada a un
                  usuari del proveïdor), `list_entry` (una cara d'una llista de
                  permesos/bloqueig gestionada per l'organització) o
                  `retained_template` (una plantilla biomètrica sense imatge
                  emmagatzemada en un usuari, llistada sota
                  `/v3/biometric-templates/`). `session_id`, `session_number`,
                  `status` i `api_service` són `null` per a orígens que no
                  siguin de sessió. Les coincidències `imported` continuen
                  emplenant `vendor_data`, `verification_date` i —quan l'usuari
                  del proveïdor té un nom registrat— `user_details` (només amb
                  `full_name`) a partir del registre d'usuari del proveïdor; les
                  coincidències `retained_template` emplenen `vendor_user_id`,
                  `vendor_data`, `biometric_template_id` i `verification_date`,
                  mentre que els seus camps d'imatge i identitat són `null`; les
                  coincidències `list_entry` retornen tots aquests camps com a
                  `null`.
                items:
                  type: object
                  properties:
                    session_id:
                      type: string
                      format: uuid
                      nullable: true
                      description: >-
                        ID de sessió de la cara coincident. `null` quan `source`
                        és `imported`, `list_entry` o `retained_template`.
                    session_number:
                      type: integer
                      nullable: true
                    similarity_percentage:
                      type: number
                      description: >-
                        Similitud facial entre les dues imatges, acotada entre 0
                        i 100.
                    vendor_data:
                      type: string
                      nullable: true
                      description: >-
                        `vendor_data` de la sessió coincident o de l'usuari
                        vinculat per a cares importades i de plantilla
                        retinguda.
                    vendor_user_id:
                      type: string
                      format: uuid
                      nullable: true
                      description: >-
                        Identificador d'User vinculat per a coincidències
                        `imported` i `retained_template` i per a coincidències
                        de sessió vinculades a un User. `null` per a entrades de
                        llista i sessions sense un User.
                    biometric_template_id:
                      type: string
                      format: uuid
                      nullable: true
                      description: >-
                        ID de la plantilla biomètrica conservada. Només
                        s'estableix quan `source` és `retained_template`; `null`
                        en cas contrari.
                    verification_date:
                      type: string
                      format: date-time
                      nullable: true
                      description: >-
                        Quan es va capturar la cara coincident, o quan es va
                        crear una plantilla conservada. `null` per a entrades de
                        llista.
                    user_details:
                      type: object
                      nullable: true
                      description: >-
                        Dades d'identitat de la sessió coincident o del perfil
                        d'usuari importat. Sempre `null` per a coincidències de
                        `retained_template` i `list_entry`.
                      properties:
                        full_name:
                          type: string
                          nullable: true
                        document_type:
                          type: string
                          nullable: true
                        document_number:
                          type: string
                          nullable: true
                    match_image_url:
                      type: string
                      format: uri
                      nullable: true
                      description: >-
                        Imatge de referència per a coincidències basades en
                        imatges. Sempre `null` per a coincidències de
                        `retained_template` perquè les plantilles conservades no
                        contenen cap imatge.
                    status:
                      type: string
                      nullable: true
                      description: >-
                        Estat del cicle de vida de la sessió coincident. `null`
                        per a orígens que no són de sessió.
                    is_blocklisted:
                      type: boolean
                      description: >-
                        Indica si la cara coincident és en una llista de
                        bloqueig.
                    is_allowlisted:
                      type: boolean
                      description: >-
                        Indica si la cara coincident és en una llista de
                        permesos.
                    api_service:
                      type: string
                      nullable: true
                      description: >-
                        Servei d'API independent de la sessió coincident (p. ex.
                        `PASSIVE_LIVENESS`, `FACE_MATCH`); `null` per a sessions
                        de flux de treball i orígens que no són sessions.
                    source:
                      type: string
                      enum:
                        - session
                        - imported
                        - list_entry
                        - retained_template
                      description: >-
                        Origen de la cara coincident: `session`, `imported`
                        (càrrega de la cara de l'usuari), `list_entry` (llista
                        permesa/de bloqueig), o `retained_template` (una
                        plantilla biomètrica sense imatge emmagatzemada en un
                        usuari, llistada a `/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: >-
                        La funcionalitat que ha generat aquesta advertència. El
                        valor identifica el bloc de funcionalitat al qual
                        pertany l'advertència. L'array d'advertències de cada
                        mòdul sol utilitzar el valor que coincideix amb el seu
                        mòdul (p. ex. `PHONE` dins de
                        `phone_verifications[].warnings`), però l'enum anterior
                        és vinculant per a totes les advertències de
                        funcionalitats al payload de la decisió.
                    risk:
                      type: string
                    additional_data:
                      type: object
                      nullable: true
                    log_type:
                      type: string
                    short_description:
                      type: string
                    long_description:
                      type: string
                    node_id:
                      type: string
                      description: >-
                        L'ID del node del graf del flux de treball que ha
                        generat aquesta advertència
              face_quality:
                type: number
                nullable: true
                description: >-
                  Puntuació de qualitat de la imatge facial (0-100%). Només
                  disponible per a prova de vida passiva.
              face_luminance:
                type: number
                nullable: true
                description: >-
                  Puntuació de luminància/brillantor facial (0-100%). Només
                  disponible per a prova de vida passiva.
        face_matches:
          type: array
          nullable: true
          description: >-
            **Matriu d'informes de coincidència facial** generats per passos de
            coincidència facial al graf del flux de treball. Sempre és una
            matriu JSON — mai un objecte `face_match` singular. `null` fins que
            almenys un pas de coincidència facial hagi generat dades. Cada
            element és l'informe complet, incloent-hi `node_id`, l'`status` a
            nivell de funcionalitat, l'`score` de similitud, `source_image`,
            `target_image` i `warnings[]`.
          items:
            type: object
            description: 'Un informe de coincidència facial: l''informe complet.'
            properties:
              node_id:
                type: string
                description: >-
                  ID del node del graf del flux de treball del pas de
                  coincidència facial que ha generat aquest informe.
              status:
                type: string
                enum:
                  - Not Finished
                  - Approved
                  - Declined
                  - In Review
                  - Resub Requested
                description: >-
                  Estat a nivell de funcionalitat d'aquest pas de coincidència
                  facial. Independent de l'`status` de la sessió de nivell
                  superior: una sessió pot assolir la seva decisió global mentre
                  una funcionalitat individual roman `In Review`.
              score:
                type: number
                description: Puntuació de confiança de la coincidència facial
              source_image_session_id:
                type: string
                format: uuid
                nullable: true
                description: >-
                  ID de sessió sota el qual s'emmagatzema el retrat d'origen (de
                  referència). En fluxos d'autenticació biomètrica, aquest és el
                  propi id de la sessió (el retrat enviat s'emmagatzema sota la
                  nova sessió). `null` quan la imatge d'origen és el retrat del
                  document de la mateixa sessió.
              source_image:
                type: string
                format: uri
                description: URL de la imatge d'origen utilitzada per a la comparació
              target_image:
                type: string
                format: uri
                description: URL de la imatge de destinació utilitzada per a la comparació
              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: >-
                        La funcionalitat que ha generat aquesta advertència. El
                        valor identifica el bloc de funcionalitat al qual
                        pertany l'advertència. L'array d'advertències de cada
                        mòdul sol utilitzar el valor que coincideix amb el seu
                        mòdul (p. ex. `PHONE` dins de
                        `phone_verifications[].warnings`), però l'enum anterior
                        és vinculant per a totes les advertències de
                        funcionalitats al payload de la decisió.
                    risk:
                      type: string
                    additional_data:
                      type: object
                      nullable: true
                    log_type:
                      type: string
                    short_description:
                      type: string
                    long_description:
                      type: string
                    node_id:
                      type: string
                      description: >-
                        L'ID del node del graf del flux de treball que ha
                        generat aquesta advertència
                description: Advertències de la verificació de coincidència facial
              face_coverage:
                type: object
                nullable: true
                description: >-
                  Indica si els ulls, la boca i la cara estan coberts a la
                  imatge capturada. Només ho retorna `GET
                  /v3/session/{sessionId}/decision/`; no forma part dels
                  payloads de webhook. `null` quan no hi ha cap lectura de
                  cobertura.
                properties:
                  eyes:
                    type: object
                    properties:
                      covered:
                        type: boolean
                        nullable: true
                      calibrated:
                        type: boolean
                        nullable: true
                        description: >-
                          `false` significa que la lectura només és una
                          evidència secundària i no s'hi aplica cap advertència.
                      visibility_score:
                        type: number
                        nullable: true
                  mouth:
                    type: object
                    properties:
                      covered:
                        type: boolean
                        nullable: true
                      calibrated:
                        type: boolean
                        nullable: true
                        description: >-
                          `false` significa que la lectura només és una
                          evidència secundària i no s'hi aplica cap advertència.
                      visibility_score:
                        type: number
                        nullable: true
                  face:
                    type: object
                    properties:
                      covered:
                        type: boolean
                        nullable: true
                      calibrated:
                        type: boolean
                        nullable: true
                        description: >-
                          `false` significa que la lectura només és una
                          evidència secundària i no s'hi aplica cap advertència.
                      visibility_score:
                        type: number
                        nullable: true
        phone_verifications:
          type: array
          nullable: true
          description: >-
            **Matriu d'informes de verificació de telèfon** — sempre és una
            matriu JSON, mai un objecte `phone` singular. `null` fins que
            almenys un pas de telèfon hagi generat dades. Cada element és
            l'informe complet, incloent-hi `node_id`, l'`status` a nivell de
            funcionalitat, el número de telèfon i metadades del país,
            `lifecycle[]`, `matches[]` i `warnings[]`.
          items:
            type: object
            properties:
              node_id:
                type: string
                description: >-
                  Identificador únic per a aquest pas de telèfon al graf del
                  flux de treball.
              status:
                type: string
                description: >-
                  Estat a nivell de funcionalitat d'aquest pas de verificació de
                  telèfon. Independent de l'`status` de la sessió de nivell
                  superior: una sessió pot assolir la seva decisió global mentre
                  una funcionalitat individual roman `In Review`.
                enum:
                  - Not Finished
                  - Approved
                  - Declined
                  - In Review
                  - Expired
              phone_number_prefix:
                type: string
                description: Prefix del codi telefònic de país
              phone_number:
                type: string
                description: Número de telèfon sense prefix de país
              full_number:
                type: string
                description: Número de telèfon complet amb prefix de país
              country_code:
                type: string
                description: Codi de país de dues lletres (ISO 3166-1 alfa-2)
              country_name:
                type: string
                description: Nom complet del país
              carrier:
                type: object
                properties:
                  name:
                    type: string
                    description: Nom de l'operador de telefonia
                  type:
                    type: string
                    description: Tipus de línia telefònica (mòbil, fixa, etc.)
              is_disposable:
                type: boolean
                description: Si el número de telèfon prové d'un servei d'un sol ús
              is_virtual:
                type: boolean
                description: Si el número de telèfon és virtual
              verification_method:
                type: string
                description: Mètode utilitzat per verificar el número de telèfon
              verification_attempts:
                type: integer
                description: Nombre d'intents de verificació realitzats
              verified_at:
                type: string
                format: date-time
                description: Marca de temps en què es va verificar el telèfon
              lifecycle:
                type: array
                description: >-
                  Llista cronològica d'esdeveniments en el cicle de vida de la
                  verificació de telèfon.
                items:
                  type: object
                  properties:
                    type:
                      type: string
                    timestamp:
                      type: string
                      format: date-time
                    details:
                      type: object
                      nullable: true
                      description: >-
                        Payload específic de l'esdeveniment. Els esdeveniments
                        d'enviament inclouen `status`, `reason`, `channel`,
                        `actual_channel`; els esdeveniments de lliurament
                        inclouen `channel`, `status`; els esdeveniments de
                        comprovació de codi inclouen `code_tried`, `status`; els
                        esdeveniments d'estat final inclouen `reason`, o `null`
                        quan no hi ha cap motiu per informar (p. ex.,
                        `PHONE_VERIFICATION_APPROVED`).
                      properties:
                        status:
                          type: string
                        reason:
                          type: string
                          nullable: true
                        channel:
                          type: string
                          nullable: true
                        actual_channel:
                          type: string
                          nullable: true
                        code_tried:
                          type: string
                    fee:
                      type: number
              warnings:
                type: array
                description: >-
                  Llista d'advertències relacionades amb la verificació de
                  telèfon
                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: >-
                        La funcionalitat que ha generat aquesta advertència. El
                        valor identifica el bloc de funcionalitat al qual
                        pertany l'advertència. L'array d'advertències de cada
                        mòdul sol utilitzar el valor que coincideix amb el seu
                        mòdul (p. ex. `PHONE` dins de
                        `phone_verifications[].warnings`), però l'enum anterior
                        és vinculant per a totes les advertències de
                        funcionalitats al payload de la decisió.
                    risk:
                      type: string
                    additional_data:
                      type: object
                      nullable: true
                    log_type:
                      type: string
                    short_description:
                      type: string
                    long_description:
                      type: string
                    node_id:
                      type: string
                      description: >-
                        L'ID del node del graf del flux de treball que ha
                        generat aquesta advertència
              matches:
                type: array
                description: >-
                  Coincidències trobades per a aquest número de telèfon. Cada
                  coincidència té un `source`: `session` (una altra sessió de
                  verificació a la teva aplicació ha coincidit amb el mateix
                  número, retornada amb
                  `session_id`/`session_number`/`vendor_data`/`verification_date`)
                  o `list_entry` (el número es troba en una llista de
                  permisos/bloqueig gestionada per l'organització — consulta
                  `/management-api/lists/overview`). Les coincidències entre
                  sessions utilitzen diferents `vendor_data` i estan limitades a
                  5.
                items:
                  type: object
                  properties:
                    session_id:
                      type: string
                      format: uuid
                      nullable: true
                    session_number:
                      type: integer
                      nullable: true
                    vendor_data:
                      type: string
                      nullable: true
                    verification_date:
                      type: string
                      format: date-time
                      nullable: true
                    phone_number:
                      type: string
                    status:
                      type: string
                      nullable: true
                    is_blocklisted:
                      type: boolean
                    api_service:
                      type: string
                      nullable: true
                    source:
                      type: string
                      enum:
                        - session
                        - list_entry
                      description: >-
                        D'on prové aquesta coincidència. `session` significa que
                        una altra sessió de verificació a la teva aplicació ha
                        coincidit amb aquest valor. `list_entry` significa que
                        el valor ha coincidit amb una llista gestionada per
                        l'organització (llista d'admesos/llista de bloqueig) —
                        consulta la visió general de les llistes a l'API de
                        gestió a `/management-api/lists/overview` per saber com
                        gestionar aquestes llistes.
              phone_intelligence:
                allOf:
                  - $ref: '#/components/schemas/PhoneIntelligence'
                description: >-
                  Senyals d'intel·ligència telefònica. Present només quan el
                  complement d'intel·ligència telefònica s'ha executat per a
                  aquest número.
              phone_social:
                allOf:
                  - $ref: '#/components/schemas/PhoneSocialFootprint'
                description: >-
                  Petjada social del número. Només present si s'ha executat el
                  complement de petjada social per a aquest número.
        email_verifications:
          type: array
          nullable: true
          description: >-
            **Matriu d'informes de verificació de correu electrònic** — sempre
            és una matriu JSON, mai un objecte `email` singular. `null` fins que
            almenys un pas de correu electrònic hagi generat dades. Cada element
            és l'informe complet, incloent-hi `node_id`, l'`status` a nivell de
            funcionalitat, l'adreça de correu electrònic, dades de filtracions,
            `lifecycle[]`, `matches[]` i `warnings[]`.
          items:
            type: object
            properties:
              node_id:
                type: string
                description: >-
                  Identificador únic per a aquest pas de correu electrònic al
                  graf del flux de treball.
              status:
                type: string
                description: >-
                  Estat a nivell de funcionalitat d'aquest pas de verificació de
                  correu electrònic. Independent de l'`status` de la sessió de
                  nivell superior — una sessió pot assolir la seva decisió
                  global mentre una funcionalitat individual roman `In Review`.
                enum:
                  - Not Finished
                  - Approved
                  - Declined
                  - In Review
                  - Expired
              email:
                type: string
                description: L'adreça de correu electrònic que s'està verificant
              is_breached:
                type: boolean
                description: >-
                  Indica si el correu electrònic s'ha trobat en filtracions de
                  dades conegudes
              breaches:
                type: array
                description: >-
                  Llista de filtracions conegudes en què s'ha trobat aquest
                  correu electrònic
                items:
                  type: object
                  properties:
                    name:
                      type: string
                      description: Nom de la filtració
                    domain:
                      type: string
                      description: Domini afectat per la filtració
                    logo_path:
                      type: string
                      description: URL del logotip del servei afectat per la filtració
                    breach_date:
                      type: string
                      format: date
                      description: Data en què es va produir l'incompliment
                    description:
                      type: string
                      description: Descripció de la infracció
                    is_verified:
                      type: boolean
                      description: Indica si la filtració està verificada
                    data_classes:
                      type: array
                      description: Tipus de dades exposades en la filtració
                      items:
                        type: string
                    breach_emails_count:
                      type: integer
                      description: >-
                        Nombre d'adreces de correu electrònic afectades a la
                        filtració
              is_disposable:
                type: boolean
                description: >-
                  Indica si el correu electrònic prové d'un proveïdor d'un sol
                  ús
              is_undeliverable:
                type: boolean
                description: Indica si l'adreça de correu electrònic no es pot lliurar
              verification_attempts:
                type: integer
                description: Nombre d'intents de verificació per a aquest correu electrònic
              verified_at:
                type: string
                format: date-time
                description: Marca de temps en què es va verificar el correu electrònic
              warnings:
                type: array
                description: >-
                  Llista d'advertències relacionades amb la verificació de
                  correu electrònic
                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: >-
                        La funcionalitat que ha generat aquesta advertència. El
                        valor identifica el bloc de funcionalitat al qual
                        pertany l'advertència. L'array d'advertències de cada
                        mòdul sol utilitzar el valor que coincideix amb el seu
                        mòdul (p. ex. `PHONE` dins de
                        `phone_verifications[].warnings`), però l'enum anterior
                        és vinculant per a totes les advertències de
                        funcionalitats al payload de la decisió.
                    risk:
                      type: string
                    additional_data:
                      type: object
                      nullable: true
                    log_type:
                      type: string
                    short_description:
                      type: string
                    long_description:
                      type: string
                    node_id:
                      type: string
                      description: >-
                        L'ID del node del graf del flux de treball que ha
                        generat aquesta advertència
              lifecycle:
                type: array
                description: >-
                  Llista cronològica d'esdeveniments en el cicle de vida de la
                  verificació de correu electrònic.
                items:
                  type: object
                  properties:
                    type:
                      type: string
                    timestamp:
                      type: string
                      format: date-time
                    details:
                      type: object
                      nullable: true
                      description: >-
                        Payload específic de l'esdeveniment. Els esdeveniments
                        d'enviament inclouen `status`, `reason`; els
                        esdeveniments de comprovació de codi inclouen
                        `code_tried`, `status`; els esdeveniments d'estat final
                        inclouen `reason`, o `null` quan no hi ha cap motiu per
                        informar (p. ex., `EMAIL_VERIFICATION_APPROVED`).
                      properties:
                        status:
                          type: string
                        reason:
                          type: string
                          nullable: true
                        code_tried:
                          type: string
                    fee:
                      type: number
              matches:
                type: array
                description: >-
                  Coincidències trobades per a aquesta adreça de correu
                  electrònic. Cada coincidència té un `source`: `session` (una
                  altra sessió de verificació a la teva aplicació ha coincidit
                  amb el mateix correu electrònic, retornada amb
                  `session_id`/`session_number`/`vendor_data`/`verification_date`)
                  o `list_entry` (el correu electrònic es troba en una llista de
                  permisos/bloqueig gestionada per l'organització — consulta
                  `/management-api/lists/overview`). Les coincidències entre
                  sessions utilitzen diferents `vendor_data` i estan limitades a
                  5.
                items:
                  type: object
                  properties:
                    session_id:
                      type: string
                      format: uuid
                      nullable: true
                    session_number:
                      type: integer
                      nullable: true
                    vendor_data:
                      type: string
                      nullable: true
                    verification_date:
                      type: string
                      format: date-time
                      nullable: true
                    email:
                      type: string
                      format: email
                    status:
                      type: string
                      nullable: true
                    is_blocklisted:
                      type: boolean
                    api_service:
                      type: string
                      nullable: true
                    source:
                      type: string
                      enum:
                        - session
                        - list_entry
                      description: >-
                        D'on prové aquesta coincidència. `session` significa que
                        una altra sessió de verificació a la teva aplicació ha
                        coincidit amb aquest valor. `list_entry` significa que
                        el valor ha coincidit amb una llista gestionada per
                        l'organització (llista d'admesos/llista de bloqueig) —
                        consulta la visió general de les llistes a l'API de
                        gestió a `/management-api/lists/overview` per saber com
                        gestionar aquestes llistes.
              email_intelligence:
                allOf:
                  - $ref: '#/components/schemas/EmailIntelligence'
                description: >-
                  Senyals d'intel·ligència de correu electrònic. Només estan
                  presents quan el complement d'intel·ligència de correu
                  electrònic s'ha executat per a aquesta adreça.
              email_social:
                allOf:
                  - $ref: '#/components/schemas/EmailSocialFootprint'
                description: >-
                  Petjada social de l'adreça. Només present si s'ha executat el
                  complement de petjada social per a aquesta adreça.
        poa_verifications:
          type: array
          nullable: true
          description: >-
            **Matriu d'informes de Comprovant de domicili (POA)** — sempre és
            una matriu JSON, mai un objecte `poa` singular. `null` fins que
            almenys un pas de POA hagi generat dades. Cada element és l'informe
            complet, incloent-hi `node_id`, l'`status` a nivell de
            funcionalitat, l'URL del fitxer del document, l'emissor, les dates,
            l'adreça analitzada i `warnings[]`.
          items:
            type: object
            properties:
              node_id:
                type: string
                description: >-
                  Identificador únic per a aquest pas de Comprovant de domicili
                  al graf del flux de treball.
              status:
                type: string
                description: >-
                  Estat a nivell de funcionalitat d'aquest pas de Comprovant de
                  domicili. Independent de l'`status` de la sessió de nivell
                  superior: una sessió pot assolir la seva decisió global mentre
                  una funcionalitat individual roman `In Review`.
                enum:
                  - Not Finished
                  - Approved
                  - Declined
                  - In Review
                  - Resub Requested
              document_file:
                type: string
                format: uri
                description: URL del document del comprovant de domicili
              issuing_state:
                type: string
                description: Codi de país de dues lletres de l'estat emissor
              document_type:
                type: string
                description: Tipus de document de comprovant de domicili
              document_subtype:
                type: string
                nullable: true
                description: >-
                  Classificació més específica del document de POA dins del seu
                  `document_type`, si se n'ha detectat cap. `null` en cas
                  contrari.
              document_language:
                type: string
                description: Codi d'idioma del document
              document_metadata:
                type: object
                properties:
                  file_size:
                    type: integer
                    description: Mida del document
                  content_type:
                    type: string
                    description: Tipus de contingut del document
                  creation_date:
                    type: string
                    format: date
                    description: Data en què es va crear el document
                  modified_date:
                    type: string
                    format: date
                    description: Data en què es va modificar el document
                  overlay_manipulation:
                    type: object
                    nullable: true
                    description: >-
                      Anàlisi forense de PDF per sospita de manipulació de text
                      superposat. Null quan no s'ha trobat cap indici de
                      manipulació per superposició o el document no era un PDF.
                    properties:
                      detected:
                        type: boolean
                        description: >-
                          Indica si s'han detectat indicis de manipulació de
                          text superposat.
                      analyzed:
                        type: boolean
                        description: Indica si s'ha pogut analitzar el PDF.
                      analysis_incomplete:
                        type: boolean
                        description: >-
                          És present i té el valor true només quan el fitxer no
                          s'ha pogut verificar completament. El que sí que s'ha
                          verificat conserva les seves troballes quan és
                          possible, i el document mostra l'advertència de
                          substitució de text no demostrada.
                      signals:
                        type: array
                        items:
                          type: string
                        description: >-
                          Senyals forenses que s'han activat, com ara
                          duplicate_font_subset o glyph_fragmentation.
                      manipulated_regions:
                        type: array
                        description: >-
                          Àrees amb sospita de manipulació en coordenades de
                          pàgina PDF.
                        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:
                    type: string
                    nullable: true
                    description: >-
                      Aplicació creadora registrada a les metadades del
                      document.
                  producer:
                    type: string
                    nullable: true
                    description: Programari productor registrat a les metadades del PDF.
                  software:
                    type: string
                    nullable: true
                    description: >-
                      Programari d'edició o processament registrat a les
                      metadades del fitxer.
                  encryption:
                    type: string
                    nullable: true
                    description: Esquema de xifratge del document, quan està xifrat.
                  is_signed:
                    type: boolean
                    nullable: true
                    description: Indica si el PDF conté una signatura digital.
                  is_tampered:
                    type: boolean
                    nullable: true
                    description: >-
                      Indica si la verificació de la signatura indica que el
                      fitxer es va modificar després de signar.
                  signature_info:
                    type: object
                    nullable: true
                    description: >-
                      Detalls de la signatura o signatures digitals, quan n'hi
                      hagi.
                  exif_original_date:
                    type: string
                    nullable: true
                    description: Data de captura original EXIF, per a càrregues d'imatges.
                  exif_digitized_date:
                    type: string
                    nullable: true
                    description: Data de digitalització EXIF, per a càrregues d'imatges.
                  processed_by_known_editor:
                    type: boolean
                    nullable: true
                    description: >-
                      Indica si les metadades del fitxer assenyalen que ha estat
                      processat per un editor de documents conegut.
                  has_different_creation_mod_date:
                    type: boolean
                    nullable: true
                    description: >-
                      Indica si les dates de creació i modificació difereixen
                      —un senyal habitual de manipulació.
                description: >-
                  Metadades d'anàlisi forense de fitxers extretes del document
                  de comprovant de domicili penjat. Sempre conté les claus
                  següents (els valors són `null` quan no són aplicables, p. ex.
                  dates EXIF per a PDF). `null` quan no s'ha pogut extreure cap
                  metadada.
                nullable: true
              issuer:
                type: string
                description: Nom de l'emissor del document
              issue_date:
                type: string
                format: date
                description: Data en què es va emetre el document
              expiration_date:
                type: string
                format: date
                nullable: true
                description: Data de caducitat del document, si està disponible
              poa_address:
                type: string
                description: Adreça en brut del document de comprovant de domicili
              poa_formatted_address:
                type: string
                description: Adreça amb format del document de comprovant de domicili
              poa_parsed_address:
                type: object
                properties:
                  address_type:
                    type: string
                    description: Tipus d'adreça (carrer, avinguda, etc.)
                  street_1:
                    type: string
                    description: Adreça principal del carrer
                  street_2:
                    type: string
                    nullable: true
                    description: Adreça de carrer secundària
                  city:
                    type: string
                    description: Nom de la ciutat
                  region:
                    type: string
                    description: Nom de la regió o estat
                  country:
                    type: string
                    description: Codi de país de dues lletres
                  postal_code:
                    type: string
                    description: Codi postal
                  document_location:
                    type: object
                    properties:
                      latitude:
                        type: number
                        description: Coordenada de latitud
                      longitude:
                        type: number
                        description: Coordenada de longitud
              name_on_document:
                type: string
                nullable: true
                description: >-
                  Nom del titular del compte / destinatari extret del document
                  de POA, utilitzat per a la coincidència de noms. `null` quan
                  no s'ha pogut extreure cap nom.
              name_match_score_expected_details:
                type: number
                nullable: true
                description: >-
                  Puntuació de similitud (0-100) entre `name_on_document` i el
                  nom esperat proporcionat en crear la sessió. `null` quan falta
                  algun dels dos costats.
              name_match_score_id_verification:
                type: number
                nullable: true
                description: >-
                  Puntuació de similitud (0-100) entre `name_on_document` i el
                  nom extret pel pas de verificació d'identitat. `null` quan
                  falta algun dels dos costats.
              expected_details_address:
                type: string
                nullable: true
                description: Adreça sense processar esperada per a la verificació
              expected_details_formatted_address:
                type: string
                nullable: true
                description: Adreça formatada esperada per a la verificació
              expected_details_parsed_address:
                type: object
                description: Detalls de l'adreça analitzada esperats per a la verificació
              extra_fields:
                type: object
                description: >-
                  Dades bancàries i de contacte addicionals extretes del
                  document.
                properties:
                  bank_account_number:
                    type: string
                    nullable: true
                  bank_iban:
                    type: string
                    nullable: true
                  bank_sort_code:
                    type: string
                    nullable: true
                  bank_routing_number:
                    type: string
                    nullable: true
                  bank_swift_bic:
                    type: string
                    nullable: true
                  bank_branch_name:
                    type: string
                    nullable: true
                  bank_branch_address:
                    type: string
                    nullable: true
                  document_phone_number:
                    type: string
                    nullable: true
                  additional_names:
                    type: array
                    items:
                      type: string
              extra_files:
                type: array
                items:
                  type: string
                  format: uri
                description: Fitxers addicionals del comprovant de domicili
              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: >-
                        La funcionalitat que ha generat aquesta advertència. El
                        valor identifica el bloc de funcionalitat al qual
                        pertany l'advertència. L'array d'advertències de cada
                        mòdul sol utilitzar el valor que coincideix amb el seu
                        mòdul (p. ex. `PHONE` dins de
                        `phone_verifications[].warnings`), però l'enum anterior
                        és vinculant per a totes les advertències de
                        funcionalitats al payload de la decisió.
                    risk:
                      type: string
                    additional_data:
                      type: object
                      nullable: true
                    log_type:
                      type: string
                    short_description:
                      type: string
                    long_description:
                      type: string
                    node_id:
                      type: string
                      description: >-
                        L'ID del node del graf del flux de treball que ha
                        generat aquesta advertència
              detected_codes:
                type: array
                description: >-
                  Codis QR i codis de barres detectats a totes les pàgines
                  processades del document. Buit quan no se'n troba cap. Un codi
                  QR localitzat però no descodificable té `parsed_payload:
                  null`.
                items:
                  $ref: '#/components/schemas/DocumentAIDetectedCode'
              address_validation:
                allOf:
                  - $ref: '#/components/schemas/AddressValidationResult'
                nullable: true
                description: >-
                  Validació d'adreça de l'adreça d'aquest comprovant de
                  domicili: si existeix i la seva forma normalitzada, tal com la
                  va llegir el document (una correcció posterior de
                  `poa_address` no la torna a executar). Present quan aquest pas
                  de Comprovant de domicili tenia activat el complement de
                  Validació d'adreça i la càrrega va superar les comprovacions
                  del document; `null` en cas contrari.
        document_ai_documents:
          type: array
          nullable: true
          description: >-
            **Informes de Document AI agrupats per node del flux de treball** —
            sempre una matriu JSON, mai un objecte singular. `null` fins que
            almenys un pas de Document AI hagi generat dades. Present només quan
            `session_kind = user`. Cada element és un grup de nodes amb un
            `status` agregat, el `node_id`, una matriu `items[]` dels resultats
            per document (dades extretes indexades per la clau de camp
            configurada) i `warnings`.
          items:
            type: object
            description: Resultats de Document AI agrupats per node del flux de treball.
            properties:
              status:
                type: string
                description: >-
                  Estat agregat de Document AI per a aquest node, consolidat a
                  partir dels seus `items[]`.
                enum:
                  - Approved
                  - Declined
                  - In Review
                  - Not Finished
              node_id:
                type: string
                nullable: true
                description: >-
                  Identificador únic per a aquest pas de Document AI al graf del
                  flux de treball.
              items:
                type: array
                items:
                  type: object
                  properties:
                    uuid:
                      type: string
                      format: uuid
                    node_id:
                      type: string
                      nullable: true
                      description: >-
                        Node del graf del flux de treball que ha generat aquest
                        document.
                    document_key:
                      type: string
                      description: >-
                        Clau del document de Document AI configurat al qual
                        correspon aquest fitxer.
                    original_filename:
                      type: string
                      nullable: true
                      description: Nom de fitxer tal com l'ha penjat l'usuari.
                    file_size:
                      type: integer
                      nullable: true
                      description: Mida del fitxer en bytes.
                    file_url:
                      type: string
                      format: uri
                      nullable: true
                      description: Enllaç presignat de curta durada al fitxer pujat.
                    status:
                      type: string
                      enum:
                        - Approved
                        - Declined
                        - In Review
                        - Not Finished
                      description: Estat de Document AI per document.
                    extracted_data:
                      type: object
                      additionalProperties: true
                      nullable: true
                      description: >-
                        Valors extrets per Document AI, indexats per la clau de
                        camp (`key`) configurada. Cada valor és una cadena, un
                        número o `null`.
                    detected_codes:
                      type: array
                      description: >-
                        Codis QR i codis de barres detectats a totes les pàgines
                        processades. Buit quan no se'n troba cap. Un codi QR
                        localitzat però no descodificable té `parsed_payload:
                        null`.
                      items:
                        $ref: '#/components/schemas/DocumentAIDetectedCode'
                    fields:
                      type: array
                      description: Els camps d'extracció configurats per a aquest document.
                      items:
                        type: object
                        properties:
                          key:
                            type: string
                            description: >-
                              Clau de camp estable utilitzada com a clau a
                              `extracted_data`.
                          name:
                            type: string
                            description: Nom de camp fàcil de llegir.
                          instruction:
                            type: string
                            description: Instrucció d'extracció que es mostra al model.
                          type:
                            type: string
                            enum:
                              - text
                              - number
                              - date
                            description: Tipus de valor esperat del camp extret.
                          required:
                            type: boolean
                            description: Whether this field is required.
                    document_metadata:
                      type: object
                      nullable: true
                      description: >-
                        Metadades d'anàlisi forense de fitxers extretes del
                        document penjat (p. ex. `is_tampered`). `null` quan no
                        s'ha pogut extreure res.
                    cross_check_result:
                      type: object
                      nullable: true
                      description: >-
                        Comprovació creuada dels camps extrets del document amb
                        altres dades de la sessió. `null` quan no s'ha realitzat
                        cap comprovació creuada.
                    created_at:
                      type: string
                      format: date-time
              warnings:
                type: array
                nullable: true
                items:
                  type: object
                description: >-
                  Registres d'advertències generats per a aquest node de
                  Document AI.
        questionnaire_responses:
          type: array
          nullable: true
          description: >-
            **Matriu d'informes de respostes de qüestionaris** — sempre és una
            matriu JSON, mai un objecte `questionnaire` singular. `null` fins
            que almenys un pas de qüestionari hagi generat dades. Cada element
            és l'informe complet, incloent-hi `node_id`, les metadades del
            qüestionari, seccions amb elements de formulari i les respostes de
            l'usuari.
          items:
            type: object
            properties:
              node_id:
                type: string
                description: >-
                  Identificador únic per a aquest pas de qüestionari al graf del
                  flux de treball.
              questionnaire_id:
                type: string
                description: Identificador únic del qüestionari
              title:
                type: string
                description: Títol del qüestionari
              description:
                type: string
                description: Descripció del qüestionari
              languages:
                type: array
                items:
                  type: string
                description: Idiomes admesos
              default_language:
                type: string
                description: Idioma per defecte
              is_active:
                type: boolean
                description: Si el qüestionari està actiu
              is_simple_questionnaire:
                type: boolean
                description: >-
                  Si el qüestionari és un formulari lineal simple (sense graf de
                  bifurcació).
              questionnaire_group_id:
                type: string
                format: uuid
                nullable: true
                description: Identificador estable del grup de qüestionaris entre versions.
              version:
                type: integer
                nullable: true
                description: Número de versió del qüestionari que s'ha respost.
              published_at:
                type: string
                format: date-time
                nullable: true
                description: >-
                  Marca de temps en què es va publicar aquesta versió del
                  qüestionari.
              sections:
                type: array
                items:
                  type: object
                  properties:
                    title:
                      type: string
                      nullable: true
                      description: Títol de la secció
                    description:
                      type: string
                      nullable: true
                      description: Descripció de la secció
                    items:
                      type: array
                      items:
                        type: object
                        properties:
                          uuid:
                            type: string
                            description: Identificador únic de l'element
                          value:
                            type: string
                            nullable: true
                            description: >-
                              Identificador de node estable d'aquest element de
                              formulari dins del graf del qüestionari.
                          element_type:
                            type: string
                            description: Tipus de l'element del qüestionari
                          is_required:
                            type: boolean
                            description: Indica si l'element és obligatori
                          title:
                            type: string
                            description: Títol de l'element
                          description:
                            type: string
                            nullable: true
                            description: Descripció de l'element
                          placeholder:
                            type: string
                            nullable: true
                            description: Text de marcador de posició
                          choices:
                            type: array
                            nullable: true
                            items:
                              type: object
                              properties:
                                label:
                                  type: string
                                value:
                                  type: string
                                requires_text_input:
                                  type: boolean
                                  description: >-
                                    Si aquesta opció requereix una entrada de
                                    text addicional
                                  nullable: true
                              required:
                                - label
                                - value
                            description: >-
                              Opcions per a elements desplegables o de selecció
                              única
                          max_files:
                            type: integer
                            description: Nombre màxim de fitxers permesos
                            nullable: true
                          answer:
                            type: object
                            description: Resposta proporcionada per a l'element
                            properties:
                              value:
                                type: string
                                nullable: true
                              text:
                                type: string
                                nullable: true
                              files:
                                type: array
                                items:
                                  type: string
                                nullable: true
                          required_if:
                            type: object
                            nullable: true
                            description: >-
                              Regla de requisit condicional, quan l'element
                              només és obligatori per a determinades respostes.
                          repeatable_config:
                            type: object
                            nullable: true
                            description: >-
                              Configuració per a grups d'elements repetibles,
                              quan sigui aplicable.
                        required:
                          - uuid
                          - value
                          - element_type
                          - is_required
                          - title
              status:
                type: string
                description: Estat del qüestionari
        bank_verifications:
          type: array
          nullable: true
          description: >-
            Resultats de la Verificació bancària, un element per pas de
            Verificació bancària, per a Verificació d'usuaris i d'empreses.
            `null` fins que un pas en produeixi un. El camp `method` de cada
            element indica com s'ha verificat el compte: `open_banking` (inici
            de sessió bancari) o `account_lookup` (comprovació de compte), o bé
            un mètode alternatiu `statement` o `microdeposits`, i `none` quan la
            persona ha continuat sense banc abans que s'avalués cap intent
            (`continued_without_bank`). Consulta [Mètodes de verificació
            bancària](/ca/core-technology/bank-verification/verification-methods).
          items:
            $ref: '#/components/schemas/BankVerificationResult'
        signatures:
          type: array
          description: >-
            Resultats de la signatura electrònica, un element per signant i pas
            de signatura, per a Verificació d'usuaris i Verificació d'empreses
            (KYB). Només és present quan el flux de treball té un pas de
            Signatura electrònica; una matriu buida fins que un signant hi
            arriba. Consulta l'[Informe de signatura
            electrònica](/ca/core-technology/electronic-signature/report-electronic-signature).
          items:
            $ref: '#/components/schemas/SignatureResult'
        aml_screenings:
          type: array
          nullable: true
          description: >-
            **Array d'informes de cribratge AML** — sempre és un array JSON, mai
            un objecte `aml` singular. `null` fins que almenys un pas d'AML hagi
            produït dades. Cada element és l'informe complet, incloent-hi
            `node_id`, `status` a nivell de funcionalitat, `total_hits`,
            `entity_type`, `hits[]`, `score`, `screened_data`,
            `is_ongoing_monitoring_enabled` i `warnings[]`.
          items:
            $ref: '#/components/schemas/AMLScreening'
        ip_analyses:
          type: array
          nullable: true
          description: >-
            **Matriu d'informes d'Anàlisi de dispositiu i IP** — sempre és una
            matriu JSON, mai un objecte `ip_analysis` singular. `null` fins que
            almenys un pas d'anàlisi d'IP hagi generat dades. Cada element és
            l'informe complet, incloent-hi `node_id`, l'`status` a nivell de
            funcionalitat, dades d'IP i geolocalització, empremta digital del
            dispositiu i `warnings[]`. Les entrades amb `(node_id, ip_address,
            device_fingerprint)` duplicats es dedupliquen al servidor.
          items:
            type: object
            properties:
              node_id:
                type: string
                description: >-
                  Identificador únic per a aquest pas d'Anàlisi de dispositiu i
                  IP al graf del flux de treball.
              status:
                type: string
                description: >-
                  Estat a nivell de funcionalitat d'aquesta entrada d'Anàlisi de
                  dispositiu i IP. Independent de l'`status` de la sessió de
                  nivell superior: una sessió pot assolir la seva decisió global
                  mentre una funcionalitat individual roman `In Review`.
                enum:
                  - Not Finished
                  - Approved
                  - Declined
                  - In Review
                  - Resub Requested
              device_brand:
                type: string
                description: Marca del dispositiu utilitzat
              device_model:
                type: string
                description: Model del dispositiu utilitzat
              browser_family:
                type: string
                description: Família del navegador utilitzat
              os_family:
                type: string
                description: Família del sistema operatiu
              platform:
                type: string
                description: Tipus de plataforma (mobile, desktop, etc.)
              device_fingerprint:
                type: string
                nullable: true
                description: Identificador únic de la petjada digital del dispositiu
              ip_country:
                type: string
                description: País detectat a partir de la IP
              ip_country_code:
                type: string
                description: Codi de país de dues lletres a partir de la IP
              ip_state:
                type: string
                description: Estat/regió detectada a partir de la IP
              ip_city:
                type: string
                description: Ciutat detectada a partir de la IP
              latitude:
                type: number
                description: Coordenada de latitud de la ubicació de la IP
              longitude:
                type: number
                description: Coordenada de longitud de la ubicació de la IP
              ip_address:
                type: string
                description: Adreça IP
              isp:
                type: string
                nullable: true
                description: Proveïdor de serveis d'Internet
              organization:
                type: string
                nullable: true
                description: Organització associada a la IP
              is_vpn_or_tor:
                type: boolean
                description: Indica si la IP prové d'una xarxa VPN o Tor
              is_data_center:
                type: boolean
                description: Indica si la IP prové d'un centre de dades
              time_zone:
                type: string
                description: Zona horària detectada a partir de la IP
              time_zone_offset:
                type: string
                description: Desplaçament de la zona horària
              ip:
                type: object
                description: >-
                  Geolocalització per IP d'aquesta entrada més distàncies
                  ortodròmiques (km) a l'adreça del document d'identitat i a
                  l'adreça del document POA. Les distàncies són `null` quan no
                  es pot resoldre la ubicació d'algun dels dos costats.
                properties:
                  location:
                    type: object
                    nullable: true
                    properties:
                      latitude:
                        type: number
                        example: 41.2706327
                      longitude:
                        type: number
                        example: 1.9770097
                    description: Coordenades, o `null` quan no estiguin disponibles.
                  distance_from_id_document:
                    type: number
                    nullable: true
                    example: 23.4
                  distance_from_poa_document:
                    type: number
                    nullable: true
                    example: 12.3
              id_document:
                type: object
                description: >-
                  Ubicació extreta de l'adreça del document d'identitat més les
                  distàncies (km) a la geolocalització per IP i a l'adreça del
                  document de POA. `location` és `null` quan no s'ha pogut
                  geocodificar cap adreça del document.
                properties:
                  location:
                    type: object
                    nullable: true
                    properties:
                      latitude:
                        type: number
                        example: 41.2706327
                      longitude:
                        type: number
                        example: 1.9770097
                    description: Coordenades, o `null` quan no estiguin disponibles.
                  distance_from_ip:
                    type: number
                    nullable: true
                    example: 23.4
                  distance_from_poa_document:
                    type: number
                    nullable: true
                    example: 18.7
              poa_document:
                type: object
                description: >-
                  Ubicació extreta del document que serveix com a comprovant de
                  domicili més les distàncies (km) a la geolocalització per IP i
                  a l'adreça del document d'identitat. `location` és `null` quan
                  la sessió no té cap pas de POA o no s'ha pogut geocodificar
                  l'adreça.
                properties:
                  location:
                    type: object
                    nullable: true
                    properties:
                      latitude:
                        type: number
                        example: 41.2706327
                      longitude:
                        type: number
                        example: 1.9770097
                    description: Coordenades, o `null` quan no estiguin disponibles.
                  distance_from_ip:
                    type: number
                    nullable: true
                    example: 12.3
                  distance_from_id_document:
                    type: number
                    nullable: true
                    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: >-
                        La funcionalitat que ha generat aquesta advertència. El
                        valor identifica el bloc de funcionalitat al qual
                        pertany l'advertència. L'array d'advertències de cada
                        mòdul sol utilitzar el valor que coincideix amb el seu
                        mòdul (p. ex. `PHONE` dins de
                        `phone_verifications[].warnings`), però l'enum anterior
                        és vinculant per a totes les advertències de
                        funcionalitats al payload de la decisió.
                    risk:
                      type: string
                    additional_data:
                      type: object
                      nullable: true
                    log_type:
                      type: string
                    short_description:
                      type: string
                    long_description:
                      type: string
                    node_id:
                      type: string
                      description: >-
                        L'ID del node del graf del flux de treball que ha
                        generat aquesta advertència
              matches:
                type: array
                description: >-
                  Coincidències entre sessions trobades per a l'adreça IP o la
                  identitat del dispositiu d'aquesta entrada. Cada coincidència
                  és una altra sessió de verificació a la teva aplicació
                  (`source` sempre és `session`) que comparteix el mateix valor,
                  pertanyent sempre a un usuari del proveïdor / `vendor_data`
                  diferent del de la sessió actual, amb un límit de 5 per
                  col·lector (`device_fingerprint` suma dos col·lectors amb
                  límits independents, de manera que són possibles fins a 10
                  entrades). Cada element conté `match_source`, `confidence`,
                  `match_mode`, `device_info` i `location_info`; les claus
                  `recovery_similarity`, `tls_ja4_corroborated` i
                  `recovery_gate_reason` només són presents quan `match_source`
                  és `recovered_high`.
                items:
                  type: object
                  additionalProperties: false
                  properties:
                    session_id:
                      type: string
                      format: uuid
                      description: ID de sessió de la sessió coincident.
                    session_number:
                      type: integer
                      description: Número seqüencial de la sessió coincident.
                    vendor_data:
                      type: string
                      nullable: true
                      description: >-
                        `vendor_data` de la sessió coincident — sempre diferent
                        de l'usuari del proveïdor de la sessió actual.
                    verification_date:
                      type: string
                      format: date-time
                      nullable: true
                      description: >-
                        Data de creació de la sessió coincident
                        (`YYYY-MM-DDTHH:MM:SSZ`).
                    match_type:
                      type: string
                      enum:
                        - ip_address
                        - device_fingerprint
                      description: >-
                        Indica si la coincidència ha estat per adreça IP o per
                        empremta de dispositiu
                    match_source:
                      type: string
                      enum:
                        - ip_address
                        - persistent_id
                        - legacy_fp
                        - recovered_high
                      description: >-
                        Com s'ha assolit aquesta coincidència: `ip_address`
                        (adreça compartida — colocalització de xarxa, no una
                        afirmació d'identitat de dispositiu), `persistent_id`
                        (identificador persistent exacte del dispositiu
                        emmagatzemat), `legacy_fp` (hash d'empremta digital de
                        dispositiu heretat `didit-fp-*`) o `recovered_high`
                        (coincidència de recuperació difusa d'empremta digital
                        d'alta confiança). Els candidats de recuperació de menor
                        confiança només es mostren com a advertències de risc,
                        mai en aquesta matriu.
                    matched_value:
                      type: string
                      nullable: true
                      description: >-
                        El valor que ha coincidit: l'adreça IP compartida,
                        l'identificador persistent de dispositiu o el resum
                        criptogràfic d'empremta digital antic, o bé —per a
                        `recovered_high`— l'UUID del dispositiu recuperat.
                    status:
                      type: string
                      description: Estat del cicle de vida de la sessió coincident.
                    is_blocklisted:
                      type: boolean
                      description: >-
                        Indica si el valor coincident és en una llista de
                        bloqueig. Actualment sempre és `false` per a
                        coincidències de dispositiu/IP.
                    api_service:
                      type: string
                      nullable: true
                      description: >-
                        Servei d'API independent de la sessió coincident; `null`
                        per a sessions de flux de treball.
                    source:
                      type: string
                      enum:
                        - session
                      description: >-
                        Sempre `session` per a coincidències de dispositiu/IP;
                        cada coincidència és una altra sessió de verificació a
                        la teva aplicació.
                    device_info:
                      type: object
                      description: Detalls del dispositiu observats a la sessió coincident.
                      properties:
                        device_brand:
                          type: string
                          nullable: true
                        device_model:
                          type: string
                          nullable: true
                        browser_family:
                          type: string
                          nullable: true
                        os_family:
                          type: string
                          nullable: true
                        platform:
                          type: string
                          nullable: true
                        device_fingerprint:
                          type: string
                          nullable: true
                    location_info:
                      type: object
                      description: >-
                        Detalls de xarxa i geolocalització observats a la sessió
                        coincident.
                      properties:
                        ip_address:
                          type: string
                          nullable: true
                        ip_country:
                          type: string
                          nullable: true
                        ip_country_code:
                          type: string
                          nullable: true
                        ip_state:
                          type: string
                          nullable: true
                        ip_city:
                          type: string
                          nullable: true
                        is_vpn_or_tor:
                          type: boolean
                        is_data_center:
                          type: boolean
                    confidence:
                      type: number
                      minimum: 0
                      maximum: 1
                      description: >-
                        Confiança d'identificació del costat del servidor,
                        calculada com a `1 - P(false positive)`: `1.0` per a
                        coincidències deterministes (`persistent_id` o
                        `recovered_high` basat en maquinari), `0.5` per a
                        `legacy_fp`, `0.0` per a `ip_address` (només
                        colocalització), i un valor ajustat per corroboració
                        inferior a `1.0` per a coincidències recuperades
                        probabilístiques (més alt quan l'empremta TLS JA4 i el
                        país de la IP coincideixen de manera independent).
                    match_mode:
                      type: string
                      enum:
                        - deterministic
                        - probabilistic
                        - co_occurrence
                      description: >-
                        Classe d'evidència de la coincidència: `deterministic`
                        (identificador exacte emmagatzemat o basat en maquinari
                        que no pot col·lidir entre dispositius físics),
                        `probabilistic` (evidència d'empremta difusa) o
                        `co_occurrence` (només xarxa compartida, sense
                        reclamació d'identitat de dispositiu).
                    recovery_similarity:
                      type: number
                      description: >-
                        Similitud cosinus de la coincidència de recuperació
                        d'empremta dactilar, arrodonida a 4 decimals. Només és
                        present quan `match_source` és `recovered_high`.
                    tls_ja4_corroborated:
                      type: boolean
                      description: >-
                        Indica si les empremtes TLS JA4 de les dues observacions
                        coincideixen —un senyal observat pel servidor que el
                        navegador no pot suplantar. Només és present quan
                        `match_source` és `recovered_high`.
                    recovery_gate_reason:
                      type: string
                      description: >-
                        Per què la coincidència de recuperació ha superat la
                        barrera estricta contra els falsos positius:
                        `hardware_root_match` (un identificador de dispositiu
                        basat en maquinari ha coincidit exactament) o, en
                        configuracions que admeten proves basades només en
                        sondejos, `exact_composite_plus_<n>_families` /
                        `very_high_similarity_plus_<n>_families`. Només present
                        quan `match_source` és `recovered_high`.
              browser_version:
                type: string
                nullable: true
              os_version:
                type: string
                nullable: true
              user_agent:
                type: string
                nullable: true
                description: La cadena de l'agent d'usuari del navegador.
              accept_language:
                type: string
                nullable: true
                description: La capçalera `Accept-Language` que ha enviat el navegador.
              session_identifier:
                type: string
                nullable: true
                description: >-
                  Identificador de la sessió de navegació en què s'ha executat
                  la verificació.
              session_age_ms:
                type: integer
                nullable: true
                description: >-
                  Antiguitat d'aquesta sessió de navegació en mil·lisegons quan
                  es va executar el pas.
              coords_accuracy:
                type: number
                nullable: true
                description: >-
                  Radi de precisió, en metres, de les coordenades que ha
                  notificat el dispositiu.
              raw_device_data:
                type: object
                nullable: true
                additionalProperties: true
                description: Senyals de dispositiu en brut recopilats per al pas.
        geolocation_checks:
          type: array
          nullable: true
          description: >-
            **Matriu de resultats de verificació d'ubicació**, un per cada pas
            de verificació d'ubicació: l'intent acceptat d'aquest pas. `null`
            fins que un pas de verificació d'ubicació hagi generat dades. Els
            intents anteriors del mateix pas es troben a `geolocation_attempts`.
          items:
            $ref: '#/components/schemas/GeolocationCheck'
        geolocation_attempts:
          type: array
          nullable: true
          description: >-
            Tots els intents de cada pas de verificació d'ubicació d'aquesta
            sessió, del més antic al més recent. Els intents substituïts per un
            reenviament s'ometen. Un flux de treball que retingui
            `geolocation_checks` mitjançant els seus atributs de resposta també
            reté aquesta llista.
          items:
            $ref: '#/components/schemas/GeolocationAttempt'
        database_validations:
          type: array
          nullable: true
          description: >-
            **Array d'informes de Validació en bases de dades** — sempre és un
            array JSON, mai un objecte `database_validation` singular. `null`
            fins que almenys un pas de validació en bases de dades hagi generat
            dades. Cada element és l'informe complet, incloent-hi `node_id`, el
            `status` a nivell de funcionalitat, `screened_data`, les
            `validations[]` per servei (cadascuna amb el seu `source_data` del
            registre) i `warnings[]`. Els camps `screened_data` i `source_data`
            varien segons el país:


            **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}. Utilitza la
            validació biomètrica de coincidència facial del RENAPER. El gènere
            s'infereix automàticament a partir de l'anàlisi facial o del nom de
            pila quan no està present al document (p. ex., permisos de conduir)


            **BOL (Bolívia)**: 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}


            **BRA (Brasil)**: screened_data: {tax_number, first_name, last_name,
            date_of_birth}. source_data sempre inclou {identification_number,
            first_name, last_name, date_of_birth, lgpd_minor, minor_under_18,
            minor_under_16} per a coincidències satisfactòries de CPF. Les
            consultes d'adults satisfactòries estableixen aquests indicadors a
            false. El servei Consulta CPF de la Receita Federal pot retornar
            HTTP 422 (menor de 18 anys) o 451 (menor de 16 anys) amb dades
            retingudes per la LGPD; en aquests casos, source_data estableix els
            indicadors de menor a true segons correspongui, inclou l'estat HTTP
            del servei d'origen i la validació a nivell de camp és no_match.
            Consulta la secció del Brasil de la referència de Codis de resultats
            de la validació en bases de dades per obtenir la llista completa de
            codis.


            **CHL (Xile)**: screened_data: {personal_number, first_name,
            last_name, date_of_birth}. source_data: {identification_number,
            first_name, last_name, date_of_birth, gender}


            **COL (Colòmbia)**: 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}


            **CRI (Costa Rica)**: screened_data: {personal_number, first_name,
            last_name}. source_data: {identification_number, first_name,
            last_name, full_name}


            **DOM (República Dominicana)**: screened_data: {personal_number}.
            source_data: {identification_number} (només retorna vàlid/invàlid)


            **ECU (Equador)**: 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}


            **ESP (Espanya)**: 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}


            **GTM (Guatemala)**: screened_data: {document_number, first_name,
            last_name}. source_data: {identification_number, first_name,
            last_name, full_name}


            **HND (Hondures)**: screened_data: {document_number, first_name,
            last_name}. source_data: {identification_number, first_name,
            last_name, full_name}


            **MEX (Mèxic)**: 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}. Utilitza el registre civil RENAPO. També hi ha
            disponible un servei independent de verificació de validesa de l'INE
            per a MEX com a validació addicional individual.


            **PAN (Panamà)**: screened_data: {personal_number, selfie}.
            source_data: {identification_number}. Utilitza la validació
            biomètrica del SIB


            **PER (Perú)**: 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}


            **PRY (Paraguai)**: screened_data: {document_number, first_name,
            last_name}. source_data: {identification_number, first_name,
            last_name, full_name}


            **SLV (El Salvador)**: screened_data: {document_number,
            date_of_birth, first_name, last_name}. source_data:
            {identification_number, first_name, last_name, full_name}


            **URY (Uruguai)**: screened_data: {personal_number, date_of_birth,
            first_name, last_name}. source_data: {identification_number,
            first_name, last_name, full_name}


            **VEN (Veneçuela)**: 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: >-
                  Identificador únic per a aquest pas de validació en bases de
                  dades al graf del flux de treball.
              issuing_state:
                type: string
                description: >-
                  Codi ISO 3166-1 alpha-3 del país les fonts governamentals o de
                  registres del qual s'han consultat (p. ex., `BRA`, `MEX`,
                  `ESP`, `NGA`, `IDN`). Validació en bases de dades cobreix 60+
                  països d'Amèrica, Europa, Àfrica, l'Orient Mitjà i
                  Àsia-Pacífic, a més de fonts globals multipaís — la cobertura
                  s'amplia regularment, així que tracta el valor com un conjunt
                  obert en lloc d'un enum fix.
              validation_type:
                type: string
                enum:
                  - one_by_one
                  - two_by_two
                  - not_enabled
                description: >-
                  Com s'ha corroborat el resultat: `one_by_one` (resultat d'un
                  únic servei), `two_by_two` (dos o més serveis diferents han
                  fet coincidir de manera independent i completa el número
                  d'identificació), o `not_enabled` (es desa quan cap servei ha
                  produït una coincidència utilitzable). El valor mai és `null`.
                  Actualment hi ha modes de validació 2x2 biomètrics dedicats
                  per a `ECU` i `PER`.
              screened_data:
                type: object
                description: >-
                  Les dades d'entrada utilitzades per a la validació. Els camps
                  varien segons el país; consulta la documentació de Validació
                  en bases de dades
                  (`/core-technology/database-validation/overview`) per conèixer
                  els formats específics de cada país.
                properties:
                  last_name:
                    type: string
                  first_name:
                    type: string
                  tax_number:
                    type: string
                    description: 'Brasil: CPF (11 dígits)'
                  personal_number:
                    type: string
                    description: >-
                      Xile: RUT, DOM: Cédula (11 dígits), ECU: Cédula (10
                      dígits), ESP: DNI/NIE, MEX: CURP (18 caràcters), PER: DNI
                      (8 dígits), 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: Obligatori per a ESP
              validations:
                type: array
                description: >-
                  Una entrada per servei de registre que hagi retornat un
                  payload de validació. Cada entrada identifica el servei
                  (`service_id`, `service_name`) i conté la comparació de
                  `validation` camp per camp, l'`outcome_code` /
                  `outcome_detail` del servei quan s'informa, i el registre
                  normalitzat a `source_data`.
                items:
                  type: object
                  properties:
                    service_id:
                      type: string
                      description: >-
                        Identificador del servei de registre que ha generat
                        aquest resultat de validació.
                      example: bra_cpf
                    service_name:
                      type: string
                      description: Nom fàcil de llegir del servei de registre.
                      example: Brazil - CPF status check
                    validation:
                      type: object
                      description: Els resultats de les validacions dels camps.
                      properties:
                        full_name:
                          type: string
                          description: >-
                            Resultat de coincidència per al nom complet (p. ex.,
                            'full_match', 'partial_match', 'no_match').
                        date_of_birth:
                          type: string
                          description: Resultat de coincidència per a la data de naixement.
                        identification_number:
                          type: string
                          description: >-
                            Resultat de coincidència per al número
                            d'identificació.
                    outcome_code:
                      type: string
                      nullable: true
                      description: >-
                        Resultat llegible per màquina de la consulta al registre
                        (p. ex., `MATCH`, `NO_MATCH`, `PARTIAL_MATCH`,
                        `INCONCLUSIVE`, codis específics de la font). Present
                        quan el servei en proporciona un.
                    outcome_detail:
                      type: string
                      nullable: true
                      description: >-
                        Explicació fàcil de llegir d'`outcome_code`, quan la
                        proporciona el servei.
                    source_data:
                      type: object
                      description: >-
                        Les dades retornades de la base de dades governamental.
                        Camps comuns: identification_number, first_name,
                        last_name, full_name, date_of_birth, gender. Camps
                        addicionals per país: BRA sempre inclou lgpd_minor,
                        minor_under_18 i minor_under_16 en coincidències de CPF
                        satisfactòries; també inclou l'estat HTTP del sistema
                        d'origen quan les dades del CPF es retenen sota la LGPD
                        (HTTP 422/451). ECU afegeix street, formatted_address,
                        nationality, education, marital_status, spouse,
                        mother_name, father_name, profession. PER afegeix
                        paternal_name, maternal_name, verification_number,
                        verification_letter. ESP afegeix document_type,
                        expiration_date. VEN/COL afegeixen document_type.
                      additionalProperties: true
              errors:
                type: array
                description: >-
                  Errors retornats pels serveis de registre durant la validació,
                  cadascun etiquetat amb el `service_id` que l'ha produït.
                  **Aquesta clau s'omet completament quan no hi ha errors.**
                items:
                  type: object
                  description: >-
                    L'objecte d'error del servei upstream desplegat tal qual
                    —les seves claus varien segons el servei (normalment un
                    missatge/codi i qualsevol detall específic del proveïdor)—,
                    a més de `service_id`, que identifica el servei que ha
                    fallat.
                  properties:
                    service_id:
                      type: string
                      nullable: true
                      description: Identificador del servei de registre que ha fallat.
                  additionalProperties: true
              match_type:
                type: string
                enum:
                  - no_match
                  - partial_match
                  - full_match
                nullable: true
                description: >-
                  El resultat agregat de coincidència entre els serveis
                  consultats. `null` fins que la validació s'hagi avaluat.
              status:
                type: string
                description: >-
                  Estat a nivell de funcionalitat d'aquesta validació en bases
                  de dades. Independent de l'`status` de la sessió de nivell
                  superior: una sessió pot assolir la seva decisió global mentre
                  una funcionalitat individual roman `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: >-
                        La funcionalitat que ha generat aquesta advertència. El
                        valor identifica el bloc de funcionalitat al qual
                        pertany l'advertència. L'array d'advertències de cada
                        mòdul sol utilitzar el valor que coincideix amb el seu
                        mòdul (p. ex. `PHONE` dins de
                        `phone_verifications[].warnings`), però l'enum anterior
                        és vinculant per a totes les advertències de
                        funcionalitats al payload de la decisió.
                    risk:
                      type: string
                    additional_data:
                      type: object
                      nullable: true
                    log_type:
                      type: string
                    short_description:
                      type: string
                    long_description:
                      type: string
                    node_id:
                      type: string
                      description: >-
                        L'ID del node del graf del flux de treball que ha
                        generat aquesta advertència
                description: Advertències relacionades amb la validació en bases de dades.
        database_validation_not_performed_reason:
          type: object
          nullable: true
          additionalProperties: true
          description: >-
            Per què una validació en bases de dades configurada no ha produït
            cap resultat, com a `{code, message}` més camps de context. Només
            està present quan `database_validations` és `null` per a un flux de
            treball que té el pas, de manera que pots distingir entre "el
            registre ha donat el vistiplau" i "no s'ha executat res". `null` en
            cas contrari.
          properties:
            code:
              type: string
              description: Motiu llegible per màquina estable.
            message:
              type: string
              description: Explicació fàcil de llegir.
        reviews:
          type: array
          items:
            type: object
            properties:
              user:
                type: string
                description: >-
                  Qui ha fet la revisió. Normalment és l'identificador del
                  revisor de la consola (el seu correu electrònic), però el
                  valor és `"API Client"` per a les actualitzacions d'estat
                  fetes amb una clau d'API i `"Unknown"` quan no s'ha pogut
                  determinar cap actor; per tant, no analitzis aquest camp com
                  una adreça de correu electrònic.
              new_status:
                type: string
              comment:
                type: string
              created_at:
                type: string
                format: date-time
        assignee:
          type: object
          nullable: true
          description: >-
            El revisor de la consola a qui s'ha assignat la sessió, o `null`
            quan ningú la té assignada.
          properties:
            email:
              type: string
              format: email
            assigned_at:
              type: string
              format: date-time
              nullable: true
        waiting_since:
          type: string
          format: date-time
          nullable: true
          description: >-
            Quan la sessió va començar a esperar la revisió. `null` tret que la
            sessió estigui `In Review` i la teva aplicació estableixi un termini
            de revisió.
        sla_due_at:
          type: string
          format: date-time
          nullable: true
          description: >-
            Data límit de la revisió. `null` tret que la sessió estigui `In
            Review` i la teva aplicació estableixi un termini de revisió.
        created_at:
          type: string
          format: date-time
          description: Marca de temps en què es va crear la sessió (ISO 8601, UTC).
        expires_at:
          type: string
          format: date-time
          nullable: true
          description: >-
            Marca de temps en què està programada la caducitat d'aquesta sessió.
            S'estableix a les sessions de Verificació d'usuaris (KYC) quan se'n
            va configurar la caducitat en el moment de la creació (o un cop
            l'estat `Approved` activa el càlcul de caducitat de KYC). `null` per
            a sessions sense una caducitat configurada i per a tipus que no
            utilitzen caducitat (p. ex., sessions de Verificació d'empreses
            (KYB) que mai no han rebut un `expires_at`).
        registry_checks:
          type: array
          nullable: true
          description: >-
            Comprovacions del registre mercantil. Només present quan
            `session_kind = business`. Cada element conté el payload complet del
            registre mercantil.
          items:
            type: object
            description: >-
              Una comprovació del registre mercantil: el payload complet del
              registre mercantil enriquit amb l'estructura de titularitat i
              advertències. Només present quan `session_kind = business`.
            properties:
              status:
                type: string
                description: Estat del cicle de vida de la funcionalitat.
              node_id:
                type: string
                nullable: true
              data_resolved:
                type: boolean
              company:
                type: object
                description: >-
                  Payload complet del registre per a l'empresa (registre
                  mercantil combinat amb qualsevol dada proporcionada per
                  l'usuari o editada a la consola).
                properties:
                  uuid:
                    type: string
                    format: uuid
                  node_id:
                    type: string
                    nullable: true
                  status:
                    type: string
                  registry_status:
                    type: string
                    nullable: true
                  data_resolved:
                    type: boolean
                  company_name:
                    type: string
                  registration_number:
                    type: string
                    nullable: true
                  country_code:
                    type: string
                    description: >-
                      País de constitució (ISO 3166-1 alpha-2, p. ex. `GB`,
                      `DE`, `US`).
                  region:
                    type: string
                    nullable: true
                    description: >-
                      Codi de subdivisió ISO 3166-2 quan sigui aplicable (p.
                      ex., `CA`, `NY` per a estats dels EUA).
                  company_type:
                    type: string
                    nullable: true
                  incorporation_date:
                    type: string
                    format: date
                    nullable: true
                  registered_address:
                    type: string
                    nullable: true
                  tax_number:
                    type: string
                    nullable: true
                  risk_level:
                    type: string
                    enum:
                      - LOW
                      - MEDIUM
                      - HIGH
                    nullable: true
                  verification_status:
                    type: string
                    nullable: true
                  is_from_registry:
                    type: boolean
                  fetch_status:
                    type: string
                    nullable: true
                  alternative_names:
                    type: string
                    nullable: true
                    description: >-
                      Noms alternatius, comercials, anteriors o en l'idioma
                      original de l'empresa com a text, quan s'hagin informat.
                  nature_of_business:
                    type: string
                    nullable: true
                  registered_capital:
                    type: string
                    nullable: true
                  registered_capital_amount:
                    type: string
                    format: decimal
                    nullable: true
                    description: >-
                      Import del capital social/registrat com a cadena decimal
                      (p. ex. `"100.00"`), analitzat a partir del document
                      presentat al registre. `null` quan no estigui disponible.
                  registered_capital_currency:
                    type: string
                    nullable: true
                    description: >-
                      Codi de moneda ISO 4217 de `registered_capital_amount` (p.
                      ex. `"GBP"`). `null` quan no estigui disponible.
                  website:
                    type: string
                    nullable: true
                  email:
                    type: string
                    format: email
                    nullable: true
                  phone:
                    type: string
                    nullable: true
                  legal_entity_identifier:
                    type: string
                    nullable: true
                  location_of_registration:
                    type: string
                    nullable: true
                  vat_number:
                    type: string
                    nullable: true
                    description: >-
                      Número d'IVA de la UE, quan es recull durant el pas de
                      registre allotjat o s'edita posteriorment.
                  vat_validation_status:
                    type: string
                    enum:
                      - valid
                      - invalid
                      - format_valid
                      - invalid_format
                      - could_not_validate
                      - not_applicable
                    description: >-
                      Resultat de la validació del número d'IVA o, si no n'hi
                      ha, del `tax_number`, en enviar al registre. `valid` /
                      `invalid`: determinat pel registre oficial del país (VIES
                      de la UE, Noruega, Suïssa, Brasil, Colòmbia, Costa Rica,
                      Equador, Paraguai; Polònia també pel seu registre intern
                      d'IVA). `format_valid` / `invalid_format`: determinat per
                      les regles de format i dígit de control del país on no es
                      pot consultar cap registre. `could_not_validate`: el
                      registre no estava disponible. `not_applicable`: sense
                      número, un país sense registre o regles, o una sessió de
                      sandbox.
                  vat_validated_number:
                    type: string
                    nullable: true
                    description: >-
                      El número que s'ha comprovat, tal com el coneix la font
                      (per exemple, el número d'IVA derivat d'un SIREN francès o
                      d'un RSIN holandès). `null` quan no s'ha executat cap
                      comprovació.
                  vat_validation_source:
                    type: string
                    nullable: true
                    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: >-
                      La font que ha determinat `vat_validation_status`: un
                      registre oficial o `format_rules`. `null` quan no s'ha
                      executat cap comprovació.
                  vat_validated_name:
                    type: string
                    nullable: true
                    description: >-
                      Nom registrat amb la font que ha validat el número, quan
                      en revela un. Només s'estableix quan l'estat és `valid`.
                  vat_validated_address:
                    type: string
                    nullable: true
                    description: >-
                      Adreça registrada amb la font que ha validat el número,
                      quan en divulga una. Només s'estableix quan l'estat és
                      `valid`.
                  vat_checked_at:
                    type: string
                    format: date-time
                    nullable: true
                    description: >-
                      Marca de temps de la comprovació. `null` quan no s'ha
                      executat cap comprovació.
                  financial_summary:
                    type: object
                    nullable: true
                  officers:
                    type: array
                    items:
                      type: object
                      properties:
                        uuid:
                          type: string
                          format: uuid
                        name:
                          type: string
                        designation:
                          type: string
                          nullable: true
                        role:
                          type: string
                          nullable: true
                        nationality:
                          type: string
                          nullable: true
                        is_active:
                          type: boolean
                        kyc_status:
                          type: string
                          enum:
                            - Approved
                            - Declined
                            - Pending
                          nullable: true
                        kyc_session_url:
                          type: string
                          format: uri
                          nullable: true
                        first_name:
                          type: string
                          nullable: true
                          description: >-
                            Nom de pila quan el registre el reporta
                            explícitament; no deduït del nom complet.
                        last_name:
                          type: string
                          nullable: true
                          description: >-
                            Cognom quan el registre mercantil l'informa
                            explícitament.
                        address:
                          type: string
                          nullable: true
                          description: >-
                            Adreça de l'administrador notificada pel registre
                            mercantil.
                        appointment_date:
                          type: string
                          nullable: true
                          description: Data en què es va nomenar el directiu.
                          format: date
                        termination_date:
                          type: string
                          nullable: true
                          description: >-
                            Data en què va finalitzar el càrrec, quan s'ha
                            notificat.
                          format: date
                        date_of_birth:
                          type: string
                          nullable: true
                          description: >-
                            Data de naixement completa informada pel registre.
                            Null quan només es coneix l'any o el mes de
                            naixement.
                          format: date
                        date_of_birth_year:
                          type: integer
                          nullable: true
                          minimum: 1
                          maximum: 9999
                          description: >-
                            Any de naixement notificat pel registre, inclòs quan
                            la data completa no està disponible.
                        date_of_birth_month:
                          type: integer
                          nullable: true
                          minimum: 1
                          maximum: 12
                          description: >-
                            Mes de naixement notificat pel registre. Nul quan
                            només es coneix l'any.
                  beneficial_owners:
                    type: array
                    items:
                      type: object
                      properties:
                        uuid:
                          type: string
                          format: uuid
                        name:
                          type: string
                        first_name:
                          type: string
                          nullable: true
                        last_name:
                          type: string
                          nullable: true
                        entity_type:
                          type: string
                          enum:
                            - person
                            - company
                        roles:
                          type: array
                          items:
                            type: string
                        ownership_min_shares:
                          type: string
                          nullable: true
                          description: >-
                            Límit inferior del percentatge de titularitat segons
                            informa el registre. Cadena de text lliure (p. ex.,
                            `"25.00"`, `"50"`); utilitza
                            `effective_ownership_percent` per obtenir un valor
                            numèric processat.
                        ownership_max_shares:
                          type: string
                          nullable: true
                          description: >-
                            Límit superior del percentatge de titularitat segons
                            el registre. Cadena de text lliure; utilitza
                            `effective_ownership_percent` per a un valor numèric
                            analitzat.
                        is_active:
                          type: boolean
                        kyc_status:
                          type: string
                          enum:
                            - Approved
                            - Declined
                            - Pending
                          nullable: true
                        kyc_session_url:
                          type: string
                          format: uri
                          nullable: true
                        effective_ownership_percent:
                          type: number
                          nullable: true
                        company_name:
                          type: string
                          nullable: true
                        registration_number:
                          type: string
                          nullable: true
                        country_of_birth:
                          type: string
                          nullable: true
                        email:
                          type: string
                          nullable: true
                        nationality:
                          type: string
                          nullable: true
                        designation:
                          type: string
                          nullable: true
                        voting_min_shares:
                          type: string
                          nullable: true
                        voting_max_shares:
                          type: string
                          nullable: true
                        date_of_birth:
                          type: string
                          nullable: true
                          description: Data de naixement completa quan s'ha informat.
                          format: date
                        appointment_date:
                          type: string
                          nullable: true
                          description: Data de nomenament quan s'ha informat.
                          format: date
                        shareholding:
                          $ref: '#/components/schemas/KYBRegistryShareholding'
                  addresses:
                    type: array
                    nullable: true
                    description: >-
                      Totes les adreces que indica el registre, en un format
                      canònic. Null si no n'indica cap.
                    items:
                      $ref: '#/components/schemas/KYBRegistryAddress'
                  industries:
                    type: array
                    nullable: true
                    description: >-
                      Les activitats sota les quals el registre classifica
                      l'empresa, en un format canònic. Null si no n'indica cap.
                    items:
                      $ref: '#/components/schemas/KYBRegistryIndustry'
                  accounts:
                    type: object
                    nullable: true
                    additionalProperties: true
                    description: >-
                      Dates de presentació al registre, quan estiguin
                      disponibles. Els informes anuals i les juntes generals
                      utilitzen last_annual_return_date i last_agm_date; són
                      diferents dels comptes financers.
                  registry_data:
                    $ref: '#/components/schemas/KYBRegistryData'
                  user_provided_data:
                    type: object
                    description: Dades confirmades o editades per l'usuari final.
                  confirmed_by_user_at:
                    type: string
                    format: date-time
                    nullable: true
                  last_console_edit_at:
                    type: string
                    format: date-time
                    nullable: true
                  is_editable:
                    type: boolean
                  ownership:
                    $ref: '#/components/schemas/KYBRegistryOwnership'
                  registry_tier:
                    type: string
                    nullable: true
                    description: >-
                      El nivell de registre que ha sol·licitat el flux de
                      treball: `basic`, `shareholders` o `ubo`. També a
                      `ownership.tier_requested`.
                  registry_tier_delivered:
                    type: string
                    nullable: true
                    description: >-
                      El nivell que ha lliurat el registre i que es factura.
                      També a `ownership.tier_delivered`.
                  registry_ownership_status:
                    type: string
                    nullable: true
                    description: >-
                      `not_requested`, `pending`, `delivered`, `not_held` o
                      `unavailable`. També a `ownership.status`.
                  registry_monitoring:
                    type: object
                    nullable: true
                    description: >-
                      El monitor de registre més recent per a l'empresa, o
                      `null` quan no n'existeix cap.
                    properties:
                      uuid:
                        type: string
                        format: uuid
                      status:
                        type: string
                      unavailable_reason:
                        type: string
                        nullable: true
                      enrolled_at:
                        type: string
                        format: date-time
                        nullable: true
                      cancelled_at:
                        type: string
                        format: date-time
                        nullable: true
                      last_bill_date:
                        type: string
                        format: date
                        nullable: true
                      next_bill_date:
                        type: string
                        format: date
                        nullable: true
                      last_event_at:
                        type: string
                        format: date-time
                        nullable: true
                      events_count:
                        type: integer
                      watched_fields:
                        description: Els camps de l'empresa que el monitor supervisa.
              ownership_structure:
                $ref: '#/components/schemas/KYBOwnershipStructure'
              warnings:
                type: array
                items:
                  type: object
        key_people_checks:
          type: array
          nullable: true
          description: >-
            Comprovacions agregades de persones clau. Present només quan
            `session_kind = business`. Cada element utilitza l'estructura de dos
            blocs (`registry`, `submitted`, `ubo_kyc_summary`).
          items:
            type: object
            description: >-
              Comprovació agregada sobre els administradors i titulars reals de
              l'empresa. Utilitza l'estructura `registry` / `submitted`. Present
              només quan session_kind = business.
            properties:
              status:
                type: string
              node_id:
                type: string
                nullable: true
              registry:
                type: object
                description: Parts descobertes mitjançant la comprovació del registre.
                properties:
                  officers:
                    type: array
                    description: >-
                      Administradors descoberts mitjançant la comprovació del
                      registre mercantil, cadascun enriquit amb l'estat de
                      qualsevol sessió de KYC filla i el cribratge AML generats
                      per a ells.
                    items:
                      type: object
                      properties:
                        uuid:
                          type: string
                          format: uuid
                        name:
                          type: string
                          description: >-
                            Nom complet de l'administrador tal com figura al
                            registre mercantil.
                        designation:
                          type: string
                          nullable: true
                          description: >-
                            Designació de text lliure del registre (p. ex.,
                            `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: Rol d'oficial normalitzat.
                        nationality:
                          type: string
                          nullable: true
                        appointment_date:
                          type: string
                          nullable: true
                          description: Data en què es va nomenar el directiu.
                          format: date
                        termination_date:
                          type: string
                          nullable: true
                          description: >-
                            Data en què va finalitzar el càrrec, quan s'ha
                            notificat.
                          format: date
                        is_active:
                          type: boolean
                        address:
                          type: string
                          nullable: true
                          description: >-
                            Adreça de l'administrador notificada pel registre
                            mercantil.
                        aml_status:
                          type: string
                          enum:
                            - Not Finished
                            - Approved
                            - Declined
                            - In Review
                            - Resub Requested
                          nullable: true
                          description: >-
                            Estat del cribratge AML executat per a aquest
                            administrador. `null` quan no s'ha executat cap
                            cribratge AML.
                        kyc_status:
                          type: string
                          enum:
                            - Not Started
                            - In Progress
                            - Approved
                            - Declined
                            - In Review
                            - Expired
                            - Abandoned
                            - Kyc Expired
                            - Resubmitted
                            - Awaiting User
                          nullable: true
                          description: >-
                            Estat del cicle de vida en brut de la sessió de KYC
                            filla generada per a aquest responsable. És l'enum
                            complet d'estats de sessió (no pas un conjunt reduït
                            Approved/Declined/Pending). `null` quan no existeix
                            cap sessió de KYC filla.
                        kyc_session_url:
                          type: string
                          format: uri
                          nullable: true
                          description: >-
                            URL per compartir de la sessió de KYC filla. `null`
                            quan no existeix cap sessió filla.
                        kyc_session_id:
                          type: string
                          format: uuid
                          nullable: true
                          description: >-
                            ID de sessió de la sessió KYC filla. Transmet-lo a
                            aquest mateix endpoint de decisió per obtenir
                            l'informe KYC complet de la persona. `null` quan no
                            existeix cap sessió filla.
                        verification_workflow_type:
                          type: string
                          nullable: true
                          description: >-
                            Tipus base de flux de treball de la sessió filla (p.
                            ex., `kyc`). `null` per a fluxos de treball basats
                            en grafs o quan no existeix cap sessió filla.
                        verification_workflow_id:
                          type: string
                          format: uuid
                          nullable: true
                          description: >-
                            ID del flux de treball utilitzat per la sessió
                            filla. `null` quan no existeix cap sessió filla.
                        verification_workflow_label:
                          type: string
                          nullable: true
                          description: >-
                            Etiqueta fàcil de llegir del flux de treball de la
                            sessió filla. `null` quan no s'ha establert.
                        verification_workflow_features:
                          type: array
                          nullable: true
                          description: >-
                            Progrés per funcionalitat de la sessió de
                            verificació filla, p. ex. `[{"feature":
                            "ID_VERIFICATION", "status": "Approved"}]`. `null`
                            quan la sessió filla no té cap llista de
                            funcionalitats que es puguin resoldre.
                          items:
                            type: object
                            properties:
                              feature:
                                type: string
                                description: >-
                                  Nom visible de la funcionalitat (p. ex.
                                  `ID_VERIFICATION`, `LIVENESS`, `AML`).
                              status:
                                type: string
                                enum:
                                  - Not Finished
                                  - Approved
                                  - Declined
                                  - In Review
                                  - Resub Requested
                                description: >-
                                  Estat a nivell de funcionalitat dins de la
                                  sessió filla.
                        didit_internal_id:
                          type: string
                          nullable: true
                          description: >-
                            Identificador intern estable de la persona
                            verificada darrere de la sessió filla — útil per
                            enllaçar entre sessions. `null` quan no existeix cap
                            sessió filla o l'usuari encara no s'ha resolt.
                        kyc_document_type:
                          type: string
                          nullable: true
                          description: >-
                            Tipus de document presentat a la sessió de KYC filla
                            (p. ex., `P`, `ID`, `DL`). `null` fins que la sessió
                            filla tingui un resultat de verificació d'identitat.
                        kyc_nationality:
                          type: string
                          nullable: true
                          description: >-
                            Nacionalitat extreta del document a la sessió KYC
                            filla. `null` fins que estigui disponible.
                        kyc_liveness_passed:
                          type: boolean
                          nullable: true
                          description: >-
                            Indica si la prova de vida de la sessió KYC filla
                            s'ha superat. `null` quan no s'ha executat cap prova
                            de vida.
                        kyc_verified_at:
                          type: string
                          format: date-time
                          nullable: true
                          description: >-
                            Quan la sessió de KYC filla va assolir `Approved`.
                            `null` mentre la sessió filla té qualsevol altre
                            estat.
                        kyc_aml_categories:
                          type: object
                          nullable: true
                          description: >-
                            Resum per categoria derivat de les coincidències AML
                            de la persona. `null` quan no hi ha coincidències.
                          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:
                          type: string
                          nullable: true
                          description: >-
                            Marca de temps ISO 8601 de l'última notificació
                            d'invitació de verificació enviada per a la sessió
                            filla d'aquesta persona. `null` quan no se n'ha
                            enviat cap.
                        first_name:
                          type: string
                          nullable: true
                          description: >-
                            Nom de pila quan el registre el reporta
                            explícitament; no deduït del nom complet.
                        last_name:
                          type: string
                          nullable: true
                          description: >-
                            Cognom quan el registre mercantil l'informa
                            explícitament.
                        date_of_birth:
                          type: string
                          nullable: true
                          description: >-
                            Data de naixement completa informada pel registre.
                            Null quan només es coneix l'any o el mes de
                            naixement.
                          format: date
                        date_of_birth_year:
                          type: integer
                          nullable: true
                          minimum: 1
                          maximum: 9999
                          description: >-
                            Any de naixement notificat pel registre, inclòs quan
                            la data completa no està disponible.
                        date_of_birth_month:
                          type: integer
                          nullable: true
                          minimum: 1
                          maximum: 12
                          description: >-
                            Mes de naixement notificat pel registre. Nul quan
                            només es coneix l'any.
                  beneficial_owners:
                    type: array
                    description: >-
                      Titulars reals descoberts mitjançant la comprovació del
                      registre, cadascun enriquit amb l'estat de qualsevol
                      sessió de KYC filla i cribratge AML generats per a ells.
                    items:
                      type: object
                      properties:
                        uuid:
                          type: string
                          format: uuid
                        name:
                          type: string
                          description: >-
                            Nom complet del titular real (o nom de l'empresa per
                            a UBOs corporatius).
                        first_name:
                          type: string
                          nullable: true
                        last_name:
                          type: string
                          nullable: true
                        date_of_birth:
                          type: string
                          nullable: true
                          description: Data de naixement completa quan s'ha informat.
                          format: date
                        country_of_birth:
                          type: string
                          nullable: true
                        email:
                          type: string
                          nullable: true
                        company_name:
                          type: string
                          nullable: true
                        registration_number:
                          type: string
                          nullable: true
                        entity_type:
                          type: string
                          enum:
                            - person
                            - company
                        nationality:
                          type: string
                          nullable: true
                        designation:
                          type: string
                          nullable: true
                        roles:
                          type: array
                          description: >-
                            Noms de rol que té aquest titular, p. ex., `["ubo",
                            "shareholder"]`.
                          items:
                            type: string
                        ownership_min_shares:
                          type: string
                          nullable: true
                          description: >-
                            Límit inferior del percentatge de titularitat segons
                            informa el registre. Cadena de text lliure (p. ex.,
                            `"25"`, `"25-50%"`); utilitza
                            `effective_ownership_percent` per obtenir un valor
                            numèric processat.
                        ownership_max_shares:
                          type: string
                          nullable: true
                          description: >-
                            Límit superior del percentatge de titularitat segons
                            el registre. Cadena de text lliure; utilitza
                            `effective_ownership_percent` per a un valor numèric
                            analitzat.
                        is_active:
                          type: boolean
                        aml_status:
                          type: string
                          enum:
                            - Not Finished
                            - Approved
                            - Declined
                            - In Review
                            - Resub Requested
                          nullable: true
                          description: >-
                            Estat del cribratge AML executat per a aquest
                            titular real. `null` quan no s'ha executat cap
                            cribratge AML.
                        kyc_status:
                          type: string
                          enum:
                            - Not Started
                            - In Progress
                            - Approved
                            - Declined
                            - In Review
                            - Expired
                            - Abandoned
                            - Kyc Expired
                            - Resubmitted
                            - Awaiting User
                          nullable: true
                          description: >-
                            Estat del cicle de vida en brut de la sessió de KYC
                            filla generada per a aquest titular real. És l'enum
                            complet d'estats de sessió (no pas un conjunt reduït
                            Approved/Declined/Pending). `null` quan no existeix
                            cap sessió de KYC filla.
                        kyc_session_url:
                          type: string
                          format: uri
                          nullable: true
                          description: >-
                            URL per compartir de la sessió de KYC filla. `null`
                            quan no existeix cap sessió filla.
                        kyc_session_id:
                          type: string
                          format: uuid
                          nullable: true
                          description: >-
                            ID de sessió de la sessió KYC filla. Transmet-lo a
                            aquest mateix endpoint de decisió per obtenir
                            l'informe KYC complet de la persona. `null` quan no
                            existeix cap sessió filla.
                        verification_workflow_type:
                          type: string
                          nullable: true
                          description: >-
                            Tipus base de flux de treball de la sessió filla (p.
                            ex., `kyc`). `null` per a fluxos de treball basats
                            en grafs o quan no existeix cap sessió filla.
                        verification_workflow_id:
                          type: string
                          format: uuid
                          nullable: true
                          description: >-
                            ID del flux de treball utilitzat per la sessió
                            filla. `null` quan no existeix cap sessió filla.
                        verification_workflow_label:
                          type: string
                          nullable: true
                          description: >-
                            Etiqueta fàcil de llegir del flux de treball de la
                            sessió filla. `null` quan no s'ha establert.
                        verification_workflow_features:
                          type: array
                          nullable: true
                          description: >-
                            Progrés per funcionalitat de la sessió de
                            verificació filla, p. ex. `[{"feature":
                            "ID_VERIFICATION", "status": "Approved"}]`. `null`
                            quan la sessió filla no té cap llista de
                            funcionalitats que es puguin resoldre.
                          items:
                            type: object
                            properties:
                              feature:
                                type: string
                                description: >-
                                  Nom visible de la funcionalitat (p. ex.
                                  `ID_VERIFICATION`, `LIVENESS`, `AML`).
                              status:
                                type: string
                                enum:
                                  - Not Finished
                                  - Approved
                                  - Declined
                                  - In Review
                                  - Resub Requested
                                description: >-
                                  Estat a nivell de funcionalitat dins de la
                                  sessió filla.
                        didit_internal_id:
                          type: string
                          nullable: true
                          description: >-
                            Identificador intern estable de la persona
                            verificada darrere de la sessió filla — útil per
                            enllaçar entre sessions. `null` quan no existeix cap
                            sessió filla o l'usuari encara no s'ha resolt.
                        kyc_document_type:
                          type: string
                          nullable: true
                          description: >-
                            Tipus de document presentat a la sessió de KYC filla
                            (p. ex., `P`, `ID`, `DL`). `null` fins que la sessió
                            filla tingui un resultat de verificació d'identitat.
                        kyc_nationality:
                          type: string
                          nullable: true
                          description: >-
                            Nacionalitat extreta del document a la sessió KYC
                            filla. `null` fins que estigui disponible.
                        kyc_liveness_passed:
                          type: boolean
                          nullable: true
                          description: >-
                            Indica si la prova de vida de la sessió KYC filla
                            s'ha superat. `null` quan no s'ha executat cap prova
                            de vida.
                        kyc_verified_at:
                          type: string
                          format: date-time
                          nullable: true
                          description: >-
                            Quan la sessió de KYC filla va assolir `Approved`.
                            `null` mentre la sessió filla té qualsevol altre
                            estat.
                        kyc_aml_categories:
                          type: object
                          nullable: true
                          description: >-
                            Resum per categoria derivat de les coincidències AML
                            de la persona. `null` quan no hi ha coincidències.
                          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:
                          type: string
                          nullable: true
                          description: >-
                            Marca de temps ISO 8601 de l'última notificació
                            d'invitació de verificació enviada per a la sessió
                            filla d'aquesta persona. `null` quan no se n'ha
                            enviat cap.
                        child_beneficial_owners:
                          type: array
                          description: >-
                            Per a titulars reals corporatius: els titulars reals
                            de la mateixa entitat propietària, com a objectes en
                            brut extrets del registre mercantil. Matriu buida
                            quan no sigui aplicable.
                          items:
                            type: object
                        effective_ownership_percent:
                          type: number
                          nullable: true
                          description: >-
                            Percentatge de titularitat numèric analitzat: el
                            límit màxim quan estigui disponible; en cas
                            contrari, el límit mínim. `null` si no s'ha pogut
                            analitzar cap dels dos límits.
                        voting_min_shares:
                          type: string
                          nullable: true
                        voting_max_shares:
                          type: string
                          nullable: true
                        appointment_date:
                          type: string
                          nullable: true
                          description: Data de nomenament quan s'ha informat.
                          format: date
              submitted:
                type: object
                description: >-
                  Parts enviades per l'administrador de l'empresa durant el flux
                  de Persones clau (files BusinessParty en què source=USER).
                properties:
                  parties:
                    type: array
                    items:
                      type: object
                      description: >-
                        Part enviada per l'administrador de l'empresa a través
                        del flux de Persones clau (source=USER).
                      properties:
                        uuid:
                          type: string
                          format: uuid
                        entity_type:
                          type: string
                          enum:
                            - person
                            - company
                        source:
                          type: string
                          enum:
                            - USER
                          description: >-
                            Sempre `USER` aquí — aquest grup només conté parts
                            introduïdes o confirmades per l'usuari final en el
                            flux de persones clau (les persones descobertes al
                            registre apareixen a `registry`).
                        name:
                          type: string
                        first_name:
                          type: string
                          nullable: true
                        last_name:
                          type: string
                          nullable: true
                        company_name:
                          type: string
                          nullable: true
                        registration_number:
                          type: string
                          nullable: true
                        email:
                          type: string
                          format: email
                          nullable: true
                        nationality:
                          type: string
                          nullable: true
                          description: >-
                            Nacionalitat per a persones; país de constitució per
                            a parts que siguin empreses.
                        phone_number:
                          type: string
                          nullable: true
                        date_of_birth:
                          type: string
                          format: date
                          nullable: true
                        position:
                          type: string
                          nullable: true
                          description: >-
                            Càrrec o posició de text lliure (només per a
                            persones).
                        custom_fields:
                          type: object
                          description: >-
                            Camps personalitzats definits pel flux de treball i
                            recollits per a aquesta part; les claus estan
                            definides pels descriptors de camp de persones clau
                            del flux de treball.
                        is_active:
                          type: boolean
                        is_skipped:
                          type: boolean
                          description: >-
                            Cert quan l'usuari final ha omès la verificació per
                            a aquesta part (només és possible quan el rol permet
                            ometre-la).
                        requires_verification:
                          type: boolean
                          description: >-
                            Cert quan es requereix una subsessió filla de KYC /
                            KYB per a aquesta part en funció de la configuració
                            de rols i els llindars de titularitat.
                        roles:
                          type: array
                          description: >-
                            Tots els rols que té aquesta part, cadascun amb els
                            seus propis percentatges de titularitat i de vot. No
                            hi ha cap `role`/`ownership_percent` escalar a la
                            part mateixa.
                          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:
                                type: number
                                nullable: true
                              voting_percent:
                                type: number
                                nullable: true
                        kyc_session_id:
                          type: string
                          format: uuid
                          nullable: true
                          description: >-
                            ID de la sessió KYC filla per a les parts de persona
                            física que requereixen verificació. `null` en cas
                            contrari.
                        kyc_session_status:
                          type: string
                          enum:
                            - Not Started
                            - In Progress
                            - Approved
                            - Declined
                            - In Review
                            - Expired
                            - Abandoned
                            - Kyc Expired
                            - Resubmitted
                            - Awaiting User
                          nullable: true
                          description: >-
                            Estat del cicle de vida de la sessió de KYC filla.
                            `null` quan no hi ha cap sessió de KYC filla.
                        kyc_session_url:
                          type: string
                          format: uri
                          nullable: true
                        kyb_sub_session_id:
                          type: string
                          format: uuid
                          nullable: true
                          description: >-
                            ID de la subsessió KYB filla per a les parts
                            corporatives que requereixen verificació. `null` en
                            cas contrari.
                        kyb_sub_session_status:
                          type: string
                          enum:
                            - Not Started
                            - In Progress
                            - Approved
                            - Declined
                            - In Review
                            - Expired
                            - Abandoned
                            - Kyc Expired
                            - Resubmitted
                            - Awaiting User
                          nullable: true
                          description: >-
                            Estat del cicle de vida de la subsessió de KYB
                            filla. `null` quan no hi ha cap subsessió.
                        kyb_sub_session_url:
                          type: string
                          format: uri
                          nullable: true
                          description: >-
                            URL per compartir de la subsessió de KYB filla.
                            `null` quan no existeix cap subsessió.
                        verification_workflow_type:
                          type: string
                          nullable: true
                          description: >-
                            Tipus base de flux de treball de la sessió filla (es
                            prioritza la sessió de KYC, recorrent a la subsessió
                            de KYB si no n'hi ha). `null` per a fluxos de
                            treball basats en grafs o quan no existeix cap
                            sessió filla.
                        verification_workflow_id:
                          type: string
                          format: uuid
                          nullable: true
                          description: >-
                            ID del flux de treball utilitzat per la sessió
                            filla. `null` quan no existeix cap sessió filla.
                        verification_workflow_label:
                          type: string
                          nullable: true
                          description: >-
                            Etiqueta fàcil de llegir del flux de treball de la
                            sessió filla. `null` quan no s'ha establert.
                        verification_workflow_features:
                          type: array
                          nullable: true
                          description: >-
                            Progrés per funcionalitat de la sessió de
                            verificació filla, p. ex. `[{"feature":
                            "ID_VERIFICATION", "status": "Approved"}]`. `null`
                            quan la sessió filla no té cap llista de
                            funcionalitats que es puguin resoldre.
                          items:
                            type: object
                            properties:
                              feature:
                                type: string
                                description: >-
                                  Nom visible de la funcionalitat (p. ex.
                                  `ID_VERIFICATION`, `LIVENESS`, `AML`).
                              status:
                                type: string
                                enum:
                                  - Not Finished
                                  - Approved
                                  - Declined
                                  - In Review
                                  - Resub Requested
                                description: >-
                                  Estat a nivell de funcionalitat dins de la
                                  sessió filla.
                        didit_internal_id:
                          type: string
                          nullable: true
                          description: >-
                            Identificador intern estable de la persona
                            verificada darrere de la sessió filla. `null` quan
                            no s'ha resolt.
              ubo_kyc_summary:
                type: object
                nullable: true
                description: >-
                  Progrés agregat de KYC dels titulars reals, o null quan cap
                  titular real té sessions de KYC enllaçades.
                properties:
                  total:
                    type: integer
                  approved:
                    type: integer
                  flagged:
                    type: integer
                    description: >-
                      Titulars reals (UBO) el KYC dels quals està en estat
                      Rebutjada o en revisió.
                  pending:
                    type: integer
              warnings:
                type: array
                items:
                  type: object
        document_verifications:
          type: array
          nullable: true
          description: >-
            Comprovacions de verificació de documents agrupades per node del
            flux de treball. Només presents quan `session_kind = business`.
          items:
            type: object
            description: >-
              Documents agrupats per node del flux de treball. Només presents
              quan session_kind = business.
            properties:
              status:
                type: string
              node_id:
                type: string
                nullable: true
              items:
                type: array
                items:
                  type: object
                  properties:
                    uuid:
                      type: string
                      format: uuid
                    document_type:
                      type: string
                      enum:
                        - LEGAL_PRESENCE
                        - COMPANY_DETAILS
                        - OWNERSHIP_STRUCTURE
                        - REPRESENTATIVES_AUTHORIZATION
                        - OTHER
                      nullable: true
                      description: >-
                        Grup de documents de KYB d'alt nivell en què s'ha
                        classificat el fitxer. `null` mentre no estigui
                        classificat.
                    document_subtype:
                      type: string
                      nullable: true
                      description: >-
                        Subtipus específic detectat per OCR (p. ex.
                        `CERTIFICATE_OF_INCORPORATION`, `SHAREHOLDER_REGISTRY`);
                        `UNKNOWN` si l'OCR no ha pogut classificar el document
                        amb seguretat.
                    document_group:
                      type: string
                      enum:
                        - LEGAL_PRESENCE
                        - COMPANY_DETAILS
                        - OWNERSHIP_STRUCTURE
                        - REPRESENTATIVES_AUTHORIZATION
                        - OTHER
                      nullable: true
                      description: >-
                        Àlies de `document_type` — el nom de grup utilitzat per
                        `groups` i `required_groups`.
                    file_url:
                      type: string
                      format: uri
                      nullable: true
                      description: >-
                        Enllaç presignat de curta durada al fitxer pujat. `null`
                        per als marcadors de posició de sol·licitud de documents
                        creats per analistes (`is_requested = true`) que encara
                        no s'han completat.
                    original_filename:
                      type: string
                      nullable: true
                      description: Nom de fitxer tal com l'ha penjat l'usuari o analista.
                    file_size:
                      type: integer
                      nullable: true
                      description: Mida del fitxer en bytes.
                    status:
                      type: string
                      enum:
                        - Not Finished
                        - Approved
                        - Declined
                        - In Review
                        - Resub Requested
                      description: Estat de verificació per document.
                    created_at:
                      type: string
                      format: date-time
                    cross_check_result:
                      type: object
                      nullable: true
                      description: >-
                        Comprovació creuada dels camps del document extrets per
                        OCR amb el perfil de l'empresa al registre mercantil. Un
                        objecte amb les seccions `critical`, `non_critical` i
                        `people`, cadascuna assignant un nom de camp (p. ex.
                        `company_name`, `registration_number`,
                        `incorporation_date`, `registered_address`) a un
                        registre de comparació com ara `{"document": "...",
                        "registry": "...", "match": true, "score": 0.97}`.
                        `null` quan el document no tenia dades d'OCR o no hi
                        havia cap empresa del registre mercantil amb la qual
                        comparar.
                    document_metadata:
                      type: object
                      nullable: true
                      description: >-
                        Metadades extretes del document corporatiu pujat. Quan
                        l'extracció de metadades ha estat satisfactòria, totes
                        les 16 claus estan sempre presents (els valors
                        individuals són `null` quan no són aplicables al tipus
                        de fitxer); tot l'objecte és `null` quan no s'ha pogut
                        extreure res. Per a fitxers PDF, `overlay_manipulation`
                        conté l'anàlisi forense de text superposat.
                      properties:
                        file_size:
                          type: integer
                          nullable: true
                          description: Mida del document.
                        content_type:
                          type: string
                          nullable: true
                          description: Tipus de contingut del document.
                        creation_date:
                          type: string
                          nullable: true
                          description: Data en què es va crear el document.
                        modified_date:
                          type: string
                          nullable: true
                          description: Data en què es va modificar el document.
                        creator:
                          type: string
                          nullable: true
                          description: >-
                            Eina o usuari d'autoria registrat a les metadades
                            del fitxer (PDF `Creator`).
                        producer:
                          type: string
                          nullable: true
                          description: >-
                            Programari que ha generat el fitxer (`Producer` del
                            PDF).
                        software:
                          type: string
                          nullable: true
                          description: >-
                            Programari d'edició registrat a les metadades del
                            fitxer.
                        encryption:
                          type: string
                          nullable: true
                          description: Esquema de xifratge del fitxer, quan està xifrat.
                        is_signed:
                          type: boolean
                          nullable: true
                          description: Indica si el document conté una signatura digital.
                        is_tampered:
                          type: boolean
                          nullable: true
                          description: >-
                            Indica si la signatura digital ha fallat la
                            validació (modificació posterior a la signatura).
                        signature_info:
                          type: object
                          nullable: true
                          description: >-
                            Detalls de la signatura o signatures digitals, quan
                            n'hi hagi.
                        exif_original_date:
                          type: string
                          nullable: true
                          description: >-
                            Data de captura original EXIF, per a càrregues
                            d'imatges.
                        exif_digitized_date:
                          type: string
                          nullable: true
                          description: >-
                            Data de digitalització EXIF, per a càrregues
                            d'imatges.
                        processed_by_known_editor:
                          type: boolean
                          nullable: true
                          description: >-
                            Indica si les metadades indiquen que el fitxer ha
                            passat per un editor d'imatges/PDF conegut.
                        has_different_creation_mod_date:
                          type: boolean
                          nullable: true
                          description: >-
                            Indica si les dates de creació i modificació
                            difereixen — un possible senyal (però no concloent)
                            d'edició.
                        overlay_manipulation:
                          type: object
                          nullable: true
                          description: >-
                            Anàlisi forense de PDF per sospita de manipulació de
                            text superposat. Null quan no s'ha trobat cap indici
                            de manipulació per superposició o el document no era
                            un PDF.
                          properties:
                            detected:
                              type: boolean
                              description: >-
                                Indica si s'han detectat indicis de manipulació
                                de text superposat.
                            analyzed:
                              type: boolean
                              description: Indica si s'ha pogut analitzar el PDF.
                            analysis_incomplete:
                              type: boolean
                              description: >-
                                És present i té el valor true només quan el
                                fitxer no s'ha pogut verificar completament. El
                                que sí que s'ha verificat conserva les seves
                                troballes quan és possible, i el document mostra
                                l'advertència de substitució de text no
                                demostrada.
                            signals:
                              type: array
                              items:
                                type: string
                              description: >-
                                Senyals forenses que s'han activat, com ara
                                duplicate_font_subset o glyph_fragmentation.
                            manipulated_regions:
                              type: array
                              description: >-
                                Àrees amb sospita de manipulació en coordenades
                                de pàgina PDF.
                              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:
                      type: string
                      nullable: true
                      description: >-
                        Etiqueta o motiu proporcionat per l'analista per a una
                        sol·licitud de document. `null` per a pujades habituals.
                    is_requested:
                      type: boolean
                      description: >-
                        Cert per als marcadors de posició de sol·licitud de
                        documents creats per analistes que estan pendents de
                        pujada.
                    ocr_data:
                      type: object
                      nullable: true
                    is_console_upload:
                      type: boolean
                      description: >-
                        Cert per a documents pujats des de la consola en lloc
                        del flux d'usuari final. Les pujades des de la consola
                        mai canvien l'estat agregat de la funcionalitat.
                    is_confirmed:
                      type: boolean
                      description: >-
                        Les càrregues des de la consola comencen com a `false` i
                        canvien a `true` un cop l'administrador les confirma;
                        les càrregues dels usuaris finals sempre són `true`.
              groups:
                type: object
                description: >-
                  Comptadors de progrés per grup indexats pel nom del grup (p.
                  ex., 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: >-
                        Marcadors de posició sol·licitats sense cap fitxer
                        penjat encara.
              required_groups:
                type: array
                items:
                  type: string
              warnings:
                type: array
                items:
                  type: object
        environment:
          type: string
          enum:
            - live
            - sandbox
          description: >-
            Si la sessió s'ha creat mitjançant una aplicació de producció
            (`live`) o una aplicació de sandbox (`sandbox`). Les sessions de
            sandbox són gratuïtes, completament simulades i mai no facturen
            crèdits.
        sandbox_scenario:
          type: string
          nullable: true
          description: >-
            L'escenari de sandbox amb el qual es va crear la sessió. `null` per
            a sessions de producció i per a sessions de sandbox creades sense
            cap escenari.
        resubmissions:
          type: array
          description: >-
            Retornat només amb `include=resubmissions`, per a sessions d'usuari
            i d'empresa. Una entrada per sol·licitud de reenviament, començant
            per la més antiga. Cada entrada conté els resultats que els passos
            tornats a enviar van retornar abans de la sol·licitud, de manera que
            les trameses anteriors es mantenen consultables. Si s'elimina la
            sessió, s'eliminen totes les trameses.
          items:
            type: object
            properties:
              number:
                type: integer
                description: >-
                  1 per al primer reenviament de la sessió, 2 per al segon, i
                  així successivament.
              created_at:
                type: string
                format: date-time
                description: Quan es va sol·licitar el reenviament.
              previous_status:
                type: string
                description: L'estat de la sessió just abans de la sol·licitud.
              nodes:
                type: array
                description: Els passos del flux de treball retornats a l'usuari.
                items:
                  type: object
                  properties:
                    node_id:
                      type: string
                    feature:
                      type: string
              reasons:
                type: object
                nullable: true
                additionalProperties:
                  type: string
                description: El motiu indicat per a cada pas, indexat per `node_id`.
              requested_by:
                type: object
                nullable: true
                description: Qui ha sol·licitat el reenviament.
                properties:
                  name:
                    type: string
                  email:
                    type: string
                  type:
                    type: string
              results:
                type: object
                additionalProperties: true
                description: >-
                  El que van retornar els passos reenviats abans de la
                  sol·licitud, sota les mateixes claus i amb la mateixa
                  estructura que els resultats actuals d'aquesta resposta
                  (`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`; per a sessions
                  d'empresa també `document_verifications`). Només apareixen les
                  claus dels passos que es van reenviar.
        biometric_consent:
          type: object
          nullable: true
          description: >-
            Si la sessió ha requerit consentiment biomètric explícit abans d'una
            captura facial, per què i l'evidència de la resposta. Només per a
            sessions de Verificació d'usuaris (KYC); el mateix objecte es troba
            a la `decision` dels webhooks de sessió. `null` quan la sessió no
            s'ha avaluat mai, per exemple en un flux de treball sense captura
            facial. Els camps sense cap valor registrat són `null`. Un SDK natiu
            inferior a 4.10.0, o un que no informi de la seva versió, no pot
            mostrar el pas de consentiment: les seves captures facials
            s'executen com abans, i una sessió que requeria consentiment informa
            llavors de `status: "pending"` amb `reason:
            "BIOMETRIC_CONSENT_UNSUPPORTED_SDK"`. Consulta [Consentiment
            biomètric](/ca/getting-started/biometric-consent).
          properties:
            required:
              type: boolean
              description: >-
                Whether the session must collect explicit biometric consent.
                Never goes back to `false`.
            trigger:
              type: string
              nullable: true
              enum:
                - declared_state
                - ip_state
                - ip_unknown
                - document_issuer
                - forced
                - customer_collected
              description: >-
                Per què es requereix el consentiment o com s'ha satisfet.
                `declared_state`: has declarat un estat cobert (`user_state`, o
                una adreça dels EUA a `expected_details`). `ip_state`: la IP de
                la persona es troba en un estat cobert (Illinois, Texas,
                Colorado). `ip_unknown`: les proves situen la persona als EUA,
                però no se'n pot determinar l'estat (la IP és als EUA sense
                estat, o no es pot localitzar mentre que les teves dades o el
                document situen la persona als EUA). `document_issuer`: el
                document d'identitat ha estat emès per un estat cobert.
                `forced`: el mode de l'aplicació és Always.
                `customer_collected`: has enviat `biometric_consent` en crear la
                sessió. `null` mentre no sigui obligatori.
            status:
              type: string
              enum:
                - not_required
                - pending
                - given
                - declined
              description: >-
                `not_required`; `pending` (requerit i no facilitat: la persona
                encara no ha respost, o `reason` n'explica el motiu pel qual no
                s'ha recollit); `given`; `declined` (s'ha registrat un rebuig i
                la sessió ha finalitzat com a `Declined`; actualment cap
                pantalla de Didit ofereix un rebuig).
            given_at:
              type: string
              format: date-time
              nullable: true
              description: >-
                Quan es va donar el consentiment. Per a `customer_collected`, el
                `given_at` que vas enviar.
            declined_at:
              type: string
              format: date-time
              nullable: true
              description: Quan es va registrar un rebuig.
            text_version:
              type: string
              nullable: true
              description: >-
                Identificador de versió del text de consentiment al qual la
                persona ha respost, o el que has enviat.
            text_hash:
              type: string
              nullable: true
              description: >-
                SHA-256 (hex) del text exacte de consentiment mostrat, en
                l'idioma en què s'ha mostrat.
            locale:
              type: string
              nullable: true
              description: Idioma en què es va mostrar el text de consentiment.
            policy_url:
              type: string
              format: uri
              nullable: true
              description: >-
                La política de dades biomètriques a la qual enllaçava el pas de
                consentiment.
            step:
              type: string
              nullable: true
              description: >-
                Pas del flux de treball en què es trobava la sessió quan la
                persona ha respost, per exemple `LIVENESS`.
            node_id:
              type: string
              nullable: true
              description: >-
                Node del graf del flux de treball en què es trobava la sessió
                quan la persona ha respost.
            ip_address:
              type: string
              nullable: true
              description: IP des d'on s'ha rebut la resposta.
            ip_country_code:
              type: string
              nullable: true
              description: País ISO 3166-1 alpha-2 de la IP de la resposta.
            ip_state:
              type: string
              nullable: true
              description: >-
                Subdivisió ISO 3166-2 de la IP de la resposta, per exemple
                `US-IL`.
            ip_city:
              type: string
              nullable: true
              description: Ciutat de la IP de la resposta.
            user_agent:
              type: string
              nullable: true
              description: Agent d'usuari de la sol·licitud de la resposta.
            detected_ip_address:
              type: string
              nullable: true
              description: >-
                La IP de la persona des de la qual es va avaluar el requisit per
                última vegada. Pot diferir d'`ip_address` quan la persona ha
                respost des d'un altre dispositiu.
            detected_country_code:
              type: string
              nullable: true
              description: País ISO 3166-1 alpha-2 de la IP detectada.
            detected_state:
              type: string
              nullable: true
              description: Subdivisió ISO 3166-2 de la IP detectada.
            detected_city:
              type: string
              nullable: true
              description: Ciutat de la IP detectada.
            declared_state:
              type: string
              nullable: true
              description: >-
                Subdivisió ISO 3166-2 que has declarat: `user_state`, o l'estat
                d'una adreça dels EUA a `expected_details`.
            document_state:
              type: string
              nullable: true
              description: >-
                Subdivisió ISO 3166-2 que ha emès el document d'identitat,
                llegida durant la captura de l'ID.
            jurisdictions:
              type: array
              items:
                type: string
              description: >-
                Estats dels EUA (codis USPS, per exemple `IL`) la legislació
                biomètrica dels quals empara la persona. `US` quan les proves
                situen la persona als EUA però no se'n coneix cap estat concret.
                Buit quan no n'aplica cap.
            retention_months:
              type: integer
              nullable: true
              description: >-
                El límit de conservació biomètrica més curt, en mesos, entre
                `jurisdictions`. `null` quan no se n'aplica cap.
            reason:
              type: string
              nullable: true
              enum:
                - BIOMETRIC_CONSENT_UNSUPPORTED_SDK
                - BIOMETRIC_CONSENT_DECLINED
              description: >-
                `BIOMETRIC_CONSENT_UNSUPPORTED_SDK`: es requeria consentiment i
                un SDK natiu inferior a 4.10.0, o un que no va informar de la
                seva versió, ha capturat una cara sense el pas de consentiment;
                `status` roman en `pending`, o `given` si la persona hi ha
                acceptat més endavant en el flux allotjat.
                `BIOMETRIC_CONSENT_DECLINED`: s'ha registrat un rebuig
                (substitueix el motiu de l'SDK). `null` en cas contrari, i
                sempre `null` quan la sessió no requeria consentiment.
            decline_reason:
              type: string
              nullable: true
              enum:
                - BIOMETRIC_CONSENT_DECLINED
              description: >-
                `BIOMETRIC_CONSENT_DECLINED` quan un rebuig registrat ha
                finalitzat la sessió; altrament, `null`.
            face_data_deleted_at:
              type: string
              format: date-time
              nullable: true
              description: >-
                Quan el rebuig va eliminar les imatges facials, els vídeos i les
                plantilles facials de la sessió. `null` tret que s'hagi
                registrat un rebuig.
        investigator:
          $ref: '#/components/schemas/InvestigatorBlock'
        biometric_retention:
          $ref: '#/components/schemas/BiometricRetention'
        fraud_check:
          type: object
          nullable: true
          additionalProperties: true
          description: >-
            El resultat d'una crida a la Fraud Check API. `null` per a qualsevol
            altra sessió.
        full_session_video:
          type: string
          format: uri
          nullable: true
          description: >-
            URL temporal de la gravació completa de la sessió. Només es retorna
            quan la teva organització grava el vídeo de la sessió completa.
        full_session_video_recorded_at:
          type: string
          format: date-time
          nullable: true
          description: >-
            Quan es va fer la gravació de la sessió completa. Es retorna només
            quan la teva organització grava el vídeo de la sessió completa.
    AddressValidationResult:
      type: object
      description: >-
        El resultat d'una Address Validation: si l'adreça existeix i la seva
        forma normalitzada. Només confirma l'adreça; mai vincula l'adreça a una
        persona.
      required:
        - status
        - verification_level
        - address
        - formatted_address
        - latitude
        - longitude
      properties:
        status:
          type: string
          enum:
            - verified
            - partially_verified
            - not_verified
            - unavailable
          description: >-
            `verified`: l'adreça s'ha confirmat fins a l'edifici (o el pis o
            l'apartat de correus). `partially_verified`: s'ha confirmat només
            fins al carrer, o fins al nivell més precís que tenen les dades
            postals de referència per a aquest lloc. `not_verified`: només ha
            coincidit la regió o la ciutat, o no ha coincidit res.
            `unavailable`: la validació no s'ha pogut executar (per exemple, el
            servei de referència no ha respost); no es cobra i no afecta mai una
            verificació.
        verification_level:
          type: string
          nullable: true
          enum:
            - administrative_area
            - locality
            - thoroughfare
            - premise
            - delivery_point
            - null
          description: >-
            El nivell més precís amb què s'ha fet coincidir l'adreça. `null`
            quan no hi ha cap coincidència o `status` és `unavailable`.
        address:
          type: object
          nullable: true
          description: L'adreça normalitzada. `null` quan `status` és `unavailable`.
          properties:
            address_line_1:
              type: string
              nullable: true
              description: >-
                Primera línia de lliurament, escrita de la manera habitual del
                país.
              example: 1600 Amphitheatre Pkwy
            address_line_2:
              type: string
              nullable: true
              description: >-
                Segona línia de lliurament (un pis, edifici o barri), quan
                l'adreça en tingui.
            city:
              type: string
              nullable: true
              example: Mountain View
            region:
              type: string
              nullable: true
              description: Estat, província o regió.
              example: CA
            postal_code:
              type: string
              nullable: true
              example: 94043-1351
            country:
              type: string
              nullable: true
              description: Codi de país ISO 3166-1 alfa-2.
              example: US
        formatted_address:
          type: string
          nullable: true
          description: L'adreça normalitzada en una línia.
          example: 1600 Amphitheatre Pkwy, Mountain View CA 94043-1351
        latitude:
          type: number
          nullable: true
          example: 37.422022
        longitude:
          type: number
          nullable: true
          example: -122.08429
    PhoneIntelligence:
      type: object
      description: >-
        Bloc d'intel·ligència de telèfon normalitzat. Només present quan el
        complement d'intel·ligència s'ha executat per a aquesta consulta; quan
        és present també s'exposa sota l'àlies `enrichment` amb valors idèntics.
      properties:
        score:
          type: number
          nullable: true
          description: >-
            Puntuació de risc normalitzada de 0 a 100. Com més alta, més
            arriscada.
        phone_type_risk:
          type: string
          nullable: true
          description: '`Low`, `Medium` o `High`, derivat de la puntuació.'
        phone_trust_index:
          type: number
          nullable: true
          description: >-
            Invers de la puntuació, per a taulers que prefereixen que un valor
            més alt sigui millor.
        network_stability_index:
          type: number
          nullable: true
          description: Estabilitat de la xarxa de la línia.
        is_disposable:
          type: boolean
          nullable: true
          description: '`true` quan el número sembla d''un sol ús o virtual.'
        is_ported:
          type: boolean
          nullable: true
          description: '`true` quan el número ha canviat d''operador.'
        is_recently_ported:
          type: boolean
          nullable: true
          description: '`true` quan la portabilitat s''ha produït recentment.'
        carrier_type:
          type: string
          nullable: true
          description: Classificació de la línia indicada per la cerca (p. ex., `mobile`).
        reason_codes:
          type: array
          items:
            type: object
            properties:
              code:
                type: string
                description: >-
                  Identificador estable de Didit del senyal, per exemple
                  `IR-5AC67A32`. Opac: agrupa i filtra per ell, no l'analitzis
                  sintàcticament.
              value:
                nullable: true
                description: >-
                  Per a un indicador de risc (per exemple `voip`, `leaked`,
                  `disposable`, `spam_trap`), el seu valor: un booleà, un nivell
                  o una data. Null per a un codi de motiu amb puntuació.
              direction:
                type: string
                enum:
                  - risk
                  - trust
                description: Si el senyal ha augmentat el risc o ha reforçat la confiança.
              message:
                type: string
                description: Explicació fàcil de llegir del senyal, en anglès.
              impact_level:
                type: string
                nullable: true
                description: >-
                  Amb quina intensitat ha modificat la puntuació el senyal, per
                  exemple `low`, `medium` o `high`.
          description: >-
            Senyals que expliquen la puntuació, cadascun amb un codi de Didit
            estable, una direcció, un missatge i un nivell d'impacte. Poden
            aparèixer codis nous al llarg del temps, de manera que no rebutgis
            els codis desconeguts.
    PhoneSocialFootprint:
      type: object
      nullable: true
      description: >-
        Petjada social del número de telèfon: les plataformes en línia on està
        registrat. Només present si s'ha definit `enable_social` i la
        comprovació s'ha completat. Cada recompte pot ser nul si no s'han
        obtingut dades. `profiles_registered: 0` significa que s'han consultat
        les plataformes i que el número de telèfon no s'ha trobat en cap
        d'elles: una resposta vàlida i facturable, i un senyal habitual
        d'identitat sintètica.
      properties:
        profiles_registered:
          type: integer
          nullable: true
          description: Plataformes on el número de telèfon està confirmat com a registrat.
          example: 5
        profiles_checked:
          type: integer
          nullable: true
          description: Plataformes avaluades per al registre.
          example: 14
        names_found:
          type: integer
          nullable: true
          description: Plataformes que han retornat un nom associat.
          example: 0
        photos_found:
          type: integer
          nullable: true
          description: Plataformes que han retornat una foto de perfil.
          example: 0
        communication_breadth:
          type: integer
          nullable: true
          description: Plataformes de comunicació amb presència detectada.
          example: 2
        digital_footprint_diversity:
          type: integer
          nullable: true
          description: Categories de plataforma diferents amb presència detectada.
          example: 5
        digital_sophistication_index:
          type: integer
          nullable: true
          description: Indicador compost de maduresa digital, 0-10.
          example: 5
        engagement_depth_index:
          type: integer
          nullable: true
          description: Indicador de riquesa del perfil, de 0 a 10.
          example: 3
        subscription_affordability_index:
          type: integer
          nullable: true
          description: Combinació de plataformes gratuïtes i de pagament, 0-10.
          example: 2
        free_platforms:
          type: integer
          nullable: true
          description: Registres en plataformes gratuïtes.
          example: 4
        full_paid_platforms:
          type: integer
          nullable: true
          description: Registres en plataformes totalment de pagament.
          example: 0
        partial_paid_platforms:
          type: integer
          nullable: true
          description: Registres en plataformes freemium.
          example: 1
        whatsapp_profile_completeness:
          type: string
          nullable: true
          enum:
            - Basic
            - Partial
            - Complete
            - Not Present
            - null
          description: >-
            Completitud del perfil de WhatsApp. Només per a telèfon; null per a
            correu electrònic.
          example: Partial
        registered_platforms:
          type: array
          description: Plataformes on el registre està confirmat.
          items:
            $ref: '#/components/schemas/SocialFootprintPlatform'
        not_registered_platforms:
          type: array
          description: Plataformes comprovades amb resultat negatiu.
          items:
            $ref: '#/components/schemas/SocialFootprintPlatform'
        categories:
          type: object
          description: Recompte registrat i proporció per categoria de plataforma.
          additionalProperties:
            $ref: '#/components/schemas/SocialFootprintCategorySummary'
        profiles:
          type: object
          description: >-
            Detalls del perfil per plataforma, indexats per plataforma, quan la
            plataforma els exposa.
          additionalProperties:
            $ref: '#/components/schemas/SocialFootprintProfile'
    EmailIntelligence:
      type: object
      description: >-
        Bloc d'intel·ligència de correu electrònic normalitzat. Només present
        quan el complement d'intel·ligència s'ha executat per a aquest correu
        electrònic; quan és present també s'exposa com l'àlies `enrichment` amb
        valors idèntics.
      properties:
        score:
          type: number
          nullable: true
          description: >-
            Puntuació de risc normalitzada de 0 a 100. Com més alta, més
            arriscada.
        deliverable:
          type: string
          nullable: true
          description: Franja de capacitat de lliurament (p. ex., `high`).
        breach_risk_level:
          type: string
          nullable: true
          description: '`Low`, `Medium` o `High`.'
        breach_risk_index:
          type: number
          nullable: true
          description: Índex numèric de risc de vulneració.
        is_recent_breach:
          type: boolean
          nullable: true
          description: '`true` quan l''adreça apareix en una filtració recent.'
        is_frequent_breached:
          type: boolean
          nullable: true
          description: '`true` quan l''adreça apareix en moltes filtracions.'
        is_disposable:
          type: boolean
          nullable: true
          description: '`true` quan el domini és un proveïdor d''un sol ús.'
        is_free_domain:
          type: boolean
          nullable: true
          description: '`true` quan el domini és un proveïdor de correu gratuït.'
        is_breached:
          type: boolean
          nullable: true
          description: '`true` quan l''adreça apareix en filtracions conegudes.'
        no_of_breaches:
          type: number
          nullable: true
          description: Nombre de filtracions conegudes que contenen l'adreça.
        reason_codes:
          type: array
          items:
            type: object
            properties:
              code:
                type: string
                description: >-
                  Identificador estable de Didit del senyal, per exemple
                  `IR-5AC67A32`. Opac: agrupa i filtra per ell, no l'analitzis
                  sintàcticament.
              value:
                nullable: true
                description: >-
                  Per a un indicador de risc (per exemple `voip`, `leaked`,
                  `disposable`, `spam_trap`), el seu valor: un booleà, un nivell
                  o una data. Null per a un codi de motiu amb puntuació.
              direction:
                type: string
                enum:
                  - risk
                  - trust
                description: Si el senyal ha augmentat el risc o ha reforçat la confiança.
              message:
                type: string
                description: Explicació fàcil de llegir del senyal, en anglès.
              impact_level:
                type: string
                nullable: true
                description: >-
                  Amb quina intensitat ha modificat la puntuació el senyal, per
                  exemple `low`, `medium` o `high`.
          description: >-
            Senyals que expliquen la puntuació, cadascun amb un codi de Didit
            estable, una direcció, un missatge i un nivell d'impacte. Poden
            aparèixer codis nous al llarg del temps, de manera que no rebutgis
            els codis desconeguts.
    EmailSocialFootprint:
      type: object
      nullable: true
      description: >-
        Petjada social de l'adreça de correu electrònic: les plataformes en
        línia on està registrada. Només present si s'ha definit `enable_social`
        i la comprovació s'ha completat. Cada recompte pot ser nul si no s'han
        obtingut dades. `profiles_registered: 0` significa que s'han consultat
        les plataformes i que l'adreça de correu electrònic no s'ha trobat en
        cap d'elles: una resposta vàlida i facturable, i un senyal habitual
        d'identitat sintètica.
      properties:
        profiles_registered:
          type: integer
          nullable: true
          description: >-
            Plataformes on l'adreça de correu electrònic està confirmada com a
            registrada.
          example: 5
        profiles_checked:
          type: integer
          nullable: true
          description: Plataformes avaluades per al registre.
          example: 14
        names_found:
          type: integer
          nullable: true
          description: Plataformes que han retornat un nom associat.
          example: 0
        photos_found:
          type: integer
          nullable: true
          description: Plataformes que han retornat una foto de perfil.
          example: 0
        communication_breadth:
          type: integer
          nullable: true
          description: Plataformes de comunicació amb presència detectada.
          example: 2
        digital_footprint_diversity:
          type: integer
          nullable: true
          description: Categories de plataforma diferents amb presència detectada.
          example: 5
        digital_sophistication_index:
          type: integer
          nullable: true
          description: Indicador compost de maduresa digital, 0-10.
          example: 5
        engagement_depth_index:
          type: integer
          nullable: true
          description: Indicador de riquesa del perfil, de 0 a 10.
          example: 3
        subscription_affordability_index:
          type: integer
          nullable: true
          description: Combinació de plataformes gratuïtes i de pagament, 0-10.
          example: 2
        free_platforms:
          type: integer
          nullable: true
          description: Registres en plataformes gratuïtes.
          example: 4
        full_paid_platforms:
          type: integer
          nullable: true
          description: Registres en plataformes totalment de pagament.
          example: 0
        partial_paid_platforms:
          type: integer
          nullable: true
          description: Registres en plataformes freemium.
          example: 1
        whatsapp_profile_completeness:
          type: string
          nullable: true
          enum:
            - Basic
            - Partial
            - Complete
            - Not Present
            - null
          description: >-
            Completitud del perfil de WhatsApp. Només per a telèfon; null per a
            correu electrònic.
          example: Partial
        registered_platforms:
          type: array
          description: Plataformes on el registre està confirmat.
          items:
            $ref: '#/components/schemas/SocialFootprintPlatform'
        not_registered_platforms:
          type: array
          description: Plataformes comprovades amb resultat negatiu.
          items:
            $ref: '#/components/schemas/SocialFootprintPlatform'
        categories:
          type: object
          description: Recompte registrat i proporció per categoria de plataforma.
          additionalProperties:
            $ref: '#/components/schemas/SocialFootprintCategorySummary'
        profiles:
          type: object
          description: >-
            Detalls del perfil per plataforma, indexats per plataforma, quan la
            plataforma els exposa.
          additionalProperties:
            $ref: '#/components/schemas/SocialFootprintProfile'
    DocumentAIDetectedCode:
      type: object
      required:
        - type
        - page_number
        - position
        - x
        - 'y'
        - width
        - height
        - page_width
        - page_height
        - raw_payload
        - parsed_payload
      properties:
        type:
          type: string
          description: >-
            Simbologia detectada, per exemple `QR_CODE`, `CODE_128`, `EAN_13`,
            `DATA_MATRIX` o `PDF_417`.
        page_number:
          type: integer
          minimum: 1
          description: Número de pàgina, començant per 1.
        position:
          type: array
          nullable: true
          description: >-
            Polígon detectat en coordenades de píxels de la pàgina renderitzada.
            `null` quan no hi ha cap ubicació fiable disponible.
          items:
            type: array
            minItems: 2
            maxItems: 2
            items:
              type: integer
        x:
          type: integer
          nullable: true
          description: >-
            Vora esquerra del quadre delimitador en píxels de la pàgina
            renderitzada.
        'y':
          type: integer
          nullable: true
          description: >-
            Vora superior del quadre delimitador en píxels de la pàgina
            renderitzada.
        width:
          type: integer
          nullable: true
          description: Amplària del quadre delimitador en píxels de la pàgina renderitzada.
        height:
          type: integer
          nullable: true
          description: Alçària del quadre delimitador en píxels de la pàgina renderitzada.
        page_width:
          type: integer
          description: Amplària de la pàgina renderitzada en píxels.
        page_height:
          type: integer
          description: Alçària de la pàgina renderitzada en píxels.
        raw_payload:
          type: string
          description: >-
            Payload del descodificador en brut com a cadena en base64 quan
            estigui disponible; en cas contrari, una cadena buida.
        parsed_payload:
          nullable: true
          description: >-
            Cadena descodificada o valor estructurat. `null` quan el codi s'ha
            localitzat però no s'ha pogut descodificar.
    BankVerificationResult:
      type: object
      description: >-
        El resultat d'un pas de Verificació bancària, per a Verificació
        d'usuaris i d'empreses. `method` indica com s'ha verificat el compte, i
        `none` que la persona ha continuat sense banc abans que s'avalués cap
        intent. `continued_without_bank` indica que la persona ha continuat
        sense banc, fins i tot després d'un intent avaluat. Consulta [Mètodes de
        verificació
        bancària](/ca/core-technology/bank-verification/verification-methods) i
        [Quan la persona no pot verificar el seu
        banc](/ca/core-technology/bank-verification/fallbacks).
      properties:
        schema_version:
          type: integer
          description: Versió d'aquesta estructura de resultats. Actualment `1`.
        bank_verification_id:
          type: string
          format: uuid
          description: L'ID d'aquest resultat.
        node_id:
          type: string
          description: El node del flux de treball al qual pertany aquest resultat.
        status:
          type: string
          enum:
            - Not Finished
            - Approved
            - Declined
            - In Review
            - Expired
          description: El veredicte del pas, després de les seves accions i regles d'estat.
        original_status:
          type: string
          nullable: true
          description: >-
            El primer veredicte al qual ha arribat el pas, abans de qualsevol
            canvi posterior com ara una revisió manual.
        method:
          type: string
          nullable: true
          enum:
            - open_banking
            - account_lookup
            - microdeposits
            - statement
            - none
          description: >-
            Com s'ha verificat el compte: `open_banking` (inici de sessió
            bancari: la persona ha iniciat sessió al seu banc), `account_lookup`
            (comprovació del compte: la persona ha introduït les dades del
            compte i el banc ha confirmat el nom), `microdeposits` o `statement`
            (pujada d'un extracte bancari). `none` quan la persona ha continuat
            sense un banc abans que s'avalués cap intent, per la qual cosa no
            s'ha verificat cap compte. Després d'un intent avaluat, manté el
            mètode d'aquest intent. `null` fins que s'avalua un compte i quan el
            flux de treball limita les dades que retorna. Les regles del flux de
            treball llegeixen el mateix valor com a `bank.method`.
        provider:
          type: string
          nullable: true
          description: >-
            La clau de la ruta que ha executat la connexió. Llegeix `method`, no
            aquesta clau, per saber com s'ha verificat el compte.
        credential_source:
          type: string
          nullable: true
          enum:
            - native
            - byok
          description: >-
            `native`: ruta pròpia de Didit, facturada al teu saldo de Didit.
            `byok`: un proveïdor del marketplace que has connectat amb les teves
            pròpies credencials.
        route:
          type: object
          nullable: true
          description: La ruta triada abans del consentiment. Mai canvia posteriorment.
          properties:
            provider_key:
              type: string
              nullable: true
              description: La clau de la ruta.
            credential_source:
              type: string
              enum:
                - native
                - byok
            is_fallback:
              type: boolean
              description: >-
                Indica si la ruta pròpia de Didit ha substituït un proveïdor del
                marketplace que no s'ha pogut connectar.
            provider_connection_id:
              type: string
              nullable: true
              description: La connexió del mercat utilitzada, per a `byok`.
            requested_scopes:
              type: array
              items:
                type: string
              description: >-
                Les dades que ha sol·licitat la connexió, per exemple
                `ownership` o `balances`.
        connection:
          type: object
          nullable: true
          description: La connexió de l'últim intent. `null` abans del primer intent.
          properties:
            status:
              type: string
              enum:
                - pending
                - connected
                - cancelled
                - timeout
                - failed
                - unsupported
                - revoked
                - expired
            institution_id:
              type: string
              nullable: true
              description: >-
                L'identificador del banc. `null` per a una comprovació de
                compte, on no se selecciona cap banc.
            institution_name:
              type: string
              nullable: true
              description: El nom del banc. `null` per a una comprovació de compte.
            institution_country:
              type: string
              nullable: true
              description: El país del compte, ISO 3166-1 alpha-3.
            oauth:
              type: boolean
              nullable: true
              description: >-
                Indica si l'inici de sessió bancari s'ha executat mitjançant
                OAuth o d'aplicació a aplicació. `null` per a una comprovació de
                compte.
            connected_at:
              type: string
              format: date-time
              nullable: true
              description: Quan la connexió va ser satisfactòria.
            consent_expires_at:
              type: string
              format: date-time
              nullable: true
              description: >-
                Quan finalitza el consentiment bancari, per a l'inici de sessió
                bancari.
            last_refreshed_at:
              type: string
              format: date-time
              nullable: true
              description: >-
                Quan es van tornar a llegir les dades financeres per darrera
                vegada.
            attempts:
              type: integer
              description: >-
                Els intents que la persona ha dedicat a aquest pas, sumant tots
                els mètodes.
            reason_code:
              type: string
              nullable: true
              description: >-
                Per què la connexió no és simplement `connected`, per exemple
                `USER_CANCELLED`, `INSTITUTION_DOWN`, `ACCOUNT_NOT_FOUND`,
                `REFERENCE_IDENTITY_MISSING` o `VERIFICATION_COMPLETED`.
        account:
          type: object
          nullable: true
          description: El compte avaluat. `null` fins que s'avaluï un compte.
          properties:
            account_id_masked:
              type: string
              nullable: true
              description: El número de compte, emmascarat.
            iban_masked:
              type: string
              nullable: true
              description: L'IBAN, emmascarat.
            sort_code:
              type: string
              nullable: true
              description: El codi de classificació bancari, al Regne Unit.
            routing_number_masked:
              type: string
              nullable: true
              description: El número d'encaminament, emmascarat.
            type:
              type: string
              nullable: true
              enum:
                - checking
                - current
                - savings
                - business
                - other
            subtype:
              type: string
              nullable: true
              description: El subtipus de compte propi del banc.
            currency:
              type: string
              nullable: true
              description: Moneda ISO 4217 del compte.
            holder_type:
              type: string
              nullable: true
              enum:
                - person
                - business
                - unknown
            holders_count:
              type: integer
              nullable: true
            is_joint:
              type: boolean
              nullable: true
            is_business:
              type: boolean
              nullable: true
        ownership:
          type: object
          nullable: true
          description: >-
            Com es compara el titular del compte amb la identitat verificada.
            `null` fins que s'avalua un compte.
          properties:
            result:
              type: string
              enum:
                - match
                - partial_match
                - no_match
                - unknown
                - not_verifiable
              description: >-
                `partial_match` és una coincidència propera. `not_verifiable`:
                el banc ha respost sense cap titular per comparar. `unknown`: no
                s'ha pogut llegir la prova o no hi havia cap identitat per
                comparar.
            reference_identity_source:
              type: string
              nullable: true
              description: >-
                El pas amb la identitat del qual s'ha comparat el titular:
                `kyc`, `database_validation`, `expected_details`,
                `questionnaire`, `document_ai` o `kyb`.
            name_score:
              type: integer
              minimum: 0
              maximum: 100
              nullable: true
              description: Puntuació de Didit per al nom del titular.
            provider_name_score:
              type: integer
              minimum: 0
              maximum: 100
              nullable: true
              description: >-
                La puntuació del nom del titular pròpia del banc, quan n'ha
                retornat una.
            address_score:
              type: integer
              minimum: 0
              maximum: 100
              nullable: true
              description: >-
                La puntuació de l'adreça del titular, quan s'ha executat la
                comprovació de coincidència d'adreça.
            email_score:
              type: integer
              minimum: 0
              maximum: 100
              nullable: true
              description: >-
                La puntuació del correu electrònic del titular, quan s'ha
                executat la comprovació de coincidència de correu electrònic.
            phone_score:
              type: integer
              minimum: 0
              maximum: 100
              nullable: true
              description: >-
                La puntuació del telèfon del titular, quan s'ha executat la
                comprovació de coincidència de telèfon.
            dob_score:
              type: integer
              minimum: 0
              maximum: 100
              nullable: true
              description: >-
                La puntuació de la data de naixement del titular, quan el banc
                n'ha proporcionat una.
            close_match:
              type: boolean
              nullable: true
              description: Si el nom ha quedat a la franja de coincidència propera.
            holder_confirmation:
              type: string
              nullable: true
              enum:
                - pending
                - confirmed
                - rejected
              description: >-
                La resposta de la persona quan se li ha demanat que confirmi un
                nom amb coincidència propera. `null` si mai se li ha demanat.
            method:
              type: string
              nullable: true
              enum:
                - exact
                - token_set
                - nickname
                - transliteration
                - fuzzy
                - provider_only
                - microdeposits
              description: >-
                Quina comparació de noms ha produït la puntuació. Aquest no és
                el mètode de verificació: consulta el `method` de nivell
                superior per a això.
            matched_holder_index:
              type: integer
              nullable: true
            holders:
              type: array
              items:
                type: object
              description: Cada titular que el banc ha llistat, amb les seves puntuacions.
            owner_identity_available:
              type: boolean
              nullable: true
            evidence_freshness:
              type: string
              nullable: true
              enum:
                - live
                - cached
                - refreshed
            evaluated_at:
              type: string
              format: date-time
              nullable: true
              description: Quan es va calcular el veredicte.
        financial_data:
          type: object
          description: >-
            Les dades financeres que el pas ha llegit. Només les llegeix l'inici
            de sessió bancari.
          properties:
            balances:
              type: object
              nullable: true
              description: Amb l'abast `balances`.
            transactions:
              type: object
              nullable: true
              description: Amb l'abast `transactions`.
            income:
              type: object
              nullable: true
              description: Amb l'abast `income`.
            categorization:
              type: object
              nullable: true
              description: >-
                Categorització de Didit de les transaccions llegides. `null` si
                no n'hi ha.
            not_collected:
              type: array
              items:
                type: string
                enum:
                  - balances
                  - income
                  - transactions
              description: >-
                Les dades que ha sol·licitat el pas que el mètode que ha
                verificat el compte no recopila. Els saldos, les transaccions i
                els ingressos només provenen de l'inici de sessió bancari, de
                manera que un compte verificat per comprovació de compte els
                llista aquí. No és mai un error. Buit en cas contrari.
        billing:
          type: object
          nullable: true
          properties:
            route:
              type: string
              enum:
                - native
                - byok
            billed:
              type: boolean
            marketplace_fee:
              type: string
              nullable: true
              description: La comissió de la plataforma del mercat cobrada, per a `byok`.
            usage_type:
              type: string
              nullable: true
              description: >-
                La línia d'ús en què s'ha imputat el càrrec: `bank_verification`
                per a un inici de sessió bancari o una comprovació de compte,
                `bank_statement_upload` per a una pujada d'extracte sense cap
                intent bancari cobrat prèviament, i `bank_byok_fee` per a la
                comissió del mercat sobre el teu propi proveïdor. `null` quan no
                s'ha facturat res.
        reference_identity:
          type: object
          nullable: true
          description: >-
            La identitat amb la qual s'ha comparat el titular, juntament amb el
            seu origen.
        signals:
          type: object
          nullable: true
          description: >-
            Senyals del compte llegits de l'historial de transaccions, quan el
            pas n'ha llegit un.
        connection_abandoned:
          type: boolean
          nullable: true
          description: >-
            Si el pas ha finalitzat sense cap coincidència després que la
            persona hagi abandonat el procés al seu banc.
        not_covered:
          type: boolean
          nullable: true
          description: >-
            Si no s'ha pogut contactar amb el banc o el país de la persona en
            aquest pas. També és `true` quan la persona ha continuat sense un
            banc perquè cap mètode podia verificar el seu país o banc.
        continued_without_bank:
          type: boolean
          description: >-
            Si la persona ha abandonat el pas amb **Continue without your
            bank**. Llavors, `continuation` n'indica el motiu. `method` és
            `none` quan no s'ha avaluat cap intent abans de continuar. Després
            d'un intent avaluat, com ara un titular que no coincideix, `method`
            es manté com el mètode d'aquell intent i els seus codis de veredicte
            i motiu es mantenen vigents. Es retorna fins i tot quan el flux de
            treball restringeix les dades que retorna.
        continuation:
          type: object
          nullable: true
          description: >-
            Com ha continuat la persona sense un banc. `null` quan no ho ha fet.
            Quan el flux de treball limita les dades que retorna, es continua
            retornant `reason` i totes les altres claus són `null`.
          properties:
            reason:
              type: string
              enum:
                - no_route
                - institution_unsupported
                - attempts_exhausted
                - person_choice
              description: >-
                Per què, segons ho ha determinat Didit quan la persona ha
                continuat: `no_route` (cap inici de sessió bancari ni
                comprovació de compte dona servei al seu país),
                `institution_unsupported` (el banc que ha triat no es pot
                utilitzar en aquest pas), `attempts_exhausted` (tots els intents
                ja s'havien esgotat i cap estava en curs), o `person_choice` (hi
                havia una manera de verificar-lo i ha decidit continuar, també
                quan no s'ha pogut contactar amb el seu banc en aquell moment).
                `no_route` i `institution_unsupported` segueixen
                `bank_unsupported_action`, `attempts_exhausted` segueix
                `bank_attempts_exhausted_action`, i `person_choice` segueix
                `bank_skipped_action`, tret que un intent avaluat ja hagi
                decidit el pas.
            country:
              type: string
              nullable: true
              description: >-
                El país on la persona s'estava verificant, ISO 3166-1 alfa-3.
                `null` si ha continuat abans de triar-ne un.
            offered:
              type: array
              items:
                type: string
                enum:
                  - statement
                  - microdeposits
              nullable: true
              description: >-
                Les altres maneres de verificar que el país ha ofert a la
                persona quan ha continuat, en l'ordre en què les ha ofert:
                `statement` (una pujada d'un extracte), després `microdeposits`.
                Buit quan no n'ha ofert cap.
            institution_id:
              type: string
              nullable: true
              description: >-
                Per a `institution_unsupported`, l'ID del banc que la persona no
                ha pogut utilitzar: el banc que va triar o el banc on va acabar
                el seu últim intent. Didit l'obté de la seva pròpia llista de
                bancs, mai del dispositiu de la persona, de manera que un banc
                que no estigui en aquesta llista és `null`. `null` per a
                qualsevol altre motiu.
            institution_name:
              type: string
              nullable: true
              description: >-
                Per a `institution_unsupported`, el nom d'aquest banc, de la
                mateixa llista que `institution_id`. `null` quan aquesta llista
                no conté el banc, i per a qualsevol altre motiu.
            continued_at:
              type: string
              format: date-time
              nullable: true
              description: Quan la persona va continuar.
        evidence_purged_at:
          type: string
          format: date-time
          nullable: true
          description: >-
            Quan es van eliminar les proves bancàries segons
            `bank_evidence_retention_days`. `null` en cas contrari.
        warnings:
          type: array
          items:
            type: string
          description: >-
            Codis informatius, per exemple `holder_declared`. Un advertiment mai
            canvia l'estat per si sol.
        reason_codes:
          type: array
          items:
            type: string
          description: >-
            Per què el veredicte ha estat aquest, per exemple
            `OWNER_NAME_PARTIAL`. Se'n poden aplicar diversos. `NOT_COVERED`: la
            persona ha continuat sense banc perquè cap mètode podia verificar el
            seu país o banc. `SKIPPED`: la persona ha decidit continuar sense
            banc tot i haver-hi una manera de verificar-lo. No s'afegeix cap
            dels dos quan un intent avaluat ja ha decidit el pas.
        created_at:
          type: string
          format: date-time
        updated_at:
          type: string
          format: date-time
    SignatureResult:
      type: object
      description: >-
        El resultat d'un signant per a un pas de Signatura electrònica. Consulta
        l'[informe de Signatura
        electrònica](/ca/core-technology/electronic-signature/report-electronic-signature).
      properties:
        id:
          type: string
          format: uuid
          description: >-
            Passa-ho com a `signature_id` per descarregar les evidències
            d'aquest signant o validar la seva signatura.
        node_id:
          type: string
          description: El pas del flux de treball que l'ha generat.
        status:
          type: string
          enum:
            - intro
            - review
            - code
            - signing
            - signed
            - declined
          description: >-
            En quin punt del pas es troba el signant. Només `signed` significa
            que els documents estan signats.
        verdict:
          type: string
          enum:
            - Not Finished
            - Approved
            - In Review
            - Declined
          description: >-
            El resultat del pas. Una advertència l'estableix mitjançant la seva
            regla; les regles d'estat personalitzades s'apliquen després.
        level:
          type: string
          enum:
            - simple
            - aes
            - qes
          description: >-
            `simple` (per defecte) o `aes`. `qes` (signatura electrònica
            qualificada, QES) és un complement que encara no està disponible.
        format:
          type: string
          enum:
            - pdf
            - pades
          description: >-
            `pdf` per a una signatura simple, `pades` per a una signatura
            avançada (AES).
        profile:
          type: string
          nullable: true
          description: >-
            `PAdES-B-LT` un cop s'ha signat una signatura avançada (AES);
            altrament, null.
        signer:
          type: object
          properties:
            name:
              type: string
              nullable: true
              description: >-
                El nom del signant. Verificat (a partir de la verificació
                d'identitat aprovada o de la sessió) excepte al nivell Simple
                sense un nom de sessió verificat, on és el nom que el signant ha
                introduït i no està verificat.
            capacity:
              type: string
              enum:
                - self
                - company
            company:
              type: string
              nullable: true
            role:
              type: string
              nullable: true
              description: El càrrec de la persona clau, tal com s'ha declarat.
            roles:
              type: array
              items:
                type: string
              description: >-
                Els rols estructurats de la persona clau, tal com s'han declarat
                per a l'empresa.
            identity_session_id:
              type: string
              format: uuid
              description: La sessió de KYC que ha verificat el signant.
        identity_used:
          type: object
          description: >-
            La identitat verificada en què es basa la signatura. Buit per a una
            signatura Simple sense identitat verificada.
          properties:
            session_id:
              type: string
              format: uuid
            kyc_id:
              type: string
              format: uuid
              nullable: true
            verified:
              type: boolean
            expected_name:
              type: string
              nullable: true
              description: El nom amb què havia de coincidir el signant.
        certificate:
          type: object
          nullable: true
          description: >-
            El certificat amb què s'han signat els documents. `null` fins que es
            signen, i sempre `null` per a una signatura Simple.
          properties:
            issuer:
              type: string
            issued_to:
              type: string
            serial:
              type: string
              description: Número de sèrie, hexadecimal.
            valid_from:
              type: string
              format: date-time
            valid_until:
              type: string
              format: date-time
        confirmation:
          type: object
          properties:
            channel:
              type: string
              nullable: true
              enum:
                - email
                - sms
              description: '`null` per a una signatura simple, que no té codi.'
            destination:
              type: string
              nullable: true
              description: El contacte emmascarat al qual s'ha enviat el codi.
            confirmed_at:
              type: string
              format: date-time
              nullable: true
            attempts:
              type: integer
              description: Codis introduïts, inclòs el correcte.
        timestamp:
          type: object
          nullable: true
          description: >-
            La marca de temps RFC 3161 a la signatura, emesa per Didit. `null`
            fins que se signa, i sempre `null` per a una signatura simple.
          properties:
            time:
              type: string
              format: date-time
            qualified:
              type: boolean
              description: Sempre `false` per a AES.
            valid:
              type: boolean
        documents:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                description: >-
                  El document a la còpia d'aquest signant. Fes-lo servir per
                  descarregar el fitxer signat.
              uuid:
                type: string
                format: uuid
                description: Igual que `id`.
              title:
                type: string
              file_name:
                type: string
              pages:
                type: integer
                description: >-
                  Pàgines del document signades. En el cas de Word, del PDF
                  convertit.
              size_bytes:
                type: integer
              sha256_original:
                type: string
                description: SHA-256 del document tal com s'ha mostrat al signant.
              sha256_signed:
                type: string
                nullable: true
                description: SHA-256 del PDF signat, un cop signat.
              status:
                type: string
                enum:
                  - signed
                  - declined
                  - not_signed
                  - not_reached
                description: '`not_signed`: obert però no signat. `not_reached`: mai obert.'
              opened_at:
                type: string
                format: date-time
                nullable: true
              read_at:
                type: string
                format: date-time
                nullable: true
                description: >-
                  Quan el signant va arribar al final d'un document sense camps,
                  quan el pas ho requereix.
              read_to_end:
                type: boolean
              consented_at:
                type: string
                format: date-time
                nullable: true
                description: >-
                  Quan el signant va acceptar un document sense camps, o va
                  completar els camps d'un document amb camps.
              consent:
                type: boolean
              signed_file:
                type: string
                nullable: true
                description: >-
                  Ruta del PDF signat, un cop signat. Consulta [Descarregar un
                  document
                  signat](/ca/sessions-api/electronic-signature/download-signed-document).
              mode:
                type: string
                enum:
                  - fields
                  - read_and_agree
                description: >-
                  `fields` per a un document amb camps, `read_and_agree` per a
                  un document sense.
              source_format:
                type: string
                enum:
                  - pdf
                  - docx
                description: >-
                  `pdf`, o `docx` per a un document de Word que Didit ha
                  convertit a PDF.
              conversion:
                type: object
                nullable: true
                description: >-
                  `null` per a un PDF. Per a un document de Word, el fitxer
                  original i la conversió.
                properties:
                  from:
                    type: string
                    enum:
                      - docx
                  file_name:
                    type: string
                    description: El nom original del teu fitxer Word.
                  sha256:
                    type: string
                    description: SHA-256 del teu fitxer de Word original.
                  size_bytes:
                    type: integer
                    description: Mida del teu fitxer de Word original.
                  converter:
                    type: string
                    description: Versió del convertidor que ha produït el PDF.
              fields:
                type: array
                description: >-
                  Camps del document, amb els seus valors. Buit per a un
                  document sense camps.
                items:
                  $ref: '#/components/schemas/SignatureFieldResult'
        adopted_signature:
          type: object
          nullable: true
          description: >-
            La signatura i les inicials que el signant ha adoptat per als camps
            de signatura i d'inicials. `null` fins que el signant n'adopti una.
          properties:
            method:
              type: string
              enum:
                - typed
                - drawn
              description: >-
                `typed`: el nom verificat en estil manuscrit. `drawn`: dibuixat
                amb un dit o amb el ratolí.
            font:
              type: string
              nullable: true
              description: >-
                L'estil cal·ligràfic d'una signatura mecanografiada. `null` quan
                és dibuixada.
            adopted_at:
              type: string
              format: date-time
        electronic_signature_consent_at:
          type: string
          format: date-time
          nullable: true
          description: >-
            Quan el signant va acceptar, a la pantalla de revisió, signar els
            documents electrònicament. S'estableix quan algun document té camps.
        evidence_file:
          type: string
          nullable: true
          description: >-
            Ruta del PDF de l'evidència, un cop signat. Consulta [Descarregar
            l'evidència de la
            signatura](/ca/sessions-api/electronic-signature/download-evidence).
        warnings:
          type: array
          description: >-
            Advertències generades per a aquest signant. Consulta [Advertències
            de Signatura
            electrònica](/ca/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
              node_id:
                type: string
        validation:
          type: object
          nullable: true
          description: >-
            L'última comprovació criptogràfica dels documents signats. `null`
            fins que se signin els documents. Si Didit no pot confirmar el
            resultat de la signatura, és `{"valid": null, "reason":
            "signature_provider_outcome_unknown", "checked_at": ...}` i `status`
            es manté en `signing`: tracta'l com a no signat.
          properties:
            valid:
              type: boolean
              nullable: true
              description: >-
                `true` quan cada document és vàlid. `null` quan el resultat de
                la signatura no s'ha pogut confirmar.
            reason:
              type: string
              description: >-
                S'estableix quan `valid` és `null`:
                `signature_provider_outcome_unknown`.
            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` quan tant la signatura com la marca de temps són
                      vàlides i de confiança.
                  integrity:
                    type: boolean
                    description: >-
                      `true` quan el document no s'ha modificat des de la
                      signatura.
                  trusted:
                    type: boolean
                    description: >-
                      `true` quan el certificat de signatura forma una cadena
                      fins a una arrel de confiança.
                  revoked:
                    type: boolean
                  trusted_list:
                    type: object
                    description: >-
                      Comprovació a la llista de confiança de la UE (EU Trusted
                      List). Per a AES: `{"status": "not_applicable", "reason":
                      "aes_not_qualified"}`.
                    properties:
                      status:
                        type: string
                      reason:
                        type: string
                  certificate:
                    type: object
                    nullable: true
                    description: >-
                      El certificat amb què s'han signat els documents. `null`
                      fins que es signen, i sempre `null` per a una signatura
                      Simple.
                    properties:
                      issuer:
                        type: string
                      issued_to:
                        type: string
                      serial:
                        type: string
                        description: Número de sèrie, hexadecimal.
                      valid_from:
                        type: string
                        format: date-time
                      valid_until:
                        type: string
                        format: date-time
                  timestamp:
                    type: object
                    nullable: true
                    description: >-
                      La marca de temps RFC 3161 a la signatura, emesa per
                      Didit. `null` fins que se signa, i sempre `null` per a una
                      signatura simple.
                    properties:
                      time:
                        type: string
                        format: date-time
                      qualified:
                        type: boolean
                        description: Sempre `false` per a AES.
                      valid:
                        type: boolean
        declined_at:
          type: string
          format: date-time
          nullable: true
        declined_action:
          type: string
          enum:
            - DECLINE
            - REVIEW
            - NO_ACTION
        signed_at:
          type: string
          format: date-time
          nullable: true
        expires_at:
          type: string
          format: date-time
          description: Quan l'enllaç de signatura deixa de funcionar.
        email_sent_at:
          type: string
          format: date-time
          nullable: true
        email_unavailable_reason:
          type: string
          nullable: true
        ip_address:
          type: string
          nullable: true
          description: L'adreça IP del signant quan va demanar el seu codi.
        place:
          type: string
          nullable: true
          description: 'No recopilat: sempre `null`.'
        place_unavailable_reason:
          type: string
          nullable: true
          enum:
            - not_collected
    AMLScreening:
      type: object
      properties:
        node_id:
          type: string
          description: >-
            Identificador únic per a aquest pas d'AML al graf del flux de
            treball.
        status:
          type: string
          description: >-
            Estat a nivell de funcionalitat d'aquest cribratge AML. Independent
            de l'`status` de la sessió de nivell superior: una sessió pot
            assolir la seva decisió global mentre una funcionalitat individual
            roman `In Review`.
          enum:
            - Not Finished
            - Approved
            - Declined
            - In Review
            - Resub Requested
        total_hits:
          type: integer
          description: Nombre total de coincidències trobades
        entity_type:
          type: string
          description: 'Tipus d''entitat cribrada: persona o empresa'
        hits:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                description: >-
                  Identificador estable de Didit per a la coincidència: `hit_`
                  seguit de 24 caràcters hexadecimals. La mateixa entitat
                  coincident manté el mateix `id` quan se sotmet el subjecte a
                  un nou cribratge. Transmet-lo com a `hit_id` als endpoints de
                  revisió de coincidències d'AML.
              url:
                type: string
                format: uri
                description: URL d'origen de la coincidència
              match:
                type: boolean
                description: Si es tracta d'una coincidència confirmada
              score:
                type: number
                format: float
                nullable: true
                minimum: 0
                maximum: 1
                description: >-
                  Puntuació de coincidència ponderada obsoleta en el rang 0-1
                  (p. ex. `0.73`). Fes servir `match_score` (0-100) en el seu
                  lloc.
                deprecated: true
              target:
                type: boolean
                nullable: true
                description: >-
                  Indica si l'entitat coincident és l'objectiu directe de la
                  llista (en contraposició a una part relacionada). `null` quan
                  la font no ho especifica.
              caption:
                type: string
                description: Peu o títol de la coincidència
              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: >-
                  Llista de categories de conjunts de dades on s'ha trobat la
                  coincidència. Indica si l'entitat ha aparegut en llistes de
                  PEP (amb nivell), bases de dades de sancions, mitjans
                  adversos, advertències/mesures reguladores o altres conjunts
                  de dades de compliment. `Other Lists` quan la font de
                  l'entitat no indica cap d'aquestes categories.
              features:
                type: object
                nullable: true
                description: Característiques addicionals de la coincidència
              rca_name:
                type: string
                description: Nom de la RCA si escau
              last_seen:
                type: string
                format: date-time
                description: Data en què es va detectar la coincidència per darrera vegada
              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: Data en què es va detectar la coincidència per primera vegada
              properties:
                type: object
                properties:
                  name:
                    type: array
                    items:
                      type: string
                  alias:
                    type: array
                    items:
                      type: string
                  notes:
                    type: array
                    items:
                      type: string
                  title:
                    type: string
                    nullable: true
                  gender:
                    type: array
                    items:
                      type: string
                  height:
                    type: string
                    nullable: true
                  topics:
                    type: string
                    nullable: true
                  weight:
                    type: string
                    nullable: true
                  address:
                    type: string
                    nullable: true
                  country:
                    type: string
                    nullable: true
                  website:
                    type: string
                    nullable: true
                  eyeColor:
                    type: string
                    nullable: true
                  keywords:
                    type: string
                    nullable: true
                  lastName:
                    type: array
                    items:
                      type: string
                  position:
                    type: string
                    nullable: true
                  religion:
                    type: string
                    nullable: true
                  birthDate:
                    type: array
                    items:
                      type: string
                  education:
                    type: array
                    items:
                      type: string
                  ethnicity:
                    type: string
                    nullable: true
                  firstName:
                    type: array
                    items:
                      type: string
                  hairColor:
                    type: string
                    nullable: true
                  weakAlias:
                    type: string
                    nullable: true
                  birthPlace:
                    type: array
                    items:
                      type: string
                  modifiedAt:
                    type: string
                    nullable: true
                  wikidataId:
                    type: string
                    nullable: true
                  citizenship:
                    type: string
                    nullable: true
                  nationality:
                    type: string
                    nullable: true
              match_score:
                type: number
                description: >-
                  Puntuació de confiança de la identitat ponderada (0-100)
                  calculada a partir de la similitud del nom, la data de
                  naixement i la coincidència de país. S'utilitza per determinar
                  si una coincidència és un fals positiu o una possible
                  coincidència.
                format: float
                nullable: true
              risk_score:
                type: number
                description: >-
                  Puntuació de risc de l'entitat (0-100). S'utilitza per
                  determinar l'estat AML final (Aprovada/En revisió/Rebutjada)
                  segons el risk_score més alt entre les coincidències que no
                  siguin falsos positius.
              review_status:
                type: string
                description: >-
                  Estat de revisió d'aquesta coincidència. Pot ser 'Unreviewed',
                  'Confirmed Match', 'False Positive' o 'Inconclusive'.
                enum:
                  - Unreviewed
                  - Confirmed Match
                  - False Positive
                  - Inconclusive
              score_breakdown:
                type: object
                description: Desglossament detallat de com s'ha calculat el match_score.
                properties:
                  name_score:
                    type: integer
                    description: Percentatge de similitud del nom en brut (0-100).
                  name_weight:
                    type: integer
                    description: Pes original per al nom des de la configuració (0-100).
                  name_weight_normalized:
                    type: number
                    description: >-
                      Pes normalitzat per al nom després de reponderar per dades
                      que manquen (0-100).
                  name_contribution:
                    type: number
                    description: Punts aportats pel nom a la puntuació total.
                  dob_score:
                    type: integer
                    description: >-
                      Puntuació de coincidència de data de naixement (-100 a
                      100).
                  dob_weight:
                    type: integer
                    description: >-
                      Pes original per a la data de naixement des de la
                      configuració (0-100).
                  dob_weight_normalized:
                    type: number
                    description: >-
                      Pes normalitzat per a la data de naixement després de
                      reponderar per dades que manquen (0-100).
                  dob_contribution:
                    type: number
                    description: >-
                      Punts aportats per la data de naixement a la puntuació
                      total.
                  country_score:
                    type: integer
                    description: Puntuació de coincidència de país (-100 a 100).
                  country_weight:
                    type: integer
                    description: Pes original per al país des de la configuració (0-100).
                  country_weight_normalized:
                    type: number
                    description: >-
                      Pes normalitzat per al país després de reponderar per
                      dades que manquen (0-100).
                  country_contribution:
                    type: number
                    description: Punts aportats pel país a la puntuació total.
                  document_number_match_type:
                    type: string
                    description: >-
                      Resultat de l'avaluació de «Golden Key» del número de
                      document.
                    enum:
                      - MATCH
                      - NEUTRAL
                      - HARD_MISMATCH
                  document_number_effect:
                    type: string
                    description: >-
                      Descripció fàcil de llegir de l'efecte del número de
                      document sobre la puntuació.
                  total_score:
                    type: integer
                    description: Puntuació de coincidència ponderada final (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: >-
                  Llista de coincidències d'advertències i mesures reguladores.
                  Inclou entrades de les categories: Warning, SIP, Warnings and
                  Regulatory Enforcement, Fitness and Probity, SIE i Insolvency.
                items:
                  type: object
                  properties:
                    list_name:
                      type: string
                      description: Nom de l'editor de la llista d'advertències
                    matched_name:
                      type: string
                      description: Nom que ha coincidit a la llista d'advertències
                    description:
                      type: string
                      description: Descripció de l'entrada d'advertència
                    publisher:
                      type: string
                      description: Publicador o font de l'advertència
                    source_url:
                      type: string
                      format: uri
                      description: URL de la font de l'advertència
                    other_sources:
                      type: array
                      items:
                        type: string
                      description: URL d'origen addicionals
                    countries:
                      type: array
                      items:
                        type: string
                      nullable: true
                      description: Països associats amb l'advertència
                    created_at:
                      type: string
                      nullable: true
                      description: Data en què es va crear l'entrada d'advertència
                    updated_at:
                      type: string
                      nullable: true
                      description: >-
                        Data en què es va actualitzar per darrera vegada
                        l'entrada d'advertència
                    additional_data:
                      type: object
                      description: >-
                        Dades addicionals de la font de l'advertència. Pot
                        contenir un objecte `data` amb una matriu
                        `case_details`.
                      properties:
                        data:
                          type: object
                          properties:
                            case_details:
                              type: array
                              description: >-
                                Detalls dels casos d'advertència associats amb
                                aquesta coincidència
                              items:
                                type: object
                                properties:
                                  case_type:
                                    type: string
                                    description: Tipus del cas d'advertència
                                    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: >-
                  Llista de coincidències en llistes de sancions trobades per a
                  aquesta entitat.
                items:
                  type: object
                  properties:
                    list_name:
                      type: array
                      items:
                        type: string
                      nullable: true
                      description: Nom(s) de la llista o llistes de sancions
                    matched_name:
                      type: string
                      description: Nom que ha coincidit a la llista de sancions
                    description:
                      type: string
                      description: Descripció de l'entrada de sanció
                    reason:
                      type: string
                      nullable: true
                      description: >-
                        Motiu de text lliure pel qual es va sancionar l'entitat.
                        Obtingut a partir de les entrades de motius de la llista
                        de sancions. Exemples: '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 de la font de la sanció
                    other_sources:
                      type: array
                      items:
                        type: string
                      description: URL d'origen addicionals
                    details:
                      type: array
                      items:
                        type: string
                      description: Detalls addicionals sobre la sanció
                    legal_basis:
                      type: array
                      items:
                        type: string
                      description: Base jurídica de la sanció
                    listed_on:
                      type: array
                      items:
                        type: string
                      nullable: true
                      description: Data o dates en què l'entitat es va incloure a la llista
                    sanction_list:
                      type: array
                      items:
                        type: string
                      nullable: true
                      description: Identificador(s) de la llista de sancions
                    sanction_program:
                      type: array
                      items:
                        type: string
                      description: Programa(es) de sancions en què figura l'entitat
                    sanctioning_authority:
                      type: array
                      items:
                        type: string
                      description: Autoritat o autoritats que han imposat la sanció
                    updated_on:
                      type: array
                      items:
                        type: string
                      description: >-
                        Data o dates en què l'entrada de sancions es va
                        actualitzar per darrera vegada
                    additional_data:
                      type: object
                      description: >-
                        Dades addicionals de la font de la sanció no recollides
                        als camps principals
              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:
                      type: string
                      nullable: true
                    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:
          type: number
          format: float
          nullable: true
          minimum: 0
          maximum: 100
          description: >-
            Puntuació global de cribratge AML — la puntuació de risc més alta de
            totes les coincidències (nombre decimal, 0-100). `null` fins que es
            calculi.
        screened_data:
          type: object
          properties:
            full_name:
              type: string
            nationality:
              type: string
            date_of_birth:
              type: string
              format: date
            document_number:
              type: string
              nullable: true
        is_ongoing_monitoring_enabled:
          type: boolean
          description: >-
            Indica si el monitoratge AML continu està habilitat per a aquest
            cribratge. Quan és `true`, l'entitat es torna a analitzar
            periòdicament i qualsevol nova coincidència actualitza l'informe.
        next_ongoing_monitoring_bill_date:
          type: string
          format: date
          nullable: true
          description: >-
            Data (YYYY-MM-DD) en què es facturarà de nou aquesta subscripció de
            monitoratge continu. Es calcula com la data de l'última facturació
            del monitoratge continu més 365 dies quan
            `is_ongoing_monitoring_enabled = true`; en cas contrari `null`.
            Aquesta és una data de facturació, no una data de cribratge; fes
            servir `last_ongoing_screening_at` per a això.
        last_ongoing_screening_at:
          type: string
          format: date-time
          nullable: true
          description: >-
            Quan el monitoratge continu va completar per darrera vegada un nou
            cribratge d'aquest registre, hagi canviat o no el resultat. `null`
            quan el registre no s'ha tornat a sotmetre mai a cribratge; mai
            s'emplena retroactivament a partir de la data d'habilitació o
            facturació.
        last_ongoing_screening_datasets_updated_at:
          type: string
          format: date-time
          nullable: true
          description: >-
            La data d'actualització del conjunt de dades AML més recent que el
            proveïdor ha informat en el moment d'aquest cribratge. `null` quan
            el proveïdor no ha informat de dates del conjunt de dades; mai
            s'estima.
        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: >-
                  La funcionalitat que ha generat aquesta advertència. El valor
                  identifica el bloc de funcionalitat al qual pertany
                  l'advertència. Dins d'un cribratge AML sol ser `AML`, però
                  l'enum anterior és vinculant per a totes les advertències de
                  funcionalitats al payload de la decisió.
              risk:
                type: string
              additional_data:
                type: object
                nullable: true
              log_type:
                type: string
              short_description:
                type: string
              long_description:
                type: string
              node_id:
                type: string
                description: >-
                  L'ID del node del graf del flux de treball que ha generat
                  aquesta advertència
    GeolocationCheck:
      type: object
      description: >-
        Un resultat de verificació d'Ubicació, l'intent acceptat d'un node de
        flux de treball. La mesura, la incertesa i l'autenticitat són claus
        separades, de manera que una posició precisa no atestada s'interpreta de
        manera diferent d'una d'imprecisa però atestada.
      properties:
        node_id:
          type: string
          nullable: true
          description: >-
            Node del flux de treball que ha generat aquest resultat, de manera
            que un flux de treball amb dos passos de verificació d'ubicació
            continuï sent llegible.
        status:
          type: string
          enum:
            - Not Finished
            - Approved
            - Declined
            - In Review
            - Resub Requested
          description: >-
            Estat a nivell de funcionalitat d'aquest pas de verificació
            d'ubicació, resolt a partir de les seves advertències. Independent
            de l'`status` de la sessió.
        outcome:
          type: string
          nullable: true
          description: Què ha passat en aquest intent.
          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:
          type: string
          nullable: true
          description: >-
            Què ha concedit el sistema operatiu o el navegador. `not_requested`
            significa que el pas només utilitza la ubicació IP de la connexió,
            de manera que mai no se sol·licita cap permís a la persona.
          enum:
            - granted_precise
            - granted_approximate
            - denied
            - restricted
            - unavailable
            - timeout
            - dismissed
            - not_requested
            - null
        latitude:
          type: number
          nullable: true
          description: Latitud WGS84 de la posició. `null` quan no hi ha posició.
          format: double
        longitude:
          type: number
          nullable: true
          description: Longitud WGS84 de la posició. `null` quan no hi ha posició.
          format: double
        accuracy_m:
          type: number
          nullable: true
          description: >-
            Radi d'incertesa en metres, al nivell de confiança indicat a
            `accuracy_confidence`.
          format: double
        accuracy_confidence:
          type: string
          nullable: true
          description: >-
            Nivell de confiança que la plataforma assigna a `accuracy_m`: `p95`
            (navegadors), `p68` (Android) o `unspecified` (iOS).
          enum:
            - p95
            - p68
            - unspecified
            - null
        measured_at:
          type: string
          nullable: true
          description: >-
            Quan el dispositiu va obtenir la posició, segons el seu propi
            rellotge.
          format: date-time
        age_seconds:
          type: integer
          nullable: true
          description: >-
            Segons entre el moment en què el dispositiu obté la posició i Didit
            la rep.
        source:
          type: string
          nullable: true
          description: >-
            D'on prové la posició, quan la plataforma ho indica. `ip` significa
            que la posició és la ubicació IP de la connexió.
          enum:
            - gps
            - fused
            - network
            - wifi
            - cell
            - browser
            - unknown
            - ip
            - null
        platform:
          type: string
          nullable: true
          description: El client que ha generat la correcció.
          enum:
            - web
            - ios
            - android
            - react_native
            - flutter
            - null
        sdk_version:
          type: string
          nullable: true
          description: Versió de l'SDK que ha produït la correcció.
        is_mock:
          type: boolean
          nullable: true
          description: >-
            `true` quan el dispositiu indica que la posició prové d'un proveïdor
            d'ubicació simulada o programari de simulació. `null` quan la
            plataforma no ho reporta (els navegadors no ho poden determinar);
            `null` no és `false`.
        produced_by_accessory:
          type: boolean
          nullable: true
          description: >-
            Només per a iOS: `true` quan la posició prové d'un accessori extern.
            `null` a la resta de casos.
        integrity:
          type: string
          enum:
            - attested
            - not_attested
            - failed
            - unsupported
            - not_determined
          description: >-
            Indica si l'atestació del dispositiu avala la correcció.
            `unsupported` és el que informen els navegadors, perquè el web no té
            cap mecanisme d'atestació; no és un error.
        country_code:
          type: string
          nullable: true
          description: País ISO 3166-1 alpha-2 on es troba la posició.
        region_code:
          type: string
          nullable: true
          description: Subdivisió ISO 3166-2 en què es troba la posició.
        city:
          type: string
          nullable: true
          description: Lloc poblat més proper, una etiqueta per als revisors.
        geofence:
          type: object
          description: Resultat de les regles de país i àrea del pas.
          properties:
            enabled:
              type: boolean
              description: Si el pas aplica alguna regla de país o de zona.
            result:
              type: string
              nullable: true
              description: >-
                On se situa la posició respecte a les regles. `undetermined`
                significa que el cercle de precisió cavalca la frontera o que la
                posició no s'ha resolt a cap país; no és una prova que estigui
                fora.
              enum:
                - inside
                - outside
                - undetermined
                - null
        inside_geofence:
          type: boolean
          nullable: true
          description: >-
            `true` quan `geofence.result` és `inside`, `false` quan és
            `outside`, `null` en cas contrari.
        geofence_basis:
          type: string
          nullable: true
          description: >-
            A partir de quina posició s'ha avaluat el resultat de la zona: la
            ubicació del `device` o la ubicació `ip` de la connexió.
          enum:
            - device
            - ip
            - null
        inside_areas:
          type: array
          items:
            type: string
          description: >-
            Identificadors de les àrees permeses configurades dins de les quals
            es troba la posició.
        blocked_areas:
          type: array
          items:
            type: string
          description: >-
            Identificadors de les àrees bloquejades configurades en què es troba
            la posició.
        position_source:
          type: string
          nullable: true
          description: >-
            D'on obté la posició el pas, segons la configuració: el dispositiu
            contrastat amb la ubicació de la IP, només el dispositiu o només la
            ubicació de la IP.
          enum:
            - device_and_ip
            - device_only
            - ip_only
            - null
        anonymizers:
          type: object
          nullable: true
          description: >-
            Quines característiques tenen la connexió i el dispositiu, cadascuna
            `true`, `false` o `null` quan la font no ho pot determinar.
          properties:
            vpn:
              type: boolean
              nullable: true
            proxy:
              type: boolean
              nullable: true
            tor:
              type: boolean
              nullable: true
            spoofing:
              type: boolean
              nullable: true
            emulator:
              type: boolean
              nullable: true
        ip_distance_km:
          type: number
          nullable: true
          description: >-
            Distància fins a la ubicació IP de la sessió després de restar
            ambdós radis d'incertesa; `0` quan se superposen.
          format: double
        ip_distance_uncertainty_km:
          type: number
          nullable: true
          description: >-
            Radi combinat que s'ha restat: el radi de la ubicació de la IP més
            la precisió d'aquesta ubicació.
          format: double
        ip_consistent:
          type: boolean
          nullable: true
          description: >-
            Indica si `ip_distance_km` és dins de la distància configurada al
            pas. `null` quan es desconeix algun dels dos costats.
        document_distance_km:
          type: number
          nullable: true
          description: >-
            Distància fins a l'adreça geocodificada del document d'identitat o
            comprovant de domicili. `null` quan no hi ha cap adreça registrada.
          format: double
        travel_excused:
          type: boolean
          nullable: true
          description: >-
            Si la tolerància de viatge del pas ha dispensat la distància
            respecte a l'adreça. `null` quan la tolerància està desactivada.
        consecutive_mismatches:
          type: integer
          nullable: true
          description: >-
            En l'intent final: aquesta comprovació més les no-coincidències
            anteriors de la mateixa persona de forma consecutiva.
        attempts:
          type: integer
          description: Número d'aquest intent dins del node, començant per 1.
        consent:
          type: object
          nullable: true
          description: >-
            El consentiment que la persona ha donat abans de la indicació del
            sistema, registrat amb la versió del redactat i l'idioma que ha
            vist.
          properties:
            accepted_at:
              type: string
              format: date-time
            version:
              type: string
              nullable: true
            locale:
              type: string
              nullable: true
        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: >-
                  La funcionalitat que ha generat aquesta advertència. El valor
                  identifica el bloc de funcionalitat al qual pertany
                  l'advertència. L'array d'advertències de cada mòdul sol
                  utilitzar el valor que coincideix amb el seu mòdul (p. ex.
                  `PHONE` dins de `phone_verifications[].warnings`), però l'enum
                  anterior és vinculant per a totes les advertències de
                  funcionalitats al payload de la decisió.
              risk:
                type: string
              additional_data:
                type: object
                nullable: true
              log_type:
                type: string
              short_description:
                type: string
              long_description:
                type: string
              node_id:
                type: string
                description: >-
                  L'ID del node del graf del flux de treball que ha generat
                  aquesta advertència
          description: >-
            Advertències que ha generat aquest pas de verificació d'ubicació,
            amb `feature` establert a `GEOLOCATION`. Els codis d'advertència
            comencen per `LOCATION_`.
    GeolocationAttempt:
      type: object
      description: >-
        Un intent d'un pas de verificació d'Ubicació: les mateixes claus que
        `geolocation_checks[]` excepte `warnings`, més el moment en què Didit el
        va rebre.
      properties:
        node_id:
          type: string
          nullable: true
          description: >-
            Node del flux de treball que ha generat aquest resultat, de manera
            que un flux de treball amb dos passos de verificació d'ubicació
            continuï sent llegible.
        status:
          type: string
          enum:
            - Not Finished
            - Approved
            - Declined
            - In Review
            - Resub Requested
          description: >-
            Estat a nivell de funcionalitat d'aquest pas de verificació
            d'ubicació, resolt a partir de les seves advertències. Independent
            de l'`status` de la sessió.
        outcome:
          type: string
          nullable: true
          description: Què ha passat en aquest intent.
          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:
          type: string
          nullable: true
          description: >-
            Què ha concedit el sistema operatiu o el navegador. `not_requested`
            significa que el pas només utilitza la ubicació IP de la connexió,
            de manera que mai no se sol·licita cap permís a la persona.
          enum:
            - granted_precise
            - granted_approximate
            - denied
            - restricted
            - unavailable
            - timeout
            - dismissed
            - not_requested
            - null
        latitude:
          type: number
          nullable: true
          description: Latitud WGS84 de la posició. `null` quan no hi ha posició.
          format: double
        longitude:
          type: number
          nullable: true
          description: Longitud WGS84 de la posició. `null` quan no hi ha posició.
          format: double
        accuracy_m:
          type: number
          nullable: true
          description: >-
            Radi d'incertesa en metres, al nivell de confiança indicat a
            `accuracy_confidence`.
          format: double
        accuracy_confidence:
          type: string
          nullable: true
          description: >-
            Nivell de confiança que la plataforma assigna a `accuracy_m`: `p95`
            (navegadors), `p68` (Android) o `unspecified` (iOS).
          enum:
            - p95
            - p68
            - unspecified
            - null
        measured_at:
          type: string
          nullable: true
          description: >-
            Quan el dispositiu va obtenir la posició, segons el seu propi
            rellotge.
          format: date-time
        age_seconds:
          type: integer
          nullable: true
          description: >-
            Segons entre el moment en què el dispositiu obté la posició i Didit
            la rep.
        source:
          type: string
          nullable: true
          description: >-
            D'on prové la posició, quan la plataforma ho indica. `ip` significa
            que la posició és la ubicació IP de la connexió.
          enum:
            - gps
            - fused
            - network
            - wifi
            - cell
            - browser
            - unknown
            - ip
            - null
        platform:
          type: string
          nullable: true
          description: El client que ha generat la correcció.
          enum:
            - web
            - ios
            - android
            - react_native
            - flutter
            - null
        sdk_version:
          type: string
          nullable: true
          description: Versió de l'SDK que ha produït la correcció.
        is_mock:
          type: boolean
          nullable: true
          description: >-
            `true` quan el dispositiu indica que la posició prové d'un proveïdor
            d'ubicació simulada o programari de simulació. `null` quan la
            plataforma no ho reporta (els navegadors no ho poden determinar);
            `null` no és `false`.
        produced_by_accessory:
          type: boolean
          nullable: true
          description: >-
            Només per a iOS: `true` quan la posició prové d'un accessori extern.
            `null` a la resta de casos.
        integrity:
          type: string
          enum:
            - attested
            - not_attested
            - failed
            - unsupported
            - not_determined
          description: >-
            Indica si l'atestació del dispositiu avala la correcció.
            `unsupported` és el que informen els navegadors, perquè el web no té
            cap mecanisme d'atestació; no és un error.
        country_code:
          type: string
          nullable: true
          description: País ISO 3166-1 alpha-2 on es troba la posició.
        region_code:
          type: string
          nullable: true
          description: Subdivisió ISO 3166-2 en què es troba la posició.
        city:
          type: string
          nullable: true
          description: Lloc poblat més proper, una etiqueta per als revisors.
        geofence:
          type: object
          description: Resultat de les regles de país i àrea del pas.
          properties:
            enabled:
              type: boolean
              description: Si el pas aplica alguna regla de país o de zona.
            result:
              type: string
              nullable: true
              description: >-
                On se situa la posició respecte a les regles. `undetermined`
                significa que el cercle de precisió cavalca la frontera o que la
                posició no s'ha resolt a cap país; no és una prova que estigui
                fora.
              enum:
                - inside
                - outside
                - undetermined
                - null
        inside_geofence:
          type: boolean
          nullable: true
          description: >-
            `true` quan `geofence.result` és `inside`, `false` quan és
            `outside`, `null` en cas contrari.
        geofence_basis:
          type: string
          nullable: true
          description: >-
            A partir de quina posició s'ha avaluat el resultat de la zona: la
            ubicació del `device` o la ubicació `ip` de la connexió.
          enum:
            - device
            - ip
            - null
        inside_areas:
          type: array
          items:
            type: string
          description: >-
            Identificadors de les àrees permeses configurades dins de les quals
            es troba la posició.
        blocked_areas:
          type: array
          items:
            type: string
          description: >-
            Identificadors de les àrees bloquejades configurades en què es troba
            la posició.
        position_source:
          type: string
          nullable: true
          description: >-
            D'on obté la posició el pas, segons la configuració: el dispositiu
            contrastat amb la ubicació de la IP, només el dispositiu o només la
            ubicació de la IP.
          enum:
            - device_and_ip
            - device_only
            - ip_only
            - null
        anonymizers:
          type: object
          nullable: true
          description: >-
            Quines característiques tenen la connexió i el dispositiu, cadascuna
            `true`, `false` o `null` quan la font no ho pot determinar.
          properties:
            vpn:
              type: boolean
              nullable: true
            proxy:
              type: boolean
              nullable: true
            tor:
              type: boolean
              nullable: true
            spoofing:
              type: boolean
              nullable: true
            emulator:
              type: boolean
              nullable: true
        ip_distance_km:
          type: number
          nullable: true
          description: >-
            Distància fins a la ubicació IP de la sessió després de restar
            ambdós radis d'incertesa; `0` quan se superposen.
          format: double
        ip_distance_uncertainty_km:
          type: number
          nullable: true
          description: >-
            Radi combinat que s'ha restat: el radi de la ubicació de la IP més
            la precisió d'aquesta ubicació.
          format: double
        ip_consistent:
          type: boolean
          nullable: true
          description: >-
            Indica si `ip_distance_km` és dins de la distància configurada al
            pas. `null` quan es desconeix algun dels dos costats.
        document_distance_km:
          type: number
          nullable: true
          description: >-
            Distància fins a l'adreça geocodificada del document d'identitat o
            comprovant de domicili. `null` quan no hi ha cap adreça registrada.
          format: double
        travel_excused:
          type: boolean
          nullable: true
          description: >-
            Si la tolerància de viatge del pas ha dispensat la distància
            respecte a l'adreça. `null` quan la tolerància està desactivada.
        consecutive_mismatches:
          type: integer
          nullable: true
          description: >-
            En l'intent final: aquesta comprovació més les no-coincidències
            anteriors de la mateixa persona de forma consecutiva.
        attempts:
          type: integer
          description: Número d'aquest intent dins del node, començant per 1.
        consent:
          type: object
          nullable: true
          description: >-
            El consentiment que la persona ha donat abans de la indicació del
            sistema, registrat amb la versió del redactat i l'idioma que ha
            vist.
          properties:
            accepted_at:
              type: string
              format: date-time
            version:
              type: string
              nullable: true
            locale:
              type: string
              nullable: true
        received_at:
          type: string
          nullable: true
          description: Quan Didit ha rebut l'intent.
          format: date-time
        created_at:
          type: string
          format: date-time
    KYBRegistryShareholding:
      type: object
      nullable: true
      description: >-
        El que posseeix un titular, amb el mateix format per a tots els països i
        fonts de registres mercantils. Null quan el registre indica que no hi ha
        participació. Un interval (per exemple, el 25-50% d'un PSC del Regne
        Unit) no és una participació: `percentage` és null i l'interval es manté
        a `ownership_min_shares` / `ownership_max_shares`.
      properties:
        share_class:
          type: string
          nullable: true
          description: Classe o tipus d'acció tal com l'anomena el registre.
        number_of_shares:
          type: number
          nullable: true
          description: Nombre d'accions posseïdes.
        currency:
          type: string
          nullable: true
          description: Moneda ISO 4217 dels valors següents.
        nominal_value:
          type: number
          nullable: true
          description: Valor nominal per acció.
        total_value:
          type: number
          nullable: true
          description: Valor total de la participació.
        percentage:
          type: number
          nullable: true
          description: Participació exacta en percentatge, amb quatre decimals.
      required:
        - share_class
        - number_of_shares
        - currency
        - nominal_value
        - total_value
        - percentage
    KYBRegistryAddress:
      type: object
      description: >-
        Una adreça que indica el registre, amb el mateix format per a cada país
        i font de registre. Cada clau està sempre present; qualsevol part que el
        registre no publiqui és nul·la.
      properties:
        type:
          type: string
          nullable: true
          description: >-
            Tipus d'adreça en minúscules: `registered` per a la seu social;
            altres tipus segons com els anomena el registre (per exemple,
            `postal`, `office`). `null` quan el registre no indica de quin tipus
            d'adreça es tracta.
        address:
          type: string
          description: L'adreça completa en una sola línia. Sempre present a cada adreça.
        street:
          type: string
          nullable: true
          description: Carrer i número.
        city:
          type: string
          nullable: true
          description: Ciutat o localitat.
        postal_code:
          type: string
          nullable: true
          description: Codi postal.
        region:
          type: string
          nullable: true
          description: Regió, estat o província.
        country_code:
          type: string
          nullable: true
          description: Codi de país ISO 3166-1 alfa-2.
        description:
          type: string
          nullable: true
          description: >-
            L'etiqueta pròpia del registre per a l'adreça, si en proporciona
            una.
      required:
        - type
        - address
        - street
        - city
        - postal_code
        - region
        - country_code
        - description
    KYBRegistryIndustry:
      type: object
      description: >-
        Una activitat sota la qual el registre classifica l'empresa, amb el
        mateix format per a cada país i font de registre.
      properties:
        code:
          type: string
          nullable: true
          description: >-
            Codi d'activitat tal com l'imprimeix el registre (per exemple
            `73110`).
        description:
          type: string
          nullable: true
          description: Etiqueta de l'activitat, quan el registre en publica una.
        scheme:
          type: string
          nullable: true
          description: >-
            Sistema de classificació, un nom per sistema independentment de la
            font que l'hagi informat: `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`; altres sistemes nacionals mantenen el propi
            nom del registre. Null quan el registre no indica el nom del
            sistema.
        is_primary:
          type: boolean
          description: >-
            Cert per a l'activitat principal de l'empresa. Exactament una
            entrada és primària quan la llista no és buida.
      required:
        - code
        - description
        - scheme
        - is_primary
    KYBRegistryData:
      type: object
      nullable: true
      description: >-
        Detall normalitzat del registre mercantil de Didit per a l'empresa: el
        resultat de titularitat (`ownership_error`, `section_errors`,
        `ubo_resolution`, `lite_enrichment`), les correccions fetes amb
        update-data i fets del registre que no tenen un camp propi. Mai conté el
        registre propi de la font registral. Cada clau és opcional i només és
        present quan l'empresa en té un valor; se'n poden afegir de noves.
        Consulta els camps canònics (`addresses`, `industries`, `ownership`,
        `beneficial_owners[].shareholding`) per a tot allò que cobreixen.
      properties:
        company_name:
          type: string
          description: Nom de l'empresa corregit a la consola.
        registration_number:
          type: string
          description: >-
            Número de registre tal com l'indica el registre o una correcció de
            la consola.
        country_code:
          type: string
          description: País del registre segons el registre o una correcció de la consola.
        region:
          type: string
          description: Regió o estat del registre.
        incorporation_date:
          type: string
          description: Data de constitució (ISO 8601).
        registration_date:
          type: string
          description: >-
            Data de registre (ISO 8601) quan el registre n'indica una de
            diferent de la data de constitució.
        dissolution_date:
          type: string
          description: Data de dissolució (ISO 8601) quan el registre en fa constar una.
        tax_number:
          type: string
          description: Identificador fiscal.
        vat_number:
          type: string
          description: Número d'IVA.
        legal_address:
          type: string
          description: Adreça social tal com s'ha corregit a la consola.
        registered_address:
          type: string
          description: Adreça registrada tal com consta al registre.
        company_type:
          type: string
          description: Forma jurídica.
        registry_status:
          type: string
          description: Estat de l'empresa al registre mercantil.
        verification_status:
          type: string
          description: Estat de la verificació.
        alternative_names:
          type: string
          description: Altres noms comercials que l'empresa utilitza o ha utilitzat.
        nature_of_business:
          type: string
          description: Descripció de l'activitat.
        registered_capital:
          type: string
          description: Capital registrat tal com està imprès.
        registered_capital_amount:
          type: string
          description: Import del capital registrat, com a cadena en format decimal.
        registered_capital_currency:
          type: string
          description: Moneda del capital registrat (ISO 4217).
        website:
          type: string
          description: Lloc web.
        email:
          type: string
          description: Correu electrònic de contacte.
        phone:
          type: string
          description: Telèfon de contacte.
        legal_entity_identifier:
          type: string
          description: Identificador d'entitat jurídica (LEI).
        location_of_registration:
          type: string
          description: Lloc de registre.
        control_scheme:
          type: string
          description: Esquema de governança quan el registre l'exposa.
        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: >-
            Per què no s'ha lliurat un nivell de titularitat sol·licitat, amb
            els mateixos codis que `ownership.unavailable_reason`.
            `no_owners_on_record` (el registre ha respost i no indica cap
            titular) i `ownership_section_unavailable` (el registre no ha
            retornat la secció de titularitat) són resultats diferents.
        section_errors:
          type: object
          description: >-
            Seccions que el registre no ha retornat, indexades per secció
            (`officers`, `shareholders`, `group_structure`). Una secció llistada
            aquí no s'ha lliurat mai: una llista buida al seu costat no diu res
            sobre l'empresa.
          additionalProperties:
            $ref: '#/components/schemas/KYBRegistrySectionError'
        ubo_resolution:
          $ref: '#/components/schemas/KYBRegistryUboResolution'
        lite_enrichment:
          $ref: '#/components/schemas/KYBRegistryLiteEnrichment'
        registry_metadata:
          type: object
          additionalProperties:
            oneOf:
              - type: string
              - type: number
              - type: boolean
          description: >-
            Els camps propis del registre per a l'empresa, indexats tal com els
            anomena el registre, com a valors plans (registres antics). Només
            s'inclouen els camps revisats com a fets del registre.
        registry_sources:
          type: array
          description: >-
            Els registres oficials dels quals s'ha extret el registre (registres
            antics). No s'indiquen altres fonts.
          items:
            $ref: '#/components/schemas/KYBRegistrySource'
        previous_names:
          type: array
          items:
            type: string
          description: >-
            Noms sota els quals l'empresa estava registrada anteriorment
            (registres històrics).
        parent_companies:
          type: array
          items:
            type: string
          description: Empreses matriu que indica el registre (registres antics).
        documents_available:
          type: integer
          description: >-
            Quants registres ofereix el registre mercantil per a l'empresa
            (registres heretats).
    KYBRegistryOwnership:
      type: object
      description: >-
        El resultat del nivell de titularitat (Accionistes / UBO), amb la
        mateixa estructura per a cada país i font de registre.
      properties:
        status:
          type: string
          nullable: true
          enum:
            - not_requested
            - pending
            - delivered
            - not_held
            - unavailable
            - null
          description: >-
            `delivered` quan el registre ha publicat la titularitat; `not_held`
            quan el registre de titularitat ha respost i no llista en absolut
            l'empresa (consulta `unavailable_reason`); `unavailable` quan no ha
            servit les dades de titularitat per qualsevol altre motiu (consulta
            `unavailable_reason`); `pending` mentre el registre encara les està
            obtenint; `not_requested` per al nivell Basic.
        tier_requested:
          type: string
          nullable: true
          enum:
            - basic
            - shareholders
            - ubo
            - null
          description: El nivell que ha demanat el flux de treball.
        tier_delivered:
          type: string
          nullable: true
          enum:
            - basic
            - shareholders
            - ubo
            - null
          description: >-
            El nivell que ha lliurat el registre (i que es factura). Una
            sol·licitud d'UBO que es respon només amb accionistes directes és
            `shareholders`.
        unavailable_reason:
          type: string
          nullable: true
          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: >-
            Per què no s'ha lliurat un nivell de titularitat sol·licitat. Nul
            tret que `status` sigui `unavailable` o `pending`.
        direct_ownership_complete:
          type: boolean
          nullable: true
          description: >-
            Cert quan les participacions declarades dels accionistes directes
            sumen el 100% (dins d'un punt percentual d'arrodoniment); fals quan
            no és així; null quan no s'ha proporcionat la titularitat o no s'ha
            declarat una participació.
        unresolved:
          type: array
          description: >-
            Parts de la cadena de titularitat que el registre no ha pogut
            resoldre, per exemple si no hi ha cap estructura de grup registrada
            per sobre dels propietaris directes.
          items:
            type: object
            properties:
              reason:
                type: string
              section:
                type: string
                nullable: true
      required:
        - status
        - tier_requested
        - tier_delivered
        - unavailable_reason
        - direct_ownership_complete
        - unresolved
    KYBOwnershipStructure:
      type: object
      nullable: true
      description: >-
        L'estructura de capital que ha acreditat el registre, tal com estava
        quan es va lliurar el nivell de titularitat: `shareholders` directes i
        `beneficial_owners`. Null quan el registre no ha acreditat cap
        titularitat. Mai conté les files pròpies de la font del registre;
        consulta `company.beneficial_owners` i `company.ownership` per al
        registre actual.
      properties:
        shareholders:
          type: array
          items:
            $ref: '#/components/schemas/KYBOwnershipStructureOwner'
        beneficial_owners:
          type: array
          items:
            $ref: '#/components/schemas/KYBOwnershipStructureOwner'
      required:
        - shareholders
        - beneficial_owners
    InvestigatorBlock:
      type: object
      nullable: true
      description: >-
        La revisió més recent d'Investigator de l'element, o null quan mai no
        n'ha tingut cap. S'inclou a la decisió de la sessió V3 i de la sessió
        d'empresa (i, per tant, als webhooks de `status.updated`).
      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:
          type: string
          enum:
            - approve
            - decline
            - escalate
            - request
          nullable: true
        recommendation_detail:
          type: string
          nullable: true
        confidence:
          type: string
          enum:
            - high
            - moderate
            - low
          nullable: true
        summary:
          type: string
          nullable: true
        ready_to_accept:
          type: boolean
        prepared_at:
          type: string
          format: date-time
          nullable: true
        automated:
          type: boolean
          description: >-
            L'Investigator ha decidit pel seu compte, fins i tot si la decisió
            s'ha invalidat posteriorment.
        decided_by:
          type: string
          enum:
            - investigator
            - member
          nullable: true
        decision:
          nullable: true
          allOf:
            - $ref: '#/components/schemas/InvestigatorDecision'
          type: object
    BiometricRetention:
      type: object
      description: Quan s'eliminen les dades biomètriques en directe d'aquesta sessió.
      required:
        - jurisdictions
        - deletes_at
      properties:
        jurisdictions:
          type: array
          items:
            type: string
          description: >-
            Codis dels estats dels EUA les regles biomètriques dels quals
            estableixen un límit d'eliminació per a aquesta persona (`US` quan
            l'estat és desconegut). Buit quan no se n'aplica cap.
        deletes_at:
          type: string
          format: date-time
          nullable: true
          description: >-
            La data en què s'eliminen les dades biomètriques en viu (imatges
            facials i plantilles) d'aquesta sessió, a partir de la configuració
            de conservació de la teva aplicació i, quan sigui aplicable, del
            límit legal per a la jurisdicció de la persona. `null` quan encara
            no s'aplica cap data.
    SocialFootprintPlatform:
      type: object
      properties:
        platform:
          type: string
          description: Identificador de plataforma.
          example: whatsapp
        category:
          type: string
          description: >-
            Categoria de plataforma, p. ex. MESSAGING, SOCIAL_MEDIA, ECOMMERCE,
            PROFESSIONAL, EMAIL_PROVIDER.
          example: MESSAGING
        scope:
          type: string
          enum:
            - global
            - local
          description: >-
            `global` per a plataformes d'àmbit mundial, `local` per a les
            específiques d'una regió.
          example: global
    SocialFootprintCategorySummary:
      type: object
      properties:
        registered:
          type: integer
          nullable: true
          description: Plataformes d'aquesta categoria on el registre està confirmat.
          example: 2
        ratio:
          type: number
          format: float
          nullable: true
          description: >-
            Proporció de les plataformes comprovades de la categoria amb un
            registre, 0.0-1.0.
          example: 0.6667
    SocialFootprintProfile:
      type: object
      properties:
        name:
          type: string
          nullable: true
          description: Nom del perfil, quan la plataforma l'exposa.
        photo:
          type: string
          nullable: true
          description: URL de la foto de perfil, quan la plataforma l'exposa.
        about:
          type: string
          nullable: true
          description: Text d'informació/biografia del perfil, quan la plataforma l'exposa.
        privacy_status:
          type: string
          nullable: true
          enum:
            - PUBLIC
            - PRIVATE
            - null
          description: Visibilitat del perfil, quan la plataforma l'exposa.
        business_account:
          type: boolean
          nullable: true
          description: Si el perfil és un compte d'empresa, quan la plataforma l'exposa.
    SignatureFieldResult:
      type: object
      description: >-
        Un camp d'un document signat, amb el seu valor a la còpia d'aquest
        signant. Consulta
        [Camps](/ca/core-technology/electronic-signature/report-electronic-signature#camps).
      properties:
        key:
          type: string
          description: La clau del camp, tal com s'utilitza a `sign.field_values`.
        type:
          type: string
          enum:
            - signature
            - initials
            - full_name
            - date_signed
            - text
            - checkbox
            - email
            - data
        role:
          type: string
          enum:
            - verified_person
            - legal_representative
            - key_people
        label:
          type: string
        page:
          type: integer
          description: >-
            Número de pàgina, a partir d'1. Per a un document de Word, una
            pàgina del PDF convertit.
        x:
          type: number
          description: Vora esquerra, com a fracció de l'amplada de la pàgina.
        'y':
          type: number
          description: Vora superior, com a fracció de l'alçada de la pàgina.
        width:
          type: number
          description: Amplada, com a fracció de l'amplada de la pàgina.
        height:
          type: number
          description: Alçada, com a fracció de l'alçada de la pàgina.
        required:
          type: boolean
        value:
          nullable: true
          description: >-
            Una cadena per a `text`, `email`, `full_name`, `date_signed` i
            `data`, un booleà per a `checkbox`, i `true` per a una signatura o
            inicials aplicades. `null` quan està buit.
        display_value:
          type: string
          nullable: true
          description: >-
            El valor tal com s'ha estampat a la pàgina: dates en el
            `date_format` del camp, `Yes` o `No` per a una casella de selecció,
            `Signed` per a una signatura o inicials.
        value_source:
          type: string
          nullable: true
          enum:
            - signer
            - identity
            - contact
            - company
            - session
            - metadata
            - api
            - signing_time
            - null
          description: >-
            D'on prové el valor: `signer` (escrit, marcat o aplicat pel
            signant), `identity` (el document d'identitat verificat), `contact`
            (el correu electrònic o telèfon verificat), `company` (l'empresa
            verificada), `session` (`vendor_data`), `metadata`, `api`
            (`sign.field_values`) o `signing_time` (la data de signatura).
        filled_at:
          type: string
          format: date-time
          nullable: true
        image_url:
          type: string
          nullable: true
          description: >-
            Només signatura i inicials: la ruta de la imatge aplicada. Consulta
            [Descarregar una imatge de
            signatura](/ca/sessions-api/electronic-signature/download-field-image).
        value_unavailable_reason:
          type: string
          nullable: true
          enum:
            - source_empty
            - null
          description: >-
            `source_empty` quan un camp emplenat prèviament no tenia cap valor a
            la sessió i `signature_field_data_missing_action` ha permès al
            signant signar de totes maneres.
    KYBRegistrySectionError:
      type: object
      description: Una secció que el registre no ha retornat.
      properties:
        status_code:
          type: integer
          nullable: true
          description: L'estat que el registre ha respost per a la secció.
      required:
        - status_code
    KYBRegistryUboResolution:
      type: object
      description: >-
        Com ha recorregut el nivell d'UBO la cadena de titularitat per sobre de
        l'empresa.
      properties:
        parent_chain:
          type: array
          description: Matrius corporatives des de la matriu última fins a l'empresa.
          items:
            $ref: '#/components/schemas/KYBRegistryGroupCompany'
        subsidiaries:
          type: array
          description: >-
            Empreses directament subordinades a l'empresa en el seu grup
            empresarial.
          items:
            $ref: '#/components/schemas/KYBRegistryGroupCompany'
        unresolved:
          type: array
          description: >-
            Parts de la cadena que el registre no ha pogut resoldre (les
            mateixes entrades que `ownership.unresolved`).
          items:
            type: object
            properties:
              reason:
                type: string
                description: >-
                  Per què, per exemple `no_group_structure_on_record`,
                  `selected_company_not_in_group_structure` o `section_error`.
              section:
                type: string
                nullable: true
                description: La secció afectada, per exemple `group_structure`.
            required:
              - reason
              - section
      required:
        - parent_chain
        - subsidiaries
        - unresolved
    KYBRegistryLiteEnrichment:
      type: object
      description: >-
        Camps buits del perfil Lite que una altra de les fonts del registre del
        país ha omplert. La font no s'especifica.
      properties:
        fields:
          type: array
          items:
            type: string
          description: Els camps de l'empresa que s'han emplenat.
        people_added:
          type: integer
          description: Quants administradors o titulars reals s'han afegit.
      required:
        - fields
        - people_added
    KYBRegistrySource:
      type: object
      description: >-
        Un registre oficial del qual s'ha extret el registre. Només s'esmenten
        els registres governamentals oficials, els reguladors i el sistema
        oficial d'identificadors; qualsevol altra font s'omet.
      properties:
        name:
          type: string
          description: Nom del registre, per exemple `UK Companies House`.
        source_type:
          type: string
          enum:
            - official
          description: Sempre `official`.
      required:
        - name
        - source_type
    KYBOwnershipStructureOwner:
      type: object
      description: >-
        Un titular de la instantània de titularitat: la mateixa identitat del
        registre i participació que `company.beneficial_owners[]`, i la seva
        `shareholding` canònica.
      properties:
        name:
          type: string
          nullable: true
          description: Nom del propietari tal com consta al registre.
        first_name:
          type: string
          nullable: true
          description: >-
            Nom de pila, per a una persona física, quan el registre
            l'especifica.
        last_name:
          type: string
          nullable: true
          description: >-
            Cognom, per a una persona física, quan el registre mercantil ho
            especifica.
        date_of_birth:
          type: string
          nullable: true
          description: Data de naixement (ISO 8601) quan el registre la publica.
        country_of_birth:
          type: string
          nullable: true
          description: País de naixement quan el registre el publica.
        company_name:
          type: string
          nullable: true
          description: Nom de l'empresa, per a un titular corporatiu.
        registration_number:
          type: string
          nullable: true
          description: Número de registre, per a un propietari corporatiu.
        entity_type:
          type: string
          nullable: true
          enum:
            - person
            - company
            - null
          description: Si el titular és una persona física o una empresa.
        nationality:
          type: string
          nullable: true
          description: Nacionalitat quan el registre la indica.
        designation:
          type: string
          nullable: true
          description: El càrrec o rol del titular tal com figura al registre.
        roles:
          type: array
          items:
            type: string
          description: '`shareholder` per a un titular directe, `ubo` per a un titular real.'
        ownership_min_shares:
          type: string
          nullable: true
          description: >-
            Límit inferior de la participació, en percentatge (igual al límit
            superior per a una participació exacta).
        ownership_max_shares:
          type: string
          nullable: true
          description: Límit superior de la participació, en percentatge.
        voting_min_shares:
          type: string
          nullable: true
          description: Límit inferior dels drets de vot, en percentatge.
        voting_max_shares:
          type: string
          nullable: true
          description: Límit superior dels drets de vot, en percentatge.
        appointment_date:
          type: string
          nullable: true
          description: Data en què va començar la participació o el nomenament (ISO 8601).
        is_active:
          type: boolean
          nullable: true
          description: Fals per a un antic propietari.
        shareholding:
          $ref: '#/components/schemas/KYBRegistryShareholding'
      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
    InvestigatorDecision:
      type: object
      description: >-
        Com ha sortit l'element de la cua de l'Investigator. `decided_by`,
        `original_outcome` i `overrides` es retornen als endpoints d'acceptació
        i d'anul·lació, així com a l'informe; el bloc `investigator` de la
        decisió d'una sessió conté els altres camps.
      properties:
        outcome:
          type: string
          enum:
            - accepted
            - edited
            - overridden
            - decided_elsewhere
            - automated
          description: >-
            `accepted` o `edited` ha adoptat la recomanació (`edited` amb una
            narrativa reescrita), `overridden` ha pres una altra acció,
            `decided_elsewhere` és una decisió presa fora de l'Investigator
            mentre l'informe estava obert, `automated` és una decisió que
            l'Investigator ha pres pel seu compte.
        action:
          type: string
          enum:
            - approve
            - decline
            - escalate
            - request
        actor_email:
          type: string
          nullable: true
        actor_name:
          type: string
          nullable: true
        override_category:
          type: string
          enum:
            - missing_context
            - needs_information
            - policy_differs
            - evidence_misread
            - other
            - ''
          nullable: true
        override_reason:
          type: string
          nullable: true
        final_status:
          type: string
          description: L'estat de l'element després de la decisió.
        agreed:
          type: boolean
          description: Indica si la decisió ha coincidit amb la recomanació.
          nullable: true
        decided_at:
          type: string
          format: date-time
        billed:
          type: boolean
          description: S'ha cobrat la revisió.
        decided_by:
          type: string
          enum:
            - investigator
            - member
        original_outcome:
          type: object
          description: >-
            La decisió que l'Investigator ha pres pel seu compte, sense canvis
            per sobreescriptures posteriors. Null per a una decisió que hagi
            pres l'equip.
          properties:
            action:
              type: string
            final_status:
              type: string
            decided_at:
              type: string
              format: date-time
          nullable: true
        overrides:
          type: array
          description: >-
            Totes les substitucions d'una decisió que l'Investigator va prendre
            pel seu compte, de la més antiga a la més recent.
          items:
            type: object
            properties:
              action:
                type: string
              actor_email:
                type: string
                nullable: true
              actor_name:
                type: string
                nullable: true
              override_category:
                type: string
              override_reason:
                type: string
              previous_status:
                type: string
              final_status:
                type: string
              agreed:
                type: boolean
                nullable: true
              overridden_at:
                type: string
                format: date-time
    KYBRegistryGroupCompany:
      type: object
      description: Una empresa del grup corporatiu, segons la seva identitat registral.
      properties:
        name:
          type: string
          nullable: true
          description: Nom de l'empresa.
        country_code:
          type: string
          nullable: true
          description: País de registre.
        registration_number:
          type: string
          nullable: true
          description: Número de registre.
      required:
        - name
        - country_code
        - registration_number
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: >-
        La clau d'API de la teva aplicació, des de Developers -> API keys a la
        Business Console. La clau primària té accés complet. Una clau amb nom
        pot tenir l'abast limitat: cap, lectura o escriptura per recurs,
        limitada a determinats fluxos de treball o a sessions aprovades, a una
        llista d'adreces IP i a una data de caducitat. 401 significa que la clau
        és incorrecta, revocada o caducada; 403 significa que no s'ha enviat cap
        clau, que la clau no té accés a aquest recurs o acció, o que la
        sol·licitud prové d'una adreça fora de la seva llista d'IP; 404 en una
        ruta de sessió significa que la sessió està fora dels fluxos de treball
        o estats de la clau. Una clau sense accés a fitxers multimèdia rep els
        URL d'imatge, vídeo i PDF com a null, i una clau sense permís
        d'escriptura de sessions rep els enllaços de sessió i els tokens com a
        null. Consulta https://docs.didit.me/console/api-keys.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.