> ## 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.

# Importar sessió compartida: API de KYC reutilitzable

> Importa una sessió KYC o KYB compartida amb token de soci a Didit via POST /v3/session/import-shared/. Identitat reutilitzable, sense reverificació.



Prompt per importar una sessió compartida
        Copia el prompt al porta-retalls



      
      

\<pre>

\`Import a verification session shared by a partner application (Reusable KYC / KYB).

Endpoint:
POST https://verification.didit.me/v3/session/import-shared/

Authentication:
Use the x-api-key header with the receiving application's Didit API key. Privilege: write:sessions.

Request body:
\- share_token (string, required) — JWT minted by the partner via POST /v3/session/{id}/share/. Didit decodes it, reads the embedded session_kind, and clones the matching kind.
\- workflow_id (string, UUID, required) — Workflow in YOUR application to attach the imported session to. KYC token → pass a KYC workflow_id. KYB token → pass a KYB workflow_id.
\- vendor_data (string, optional) — Your stable identifier for the entity. Auto-creates a User or Business entity if it does not already exist.
\- trust_review (boolean, optional, default false) — false → imported session lands in "In Review" so your team can re-review. true → imported session preserves the original status (e.g. "Approved"). Use true only when you fully trust the sharing partner's decision.

curl example:
curl -X POST https://verification.didit.me/v3/session/import-shared/ \
-H "x-api-key: <RECEIVING_API_KEY>" \
-H "Content-Type: application/json" \
-d '{
"share_token": "<JWT_FROM_PARTNER>",
"workflow_id": "<YOUR_WORKFLOW_ID>",
"vendor_data": "partner-user-42",
"trust_review": false
}'

Response (201 Created):
\- session_id (UUID) — NEW UUID minted in your application.
\- session_kind ("user" | "business") — same as the original.
\- session_number — fresh sequence in your application.
\- status — original status (if trust_review=true) or "In Review" (if trust_review=false).
\- shared_from_session — pointer to the original session in the source application.
\- vendor_data, workflow_id — what you sent.
\- All cloned feature arrays: KYC tokens clone id_verifications + liveness_checks + face_matches + face + AML + location + POA + phone + email + database_validations + logs; KYB tokens clone registry_checks + key_people_checks + document_verifications + AML + phone + email + location + questionnaire + logs.

Backward compatibility:
Tokens minted before the unified-sharing rollout (no session_kind field) default to "user" when decoded.

Idempotency:
Importing the same share_token twice into the same application is rejected with 403, for user and business sessions alike.

Failure modes:
\- 400 - { "share_token": ["Invalid share token."] } when the token is malformed or was not issued by Didit.
\- 400 - { "share_token": ["Share token has expired."] } when its exp has passed.
\- 400 - { "share_token": ["This token is not valid for this application."] } when the token was issued for another application.
\- 400 - { "share_token": ["Original session does not exist."] } when the shared session was deleted.
\- 403 - { "detail": "This session has already been shared with your application." } when the session was already imported into this application.
\- 404 - { "detail": "Workflow does not exist for this application." } when workflow_id is not a workflow of your application.

When to call:
\- Cross-organization Reusable KYC (bank → fintech, marketplace → payment provider, etc.).
\- Promoting a verified user from your sandbox application to your production application.
\- Group-company sharing across sibling applications.

After import:
\- The new session works like any other session — fetch with GET /v3/session/{session_id}/decision/ (see /sessions-api/retrieve-session) and react to status / data webhooks.

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

\</pre>



      
      

Enganxa a

## Suport de KYC i KYBDidit decodifica el token de compartició, llegeix el `session_kind` incrustat i clona el tipus de sessió corresponent:- `session_kind: "user"`: clona la sessió d'usuari més les files relacionades d'identitat, imatge facial, prova de vida, coincidència facial, AML, ubicació, POA, telèfon, correu electrònic, validació de bases de dades i registres.
- `session_kind: "business"`: clona la sessió d'empresa més les files relacionades de comprovació del registre mercantil, registres de persones clau, documents, cribratges AML, telèfon, correu electrònic, ubicació, qüestionari i registres.Si el token és anterior a la implantació de la compartició unificada i no té el camp `session_kind`, Didit assigna per defecte `"user"` per mantenir la compatibilitat amb versions anteriors.## Què es crea- Una **sessió nova** del mateix tipus a la teva aplicació, amb un `session_id`, `session_number` i `session_url` nous.
- El camp `shared_from_session` de la sessió nova apunta a la sessió original de l'aplicació d'origen.
- L'estat de la sessió nova és l'estat original (`trust_review: true`) o `IN_REVIEW` (`trust_review: false`).
- Es crea automàticament una entitat nova (Usuari o Empresa) per al `vendor_data` si no n'existeix cap.## Exemples> [tab] Importar una sessió de verificació d'usuaris (KYC)
>
> ```bash theme={null}
> curl -X POST https://verification.didit.me/v3/session/import-shared/ \
>   -H "x-api-key: YOUR_API_KEY" \
>   -H "Content-Type: application/json" \
>   -d '{
>     "share_token": "eyJhbGciOiJIUzI1NiJ9...",
>     "workflow_id": "your-kyc-workflow-id",
>     "vendor_data": "partner-user-42",
>     "trust_review": false
>   }'
> ```
>
> **Resposta (201 Created):**
>
> ```json theme={null}
> {
>   "session_id": "new-uuid",
>   "session_kind": "user",
>   "shared_from_session": "original-uuid",
>   "status": "In Review",
>   "vendor_data": "partner-user-42",
>   "id_verifications": [...],
>   "liveness_checks": [...],
>   "...": "..."
> }
> ```> [tab] Importar una sessió de verificació d'empreses (KYB)
>
> ```bash theme={null}
> curl -X POST https://verification.didit.me/v3/session/import-shared/ \
>   -H "x-api-key: YOUR_API_KEY" \
>   -H "Content-Type: application/json" \
>   -d '{
>     "share_token": "eyJhbGciOiJIUzI1NiJ9...",
>     "workflow_id": "your-kyb-workflow-id",
>     "vendor_data": "partner-biz-acme",
>     "trust_review": true
>   }'
> ```
>
> **Resposta (201 Created):**
>
> ```json theme={null}
> {
>   "session_id": "new-uuid",
>   "session_kind": "business",
>   "shared_from_session": "original-uuid",
>   "status": "Approved",
>   "vendor_data": "partner-biz-acme",
>   "registry_checks": [...],
>   "key_people_checks": [...],
>   "document_verifications": [...],
>   "...": "..."
> }
> ```## Paràmetre `trust_review`| Valor | Efecte |
| - | - |
| `true` | La sessió importada conserva l'estat original (p. ex. `APPROVED`). Utilitza-ho quan confiïs plenament en la decisió del soci que comparteix la sessió. |
| `false` | La sessió importada passa a `IN_REVIEW` perquè el teu equip la pugui tornar a revisar abans d'actuar. És el valor per defecte segur per als socis externs. |## Errors| Estat | Motiu |
| - | - |
| `400` | El `share_token` no és vàlid, ha caducat, s'ha emès per a una altra aplicació o apunta a una sessió que s'ha eliminat. El missatge és sota la clau `share_token`. |
| `403` | La sessió ja s'ha importat a la teva aplicació. |
| `404` | El `workflow_id` no és un flux de treball de la teva aplicació. |## IdempotènciaImportar el mateix `share_token` dues vegades a la mateixa aplicació es rebutja amb `403`, tant per a sessions d'usuari com per a sessions d'empresa.## Relacionat- [Compartir sessió](https://docs.didit.me/ca/sessions-api/share-session/share.md)
- [Guia de KYC reutilitzable](https://docs.didit.me/ca/core-technology/reusable-kyc/share-kyc-via-api.md)
- [Visió general de les sessions](https://docs.didit.me/ca/sessions-api/overview.md)


## OpenAPI

````yaml ca/openapi-25.json POST /v3/session/import-shared/
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/import-shared/:
    post:
      tags:
        - Sessions
      summary: >-
        Bescanvia un token per compartir per clonar una sessió de verificació a
        la teva aplicació
      description: >-
        Bescanvia un token per compartir per clonar una sessió de KYC o KYB a
        l'aplicació que fa la crida amb un nou `session_id`. No idempotent — un
        token es bescanvia una vegada per receptor.
      operationId: post_v3_session_import_shared
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - share_token
                - trust_review
                - workflow_id
              properties:
                share_token:
                  type: string
                  description: >-
                    Token per compartir JWT emès per [`POST
                    /v3/session/{sessionId}/share/`](/sessions-api/share-session).
                  example: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
                trust_review:
                  type: boolean
                  description: >-
                    Si és `true`, la sessió clonada conserva el `status` final
                    de l'origen. Si és `false`, es força a l'estat `In Review`.
                  example: false
                workflow_id:
                  type: string
                  format: uuid
                  description: >-
                    UUID d'un flux de treball de l'aplicació que fa la crida.
                    Els ID d'altres aplicacions es rebutgen amb un `404`.
                  example: 9f9b1234-aaaa-bbbb-cccc-1234567890ab
                vendor_data:
                  type: string
                  nullable: true
                  description: >-
                    Substitució opcional per al `vendor_data` de la sessió
                    clonada.
                  example: user-1
            example:
              share_token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
              trust_review: false
              workflow_id: 9f9b1234-aaaa-bbbb-cccc-1234567890ab
              vendor_data: user-1
      responses:
        '201':
          description: >-
            Sessió clonada. El cos és el payload de decisió V3 per a tots dos
            tipus, discriminat per `session_kind`: `"user"` (KYC) amb blocs de
            funcionalitats basats en llistes com ara `id_verifications`,
            `liveness_checks`, `aml_screenings`; `"business"` (KYB) amb blocs
            com ara `registry_checks` i `key_people_checks`. Tots dos inclouen
            `shared_from_session`, el `session_id` de la sessió original a
            l'aplicació d'origen. Amb `trust_review: false`, l'`status` de la
            sessió clonada es força a `In Review`.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SessionDecision'
              examples:
                User session imported:
                  summary: >-
                    Sessió KYC clonada (truncada; en realitat és el payload
                    complet de decisió V3)
                  value:
                    session_id: 11111111-2222-3333-4444-555555555555
                    session_kind: user
                    shared_from_session: 99999999-8888-7777-6666-555555555555
                    session_number: 43762
                    session_url: null
                    status: In Review
                    workflow_id: 9f9b1234-aaaa-bbbb-cccc-1234567890ab
                    vendor_data: user-1
                    created_at: '2026-05-17T08:42:11Z'
                    expires_at: '2026-05-24T08:42:11Z'
                Business session imported:
                  summary: >-
                    Sessió KYB clonada (truncada; en realitat és el payload
                    complet de decisió V3 KYB)
                  value:
                    session_id: 22222222-3333-4444-5555-666666666666
                    session_kind: business
                    shared_from_session: 88888888-7777-6666-5555-444444444444
                    session_number: 982
                    session_url: null
                    status: Approved
                    workflow_id: 9f9b1234-aaaa-bbbb-cccc-1234567890ab
                    vendor_data: company-1
        '400':
          description: >-
            Error de validació (token no vàlid, caducat, destinació incorrecta o
            fa referència a una sessió que ja no existeix).
          content:
            application/json:
              examples:
                Invalid Share Token:
                  summary: JWT no vàlid
                  value:
                    share_token:
                      - Invalid share token.
                Expired Share Token:
                  summary: Token posterior a `exp`
                  value:
                    share_token:
                      - Share token has expired.
                Wrong audience:
                  summary: Token no vinculat a aquesta aplicació
                  value:
                    share_token:
                      - This token is not valid for this application.
                Original missing:
                  summary: La sessió d'origen s'ha eliminat
                  value:
                    share_token:
                      - Original session does not exist.
        '403':
          description: >-
            Falta la clau d'API (una clau incorrecta, revocada o caducada rep
            `401`), o aquesta sessió d'origen ja s'ha importat a l'aplicació
            sol·licitant (un sol bescanvi per receptor).
          content:
            application/json:
              examples:
                Forbidden:
                  summary: Prohibit
                  value:
                    detail: You do not have permission to perform this action.
                Already imported:
                  summary: L'origen ja s'ha importat un cop
                  value:
                    detail: >-
                      This session has already been shared with your
                      application.
        '404':
          description: '`workflow_id` no pertany a l''aplicació que fa la crida.'
          content:
            application/json:
              examples:
                Workflow not found:
                  summary: Flux de treball desconegut
                  value:
                    detail: Workflow does not exist for this application.
      security:
        - ApiKeyAuth: []
      x-codeSamples:
        - lang: curl
          label: curl
          source: |-
            curl -X POST \
              https://verification.didit.me/v3/session/import-shared/ \
              -H 'x-api-key: YOUR_API_KEY' \
              -H 'Content-Type: application/json' \
              -d '{
                "share_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
                "trust_review": false,
                "workflow_id": "9f9b1234-aaaa-bbbb-cccc-1234567890ab",
                "vendor_data": "user-1"
              }'
        - lang: python
          label: Python
          source: |-
            from didit import Didit

            # Reads DIDIT_API_KEY.
            client = Didit()

            result = client.sessions.import_shared(
                share_token="eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
                trust_review=False,
                workflow_id="9f9b1234-aaaa-bbbb-cccc-1234567890ab",
                vendor_data="user-1",
            )
            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.importShared({
              share_token: "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
              trust_review: false,
              workflow_id: "9f9b1234-aaaa-bbbb-cccc-1234567890ab",
              vendor_data: "user-1",
            });
            console.log(result);
        - lang: go
          label: Go
          source: "ctx := context.Background()\n// Reads DIDIT_API_KEY.\nclient := didit.NewClient()\n\nresult, err := client.Sessions.ImportShared(ctx, didit.SessionsImportSharedParams{\n\tShareToken:  \"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...\",\n\tTrustReview: false,\n\tWorkflowID:  \"9f9b1234-aaaa-bbbb-cccc-1234567890ab\",\n\tVendorData:  didit.String(\"user-1\"),\n})\nif err != nil {\n\tlog.Fatal(err)\n}\nfmt.Printf(\"%+v\\n\", result)"
        - lang: java
          label: Java
          source: >-
            import me.didit.Didit;

            import me.didit.types.SessionsImportSharedParams;


            // Reads DIDIT_API_KEY.

            Didit client = new Didit();


            var result =
            client.sessions().importShared(SessionsImportSharedParams.builder()
                    .shareToken("eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...")
                    .trustReview(false)
                    .workflowId("9f9b1234-aaaa-bbbb-cccc-1234567890ab")
                    .vendorData("user-1")
                    .build());
            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->importShared([
                'share_token' => 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...',
                'trust_review' => false,
                'workflow_id' => '9f9b1234-aaaa-bbbb-cccc-1234567890ab',
                'vendor_data' => 'user-1',
            ]);
            print_r($result->toArray());
        - lang: ruby
          label: Ruby
          source: |-
            require "didit"

            # Reads DIDIT_API_KEY.
            didit = Didit::Client.new

            result = didit.sessions.import_shared(
              share_token: "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
              trust_review: false,
              workflow_id: "9f9b1234-aaaa-bbbb-cccc-1234567890ab",
              vendor_data: "user-1"
            )
            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.ImportSharedAsync(new
            SessionsImportSharedParams

            {
                ShareToken = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
                TrustReview = false,
                WorkflowId = "9f9b1234-aaaa-bbbb-cccc-1234567890ab",
                VendorData = "user-1",
            });

            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.