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

# Verificação de identidade: relatório, campos e pontuações

> Consulte o relatório de Verificação de identidade da Didit: campos extraídos, pontuações de qualidade de imagem e estrutura nas respostas.

## Visão geral

O **relatório de verificação de identidade** regista tudo o que a Didit extraiu e validou a partir de um documento de identificação oficial — passaportes, cartões de cidadão, cartas de condução e autorizações de residência. Agrupa os campos biográficos e do documento extraídos por OCR, URLs assinados para o conteúdo multimédia capturado, dados de morada processados e geolocalizados, pontuações de qualidade de imagem por lado, conteúdos da MRZ, discriminação por sistema de escrita (latino / não latino) e correspondências de documentos entre sessões.

O relatório é gerado após o utilizador concluir o passo de captura de documentos num fluxo (ou chamar o endpoint de OCR autónomo). A Didit identifica o tipo de documento, executa o OCR, valida a MRZ / código de barras / código QR, processa a morada, analisa sinais de adulteração (captura de ecrã, cópia impressa, manipulação de retrato) e compara o documento com todos os outros documentos capturados na sua aplicação.

Cada relatório possui o seu próprio `status` — independente do estado geral da sessão — que reflete como o passo de identificação foi resolvido de forma isolada:

* **Aprovada** — documento reconhecido, todos os campos obrigatórios extraídos, nenhum aviso com encaminhamento de recusa acionado.
* **Em análise** — um ou mais avisos foram acionados e o seu fluxo encaminha-os para revisão.
* **Recusada** — uma condição de recusa automática foi acionada (documento não suportado, documento expirado, retrato em falta, correspondência na lista de bloqueio, falha na idade adaptativa) ou foi acionado um aviso cuja ação configurada é Recusar (idades mínima/máxima predefinidas como Recusar).
* **Expirada** — a `expiration_date` do documento foi ultrapassada **após** a verificação. A monitorização contínua de expiração da Didit altera o relatório de `Approved` para `Expired`, anexa um aviso `DOCUMENT_EXPIRED` e move uma sessão aprovada para o estado de sessão `Kyc Expired`.
* **Não Concluído** — o utilizador nunca concluiu o passo de captura.

## Onde aparece nas respostas da API

O relatório de verificação de identidade é fornecido dentro do array `id_verifications[]` — **sempre um array JSON**, nunca um objeto `id_verification` singular. Surgem múltiplas entradas quando um fluxo executa mais do que um passo de documento (por exemplo, uma identificação principal mais um reforço de verificação).

