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

# API de importar sessão compartilhada: KYC e KYB

> Use POST /v3/session/import-shared/ da Didit para importar sessões KYC ou KYB com token de compartilhamento de parceiro, sem reverificação.



Prompt para importar sessão compartilhada
        Copiar o prompt para a área de transferência



      
      

\<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>



      
      

Colar em

## Suporte a KYC e KYBA Didit decodifica o token de compartilhamento, lê o `session_kind` incorporado e clona o tipo de sessão correspondente:- `session_kind: "user"`: clona a sessão de usuário e os registros relacionados de identidade, face, prova de vida, correspondência facial, AML, localização, comprovante de endereço, telefone, e-mail, validação de banco de dados e logs.
- `session_kind: "business"`: clona a sessão de empresa e os registros relacionados de consulta ao registro de empresas, pessoas-chave, documentos, triagens AML, telefone, e-mail, localização, questionário e logs.Se o token for anterior à implantação do compartilhamento unificado e não tiver o campo `session_kind`, a Didit usa `"user"` por padrão, para manter a compatibilidade com versões anteriores.## O que é criado- Uma **nova sessão** do mesmo tipo na sua aplicação, com novos `session_id`, `session_number` e `session_url`.
- O campo `shared_from_session` da nova sessão aponta para a sessão original na aplicação de origem.
- O status da nova sessão é o status original (`trust_review: true`) ou `IN_REVIEW` (`trust_review: false`).
- Uma nova entidade (Usuário ou Empresa) é criada automaticamente para o `vendor_data` caso ainda não exista.## Exemplos> [tab] Importar uma sessão de verificação de usuários (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 uma sessão de verificação de empresas (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âmetro `trust_review`| Valor | Efeito |
| - | - |
| `true` | A sessão importada mantém o status original (por exemplo, `APPROVED`). Use quando você confia totalmente na decisão do parceiro que compartilhou a sessão. |
| `false` | A sessão importada entra em `IN_REVIEW` para que sua equipe possa revisá-la novamente antes de agir. Padrão seguro para parceiros externos. |## Erros| Status | Motivo |
| - | - |
| `400` | O `share_token` é inválido, expirou, foi emitido para outra aplicação ou aponta para uma sessão que foi excluída. A mensagem fica na chave `share_token`. |
| `403` | A sessão já foi importada para a sua aplicação. |
| `404` | O `workflow_id` não é um workflow da sua aplicação. |## IdempotênciaImportar o mesmo `share_token` duas vezes na mesma aplicação é recusada com `403`, tanto para sessões de usuário quanto de empresa.## Conteúdos relacionados- [Compartilhar sessão](https://docs.didit.me/pt-br/sessions-api/share-session/share.md)
- [Guia de KYC reutilizável](https://docs.didit.me/pt-br/core-technology/reusable-kyc/share-kyc-via-api.md)
- [Visão geral de sessões](https://docs.didit.me/pt-br/sessions-api/overview.md)


## OpenAPI

````yaml pt-br/openapi-25.json POST /v3/session/import-shared/
openapi: 3.0.0
info:
  version: 3.0.0
  title: Didit Verification API
  description: API de verificação de identidade. Autentique-se com o cabeçalho x-api-key.
servers:
  - url: https://verification.didit.me
security: []
tags: []
paths:
  /v3/session/import-shared/:
    post:
      tags:
        - Sessions
      summary: >-
        Resgatar um token de compartilhamento para clonar uma sessão de
        verificação na sua aplicação
      description: >-
        Resgate um token de compartilhamento para clonar uma sessão de KYC ou
        KYB na aplicação que faz a chamada, com um novo `session_id`. Não é
        idempotente: um token é resgatado uma única vez por destinatário.
      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 de compartilhamento JWT emitido por [`POST
                    /v3/session/{sessionId}/share/`](/sessions-api/share-session).
                  example: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
                trust_review:
                  type: boolean
                  description: >-
                    Se `true`, a sessão clonada mantém o `status` final da
                    sessão de origem. Se `false`, ela é forçada para `In
                    Review`.
                  example: false
                workflow_id:
                  type: string
                  format: uuid
                  description: >-
                    UUID de um fluxo de verificação (workflow) na aplicação que
                    faz a chamada. IDs de outras aplicações são rejeitados com
                    `404`.
                  example: 9f9b1234-aaaa-bbbb-cccc-1234567890ab
                vendor_data:
                  type: string
                  nullable: true
                  description: Substituição opcional do `vendor_data` da sessão 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: >-
            Sessão clonada. O corpo é o payload de decisão V3 para os dois
            tipos, diferenciados por `session_kind`: `"user"` (KYC), com blocos
            de recursos em lista como `id_verifications`, `liveness_checks` e
            `aml_screenings`; `"business"` (KYB), com blocos como
            `registry_checks` e `key_people_checks`. Ambos incluem
            `shared_from_session`, o `session_id` da sessão original na
            aplicação de origem. Com `trust_review: false`, o `status` da sessão
            clonada é forçado para `In Review`.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SessionDecision'
              examples:
                User session imported:
                  summary: >-
                    Sessão KYC clonada (truncada; na prática, é o payload
                    completo de decisão da 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: >-
                    Sessão KYB clonada (truncada; na prática, é o payload
                    completo de decisão KYB da V3)
                  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: >-
            Erro de validação (token inválido, expirado, com destino incorreto
            ou que referencia uma sessão que não existe mais).
          content:
            application/json:
              examples:
                Invalid Share Token:
                  summary: JWT inválido
                  value:
                    share_token:
                      - Invalid share token.
                Expired Share Token:
                  summary: Token com `exp` ultrapassado
                  value:
                    share_token:
                      - Share token has expired.
                Wrong audience:
                  summary: Token não vinculado a esta aplicação
                  value:
                    share_token:
                      - This token is not valid for this application.
                Original missing:
                  summary: A sessão de origem foi excluída
                  value:
                    share_token:
                      - Original session does not exist.
        '403':
          description: >-
            Chave de API ausente (uma chave incorreta, revogada ou expirada
            recebe `401`), ou esta sessão de origem já foi importada para a
            aplicação chamadora (um resgate por receptor).
          content:
            application/json:
              examples:
                Forbidden:
                  summary: Proibido
                  value:
                    detail: You do not have permission to perform this action.
                Already imported:
                  summary: Origem já importada uma vez
                  value:
                    detail: >-
                      This session has already been shared with your
                      application.
        '404':
          description: '`workflow_id` não pertence à aplicação que fez a chamada.'
          content:
            application/json:
              examples:
                Workflow not found:
                  summary: Fluxo desconhecido
                  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: O identificador único da sessão.
        session_kind:
          type: string
          enum:
            - user
            - business
          description: >-
            Discriminador que indica se esta é uma sessão de Verificação de
            usuários (KYC) ou de Verificação de empresas (KYB). Quando `user`,
            os arrays de recursos de KYC (`id_verifications`,
            `nfc_verifications`, `liveness_checks`, `face_matches`,
            `poa_verifications`, `document_ai_documents`,
            `database_validations`, ...) se aplicam e os arrays de empresa estão
            ausentes. Quando `business`, o payload traz `registry_checks`,
            `document_verifications`, `key_people_checks`, além dos arrays
            compartilhados (`aml_screenings`, `phone_verifications`,
            `email_verifications`, `ip_analyses`, `questionnaire_responses`).
            **Omitido quando `include=events` é passado**: o formato com eventos
            existe apenas para sessões de usuário, por isso o discriminador é
            removido dessa variante.
        shared_from_session:
          type: string
          format: uuid
          nullable: true
          description: >-
            Para uma sessão clonada com `POST /v3/session/import-shared/`: o
            `session_id` da sessão original na aplicação de origem. `null` para
            todas as outras sessões. Omitido quando `include=events` é enviado.
        shared_from_session_number:
          type: integer
          nullable: true
          description: >-
            `session_number` da sessão de origem, quando esta sessão foi
            importada de outra aplicação da sua organização. `null` caso
            contrário.
        session_number:
          type: integer
          description: O número da sessão.
          nullable: true
        session_url:
          type: string
          format: uri
          description: A URL da sessão.
          nullable: true
        status:
          type: string
          enum:
            - Not Started
            - In Progress
            - Awaiting User
            - In Review
            - Approved
            - Declined
            - Resubmitted
            - Expired
            - Kyc Expired
            - Abandoned
          description: >-
            Status geral do ciclo de vida da sessão — o resultado consolidado do
            fluxo. Os valores finais são `Approved`, `Declined`, `In Review`,
            `Expired`, `Kyc Expired` e `Abandoned`; `Not Started`, `In
            Progress`, `Awaiting User` e `Resubmitted` indicam que a sessão
            ainda está avançando pelo fluxo.
        status_override:
          type: object
          nullable: true
          description: >-
            Presente quando um revisor definiu o `status` manualmente. `null`
            quando o status é o automático. Use-o para distinguir uma aprovação
            manual de uma automática.
          properties:
            overridden_at:
              type: string
              format: date-time
              nullable: true
            automatic_status:
              type: string
              nullable: true
              description: O status a que chegam as verificações da própria plataforma.
        decision_trace:
          type: object
          description: >-
            Como o status foi alcançado: quem o definiu e quais avisos o
            determinaram.
          properties:
            status:
              type: string
              description: O status da sessão.
            decided_by:
              type: string
              nullable: true
              enum:
                - manual
                - automatic
                - investigator
                - null
              description: >-
                Quem definiu o status. `null` enquanto a sessão não tiver uma
                decisão.
            decided_at:
              type: string
              format: date-time
              nullable: true
            automatic_status:
              type: string
              nullable: true
              description: >-
                O que as verificações da própria plataforma concluem, o que
                difere de `status` após uma decisão manual.
            terminal_node_id:
              type: string
              nullable: true
              description: O nó de status do fluxo que encerrou a sessão, quando houver.
            actor:
              type: object
              nullable: true
              description: O revisor responsável por uma decisão manual.
              properties:
                user:
                  type: string
                  nullable: true
                actor_type:
                  type: string
                  nullable: true
            warning_counts:
              type: object
              description: >-
                Avisos por `log_type` (`error`, `warning`, `information`) e
                `total`.
              additionalProperties:
                type: integer
            status_warnings:
              type: array
              description: Os avisos que definem um status `Declined` ou `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: >-
                      A lista do payload da qual o aviso veio, por exemplo
                      `id_verifications`.
                  short_description:
                    type: string
                    nullable: true
        linked_records:
          type: object
          nullable: true
          description: >-
            Um resumo de outros registros vinculados à sessão. `null` quando não
            há nada a mostrar e para fluxos que declaram um padrão de garantia
            de idade.
          properties:
            same_face:
              type: object
              nullable: true
              description: >-
                Outras pessoas cujo rosto correspondeu a uma das buscas faciais
                desta sessão.
              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 estável do grupo de fluxos que gerou esta sessão. Os
            fluxos são versionados: este valor identifica o fluxo em si, não a
            versão específica.
          nullable: true
        features:
          type: array
          items:
            type: string
            description: O recurso da sessão.
          description: >-
            Lista dos recursos de verificação configurados para esta sessão,
            como nomes de exibição: `ID_VERIFICATION`, `NFC`, `LIVENESS`,
            `FACE_MATCH`, `POA`, `PHONE`, `EMAIL_VERIFICATION`, `AML`,
            `IP_ANALYSIS`, `DATABASE_VALIDATION`, `QUESTIONNAIRE`,
            `AGE_ESTIMATION`, `FACE_SEARCH`, `GEOLOCATION` (verificação de
            localização) (as sessões de Verificação de empresas usam o conjunto
            de recursos de KYB: `KYB_REGISTRY`, `KYB_DOCUMENTS`,
            `KYB_KEY_PEOPLE`, `AML`, `PHONE`, `EMAIL_VERIFICATION`,
            `IP_ANALYSIS`, `QUESTIONNAIRE`). Com `include=events`, cada entrada
            se torna um objeto `{feature, node_id}` em vez de uma string
            simples, e o recurso de e-mail é renomeado: ele aparece como `EMAIL`
            no modo de eventos em vez do `EMAIL_VERIFICATION` usado aqui.
        vendor_data:
          type: string
          description: Os dados do fornecedor (vendor data) da sessão.
          nullable: true
        metadata:
          type: object
          description: Os metadados da sessão.
          nullable: true
        expected_details:
          type: object
          description: >-
            Dados esperados informados na criação da sessão, usados para
            validação cruzada com os dados extraídos (KYC) ou para pré-preencher
            a busca no registro de empresas (KYB). Retorna exatamente as chaves
            que foram informadas; `null` quando nenhuma foi informada. Sessões
            de KYC trazem os campos da pessoa; sessões de empresa (KYB) trazem
            `company_name`, `registry_country` e `registration_number`.
          properties:
            first_name:
              type: string
              description: Nome do usuário. Por exemplo, `John`.
            last_name:
              type: string
              description: Sobrenome do usuário. Por exemplo, `Doe`.
            date_of_birth:
              type: string
              format: date
              description: >-
                Data de nascimento do usuário no formato YYYY-MM-DD. Por
                exemplo, `1990-05-15`.
            gender:
              type: string
              nullable: true
              enum:
                - M
                - F
              default: null
              description: Gênero do usuário. Deve ser 'M', 'F' ou null.
            nationality:
              type: string
              description: >-
                Código ISO 3166-1 alpha-3 que representa o país de origem do
                solicitante. Por exemplo, `USA`.
            country:
              type: string
              description: >-
                Código ISO 3166-1 alpha-3 que representa o país do documento de
                Comprovante de endereço ou o país do documento de identidade do
                solicitante, que pode ser diferente da nacionalidade. Por
                exemplo, `GBR`.
            address:
              type: string
              description: >-
                O endereço em formato legível, com o máximo de informações
                possível. Por exemplo, `123 Main St, San Francisco, CA 94105,
                USA`.
            identification_number:
              type: string
              description: >-
                O número do documento, número pessoal ou número fiscal do
                usuário. Por exemplo, `123456789`.
            ip_address:
              type: string
              format: ipv4
              description: >-
                Endereço IP esperado para a sessão. Se o endereço IP real for
                diferente desse valor, um aviso será registrado. Por exemplo,
                `192.168.1.100`.
            expected_document_types:
              type: array
              description: >-
                Tipos de documento aos quais a etapa de verificação de
                identidade foi restrita na criação da sessão. Vazio ou não
                definido significa sem restrição. Códigos: `P` (passaporte),
                `ID` (documento nacional de identidade), `DL` (carteira de
                motorista), `RP` (autorização de residência), `HIC` (cartão de
                seguro saúde), `TC` (cartão fiscal), `SSC` (cartão de seguridade
                social).
              items:
                type: string
                enum:
                  - P
                  - ID
                  - DL
                  - RP
                  - HIC
                  - TC
                  - SSC
            id_country:
              type: string
              nullable: true
              description: >-
                País emissor esperado do documento de identidade (ISO 3166-1
                alpha-3), quando restrito no momento da criação.
              example: ESP
            poa_country:
              type: string
              nullable: true
              description: >-
                País esperado do documento de comprovante de endereço (ISO
                3166-1 alpha-3), quando restrito no momento da criação.
              example: ESP
            company_name:
              type: string
              description: >-
                Razão social esperada da empresa. Somente para sessões de
                empresa (KYB).
            registry_country:
              type: string
              description: >-
                País do registro esperado no formato `XX` ou `XX-YY` (ISO 3166-1
                alpha-2, opcionalmente com uma subdivisão ISO 3166-2 para
                registros de nível estadual, por exemplo, `US-CA`). Somente para
                sessões de empresa (KYB).
            registration_number:
              type: string
              description: >-
                Número de registro da empresa esperado. Somente sessões de
                empresas (KYB).
          nullable: true
        contact_details:
          type: object
          description: >-
            Dados de contato informados na criação da sessão (usados para
            e-mails de notificação, verificação de telefone/e-mail
            pré-preenchida e idioma de comunicação). `null` quando não foi
            informado nem e-mail nem número de telefone.
          properties:
            email:
              type: string
              description: >-
                Endereço de e-mail do usuário (por exemplo,
                "john.doe@example.com") que será usado na etapa de Verificação
                de e-mail. Se não for informado, o usuário deverá fornecê-lo
                durante o fluxo de verificação.
            email_lang:
              type: string
              description: >-
                Código de idioma (ISO 639-1) para notificações por e-mail.
                Define o idioma de todas as comunicações por e-mail (por
                exemplo, "en", "es", "fr").
            send_notification_emails:
              type: boolean
              default: false
              description: >-
                Se true e um e-mail for informado, a Didit envia de forma
                assíncrona o e-mail inicial "Verifique sua identidade" quando a
                sessão de Verificação de usuários (KYC) ou Verificação de
                empresas (KYB) é criada. A Didit também envia ao endereço de
                e-mail informado notificações de status da verificação para
                sessões que exigem revisão manual.
            phone:
              type: string
              nullable: true
              description: >-
                Número de telefone do usuário no formato E.164, se disponível
                (por exemplo, +14155552671). `null` quando apenas um e-mail foi
                informado na criação da sessão. Observação: este campo retorna o
                número de telefone original informado na criação da sessão. Se o
                número era inválido, ele pode não estar no formato E.164.
          nullable: true
        callback:
          type: string
          format: uri
          description: A URL de retorno da sessão.
          nullable: true
        id_verifications:
          type: array
          nullable: true
          description: >-
            **Array de relatórios de verificação de identidade (OCR)**
            produzidos pelas etapas de documento de identidade no grafo do
            fluxo. Sempre um array JSON: leia `id_verifications[0]` e itere se o
            seu fluxo puder executar mais de uma verificação de identidade (por
            exemplo, uma verificação principal mais uma verificação adicional).
            Fica `null` até que pelo menos uma etapa de identidade tenha
            produzido dados. Cada item é o relatório completo, incluindo
            `node_id`, o `status` no nível do recurso, os campos extraídos do
            documento, URLs das imagens, pontuações de qualidade, MRZ, análise
            do endereço, correspondências entre sessões e `warnings[]`.
          items:
            type: object
            description: >-
              Um relatório de verificação de identidade: o relatório completo de
              uma única etapa de Verificação de identidade.
              `verification_method` indica qual dos três métodos o gerou
              (captura de documento, consulta sem documento ou login com
              carteira), e o bloco de evidências específico do método é
              preenchido de acordo.
            properties:
              node_id:
                type: string
                description: >-
                  ID do nó do grafo do fluxo da etapa de OCR que gerou este
                  relatório.
              verification_method:
                type: string
                enum:
                  - document
                  - id_lookup
                  - wallet
                description: >-
                  Qual método de Verificação de identidade gerou este relatório.
                  `document` - o usuário fotografou um documento de identidade
                  físico (o padrão, e o valor em todas as sessões criadas antes
                  de os outros métodos existirem). `id_lookup` - o usuário
                  digitou o número do documento nacional de identidade, que foi
                  verificado em um registro governamental ou em outra fonte
                  oficial desse país (`id_lookup.source` indica qual). `wallet`
                  - o usuário entrou com uma identidade digital governamental ou
                  bancária.
              assurance:
                type: string
                enum:
                  - documentary
                  - data_match
                  - cryptographic
                description: >-
                  Nível de garantia derivado de `verification_method`:
                  `documentary` para um documento que foi capturado e
                  verificado, `data_match` para dados que corresponderam a um
                  registro mantido pela fonte consultada, `cryptographic` para
                  atributos que um provedor de identidade autenticou e assinou.
              wallet_provider:
                type: string
                nullable: true
                description: >-
                  Id de catálogo da carteira quando `verification_method` é
                  `wallet` (`mitid`, `bankid_se`, `itsme`, ...). `null` nos
                  demais casos.
              fallback_from:
                type: object
                nullable: true
                description: >-
                  Motivo pelo qual um método que não usa documento encerrou a
                  etapa de identidade. Definido no relatório recusado quando uma
                  consulta ou um login com carteira falhou e a opção de fallback
                  do país era `decline`. `null` nos demais casos.
                properties:
                  method:
                    type: string
                    enum:
                      - id_lookup
                      - wallet
                    description: O método que falhou.
                  reason:
                    type: string
                    description: >-
                      O resultado que o encerrou, por exemplo `no_match`,
                      `provider_error`, `cancelled`, `timeout`.
                  action:
                    type: string
                    description: >-
                      A ação configurada que foi executada, por exemplo
                      `decline`.
              id_lookup:
                type: object
                nullable: true
                description: >-
                  Evidência do registro. Presente apenas quando
                  `verification_method` é `id_lookup`; caso contrário, `null`.
                properties:
                  source:
                    type: string
                    description: >-
                      Nome, voltado ao cliente, da fonte consultada, por
                      exemplo, `Department of Home Affairs` (um registro
                      governamental) ou `UK credit bureau and financial services
                      records` (não é um registro governamental). Esta é a única
                      declaração de procedência da consulta; não presuma que a
                      fonte seja governamental.
                  checked_at:
                    type: string
                    format: date-time
                    nullable: true
                    description: Quando o registro respondeu.
                  attempts:
                    type: integer
                    description: >-
                      Número da tentativa (começando em 1) da qual este
                      relatório se originou.
                  max_attempts:
                    type: integer
                    description: >-
                      Limite de tentativas configurado para o país (de 1 a 5,
                      padrão 1).
                  outcome:
                    type: string
                    enum:
                      - match
                      - partial_match
                      - no_match
                      - provider_error
                      - format_rejected
                    nullable: true
                    description: >-
                      O que o registro respondeu. Apenas `match`,
                      `partial_match` e `no_match` contam para o limite de
                      tentativas e são cobrados.
                  comparison:
                    type: array
                    description: >-
                      Uma linha por campo comparável sobre o qual a fonte
                      respondeu, mais uma linha por erro da fonte. As linhas de
                      comparação usam os nomes de campo normalizados abaixo em
                      vez das chaves de campo da requisição do país, porque
                      vários campos da requisição (nome e sobrenome, ou qualquer
                      um dos aliases de identificador) se reduzem a uma única
                      comparação. Uma fonte que falhou acrescenta uma linha com
                      `field: "provider"` e `result: "error"`, então leia
                      `result` antes de tratar uma linha como veredito de um
                      campo.
                    items:
                      type: object
                      required:
                        - field
                        - label
                        - provided
                        - record
                        - result
                      properties:
                        field:
                          type: string
                          enum:
                            - identification_number
                            - full_name
                            - date_of_birth
                            - address
                            - provider
                          description: >-
                            Campo de comparação normalizado. `provider` não é um
                            campo do usuário: ele indica uma linha de erro da
                            fonte.
                        label:
                          type: string
                          description: >-
                            Rótulo de exibição da linha, por exemplo `ID
                            number`, `Full name`, `Provider`.
                        provided:
                          type: string
                          nullable: true
                          description: >-
                            O que o usuário digitou. `null` em uma linha de erro
                            de `provider`.
                        record:
                          type: string
                          nullable: true
                          description: >-
                            O que a fonte continha. Em uma linha de erro de
                            `provider`, traz a mensagem de erro no lugar.
                        result:
                          type: string
                          enum:
                            - match
                            - partial
                            - no_match
                            - error
                          description: >-
                            Resultado da comparação por campo. `error` aparece
                            apenas em uma linha `provider` e significa que essa
                            fonte não respondeu; trate-o como evidência sobre a
                            consulta, nunca como divergência de campo.
                  registry_portrait:
                    type: string
                    format: uri
                    nullable: true
                    description: >-
                      URL pré-assinada de curta duração para o retrato retornado
                      pela fonte. Somente para os quatro registros
                      governamentais que retornam um (África do Sul, Nigéria,
                      Argentina, Panamá).
                  face_match_score:
                    type: number
                    nullable: true
                    description: >-
                      Selfie comparada ao retrato do registro, de 0 a 100.
                      Somente quando o registro retorna um retrato.
              wallet_verification:
                type: object
                nullable: true
                description: >-
                  Evidência da credencial. Presente apenas quando
                  `verification_method` é `wallet`; caso contrário, `null`.
                properties:
                  provider:
                    type: string
                    description: Id de catálogo da carteira, por exemplo, `mitid`.
                  provider_name:
                    type: string
                    nullable: true
                    description: >-
                      Nome da carteira como o usuário final a conhece, por
                      exemplo `MitID`.
                  issuing_authority:
                    type: string
                    nullable: true
                    description: >-
                      A autoridade por trás da carteira, por exemplo `Danish
                      Agency for Digital Government`.
                  issuing_country:
                    type: string
                    description: País ISO 3166-1 alpha-3 em que a carteira foi oferecida.
                  credential_type:
                    type: string
                    nullable: true
                    description: >-
                      Credencial que a carteira apresentou, por exemplo,
                      `person_identification`.
                  level_of_assurance:
                    type: string
                    enum:
                      - low
                      - substantial
                      - high
                    nullable: true
                    description: >-
                      O nível de garantia declarado pela carteira. Um login que
                      declara um nível inferior ao solicitado falha em vez de
                      ser rebaixado.
                  verified_at:
                    type: string
                    format: date-time
                    nullable: true
                    description: O instante de autenticação da carteira.
                  signature_valid:
                    type: boolean
                    nullable: true
                    description: >-
                      Se a asserção assinada retornada pela carteira foi
                      validada.
                  attributes:
                    type: object
                    additionalProperties: true
                    description: >-
                      Os atributos que a carteira compartilhou, com as chaves
                      conforme listadas na entrada do catálogo da carteira.
                  portrait:
                    type: string
                    format: uri
                    nullable: true
                    description: >-
                      URL pré-assinada de curta duração para o retrato
                      compartilhado pela carteira, quando ela compartilha um.
                  face_match_score:
                    type: number
                    nullable: true
                    description: >-
                      Selfie comparada ao retrato da carteira, de 0 a 100,
                      quando a carteira compartilha um.
              status:
                type: string
                enum:
                  - Not Finished
                  - Approved
                  - Declined
                  - In Review
                  - Expired
                description: >-
                  Status desta etapa de verificação de identidade no nível do
                  recurso. É independente do `status` de nível superior da
                  sessão: uma sessão pode chegar à decisão geral enquanto um
                  recurso individual permanece `In Review`.
              document_type:
                type: string
                description: Tipo de documento de identidade
              document_subtype:
                type: string
                nullable: true
                description: >-
                  Código de subtipo de documento aceito nas configurações de
                  documento do fluxo, incluindo a região do documento quando
                  aplicável. Exemplos: `ID_CARD_GENERIC`,
                  `QUEENSLAND_DRIVER_LICENSE_GENERIC`.
              document_number:
                type: string
                description: Número de identificação do documento
              personal_number:
                type: string
                description: Número de identificação pessoal
              portrait_image:
                type: string
                format: uri
                description: URL da imagem do retrato
              front_image:
                type: string
                format: uri
                description: URL da imagem da frente do documento
              front_video:
                type: string
                format: uri
                description: URL do vídeo da frente do documento
              back_image:
                type: string
                format: uri
                description: URL da imagem do verso do documento
              back_video:
                type: string
                format: uri
                description: URL do vídeo do verso do documento
              full_front_image:
                type: string
                format: uri
                description: URL da imagem completa da frente do documento
              full_back_image:
                type: string
                format: uri
                description: URL da imagem completa do verso do documento
              front_image_camera_front:
                type: string
                format: uri
                description: >-
                  URL da imagem da frente do documento capturada pela câmera
                  frontal
              back_image_camera_front:
                type: string
                format: uri
                description: >-
                  URL da imagem do verso do documento capturada pela câmera
                  frontal
              date_of_birth:
                type: string
                format: date
                description: Data de nascimento do documento
              age:
                type: integer
                description: Idade calculada a partir da data de nascimento
              expiration_date:
                type: string
                format: date
                description: Data de validade do documento
              date_of_issue:
                type: string
                format: date
                description: Data de emissão do documento
              issuing_state:
                type: string
                description: Código ISO do estado emissor
              issuing_state_name:
                type: string
                description: Nome completo do Estado emissor
              first_name:
                type: string
                description: Primeiro nome do documento
              last_name:
                type: string
                description: Sobrenome no documento
              full_name:
                type: string
                description: Nome completo do documento
              gender:
                type: string
                description: Gênero do documento
              address:
                type: string
                description: Endereço bruto do documento
              formatted_address:
                type: string
                description: Endereço completo formatado
              place_of_birth:
                type: string
                description: Local de nascimento extraído do documento
              marital_status:
                type: string
                description: Estado civil extraído do documento
              nationality:
                type: string
                description: Código ISO da nacionalidade
              extra_fields:
                type: object
                description: >-
                  Campos adicionais do documento. Inclui atributos específicos
                  do documento (por exemplo, `dl_categories`, `blood_group`,
                  `sponsor`, `employer`, `dl_class_code_b_from`,
                  `dl_class_code_b_to`). As datas de validade das categorias da
                  carteira de motorista são retornadas como
                  `dl_class_code_<class>_from` e `dl_class_code_<class>_to`, e
                  os códigos de restrição/informação por categoria (por exemplo,
                  a coluna 12 das carteiras de motorista do Reino Unido) como
                  `dl_class_code_<class>_notes`. Quando o documento contém
                  nomes, endereço ou local de nascimento em vários sistemas de
                  escrita, este objeto também inclui as versões desses campos no
                  sistema de escrita alternativo. A configuração do fluxo
                  `preferred_characters` (`latin` ou `non_latin`) define qual
                  sistema de escrita preenche os campos de nível superior
                  (`first_name`, `last_name`, `full_name`, `address`,
                  `place_of_birth`); o sistema de escrita oposto fica aqui como
                  `first_name_non_latin` / `last_name_non_latin` /
                  `full_name_non_latin` / `middle_name_non_latin` /
                  `address_non_latin` / `place_of_birth_non_latin` (quando
                  `preferred_characters` é `latin`) ou com o sufixo `_latin`
                  (quando `preferred_characters` é `non_latin`). As chaves só
                  aparecem quando o OCR de fato extrai um valor real no sistema
                  de escrita alternativo: um campo cujo valor alternativo está
                  no mesmo sistema de escrita do conjunto preferido (por
                  exemplo, um campo com rótulo em cirílico cujo valor de OCR
                  veio em homóglifos latinos) é ignorado. Quando
                  `preferred_characters` é `latin`, mas o documento contém
                  apenas texto não latino, a Didit translitera os valores
                  extraídos e expõe `first_name_latin` / `last_name_latin` /
                  etc. como alternativa.
                additionalProperties: true
                properties:
                  dl_categories:
                    type: array
                    items:
                      type: string
                  blood_group:
                    type: string
                    nullable: true
                  first_name_non_latin:
                    type: string
                    description: >-
                      Primeiro nome no alfabeto não latino quando
                      `preferred_characters=latin` e há uma versão não latina no
                      documento (por exemplo, `Айна` em uma identidade do
                      Quirguistão).
                  last_name_non_latin:
                    type: string
                    description: >-
                      Sobrenome na escrita não latina quando
                      `preferred_characters=latin` e uma versão não latina está
                      presente no documento.
                  middle_name_non_latin:
                    type: string
                    description: >-
                      Nome do meio / patronímico na escrita não latina quando
                      `preferred_characters=latin` e uma versão não latina está
                      presente no documento.
                  full_name_non_latin:
                    type: string
                    description: >-
                      Nome completo composto na escrita não latina. Reconstruído
                      a partir dos componentes individuais quando o nome e o
                      sobrenome estão disponíveis.
                  address_non_latin:
                    type: string
                    description: >-
                      Endereço em escrita não latina quando
                      `preferred_characters=latin` e há uma versão não latina no
                      documento.
                  place_of_birth_non_latin:
                    type: string
                    description: >-
                      Local de nascimento na escrita não latina quando
                      `preferred_characters=latin` e uma versão não latina está
                      presente no documento.
                  first_name_latin:
                    type: string
                    description: >-
                      Primeiro nome em alfabeto latino. Preenchido quando
                      `preferred_characters=non_latin` e há uma versão latina no
                      documento ou, como alternativa por transliteração, quando
                      `preferred_characters=latin` mas o documento só contém
                      texto não latino.
                  last_name_latin:
                    type: string
                    description: >-
                      Sobrenome em escrita latina. Mesmas regras de
                      `first_name_latin`.
                  middle_name_latin:
                    type: string
                    description: >-
                      Nome do meio / patronímico em escrita latina. Mesmas
                      regras de `first_name_latin`.
                  full_name_latin:
                    type: string
                    description: >-
                      Nome completo composto em escrita latina. Sempre
                      reconstruído a partir dos componentes individuais quando o
                      nome e o sobrenome estão disponíveis.
                  address_latin:
                    type: string
                    description: >-
                      Endereço em escrita latina. Mesmas regras de
                      `first_name_latin`.
                  place_of_birth_latin:
                    type: string
                    description: >-
                      Local de nascimento em escrita latina. Mesmas regras de
                      `first_name_latin`.
              mrz:
                type: object
                nullable: true
                description: >-
                  Campos da Zona de Leitura Mecânica (MRZ) extraídos e
                  interpretados do documento. `null` se nenhuma MRZ foi
                  detectada.
                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: Detalhes estruturados do endereço
                properties:
                  city:
                    type: string
                  label:
                    type: string
                  region:
                    type: string
                  country:
                    type: string
                    description: Código de país de duas letras
                  category:
                    type: string
                    description: >-
                      Categoria do endereço (por exemplo, Residencial,
                      Comercial)
                  street_1:
                    type: string
                  street_2:
                    type: string
                    nullable: true
                  is_verified:
                    type: boolean
                    description: Se o endereço foi verificado
                  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: Arquivos adicionais da verificação de documento
              front_image_camera_front_face_match_score:
                type: number
                nullable: true
                description: >-
                  Pontuação de correspondência facial entre o retrato extraído
                  da imagem da frente do documento e a imagem da câmera frontal
              back_image_camera_front_face_match_score:
                type: number
                nullable: true
                description: >-
                  Pontuação de correspondência facial entre o retrato extraído
                  da imagem do verso do documento e a imagem da câmera frontal
              document_selfie_face_matches:
                type: array
                description: >-
                  Sessões anteriores ou entradas da lista de bloqueio facial
                  cujo rosto correspondeu à selfie tirada pela câmera frontal
                  durante a captura do documento (Silent Capture Face Search).
                  Mesmo formato de entrada de `liveness_checks[].matches`.
                  `null` para sessões criadas antes da existência deste campo ou
                  quando a busca não foi executada; um array vazio quando foi
                  executada e não encontrou nada. `match_image_url` é uma URL
                  pré-assinada que expira.
                items:
                  type: object
                  properties:
                    session_id:
                      type: string
                      format: uuid
                      nullable: true
                      description: >-
                        ID da sessão do rosto correspondente. `null` quando
                        `source` é `imported`, `list_entry` ou
                        `retained_template`.
                    session_number:
                      type: integer
                      nullable: true
                    similarity_percentage:
                      type: number
                      description: >-
                        Similaridade facial entre as duas imagens, limitada ao
                        intervalo de 0 a 100.
                    vendor_data:
                      type: string
                      nullable: true
                      description: >-
                        `vendor_data` da sessão correspondente ou do User
                        vinculado, para rostos importados e com template
                        biométrico retido.
                    vendor_user_id:
                      type: string
                      format: uuid
                      nullable: true
                      description: >-
                        ID do User vinculado para correspondências `imported` e
                        `retained_template` e para correspondências de sessão
                        vinculadas a um User. `null` para entradas de lista e
                        sessões sem User.
                    biometric_template_id:
                      type: string
                      format: uuid
                      nullable: true
                      description: >-
                        Id do template biométrico retido. Definido somente
                        quando `source` é `retained_template`; caso contrário,
                        `null`.
                    verification_date:
                      type: string
                      format: date-time
                      nullable: true
                      description: >-
                        Quando o rosto correspondente foi capturado, ou quando
                        um template retido foi criado. `null` para entradas de
                        lista.
                    user_details:
                      type: object
                      nullable: true
                      description: >-
                        Dados de identidade da sessão correspondente ou do
                        perfil de usuário importado. Sempre `null` para
                        correspondências `retained_template` e `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: >-
                        Imagem de referência para correspondências baseadas em
                        imagem. Sempre `null` para correspondências
                        `retained_template`, porque templates retidos não contêm
                        imagem.
                    status:
                      type: string
                      nullable: true
                      description: >-
                        Status do ciclo de vida da sessão correspondente. `null`
                        para origens que não são sessões.
                    is_blocklisted:
                      type: boolean
                      description: Se o rosto correspondente está em uma lista de bloqueio.
                    is_allowlisted:
                      type: boolean
                      description: >-
                        Se o rosto correspondente está em uma lista de
                        permissões.
                    api_service:
                      type: string
                      nullable: true
                      description: >-
                        Serviço de API autônomo da sessão correspondente (por
                        exemplo, `PASSIVE_LIVENESS`, `FACE_MATCH`); `null` para
                        sessões de fluxo e origens que não são sessões.
                    source:
                      type: string
                      enum:
                        - session
                        - imported
                        - list_entry
                        - retained_template
                      description: >-
                        Origem do rosto correspondente: `session`, `imported`
                        (upload de rosto do usuário), `list_entry` (lista de
                        permissão/bloqueio) ou `retained_template` (um template
                        biométrico sem imagem armazenado em um usuário, listado
                        em `/v3/biometric-templates/`).
                nullable: true
              front_image_quality_score:
                type: object
                nullable: true
                description: >-
                  Métricas de qualidade da imagem da frente do documento. Cada
                  subpontuação varia de 0 a 100.
                properties:
                  focus_score:
                    type: number
                    description: >-
                      Nitidez da imagem medida pela variância local do
                      Laplaciano nos 10% superiores. Robusta para documentos com
                      grandes fundos uniformes. Valores mais altos indicam uma
                      imagem mais nítida e menos desfocada.
                  brightness_score:
                    type: number
                    description: >-
                      O quão bem iluminada a imagem está. Penaliza imagens
                      escuras demais ou superexpostas, com o brilho ideal em
                      torno da faixa intermediária.
                  brightness_issue:
                    type: string
                    enum:
                      - ok
                      - too_dark
                      - too_bright
                    description: >-
                      Indica a direção do problema de brilho quando o
                      brightness_score é baixo. 'ok' significa que o brilho é
                      aceitável, 'too_dark' significa que a imagem está
                      subexposta e 'too_bright' significa que a imagem está
                      superexposta.
                  is_document_fully_visible:
                    type: boolean
                    nullable: true
                    description: >-
                      true se os quatro cantos do documento estiverem totalmente
                      visíveis dentro do enquadramento da imagem, false se algum
                      canto estiver cortado. Null quando as coordenadas dos
                      cantos não estão disponíveis.
                  resolution_score:
                    type: number
                    description: >-
                      Resolução efetiva da imagem com base na contagem total de
                      pixels.
                  overall_score:
                    type: number
                    description: >-
                      Composição ponderada das subpontuações (foco 45%, brilho
                      30%, resolução 25%).
              back_image_quality_score:
                type: object
                nullable: true
                description: >-
                  Métricas de qualidade da imagem do verso do documento. Mesma
                  estrutura de front_image_quality_score.
                properties:
                  focus_score:
                    type: number
                    description: >-
                      Nitidez da imagem medida pela variância local do
                      Laplaciano nos 10% superiores. Robusta para documentos com
                      grandes fundos uniformes. Valores mais altos indicam uma
                      imagem mais nítida e menos desfocada.
                  brightness_score:
                    type: number
                    description: >-
                      O quão bem iluminada a imagem está. Penaliza imagens
                      escuras demais ou superexpostas, com o brilho ideal em
                      torno da faixa intermediária.
                  brightness_issue:
                    type: string
                    enum:
                      - ok
                      - too_dark
                      - too_bright
                    description: >-
                      Indica a direção do problema de brilho quando o
                      brightness_score é baixo. 'ok' significa que o brilho é
                      aceitável, 'too_dark' significa que a imagem está
                      subexposta e 'too_bright' significa que a imagem está
                      superexposta.
                  is_document_fully_visible:
                    type: boolean
                    nullable: true
                    description: >-
                      true se os quatro cantos do documento estiverem totalmente
                      visíveis dentro do enquadramento da imagem, false se algum
                      canto estiver cortado. Null quando as coordenadas dos
                      cantos não estão disponíveis.
                  resolution_score:
                    type: number
                    description: >-
                      Resolução efetiva da imagem com base na contagem total de
                      pixels.
                  overall_score:
                    type: number
                    description: >-
                      Composição ponderada das subpontuações (foco 45%, brilho
                      30%, resolução 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: >-
                        O recurso que gerou este aviso (por exemplo,
                        `ID_VERIFICATION`, `NFC`, `LIVENESS`). O valor
                        identifica o bloco de recurso ao qual o aviso pertence.
                        O array de avisos de cada módulo normalmente usa o valor
                        correspondente ao seu módulo, mas o enum acima é a
                        referência oficial para todos os avisos de recursos no
                        payload de decisão.
                    risk:
                      type: string
                    additional_data:
                      type: object
                      nullable: true
                      description: Dados contextuais adicionais sobre o aviso
                    log_type:
                      type: string
                      description: 'Tipo de log: informação, aviso ou erro'
                    short_description:
                      type: string
                    long_description:
                      type: string
                    node_id:
                      type: string
                      description: >-
                        O ID do nó do grafo do fluxo que gerou este aviso (para
                        fluxos baseados em grafo)
                description: Avisos da verificação de documentos
              matches:
                type: array
                description: >-
                  Documentos correspondentes encontrados durante a detecção de
                  duplicatas/lista de bloqueio (até 5 correspondências)
                items:
                  type: object
                  properties:
                    session_id:
                      type: string
                      format: uuid
                      description: ID da sessão do documento correspondente
                    session_number:
                      type: integer
                      description: Número da sessão do documento correspondente
                    vendor_data:
                      type: string
                      nullable: true
                      description: Dados do fornecedor associados à sessão correspondente
                    verification_date:
                      type: string
                      format: date-time
                      description: Data em que a sessão correspondente foi verificada
                    user_details:
                      type: object
                      properties:
                        name:
                          type: string
                          description: Nome completo do documento correspondente
                        document_type:
                          type: string
                          description: Tipo do documento correspondente
                        document_number:
                          type: string
                          description: Número do documento correspondente
                    status:
                      type: string
                      description: Status da sessão correspondente
                    is_blocklisted:
                      type: boolean
                      description: Se o documento correspondente está na lista de bloqueio
                    api_service:
                      type: string
                      nullable: true
                      description: Tipo de serviço de API da sessão correspondente
                    front_image_url:
                      type: string
                      format: uri
                      nullable: true
                      description: URL da imagem da frente do documento correspondente
              document_liveness:
                type: object
                nullable: true
                description: >-
                  Pontuações de prova de vida do documento por tipo de fraude,
                  informadas independentemente de algum aviso ter sido
                  disparado, para que um documento aprovado ainda possa ser
                  auditado. `null` quando a verificação não foi executada.
                properties:
                  portrait_replace:
                    type: object
                    nullable: true
                    properties:
                      score:
                        type: number
                        nullable: true
                        description: >-
                          Probabilidade de o documento ser autêntico para este
                          tipo de fraude, de 0 a 100 (quanto maior, mais
                          provável que seja autêntico). O menor valor entre os
                          dois lados - o valor usado na decisão. `null` quando
                          nenhum dos lados produziu uma pontuação utilizável.
                      front:
                        type: number
                        nullable: true
                        description: >-
                          Pontuação da frente; `null` quando não foi capturada
                          ou quando a pontuação foi descartada.
                      back:
                        type: number
                        nullable: true
                        description: >-
                          Pontuação do verso; `null` quando não foi capturado ou
                          quando a pontuação foi descartada.
                      decline_threshold:
                        type: number
                        nullable: true
                        description: >-
                          O limiar de recusa salvo quando este documento foi
                          avaliado. Edições posteriores do fluxo não o alteram.
                          Nulo quando as evidências históricas da avaliação não
                          estão disponíveis.
                      review_threshold:
                        type: number
                        nullable: true
                        description: >-
                          O limiar de revisão salvo quando este documento foi
                          avaliado. Edições posteriores no fluxo não o alteram.
                          Null quando as evidências históricas da avaliação não
                          estão disponíveis.
                      bucket:
                        type: string
                        nullable: true
                        enum:
                          - approve
                          - review
                          - decline
                          - null
                        description: >-
                          A categoria de tipo de fraude salva no momento da
                          avaliação. Nula quando não há pontuação utilizável, a
                          verificação não foi aplicada ou as evidências
                          históricas da avaliação não estão disponíveis. Edições
                          posteriores do fluxo não a alteram.
                  printed_copy:
                    type: object
                    nullable: true
                    properties:
                      score:
                        type: number
                        nullable: true
                        description: >-
                          Probabilidade de o documento ser autêntico para este
                          tipo de fraude, de 0 a 100 (quanto maior, mais
                          provável que seja autêntico). O menor valor entre os
                          dois lados - o valor usado na decisão. `null` quando
                          nenhum dos lados produziu uma pontuação utilizável.
                      front:
                        type: number
                        nullable: true
                        description: >-
                          Pontuação da frente; `null` quando não foi capturada
                          ou quando a pontuação foi descartada.
                      back:
                        type: number
                        nullable: true
                        description: >-
                          Pontuação do verso; `null` quando não foi capturado ou
                          quando a pontuação foi descartada.
                      decline_threshold:
                        type: number
                        nullable: true
                        description: >-
                          O limiar de recusa salvo quando este documento foi
                          avaliado. Edições posteriores do fluxo não o alteram.
                          Nulo quando as evidências históricas da avaliação não
                          estão disponíveis.
                      review_threshold:
                        type: number
                        nullable: true
                        description: >-
                          O limiar de revisão salvo quando este documento foi
                          avaliado. Edições posteriores no fluxo não o alteram.
                          Null quando as evidências históricas da avaliação não
                          estão disponíveis.
                      bucket:
                        type: string
                        nullable: true
                        enum:
                          - approve
                          - review
                          - decline
                          - null
                        description: >-
                          A categoria de tipo de fraude salva no momento da
                          avaliação. Nula quando não há pontuação utilizável, a
                          verificação não foi aplicada ou as evidências
                          históricas da avaliação não estão disponíveis. Edições
                          posteriores do fluxo não a alteram.
                  screen_replay:
                    type: object
                    nullable: true
                    properties:
                      score:
                        type: number
                        nullable: true
                        description: >-
                          Probabilidade de o documento ser autêntico para este
                          tipo de fraude, de 0 a 100 (quanto maior, mais
                          provável que seja autêntico). O menor valor entre os
                          dois lados - o valor usado na decisão. `null` quando
                          nenhum dos lados produziu uma pontuação utilizável.
                      front:
                        type: number
                        nullable: true
                        description: >-
                          Pontuação da frente; `null` quando não foi capturada
                          ou quando a pontuação foi descartada.
                      back:
                        type: number
                        nullable: true
                        description: >-
                          Pontuação do verso; `null` quando não foi capturado ou
                          quando a pontuação foi descartada.
                      decline_threshold:
                        type: number
                        nullable: true
                        description: >-
                          O limiar de recusa salvo quando este documento foi
                          avaliado. Edições posteriores do fluxo não o alteram.
                          Nulo quando as evidências históricas da avaliação não
                          estão disponíveis.
                      review_threshold:
                        type: number
                        nullable: true
                        description: >-
                          O limiar de revisão salvo quando este documento foi
                          avaliado. Edições posteriores no fluxo não o alteram.
                          Null quando as evidências históricas da avaliação não
                          estão disponíveis.
                      bucket:
                        type: string
                        nullable: true
                        enum:
                          - approve
                          - review
                          - decline
                          - null
                        description: >-
                          A categoria de tipo de fraude salva no momento da
                          avaliação. Nula quando não há pontuação utilizável, a
                          verificação não foi aplicada ou as evidências
                          históricas da avaliação não estão disponíveis. Edições
                          posteriores do fluxo não a alteram.
              address_validation:
                allOf:
                  - $ref: '#/components/schemas/AddressValidationResult'
                nullable: true
                description: >-
                  Validação de endereço do endereço impresso neste documento: se
                  ele existe e sua forma normalizada, conforme lido no documento
                  (uma correção posterior de `address` não executa a validação
                  novamente). Presente quando esta etapa de verificação de
                  identidade ativou o complemento de Validação de endereço;
                  `null` caso contrário.
              region:
                type: string
                nullable: true
                description: >-
                  Região ou estado do país emissor do documento, quando o
                  documento indica um.
              extracted_data:
                type: object
                nullable: true
                additionalProperties: true
                description: >-
                  Snapshot dos dados extraídos do documento que foram mostrados
                  à pessoa para revisão, mantido junto aos valores confirmados
                  para que você possa comparar o que foi lido com o que a pessoa
                  confirmou. `null` quando a pessoa não foi solicitada a
                  revisar.
              barcodes:
                type: array
                items:
                  type: object
                  additionalProperties: true
                description: >-
                  Dados lidos dos códigos de barras do documento. Vazio quando o
                  documento não tem nenhum ou nenhum foi lido.
        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: >-
            Motivo pelo qual a verificação do chip NFC não foi executada,
            preenchido sempre que o fluxo inclui uma etapa NFC. `null` enquanto
            o NFC estiver pendente ou quando o chip foi de fato lido. Valores:
            `USER_SKIPPED` - o usuário optou por pular a etapa em um dispositivo
            compatível com NFC (permitido por `allow_nfc_skip`);
            `DOCUMENT_WITHOUT_CHIP` - o documento não tem um chip NFC legível
            (não é um documento eletrônico ICAO 9303);
            `CHIP_CERTIFICATE_UNAVAILABLE` - o certificado de assinatura (CSCA)
            do país emissor que cobre o período de emissão do documento não está
            disponível, portanto a assinatura do chip não pode ser verificada;
            `DEVICE_WITHOUT_NFC` - o dispositivo informou que não tem leitor
            NFC; `INTEGRATION_WITHOUT_NFC_ACCESS` - a verificação foi executada
            sem um SDK nativo (por exemplo, em um navegador web), que não tem
            acesso ao leitor NFC do celular; `MRZ_KEY_UNAVAILABLE` - não foi
            possível derivar a chave de acesso ao chip a partir da MRZ do
            documento; `JPKI_UNAVAILABLE` - o documento é um My Number Card
            japonês, cujo chip é lido via JPKI, e o JPKI não estava disponível
            para esta verificação: ele não está habilitado ou o SDK nativo do
            aplicativo não consegue ler My Number Cards.
        nfc_verifications:
          type: array
          nullable: true
          description: >-
            **Array de relatórios de NFC / ePassport** produzidos pelas etapas
            de NFC no grafo do fluxo. **É sempre um array JSON, nunca um objeto
            `nfc` único**: leia `nfc_verifications[0]` e itere se o seu fluxo
            puder executar NFC mais de uma vez. Fica `null` até que pelo menos
            uma etapa de NFC tenha produzido dados. Cada item é o relatório
            completo, incluindo `node_id`, o `status` no nível do recurso,
            `chip_protocol`, `chip_data`, `authenticity` (integridade de SOD +
            DG), `certificate_summary` e `warnings[]`. Um My Number Card do
            Japão é lido por meio de JPKI em vez de ICAO 9303: o item
            correspondente tem `chip_protocol: "jpki"`, traz suas evidências em
            `jpki` e deixa os campos ICAO como `null`. Quando a etapa de NFC foi
            ignorada antes mesmo de poder ser oferecida (documento sem chip,
            certificado ausente, nenhuma capacidade de NFC informada, chave MRZ
            ilegível, JPKI indisponível para um My Number Card), este campo
            permanece `null` e `nfc_skip_reason` explica o motivo; um pulo na
            própria etapa (o usuário tocou em pular ou o leitor se mostrou
            indisponível no momento da leitura) ainda gera um relatório com
            `is_nfc_skipped: true`.
          items:
            type: object
            description: >-
              Um relatório NFC: o relatório completo de uma única leitura de
              chip (um chip de passaporte eletrônico ou eID ICAO 9303, ou um My
              Number Card japonês lido por meio do JPKI).
            properties:
              node_id:
                type: string
                description: >-
                  ID do nó do grafo do fluxo da etapa NFC que gerou este
                  relatório. Use-o para correlacionar o relatório com a
                  definição do fluxo.
              status:
                type: string
                enum:
                  - Not Finished
                  - Approved
                  - Declined
                  - In Review
                  - Resub Requested
                description: >-
                  Status desta etapa NFC no nível do recurso. É independente do
                  `status` de nível superior da sessão: uma sessão pode chegar à
                  decisão geral enquanto um recurso individual permanece `In
                  Review`.
              is_nfc_skipped:
                type: boolean
                description: >-
                  `true` quando esta etapa NFC foi explicitamente ignorada em
                  vez de lida; `skip_reason` informa o motivo.
              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: >-
                  Por que esta etapa de NFC foi pulada. Definido apenas quando
                  `is_nfc_skipped` é `true`. Usa a mesma taxonomia do
                  `nfc_skip_reason` no nível da sessão, que também abrange os
                  casos em que o NFC nunca gerou nenhum relatório.
              chip_protocol:
                type: string
                enum:
                  - icao
                  - jpki
                description: >-
                  Como a etapa NFC lê o chip. `icao`: chip de ePassport ou eID
                  ICAO 9303, aberto com a chave de acesso da MRZ. `jpki`: My
                  Number Card do Japão, em que o cartão assina um desafio de uso
                  único depois que o titular digita o PIN do cartão em um SDK
                  nativo; o resultado fica em `jpki`. Também é definido em
                  etapas ignoradas, para que você possa identificar uma leitura
                  de My Number Card ignorada.
              jpki:
                type: object
                nullable: true
                description: >-
                  O que a leitura de um My Number Card japonês via JPKI
                  comprovou. Presente quando `chip_protocol` é `jpki` e o cartão
                  foi lido. `null` para chips ICAO, para etapas ignoradas e
                  quando a etapa NFC foi encerrada sem nenhuma leitura de cartão
                  (esse caso gera `JPKI_SIGNATURE_INVALID`). Nunca contém os
                  certificados, seus números de série, as assinaturas nem o My
                  Number de 12 dígitos.
                properties:
                  certificate_types:
                    type: array
                    items:
                      type: string
                      enum:
                        - user_authentication
                        - signature
                    description: >-
                      Os certificados do cartão que foram lidos.
                      `user_authentication` (PIN de 4 dígitos) é sempre lido;
                      `signature` (PIN de assinatura) é lido quando a
                      configuração `jpki_request_attributes` do nó NFC está
                      ativada.
                  chain_valid:
                    type: boolean
                    description: >-
                      `true` quando todo certificado lido tem cadeia até a
                      autoridade certificadora JPKI, está dentro do período de
                      validade e é um certificado do My Number Card do seu tipo.
                  signature_valid:
                    type: boolean
                    description: >-
                      `true` quando toda assinatura que o cartão fez sobre o
                      desafio de uso único é verificada. O cartão só assina
                      depois que o PIN é digitado, então isso comprova a posse
                      do cartão e o conhecimento do PIN.
                  revocation_status:
                    type: string
                    enum:
                      - good
                      - revoked
                      - unchecked
                    description: >-
                      `good` quando a verificação de revogação confirmou que
                      todos os certificados são válidos, `revoked` quando algum
                      certificado está revogado (por exemplo, um cartão
                      comunicado como perdido), `unchecked` quando nenhuma
                      resposta de revogação estava disponível. `unchecked` nunca
                      é tratado como `good`: a
                      `jpki_revocation_unchecked_action` do nó NFC decide o
                      resultado (padrão `REVIEW`).
                  ca_generation:
                    type: string
                    nullable: true
                    description: >-
                      Geração da autoridade certificadora JPKI que emitiu os
                      certificados, por exemplo, `2023`. `null` quando nenhum
                      certificado se encadeia a uma delas.
                  certificate_expires_at:
                    type: string
                    format: date-time
                    nullable: true
                    description: >-
                      A data de validade mais próxima entre os certificados
                      lidos.
                  certificates:
                    type: array
                    items:
                      type: object
                      description: >-
                        O que um certificado lido do cartão comprovou. Nunca o
                        próprio certificado nem seu número de série.
                      properties:
                        type:
                          type: string
                          enum:
                            - user_authentication
                            - signature
                          description: Qual certificado do cartão esta entrada descreve.
                        chain_valid:
                          type: boolean
                          description: >-
                            `true` quando o certificado tem cadeia até a
                            autoridade certificadora JPKI do seu tipo, está
                            dentro do período de validade e é um certificado do
                            My Number Card desse tipo.
                        signature_valid:
                          type: boolean
                          description: >-
                            `true` quando a assinatura do cartão sobre o desafio
                            de uso único é verificada com este certificado.
                        ca_generation:
                          type: string
                          nullable: true
                          description: >-
                            Geração da autoridade certificadora JPKI que emitiu
                            o certificado, por exemplo, `2023`. `null` quando
                            nenhum emissor confiável foi encontrado.
                        not_valid_before:
                          type: string
                          format: date-time
                          nullable: true
                          description: >-
                            Início do período de validade do certificado. `null`
                            quando não foi possível ler o certificado.
                        not_valid_after:
                          type: string
                          format: date-time
                          nullable: true
                          description: >-
                            Fim do período de validade do certificado. `null`
                            quando não foi possível ler o certificado.
                        failure:
                          type: string
                          nullable: true
                          enum:
                            - unreadable_certificate
                            - untrusted_issuer
                            - expired
                            - not_yet_valid
                            - wrong_policy
                            - key_usage
                            - null
                          description: >-
                            Motivo pelo qual `chain_valid` é `false`:
                            `unreadable_certificate`, `untrusted_issuer` (não
                            foi emitido pela autoridade certificadora JPKI do
                            seu tipo), `expired`, `not_yet_valid`,
                            `wrong_policy` (não é um certificado de My Number
                            Card desse tipo) ou `key_usage` (a chave não pode
                            assinar). `null` quando a cadeia é válida.
                    description: >-
                      Resultados por certificado, uma entrada para cada
                      certificado lido.
                  attributes:
                    type: object
                    nullable: true
                    description: >-
                      Os dados do titular extraídos do certificado de
                      assinatura, assim que sua cadeia for válida. `null` quando
                      o certificado de assinatura não foi solicitado ou não se
                      encadeou à autoridade certificadora JPKI.
                    properties:
                      full_name:
                        type: string
                        nullable: true
                        description: >-
                          Nome conforme registrado, geralmente em escrita
                          japonesa.
                      date_of_birth:
                        type: string
                        format: date
                        nullable: true
                        description: >-
                          Data de nascimento, `YYYY-MM-DD`. `null` quando a data
                          registrada está incompleta.
                      gender:
                        type: string
                        nullable: true
                        enum:
                          - M
                          - F
                          - null
                        description: '`M`, `F` ou `null` quando não registrado.'
                      address:
                        type: string
                        nullable: true
                        description: Endereço registrado.
                      name_substitute_characters:
                        type: string
                        nullable: true
                        description: >-
                          String de posições que marca os caracteres de
                          `full_name` que foram trocados por um substituto
                          porque o caractere original está fora do conjunto de
                          caracteres padrão. `null` quando nenhum foi trocado.
                      address_substitute_characters:
                        type: string
                        nullable: true
                        description: >-
                          String de posições que marca os caracteres substitutos
                          em `address`, como em `name_substitute_characters`.
                  attributes_match_ocr:
                    type: boolean
                    nullable: true
                    description: >-
                      `true` quando os atributos correspondem aos dados lidos da
                      foto do mesmo cartão, `false` quando algum atributo difere
                      (`JPKI_AND_OCR_DATA_NOT_SAME`) e `null` quando nada pôde
                      ser comparado, incluindo sempre que `attributes` é `null`.
                  mismatched_attributes:
                    type: array
                    items:
                      type: string
                      enum:
                        - full_name
                        - date_of_birth
                        - gender
                        - address
                    description: >-
                      Nomes dos atributos que diferem dos dados da foto, nunca
                      seus valores. Vazio quando tudo o que foi comparado
                      corresponde.
              portrait_image:
                type: string
                format: uri
                nullable: true
                description: >-
                  URL pré-assinada do retrato lido do chip (ICAO DG2). `null` em
                  uma leitura JPKI (`chip_protocol: "jpki"`) e em etapas
                  ignoradas.
              signature_image:
                type: string
                format: uri
                nullable: true
                description: >-
                  URL pré-assinada da imagem da assinatura do titular lida do
                  chip (ICAO DG7), quando o chip armazena uma. `null` em uma
                  leitura JPKI (`chip_protocol: "jpki"`) e em etapas ignoradas.
              chip_data:
                type: object
                nullable: true
                description: >-
                  Dados pessoais extraídos dos Data Groups do chip ICAO. `null`
                  para uma leitura JPKI (`chip_protocol: "jpki"`) e para etapas
                  ignoradas.
                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: >-
                  Autenticação passiva ICAO: assinatura do SOD (`sod_integrity`)
                  e hashes dos Data Groups (`dg_integrity`). `null` para uma
                  leitura JPKI, que informa sua prova em `jpki`.
                properties:
                  sod_integrity:
                    type: boolean
                  dg_integrity:
                    type: boolean
              certificate_summary:
                type: object
                nullable: true
                description: >-
                  Resumo do Document Signer Certificate da ICAO. `null` para uma
                  leitura JPKI (`chip_protocol: "jpki"`) e para etapas
                  ignoradas.
                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: >-
                        O recurso que gerou este aviso. O valor identifica o
                        bloco de recurso ao qual o aviso pertence. O array de
                        avisos de cada módulo normalmente usa o valor
                        correspondente ao seu módulo (por exemplo, `PHONE`
                        dentro de `phone_verifications[].warnings`), mas o enum
                        acima é a referência oficial para todos os avisos de
                        recursos no payload de decisão.
                    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: O ID do nó do grafo do fluxo que gerou este aviso
        liveness_checks:
          type: array
          nullable: true
          description: >-
            **Array de relatórios de prova de vida** produzidos pelas etapas de
            prova de vida no grafo do fluxo. Sempre um array JSON, nunca um
            objeto `liveness` único. Fica `null` até que pelo menos uma etapa de
            prova de vida tenha produzido dados. Cada item é o relatório
            completo, incluindo `node_id`, o `status` no nível do recurso,
            `method`, `score`, `reference_image`, `video_url`, `age_estimation`
            opcional, `matches[]` entre sessões e `warnings[]`.
          items:
            type: object
            description: >-
              Um relatório de prova de vida: o relatório completo de uma única
              passagem de prova de vida.
            properties:
              node_id:
                type: string
                description: >-
                  ID do nó do grafo do fluxo da etapa de prova de vida que gerou
                  este relatório.
              status:
                type: string
                enum:
                  - Not Finished
                  - Approved
                  - Declined
                  - In Review
                  - Resub Requested
                description: >-
                  Status desta etapa de prova de vida no nível do recurso. É
                  independente do `status` de nível superior da sessão: uma
                  sessão pode chegar à decisão geral enquanto um recurso
                  individual permanece `In Review`.
              method:
                type: string
                description: Método usado na prova de vida
              score:
                type: number
                description: Pontuação de confiança da verificação de prova de vida
              reference_image:
                type: string
                format: uri
                description: URL da imagem de referência utilizada
              video_url:
                type: string
                format: uri
                description: URL do vídeo da verificação de prova de vida
              age_estimation:
                type: number
                description: Idade estimada da pessoa
              matches:
                type: array
                description: >-
                  Rostos semelhantes encontrados pela busca de rostos duplicados
                  (principais correspondências, com as entradas da lista de
                  bloqueio e da lista de permissão primeiro). O `source` de cada
                  entrada indica de onde veio o rosto correspondente: `session`
                  (outra sessão de verificação), `imported` (um rosto enviado
                  para um usuário do fornecedor), `list_entry` (um rosto de uma
                  lista de permissão ou de bloqueio gerenciada pela organização)
                  ou `retained_template` (um template biométrico sem imagem
                  armazenado em um User, listado em `/v3/biometric-templates/`).
                  `session_id`, `session_number`, `status` e `api_service` são
                  `null` para origens que não são sessões. As correspondências
                  `imported` ainda preenchem `vendor_data`, `verification_date`
                  e, quando o usuário do fornecedor tem um nome registrado,
                  `user_details` (apenas com `full_name`) a partir do registro
                  do usuário do fornecedor. As correspondências
                  `retained_template` preenchem `vendor_user_id`, `vendor_data`,
                  `biometric_template_id` e `verification_date`, enquanto seus
                  campos de imagem e de identidade são `null`. As
                  correspondências `list_entry` retornam todos esses campos como
                  `null`.
                items:
                  type: object
                  properties:
                    session_id:
                      type: string
                      format: uuid
                      nullable: true
                      description: >-
                        ID da sessão do rosto correspondente. `null` quando
                        `source` é `imported`, `list_entry` ou
                        `retained_template`.
                    session_number:
                      type: integer
                      nullable: true
                    similarity_percentage:
                      type: number
                      description: >-
                        Similaridade facial entre as duas imagens, limitada ao
                        intervalo de 0 a 100.
                    vendor_data:
                      type: string
                      nullable: true
                      description: >-
                        `vendor_data` da sessão correspondente ou do User
                        vinculado, para rostos importados e com template
                        biométrico retido.
                    vendor_user_id:
                      type: string
                      format: uuid
                      nullable: true
                      description: >-
                        ID do User vinculado para correspondências `imported` e
                        `retained_template` e para correspondências de sessão
                        vinculadas a um User. `null` para entradas de lista e
                        sessões sem User.
                    biometric_template_id:
                      type: string
                      format: uuid
                      nullable: true
                      description: >-
                        Id do template biométrico retido. Definido somente
                        quando `source` é `retained_template`; caso contrário,
                        `null`.
                    verification_date:
                      type: string
                      format: date-time
                      nullable: true
                      description: >-
                        Quando o rosto correspondente foi capturado, ou quando
                        um template retido foi criado. `null` para entradas de
                        lista.
                    user_details:
                      type: object
                      nullable: true
                      description: >-
                        Dados de identidade da sessão correspondente ou do
                        perfil de usuário importado. Sempre `null` para
                        correspondências `retained_template` e `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: >-
                        Imagem de referência para correspondências baseadas em
                        imagem. Sempre `null` para correspondências
                        `retained_template`, porque templates retidos não contêm
                        imagem.
                    status:
                      type: string
                      nullable: true
                      description: >-
                        Status do ciclo de vida da sessão correspondente. `null`
                        para origens que não são sessões.
                    is_blocklisted:
                      type: boolean
                      description: Se o rosto correspondente está em uma lista de bloqueio.
                    is_allowlisted:
                      type: boolean
                      description: >-
                        Se o rosto correspondente está em uma lista de
                        permissões.
                    api_service:
                      type: string
                      nullable: true
                      description: >-
                        Serviço de API autônomo da sessão correspondente (por
                        exemplo, `PASSIVE_LIVENESS`, `FACE_MATCH`); `null` para
                        sessões de fluxo e origens que não são sessões.
                    source:
                      type: string
                      enum:
                        - session
                        - imported
                        - list_entry
                        - retained_template
                      description: >-
                        Origem do rosto correspondente: `session`, `imported`
                        (upload de rosto do usuário), `list_entry` (lista de
                        permissão/bloqueio) ou `retained_template` (um template
                        biométrico sem imagem armazenado em um usuário, listado
                        em `/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: >-
                        O recurso que gerou este aviso. O valor identifica o
                        bloco de recurso ao qual o aviso pertence. O array de
                        avisos de cada módulo normalmente usa o valor
                        correspondente ao seu módulo (por exemplo, `PHONE`
                        dentro de `phone_verifications[].warnings`), mas o enum
                        acima é a referência oficial para todos os avisos de
                        recursos no payload de decisão.
                    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: O ID do nó do grafo do fluxo que gerou este aviso
              face_quality:
                type: number
                nullable: true
                description: >-
                  Pontuação de qualidade da imagem do rosto (0-100%). Disponível
                  apenas para prova de vida passiva.
              face_luminance:
                type: number
                nullable: true
                description: >-
                  Pontuação de luminância/brilho do rosto (0-100%). Disponível
                  apenas para prova de vida passiva.
        face_matches:
          type: array
          nullable: true
          description: >-
            **Array de relatórios de correspondência facial** produzidos pelas
            etapas de correspondência facial no grafo do fluxo. Sempre um array
            JSON, nunca um objeto `face_match` único. Fica `null` até que pelo
            menos uma etapa de correspondência facial tenha produzido dados.
            Cada item é o relatório completo, incluindo `node_id`, o `status` no
            nível do recurso, a `score` de similaridade, `source_image`,
            `target_image` e `warnings[]`.
          items:
            type: object
            description: 'Um relatório de correspondência facial: o relatório completo.'
            properties:
              node_id:
                type: string
                description: >-
                  ID do nó do grafo do fluxo da etapa de correspondência facial
                  que gerou este relatório.
              status:
                type: string
                enum:
                  - Not Finished
                  - Approved
                  - Declined
                  - In Review
                  - Resub Requested
                description: >-
                  Status desta etapa de correspondência facial no nível do
                  recurso. É independente do `status` de nível superior da
                  sessão: uma sessão pode chegar à decisão geral enquanto um
                  recurso individual permanece `In Review`.
              score:
                type: number
                description: Pontuação de confiança da correspondência facial
              source_image_session_id:
                type: string
                format: uuid
                nullable: true
                description: >-
                  ID da sessão sob a qual o retrato de origem (referência) está
                  armazenado. Em fluxos de autenticação biométrica, é o próprio
                  ID da sessão (o retrato enviado é armazenado sob a nova
                  sessão). `null` quando a imagem de origem é o retrato do
                  documento da mesma sessão.
              source_image:
                type: string
                format: uri
                description: URL da imagem de origem utilizada na comparação
              target_image:
                type: string
                format: uri
                description: URL da imagem de destino utilizada na comparação
              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: >-
                        O recurso que gerou este aviso. O valor identifica o
                        bloco de recurso ao qual o aviso pertence. O array de
                        avisos de cada módulo normalmente usa o valor
                        correspondente ao seu módulo (por exemplo, `PHONE`
                        dentro de `phone_verifications[].warnings`), mas o enum
                        acima é a referência oficial para todos os avisos de
                        recursos no payload de decisão.
                    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: O ID do nó do grafo do fluxo que gerou este aviso
                description: Avisos da verificação de correspondência facial
              face_coverage:
                type: object
                nullable: true
                description: >-
                  Se os olhos, a boca e o rosto estão cobertos na imagem
                  capturada. Retornado apenas por `GET
                  /v3/session/{sessionId}/decision/`; não faz parte dos payloads
                  de webhook. `null` quando não existe leitura de cobertura.
                properties:
                  eyes:
                    type: object
                    properties:
                      covered:
                        type: boolean
                        nullable: true
                      calibrated:
                        type: boolean
                        nullable: true
                        description: >-
                          `false` significa que a leitura serve apenas como
                          evidência em modo sombra e nenhum aviso é acionado por
                          ela.
                      visibility_score:
                        type: number
                        nullable: true
                  mouth:
                    type: object
                    properties:
                      covered:
                        type: boolean
                        nullable: true
                      calibrated:
                        type: boolean
                        nullable: true
                        description: >-
                          `false` significa que a leitura serve apenas como
                          evidência em modo sombra e nenhum aviso é acionado por
                          ela.
                      visibility_score:
                        type: number
                        nullable: true
                  face:
                    type: object
                    properties:
                      covered:
                        type: boolean
                        nullable: true
                      calibrated:
                        type: boolean
                        nullable: true
                        description: >-
                          `false` significa que a leitura serve apenas como
                          evidência em modo sombra e nenhum aviso é acionado por
                          ela.
                      visibility_score:
                        type: number
                        nullable: true
        phone_verifications:
          type: array
          nullable: true
          description: >-
            **Array de relatórios de verificação de telefone**: sempre um array
            JSON, nunca um objeto `phone` único. Fica `null` até que pelo menos
            uma etapa de telefone tenha produzido dados. Cada item é o relatório
            completo, incluindo `node_id`, o `status` no nível do recurso, o
            número de telefone e os metadados do país, `lifecycle[]`,
            `matches[]` e `warnings[]`.
          items:
            type: object
            properties:
              node_id:
                type: string
                description: Identificador único desta etapa de telefone no grafo do fluxo.
              status:
                type: string
                description: >-
                  Status desta etapa de verificação de telefone no nível do
                  recurso. É independente do `status` de nível superior da
                  sessão: uma sessão pode chegar à decisão geral enquanto um
                  recurso individual permanece `In Review`.
                enum:
                  - Not Finished
                  - Approved
                  - Declined
                  - In Review
                  - Expired
              phone_number_prefix:
                type: string
                description: Prefixo do código de discagem do país
              phone_number:
                type: string
                description: Número de telefone sem o prefixo do país
              full_number:
                type: string
                description: Número de telefone completo com o código do país
              country_code:
                type: string
                description: Código de país de duas letras (ISO 3166-1 alpha-2)
              country_name:
                type: string
                description: Nome completo do país
              carrier:
                type: object
                properties:
                  name:
                    type: string
                    description: Nome da operadora de telefonia
                  type:
                    type: string
                    description: Tipo de linha telefônica (celular, fixa etc.)
              is_disposable:
                type: boolean
                description: Se o número de telefone é de um serviço descartável
              is_virtual:
                type: boolean
                description: Se o número de telefone é virtual
              verification_method:
                type: string
                description: Método usado para verificar o número de telefone
              verification_attempts:
                type: integer
                description: Número de tentativas de verificação realizadas
              verified_at:
                type: string
                format: date-time
                description: Data e hora em que o telefone foi verificado
              lifecycle:
                type: array
                description: >-
                  Lista cronológica de eventos do ciclo de vida da verificação
                  de telefone.
                items:
                  type: object
                  properties:
                    type:
                      type: string
                    timestamp:
                      type: string
                      format: date-time
                    details:
                      type: object
                      nullable: true
                      description: >-
                        Payload específico do evento. Eventos de envio trazem
                        `status`, `reason`, `channel`, `actual_channel`; eventos
                        de entrega trazem `channel`, `status`; eventos de
                        verificação de código trazem `code_tried`, `status`;
                        eventos de status final trazem `reason`, ou `null`
                        quando não há motivo a informar (por exemplo,
                        `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: Lista de avisos relacionados à verificação de telefone
                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: >-
                        O recurso que gerou este aviso. O valor identifica o
                        bloco de recurso ao qual o aviso pertence. O array de
                        avisos de cada módulo normalmente usa o valor
                        correspondente ao seu módulo (por exemplo, `PHONE`
                        dentro de `phone_verifications[].warnings`), mas o enum
                        acima é a referência oficial para todos os avisos de
                        recursos no payload de decisão.
                    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: O ID do nó do grafo do fluxo que gerou este aviso
              matches:
                type: array
                description: >-
                  Correspondências encontradas para este número de telefone.
                  Cada correspondência tem um `source`: `session` (outra sessão
                  de verificação na sua aplicação correspondeu ao mesmo número,
                  retornada com
                  `session_id`/`session_number`/`vendor_data`/`verification_date`)
                  ou `list_entry` (o número está em uma lista de
                  permissão/bloqueio gerenciada pela organização — consulte
                  `/management-api/lists/overview`). As correspondências entre
                  sessões usam `vendor_data` diferentes e são limitadas 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: >-
                        Origem desta correspondência. `session` significa que
                        outra sessão de verificação na sua aplicação teve
                        correspondência com este valor. `list_entry` significa
                        que o valor foi encontrado em uma lista gerenciada pela
                        organização (lista de permissões/lista de bloqueio).
                        Consulte a visão geral de listas da API de gerenciamento
                        em `/management-api/lists/overview` para saber como
                        gerenciar essas listas.
              phone_intelligence:
                allOf:
                  - $ref: '#/components/schemas/PhoneIntelligence'
                description: >-
                  Sinais de inteligência de telefone. Presente apenas quando o
                  complemento de inteligência de telefone foi executado para
                  este número.
              phone_social:
                allOf:
                  - $ref: '#/components/schemas/PhoneSocialFootprint'
                description: >-
                  Pegada social do número. Presente apenas quando o complemento
                  de pegada social foi executado para este número.
        email_verifications:
          type: array
          nullable: true
          description: >-
            **Array de relatórios de verificação de e-mail**: sempre um array
            JSON, nunca um objeto `email` único. Fica `null` até que pelo menos
            uma etapa de e-mail tenha produzido dados. Cada item é o relatório
            completo, incluindo `node_id`, o `status` no nível do recurso, o
            endereço de e-mail, dados de vazamentos, `lifecycle[]`, `matches[]`
            e `warnings[]`.
          items:
            type: object
            properties:
              node_id:
                type: string
                description: Identificador único desta etapa de e-mail no grafo do fluxo.
              status:
                type: string
                description: >-
                  Status desta etapa de verificação de e-mail no nível do
                  recurso. É independente do `status` de nível superior da
                  sessão: uma sessão pode chegar à decisão geral enquanto um
                  recurso individual permanece `In Review`.
                enum:
                  - Not Finished
                  - Approved
                  - Declined
                  - In Review
                  - Expired
              email:
                type: string
                description: O endereço de e-mail que está sendo verificado
              is_breached:
                type: boolean
                description: >-
                  Indica se o e-mail foi encontrado em vazamentos de dados
                  conhecidos
              breaches:
                type: array
                description: >-
                  Lista de vazamentos conhecidos em que este e-mail foi
                  encontrado
                items:
                  type: object
                  properties:
                    name:
                      type: string
                      description: Nome do vazamento
                    domain:
                      type: string
                      description: Domínio afetado pelo vazamento
                    logo_path:
                      type: string
                      description: URL do logotipo do serviço vazado
                    breach_date:
                      type: string
                      format: date
                      description: Data em que a violação ocorreu
                    description:
                      type: string
                      description: Descrição da violação
                    is_verified:
                      type: boolean
                      description: Se o vazamento é verificado
                    data_classes:
                      type: array
                      description: Tipos de dados expostos no vazamento
                      items:
                        type: string
                    breach_emails_count:
                      type: integer
                      description: Número de endereços de e-mail afetados no vazamento
              is_disposable:
                type: boolean
                description: Indica se o e-mail é de um provedor descartável
              is_undeliverable:
                type: boolean
                description: Indica se o endereço de e-mail não pode receber mensagens
              verification_attempts:
                type: integer
                description: Número de tentativas de verificação para este e-mail
              verified_at:
                type: string
                format: date-time
                description: Data e hora em que o e-mail foi verificado
              warnings:
                type: array
                description: Lista de avisos relacionados à verificação de e-mail
                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: >-
                        O recurso que gerou este aviso. O valor identifica o
                        bloco de recurso ao qual o aviso pertence. O array de
                        avisos de cada módulo normalmente usa o valor
                        correspondente ao seu módulo (por exemplo, `PHONE`
                        dentro de `phone_verifications[].warnings`), mas o enum
                        acima é a referência oficial para todos os avisos de
                        recursos no payload de decisão.
                    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: O ID do nó do grafo do fluxo que gerou este aviso
              lifecycle:
                type: array
                description: >-
                  Lista cronológica de eventos do ciclo de vida da verificação
                  de e-mail.
                items:
                  type: object
                  properties:
                    type:
                      type: string
                    timestamp:
                      type: string
                      format: date-time
                    details:
                      type: object
                      nullable: true
                      description: >-
                        Payload específico do evento. Eventos de envio trazem
                        `status`, `reason`; eventos de verificação de código
                        trazem `code_tried`, `status`; eventos de status final
                        trazem `reason`, ou `null` quando não há motivo a
                        informar (por exemplo, `EMAIL_VERIFICATION_APPROVED`).
                      properties:
                        status:
                          type: string
                        reason:
                          type: string
                          nullable: true
                        code_tried:
                          type: string
                    fee:
                      type: number
              matches:
                type: array
                description: >-
                  Correspondências encontradas para este endereço de e-mail.
                  Cada correspondência tem um `source`: `session` (outra sessão
                  de verificação na sua aplicação correspondeu ao mesmo e-mail,
                  retornada com
                  `session_id`/`session_number`/`vendor_data`/`verification_date`)
                  ou `list_entry` (o e-mail está em uma lista de
                  permissão/bloqueio gerenciada pela organização — consulte
                  `/management-api/lists/overview`). As correspondências entre
                  sessões usam `vendor_data` diferentes e são limitadas 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: >-
                        Origem desta correspondência. `session` significa que
                        outra sessão de verificação na sua aplicação teve
                        correspondência com este valor. `list_entry` significa
                        que o valor foi encontrado em uma lista gerenciada pela
                        organização (lista de permissões/lista de bloqueio).
                        Consulte a visão geral de listas da API de gerenciamento
                        em `/management-api/lists/overview` para saber como
                        gerenciar essas listas.
              email_intelligence:
                allOf:
                  - $ref: '#/components/schemas/EmailIntelligence'
                description: >-
                  Sinais de inteligência de e-mail. Presente apenas quando o
                  complemento de inteligência de e-mail foi executado para este
                  endereço.
              email_social:
                allOf:
                  - $ref: '#/components/schemas/EmailSocialFootprint'
                description: >-
                  Pegada social do endereço. Presente apenas quando o
                  complemento de pegada social foi executado para este endereço.
        poa_verifications:
          type: array
          nullable: true
          description: >-
            **Array de relatórios de Comprovante de endereço (POA)**: sempre um
            array JSON, nunca um objeto `poa` único. Fica `null` até que pelo
            menos uma etapa de POA tenha produzido dados. Cada item é o
            relatório completo, incluindo `node_id`, o `status` no nível do
            recurso, a URL do arquivo do documento, o emissor, as datas, o
            endereço analisado e `warnings[]`.
          items:
            type: object
            properties:
              node_id:
                type: string
                description: Identificador único desta etapa de POA no grafo do fluxo.
              status:
                type: string
                description: >-
                  Status desta etapa de Comprovante de endereço no nível do
                  recurso. É independente do `status` de nível superior da
                  sessão: uma sessão pode chegar à decisão geral enquanto um
                  recurso individual permanece `In Review`.
                enum:
                  - Not Finished
                  - Approved
                  - Declined
                  - In Review
                  - Resub Requested
              document_file:
                type: string
                format: uri
                description: URL do documento de comprovante de endereço
              issuing_state:
                type: string
                description: Código de país de duas letras do Estado emissor
              document_type:
                type: string
                description: Tipo de documento de comprovante de endereço
              document_subtype:
                type: string
                nullable: true
                description: >-
                  Classificação mais específica do documento de comprovante de
                  endereço dentro do seu `document_type`, quando uma foi
                  detectada. Caso contrário, `null`.
              document_language:
                type: string
                description: Código de idioma do documento
              document_metadata:
                type: object
                properties:
                  file_size:
                    type: integer
                    description: Tamanho do documento
                  content_type:
                    type: string
                    description: Tipo de conteúdo do documento
                  creation_date:
                    type: string
                    format: date
                    description: Data em que o documento foi criado
                  modified_date:
                    type: string
                    format: date
                    description: Data em que o documento foi modificado
                  overlay_manipulation:
                    type: object
                    nullable: true
                    description: >-
                      Análise forense de PDF para suspeita de manipulação por
                      texto sobreposto. Null quando nenhuma evidência de
                      manipulação por sobreposição foi encontrada ou o documento
                      não era um PDF.
                    properties:
                      detected:
                        type: boolean
                        description: >-
                          Indica se foram detectadas evidências de manipulação
                          por sobreposição de texto.
                      analyzed:
                        type: boolean
                        description: Se foi possível analisar o PDF.
                      signals:
                        type: array
                        items:
                          type: string
                        description: >-
                          Sinais forenses acionados, como duplicate_font_subset
                          ou glyph_fragmentation.
                      manipulated_regions:
                        type: array
                        description: >-
                          Áreas com suspeita de manipulação, em coordenadas de
                          página do 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: Aplicação criadora registrada nos metadados do documento.
                  producer:
                    type: string
                    nullable: true
                    description: Software produtor registrado nos metadados do PDF.
                  software:
                    type: string
                    nullable: true
                    description: >-
                      Software de edição/processamento registrado nos metadados
                      do arquivo.
                  encryption:
                    type: string
                    nullable: true
                    description: >-
                      Esquema de criptografia do documento, quando
                      criptografado.
                  is_signed:
                    type: boolean
                    nullable: true
                    description: Se o PDF tem uma assinatura digital.
                  is_tampered:
                    type: boolean
                    nullable: true
                    description: >-
                      Indica se a validação da assinatura mostra que o arquivo
                      foi modificado após a assinatura.
                  signature_info:
                    type: object
                    nullable: true
                    description: >-
                      Detalhes da(s) assinatura(s) digital(is), quando
                      presentes.
                  exif_original_date:
                    type: string
                    nullable: true
                    description: Data de captura original EXIF, para uploads de imagem.
                  exif_digitized_date:
                    type: string
                    nullable: true
                    description: Data de digitalização EXIF, para uploads de imagem.
                  processed_by_known_editor:
                    type: boolean
                    nullable: true
                    description: >-
                      Se os metadados do arquivo indicam processamento por um
                      editor de documentos conhecido.
                  has_different_creation_mod_date:
                    type: boolean
                    nullable: true
                    description: >-
                      Se as datas de criação e de modificação diferem — um sinal
                      comum de manipulação.
                description: >-
                  Metadados de análise forense de arquivo extraídos do documento
                  de comprovante de endereço enviado. Sempre contém as chaves
                  abaixo (os valores são `null` quando não se aplicam, por
                  exemplo, datas EXIF para PDFs). `null` quando nenhum metadado
                  pôde ser extraído.
                nullable: true
              issuer:
                type: string
                description: Nome do emissor do documento
              issue_date:
                type: string
                format: date
                description: Data em que o documento foi emitido
              expiration_date:
                type: string
                format: date
                nullable: true
                description: Data de validade do documento, se disponível
              poa_address:
                type: string
                description: Endereço bruto do documento de comprovante de endereço
              poa_formatted_address:
                type: string
                description: >-
                  Endereço formatado extraído do documento de comprovante de
                  endereço
              poa_parsed_address:
                type: object
                properties:
                  address_type:
                    type: string
                    description: Tipo de logradouro (Rua, Avenida etc.)
                  street_1:
                    type: string
                    description: Endereço principal
                  street_2:
                    type: string
                    nullable: true
                    description: Linha secundária do endereço
                  city:
                    type: string
                    description: Nome da cidade
                  region:
                    type: string
                    description: Nome da região ou do estado
                  country:
                    type: string
                    description: Código de país de duas letras
                  postal_code:
                    type: string
                    description: Código postal
                  document_location:
                    type: object
                    properties:
                      latitude:
                        type: number
                        description: Coordenada de latitude
                      longitude:
                        type: number
                        description: Coordenada de longitude
              name_on_document:
                type: string
                nullable: true
                description: >-
                  Nome do titular da conta / destinatário extraído do documento
                  de comprovante de endereço, usado na correspondência de nomes.
                  `null` quando nenhum nome pôde ser extraído.
              name_match_score_expected_details:
                type: number
                nullable: true
                description: >-
                  Pontuação de similaridade (0-100) entre `name_on_document` e o
                  nome esperado informado na criação da sessão. É `null` quando
                  qualquer um dos lados está ausente.
              name_match_score_id_verification:
                type: number
                nullable: true
                description: >-
                  Pontuação de similaridade (0-100) entre `name_on_document` e o
                  nome extraído pela etapa de verificação de identidade. É
                  `null` quando qualquer um dos lados está ausente.
              expected_details_address:
                type: string
                nullable: true
                description: Endereço bruto esperado para a verificação
              expected_details_formatted_address:
                type: string
                nullable: true
                description: Endereço formatado esperado para a verificação
              expected_details_parsed_address:
                type: object
                description: Detalhes do endereço analisado esperados para a verificação
              extra_fields:
                type: object
                description: >-
                  Dados bancários e de contato adicionais extraídos do
                  documento.
                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: Arquivos adicionais do comprovante de endereço
              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: >-
                        O recurso que gerou este aviso. O valor identifica o
                        bloco de recurso ao qual o aviso pertence. O array de
                        avisos de cada módulo normalmente usa o valor
                        correspondente ao seu módulo (por exemplo, `PHONE`
                        dentro de `phone_verifications[].warnings`), mas o enum
                        acima é a referência oficial para todos os avisos de
                        recursos no payload de decisão.
                    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: O ID do nó do grafo do fluxo que gerou este aviso
              detected_codes:
                type: array
                description: >-
                  QR codes e códigos de barras detectados em todas as páginas
                  processadas do documento. Vazio quando nenhum é encontrado. Um
                  QR code localizado, mas que não pôde ser decodificado, tem
                  `parsed_payload: null`.
                items:
                  $ref: '#/components/schemas/DocumentAIDetectedCode'
              address_validation:
                allOf:
                  - $ref: '#/components/schemas/AddressValidationResult'
                nullable: true
                description: >-
                  Validação de endereço do endereço deste comprovante de
                  endereço: se ele existe e sua forma normalizada, conforme lido
                  no documento (uma correção posterior de `poa_address` não
                  executa a validação novamente). Presente quando esta etapa de
                  Comprovante de endereço ativou o complemento de Validação de
                  endereço e o envio passou nas verificações do documento;
                  `null` caso contrário.
        document_ai_documents:
          type: array
          nullable: true
          description: >-
            **Relatórios de Document AI agrupados por nó do fluxo** — sempre um
            array JSON, nunca um objeto único. `null` até que pelo menos uma
            etapa de Document AI tenha produzido dados. Presente apenas quando
            `session_kind = user`. Cada item é um grupo de nó com um `status`
            agregado, o `node_id`, um array `items[]` com os resultados por
            documento (dados extraídos indexados pela chave de campo
            configurada) e `warnings`.
          items:
            type: object
            description: Resultados do Document AI agrupados por nó do fluxo.
            properties:
              status:
                type: string
                description: >-
                  Status agregado do Document AI para este nó, consolidado a
                  partir de seus `items[]`.
                enum:
                  - Approved
                  - Declined
                  - In Review
                  - Not Finished
              node_id:
                type: string
                nullable: true
                description: >-
                  Identificador único desta etapa de Document AI no grafo do
                  fluxo.
              items:
                type: array
                items:
                  type: object
                  properties:
                    uuid:
                      type: string
                      format: uuid
                    node_id:
                      type: string
                      nullable: true
                      description: Nó do grafo do fluxo que gerou este documento.
                    document_key:
                      type: string
                      description: >-
                        Chave do documento configurado no Document AI ao qual
                        este arquivo corresponde.
                    original_filename:
                      type: string
                      nullable: true
                      description: Nome do arquivo conforme enviado pelo usuário.
                    file_size:
                      type: integer
                      nullable: true
                      description: Tamanho do arquivo em bytes.
                    file_url:
                      type: string
                      format: uri
                      nullable: true
                      description: >-
                        Link pré-assinado de curta duração para o arquivo
                        enviado.
                    status:
                      type: string
                      enum:
                        - Approved
                        - Declined
                        - In Review
                        - Not Finished
                      description: Status do Document AI por documento.
                    extracted_data:
                      type: object
                      additionalProperties: true
                      nullable: true
                      description: >-
                        Valores extraídos pelo Document AI, indexados pela `key`
                        do campo configurado. Cada valor é uma string, um número
                        ou `null`.
                    detected_codes:
                      type: array
                      description: >-
                        QR codes e códigos de barras detectados em todas as
                        páginas processadas. Vazio quando nenhum é encontrado.
                        Um QR code localizado, mas que não pôde ser
                        decodificado, tem `parsed_payload: null`.
                      items:
                        $ref: '#/components/schemas/DocumentAIDetectedCode'
                    fields:
                      type: array
                      description: Os campos de extração configurados para este documento.
                      items:
                        type: object
                        properties:
                          key:
                            type: string
                            description: >-
                              Chave estável do campo, usada como chave em
                              `extracted_data`.
                          name:
                            type: string
                            description: Nome legível do campo.
                          instruction:
                            type: string
                            description: Instrução de extração mostrada ao modelo.
                          type:
                            type: string
                            enum:
                              - text
                              - number
                              - date
                            description: Tipo de valor esperado do campo extraído.
                          required:
                            type: boolean
                            description: Whether this field is required.
                    document_metadata:
                      type: object
                      nullable: true
                      description: >-
                        Metadados de análise forense de arquivo extraídos do
                        documento enviado (por exemplo, `is_tampered`). `null`
                        quando nada pôde ser extraído.
                    cross_check_result:
                      type: object
                      nullable: true
                      description: >-
                        Comparação cruzada dos campos extraídos do documento com
                        outros dados da sessão. `null` quando nenhuma
                        verificação cruzada foi realizada.
                    created_at:
                      type: string
                      format: date-time
              warnings:
                type: array
                nullable: true
                items:
                  type: object
                description: Logs de aviso gerados para este nó de Document AI.
        questionnaire_responses:
          type: array
          nullable: true
          description: >-
            **Array de relatórios de respostas de questionário**: sempre um
            array JSON, nunca um objeto `questionnaire` único. Fica `null` até
            que pelo menos uma etapa de questionário tenha produzido dados. Cada
            item é o relatório completo, incluindo `node_id`, os metadados do
            questionário, as seções com elementos de formulário e as respostas
            do usuário.
          items:
            type: object
            properties:
              node_id:
                type: string
                description: >-
                  Identificador único desta etapa de questionário no grafo do
                  fluxo.
              questionnaire_id:
                type: string
                description: Identificador único do questionário
              title:
                type: string
                description: Título do questionário
              description:
                type: string
                description: Descrição do questionário
              languages:
                type: array
                items:
                  type: string
                description: Idiomas compatíveis
              default_language:
                type: string
                description: Idioma padrão
              is_active:
                type: boolean
                description: Se o questionário está ativo
              is_simple_questionnaire:
                type: boolean
                description: >-
                  Se o questionário é um formulário linear simples (sem grafo de
                  ramificação).
              questionnaire_group_id:
                type: string
                format: uuid
                nullable: true
                description: Identificador estável do grupo do questionário entre versões.
              version:
                type: integer
                nullable: true
                description: Número da versão do questionário que foi respondido.
              published_at:
                type: string
                format: date-time
                nullable: true
                description: Data e hora em que esta versão do questionário foi publicada.
              sections:
                type: array
                items:
                  type: object
                  properties:
                    title:
                      type: string
                      nullable: true
                      description: Título da seção
                    description:
                      type: string
                      nullable: true
                      description: Descrição da seção
                    items:
                      type: array
                      items:
                        type: object
                        properties:
                          uuid:
                            type: string
                            description: Identificador único do item
                          value:
                            type: string
                            nullable: true
                            description: >-
                              Identificador de nó estável deste elemento de
                              formulário no grafo do questionário.
                          element_type:
                            type: string
                            description: Tipo do elemento do questionário
                          is_required:
                            type: boolean
                            description: Se o item é obrigatório
                          title:
                            type: string
                            description: Título do item
                          description:
                            type: string
                            nullable: true
                            description: Descrição do item
                          placeholder:
                            type: string
                            nullable: true
                            description: Texto de placeholder
                          choices:
                            type: array
                            nullable: true
                            items:
                              type: object
                              properties:
                                label:
                                  type: string
                                value:
                                  type: string
                                requires_text_input:
                                  type: boolean
                                  description: >-
                                    Se esta opção exige uma entrada de texto
                                    adicional
                                  nullable: true
                              required:
                                - label
                                - value
                            description: >-
                              Opções para elementos de lista suspensa ou de
                              escolha única
                          max_files:
                            type: integer
                            description: Número máximo de arquivos permitidos
                            nullable: true
                          answer:
                            type: object
                            description: Resposta fornecida para o item
                            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: >-
                              Regra de obrigatoriedade condicional, quando o
                              elemento só é obrigatório para determinadas
                              respostas.
                          repeatable_config:
                            type: object
                            nullable: true
                            description: >-
                              Configuração para grupos de elementos repetíveis,
                              quando aplicável.
                        required:
                          - uuid
                          - value
                          - element_type
                          - is_required
                          - title
              status:
                type: string
                description: Status do questionário
        bank_verifications:
          type: array
          nullable: true
          description: >-
            Resultados da Verificação bancária, um item por etapa de Verificação
            bancária, para Verificação de usuários e Verificação de empresas.
            `null` até que uma etapa produza um. O `method` de cada item indica
            como a conta foi verificada: `open_banking` (login no banco) ou
            `account_lookup` (consulta da conta), ou um fallback por `statement`
            ou `microdeposits`, e `none` quando a pessoa continuou sem banco
            antes que qualquer tentativa fosse avaliada
            (`continued_without_bank`). Consulte [Métodos de verificação
            bancária](/pt-br/core-technology/bank-verification/verification-methods).
            A Verificação bancária ainda não está habilitada em produção, então
            este campo permanece `null` nas sessões de produção até que esteja.
          items:
            $ref: '#/components/schemas/BankVerificationResult'
        signatures:
          type: array
          description: >-
            Resultados de assinatura eletrônica, um item por signatário e etapa
            de assinatura, para Verificação de usuários e Verificação de
            empresas. Presente somente quando o fluxo tem uma etapa de
            Assinatura eletrônica; é um array vazio até que um signatário chegue
            a ela. Consulte o [relatório de assinatura
            eletrônica](/pt-br/core-technology/electronic-signature/report-electronic-signature).
          items:
            $ref: '#/components/schemas/SignatureResult'
        aml_screenings:
          type: array
          nullable: true
          description: >-
            **Array de relatórios de análise AML**: sempre um array JSON, nunca
            um objeto `aml` único. É `null` até que pelo menos uma etapa de AML
            tenha produzido dados. Cada item é o relatório completo, incluindo
            `node_id`, o `status` no nível do recurso, `total_hits`,
            `entity_type`, `hits[]`, `score`, `screened_data`,
            `is_ongoing_monitoring_enabled` e `warnings[]`.
          items:
            $ref: '#/components/schemas/AMLScreening'
        ip_analyses:
          type: array
          nullable: true
          description: >-
            **Array de relatórios de Análise de dispositivo e IP**: sempre um
            array JSON, nunca um objeto `ip_analysis` único. Fica `null` até que
            pelo menos uma etapa de análise de IP tenha produzido dados. Cada
            item é o relatório completo, incluindo `node_id`, o `status` no
            nível do recurso, dados de IP e geolocalização, a impressão digital
            do dispositivo e `warnings[]`. Entradas com `(node_id, ip_address,
            device_fingerprint)` duplicados são desduplicadas no servidor.
          items:
            type: object
            properties:
              node_id:
                type: string
                description: >-
                  Identificador único desta etapa de Análise de dispositivo e IP
                  no grafo do fluxo.
              status:
                type: string
                description: >-
                  Status desta entrada de Análise de dispositivo e IP no nível
                  do recurso. É independente do `status` de nível superior da
                  sessão: uma sessão pode chegar à decisão geral enquanto um
                  recurso individual permanece `In Review`.
                enum:
                  - Not Finished
                  - Approved
                  - Declined
                  - In Review
                  - Resub Requested
              device_brand:
                type: string
                description: Marca do dispositivo usado
              device_model:
                type: string
                description: Modelo do dispositivo utilizado
              browser_family:
                type: string
                description: Família do navegador usada
              os_family:
                type: string
                description: Família do sistema operacional
              platform:
                type: string
                description: Tipo de plataforma (mobile, desktop etc.)
              device_fingerprint:
                type: string
                nullable: true
                description: Identificador único da impressão digital do dispositivo
              ip_country:
                type: string
                description: País detectado a partir do IP
              ip_country_code:
                type: string
                description: Código de país de duas letras obtido pelo IP
              ip_state:
                type: string
                description: Estado/região detectado a partir do IP
              ip_city:
                type: string
                description: Cidade detectada pelo IP
              latitude:
                type: number
                description: Coordenada de latitude da localização do IP
              longitude:
                type: number
                description: Coordenada de longitude da localização do IP
              ip_address:
                type: string
                description: Endereço IP
              isp:
                type: string
                nullable: true
                description: Provedor de serviços de internet
              organization:
                type: string
                nullable: true
                description: Organização associada ao IP
              is_vpn_or_tor:
                type: boolean
                description: Indica se o IP é de uma rede VPN ou Tor
              is_data_center:
                type: boolean
                description: Indica se o IP é de um data center
              time_zone:
                type: string
                description: Fuso horário detectado a partir do IP
              time_zone_offset:
                type: string
                description: Deslocamento do fuso horário
              ip:
                type: object
                description: >-
                  Geolocalização por IP deste registro, mais as distâncias
                  ortodrômicas (km) até o endereço do documento de identidade e
                  o endereço do documento de comprovante de endereço. As
                  distâncias são `null` quando um dos lados não tem uma
                  localização resolvível.
                properties:
                  location:
                    type: object
                    nullable: true
                    properties:
                      latitude:
                        type: number
                        example: 41.2706327
                      longitude:
                        type: number
                        example: 1.9770097
                    description: Coordenadas, ou `null` quando indisponíveis.
                  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: >-
                  Localização extraída do endereço do documento de identidade,
                  com as distâncias (km) até a geolocalização do IP e até o
                  endereço do documento de comprovante de endereço. `location` é
                  `null` quando não foi possível geocodificar nenhum endereço de
                  documento.
                properties:
                  location:
                    type: object
                    nullable: true
                    properties:
                      latitude:
                        type: number
                        example: 41.2706327
                      longitude:
                        type: number
                        example: 1.9770097
                    description: Coordenadas, ou `null` quando indisponíveis.
                  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: >-
                  Localização extraída do documento de comprovante de endereço,
                  com as distâncias (km) até a geolocalização do IP e até o
                  endereço do documento de identidade. `location` é `null`
                  quando a sessão não tem etapa de comprovante de endereço ou
                  quando não foi possível geocodificar o endereço.
                properties:
                  location:
                    type: object
                    nullable: true
                    properties:
                      latitude:
                        type: number
                        example: 41.2706327
                      longitude:
                        type: number
                        example: 1.9770097
                    description: Coordenadas, ou `null` quando indisponíveis.
                  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: >-
                        O recurso que gerou este aviso. O valor identifica o
                        bloco de recurso ao qual o aviso pertence. O array de
                        avisos de cada módulo normalmente usa o valor
                        correspondente ao seu módulo (por exemplo, `PHONE`
                        dentro de `phone_verifications[].warnings`), mas o enum
                        acima é a referência oficial para todos os avisos de
                        recursos no payload de decisão.
                    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: O ID do nó do grafo do fluxo que gerou este aviso
              matches:
                type: array
                description: >-
                  Correspondências entre sessões encontradas para o endereço IP
                  ou a identidade do dispositivo desta entrada. Cada
                  correspondência é outra sessão de verificação na sua aplicação
                  (`source` é sempre `session`) que compartilha o mesmo valor,
                  sempre pertencente a um usuário do fornecedor / `vendor_data`
                  diferente do da sessão atual, com limite de 5 por coletor
                  (`device_fingerprint` soma dois coletores com limites
                  independentes, portanto até 10 entradas são possíveis). Cada
                  item inclui `match_source`, `confidence`, `match_mode`,
                  `device_info` e `location_info`; as chaves
                  `recovery_similarity`, `tls_ja4_corroborated` e
                  `recovery_gate_reason` estão presentes apenas quando
                  `match_source` é `recovered_high`.
                items:
                  type: object
                  additionalProperties: false
                  properties:
                    session_id:
                      type: string
                      format: uuid
                      description: ID da sessão correspondente.
                    session_number:
                      type: integer
                      description: Número sequencial da sessão correspondente.
                    vendor_data:
                      type: string
                      nullable: true
                      description: >-
                        `vendor_data` da sessão correspondente: sempre diferente
                        do usuário do cliente da sessão atual.
                    verification_date:
                      type: string
                      format: date-time
                      nullable: true
                      description: >-
                        Data de criação da sessão correspondente
                        (`YYYY-MM-DDTHH:MM:SSZ`).
                    match_type:
                      type: string
                      enum:
                        - ip_address
                        - device_fingerprint
                      description: >-
                        Se a correspondência foi por endereço IP ou por
                        impressão digital do dispositivo
                    match_source:
                      type: string
                      enum:
                        - ip_address
                        - persistent_id
                        - legacy_fp
                        - recovered_high
                      description: >-
                        Como esta correspondência foi obtida: `ip_address`
                        (endereço IP compartilhado: colocalização de rede, não
                        uma afirmação de identidade do dispositivo),
                        `persistent_id` (identificador persistente do
                        dispositivo armazenado, exato), `legacy_fp` (hash legado
                        de impressão digital do dispositivo `didit-fp-*`) ou
                        `recovered_high` (resultado de recuperação aproximada de
                        impressão digital com alta confiança). Candidatos de
                        recuperação com confiança menor aparecem apenas como
                        avisos de risco, nunca neste array.
                    matched_value:
                      type: string
                      nullable: true
                      description: >-
                        O valor que correspondeu: o endereço IP compartilhado, o
                        identificador persistente do dispositivo ou o hash de
                        impressão digital legado, ou, para `recovered_high`, o
                        UUID do dispositivo recuperado.
                    status:
                      type: string
                      description: Status do ciclo de vida da sessão correspondente.
                    is_blocklisted:
                      type: boolean
                      description: >-
                        Se o valor correspondente está em uma lista de bloqueio.
                        Atualmente sempre `false` para correspondências de
                        dispositivo/IP.
                    api_service:
                      type: string
                      nullable: true
                      description: >-
                        Serviço de API autônomo da sessão correspondente; `null`
                        para sessões de fluxo.
                    source:
                      type: string
                      enum:
                        - session
                      description: >-
                        Sempre `session` para correspondências de
                        dispositivo/IP: cada correspondência é outra sessão de
                        verificação na sua aplicação.
                    device_info:
                      type: object
                      description: >-
                        Detalhes do dispositivo observados na sessão
                        correspondente.
                      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: >-
                        Detalhes de rede e geolocalização observados na sessão
                        correspondente.
                      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 de identificação do lado do servidor,
                        calculada como `1 - P(false positive)`: `1.0` para
                        correspondências determinísticas (`persistent_id` ou
                        `recovered_high` ancorado em hardware), `0.5` para
                        `legacy_fp`, `0.0` para `ip_address` (apenas
                        colocalização) e um valor ajustado por corroboração
                        abaixo de `1.0` para correspondências recuperadas
                        probabilísticas (maior quando a impressão digital TLS
                        JA4 e o país do IP concordam de forma independente).
                    match_mode:
                      type: string
                      enum:
                        - deterministic
                        - probabilistic
                        - co_occurrence
                      description: >-
                        Classe de evidência da correspondência: `deterministic`
                        (identificador exato armazenado ou vinculado ao
                        hardware, que não pode coincidir entre dispositivos
                        físicos distintos), `probabilistic` (evidência
                        aproximada de fingerprint) ou `co_occurrence` (apenas
                        rede compartilhada, sem afirmação sobre a identidade do
                        dispositivo).
                    recovery_similarity:
                      type: number
                      description: >-
                        Similaridade de cosseno da correspondência por
                        recuperação de impressão digital, arredondada para 4
                        casas decimais. Presente apenas quando `match_source` é
                        `recovered_high`.
                    tls_ja4_corroborated:
                      type: boolean
                      description: >-
                        Se as impressões digitais TLS JA4 das duas observações
                        coincidem — um sinal observado pelo servidor que o
                        navegador não consegue falsificar. Presente apenas
                        quando `match_source` é `recovered_high`.
                    recovery_gate_reason:
                      type: string
                      description: >-
                        Por que a correspondência de recuperação passou pela
                        barreira rígida contra falsos positivos:
                        `hardware_root_match` (um identificador de dispositivo
                        ancorado em hardware correspondeu exatamente) ou, em
                        configurações que admitem evidências apenas de sondagem,
                        `exact_composite_plus_<n>_families` /
                        `very_high_similarity_plus_<n>_families`. Presente
                        apenas quando `match_source` é `recovered_high`.
              browser_version:
                type: string
                nullable: true
              os_version:
                type: string
                nullable: true
              user_agent:
                type: string
                nullable: true
                description: A string de user agent do navegador.
              accept_language:
                type: string
                nullable: true
                description: O cabeçalho `Accept-Language` enviado pelo navegador.
              session_identifier:
                type: string
                nullable: true
                description: >-
                  Identificador da sessão de navegação em que a verificação foi
                  executada.
              session_age_ms:
                type: integer
                nullable: true
                description: >-
                  Duração dessa sessão de navegação, em milissegundos, quando a
                  etapa foi executada.
              coords_accuracy:
                type: number
                nullable: true
                description: >-
                  Raio de precisão, em metros, das coordenadas informadas pelo
                  dispositivo.
              raw_device_data:
                type: object
                nullable: true
                additionalProperties: true
                description: Sinais brutos do dispositivo coletados para a etapa.
        geolocation_checks:
          type: array
          nullable: true
          description: >-
            **Array de resultados de verificação de localização**, um por etapa
            de verificação de localização: a tentativa aceita dessa etapa. Fica
            `null` até que uma etapa de verificação de localização tenha
            produzido dados. As tentativas anteriores da mesma etapa estão em
            `geolocation_attempts`.
          items:
            $ref: '#/components/schemas/GeolocationCheck'
        geolocation_attempts:
          type: array
          nullable: true
          description: >-
            Todas as tentativas de todas as etapas de verificação de localização
            desta sessão, da mais antiga para a mais recente. Tentativas
            substituídas por um reenvio ficam de fora. Um fluxo que oculta
            `geolocation_checks` por meio dos seus atributos de resposta também
            oculta esta lista.
          items:
            $ref: '#/components/schemas/GeolocationAttempt'
        database_validations:
          type: array
          nullable: true
          description: >-
            **Array de relatórios de Validação de banco de dados** — sempre um
            array JSON, nunca um objeto `database_validation` singular. `null`
            até que pelo menos uma etapa de validação de banco de dados tenha
            produzido dados. Cada item é o relatório completo, incluindo
            `node_id`, o `status` no nível do recurso, `screened_data`, as
            `validations[]` por serviço (cada uma com o `source_data` do
            respectivo registro) e `warnings[]`. Os campos `screened_data` e
            `source_data` variam por 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}. Usa a validação
            biométrica de correspondência facial do RENAPER. O gênero é inferido
            automaticamente a partir da análise facial ou do primeiro nome
            quando não consta no documento (por exemplo, carteiras de motorista)


            **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 inclui {identification_number,
            first_name, last_name, date_of_birth, lgpd_minor, minor_under_18,
            minor_under_16} para correspondências de CPF bem-sucedidas.
            Consultas bem-sucedidas de adultos definem essas flags como false. O
            serviço Consulta CPF da Receita Federal pode retornar HTTP 422
            (menor de 18 anos) ou 451 (menor de 16 anos) com dados retidos pela
            LGPD; nesses casos, source_data define as flags de menoridade como
            true conforme o caso, inclui o status HTTP retornado pela fonte e a
            validação no nível do campo é no_match. Consulte a seção Brasil da
            referência de códigos de resultado da Validação de banco de dados
            para ver a lista completa de códigos.


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


            **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} (retorna apenas
            válido/inválido)


            **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 (Espanha)**: 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 (Honduras)**: screened_data: {document_number, first_name,
            last_name}. source_data: {identification_number, first_name,
            last_name, full_name}


            **MEX (México)**: 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}. Usa o registro civil do RENAPO. Um
            serviço separado de verificação de validade do INE também está
            disponível para MEX como validação individual adicional.


            **PAN (Panamá)**: screened_data: {personal_number, selfie}.
            source_data: {identification_number}. Usa a validação biométrica do
            SIB


            **PER (Peru)**: screened_data: {personal_number (DNI), first_name,
            last_name}. source_data: {identification_number, first_name,
            last_name, paternal_name, maternal_name, verification_number,
            verification_letter}


            **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 (Venezuela)**: screened_data: {document_number, first_name,
            last_name}. source_data: {identification_number, first_name,
            last_name, full_name, gender, date_of_birth, document_type}
          items:
            type: object
            properties:
              node_id:
                type: string
                description: >-
                  Identificador único desta etapa de validação de banco de dados
                  no grafo do fluxo.
              issuing_state:
                type: string
                description: >-
                  Código ISO 3166-1 alpha-3 do país cujas fontes governamentais
                  ou de registro foram consultadas (por exemplo, `BRA`, `MEX`,
                  `ESP`, `NGA`, `IDN`). A Validação de banco de dados cobre 60+
                  países nas Américas, Europa, África, Oriente Médio e
                  Ásia-Pacífico, além de fontes globais multipaís. Como a
                  cobertura é ampliada regularmente, trate o valor como um
                  conjunto aberto, e não como um enum fixo.
              validation_type:
                type: string
                enum:
                  - one_by_one
                  - two_by_two
                  - not_enabled
                description: >-
                  Como o resultado foi corroborado: `one_by_one` (resultado de
                  um único serviço), `two_by_two` (dois ou mais serviços
                  distintos obtiveram, de forma independente, correspondência
                  total com o número de identificação) ou `not_enabled`
                  (persistido quando nenhum serviço produziu uma correspondência
                  utilizável). O valor nunca é `null`. Modos dedicados de
                  validação biométrica 2x2 estão disponíveis atualmente para
                  `ECU` e `PER`.
              screened_data:
                type: object
                description: >-
                  Os dados de entrada usados para a validação. Os campos variam
                  por país — consulte a documentação de Validação de banco de
                  dados (`/core-technology/database-validation/overview`) para
                  os formatos específicos de cada país.
                properties:
                  last_name:
                    type: string
                  first_name:
                    type: string
                  tax_number:
                    type: string
                    description: 'Brasil: CPF (11 dígitos)'
                  personal_number:
                    type: string
                    description: >-
                      Chile: RUT, DOM: Cédula (11 dígitos), ECU: Cédula (10
                      dígitos), ESP: DNI/NIE, MEX: CURP (18 caracteres), PER:
                      DNI (8 dígitos), 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: Obrigatório para ESP
              validations:
                type: array
                description: >-
                  Uma entrada por serviço de registro que retornou um payload de
                  validação. Cada entrada identifica o serviço (`service_id`,
                  `service_name`) e traz a comparação `validation` por campo, o
                  `outcome_code` / `outcome_detail` do serviço quando informado
                  e o registro normalizado em `source_data`.
                items:
                  type: object
                  properties:
                    service_id:
                      type: string
                      description: >-
                        Identificador do serviço de registro que produziu este
                        resultado de validação.
                      example: bra_cpf
                    service_name:
                      type: string
                      description: Nome legível do serviço de registro.
                      example: Brazil - CPF status check
                    validation:
                      type: object
                      description: Os resultados das validações de campos.
                      properties:
                        full_name:
                          type: string
                          description: >-
                            Resultado da correspondência do nome completo (por
                            exemplo, 'full_match', 'partial_match', 'no_match').
                        date_of_birth:
                          type: string
                          description: Resultado da correspondência da data de nascimento.
                        identification_number:
                          type: string
                          description: >-
                            Resultado da correspondência do número de
                            identificação.
                    outcome_code:
                      type: string
                      nullable: true
                      description: >-
                        Resultado legível por máquina da consulta ao registro
                        (por exemplo, `MATCH`, `NO_MATCH`, `PARTIAL_MATCH`,
                        `INCONCLUSIVE`, códigos específicos da fonte). Presente
                        quando o serviço informa um.
                    outcome_detail:
                      type: string
                      nullable: true
                      description: >-
                        Explicação legível de `outcome_code`, quando fornecida
                        pelo serviço.
                    source_data:
                      type: object
                      description: >-
                        Os dados retornados pelo banco de dados governamental.
                        Campos comuns: identification_number, first_name,
                        last_name, full_name, date_of_birth, gender. Campos
                        adicionais por país: BRA sempre inclui lgpd_minor,
                        minor_under_18 e minor_under_16 nas correspondências de
                        CPF bem-sucedidas; também inclui o status HTTP da fonte
                        quando os dados do CPF são retidos com base na LGPD
                        (HTTP 422/451). ECU acrescenta street,
                        formatted_address, nationality, education,
                        marital_status, spouse, mother_name, father_name,
                        profession. PER acrescenta paternal_name, maternal_name,
                        verification_number, verification_letter. ESP acrescenta
                        document_type, expiration_date. VEN/COL acrescentam
                        document_type.
                      additionalProperties: true
              errors:
                type: array
                description: >-
                  Erros retornados pelos serviços de registro durante a
                  validação, cada um marcado com o `service_id` que o gerou.
                  **Esta chave é totalmente omitida quando não há erros.**
                items:
                  type: object
                  description: >-
                    O objeto de erro do serviço upstream repassado sem
                    alterações (suas chaves variam conforme o serviço;
                    normalmente uma mensagem/código e quaisquer detalhes
                    específicos do provedor), mais `service_id`, que identifica
                    o serviço que gerou o erro.
                  properties:
                    service_id:
                      type: string
                      nullable: true
                      description: >-
                        Identificador do serviço de registro que apresentou
                        erro.
                  additionalProperties: true
              match_type:
                type: string
                enum:
                  - no_match
                  - partial_match
                  - full_match
                nullable: true
                description: >-
                  O resultado agregado da correspondência entre os serviços
                  consultados. `null` até que a validação seja avaliada.
              status:
                type: string
                description: >-
                  Status desta validação de banco de dados no nível do recurso.
                  É independente do `status` de nível superior da sessão: uma
                  sessão pode chegar à decisão geral enquanto um recurso
                  individual permanece `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: >-
                        O recurso que gerou este aviso. O valor identifica o
                        bloco de recurso ao qual o aviso pertence. O array de
                        avisos de cada módulo normalmente usa o valor
                        correspondente ao seu módulo (por exemplo, `PHONE`
                        dentro de `phone_verifications[].warnings`), mas o enum
                        acima é a referência oficial para todos os avisos de
                        recursos no payload de decisão.
                    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: O ID do nó do grafo do fluxo que gerou este aviso
                description: Avisos relacionados à validação de banco de dados.
        database_validation_not_performed_reason:
          type: object
          nullable: true
          additionalProperties: true
          description: >-
            Motivo pelo qual uma validação de banco de dados configurada não
            produziu resultado, no formato `{code, message}` mais campos de
            contexto. Presente apenas quando `database_validations` é `null` em
            um fluxo que tem a etapa, para que você possa distinguir "o registro
            confirmou" de "nada foi executado". `null` nos demais casos.
          properties:
            code:
              type: string
              description: Motivo estável e legível por máquina.
            message:
              type: string
              description: Explicação legível.
        reviews:
          type: array
          items:
            type: object
            properties:
              user:
                type: string
                description: >-
                  Quem realizou a revisão. Geralmente é o identificador do
                  revisor no console (o e-mail dele), mas o valor é `"API
                  Client"` para atualizações de status feitas com uma chave de
                  API e `"Unknown"` quando não foi possível identificar o autor.
                  Por isso, não interprete este campo como um endereço de
                  e-mail.
              new_status:
                type: string
              comment:
                type: string
              created_at:
                type: string
                format: date-time
        assignee:
          type: object
          nullable: true
          description: >-
            O revisor do Console a quem a sessão está atribuída, ou `null`
            quando ninguém a detém.
          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: >-
            Quando a sessão começou a aguardar revisão. `null`, a menos que a
            sessão esteja `In Review` e sua aplicação defina um prazo de
            revisão.
        sla_due_at:
          type: string
          format: date-time
          nullable: true
          description: >-
            Quando a revisão vence. `null`, a menos que a sessão esteja `In
            Review` e sua aplicação defina um prazo de revisão.
        created_at:
          type: string
          format: date-time
          description: Data e hora em que a sessão foi criada (ISO 8601, UTC).
        expires_at:
          type: string
          format: date-time
          nullable: true
          description: >-
            Data e hora em que está prevista a expiração desta sessão. Definido
            em sessões de Verificação de usuários (KYC) quando uma expiração foi
            configurada no momento da criação (ou quando o status `Approved`
            aciona o cálculo de expiração do KYC). `null` para sessões sem
            expiração configurada e para tipos que não usam expiração (por
            exemplo, sessões de Verificação de empresas (KYB) que nunca
            receberam um `expires_at`).
        registry_checks:
          type: array
          nullable: true
          description: >-
            Verificações no registro de empresas. Presente apenas quando
            `session_kind = business`. Cada item contém o payload completo do
            registro de empresas.
          items:
            type: object
            description: >-
              Uma verificação no registro de empresas: o payload completo do
              registro de empresas, enriquecido com a estrutura de propriedade e
              avisos. Presente apenas quando `session_kind = business`.
            properties:
              status:
                type: string
                description: Status do ciclo de vida do recurso.
              node_id:
                type: string
                nullable: true
              data_resolved:
                type: boolean
              company:
                type: object
                description: >-
                  Payload completo do registro da empresa (registro oficial
                  mesclado com quaisquer dados fornecidos pelo usuário ou
                  editados no console).
                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 constituição (ISO 3166-1 alpha-2, por exemplo,
                      `GB`, `DE`, `US`).
                  region:
                    type: string
                    nullable: true
                    description: >-
                      Código de subdivisão ISO 3166-2, quando aplicável (por
                      exemplo, `CA`, `NY` para estados dos 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: >-
                      Nomes alternativos, comerciais, anteriores ou no idioma
                      original da empresa, em texto, quando informados.
                  nature_of_business:
                    type: string
                    nullable: true
                  registered_capital:
                    type: string
                    nullable: true
                  registered_capital_amount:
                    type: string
                    format: decimal
                    nullable: true
                    description: >-
                      Valor do capital social/registrado como string decimal
                      (por exemplo, `"100.00"`), extraído do registro arquivado
                      no órgão de registro. `null` quando não disponível.
                  registered_capital_currency:
                    type: string
                    nullable: true
                    description: >-
                      Código de moeda ISO 4217 de `registered_capital_amount`
                      (por exemplo, `"GBP"`). `null` quando não disponível.
                  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 de IVA da UE (EU VAT), quando coletado durante a
                      etapa de registro no fluxo hospedado ou editado
                      posteriormente.
                  vat_validation_status:
                    type: string
                    enum:
                      - valid
                      - invalid
                      - format_valid
                      - invalid_format
                      - could_not_validate
                      - not_applicable
                    description: >-
                      Resultado da validação do número de VAT ou, quando não
                      houver, do `tax_number`, no envio ao registro. `valid` /
                      `invalid`: decidido pelo registro oficial do país (EU
                      VIES, Noruega, Suíça, Brasil, Colômbia, Costa Rica,
                      Equador, Paraguai; a Polônia também pelo seu registro
                      nacional de VAT). `format_valid` / `invalid_format`:
                      decidido pelas regras de formato e dígito verificador do
                      país quando nenhum registro pode ser consultado.
                      `could_not_validate`: o registro estava indisponível.
                      `not_applicable`: nenhum número, um país sem registro nem
                      regras, ou uma sessão de sandbox.
                  vat_validated_number:
                    type: string
                    nullable: true
                    description: >-
                      O número que foi verificado, como a fonte o conhece (por
                      exemplo, o número de IVA derivado de um SIREN francês ou
                      de um RSIN holandês). `null` quando nenhuma verificação
                      foi executada.
                  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: >-
                      A fonte que determinou `vat_validation_status`: um
                      registro oficial ou `format_rules`. `null` quando nenhuma
                      verificação foi executada.
                  vat_validated_name:
                    type: string
                    nullable: true
                    description: >-
                      Nome registrado na fonte que validou o número, quando ela
                      o informa. Preenchido apenas quando o status é `valid`.
                  vat_validated_address:
                    type: string
                    nullable: true
                    description: >-
                      Endereço registrado na fonte que validou o número, quando
                      ela o informa. Definido apenas quando o status é `valid`.
                  vat_checked_at:
                    type: string
                    format: date-time
                    nullable: true
                    description: >-
                      Data e hora da verificação. `null` quando nenhuma
                      verificação foi executada.
                  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: >-
                            Nome próprio, quando informado explicitamente pelo
                            registro; não é inferido a partir do nome completo.
                        last_name:
                          type: string
                          nullable: true
                          description: >-
                            Sobrenome, quando informado explicitamente pelo
                            registro.
                        address:
                          type: string
                          nullable: true
                          description: >-
                            Endereço do administrador informado pelo registro de
                            empresas.
                        appointment_date:
                          type: string
                          nullable: true
                          description: Data em que o administrador foi nomeado.
                          format: date
                        termination_date:
                          type: string
                          nullable: true
                          description: Data em que o cargo terminou, quando informada.
                          format: date
                        date_of_birth:
                          type: string
                          nullable: true
                          description: >-
                            Data de nascimento completa informada pelo registro.
                            Nula quando apenas o ano ou o mês de nascimento é
                            conhecido.
                          format: date
                        date_of_birth_year:
                          type: integer
                          nullable: true
                          minimum: 1
                          maximum: 9999
                          description: >-
                            Ano de nascimento informado pelo registro, inclusive
                            quando a data completa não está disponível.
                        date_of_birth_month:
                          type: integer
                          nullable: true
                          minimum: 1
                          maximum: 12
                          description: >-
                            Mês de nascimento informado pelo registro. Nulo
                            quando apenas o ano é conhecido.
                  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: >-
                            Limite inferior do percentual de propriedade
                            conforme informado pelo registro. String em formato
                            livre (por exemplo, `"25.00"`, `"50"`); use
                            `effective_ownership_percent` para obter um valor
                            numérico interpretado.
                        ownership_max_shares:
                          type: string
                          nullable: true
                          description: >-
                            Limite superior do percentual de propriedade
                            conforme informado pelo registro. String de formato
                            livre; use `effective_ownership_percent` para obter
                            um valor numérico interpretado.
                        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 nascimento completa, quando informada.
                          format: date
                        appointment_date:
                          type: string
                          nullable: true
                          description: Data de nomeação, quando informada.
                          format: date
                        shareholding:
                          $ref: '#/components/schemas/KYBRegistryShareholding'
                  addresses:
                    type: array
                    nullable: true
                    description: >-
                      Todos os endereços que o registro informa, em um único
                      formato canônico. Nulo quando não informa nenhum.
                    items:
                      $ref: '#/components/schemas/KYBRegistryAddress'
                  industries:
                    type: array
                    nullable: true
                    description: >-
                      As atividades em que o registro classifica a empresa, em
                      um único formato canônico. Null quando ele não informa
                      nenhuma.
                    items:
                      $ref: '#/components/schemas/KYBRegistryIndustry'
                  accounts:
                    type: object
                    nullable: true
                    additionalProperties: true
                    description: >-
                      Datas de arquivamento no registro, quando disponíveis.
                      Declarações anuais e assembleias gerais usam
                      last_annual_return_date e last_agm_date; elas são
                      distintas das demonstrações financeiras.
                  registry_data:
                    $ref: '#/components/schemas/KYBRegistryData'
                  user_provided_data:
                    type: object
                    description: Dados confirmados ou editados pelo usuário 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: >-
                      O nível de registro solicitado pelo fluxo: `basic`,
                      `shareholders` ou `ubo`. Também em
                      `ownership.tier_requested`.
                  registry_tier_delivered:
                    type: string
                    nullable: true
                    description: >-
                      O nível que o registro entregou e que é faturado. Também
                      disponível em `ownership.tier_delivered`.
                  registry_ownership_status:
                    type: string
                    nullable: true
                    description: >-
                      `not_requested`, `pending`, `delivered`, `not_held` ou
                      `unavailable`. Também em `ownership.status`.
                  registry_monitoring:
                    type: object
                    nullable: true
                    description: >-
                      O monitor de registro mais recente da empresa, ou `null`
                      quando não existe nenhum.
                    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: Os campos da empresa que o monitor acompanha.
              ownership_structure:
                $ref: '#/components/schemas/KYBOwnershipStructure'
              warnings:
                type: array
                items:
                  type: object
        key_people_checks:
          type: array
          nullable: true
          description: >-
            Verificações agregadas das pessoas-chave. Presente apenas quando
            `session_kind = business`. Cada item usa o formato de dois grupos
            (`registry`, `submitted`, `ubo_kyc_summary`).
          items:
            type: object
            description: >-
              Verificação agregada dos administradores + UBOs da empresa. Usa o
              formato `registry` / `submitted`. Presente apenas quando
              session_kind = business.
            properties:
              status:
                type: string
              node_id:
                type: string
                nullable: true
              registry:
                type: object
                description: Partes descobertas pela verificação no registro.
                properties:
                  officers:
                    type: array
                    description: >-
                      Administradores encontrados pela consulta ao registro de
                      empresas, cada um enriquecido com o status de qualquer
                      sessão de KYC filha e análise AML criadas para ele.
                    items:
                      type: object
                      properties:
                        uuid:
                          type: string
                          format: uuid
                        name:
                          type: string
                          description: >-
                            Nome completo do administrador conforme consta no
                            registro de empresas.
                        designation:
                          type: string
                          nullable: true
                          description: >-
                            Designação em texto livre do registro (por exemplo,
                            `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: Função normalizada do administrador.
                        nationality:
                          type: string
                          nullable: true
                        appointment_date:
                          type: string
                          nullable: true
                          description: Data em que o administrador foi nomeado.
                          format: date
                        termination_date:
                          type: string
                          nullable: true
                          description: Data em que o cargo terminou, quando informada.
                          format: date
                        is_active:
                          type: boolean
                        address:
                          type: string
                          nullable: true
                          description: >-
                            Endereço do administrador informado pelo registro de
                            empresas.
                        aml_status:
                          type: string
                          enum:
                            - Not Finished
                            - Approved
                            - Declined
                            - In Review
                            - Resub Requested
                          nullable: true
                          description: >-
                            Status da análise AML executada para este
                            administrador. `null` quando nenhuma análise AML foi
                            executada.
                        kyc_status:
                          type: string
                          enum:
                            - Not Started
                            - In Progress
                            - Approved
                            - Declined
                            - In Review
                            - Expired
                            - Abandoned
                            - Kyc Expired
                            - Resubmitted
                            - Awaiting User
                          nullable: true
                          description: >-
                            Status bruto do ciclo de vida da sessão KYC filha
                            criada para este administrador. Este é o enum
                            completo de status da sessão (não um conjunto
                            reduzido Approved/Declined/Pending). `null` quando
                            não existe sessão KYC filha.
                        kyc_session_url:
                          type: string
                          format: uri
                          nullable: true
                          description: >-
                            URL compartilhável da sessão de KYC filha. `null`
                            quando não existe sessão filha.
                        kyc_session_id:
                          type: string
                          format: uuid
                          nullable: true
                          description: >-
                            ID da sessão KYC filha. Passe-o para este mesmo
                            endpoint de decisão para obter o relatório KYC
                            completo da pessoa. `null` quando não existe sessão
                            filha.
                        verification_workflow_type:
                          type: string
                          nullable: true
                          description: >-
                            Tipo base do fluxo da sessão filha (por exemplo,
                            `kyc`). `null` para fluxos baseados em grafo ou
                            quando não existe sessão filha.
                        verification_workflow_id:
                          type: string
                          format: uuid
                          nullable: true
                          description: >-
                            ID do fluxo usado pela sessão filha. `null` quando
                            não existe sessão filha.
                        verification_workflow_label:
                          type: string
                          nullable: true
                          description: >-
                            Rótulo legível do fluxo da sessão filha. `null`
                            quando não definido.
                        verification_workflow_features:
                          type: array
                          nullable: true
                          description: >-
                            Progresso por recurso da sessão de verificação
                            filha, por exemplo `[{"feature": "ID_VERIFICATION",
                            "status": "Approved"}]`. `null` quando a sessão
                            filha não tem uma lista de recursos que possa ser
                            resolvida.
                          items:
                            type: object
                            properties:
                              feature:
                                type: string
                                description: >-
                                  Nome de exibição do recurso (por exemplo,
                                  `ID_VERIFICATION`, `LIVENESS`, `AML`).
                              status:
                                type: string
                                enum:
                                  - Not Finished
                                  - Approved
                                  - Declined
                                  - In Review
                                  - Resub Requested
                                description: Status do recurso dentro da sessão filha.
                        didit_internal_id:
                          type: string
                          nullable: true
                          description: >-
                            Identificador interno estável da pessoa verificada
                            por trás da sessão filha, útil para vincular sessões
                            entre si. `null` quando não existe sessão filha ou o
                            usuário ainda não foi identificado.
                        kyc_document_type:
                          type: string
                          nullable: true
                          description: >-
                            Tipo de documento apresentado na sessão de KYC filha
                            (por exemplo, `P`, `ID`, `DL`). `null` até que a
                            sessão filha tenha um resultado de verificação de
                            identidade.
                        kyc_nationality:
                          type: string
                          nullable: true
                          description: >-
                            Nacionalidade extraída do documento na sessão de KYC
                            filha. `null` até estar disponível.
                        kyc_liveness_passed:
                          type: boolean
                          nullable: true
                          description: >-
                            Se a verificação de prova de vida da sessão KYC
                            filha foi aprovada. `null` quando nenhuma
                            verificação de prova de vida foi executada.
                        kyc_verified_at:
                          type: string
                          format: date-time
                          nullable: true
                          description: >-
                            Quando a sessão de KYC filha atingiu `Approved`.
                            `null` enquanto a sessão filha tiver qualquer outro
                            status.
                        kyc_aml_categories:
                          type: object
                          nullable: true
                          description: >-
                            Resumo por categoria derivado dos resultados AML da
                            pessoa. `null` quando não há resultados.
                          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: >-
                            Timestamp ISO 8601 da última notificação de convite
                            de verificação enviada para a sessão filha desta
                            pessoa. `null` quando nenhuma foi enviada.
                        first_name:
                          type: string
                          nullable: true
                          description: >-
                            Nome próprio, quando informado explicitamente pelo
                            registro; não é inferido a partir do nome completo.
                        last_name:
                          type: string
                          nullable: true
                          description: >-
                            Sobrenome, quando informado explicitamente pelo
                            registro.
                        date_of_birth:
                          type: string
                          nullable: true
                          description: >-
                            Data de nascimento completa informada pelo registro.
                            Nula quando apenas o ano ou o mês de nascimento é
                            conhecido.
                          format: date
                        date_of_birth_year:
                          type: integer
                          nullable: true
                          minimum: 1
                          maximum: 9999
                          description: >-
                            Ano de nascimento informado pelo registro, inclusive
                            quando a data completa não está disponível.
                        date_of_birth_month:
                          type: integer
                          nullable: true
                          minimum: 1
                          maximum: 12
                          description: >-
                            Mês de nascimento informado pelo registro. Nulo
                            quando apenas o ano é conhecido.
                  beneficial_owners:
                    type: array
                    description: >-
                      Beneficiários finais identificados pela verificação no
                      registro, cada um enriquecido com o status de qualquer
                      sessão de KYC filha e análise AML gerada para ele.
                    items:
                      type: object
                      properties:
                        uuid:
                          type: string
                          format: uuid
                        name:
                          type: string
                          description: >-
                            Nome completo do beneficiário final (ou nome da
                            empresa, no caso de UBOs corporativos).
                        first_name:
                          type: string
                          nullable: true
                        last_name:
                          type: string
                          nullable: true
                        date_of_birth:
                          type: string
                          nullable: true
                          description: Data de nascimento completa, quando informada.
                          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: >-
                            Nomes das funções exercidas por este proprietário,
                            por exemplo `["ubo", "shareholder"]`.
                          items:
                            type: string
                        ownership_min_shares:
                          type: string
                          nullable: true
                          description: >-
                            Limite inferior do percentual de propriedade
                            conforme informado pelo registro. String em formato
                            livre (por exemplo, `"25"`, `"25-50%"`); use
                            `effective_ownership_percent` para obter um valor
                            numérico interpretado.
                        ownership_max_shares:
                          type: string
                          nullable: true
                          description: >-
                            Limite superior do percentual de propriedade
                            conforme informado pelo registro. String de formato
                            livre; use `effective_ownership_percent` para obter
                            um valor numérico interpretado.
                        is_active:
                          type: boolean
                        aml_status:
                          type: string
                          enum:
                            - Not Finished
                            - Approved
                            - Declined
                            - In Review
                            - Resub Requested
                          nullable: true
                          description: >-
                            Status da análise AML executada para este
                            beneficiário final. `null` quando nenhuma análise
                            AML foi executada.
                        kyc_status:
                          type: string
                          enum:
                            - Not Started
                            - In Progress
                            - Approved
                            - Declined
                            - In Review
                            - Expired
                            - Abandoned
                            - Kyc Expired
                            - Resubmitted
                            - Awaiting User
                          nullable: true
                          description: >-
                            Status bruto do ciclo de vida da sessão KYC filha
                            criada para este beneficiário final. Este é o enum
                            completo de status da sessão (não um conjunto
                            reduzido Approved/Declined/Pending). `null` quando
                            não existe sessão KYC filha.
                        kyc_session_url:
                          type: string
                          format: uri
                          nullable: true
                          description: >-
                            URL compartilhável da sessão de KYC filha. `null`
                            quando não existe sessão filha.
                        kyc_session_id:
                          type: string
                          format: uuid
                          nullable: true
                          description: >-
                            ID da sessão KYC filha. Passe-o para este mesmo
                            endpoint de decisão para obter o relatório KYC
                            completo da pessoa. `null` quando não existe sessão
                            filha.
                        verification_workflow_type:
                          type: string
                          nullable: true
                          description: >-
                            Tipo base do fluxo da sessão filha (por exemplo,
                            `kyc`). `null` para fluxos baseados em grafo ou
                            quando não existe sessão filha.
                        verification_workflow_id:
                          type: string
                          format: uuid
                          nullable: true
                          description: >-
                            ID do fluxo usado pela sessão filha. `null` quando
                            não existe sessão filha.
                        verification_workflow_label:
                          type: string
                          nullable: true
                          description: >-
                            Rótulo legível do fluxo da sessão filha. `null`
                            quando não definido.
                        verification_workflow_features:
                          type: array
                          nullable: true
                          description: >-
                            Progresso por recurso da sessão de verificação
                            filha, por exemplo `[{"feature": "ID_VERIFICATION",
                            "status": "Approved"}]`. `null` quando a sessão
                            filha não tem uma lista de recursos que possa ser
                            resolvida.
                          items:
                            type: object
                            properties:
                              feature:
                                type: string
                                description: >-
                                  Nome de exibição do recurso (por exemplo,
                                  `ID_VERIFICATION`, `LIVENESS`, `AML`).
                              status:
                                type: string
                                enum:
                                  - Not Finished
                                  - Approved
                                  - Declined
                                  - In Review
                                  - Resub Requested
                                description: Status do recurso dentro da sessão filha.
                        didit_internal_id:
                          type: string
                          nullable: true
                          description: >-
                            Identificador interno estável da pessoa verificada
                            por trás da sessão filha, útil para vincular sessões
                            entre si. `null` quando não existe sessão filha ou o
                            usuário ainda não foi identificado.
                        kyc_document_type:
                          type: string
                          nullable: true
                          description: >-
                            Tipo de documento apresentado na sessão de KYC filha
                            (por exemplo, `P`, `ID`, `DL`). `null` até que a
                            sessão filha tenha um resultado de verificação de
                            identidade.
                        kyc_nationality:
                          type: string
                          nullable: true
                          description: >-
                            Nacionalidade extraída do documento na sessão de KYC
                            filha. `null` até estar disponível.
                        kyc_liveness_passed:
                          type: boolean
                          nullable: true
                          description: >-
                            Se a verificação de prova de vida da sessão KYC
                            filha foi aprovada. `null` quando nenhuma
                            verificação de prova de vida foi executada.
                        kyc_verified_at:
                          type: string
                          format: date-time
                          nullable: true
                          description: >-
                            Quando a sessão de KYC filha atingiu `Approved`.
                            `null` enquanto a sessão filha tiver qualquer outro
                            status.
                        kyc_aml_categories:
                          type: object
                          nullable: true
                          description: >-
                            Resumo por categoria derivado dos resultados AML da
                            pessoa. `null` quando não há resultados.
                          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: >-
                            Timestamp ISO 8601 da última notificação de convite
                            de verificação enviada para a sessão filha desta
                            pessoa. `null` quando nenhuma foi enviada.
                        child_beneficial_owners:
                          type: array
                          description: >-
                            Para UBOs corporativos: os beneficiários finais da
                            própria entidade proprietária, como objetos brutos
                            extraídos do registro. Array vazio quando não se
                            aplica.
                          items:
                            type: object
                        effective_ownership_percent:
                          type: number
                          nullable: true
                          description: >-
                            Percentual de propriedade numérico interpretado: o
                            limite máximo quando disponível; caso contrário, o
                            limite mínimo. `null` quando nenhum dos limites pôde
                            ser interpretado.
                        voting_min_shares:
                          type: string
                          nullable: true
                        voting_max_shares:
                          type: string
                          nullable: true
                        appointment_date:
                          type: string
                          nullable: true
                          description: Data de nomeação, quando informada.
                          format: date
              submitted:
                type: object
                description: >-
                  Partes enviadas pelo administrador da empresa durante o fluxo
                  de pessoas-chave (linhas BusinessParty com source=USER).
                properties:
                  parties:
                    type: array
                    items:
                      type: object
                      description: >-
                        Parte enviada pelo administrador da empresa pelo fluxo
                        de pessoas-chave (source=USER).
                      properties:
                        uuid:
                          type: string
                          format: uuid
                        entity_type:
                          type: string
                          enum:
                            - person
                            - company
                        source:
                          type: string
                          enum:
                            - USER
                          description: >-
                            Sempre `USER` aqui: este grupo contém apenas partes
                            inseridas ou confirmadas pelo usuário final no fluxo
                            de pessoas-chave (as pessoas descobertas no registro
                            aparecem em `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: >-
                            Nacionalidade para pessoas; país de constituição
                            para partes que são empresas.
                        phone_number:
                          type: string
                          nullable: true
                        date_of_birth:
                          type: string
                          format: date
                          nullable: true
                        position:
                          type: string
                          nullable: true
                          description: Cargo/posição em texto livre (somente pessoas).
                        custom_fields:
                          type: object
                          description: >-
                            Campos personalizados definidos pelo fluxo e
                            coletados para esta parte; as chaves são definidas
                            pelos descritores de campos de pessoas-chave do
                            fluxo.
                        is_active:
                          type: boolean
                        is_skipped:
                          type: boolean
                          description: >-
                            True quando o usuário final pulou a verificação
                            desta parte (possível somente quando a função
                            permite pular).
                        requires_verification:
                          type: boolean
                          description: >-
                            True quando uma subsessão de KYC / KYB filha é
                            exigida para esta parte, com base nas configurações
                            da função e nos limiares de propriedade.
                        roles:
                          type: array
                          description: >-
                            Todas as funções exercidas por esta parte, cada uma
                            com seus próprios percentuais de propriedade e de
                            direito de voto. Não existe
                            `role`/`ownership_percent` escalar na própria parte.
                          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 da sessão KYC filha para partes que são pessoas e
                            exigem verificação. `null` caso contrário.
                        kyc_session_status:
                          type: string
                          enum:
                            - Not Started
                            - In Progress
                            - Approved
                            - Declined
                            - In Review
                            - Expired
                            - Abandoned
                            - Kyc Expired
                            - Resubmitted
                            - Awaiting User
                          nullable: true
                          description: >-
                            Status do ciclo de vida da sessão de KYC filha.
                            `null` quando não existe sessão de KYC filha.
                        kyc_session_url:
                          type: string
                          format: uri
                          nullable: true
                        kyb_sub_session_id:
                          type: string
                          format: uuid
                          nullable: true
                          description: >-
                            ID da subsessão KYB filha para partes corporativas
                            que exigem verificação. `null` caso contrário.
                        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: >-
                            Status do ciclo de vida da subsessão de KYB filha.
                            `null` quando não existe subsessão.
                        kyb_sub_session_url:
                          type: string
                          format: uri
                          nullable: true
                          description: >-
                            URL compartilhável da subsessão de KYB filha. `null`
                            quando não existe subsessão.
                        verification_workflow_type:
                          type: string
                          nullable: true
                          description: >-
                            Tipo base do fluxo da sessão filha (de preferência a
                            sessão de KYC, recorrendo à subsessão de KYB).
                            `null` para fluxos baseados em grafo ou quando não
                            existe sessão filha.
                        verification_workflow_id:
                          type: string
                          format: uuid
                          nullable: true
                          description: >-
                            ID do fluxo usado pela sessão filha. `null` quando
                            não existe sessão filha.
                        verification_workflow_label:
                          type: string
                          nullable: true
                          description: >-
                            Rótulo legível do fluxo da sessão filha. `null`
                            quando não definido.
                        verification_workflow_features:
                          type: array
                          nullable: true
                          description: >-
                            Progresso por recurso da sessão de verificação
                            filha, por exemplo `[{"feature": "ID_VERIFICATION",
                            "status": "Approved"}]`. `null` quando a sessão
                            filha não tem uma lista de recursos que possa ser
                            resolvida.
                          items:
                            type: object
                            properties:
                              feature:
                                type: string
                                description: >-
                                  Nome de exibição do recurso (por exemplo,
                                  `ID_VERIFICATION`, `LIVENESS`, `AML`).
                              status:
                                type: string
                                enum:
                                  - Not Finished
                                  - Approved
                                  - Declined
                                  - In Review
                                  - Resub Requested
                                description: Status do recurso dentro da sessão filha.
                        didit_internal_id:
                          type: string
                          nullable: true
                          description: >-
                            Identificador interno estável da pessoa verificada
                            por trás da sessão filha. `null` quando ainda não
                            foi identificado.
              ubo_kyc_summary:
                type: object
                nullable: true
                description: >-
                  Progresso agregado do KYC dos UBOs, ou null quando nenhum UBO
                  tem sessões de KYC vinculadas.
                properties:
                  total:
                    type: integer
                  approved:
                    type: integer
                  flagged:
                    type: integer
                    description: UBOs cujo KYC está Recusado ou Em revisão.
                  pending:
                    type: integer
              warnings:
                type: array
                items:
                  type: object
        document_verifications:
          type: array
          nullable: true
          description: >-
            Verificações de documentos agrupadas por nó do fluxo. Presente
            apenas quando `session_kind = business`.
          items:
            type: object
            description: >-
              Documentos agrupados por nó do fluxo. Presente apenas quando
              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: >-
                        Grupo geral de documentos KYB em que o arquivo foi
                        classificado. `null` enquanto não classificado.
                    document_subtype:
                      type: string
                      nullable: true
                      description: >-
                        Subtipo específico detectado pelo OCR (por exemplo,
                        `CERTIFICATE_OF_INCORPORATION`, `SHAREHOLDER_REGISTRY`);
                        `UNKNOWN` quando o OCR não conseguiu classificar o
                        documento com confiança.
                    document_group:
                      type: string
                      enum:
                        - LEGAL_PRESENCE
                        - COMPANY_DETAILS
                        - OWNERSHIP_STRUCTURE
                        - REPRESENTATIVES_AUTHORIZATION
                        - OTHER
                      nullable: true
                      description: >-
                        Alias de `document_type`: o nome do grupo usado por
                        `groups` e `required_groups`.
                    file_url:
                      type: string
                      format: uri
                      nullable: true
                      description: >-
                        Link pré-assinado de curta duração para o arquivo
                        enviado. `null` para marcadores de solicitação de
                        documento criados por analistas (`is_requested = true`)
                        que ainda não foram atendidos.
                    original_filename:
                      type: string
                      nullable: true
                      description: >-
                        Nome do arquivo conforme enviado pelo usuário ou
                        analista.
                    file_size:
                      type: integer
                      nullable: true
                      description: Tamanho do arquivo em bytes.
                    status:
                      type: string
                      enum:
                        - Not Finished
                        - Approved
                        - Declined
                        - In Review
                        - Resub Requested
                      description: Status de verificação por documento.
                    created_at:
                      type: string
                      format: date-time
                    cross_check_result:
                      type: object
                      nullable: true
                      description: >-
                        Comparação cruzada dos campos do documento extraídos por
                        OCR com o perfil da empresa no registro de empresas. Um
                        objeto com as seções `critical`, `non_critical` e
                        `people`, cada uma mapeando um nome de campo (por
                        exemplo, `company_name`, `registration_number`,
                        `incorporation_date`, `registered_address`) para um
                        registro de comparação como `{"document": "...",
                        "registry": "...", "match": true, "score": 0.97}`.
                        `null` quando o documento não tinha dados de OCR ou não
                        havia empresa no registro para comparar.
                    document_metadata:
                      type: object
                      nullable: true
                      description: >-
                        Metadados extraídos do documento corporativo enviado.
                        Quando a extração de metadados é bem-sucedida, as 16
                        chaves estão sempre presentes (valores individuais são
                        `null` quando não se aplicam ao tipo de arquivo); o
                        objeto inteiro é `null` quando nada pôde ser extraído.
                        Para PDFs, `overlay_manipulation` contém a análise
                        forense de texto sobreposto.
                      properties:
                        file_size:
                          type: integer
                          nullable: true
                          description: Tamanho do documento.
                        content_type:
                          type: string
                          nullable: true
                          description: Tipo de conteúdo do documento.
                        creation_date:
                          type: string
                          nullable: true
                          description: Data em que o documento foi criado.
                        modified_date:
                          type: string
                          nullable: true
                          description: Data em que o documento foi modificado.
                        creator:
                          type: string
                          nullable: true
                          description: >-
                            Ferramenta/usuário de criação registrado nos
                            metadados do arquivo (`Creator` do PDF).
                        producer:
                          type: string
                          nullable: true
                          description: Software que gerou o arquivo (`Producer` do PDF).
                        software:
                          type: string
                          nullable: true
                          description: >-
                            Software de edição registrado nos metadados do
                            arquivo.
                        encryption:
                          type: string
                          nullable: true
                          description: >-
                            Esquema de criptografia do arquivo, quando
                            criptografado.
                        is_signed:
                          type: boolean
                          nullable: true
                          description: Se o documento tem uma assinatura digital.
                        is_tampered:
                          type: boolean
                          nullable: true
                          description: >-
                            Se a assinatura digital falhou na validação
                            (modificação após a assinatura).
                        signature_info:
                          type: object
                          nullable: true
                          description: >-
                            Detalhes da(s) assinatura(s) digital(is), quando
                            presentes.
                        exif_original_date:
                          type: string
                          nullable: true
                          description: >-
                            Data de captura original EXIF, para uploads de
                            imagem.
                        exif_digitized_date:
                          type: string
                          nullable: true
                          description: Data de digitalização EXIF, para uploads de imagem.
                        processed_by_known_editor:
                          type: boolean
                          nullable: true
                          description: >-
                            Indica se os metadados mostram que o arquivo passou
                            por um editor de imagem/PDF conhecido.
                        has_different_creation_mod_date:
                          type: boolean
                          nullable: true
                          description: >-
                            Indica se as datas de criação e modificação diferem
                            — um possível (mas não conclusivo) sinal de edição.
                        overlay_manipulation:
                          type: object
                          nullable: true
                          description: >-
                            Análise forense de PDF para suspeita de manipulação
                            por texto sobreposto. Null quando nenhuma evidência
                            de manipulação por sobreposição foi encontrada ou o
                            documento não era um PDF.
                          properties:
                            detected:
                              type: boolean
                              description: >-
                                Indica se foram detectadas evidências de
                                manipulação por sobreposição de texto.
                            analyzed:
                              type: boolean
                              description: Se foi possível analisar o PDF.
                            signals:
                              type: array
                              items:
                                type: string
                              description: >-
                                Sinais forenses acionados, como
                                duplicate_font_subset ou glyph_fragmentation.
                            manipulated_regions:
                              type: array
                              description: >-
                                Áreas com suspeita de manipulação, em
                                coordenadas de página do 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: >-
                        Rótulo ou motivo informado pelo analista para uma
                        solicitação de documento. `null` para envios comuns.
                    is_requested:
                      type: boolean
                      description: >-
                        True para marcadores de solicitação de documento criados
                        por analistas que aguardam um upload.
                    ocr_data:
                      type: object
                      nullable: true
                    is_console_upload:
                      type: boolean
                      description: >-
                        True para documentos enviados pelo console, e não pelo
                        fluxo do usuário final. Uploads feitos pelo console
                        nunca alteram o status agregado do recurso.
                    is_confirmed:
                      type: boolean
                      description: >-
                        Uploads feitos pelo console começam como `false` e
                        passam para `true` quando o administrador os confirma;
                        uploads do usuário final são sempre `true`.
              groups:
                type: object
                description: >-
                  Contadores de progresso por grupo, indexados pelo nome do
                  grupo (por exemplo, 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: >-
                        Placeholders solicitados que ainda não têm arquivo
                        enviado.
              required_groups:
                type: array
                items:
                  type: string
              warnings:
                type: array
                items:
                  type: object
        environment:
          type: string
          enum:
            - live
            - sandbox
          description: >-
            Se a sessão foi criada por uma aplicação de produção (`live`) ou por
            uma aplicação de sandbox (`sandbox`). Sessões de sandbox são
            gratuitas, totalmente simuladas e nunca consomem créditos.
        sandbox_scenario:
          type: string
          nullable: true
          description: >-
            O cenário de sandbox com o qual a sessão foi criada. `null` para
            sessões de produção e para sessões de sandbox criadas sem cenário.
        resubmissions:
          type: array
          description: >-
            Retornado apenas com `include=resubmissions`, para sessões de
            usuários e de empresas. Uma entrada por requisição de reenvio, da
            mais antiga para a mais recente. Cada entrada traz os resultados que
            as etapas reenviadas retornaram antes da requisição, para que os
            envios anteriores continuem legíveis. Excluir a sessão exclui todos
            os envios.
          items:
            type: object
            properties:
              number:
                type: integer
                description: >-
                  1 para o primeiro reenvio da sessão, 2 para o segundo, e assim
                  por diante.
              created_at:
                type: string
                format: date-time
                description: Quando o reenvio foi solicitado.
              previous_status:
                type: string
                description: O status da sessão imediatamente antes da requisição.
              nodes:
                type: array
                description: As etapas do fluxo devolvidas ao usuário.
                items:
                  type: object
                  properties:
                    node_id:
                      type: string
                    feature:
                      type: string
              reasons:
                type: object
                nullable: true
                additionalProperties:
                  type: string
                description: O motivo informado para cada etapa, indexado por `node_id`.
              requested_by:
                type: object
                nullable: true
                description: Quem solicitou o reenvio.
                properties:
                  name:
                    type: string
                  email:
                    type: string
                  type:
                    type: string
              results:
                type: object
                additionalProperties: true
                description: >-
                  O que as etapas reenviadas retornaram antes da requisição, com
                  as mesmas chaves e no mesmo formato dos resultados atuais
                  desta 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`; para sessões de empresa, também
                  `document_verifications`). Só aparecem as chaves das etapas
                  que foram devolvidas.
        biometric_consent:
          type: object
          nullable: true
          description: >-
            Se a sessão exigiu consentimento biométrico explícito antes de uma
            captura facial, o motivo e a evidência da resposta. Somente para
            sessões de Verificação de usuários (KYC); o mesmo objeto está na
            `decision` dos webhooks de sessão. `null` quando a sessão nunca foi
            avaliada, por exemplo, um fluxo de verificação (workflow) sem
            captura facial. Campos sem valor registrado são `null`. Um SDK
            nativo anterior à versão 4.10.0, ou um que não informa sua versão,
            não consegue exibir a etapa de consentimento: suas capturas faciais
            funcionam como antes, e uma sessão que exigiu consentimento passa a
            informar `status: "pending"` com `reason:
            "BIOMETRIC_CONSENT_UNSUPPORTED_SDK"`. Consulte [Consentimento
            biométrico](/pt-br/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: >-
                Por que o consentimento é obrigatório, ou como ele foi atendido.
                `declared_state`: você declarou um estado abrangido
                (`user_state`, ou um endereço nos EUA em `expected_details`).
                `ip_state`: o IP da pessoa está em um estado abrangido
                (Illinois, Texas, Colorado). `ip_unknown`: as evidências situam
                a pessoa nos EUA, mas não é possível determinar o estado (o IP
                está nos EUA sem estado, ou não pode ser localizado enquanto
                seus dados ou o documento situam a pessoa nos EUA).
                `document_issuer`: o documento de identidade foi emitido por um
                estado abrangido. `forced`: o modo da aplicação é Always.
                `customer_collected`: você enviou `biometric_consent` ao criar a
                sessão. `null` enquanto não for obrigatório.
            status:
              type: string
              enum:
                - not_required
                - pending
                - given
                - declined
              description: >-
                `not_required`; `pending` (obrigatório e não fornecido: a pessoa
                ainda não respondeu, ou `reason` informa por que não foi
                coletado); `given`; `declined` (uma recusa foi registrada e a
                sessão terminou como `Declined`; hoje nenhuma tela da Didit
                oferece a opção de recusar).
            given_at:
              type: string
              format: date-time
              nullable: true
              description: >-
                Quando o consentimento foi dado. Para `customer_collected`, o
                `given_at` que você enviou.
            declined_at:
              type: string
              format: date-time
              nullable: true
              description: Quando uma recusa foi registrada.
            text_version:
              type: string
              nullable: true
              description: >-
                Id da versão do texto de consentimento que a pessoa respondeu,
                ou daquela que você enviou.
            text_hash:
              type: string
              nullable: true
              description: >-
                SHA-256 (hex) do texto exato de consentimento exibido, no idioma
                em que foi exibido.
            locale:
              type: string
              nullable: true
              description: Idioma em que o texto de consentimento foi exibido.
            policy_url:
              type: string
              format: uri
              nullable: true
              description: >-
                A política de dados biométricos à qual a etapa de consentimento
                vinculou.
            step:
              type: string
              nullable: true
              description: >-
                Etapa do fluxo em que a sessão estava quando a pessoa respondeu,
                por exemplo `LIVENESS`.
            node_id:
              type: string
              nullable: true
              description: >-
                Nó do grafo do fluxo em que a sessão estava quando a pessoa
                respondeu.
            ip_address:
              type: string
              nullable: true
              description: IP de origem da resposta.
            ip_country_code:
              type: string
              nullable: true
              description: País do IP da resposta em ISO 3166-1 alpha-2.
            ip_state:
              type: string
              nullable: true
              description: Subdivisão ISO 3166-2 do IP da resposta, por exemplo `US-IL`.
            ip_city:
              type: string
              nullable: true
              description: Cidade do IP da resposta.
            user_agent:
              type: string
              nullable: true
              description: User agent da requisição da resposta.
            detected_ip_address:
              type: string
              nullable: true
              description: >-
                O IP da pessoa a partir do qual o requisito foi avaliado pela
                última vez. Pode ser diferente de `ip_address` quando a pessoa
                respondeu em outro dispositivo.
            detected_country_code:
              type: string
              nullable: true
              description: País do IP detectado, no formato ISO 3166-1 alpha-2.
            detected_state:
              type: string
              nullable: true
              description: Subdivisão ISO 3166-2 do IP detectado.
            detected_city:
              type: string
              nullable: true
              description: Cidade do IP detectado.
            declared_state:
              type: string
              nullable: true
              description: >-
                Subdivisão ISO 3166-2 que você declarou: `user_state` ou o
                estado de um endereço dos EUA em `expected_details`.
            document_state:
              type: string
              nullable: true
              description: >-
                Subdivisão ISO 3166-2 que emitiu o documento de identidade, lida
                na captura do documento.
            jurisdictions:
              type: array
              items:
                type: string
              description: >-
                Estados dos EUA (códigos USPS, por exemplo `IL`) cuja lei de
                biometria abrange a pessoa. `US` quando as evidências situam a
                pessoa nos EUA, mas nenhum estado é conhecido. Vazio quando
                nenhuma se aplica.
            retention_months:
              type: integer
              nullable: true
              description: >-
                O menor limite de retenção biométrica, em meses, entre
                `jurisdictions`. `null` quando nenhum se aplica.
            reason:
              type: string
              nullable: true
              enum:
                - BIOMETRIC_CONSENT_UNSUPPORTED_SDK
                - BIOMETRIC_CONSENT_DECLINED
              description: >-
                `BIOMETRIC_CONSENT_UNSUPPORTED_SDK`: o consentimento era
                obrigatório e um SDK nativo anterior à versão 4.10.0, ou que não
                informou sua versão, capturou um rosto sem a etapa de
                consentimento; `status` permanece `pending`, ou `given` se a
                pessoa concordou depois no fluxo hospedado.
                `BIOMETRIC_CONSENT_DECLINED`: uma recusa foi registrada (ela
                substitui o motivo do SDK). `null` nos demais casos, e sempre
                `null` quando a sessão não exigia consentimento.
            decline_reason:
              type: string
              nullable: true
              enum:
                - BIOMETRIC_CONSENT_DECLINED
              description: >-
                `BIOMETRIC_CONSENT_DECLINED` quando uma recusa registrada
                encerrou a sessão; caso contrário, `null`.
            face_data_deleted_at:
              type: string
              format: date-time
              nullable: true
              description: >-
                Quando a recusa excluiu as imagens faciais, os vídeos e os
                templates faciais da sessão. `null` a menos que uma recusa tenha
                sido registrada.
        investigator:
          $ref: '#/components/schemas/InvestigatorBlock'
        biometric_retention:
          $ref: '#/components/schemas/BiometricRetention'
        fraud_check:
          type: object
          nullable: true
          additionalProperties: true
          description: >-
            O resultado de uma chamada à Fraud Check API. `null` para todas as
            outras sessões.
        full_session_video:
          type: string
          format: uri
          nullable: true
          description: >-
            URL temporária da gravação da sessão completa. Retornada somente
            quando sua organização grava vídeo da sessão completa.
        full_session_video_recorded_at:
          type: string
          format: date-time
          nullable: true
          description: >-
            Quando a gravação da sessão completa foi feita. Retornado apenas
            quando sua organização grava vídeo da sessão completa.
    AddressValidationResult:
      type: object
      description: >-
        O resultado de uma Address Validation: se o endereço existe e sua forma
        normalizada. Ela confirma apenas o endereço; nunca vincula o endereço a
        uma pessoa.
      required:
        - status
        - verification_level
        - address
        - formatted_address
        - latitude
        - longitude
      properties:
        status:
          type: string
          enum:
            - verified
            - partially_verified
            - not_verified
            - unavailable
          description: >-
            `verified`: o endereço foi confirmado até o nível do edifício (ou do
            apartamento ou da caixa postal). `partially_verified`: foi
            confirmado apenas até a rua, ou até o nível mais preciso que os
            dados postais de referência têm para aquele local. `not_verified`:
            apenas a região ou a cidade corresponderam, ou nada correspondeu.
            `unavailable`: a validação não pôde ser executada (por exemplo, o
            serviço de referência não respondeu); ela não é cobrada e nunca
            afeta uma verificação.
        verification_level:
          type: string
          nullable: true
          enum:
            - administrative_area
            - locality
            - thoroughfare
            - premise
            - delivery_point
            - null
          description: >-
            O nível mais preciso em que o endereço foi correspondido. `null`
            quando nada correspondeu ou `status` é `unavailable`.
        address:
          type: object
          nullable: true
          description: O endereço normalizado. `null` quando `status` é `unavailable`.
          properties:
            address_line_1:
              type: string
              nullable: true
              description: Primeira linha de entrega, escrita da forma usada no país.
              example: 1600 Amphitheatre Pkwy
            address_line_2:
              type: string
              nullable: true
              description: >-
                Segunda linha de entrega (apartamento, edifício ou bairro),
                quando o endereço tiver uma.
            city:
              type: string
              nullable: true
              example: Mountain View
            region:
              type: string
              nullable: true
              description: Estado, província ou região.
              example: CA
            postal_code:
              type: string
              nullable: true
              example: 94043-1351
            country:
              type: string
              nullable: true
              description: Código de país ISO 3166-1 alpha-2.
              example: US
        formatted_address:
          type: string
          nullable: true
          description: O endereço normalizado em uma linha.
          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: >-
        Bloco normalizado de inteligência de telefone. Presente apenas quando o
        complemento de inteligência foi executado para esta consulta; quando
        presente, também é exposto sob o alias `enrichment`, com valores
        idênticos.
      properties:
        score:
          type: number
          nullable: true
          description: >-
            Pontuação de risco normalizada de 0 a 100. Quanto maior, mais
            arriscado.
        phone_type_risk:
          type: string
          nullable: true
          description: '`Low`, `Medium` ou `High`, derivado da pontuação.'
        phone_trust_index:
          type: number
          nullable: true
          description: >-
            Inverso da pontuação, para painéis em que valores mais altos são
            melhores.
        network_stability_index:
          type: number
          nullable: true
          description: Estabilidade da rede da linha.
        is_disposable:
          type: boolean
          nullable: true
          description: '`true` quando o número parece descartável ou virtual.'
        is_ported:
          type: boolean
          nullable: true
          description: '`true` quando o número mudou de operadora.'
        is_recently_ported:
          type: boolean
          nullable: true
          description: '`true` quando a portabilidade ocorreu recentemente.'
        carrier_type:
          type: string
          nullable: true
          description: >-
            Classificação da linha informada pela consulta (por exemplo,
            `mobile`).
        reason_codes:
          type: array
          items:
            type: object
            properties:
              code:
                type: string
                description: >-
                  Identificador estável da Didit para o sinal, por exemplo
                  `IR-5AC67A32`. Opaco: agrupe e filtre por ele, mas não o
                  interprete.
              value:
                nullable: true
                description: >-
                  Para um indicador de risco (por exemplo, `voip`, `leaked`,
                  `disposable`, `spam_trap`), o seu valor: um booleano, um nível
                  ou uma data. Nulo para um código de motivo com pontuação.
              direction:
                type: string
                enum:
                  - risk
                  - trust
                description: Se o sinal aumentou o risco ou acrescentou confiança.
              message:
                type: string
                description: Explicação legível do sinal, em inglês.
              impact_level:
                type: string
                nullable: true
                description: >-
                  Com que intensidade o sinal alterou a pontuação, por exemplo
                  `low`, `medium` ou `high`.
          description: >-
            Sinais que explicam a pontuação, cada um com um código estável da
            Didit, uma direção, uma mensagem e um nível de impacto. Novos
            códigos podem surgir com o tempo, portanto não rejeite códigos
            desconhecidos.
    PhoneSocialFootprint:
      type: object
      nullable: true
      description: >-
        Pegada social do número de telefone: as plataformas online em que ele
        está cadastrado. Presente apenas quando `enable_social` foi definido e a
        verificação foi concluída. Qualquer contagem pode ser nula quando nenhum
        dado foi retornado para ela. `profiles_registered: 0` significa que as
        plataformas foram verificadas e o número de telefone não foi encontrado
        em nenhuma delas: uma resposta válida, faturável e um sinal comum de
        identidade sintética.
      properties:
        profiles_registered:
          type: integer
          nullable: true
          description: Plataformas em que o cadastro do número de telefone foi confirmado.
          example: 5
        profiles_checked:
          type: integer
          nullable: true
          description: Plataformas avaliadas quanto a cadastro.
          example: 14
        names_found:
          type: integer
          nullable: true
          description: Plataformas que retornaram um nome associado.
          example: 0
        photos_found:
          type: integer
          nullable: true
          description: Plataformas que retornaram uma foto de perfil.
          example: 0
        communication_breadth:
          type: integer
          nullable: true
          description: Plataformas de comunicação com presença detectada.
          example: 2
        digital_footprint_diversity:
          type: integer
          nullable: true
          description: Categorias distintas de plataforma com presença detectada.
          example: 5
        digital_sophistication_index:
          type: integer
          nullable: true
          description: Indicador composto de maturidade digital, de 0 a 10.
          example: 5
        engagement_depth_index:
          type: integer
          nullable: true
          description: Indicador de riqueza do perfil, de 0 a 10.
          example: 3
        subscription_affordability_index:
          type: integer
          nullable: true
          description: Combinação de plataformas gratuitas e pagas, 0-10.
          example: 2
        free_platforms:
          type: integer
          nullable: true
          description: Registros em plataformas gratuitas.
          example: 4
        full_paid_platforms:
          type: integer
          nullable: true
          description: Registros em plataformas totalmente pagas.
          example: 0
        partial_paid_platforms:
          type: integer
          nullable: true
          description: Registros em plataformas freemium.
          example: 1
        whatsapp_profile_completeness:
          type: string
          nullable: true
          enum:
            - Basic
            - Partial
            - Complete
            - Not Present
            - null
          description: >-
            Completude do perfil do WhatsApp. Apenas para telefone; null para
            e-mail.
          example: Partial
        registered_platforms:
          type: array
          description: Plataformas em que o cadastro foi confirmado.
          items:
            $ref: '#/components/schemas/SocialFootprintPlatform'
        not_registered_platforms:
          type: array
          description: Plataformas verificadas com resultado negativo.
          items:
            $ref: '#/components/schemas/SocialFootprintPlatform'
        categories:
          type: object
          description: Contagem de registros e proporção por categoria de plataforma.
          additionalProperties:
            $ref: '#/components/schemas/SocialFootprintCategorySummary'
        profiles:
          type: object
          description: >-
            Detalhes do perfil por plataforma, indexados por plataforma, quando
            a plataforma os disponibiliza.
          additionalProperties:
            $ref: '#/components/schemas/SocialFootprintProfile'
    EmailIntelligence:
      type: object
      description: >-
        Bloco normalizado de inteligência de e-mail. Presente apenas quando o
        complemento de inteligência foi executado para este e-mail; quando
        presente, também é exposto como o alias `enrichment`, com valores
        idênticos.
      properties:
        score:
          type: number
          nullable: true
          description: >-
            Pontuação de risco normalizada de 0 a 100. Quanto maior, mais
            arriscado.
        deliverable:
          type: string
          nullable: true
          description: Faixa de entregabilidade (por exemplo, `high`).
        breach_risk_level:
          type: string
          nullable: true
          description: '`Low`, `Medium` ou `High`.'
        breach_risk_index:
          type: number
          nullable: true
          description: Índice numérico de risco de vazamento.
        is_recent_breach:
          type: boolean
          nullable: true
          description: '`true` quando o endereço aparece em um vazamento recente.'
        is_frequent_breached:
          type: boolean
          nullable: true
          description: '`true` quando o endereço aparece em muitos vazamentos.'
        is_disposable:
          type: boolean
          nullable: true
          description: '`true` quando o domínio é um provedor descartável.'
        is_free_domain:
          type: boolean
          nullable: true
          description: '`true` quando o domínio é um provedor de e-mail gratuito.'
        is_breached:
          type: boolean
          nullable: true
          description: '`true` quando o endereço aparece em vazamentos conhecidos.'
        no_of_breaches:
          type: number
          nullable: true
          description: Número de vazamentos conhecidos que contêm o endereço.
        reason_codes:
          type: array
          items:
            type: object
            properties:
              code:
                type: string
                description: >-
                  Identificador estável da Didit para o sinal, por exemplo
                  `IR-5AC67A32`. Opaco: agrupe e filtre por ele, mas não o
                  interprete.
              value:
                nullable: true
                description: >-
                  Para um indicador de risco (por exemplo, `voip`, `leaked`,
                  `disposable`, `spam_trap`), o seu valor: um booleano, um nível
                  ou uma data. Nulo para um código de motivo com pontuação.
              direction:
                type: string
                enum:
                  - risk
                  - trust
                description: Se o sinal aumentou o risco ou acrescentou confiança.
              message:
                type: string
                description: Explicação legível do sinal, em inglês.
              impact_level:
                type: string
                nullable: true
                description: >-
                  Com que intensidade o sinal alterou a pontuação, por exemplo
                  `low`, `medium` ou `high`.
          description: >-
            Sinais que explicam a pontuação, cada um com um código estável da
            Didit, uma direção, uma mensagem e um nível de impacto. Novos
            códigos podem surgir com o tempo, portanto não rejeite códigos
            desconhecidos.
    EmailSocialFootprint:
      type: object
      nullable: true
      description: >-
        Pegada social do endereço de e-mail: as plataformas online em que ele
        está cadastrado. Presente apenas quando `enable_social` foi definido e a
        verificação foi concluída. Qualquer contagem pode ser nula quando nenhum
        dado foi retornado para ela. `profiles_registered: 0` significa que as
        plataformas foram verificadas e o endereço de e-mail não foi encontrado
        em nenhuma delas: uma resposta válida, faturável e um sinal comum de
        identidade sintética.
      properties:
        profiles_registered:
          type: integer
          nullable: true
          description: Plataformas em que o cadastro do endereço de e-mail foi confirmado.
          example: 5
        profiles_checked:
          type: integer
          nullable: true
          description: Plataformas avaliadas quanto a cadastro.
          example: 14
        names_found:
          type: integer
          nullable: true
          description: Plataformas que retornaram um nome associado.
          example: 0
        photos_found:
          type: integer
          nullable: true
          description: Plataformas que retornaram uma foto de perfil.
          example: 0
        communication_breadth:
          type: integer
          nullable: true
          description: Plataformas de comunicação com presença detectada.
          example: 2
        digital_footprint_diversity:
          type: integer
          nullable: true
          description: Categorias distintas de plataforma com presença detectada.
          example: 5
        digital_sophistication_index:
          type: integer
          nullable: true
          description: Indicador composto de maturidade digital, de 0 a 10.
          example: 5
        engagement_depth_index:
          type: integer
          nullable: true
          description: Indicador de riqueza do perfil, de 0 a 10.
          example: 3
        subscription_affordability_index:
          type: integer
          nullable: true
          description: Combinação de plataformas gratuitas e pagas, 0-10.
          example: 2
        free_platforms:
          type: integer
          nullable: true
          description: Registros em plataformas gratuitas.
          example: 4
        full_paid_platforms:
          type: integer
          nullable: true
          description: Registros em plataformas totalmente pagas.
          example: 0
        partial_paid_platforms:
          type: integer
          nullable: true
          description: Registros em plataformas freemium.
          example: 1
        whatsapp_profile_completeness:
          type: string
          nullable: true
          enum:
            - Basic
            - Partial
            - Complete
            - Not Present
            - null
          description: >-
            Completude do perfil do WhatsApp. Apenas para telefone; null para
            e-mail.
          example: Partial
        registered_platforms:
          type: array
          description: Plataformas em que o cadastro foi confirmado.
          items:
            $ref: '#/components/schemas/SocialFootprintPlatform'
        not_registered_platforms:
          type: array
          description: Plataformas verificadas com resultado negativo.
          items:
            $ref: '#/components/schemas/SocialFootprintPlatform'
        categories:
          type: object
          description: Contagem de registros e proporção por categoria de plataforma.
          additionalProperties:
            $ref: '#/components/schemas/SocialFootprintCategorySummary'
        profiles:
          type: object
          description: >-
            Detalhes do perfil por plataforma, indexados por plataforma, quando
            a plataforma os disponibiliza.
          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, por exemplo `QR_CODE`, `CODE_128`, `EAN_13`,
            `DATA_MATRIX` ou `PDF_417`.
        page_number:
          type: integer
          minimum: 1
          description: Número da página, começando em 1.
        position:
          type: array
          nullable: true
          description: >-
            Polígono detectado em coordenadas de pixels da página renderizada. É
            `null` quando não há uma localização confiável disponível.
          items:
            type: array
            minItems: 2
            maxItems: 2
            items:
              type: integer
        x:
          type: integer
          nullable: true
          description: >-
            Borda esquerda da caixa delimitadora, em pixels da página
            renderizada.
        'y':
          type: integer
          nullable: true
          description: >-
            Borda superior da caixa delimitadora, em pixels da página
            renderizada.
        width:
          type: integer
          nullable: true
          description: Largura da caixa delimitadora em pixels da página renderizada.
        height:
          type: integer
          nullable: true
          description: Altura da caixa delimitadora em pixels da página renderizada.
        page_width:
          type: integer
          description: Largura da página renderizada, em pixels.
        page_height:
          type: integer
          description: Altura da página renderizada, em pixels.
        raw_payload:
          type: string
          description: >-
            Payload bruto do decodificador como string base64, quando
            disponível; caso contrário, uma string vazia.
        parsed_payload:
          nullable: true
          description: >-
            String decodificada ou valor estruturado. `null` quando o código foi
            localizado, mas não pôde ser decodificado.
    BankVerificationResult:
      type: object
      description: >-
        O resultado de uma etapa de Verificação bancária, para Verificação de
        usuários e Verificação de empresas. `method` indica como a conta foi
        verificada, e `none` indica que a pessoa continuou sem banco antes que
        qualquer tentativa fosse avaliada. `continued_without_bank` indica que a
        pessoa continuou sem banco, inclusive após uma tentativa avaliada.
        Consulte [Métodos de verificação
        bancária](/pt-br/core-technology/bank-verification/verification-methods)
        e [Quando a pessoa não consegue verificar seu
        banco](/pt-br/core-technology/bank-verification/fallbacks).
      properties:
        schema_version:
          type: integer
          description: Versão do formato deste resultado. Atualmente `1`.
        bank_verification_id:
          type: string
          format: uuid
          description: O ID deste resultado.
        node_id:
          type: string
          description: O nó do fluxo ao qual este resultado pertence.
        status:
          type: string
          enum:
            - Not Finished
            - Approved
            - Declined
            - In Review
            - Expired
          description: O veredito da etapa, após suas ações e regras de status.
        original_status:
          type: string
          nullable: true
          description: >-
            O primeiro veredito a que a etapa chegou, antes de qualquer
            alteração posterior, como uma revisão manual.
        method:
          type: string
          nullable: true
          enum:
            - open_banking
            - account_lookup
            - microdeposits
            - statement
            - none
          description: >-
            Como a conta foi verificada: `open_banking` (login no banco: a
            pessoa entrou na conta pelo banco), `account_lookup` (verificação de
            conta: a pessoa digitou os dados da conta e o banco confirmou o
            nome), `microdeposits` ou `statement` (envio de extrato). `none`
            quando a pessoa continuou sem um banco antes que qualquer tentativa
            fosse avaliada, portanto nenhuma conta foi verificada. Após uma
            tentativa avaliada, permanece o método dessa tentativa. `null` até
            que uma conta seja avaliada e quando o fluxo restringe os dados que
            retorna. As regras do fluxo leem o mesmo valor como `bank.method`.
        provider:
          type: string
          nullable: true
          description: >-
            A chave da rota que executou a conexão. Leia `method`, e não esta
            chave, para saber como a conta foi verificada.
        credential_source:
          type: string
          nullable: true
          enum:
            - native
            - byok
          description: >-
            `native`: a rota própria da Didit, cobrada do seu saldo Didit.
            `byok`: um provedor do marketplace que você conectou com suas
            próprias credenciais.
        route:
          type: object
          nullable: true
          description: A rota escolhida antes do consentimento. Ela nunca muda depois.
          properties:
            provider_key:
              type: string
              nullable: true
              description: A chave da rota.
            credential_source:
              type: string
              enum:
                - native
                - byok
            is_fallback:
              type: boolean
              description: >-
                Indica se a rota própria da Didit substituiu um provedor do
                marketplace que não conseguiu se conectar.
            provider_connection_id:
              type: string
              nullable: true
              description: A conexão de marketplace utilizada, para `byok`.
            requested_scopes:
              type: array
              items:
                type: string
              description: >-
                Os dados que a conexão solicitou, por exemplo `ownership` ou
                `balances`.
        connection:
          type: object
          nullable: true
          description: >-
            A conexão da tentativa mais recente. `null` antes da primeira
            tentativa.
          properties:
            status:
              type: string
              enum:
                - pending
                - connected
                - cancelled
                - timeout
                - failed
                - unsupported
                - revoked
                - expired
            institution_id:
              type: string
              nullable: true
              description: >-
                O ID do banco. `null` para uma verificação de conta, em que
                nenhum banco é escolhido.
            institution_name:
              type: string
              nullable: true
              description: O nome do banco. `null` para uma verificação de conta.
            institution_country:
              type: string
              nullable: true
              description: O país da conta, em ISO 3166-1 alfa-3.
            oauth:
              type: boolean
              nullable: true
              description: >-
                Se o login no banco foi feito por OAuth ou app-to-app. `null`
                para uma verificação de conta.
            connected_at:
              type: string
              format: date-time
              nullable: true
              description: Quando a conexão foi bem-sucedida.
            consent_expires_at:
              type: string
              format: date-time
              nullable: true
              description: Quando o consentimento bancário termina, para login bancário.
            last_refreshed_at:
              type: string
              format: date-time
              nullable: true
              description: >-
                Quando os dados financeiros foram lidos novamente pela última
                vez.
            attempts:
              type: integer
              description: >-
                As tentativas que a pessoa usou nesta etapa, somando todos os
                métodos.
            reason_code:
              type: string
              nullable: true
              description: >-
                Por que a conexão não está simplesmente `connected`, por exemplo
                `USER_CANCELLED`, `INSTITUTION_DOWN`, `ACCOUNT_NOT_FOUND`,
                `REFERENCE_IDENTITY_MISSING` ou `VERIFICATION_COMPLETED`.
        account:
          type: object
          nullable: true
          description: A conta avaliada. `null` até que uma conta seja avaliada.
          properties:
            account_id_masked:
              type: string
              nullable: true
              description: O número da conta, mascarado.
            iban_masked:
              type: string
              nullable: true
              description: O IBAN, mascarado.
            sort_code:
              type: string
              nullable: true
              description: O código de agência (sort code), no Reino Unido.
            routing_number_masked:
              type: string
              nullable: true
              description: O número de roteamento, mascarado.
            type:
              type: string
              nullable: true
              enum:
                - checking
                - current
                - savings
                - business
                - other
            subtype:
              type: string
              nullable: true
              description: O subtipo de conta próprio do banco.
            currency:
              type: string
              nullable: true
              description: Moeda ISO 4217 da conta.
            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: >-
            Como o titular da conta se compara com a identidade verificada.
            `null` até que uma conta seja avaliada.
          properties:
            result:
              type: string
              enum:
                - match
                - partial_match
                - no_match
                - unknown
                - not_verifiable
              description: >-
                `partial_match` é uma correspondência próxima. `not_verifiable`:
                o banco respondeu sem um titular para comparar. `unknown`: não
                foi possível ler a evidência, ou não havia identidade para
                comparar.
            reference_identity_source:
              type: string
              nullable: true
              description: >-
                A etapa com cuja identidade o titular foi comparado: `kyc`,
                `database_validation`, `expected_details`, `questionnaire`,
                `document_ai` ou `kyb`.
            name_score:
              type: integer
              minimum: 0
              maximum: 100
              nullable: true
              description: Pontuação da Didit para o nome do titular.
            provider_name_score:
              type: integer
              minimum: 0
              maximum: 100
              nullable: true
              description: >-
                A pontuação própria do banco para o nome do titular, quando ele
                retornou uma.
            address_score:
              type: integer
              minimum: 0
              maximum: 100
              nullable: true
              description: >-
                A pontuação do endereço do titular, quando a correspondência de
                endereço foi executada.
            email_score:
              type: integer
              minimum: 0
              maximum: 100
              nullable: true
              description: >-
                A pontuação do e-mail do titular, quando a correspondência de
                e-mail foi executada.
            phone_score:
              type: integer
              minimum: 0
              maximum: 100
              nullable: true
              description: >-
                A pontuação do telefone do titular, quando a correspondência de
                telefone foi executada.
            dob_score:
              type: integer
              minimum: 0
              maximum: 100
              nullable: true
              description: >-
                A pontuação da data de nascimento do titular, quando o banco
                compartilhou uma.
            close_match:
              type: boolean
              nullable: true
              description: Se o nome ficou na faixa de correspondência próxima.
            holder_confirmation:
              type: string
              nullable: true
              enum:
                - pending
                - confirmed
                - rejected
              description: >-
                A resposta da pessoa quando solicitada a confirmar um nome com
                correspondência aproximada. `null` quando isso nunca foi
                solicitado.
            method:
              type: string
              nullable: true
              enum:
                - exact
                - token_set
                - nickname
                - transliteration
                - fuzzy
                - provider_only
                - microdeposits
              description: >-
                Qual comparação de nomes gerou a pontuação. Este não é o método
                de verificação: para isso, leia o `method` de nível superior.
            matched_holder_index:
              type: integer
              nullable: true
            holders:
              type: array
              items:
                type: object
              description: Cada titular listado pelo banco, com suas pontuações.
            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: Quando o veredito foi calculado.
        financial_data:
          type: object
          description: Os dados financeiros que a etapa leu. Apenas o login bancário os lê.
          properties:
            balances:
              type: object
              nullable: true
              description: Com o escopo `balances`.
            transactions:
              type: object
              nullable: true
              description: Com o escopo `transactions`.
            income:
              type: object
              nullable: true
              description: Com o escopo `income`.
            categorization:
              type: object
              nullable: true
              description: >-
                Categorização da Didit das transações lidas. `null` quando não
                há transações.
            not_collected:
              type: array
              items:
                type: string
                enum:
                  - balances
                  - income
                  - transactions
              description: >-
                Os dados que a etapa solicitou e que o método que verificou a
                conta não coleta. Saldos, transações e renda vêm apenas do login
                bancário, então uma conta verificada por verificação de conta os
                lista aqui. Nunca é uma falha. Vazio caso contrário.
        billing:
          type: object
          nullable: true
          properties:
            route:
              type: string
              enum:
                - native
                - byok
            billed:
              type: boolean
            marketplace_fee:
              type: string
              nullable: true
              description: A taxa de plataforma do marketplace cobrada, para `byok`.
            usage_type:
              type: string
              nullable: true
              description: >-
                A linha de uso em que a cobrança foi lançada:
                `bank_verification` para um login bancário ou uma verificação de
                conta, `bank_statement_upload` para um envio de extrato sem uma
                tentativa bancária cobrada antes dele, e `bank_byok_fee` para a
                taxa do marketplace sobre o seu próprio provedor. `null` quando
                nada foi cobrado.
        reference_identity:
          type: object
          nullable: true
          description: A identidade com a qual o titular foi comparado, com sua origem.
        signals:
          type: object
          nullable: true
          description: >-
            Sinais da conta lidos do histórico de transações, quando a etapa leu
            algum.
        connection_abandoned:
          type: boolean
          nullable: true
          description: >-
            Se a etapa terminou sem correspondência depois que a pessoa saiu no
            banco dela.
        not_covered:
          type: boolean
          nullable: true
          description: >-
            Se não foi possível acessar o banco ou o país da pessoa nesta etapa.
            Também é `true` quando a pessoa continuou sem um banco porque nenhum
            método conseguia verificar o país ou o banco dela.
        continued_without_bank:
          type: boolean
          description: >-
            Se a pessoa saiu da etapa com **Continue without your bank**. Nesse
            caso, `continuation` informa o motivo. `method` é `none` quando
            nenhuma tentativa foi avaliada antes de ela continuar. Após uma
            tentativa avaliada, como um titular que não corresponde, `method`
            continua sendo o método dessa tentativa, e seu veredito e seus
            códigos de motivo permanecem válidos. Retornado mesmo quando o fluxo
            de verificação (workflow) restringe os dados que retorna.
        continuation:
          type: object
          nullable: true
          description: >-
            Como a pessoa continuou sem um banco. `null` quando ela não fez
            isso. Quando o fluxo restringe os dados que retorna, `reason` ainda
            é retornado e todas as outras chaves são `null`.
          properties:
            reason:
              type: string
              enum:
                - no_route
                - institution_unsupported
                - attempts_exhausted
                - person_choice
              description: >-
                O motivo, conforme determinado pela Didit quando a pessoa
                continuou: `no_route` (nenhum login bancário ou verificação de
                conta atende o país dela), `institution_unsupported` (o banco
                escolhido não pode ser usado nesta etapa), `attempts_exhausted`
                (todas as tentativas já tinham sido usadas e nenhuma estava em
                andamento) ou `person_choice` (havia uma forma de verificar e a
                pessoa optou por continuar, inclusive quando o banco dela não
                podia ser acessado naquele momento). `no_route` e
                `institution_unsupported` seguem `bank_unsupported_action`,
                `attempts_exhausted` segue `bank_attempts_exhausted_action` e
                `person_choice` segue `bank_skipped_action`, a menos que uma
                tentativa avaliada já tenha decidido a etapa.
            country:
              type: string
              nullable: true
              description: >-
                O país em que a pessoa estava fazendo a verificação, em ISO
                3166-1 alfa-3. `null` quando ela continuou antes de escolher um.
            offered:
              type: array
              items:
                type: string
                enum:
                  - statement
                  - microdeposits
              nullable: true
              description: >-
                As outras formas de verificação que esse país ofereceu à pessoa
                quando ela continuou, na ordem em que foram oferecidas:
                `statement` (envio de um extrato) e depois `microdeposits`.
                Vazio quando nenhuma foi oferecida.
            institution_id:
              type: string
              nullable: true
              description: >-
                Para `institution_unsupported`, o ID do banco que a pessoa não
                conseguiu usar: o banco que ela escolheu ou o banco em que sua
                última tentativa terminou. A Didit obtém esse ID da sua própria
                lista de bancos, nunca do dispositivo da pessoa; por isso, um
                banco que não está nessa lista é `null`. `null` para todos os
                outros motivos.
            institution_name:
              type: string
              nullable: true
              description: >-
                Para `institution_unsupported`, o nome desse banco, da mesma
                lista que `institution_id`. `null` quando essa lista não tem o
                banco e para todos os outros motivos.
            continued_at:
              type: string
              format: date-time
              nullable: true
              description: Quando a pessoa continuou.
        evidence_purged_at:
          type: string
          format: date-time
          nullable: true
          description: >-
            Quando as evidências bancárias foram excluídas conforme
            `bank_evidence_retention_days`. `null` caso contrário.
        warnings:
          type: array
          items:
            type: string
          description: >-
            Códigos informativos, por exemplo `holder_declared`. Um aviso nunca
            altera o status por si só.
        reason_codes:
          type: array
          items:
            type: string
          description: >-
            Por que o veredito saiu como saiu, por exemplo `OWNER_NAME_PARTIAL`.
            Mais de um pode se aplicar. `NOT_COVERED`: a pessoa continuou sem
            banco porque nenhum método conseguia verificar o país ou o banco
            dela. `SKIPPED`: a pessoa optou por continuar sem banco quando havia
            uma forma de verificar. Nenhum dos dois é adicionado quando uma
            tentativa avaliada já decidiu a etapa.
        created_at:
          type: string
          format: date-time
        updated_at:
          type: string
          format: date-time
    SignatureResult:
      type: object
      description: >-
        O resultado de um signatário para uma etapa de Assinatura eletrônica.
        Consulte o [relatório de Assinatura
        eletrônica](/pt-br/core-technology/electronic-signature/report-electronic-signature).
      properties:
        id:
          type: string
          format: uuid
          description: >-
            Passe-o como `signature_id` para baixar as evidências deste
            signatário ou validar a assinatura dele.
        node_id:
          type: string
          description: A etapa do fluxo que o produziu.
        status:
          type: string
          enum:
            - intro
            - review
            - code
            - signing
            - signed
            - declined
          description: >-
            Em que ponto da etapa o signatário está. Somente `signed` significa
            que os documentos estão assinados.
        verdict:
          type: string
          enum:
            - Not Finished
            - Approved
            - In Review
            - Declined
          description: >-
            O resultado da etapa. Um aviso o define por meio da sua regra;
            regras de status personalizadas são aplicadas depois.
        level:
          type: string
          enum:
            - simple
            - aes
            - qes
          description: >-
            `simple` (padrão) ou `aes`. `qes` (Assinatura Eletrônica
            Qualificada, QES) é um complemento que ainda não está disponível.
        format:
          type: string
          enum:
            - pdf
            - pades
          description: >-
            `pdf` para uma assinatura Simples, `pades` para uma assinatura
            Avançada (AES).
        profile:
          type: string
          nullable: true
          description: >-
            `PAdES-B-LT` depois que uma assinatura Avançada (AES) é assinada;
            caso contrário, null.
        signer:
          type: object
          properties:
            name:
              type: string
              nullable: true
              description: >-
                O nome do signatário. Verificado (a partir da verificação de
                identidade aprovada ou da sessão), exceto no nível Simple sem um
                nome verificado na sessão, caso em que é o nome que o signatário
                digitou e não é verificado.
            capacity:
              type: string
              enum:
                - self
                - company
            company:
              type: string
              nullable: true
            role:
              type: string
              nullable: true
              description: O cargo da pessoa-chave, conforme declarado.
            roles:
              type: array
              items:
                type: string
              description: >-
                As funções estruturadas da pessoa-chave, conforme declaradas
                para a empresa.
            identity_session_id:
              type: string
              format: uuid
              description: A sessão de KYC que verificou o signatário.
        identity_used:
          type: object
          description: >-
            A identidade verificada na qual a assinatura se baseia. Vazio para
            uma assinatura Simple sem identidade 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: O nome com o qual o signatário precisava corresponder.
        certificate:
          type: object
          nullable: true
          description: >-
            O certificado com o qual os documentos foram assinados. `null` até a
            assinatura, e sempre `null` para uma assinatura simples.
          properties:
            issuer:
              type: string
            issued_to:
              type: string
            serial:
              type: string
              description: Número de série, em 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` para uma assinatura Simples, que não tem código.'
            destination:
              type: string
              nullable: true
              description: O contato mascarado para o qual o código foi enviado.
            confirmed_at:
              type: string
              format: date-time
              nullable: true
            attempts:
              type: integer
              description: Códigos inseridos, incluindo o correto.
        timestamp:
          type: object
          nullable: true
          description: >-
            O carimbo de tempo RFC 3161 da assinatura, emitido pela Didit. É
            `null` até a assinatura e sempre `null` para uma assinatura do tipo
            Simple.
          properties:
            time:
              type: string
              format: date-time
            qualified:
              type: boolean
              description: Sempre `false` para AES.
            valid:
              type: boolean
        documents:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                description: >-
                  O documento na cópia deste signatário. Use-o para baixar o
                  arquivo assinado.
              uuid:
                type: string
                format: uuid
                description: Igual a `id`.
              title:
                type: string
              file_name:
                type: string
              pages:
                type: integer
                description: Páginas do documento assinadas. Para Word, do PDF convertido.
              size_bytes:
                type: integer
              sha256_original:
                type: string
                description: SHA-256 do documento tal como foi exibido ao signatário.
              sha256_signed:
                type: string
                nullable: true
                description: SHA-256 do PDF assinado, depois de assinado.
              status:
                type: string
                enum:
                  - signed
                  - declined
                  - not_signed
                  - not_reached
                description: >-
                  `not_signed`: aberto, mas não assinado. `not_reached`: nunca
                  aberto.
              opened_at:
                type: string
                format: date-time
                nullable: true
              read_at:
                type: string
                format: date-time
                nullable: true
                description: >-
                  Quando o signatário chegou ao fim de um documento sem campos,
                  quando a etapa exige isso.
              read_to_end:
                type: boolean
              consented_at:
                type: string
                format: date-time
                nullable: true
                description: >-
                  Quando o signatário concordou com um documento sem campos, ou
                  concluiu os campos de um documento com campos.
              consent:
                type: boolean
              signed_file:
                type: string
                nullable: true
                description: >-
                  Caminho do PDF assinado, depois de assinado. Consulte [Baixar
                  um documento
                  assinado](/pt-br/sessions-api/electronic-signature/download-signed-document).
              mode:
                type: string
                enum:
                  - fields
                  - read_and_agree
                description: >-
                  `fields` para um documento com campos, `read_and_agree` para
                  um documento sem campos.
              source_format:
                type: string
                enum:
                  - pdf
                  - docx
                description: >-
                  `pdf`, ou `docx` para um documento Word que a Didit converteu
                  para PDF.
              conversion:
                type: object
                nullable: true
                description: >-
                  `null` para um PDF. Para um documento Word, o arquivo original
                  e a conversão.
                properties:
                  from:
                    type: string
                    enum:
                      - docx
                  file_name:
                    type: string
                    description: O nome original do seu arquivo do Word.
                  sha256:
                    type: string
                    description: SHA-256 do seu arquivo Word original.
                  size_bytes:
                    type: integer
                    description: Tamanho do seu arquivo Word original.
                  converter:
                    type: string
                    description: Versão do conversor que gerou o PDF.
              fields:
                type: array
                description: >-
                  Campos do documento, com seus valores. Vazio para um documento
                  sem campos.
                items:
                  $ref: '#/components/schemas/SignatureFieldResult'
        adopted_signature:
          type: object
          nullable: true
          description: >-
            A assinatura e as iniciais que o signatário adotou para os campos de
            assinatura e de iniciais. `null` até que o signatário adote uma.
          properties:
            method:
              type: string
              enum:
                - typed
                - drawn
              description: >-
                `typed`: o nome verificado em um estilo de letra cursiva.
                `drawn`: desenhada com o dedo ou o mouse.
            font:
              type: string
              nullable: true
              description: >-
                O estilo de caligrafia de uma assinatura digitada. `null` quando
                desenhada.
            adopted_at:
              type: string
              format: date-time
        electronic_signature_consent_at:
          type: string
          format: date-time
          nullable: true
          description: >-
            Quando o signatário concordou, na tela de revisão, em assinar os
            documentos eletronicamente. Definido quando algum documento tem
            campos.
        evidence_file:
          type: string
          nullable: true
          description: >-
            Caminho do PDF de evidências, depois de assinado. Consulte [Baixar
            as evidências da
            assinatura](/pt-br/sessions-api/electronic-signature/download-evidence).
        warnings:
          type: array
          description: >-
            Avisos gerados para este signatário. Consulte [Avisos de assinatura
            eletrônica](/pt-br/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: >-
            A última verificação criptográfica dos documentos assinados. `null`
            até que os documentos sejam assinados. Se a Didit não conseguir
            confirmar o resultado da assinatura, o valor é `{"valid": null,
            "reason": "signature_provider_outcome_unknown", "checked_at": ...}`
            e `status` permanece `signing`: trate-o como não assinado.
          properties:
            valid:
              type: boolean
              nullable: true
              description: >-
                `true` quando todos os documentos são válidos. `null` quando não
                foi possível confirmar o resultado da assinatura.
            reason:
              type: string
              description: >-
                Preenchido quando `valid` é `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` quando a assinatura e o carimbo de tempo são ambos
                      válidos e confiáveis.
                  integrity:
                    type: boolean
                    description: >-
                      `true` quando o documento não foi alterado desde a
                      assinatura.
                  trusted:
                    type: boolean
                    description: >-
                      `true` quando o certificado de assinatura se encadeia a
                      uma raiz confiável.
                  revoked:
                    type: boolean
                  trusted_list:
                    type: object
                    description: >-
                      Verificação na EU Trusted List. Para AES: `{"status":
                      "not_applicable", "reason": "aes_not_qualified"}`.
                    properties:
                      status:
                        type: string
                      reason:
                        type: string
                  certificate:
                    type: object
                    nullable: true
                    description: >-
                      O certificado com o qual os documentos foram assinados.
                      `null` até a assinatura, e sempre `null` para uma
                      assinatura simples.
                    properties:
                      issuer:
                        type: string
                      issued_to:
                        type: string
                      serial:
                        type: string
                        description: Número de série, em hexadecimal.
                      valid_from:
                        type: string
                        format: date-time
                      valid_until:
                        type: string
                        format: date-time
                  timestamp:
                    type: object
                    nullable: true
                    description: >-
                      O carimbo de tempo RFC 3161 da assinatura, emitido pela
                      Didit. É `null` até a assinatura e sempre `null` para uma
                      assinatura do tipo Simple.
                    properties:
                      time:
                        type: string
                        format: date-time
                      qualified:
                        type: boolean
                        description: Sempre `false` para 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: Quando o link de assinatura 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: O endereço IP do signatário quando ele solicitou o código.
        place:
          type: string
          nullable: true
          description: 'Não coletado: sempre `null`.'
        place_unavailable_reason:
          type: string
          nullable: true
          enum:
            - not_collected
    AMLScreening:
      type: object
      properties:
        node_id:
          type: string
          description: Identificador único desta etapa de AML no grafo do fluxo.
        status:
          type: string
          description: >-
            Status desta Análise AML no nível do recurso. É independente do
            `status` de nível superior da sessão: uma sessão pode chegar à
            decisão geral enquanto um recurso individual permanece `In Review`.
          enum:
            - Not Finished
            - Approved
            - Declined
            - In Review
            - Resub Requested
        total_hits:
          type: integer
          description: Número total de correspondências encontradas
        entity_type:
          type: string
          description: 'Tipo de entidade analisada: pessoa ou empresa'
        hits:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                description: >-
                  Identificador estável da Didit para o hit: `hit_` seguido de
                  24 caracteres hexadecimais. A mesma entidade correspondente
                  mantém o mesmo `id` quando o titular é analisado novamente.
                  Passe-o como `hit_id` para os endpoints de revisão de hits
                  AML.
              url:
                type: string
                format: uri
                description: URL de origem da correspondência
              match:
                type: boolean
                description: Se esta é uma correspondência confirmada
              score:
                type: number
                format: float
                nullable: true
                minimum: 0
                maximum: 1
                description: >-
                  Pontuação de correspondência ponderada obsoleta, no intervalo
                  de 0 a 1 (por exemplo, `0.73`). Use `match_score` (0-100) em
                  vez dela.
                deprecated: true
              target:
                type: boolean
                nullable: true
                description: >-
                  Se a entidade correspondente é o alvo direto da listagem (e
                  não uma parte relacionada). `null` quando a fonte não
                  especifica.
              caption:
                type: string
                description: Legenda ou título da correspondê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: >-
                  Lista das categorias de conjuntos de dados em que a
                  correspondência foi encontrada. Indica se a entidade apareceu
                  em listas de PEP (com nível), bancos de dados de sanções,
                  mídia adversa, avisos/medidas regulatórias ou outros conjuntos
                  de dados de conformidade. `Other Lists` quando a fonte da
                  entidade não indica nenhuma dessas categorias.
              features:
                type: object
                nullable: true
                description: Características adicionais da correspondência
              rca_name:
                type: string
                description: Nome do RCA, se aplicável
              last_seen:
                type: string
                format: date-time
                description: Data em que a correspondência foi vista pela última vez
              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 em que a correspondência foi vista pela primeira vez
              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: >-
                  Pontuação de confiança de identidade ponderada (0-100),
                  calculada a partir da similaridade de nome, da data de
                  nascimento e da correspondência de país. Usada para determinar
                  se a ocorrência é um Falso Positivo ou uma Possível
                  Correspondência.
                format: float
                nullable: true
              risk_score:
                type: number
                description: >-
                  Pontuação de risco da entidade (0-100). Usada para determinar
                  o status AML final (Aprovado/Em revisão/Recusado) com base na
                  maior risk_score entre os resultados que não são falsos
                  positivos.
              review_status:
                type: string
                description: >-
                  Status de revisão deste resultado. Pode ser 'Unreviewed',
                  'Confirmed Match', 'False Positive' ou 'Inconclusive'.
                enum:
                  - Unreviewed
                  - Confirmed Match
                  - False Positive
                  - Inconclusive
              score_breakdown:
                type: object
                description: Detalhamento de como o match_score foi calculado.
                properties:
                  name_score:
                    type: integer
                    description: Percentual bruto de similaridade de nome (0-100).
                  name_weight:
                    type: integer
                    description: Peso original do nome na configuração (0-100).
                  name_weight_normalized:
                    type: number
                    description: >-
                      Peso normalizado do nome após a reponderação por dados
                      ausentes (0-100).
                  name_contribution:
                    type: number
                    description: Pontos com que o nome contribuiu para a pontuação total.
                  dob_score:
                    type: integer
                    description: >-
                      Pontuação de correspondência da data de nascimento (-100 a
                      100).
                  dob_weight:
                    type: integer
                    description: >-
                      Peso original da data de nascimento na configuração
                      (0-100).
                  dob_weight_normalized:
                    type: number
                    description: >-
                      Peso normalizado da data de nascimento após a reponderação
                      por dados ausentes (0-100).
                  dob_contribution:
                    type: number
                    description: >-
                      Pontos com que a data de nascimento contribuiu para a
                      pontuação total.
                  country_score:
                    type: integer
                    description: Pontuação de correspondência do país (-100 a 100).
                  country_weight:
                    type: integer
                    description: Peso original do país na configuração (0-100).
                  country_weight_normalized:
                    type: number
                    description: >-
                      Peso normalizado do país após a reponderação por dados
                      ausentes (0-100).
                  country_contribution:
                    type: number
                    description: Pontos com que o país contribuiu para a pontuação total.
                  document_number_match_type:
                    type: string
                    description: >-
                      Resultado da avaliação 'Golden Key' do número do
                      documento.
                    enum:
                      - MATCH
                      - NEUTRAL
                      - HARD_MISMATCH
                  document_number_effect:
                    type: string
                    description: >-
                      Descrição legível do efeito do número do documento na
                      pontuação.
                  total_score:
                    type: integer
                    description: Pontuação de correspondê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: >-
                  Lista de correspondências de avisos e medidas regulatórias.
                  Inclui entradas das categorias: Warning, SIP, Warnings and
                  Regulatory Enforcement, Fitness and Probity, SIE e Insolvency.
                items:
                  type: object
                  properties:
                    list_name:
                      type: string
                      description: Nome do publicador da lista de avisos
                    matched_name:
                      type: string
                      description: Nome correspondente na lista de avisos
                    description:
                      type: string
                      description: Descrição da entrada de aviso
                    publisher:
                      type: string
                      description: Publicador ou fonte do aviso
                    source_url:
                      type: string
                      format: uri
                      description: URL da fonte do aviso
                    other_sources:
                      type: array
                      items:
                        type: string
                      description: URLs de fontes adicionais
                    countries:
                      type: array
                      items:
                        type: string
                      nullable: true
                      description: Países associados ao aviso
                    created_at:
                      type: string
                      nullable: true
                      description: Data em que a entrada de aviso foi criada
                    updated_at:
                      type: string
                      nullable: true
                      description: >-
                        Data em que a entrada de aviso foi atualizada pela
                        última vez
                    additional_data:
                      type: object
                      description: >-
                        Dados adicionais da fonte do aviso. Pode conter um
                        objeto `data` com um array `case_details`.
                      properties:
                        data:
                          type: object
                          properties:
                            case_details:
                              type: array
                              description: >-
                                Detalhes dos casos de aviso associados a esta
                                correspondência
                              items:
                                type: object
                                properties:
                                  case_type:
                                    type: string
                                    description: Tipo do caso de aviso
                                    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: >-
                  Lista de correspondências em listas de sanções encontradas
                  para esta entidade.
                items:
                  type: object
                  properties:
                    list_name:
                      type: array
                      items:
                        type: string
                      nullable: true
                      description: Nome(s) da(s) lista(s) de sanções
                    matched_name:
                      type: string
                      description: Nome correspondente na lista de sanções
                    description:
                      type: string
                      description: Descrição da entrada de sanção
                    reason:
                      type: string
                      nullable: true
                      description: >-
                        Motivo em texto livre pelo qual a entidade foi
                        sancionada. Composto a partir das entradas de motivo da
                        lista de sanções. Exemplos: '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 da fonte da sanção
                    other_sources:
                      type: array
                      items:
                        type: string
                      description: URLs de fontes adicionais
                    details:
                      type: array
                      items:
                        type: string
                      description: Detalhes adicionais sobre a sanção
                    legal_basis:
                      type: array
                      items:
                        type: string
                      description: Base legal da sanção
                    listed_on:
                      type: array
                      items:
                        type: string
                      nullable: true
                      description: Data(s) em que a entidade foi incluída na lista
                    sanction_list:
                      type: array
                      items:
                        type: string
                      nullable: true
                      description: Identificador(es) da lista de sanções
                    sanction_program:
                      type: array
                      items:
                        type: string
                      description: Programa(s) de sanções em que a entidade está listada
                    sanctioning_authority:
                      type: array
                      items:
                        type: string
                      description: Autoridade ou autoridades que impuseram a sanção
                    updated_on:
                      type: array
                      items:
                        type: string
                      description: >-
                        Data(s) em que a entrada de sanção foi atualizada pela
                        última vez
                    additional_data:
                      type: object
                      description: >-
                        Dados adicionais da fonte da sanção não capturados nos
                        campos principais
              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: >-
            Pontuação geral da análise AML — a maior pontuação de risco entre
            todos os resultados (float, 0-100). `null` até ser calculada.
        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 se o monitoramento AML contínuo está ativado para esta
            análise. Quando `true`, a entidade é reanalisada periodicamente e
            quaisquer novos resultados atualizam o relatório.
        next_ongoing_monitoring_bill_date:
          type: string
          format: date
          nullable: true
          description: >-
            Data (YYYY-MM-DD) em que esta assinatura de monitoramento contínuo
            será faturada novamente. Calculada como a data do último faturamento
            do monitoramento contínuo mais 365 dias quando
            `is_ongoing_monitoring_enabled = true`; caso contrário, `null`. Esta
            é uma data de faturamento, não uma data de triagem; para isso, use
            `last_ongoing_screening_at`.
        last_ongoing_screening_at:
          type: string
          format: date-time
          nullable: true
          description: >-
            Quando o monitoramento contínuo concluiu pela última vez uma nova
            triagem deste registro, tenha o resultado mudado ou não. `null`
            quando o registro nunca passou por nova triagem; o valor nunca é
            preenchido retroativamente com a data de ativação ou de faturamento.
        last_ongoing_screening_datasets_updated_at:
          type: string
          format: date-time
          nullable: true
          description: >-
            A data da atualização mais recente do conjunto de dados AML
            informada pelo provedor no momento daquela triagem. `null` quando o
            provedor não informou datas do conjunto de dados; nunca é estimada.
        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: >-
                  O recurso que gerou este aviso. O valor identifica o bloco de
                  recurso ao qual o aviso pertence. Em uma Análise AML,
                  normalmente é `AML`, mas o enum acima é a referência oficial
                  para todos os avisos de recursos no payload de decisão.
              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: O ID do nó do grafo do fluxo que gerou este aviso
    GeolocationCheck:
      type: object
      description: >-
        Um resultado de verificação de localização: a tentativa aceita de um nó
        do fluxo. Medição, incerteza e autenticidade são chaves separadas, de
        modo que uma localização precisa sem atestação é interpretada de forma
        diferente de uma localização imprecisa com atestação.
      properties:
        node_id:
          type: string
          nullable: true
          description: >-
            Nó do fluxo que gerou este resultado, para que um fluxo com duas
            etapas de verificação de localização continue legível.
        status:
          type: string
          enum:
            - Not Finished
            - Approved
            - Declined
            - In Review
            - Resub Requested
          description: >-
            Status desta etapa de verificação de localização no nível do
            recurso, determinado a partir dos seus avisos. É independente do
            `status` da sessão.
        outcome:
          type: string
          nullable: true
          description: O que aconteceu nesta tentativa.
          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: >-
            O que o sistema operacional ou o navegador concedeu. `not_requested`
            significa que a etapa usa apenas a localização por IP da conexão, de
            modo que nunca é solicitada uma permissão à pessoa.
          enum:
            - granted_precise
            - granted_approximate
            - denied
            - restricted
            - unavailable
            - timeout
            - dismissed
            - not_requested
            - null
        latitude:
          type: number
          nullable: true
          description: Latitude WGS84 da posição obtida. `null` quando não há posição.
          format: double
        longitude:
          type: number
          nullable: true
          description: Longitude WGS84 da posição obtida. `null` quando não há posição.
          format: double
        accuracy_m:
          type: number
          nullable: true
          description: >-
            Raio de incerteza em metros, no nível de confiança indicado em
            `accuracy_confidence`.
          format: double
        accuracy_confidence:
          type: string
          nullable: true
          description: >-
            Nível de confiança que a plataforma associa a `accuracy_m`: `p95`
            (navegadores), `p68` (Android) ou `unspecified` (iOS).
          enum:
            - p95
            - p68
            - unspecified
            - null
        measured_at:
          type: string
          nullable: true
          description: >-
            Quando o dispositivo obteve a localização, segundo o próprio
            relógio.
          format: date-time
        age_seconds:
          type: integer
          nullable: true
          description: >-
            Segundos entre o momento em que o dispositivo obtém a localização e
            o momento em que a Didit a recebe.
        source:
          type: string
          nullable: true
          description: >-
            A origem da posição obtida, quando a plataforma informa. `ip`
            significa que a posição é a localização do IP da conexão.
          enum:
            - gps
            - fused
            - network
            - wifi
            - cell
            - browser
            - unknown
            - ip
            - null
        platform:
          type: string
          nullable: true
          description: O cliente que gerou a leitura de localização (fix).
          enum:
            - web
            - ios
            - android
            - react_native
            - flutter
            - null
        sdk_version:
          type: string
          nullable: true
          description: Versão do SDK que gerou a localização.
        is_mock:
          type: boolean
          nullable: true
          description: >-
            `true` quando o dispositivo informa que a localização veio de um
            provedor de localização simulada ou de um software de simulação.
            `null` quando a plataforma não informa isso (navegadores não
            conseguem detectar); `null` não equivale a `false`.
        produced_by_accessory:
          type: boolean
          nullable: true
          description: >-
            Somente iOS: `true` quando a posição veio de um acessório externo.
            `null` nos demais casos.
        integrity:
          type: string
          enum:
            - attested
            - not_attested
            - failed
            - unsupported
            - not_determined
          description: >-
            Indica se a atestação do dispositivo respalda a localização obtida.
            `unsupported` é o que os navegadores informam, porque a web não tem
            mecanismo de atestação; não é uma falha.
        country_code:
          type: string
          nullable: true
          description: País em que a localização foi obtida, no formato ISO 3166-1 alpha-2.
        region_code:
          type: string
          nullable: true
          description: Subdivisão ISO 3166-2 em que a localização se encontra.
        city:
          type: string
          nullable: true
          description: Localidade povoada mais próxima, um rótulo para os revisores.
        geofence:
          type: object
          description: Resultado das regras de país e área da etapa.
          properties:
            enabled:
              type: boolean
              description: Se a etapa aplica alguma regra de país ou de área.
            result:
              type: string
              nullable: true
              description: >-
                Onde a posição se situa em relação às regras. `undetermined`
                significa que o círculo de precisão cruza a fronteira ou que a
                posição não correspondeu a nenhum país; não é evidência de estar
                fora.
              enum:
                - inside
                - outside
                - undetermined
                - null
        inside_geofence:
          type: boolean
          nullable: true
          description: >-
            `true` quando `geofence.result` é `inside`, `false` quando é
            `outside` e `null` nos demais casos.
        geofence_basis:
          type: string
          nullable: true
          description: >-
            A partir de qual posição o resultado da área foi avaliado: a posição
            do `device` ou a localização do `ip` da conexão.
          enum:
            - device
            - ip
            - null
        inside_areas:
          type: array
          items:
            type: string
          description: >-
            IDs das áreas permitidas configuradas dentro das quais a posição
            está.
        blocked_areas:
          type: array
          items:
            type: string
          description: IDs das áreas bloqueadas configuradas em que a posição está.
        position_source:
          type: string
          nullable: true
          description: >-
            De onde a etapa obtém a posição, conforme configurado: o dispositivo
            comparado com a localização do IP, apenas o dispositivo ou apenas a
            localização do IP.
          enum:
            - device_and_ip
            - device_only
            - ip_only
            - null
        anonymizers:
          type: object
          nullable: true
          description: >-
            Como são a conexão e o dispositivo, cada um `true`, `false` ou
            `null` quando a fonte não consegue 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 até a localização do IP da sessão depois de subtraídos os
            dois raios de incerteza; `0` quando eles se sobrepõem.
          format: double
        ip_distance_uncertainty_km:
          type: number
          nullable: true
          description: >-
            Raio combinado que foi subtraído: o raio da localização do IP mais a
            precisão desta posição.
          format: double
        ip_consistent:
          type: boolean
          nullable: true
          description: >-
            Indica se `ip_distance_km` está dentro da distância configurada na
            etapa. `null` quando qualquer um dos lados é desconhecido.
        document_distance_km:
          type: number
          nullable: true
          description: >-
            Distância até o endereço geocodificado no documento de identidade ou
            no comprovante de endereço. `null` quando não há endereço
            registrado.
          format: double
        travel_excused:
          type: boolean
          nullable: true
          description: >-
            Se a tolerância de deslocamento da etapa justificou a distância em
            relação ao endereço. `null` quando a tolerância está desativada.
        consecutive_mismatches:
          type: integer
          nullable: true
          description: >-
            Na última tentativa: esta verificação mais as divergências
            anteriores consecutivas da mesma pessoa.
        attempts:
          type: integer
          description: Número desta tentativa dentro do nó, começando em 1.
        consent:
          type: object
          nullable: true
          description: >-
            O consentimento que a pessoa deu antes do prompt do sistema,
            registrado com a versão do texto e o idioma que ela viu.
          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: >-
                  O recurso que gerou este aviso. O valor identifica o bloco de
                  recurso ao qual o aviso pertence. O array de avisos de cada
                  módulo normalmente usa o valor correspondente ao seu módulo
                  (por exemplo, `PHONE` dentro de
                  `phone_verifications[].warnings`), mas o enum acima é a
                  referência oficial para todos os avisos de recursos no payload
                  de decisão.
              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: O ID do nó do grafo do fluxo que gerou este aviso
          description: >-
            Avisos gerados por esta etapa de verificação de localização, com
            `feature` definido como `GEOLOCATION`. Os códigos de aviso começam
            com `LOCATION_`.
    GeolocationAttempt:
      type: object
      description: >-
        Uma tentativa de uma etapa de verificação de localização: as mesmas
        chaves de `geolocation_checks[]`, exceto `warnings`, além do momento em
        que a Didit a recebeu.
      properties:
        node_id:
          type: string
          nullable: true
          description: >-
            Nó do fluxo que gerou este resultado, para que um fluxo com duas
            etapas de verificação de localização continue legível.
        status:
          type: string
          enum:
            - Not Finished
            - Approved
            - Declined
            - In Review
            - Resub Requested
          description: >-
            Status desta etapa de verificação de localização no nível do
            recurso, determinado a partir dos seus avisos. É independente do
            `status` da sessão.
        outcome:
          type: string
          nullable: true
          description: O que aconteceu nesta tentativa.
          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: >-
            O que o sistema operacional ou o navegador concedeu. `not_requested`
            significa que a etapa usa apenas a localização por IP da conexão, de
            modo que nunca é solicitada uma permissão à pessoa.
          enum:
            - granted_precise
            - granted_approximate
            - denied
            - restricted
            - unavailable
            - timeout
            - dismissed
            - not_requested
            - null
        latitude:
          type: number
          nullable: true
          description: Latitude WGS84 da posição obtida. `null` quando não há posição.
          format: double
        longitude:
          type: number
          nullable: true
          description: Longitude WGS84 da posição obtida. `null` quando não há posição.
          format: double
        accuracy_m:
          type: number
          nullable: true
          description: >-
            Raio de incerteza em metros, no nível de confiança indicado em
            `accuracy_confidence`.
          format: double
        accuracy_confidence:
          type: string
          nullable: true
          description: >-
            Nível de confiança que a plataforma associa a `accuracy_m`: `p95`
            (navegadores), `p68` (Android) ou `unspecified` (iOS).
          enum:
            - p95
            - p68
            - unspecified
            - null
        measured_at:
          type: string
          nullable: true
          description: >-
            Quando o dispositivo obteve a localização, segundo o próprio
            relógio.
          format: date-time
        age_seconds:
          type: integer
          nullable: true
          description: >-
            Segundos entre o momento em que o dispositivo obtém a localização e
            o momento em que a Didit a recebe.
        source:
          type: string
          nullable: true
          description: >-
            A origem da posição obtida, quando a plataforma informa. `ip`
            significa que a posição é a localização do IP da conexão.
          enum:
            - gps
            - fused
            - network
            - wifi
            - cell
            - browser
            - unknown
            - ip
            - null
        platform:
          type: string
          nullable: true
          description: O cliente que gerou a leitura de localização (fix).
          enum:
            - web
            - ios
            - android
            - react_native
            - flutter
            - null
        sdk_version:
          type: string
          nullable: true
          description: Versão do SDK que gerou a localização.
        is_mock:
          type: boolean
          nullable: true
          description: >-
            `true` quando o dispositivo informa que a localização veio de um
            provedor de localização simulada ou de um software de simulação.
            `null` quando a plataforma não informa isso (navegadores não
            conseguem detectar); `null` não equivale a `false`.
        produced_by_accessory:
          type: boolean
          nullable: true
          description: >-
            Somente iOS: `true` quando a posição veio de um acessório externo.
            `null` nos demais casos.
        integrity:
          type: string
          enum:
            - attested
            - not_attested
            - failed
            - unsupported
            - not_determined
          description: >-
            Indica se a atestação do dispositivo respalda a localização obtida.
            `unsupported` é o que os navegadores informam, porque a web não tem
            mecanismo de atestação; não é uma falha.
        country_code:
          type: string
          nullable: true
          description: País em que a localização foi obtida, no formato ISO 3166-1 alpha-2.
        region_code:
          type: string
          nullable: true
          description: Subdivisão ISO 3166-2 em que a localização se encontra.
        city:
          type: string
          nullable: true
          description: Localidade povoada mais próxima, um rótulo para os revisores.
        geofence:
          type: object
          description: Resultado das regras de país e área da etapa.
          properties:
            enabled:
              type: boolean
              description: Se a etapa aplica alguma regra de país ou de área.
            result:
              type: string
              nullable: true
              description: >-
                Onde a posição se situa em relação às regras. `undetermined`
                significa que o círculo de precisão cruza a fronteira ou que a
                posição não correspondeu a nenhum país; não é evidência de estar
                fora.
              enum:
                - inside
                - outside
                - undetermined
                - null
        inside_geofence:
          type: boolean
          nullable: true
          description: >-
            `true` quando `geofence.result` é `inside`, `false` quando é
            `outside` e `null` nos demais casos.
        geofence_basis:
          type: string
          nullable: true
          description: >-
            A partir de qual posição o resultado da área foi avaliado: a posição
            do `device` ou a localização do `ip` da conexão.
          enum:
            - device
            - ip
            - null
        inside_areas:
          type: array
          items:
            type: string
          description: >-
            IDs das áreas permitidas configuradas dentro das quais a posição
            está.
        blocked_areas:
          type: array
          items:
            type: string
          description: IDs das áreas bloqueadas configuradas em que a posição está.
        position_source:
          type: string
          nullable: true
          description: >-
            De onde a etapa obtém a posição, conforme configurado: o dispositivo
            comparado com a localização do IP, apenas o dispositivo ou apenas a
            localização do IP.
          enum:
            - device_and_ip
            - device_only
            - ip_only
            - null
        anonymizers:
          type: object
          nullable: true
          description: >-
            Como são a conexão e o dispositivo, cada um `true`, `false` ou
            `null` quando a fonte não consegue 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 até a localização do IP da sessão depois de subtraídos os
            dois raios de incerteza; `0` quando eles se sobrepõem.
          format: double
        ip_distance_uncertainty_km:
          type: number
          nullable: true
          description: >-
            Raio combinado que foi subtraído: o raio da localização do IP mais a
            precisão desta posição.
          format: double
        ip_consistent:
          type: boolean
          nullable: true
          description: >-
            Indica se `ip_distance_km` está dentro da distância configurada na
            etapa. `null` quando qualquer um dos lados é desconhecido.
        document_distance_km:
          type: number
          nullable: true
          description: >-
            Distância até o endereço geocodificado no documento de identidade ou
            no comprovante de endereço. `null` quando não há endereço
            registrado.
          format: double
        travel_excused:
          type: boolean
          nullable: true
          description: >-
            Se a tolerância de deslocamento da etapa justificou a distância em
            relação ao endereço. `null` quando a tolerância está desativada.
        consecutive_mismatches:
          type: integer
          nullable: true
          description: >-
            Na última tentativa: esta verificação mais as divergências
            anteriores consecutivas da mesma pessoa.
        attempts:
          type: integer
          description: Número desta tentativa dentro do nó, começando em 1.
        consent:
          type: object
          nullable: true
          description: >-
            O consentimento que a pessoa deu antes do prompt do sistema,
            registrado com a versão do texto e o idioma que ela viu.
          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: Quando a Didit recebeu a tentativa.
          format: date-time
        created_at:
          type: string
          format: date-time
    KYBRegistryShareholding:
      type: object
      nullable: true
      description: >-
        O que um proprietário detém, no mesmo formato para todos os países e
        fontes de registro. Nulo quando o registro não informa nenhuma
        participação. Uma faixa (por exemplo, os 25-50% de um PSC do Reino
        Unido) não é uma participação: `percentage` é nulo e a faixa permanece
        em `ownership_min_shares` / `ownership_max_shares`.
      properties:
        share_class:
          type: string
          nullable: true
          description: Classe ou tipo de ação, conforme denominado pelo registro.
        number_of_shares:
          type: number
          nullable: true
          description: Número de ações detidas.
        currency:
          type: string
          nullable: true
          description: Moeda ISO 4217 dos valores abaixo.
        nominal_value:
          type: number
          nullable: true
          description: Valor nominal por ação.
        total_value:
          type: number
          nullable: true
          description: Valor total da participação.
        percentage:
          type: number
          nullable: true
          description: Participação exata em porcentagem, com quatro casas decimais.
      required:
        - share_class
        - number_of_shares
        - currency
        - nominal_value
        - total_value
        - percentage
    KYBRegistryAddress:
      type: object
      description: >-
        Um endereço informado pelo registro, no mesmo formato para todos os
        países e fontes de registro. Todas as chaves estão sempre presentes; uma
        parte que o registro não publica é null.
      properties:
        type:
          type: string
          nullable: true
          description: >-
            Tipo de endereço em letras minúsculas: `registered` para a sede
            registrada; outros tipos conforme o registro os nomeia (por exemplo,
            `postal`, `office`). `null` quando o registro não informa o que é o
            endereço.
        address:
          type: string
          description: >-
            O endereço completo em uma única linha. Sempre presente em todo
            endereço.
        street:
          type: string
          nullable: true
          description: Logradouro e número.
        city:
          type: string
          nullable: true
          description: Cidade ou localidade.
        postal_code:
          type: string
          nullable: true
          description: Código postal.
        region:
          type: string
          nullable: true
          description: Região, estado ou província.
        country_code:
          type: string
          nullable: true
          description: Código de país ISO 3166-1 alpha-2.
        description:
          type: string
          nullable: true
          description: O rótulo próprio do registro para o endereço, quando houver.
      required:
        - type
        - address
        - street
        - city
        - postal_code
        - region
        - country_code
        - description
    KYBRegistryIndustry:
      type: object
      description: >-
        Uma atividade na qual o registro classifica a empresa, no mesmo formato
        para todos os países e fontes de registro.
      properties:
        code:
          type: string
          nullable: true
          description: >-
            Código de atividade conforme impresso pelo registro (por exemplo,
            `73110`).
        description:
          type: string
          nullable: true
          description: Rótulo da atividade, quando o registro publica um.
        scheme:
          type: string
          nullable: true
          description: >-
            Sistema de classificação, com um nome por sistema, independentemente
            da fonte que o informou: `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`; outros sistemas nacionais mantêm o nome usado
            pelo próprio registro. Nulo quando o registro não informa o sistema.
        is_primary:
          type: boolean
          description: >-
            True para a atividade principal da empresa. Exatamente uma entrada é
            a principal quando a lista não está vazia.
      required:
        - code
        - description
        - scheme
        - is_primary
    KYBRegistryData:
      type: object
      nullable: true
      description: >-
        Detalhe normalizado da Didit sobre a empresa no registro de empresas: o
        resultado de propriedade (`ownership_error`, `section_errors`,
        `ubo_resolution`, `lite_enrichment`), as correções feitas com
        update-data e os dados do registro que não têm campo próprio. Nunca
        inclui o registro original da fonte do registro de empresas. Todas as
        chaves são opcionais e só estão presentes quando a empresa tem um valor
        para elas; novas chaves podem ser adicionadas. Consulte os campos
        canônicos (`addresses`, `industries`, `ownership`,
        `beneficial_owners[].shareholding`) para tudo o que eles abrangem.
      properties:
        company_name:
          type: string
          description: Nome da empresa conforme corrigido no console.
        registration_number:
          type: string
          description: >-
            Número de registro conforme informado pelo registro ou por uma
            correção feita no console.
        country_code:
          type: string
          description: >-
            País do registro, conforme informado pelo registro ou por uma
            correção feita no console.
        region:
          type: string
          description: Região ou estado do registro.
        incorporation_date:
          type: string
          description: Data de constituição (ISO 8601).
        registration_date:
          type: string
          description: >-
            Data de registro (ISO 8601) quando o registro informa uma data
            distinta da data de constituição.
        dissolution_date:
          type: string
          description: Data de dissolução (ISO 8601), quando o registro a informa.
        tax_number:
          type: string
          description: Número de identificação fiscal.
        vat_number:
          type: string
          description: Número de VAT.
        legal_address:
          type: string
          description: Endereço legal conforme corrigido no console.
        registered_address:
          type: string
          description: Endereço registrado conforme consta no registro.
        company_type:
          type: string
          description: Forma jurídica.
        registry_status:
          type: string
          description: Status da empresa no registro.
        verification_status:
          type: string
          description: Status da verificação.
        alternative_names:
          type: string
          description: Outros nomes comerciais que a empresa usa ou já usou.
        nature_of_business:
          type: string
          description: Descrição da atividade.
        registered_capital:
          type: string
          description: Capital social conforme impresso.
        registered_capital_amount:
          type: string
          description: Valor do capital social, como string decimal.
        registered_capital_currency:
          type: string
          description: Moeda do capital social (ISO 4217).
        website:
          type: string
          description: Site.
        email:
          type: string
          description: E-mail de contato.
        phone:
          type: string
          description: Telefone de contato.
        legal_entity_identifier:
          type: string
          description: Legal Entity Identifier (LEI).
        location_of_registration:
          type: string
          description: Local de registro.
        control_scheme:
          type: string
          description: Esquema de governança, quando o registro o expõe.
        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: >-
            Motivo pelo qual um nível de propriedade solicitado não foi
            entregue, com os mesmos códigos de `ownership.unavailable_reason`.
            `no_owners_on_record` (o registro respondeu e não indica nenhum
            proprietário) e `ownership_section_unavailable` (o registro não
            retornou a seção de propriedade) são constatações diferentes.
        section_errors:
          type: object
          description: >-
            Seções que o registro não retornou, indexadas por seção (`officers`,
            `shareholders`, `group_structure`). Uma seção listada aqui nunca foi
            entregue: uma lista vazia ao lado dela não diz nada sobre a 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: >-
            Os campos próprios do registro para a empresa, com as chaves
            nomeadas como o registro as nomeia, como valores simples (registros
            legados). Somente os campos revisados como fatos do registro são
            incluídos.
        registry_sources:
          type: array
          description: >-
            Os registros oficiais dos quais o registro foi lido (registros
            legados). Outras fontes não são nomeadas.
          items:
            $ref: '#/components/schemas/KYBRegistrySource'
        previous_names:
          type: array
          items:
            type: string
          description: >-
            Nomes sob os quais a empresa foi registrada anteriormente (registros
            legados).
        parent_companies:
          type: array
          items:
            type: string
          description: Empresas controladoras indicadas pelo registro (registros legados).
        documents_available:
          type: integer
          description: >-
            Quantos documentos arquivados o registro oferece para a empresa
            (registros legados).
    KYBRegistryOwnership:
      type: object
      description: >-
        O resultado do nível de propriedade (Acionistas / UBO), no mesmo formato
        para todos os países e fontes de registro.
      properties:
        status:
          type: string
          nullable: true
          enum:
            - not_requested
            - pending
            - delivered
            - not_held
            - unavailable
            - null
          description: >-
            `delivered` quando o registro publicou os dados de propriedade;
            `not_held` quando o registro de propriedade respondeu e não lista a
            empresa de forma alguma (consulte `unavailable_reason`);
            `unavailable` quando ele não forneceu os dados de propriedade por
            qualquer outro motivo (consulte `unavailable_reason`); `pending`
            enquanto o registro ainda os está buscando; `not_requested` para o
            nível Basic.
        tier_requested:
          type: string
          nullable: true
          enum:
            - basic
            - shareholders
            - ubo
            - null
          description: O nível que o fluxo solicitou.
        tier_delivered:
          type: string
          nullable: true
          enum:
            - basic
            - shareholders
            - ubo
            - null
          description: >-
            O nível que o registro entregou (e que é faturado). Uma requisição
            de UBO respondida apenas com acionistas diretos é `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: >-
            Motivo pelo qual um nível de propriedade solicitado não foi
            entregue. Nulo, a menos que `status` seja `unavailable` ou
            `pending`.
        direct_ownership_complete:
          type: boolean
          nullable: true
          description: >-
            True quando as participações declaradas dos acionistas diretos somam
            100% (com margem de um ponto percentual para arredondamento); false
            quando não somam; null quando a propriedade não foi informada ou uma
            participação não está declarada.
        unresolved:
          type: array
          description: >-
            Partes da cadeia de propriedade que o registro não conseguiu
            resolver, por exemplo, quando não há estrutura de grupo registrada
            acima dos proprietários diretos.
          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: >-
        A tabela de capitalização comprovada pelo registro, como estava quando o
        nível de propriedade foi entregue: `shareholders` diretos e
        `beneficial_owners`. Nulo quando o registro não comprovou nenhuma
        propriedade. Nunca contém as linhas da própria fonte do registro; leia
        `company.beneficial_owners` e `company.ownership` para obter o registro
        atual.
      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: >-
        A revisão mais recente do item no Investigator, ou null quando ele nunca
        teve uma. Incluída na decisão da sessão V3 e da sessão de empresa (e,
        portanto, nos webhooks `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: >-
            O Investigator decidiu por conta própria, mesmo que a decisão tenha
            sido revertida posteriormente.
        decided_by:
          type: string
          enum:
            - investigator
            - member
          nullable: true
        decision:
          nullable: true
          allOf:
            - $ref: '#/components/schemas/InvestigatorDecision'
          type: object
    BiometricRetention:
      type: object
      description: Quando os dados biométricos ao vivo desta sessão são excluídos.
      required:
        - jurisdictions
        - deletes_at
      properties:
        jurisdictions:
          type: array
          items:
            type: string
          description: >-
            Códigos dos estados dos EUA cujas regras biométricas definem um
            prazo de exclusão para esta pessoa (`US` quando o estado é
            desconhecido). Vazio quando nenhuma se aplica.
        deletes_at:
          type: string
          format: date-time
          nullable: true
          description: >-
            A data em que os dados biométricos ao vivo (imagens faciais e
            templates) desta sessão são excluídos, com base na configuração de
            retenção da sua aplicação e, quando houver, no limite legal da
            jurisdição da pessoa. `null` quando ainda não há data aplicável.
    SocialFootprintPlatform:
      type: object
      properties:
        platform:
          type: string
          description: Identificador da plataforma.
          example: whatsapp
        category:
          type: string
          description: >-
            Categoria da plataforma, por exemplo MESSAGING, SOCIAL_MEDIA,
            ECOMMERCE, PROFESSIONAL, EMAIL_PROVIDER.
          example: MESSAGING
        scope:
          type: string
          enum:
            - global
            - local
          description: >-
            `global` para plataformas de alcance mundial, `local` para
            plataformas específicas de uma região.
          example: global
    SocialFootprintCategorySummary:
      type: object
      properties:
        registered:
          type: integer
          nullable: true
          description: Plataformas desta categoria em que o cadastro foi confirmado.
          example: 2
        ratio:
          type: number
          format: float
          nullable: true
          description: >-
            Proporção das plataformas verificadas da categoria com cadastro, de
            0.0 a 1.0.
          example: 0.6667
    SocialFootprintProfile:
      type: object
      properties:
        name:
          type: string
          nullable: true
          description: Nome do perfil, quando a plataforma o disponibiliza.
        photo:
          type: string
          nullable: true
          description: URL da foto do perfil, quando a plataforma a disponibiliza.
        about:
          type: string
          nullable: true
          description: Texto "sobre"/bio do perfil, quando a plataforma o disponibiliza.
        privacy_status:
          type: string
          nullable: true
          enum:
            - PUBLIC
            - PRIVATE
            - null
          description: Visibilidade do perfil, quando a plataforma a disponibiliza.
        business_account:
          type: boolean
          nullable: true
          description: Se o perfil é uma conta comercial, quando a plataforma informa isso.
    SignatureFieldResult:
      type: object
      description: >-
        Um campo de um documento assinado, com o seu valor na cópia deste
        signatário. Consulte
        [Campos](/pt-br/core-technology/electronic-signature/report-electronic-signature#campos).
      properties:
        key:
          type: string
          description: A chave do campo, como usada em `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 da página, a partir de 1. Para um documento Word, uma página
            do PDF convertido.
        x:
          type: number
          description: Borda esquerda, como fração da largura da página.
        'y':
          type: number
          description: Borda superior, como fração da altura da página.
        width:
          type: number
          description: Largura, como fração da largura da página.
        height:
          type: number
          description: Altura, como fração da altura da página.
        required:
          type: boolean
        value:
          nullable: true
          description: >-
            Uma string para `text`, `email`, `full_name`, `date_signed` e
            `data`, um booleano para um `checkbox` e `true` para uma assinatura
            ou rubrica aplicada. `null` quando vazio.
        display_value:
          type: string
          nullable: true
          description: >-
            O valor conforme carimbado na página: datas no `date_format` do
            campo, `Yes` ou `No` para uma caixa de seleção, `Signed` para uma
            assinatura ou rubrica.
        value_source:
          type: string
          nullable: true
          enum:
            - signer
            - identity
            - contact
            - company
            - session
            - metadata
            - api
            - signing_time
            - null
          description: >-
            Origem do valor: `signer` (digitado, marcado ou aplicado pelo
            signatário), `identity` (o documento de identidade verificado),
            `contact` (o e-mail ou telefone verificado), `company` (a empresa
            verificada), `session` (`vendor_data`), `metadata`, `api`
            (`sign.field_values`) ou `signing_time` (a data da assinatura).
        filled_at:
          type: string
          format: date-time
          nullable: true
        image_url:
          type: string
          nullable: true
          description: >-
            Somente assinatura e rubrica: o caminho da imagem aplicada. Consulte
            [Baixar uma imagem de
            assinatura](/pt-br/sessions-api/electronic-signature/download-field-image).
        value_unavailable_reason:
          type: string
          nullable: true
          enum:
            - source_empty
            - null
          description: >-
            `source_empty` quando um campo pré-preenchido não tinha valor na
            sessão e `signature_field_data_missing_action` permitiu que o
            signatário assinasse mesmo assim.
    KYBRegistrySectionError:
      type: object
      description: Uma seção que o registro não retornou.
      properties:
        status_code:
          type: integer
          nullable: true
          description: O status que o registro retornou para a seção.
      required:
        - status_code
    KYBRegistryUboResolution:
      type: object
      description: Como o nível UBO percorreu a cadeia de propriedade acima da empresa.
      properties:
        parent_chain:
          type: array
          description: Controladoras corporativas, da controladora final até a empresa.
          items:
            $ref: '#/components/schemas/KYBRegistryGroupCompany'
        subsidiaries:
          type: array
          description: Empresas diretamente abaixo da empresa em seu grupo corporativo.
          items:
            $ref: '#/components/schemas/KYBRegistryGroupCompany'
        unresolved:
          type: array
          description: >-
            Partes da cadeia que o registro não conseguiu resolver (as mesmas
            entradas de `ownership.unresolved`).
          items:
            type: object
            properties:
              reason:
                type: string
                description: >-
                  O motivo, por exemplo `no_group_structure_on_record`,
                  `selected_company_not_in_group_structure` ou `section_error`.
              section:
                type: string
                nullable: true
                description: A seção em questão, por exemplo `group_structure`.
            required:
              - reason
              - section
      required:
        - parent_chain
        - subsidiaries
        - unresolved
    KYBRegistryLiteEnrichment:
      type: object
      description: >-
        Campos vazios do perfil Lite que outra das fontes de registro do país
        preencheu. A fonte não é identificada.
      properties:
        fields:
          type: array
          items:
            type: string
          description: Os campos da empresa que foram preenchidos.
        people_added:
          type: integer
          description: Quantos administradores ou proprietários foram adicionados.
      required:
        - fields
        - people_added
    KYBRegistrySource:
      type: object
      description: >-
        Um registro oficial do qual o dado foi lido. Apenas registros
        governamentais oficiais, órgãos reguladores e o sistema oficial de
        identificadores são citados; qualquer outra fonte é omitida.
      properties:
        name:
          type: string
          description: Nome do registro, por exemplo `UK Companies House`.
        source_type:
          type: string
          enum:
            - official
          description: Sempre `official`.
      required:
        - name
        - source_type
    KYBOwnershipStructureOwner:
      type: object
      description: >-
        Um proprietário do snapshot de propriedade: a mesma identidade de
        registro e participação de `company.beneficial_owners[]`, e sua
        `shareholding` canônica.
      properties:
        name:
          type: string
          nullable: true
          description: Nome do proprietário conforme consta no registro.
        first_name:
          type: string
          nullable: true
          description: Nome próprio, para uma pessoa física, quando o registro o informa.
        last_name:
          type: string
          nullable: true
          description: Sobrenome, no caso de pessoa física, quando o registro o informa.
        date_of_birth:
          type: string
          nullable: true
          description: Data de nascimento (ISO 8601), quando o registro a publica.
        country_of_birth:
          type: string
          nullable: true
          description: País de nascimento, quando o registro o publica.
        company_name:
          type: string
          nullable: true
          description: Nome da empresa, para um proprietário pessoa jurídica.
        registration_number:
          type: string
          nullable: true
          description: Número de registro, para um proprietário pessoa jurídica.
        entity_type:
          type: string
          nullable: true
          enum:
            - person
            - company
            - null
          description: Se o proprietário é uma pessoa física ou uma empresa.
        nationality:
          type: string
          nullable: true
          description: Nacionalidade, quando o registro a informa.
        designation:
          type: string
          nullable: true
          description: >-
            O título ou a função do proprietário conforme impresso pelo
            registro.
        roles:
          type: array
          items:
            type: string
          description: >-
            `shareholder` para um titular direto, `ubo` para um beneficiário
            final.
        ownership_min_shares:
          type: string
          nullable: true
          description: >-
            Limite inferior da participação, em percentual (igual ao limite
            superior no caso de uma participação exata).
        ownership_max_shares:
          type: string
          nullable: true
          description: Limite superior da participação, em percentual.
        voting_min_shares:
          type: string
          nullable: true
          description: Limite inferior dos direitos de voto, em percentual.
        voting_max_shares:
          type: string
          nullable: true
          description: Limite superior dos direitos de voto, em percentual.
        appointment_date:
          type: string
          nullable: true
          description: Data em que a participação ou o cargo começou (ISO 8601).
        is_active:
          type: boolean
          nullable: true
          description: Falso para um antigo proprietário.
        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: >-
        Como o item saiu da fila do Investigator. `decided_by`,
        `original_outcome` e `overrides` são retornados pelos endpoints de
        aceitação e de substituição e pelo relatório; o bloco `investigator` de
        uma decisão de sessão traz os demais campos.
      properties:
        outcome:
          type: string
          enum:
            - accepted
            - edited
            - overridden
            - decided_elsewhere
            - automated
          description: >-
            `accepted` ou `edited` seguiu a recomendação (`edited` com uma
            narrativa reescrita), `overridden` tomou outra ação,
            `decided_elsewhere` é uma decisão tomada fora do Investigator
            enquanto o relatório estava aberto, `automated` é uma decisão que o
            Investigator tomou por conta própria.
        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: O status do item após a decisão.
        agreed:
          type: boolean
          description: Se a decisão coincidiu com a recomendação.
          nullable: true
        decided_at:
          type: string
          format: date-time
        billed:
          type: boolean
          description: A revisão foi cobrada.
        decided_by:
          type: string
          enum:
            - investigator
            - member
        original_outcome:
          type: object
          description: >-
            A decisão que o Investigator tomou por conta própria, sem alteração
            por substituições posteriores. Nulo para uma decisão tomada pela
            equipe.
          properties:
            action:
              type: string
            final_status:
              type: string
            decided_at:
              type: string
              format: date-time
          nullable: true
        overrides:
          type: array
          description: >-
            Todas as substituições de uma decisão que o Investigator tomou por
            conta própria, da mais antiga para a mais recente.
          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: >-
        Uma empresa do grupo corporativo, identificada pela sua identidade no
        registro.
      properties:
        name:
          type: string
          nullable: true
          description: Nome da empresa.
        country_code:
          type: string
          nullable: true
          description: País de registro.
        registration_number:
          type: string
          nullable: true
          description: Número de registro.
      required:
        - name
        - country_code
        - registration_number
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: >-
        Chave de API da sua aplicação, em Developers -> API keys no Business
        Console. A chave principal tem acesso total. Uma chave nomeada pode ter
        escopo restrito: nenhum acesso, leitura ou escrita por recurso, limitada
        a alguns fluxos ou a sessões aprovadas, a uma lista de endereços IP e a
        uma data de validade. 401 significa que a chave está errada, revogada ou
        expirada; 403 significa que nenhuma chave foi enviada, que a chave não
        tem acesso a este recurso ou ação, ou que a requisição veio de um
        endereço fora da sua lista de IPs; 404 em uma rota de sessão significa
        que a sessão está fora dos fluxos ou status da chave. Uma chave sem
        acesso a mídia recebe URLs de imagem, vídeo e PDF como null, e uma chave
        sem permissão de escrita em sessões recebe links e tokens de sessão como
        null. Consulte https://docs.didit.me/console/api-keys.

````

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