* **API de decisão de sessão** — `GET /v3/session/{sessionId}/decision/` devolve `id_verifications[]` no nível superior. Consulte [Obter decisão da sessão](https://docs.didit.me/pt/sessions-api/retrieve-session.md).
* **Webhooks** — os payloads de `session.status.updated` incluem o mesmo array `id_verifications[]` assim que o passo gerar dados. Consulte [Webhooks](https://docs.didit.me/pt/integration/webhooks.md).
* **API de OCR autónomo** — a submissão direta de documentos devolve um objeto singular `id_verification` com os mesmos campos. Consulte [API de OCR autónomo](https://docs.didit.me/pt/standalone-apis/id-verification.md).

> [!NOTE]
>
> Leia `response.id_verifications[0]` e itere o array. A estrutura singular `id_verification` apenas existe na API de OCR autónomo — não existe no endpoint de decisão v3.

## Schema

O esquema canónico campo a campo encontra-se na página de referência [Modelos de dados](https://docs.didit.me/pt/reference/data-models.md#verificação-de-identidade). Os campos abaixo provêm diretamente do `IDVerificationV3Serializer`, que estende o `IDVerificationV2Serializer` e adiciona `node_id`, o array de correspondências entre sessões `matches[]` e o array `document_selfie_face_matches[]` do Silent Capture.

### Campos de nível superior

| Campo | Tipo | Descrição |
| - | - | - |
| `status` | `"Approved" \| "Declined" \| "In Review" \| "Expired" \| "Not Finished"` | Estado do passo de identificação. |
| `node_id` | string \| null | Nó do grafo do fluxo que produziu este relatório. |
| `document_type` | `"Passport" \| "Identity Card" \| "Driver's License" \| "Residence Permit" \| "Health Insurance Card" \| "Tax Card" \| "Social Security Card" \| "Work Permit" \| "Visa" \| "Public Service Card" \| "Birth Certificate" \| "Firearm License" \| "Other" \| null` | Família de documentos de nível superior reconhecida (legível por humanos). |
| `document_subtype` | string \| null | Código de subtipo de documento do registo de documentos da Didit, filtrado para o que as definições de documentos do fluxo aceitam. Os documentos específicos de uma região incluem a região, por exemplo `QUEENSLAND_DRIVER_LICENSE_GENERIC`. Consulte [Subtipos de documento](https://docs.didit.me/pt/core-technology/id-verification/document-subtypes-id-verification.md) para a lista completa de códigos, incluindo como distinguir uma carta de condução comercial (CDL) dos EUA de uma padrão. |
| `document_number` | string | Número do documento extraído por OCR. Nas cartas de condução que imprimem tanto um número de licença como um número de cartão, consulte a nota abaixo da tabela. |
| `personal_number` | string | Número de identificação pessoal / nacional extraído por OCR, quando distinto do número do documento. |
| `portrait_image`, `front_image`, `front_video`, `back_image`, `back_video`, `full_front_image`, `full_back_image` | string (URL assinado) | Ficheiros multimédia capturados. Os URLs são assinados e têm tempo limitado — transfira de imediato, nunca persista o URL. |
| `front_image_camera_front`, `back_image_camera_front` | string (URL assinado) \| null | Fotogramas capturados pela câmara frontal do utilizador durante a captura do documento. Utilizados para a verificação facial entre câmaras e comparados com a sua [lista de bloqueio de rostos](https://docs.didit.me/pt/console/blocklist-users.md#lista-de-bloqueio-de-rostos); cada um também pode ser [adicionado à lista de bloqueio de rostos](https://docs.didit.me/pt/management-api/lists/create-entry.md#rostos-da-selfie-da-captura-do-documento). |
| `front_image_camera_front_face_match_score`, `back_image_camera_front_face_match_score` | float (0–100) \| null | Pontuação de similaridade entre o fotograma da câmara frontal e o retrato do documento. |
| `document_selfie_face_matches` | array \| null | Sessões anteriores ou entradas da lista de bloqueio de rostos cujo rosto correspondeu à selfie tirada durante a captura do documento ([Pesquisa facial do Silent Capture](https://docs.didit.me/pt/core-technology/face-search/overview.md#a-selfie-tirada-durante-a-captura-do-documento)). Mesmo formato de entrada que `liveness_checks[].matches`; `match_image_url` é um URL pré-assinado que expira. `null` para sessões mais antigas ou quando a pesquisa não foi executada, `[]` quando foi executada e não encontrou nada. |
| `front_image_quality_score`, `back_image_quality_score` | object \| null | Avaliação de qualidade por lado (consulte Pontuações de qualidade de imagem). |
| `document_liveness` | object \| null | Pontuações de prova de vida do documento por tipo de fraude, com os limiares face aos quais foram avaliadas (consulte Pontuações de prova de vida do documento). Apenas na V3. |
| `date_of_birth`, `expiration_date`, `date_of_issue` | string (YYYY-MM-DD) | Datas do documento. |
| `age` | number | Idade do titular em anos calculada a partir de `date_of_birth`. |
| `issuing_state` | string (ISO 3166-1 alfa-3) | Código do país emissor. |
| `issuing_state_name` | string | Nome localizado do país. |
| `first_name`, `last_name`, `full_name` | string | Nome do titular no sistema de escrita escolhido por `preferred_characters` (consulte abaixo). |
| `gender` | `"M" \| "F" \| "U"` | Género, quando presente no documento (`U` = desconhecido). |
| `address`, `formatted_address` | string | Strings de morada brutas e geocodificadas/formatadas. |
| `place_of_birth` | string | Local de nascimento extraído por OCR. |
| `marital_status` | `"SINGLE" \| "MARRIED" \| "DIVORCED" \| "WIDOWED" \| "UNKNOWN"` | Estado civil, quando presente no documento. |
| `nationality` | string (ISO 3166-1 alfa-3) | Nacionalidade do titular, quando distinta do país emissor. |
| `extra_fields` | object | Dados adicionais específicos do documento (categorias de carta de condução, grupo sanguíneo, nomes em sistemas de escrita alternativos, `tax_number`, …). |
| `mrz` | object \| null | Campos chave/valor analisados da MRZ. |
| `parsed_address` | object \| null | Morada estruturada e geocodificada (`street_1`, `street_2`, `city`, `region`, `country`, `postal_code`, `address_type`, `formatted_address`, `document_location`, `raw_results`, `is_best_match`). |
| `extra_files[]` | array de URLs assinados | Imagens adicionais anexadas a este documento. |
| `matches[]` | array | Correspondências de documentos entre sessões (consulte Correspondências entre sessões). |
| `warnings[]` | array | Avisos ao nível do módulo — consulte [Avisos de verificação de identidade](https://docs.didit.me/pt/core-technology/id-verification/warnings-id-verification.md). |

> [!NOTE]
>
> **`issuing_state` é sempre ao nível do país, nunca subnacional.** Para todos
> os tipos de documento, incluindo cartas de condução emitidas por um estado ou província
> (Austrália, Estados Unidos, Canadá), `issuing_state` e
> `issuing_state_name` indicam o **país** (por exemplo `AUS` /
> `Australia`), e não o estado. O valor subnacional, quando o documento
> apresenta um, está disponível separadamente em `parsed_address.region` (recorrendo
> a `extra_fields.state` em alguns tipos de documento). A visão geral da sessão na **Business
> Console** apresenta isto como uma linha de **Região** por baixo de
> **Estado emissor** quando presente.

> [!NOTE]
>
> **Cartas de condução que incluem dois números (Austrália).** As cartas de condução
> australianas imprimem tanto um número de licença, que identifica a habilitação de
> condução do titular e permanece inalterado quando o cartão é substituído, como um número de cartão,
> que identifica o cartão físico e muda a cada nova emissão. Para estas
> cartas de condução, a Didit mapeia sempre os números da mesma forma:
>
> * `personal_number` — o **número da licença**
> * `document_number` — o **número do cartão**
>
> Isto aplica-se a todos os estados e territórios australianos (NSW, VIC, QLD, WA, SA,
> TAS, ACT, NT). Nalgumas variantes, o número do cartão é impresso apenas no verso,
> pelo que só é lido quando o verso da carta de condução é capturado. Quando não for
> possível ler o número do cartão, o número da licença é reportado **tanto** como
> `document_number` como `personal_number`, garantindo que `document_number` inclui sempre
> um identificador assim que a verificação termina. `personal_number` é o
> número da licença em qualquer dos casos. Noutros tipos de documento, `document_number` permanece
> o número principal extraído por OCR e pode ser, por si só, um identificador ao nível do titular.

> [!NOTE]
>
> **O CUIL argentino é `extra_fields.tax_number`, nunca `personal_number`.**
> Os documentos argentinos imprimem o CUIL — o identificador de 11 dígitos utilizado como chave pela AFIP, pela ANSES e
> pelas agências de crédito — num local diferente em cada documento, e
> o DNI imprime um segundo número de 11 dígitos ao lado deste:
>
> * na **carta de condução**, o CUIL é o valor de `personal_number`;
> * no **DNI**, `personal_number` contém o *número de trámite*, que
>   identifica o pedido do cartão e não é um identificador do titular.
>   O CUIL do DNI é lido a partir do seu próprio campo impresso.
>
> Portanto, `personal_number` **não** é um CUIL fiável para a Argentina: num DNI, é
> um número de 11 dígitos que não devolverá qualquer resultado de nenhum registo, sem qualquer aviso.
> Em vez disso, leia `extra_fields.tax_number`. O Didit apenas o comunica quando o valor
> é validado como um CUIL real (prefixo da pessoa mais o dígito de controlo módulo-11), em
> dígitos canónicos sem separadores (`27111111117`), qualquer que seja o documento argentino
> apresentado pelo titular. Quando não foi possível ler o CUIL do cartão, a
> chave fica ausente em vez de ser preenchida com um número que não é um CUIL — capture
> a carta de condução como um segundo documento, ou recolha o CUIL através de uma
> resposta num Questionário ou nos `metadata` da sessão, para cobrir esses utilizadores.

### Pontuações de qualidade da imagem

Tanto `front_image_quality_score` como `back_image_quality_score` devolvem:

| Campo | Tipo | O que mede |
| - | - | - |
| `focus_score` | number 0–100 | Nitidez — variância laplaciana local dos 10% superiores, robusta a fundos uniformes. Peso de 45%. |
| `brightness_score` | number 0–100 | Penaliza imagens demasiado escuras ou sobre-expostas. Peso de 30%. |
| `brightness_issue` | `"ok" \| "too_dark" \| "too_bright"` | Direção do problema de luminosidade, quando `brightness_score` é baixo. |
| `resolution_score` | number 0–100 | Baseada na contagem total de píxeis da captura. Peso de 25%. |
| `is_document_fully_visible` | boolean \| null | `true` quando os quatro cantos do documento estão visíveis, `false` quando algum canto está cortado, `null` quando não foi possível detetar os cantos. |
| `overall_score` | number 0–100 | Composição ponderada (foco 45%, luminosidade 30%, resolução 25%). |

> [!TIP]
>
> Utilize `overall_score` como uma verificação rápida de adequação — pontuações superiores a **70** indicam geralmente uma captura suficientemente boa para uma verificação fiável.

### Pontuações de prova de vida do documento

O campo `document_liveness` comunica o que a [verificação de prova de vida do documento](https://docs.didit.me/pt/core-technology/id-verification/warnings-id-verification.md#prova-de-vida-do-documento-adulteração) mediu, **quer tenha ou não gerado um aviso**. Um aviso só existe quando uma pontuação fica abaixo de um dos limiares do fluxo, pelo que, antes deste campo, um documento aprovado não incluía qualquer evidência de prova de vida - o campo é a forma de auditar uma sessão aprovada. É `null` quando a verificação não foi executada (por exemplo, num método sem documento ou numa falha do modelo registada nos registos da sessão).

Contém um objeto por tipo de fraude - `portrait_replace`, `printed_copy` e `screen_replay` - cada um com:

| Campo | Tipo | Significado |
| - | - | - |
| `score` | number 0–100 \| null | Probabilidade de o documento ser genuíno para este tipo de fraude (mais elevado = maior probabilidade de ser genuíno). É o valor mais **baixo** dos dois lados, que é o valor utilizado pela decisão. `null` quando nenhum dos lados produziu uma pontuação utilizável - por exemplo, a pontuação do retrato é ignorada num lado onde não foi encontrado nenhum retrato. |
| `front`, `back` | number 0–100 \| null | A pontuação correspondente a cada lado capturado. `null` para um lado que não foi capturado ou cuja pontuação foi ignorada. |
| `decline_threshold`, `review_threshold` | number \| null | Limiares guardados quando o nó de Verificação de identidade avaliou este documento. Edições posteriores do fluxo não os alteram. `null` quando as evidências de avaliação histórica não estão disponíveis. |
| `bucket` | `"approve" \| "review" \| "decline" \| null` | Onde `score` se situa em relação a esses limiares: abaixo de `decline_threshold` → `decline`, abaixo de `review_threshold` → `review`, caso contrário `approve`. `null` quando não há uma pontuação utilizável, a verificação não foi aplicada ou as evidências de avaliação histórica não estão disponíveis. O bucket descreve esta verificação do tipo de fraude, não o estado geral da sessão. |

```json theme={null}
"document_liveness": {
  "portrait_replace": {
    "score": 96.46,
    "front": 96.46,
    "back": 98.2,
    "decline_threshold": 35,
    "review_threshold": 70,
    "bucket": "approve"
  },
  "printed_copy": {
    "score": 91.2,
    "front": 91.2,
    "back": 93.7,
    "decline_threshold": 35,
    "review_threshold": 77,
    "bucket": "approve"
  },
  "screen_replay": {
    "score": 99.9,
    "front": 99.9,
    "back": 99.5,
    "decline_threshold": 30,
    "review_threshold": 70,
    "bucket": "approve"
  }
}
```

Para documentos mais antigos sem evidências de avaliação guardadas, as pontuações armazenadas permanecem visíveis, mas tanto os limiares como `bucket` são `null`. As definições atuais do fluxo nunca são utilizadas para reconstruir um resultado histórico. O mesmo se aplica a uma captura cuja avaliação do documento ainda não tenha sido concluída.

A Business Console apresenta as mesmas três linhas no bloco **Prova de vida do documento** da secção de Verificação de identidade da sessão.

### Correspondências entre sessões

`matches[]` lista até **5** outros documentos na sua aplicação que correspondem a este — mesma **data de nascimento**, mesmo **país emissor** e um **nome completo** muito semelhante. Documentos na lista de bloqueio exigem adicionalmente uma correspondência exata do número do documento. As sessões pertencentes ao mesmo utilizador (mesmo `vendor_data`) são excluídas.

Cada entrada inclui `session_id`, `session_number`, `vendor_data`, `verification_date`, `user_details` (`name`, `document_type`, `document_number`), `status`, `is_blocklisted` (`true` quando o documento foi adicionado à sua lista de bloqueio), `api_service` e um `front_image_url` assinado.

## Valores de estado

| Estado | Significado | Efeito a jusante |
| - | - | - |
| `Approved` | Documento reconhecido, campos obrigatórios extraídos, todas as verificações foram aprovadas nos limiares configurados. | Conta como uma verificação de identificação bem-sucedida. |
| `In Review` | Um ou mais avisos foram acionados e o fluxo encaminha-os para revisão. | A sessão também passa para `In Review` até que um revisor intervenha. |
| `Declined` | Uma condição de recusa automática foi acionada (documento não suportado, documento expirado, fotografia em falta, correspondência na lista de bloqueio, falha na estimativa de idade adaptativa) ou um aviso configurado para Recusar foi acionado. | A sessão é recusada, a menos que outra ramificação aprovada satisfaça o fluxo. |
| `Expired` | A data de validade do documento passou **após** a aprovação. Definido pela monitorização contínua de documentos da Didit, que está ativa por predefinição (uma combinação de país e tipo de documento cujo **Modo de expiração** seja **Permitir expirados** está isenta), em conjunto com um aviso `DOCUMENT_EXPIRED`. | Uma sessão aprovada passa para `Kyc Expired`. |
| `Not Finished` | O utilizador abandonou o passo de captura. | A ramificação de identificação não produziu um resultado. |

## Documentos com múltiplos sistemas de escrita (latino / não latino)

Alguns documentos — quirguizes, cazaques, russos, japoneses, coreanos, chineses, árabes, tailandeses e outros — imprimem o nome, morada ou local de nascimento do titular **tanto** numa transliteração latina **como** no sistema de escrita local. Pode escolher qual o sistema de escrita que alimenta a resposta de nível superior com a definição do fluxo (ou da API autónoma) `preferred_characters`:

| Valor | Preenche os campos de nível superior com | O sistema de escrita oposto vai para |
| - | - | - |
| `latin` *(predefinição)* | A transliteração latina impressa no documento | `extra_fields.*_non_latin` |
| `non_latin` | Os valores no sistema de escrita local impressos no documento | `extra_fields.*_latin` |

Os valores no sistema de escrita alternativo residem dentro de `extra_fields` sob chaves com sufixo: `first_name_non_latin`, `last_name_non_latin`, `middle_name_non_latin`, `full_name_non_latin`, `address_non_latin`, `place_of_birth_non_latin` (ou as variantes `_latin` correspondentes).

### Quando surgem os campos no sistema de escrita alternativo

* **Apenas quando ambos os sistemas de escrita estão realmente presentes no documento.** Se um campo de OCR nominalmente etiquetado como "Surname-Kyrgyz (Cyrillic)" for extraído como texto em sistema de escrita latino (homóglifos ou uma transliteração latina), **não** é qualificado como uma alternativa não latina e essa chave é omitida.
* `full_name_non_latin` (e `full_name_latin`) são sempre **reconstruídos** a partir dos componentes individuais de nome próprio, nome do meio e apelido quando ambos estão disponíveis — o campo bruto "Full Name" do OCR é ignorado por consistência.
* Quando `preferred_characters=latin` mas o documento contém **apenas** texto não latino (fazendo com que os campos de nível superior fiquem num sistema de escrita não latino), a Didit executa um passo de transliteração e disponibiliza `first_name_latin`, `last_name_latin`, `middle_name_latin`, `full_name_latin`, `place_of_birth_latin` e `address_latin` como alternativa latina.

```json theme={null}
{
  "first_name": "John",
  "last_name": "Doe",
  "full_name": "John Doe",
  "extra_fields": {
    "first_name_non_latin": "Айна"
  }
}
```

`last_name_non_latin` está ausente porque o campo "Surname (Cyrillic)" do documento foi retornado como carateres latinos nesta amostra — não existia um apelido não latino genuíno para extrair.

## Exemplos

### Approved — cartão de identificação espanhol sem irregularidades (todos os campos)

```json theme={null}
{
  "id_verifications": [
    {
      "status": "Approved",
      "document_type": "Identity Card",
      "document_subtype": "ID_CARD_GENERIC",
      "document_number": "SAMPLE-DOC-12345",
      "personal_number": "SAMPLE-PER-12345",
      "portrait_image": "https://<media-host>/.../portrait.jpg?signature=...",
      "front_image": "https://<media-host>/.../front.jpg?signature=...",
      "front_video": "https://<media-host>/.../front.mp4?signature=...",
      "back_image": "https://<media-host>/.../back.jpg?signature=...",
      "back_video": "https://<media-host>/.../back.mp4?signature=...",
      "full_front_image": "https://<media-host>/.../full_front.jpg?signature=...",
      "full_back_image": "https://<media-host>/.../full_back.jpg?signature=...",
      "front_image_camera_front": null,
      "back_image_camera_front": null,
      "front_image_camera_front_face_match_score": null,
      "back_image_camera_front_face_match_score": null,
      "front_image_quality_score": {
        "focus_score": 85.3,
        "brightness_score": 92.1,
        "brightness_issue": "ok",
        "is_document_fully_visible": true,
        "resolution_score": 72.4,
        "overall_score": 84.6
      },
      "back_image_quality_score": {
        "focus_score": 79.1,
        "brightness_score": 90.5,
        "brightness_issue": "ok",
        "is_document_fully_visible": true,
        "resolution_score": 72.4,
        "overall_score": 81.5
      },
      "date_of_birth": "1990-01-01",
      "age": 35,
      "expiration_date": "2031-06-02",
      "date_of_issue": "2021-06-02",
      "issuing_state": "ESP",
      "issuing_state_name": "Spain",
      "first_name": "John",
      "last_name": "Doe",
      "full_name": "John Doe",
      "gender": "M",
      "address": "Avda de Madrid 34",
      "formatted_address": "Avda de Madrid 34, Madrid, Madrid 28822, Spain",
      "place_of_birth": "Madrid",
      "marital_status": "SINGLE",
      "nationality": "ESP",
      "extra_fields": {},
      "mrz": {
        "document_number": "SAMPLE-DOC-12345",
        "surname": "DOE",
        "name": "JOHN",
        "birth_date": "900101",
        "expiry_date": "310602"
      },
      "parsed_address": {
        "street_1": "Avda de Madrid 34",
        "street_2": null,
        "city": "Madrid",
        "region": "Madrid",
        "country": "ES",
        "postal_code": "28822",
        "address_type": "Avda",
        "formatted_address": "Avda de Madrid 34, Madrid, Madrid 28822, Spain",
        "document_location": { "latitude": 40.4168, "longitude": -3.7038 },
        "raw_results": {
          "geometry": {
            "location": { "lat": 40.4168, "lng": -3.7038 },
            "location_type": "ROOFTOP"
          }
        },
        "is_best_match": true
      },
      "extra_files": [],
      "warnings": [],
      "node_id": "id_primary",
      "matches": []
    }
  ]
}
```

### In Review — QR não detetado num documento que deveria ter um

Versão abreviada — uma resposta real inclui sempre o conjunto completo de campos apresentado acima.

```json theme={null}
{
  "id_verifications": [
    {
      "status": "In Review",
      "node_id": "id_primary",
      "document_type": "Identity Card",
      "document_subtype": "ID_CARD_GENERIC",
      "document_number": "SAMPLE-DOC-12345",
      "first_name": "John",
      "last_name": "Doe",
      "full_name": "John Doe",
      "warnings": [
        {
          "feature": "ID_VERIFICATION",
          "risk": "QR_NOT_DETECTED",
          "additional_data": null,
          "log_type": "warning",
          "short_description": "QR not detected",
          "long_description": "The system couldn't find or read the QR code on the document. This could be due to poor image quality or an unsupported document type.",
          "node_id": "id_primary"
        }
      ]
    }
  ]
}
```

## Nota de segurança

Os URLs assinados retornados para imagens e vídeos de documentos são temporários — expiram após uma janela de validade limitada. Trate-os como efémeros: transfira o que precisa prontamente e não os guarde em cache nem os exponha publicamente. Normalmente, a sua aplicação só precisa de `status`, de alguns campos biográficos e dos avisos — armazene o mínimo possível para minimizar a superfície de ataque em caso de uma futura violação.

## Relacionado

* [Avisos de verificação de identidade](https://docs.didit.me/pt/core-technology/id-verification/warnings-id-verification.md) — lista completa de avisos (enum), causas e remediação.
* [Monitorização de documentos](https://docs.didit.me/pt/core-technology/id-verification/document-monitoring-id-verification.md) — como a Didit monitoriza adulterações e duplicados entre sessões.
* [Documentos suportados](https://docs.didit.me/pt/core-technology/id-verification/supported-documents-id-verification.md) — quais os tipos de documento e países abrangidos.
* [Subtipos de documentos](https://docs.didit.me/pt/core-technology/id-verification/document-subtypes-id-verification.md) — lista completa de códigos de `document_subtype`, incluindo a deteção de cartas de condução comerciais versus normais nos EUA.
* [Webhooks](https://docs.didit.me/pt/integration/webhooks.md) — escute `session.status.updated` para receber o relatório.
* [Modelos de dados — Verificação de identidade](https://docs.didit.me/pt/reference/data-models.md#verificação-de-identidade) — esquema canónico com todos os campos.


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