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

# Relatório de autenticação biométrica: esquema JSON

> Analise respostas de autenticação biométrica da Didit: liveness e comparação facial opcional com retrato salvo em liveness_checks e face_matches.

O relatório de Autenticação biométrica é a forma como a Didit informa o resultado da reverificação de um usuário recorrente. O fluxo de verificação (workflow) executa uma nova verificação de prova de vida e, quando a Correspondência facial está habilitada no fluxo, uma correspondência facial 1:1 com o rosto de referência definido na criação da sessão (a `portrait_image` que você enviou, ou o rosto armazenado do usuário, recuperado usando `vendor_data`). As duas verificações aparecem como itens padrão de recursos na resposta de decisão da sessão V3.

![Relatório de autenticação biométrica da Didit combinando verificação de prova de vida e correspondência facial com um retrato armazenado](https://mintcdn.com/didit-0f962782/z6T2GHM4Zh-iSj-K/images/biometric-auth-report.png?fit=max\&auto=format\&n=z6T2GHM4Zh-iSj-K\&q=85\&s=c02e5558780972797d4b2feea685bc73)

## Visão geral

A Autenticação biométrica é um tipo de fluxo (`workflow_type: "biometric_authentication"`), não um objeto de resposta separado. Quando o fluxo é executado, ele gera:

* Uma **verificação de prova de vida**, que captura uma selfie ao vivo e atribui a ela uma pontuação de spoofing.
* Uma **correspondência facial**, que compara o rosto capturado com o rosto de referência definido na criação da sessão (somente quando a Correspondência facial está habilitada no fluxo).

Sempre que o fluxo inclui a Correspondência facial, a criação da sessão exige um rosto de referência. Envie `portrait_image` (imagem codificada em base64, no máximo 2MB) ou omita esse campo, e a Didit reutiliza o rosto já armazenado para o usuário associado a `vendor_data`: primeiro um rosto obtido em uma prova de vida aprovada, depois a foto do chip do passaporte eletrônico, depois o retrato do documento de identidade e, por fim, um rosto de perfil cadastrado manualmente. Se não houver `portrait_image` nem rosto armazenado, a criação da sessão retorna `400` com `{"portrait_image": "No stored face image was found for this user. Send a portrait_image, or complete an approved verification with face liveness or an ID document for this vendor_data first."}`. Nos dois casos, a referência definida é registrada na nova sessão, então o `source_image_session_id` do item de correspondência facial recebe o próprio `session_id` dessa sessão (isso indica que a referência veio do retrato armazenado da sessão, e não de um retrato de documento capturado na mesma sessão, caso em que o campo ficaria `null`).

## Onde aparece

| Chave da resposta de decisão | Plural | Schema do item |
| - | - | - |
| `liveness_checks[]` | Um por etapa de prova de vida (normalmente 1 na autenticação biométrica) | [data-models#liveness-check](https://docs.didit.me/pt-br/reference/data-models.md#verificação-de-prova-de-vida) |
| `face_matches[]` | Um por etapa de correspondência facial (`null` em fluxos somente de prova de vida) | [data-models#face-match](https://docs.didit.me/pt-br/reference/data-models.md#correspondência-facial) |

Os dois arrays são retornados por [`GET /v3/session/{sessionId}/decision/`](https://docs.didit.me/pt-br/sessions-api/retrieve-session) para sessões cujo tipo de fluxo é `biometric_authentication`. Eles são sempre arrays, nunca objetos únicos, e cada item fica `null` até que sua etapa tenha produzido dados. Cada item traz um `node_id` para que fluxos com várias instâncias possam distinguir as etapas.

## Referência de schema

A lista completa de campos é definida uma única vez na página de modelos de dados, para que todos os relatórios que exibem esses recursos tenham uma única fonte da verdade:

* [Schema do item de prova de vida](https://docs.didit.me/pt-br/reference/data-models.md#verificação-de-prova-de-vida): `status`, `method`, `score`, `reference_image`, `video_url`, `age_estimation`, `matches[]`, `face_quality`, `face_luminance`, `warnings[]`, `node_id`.
* [Schema do item de correspondência facial](https://docs.didit.me/pt-br/reference/data-models.md#correspondência-facial): `status`, `score`, `source_image_session_id`, `source_image`, `target_image`, `warnings[]`, `node_id`.
* [Formato da entrada de aviso](https://docs.didit.me/pt-br/reference/data-models.md#objeto-de-aviso): `feature`, `risk`, `additional_data`, `log_type`, `short_description`, `long_description`, `node_id`.

## Valores de status

Tanto `liveness_checks[].status` quanto `face_matches[].status` usam o ciclo de vida compartilhado dos recursos ([status no nível do recurso](https://docs.didit.me/pt-br/reference/data-models.md#status-no-nível-do-recurso)):

| Status | Significado |
| - | - |
| `Not Finished` | A etapa ainda não produziu um resultado final (o usuário não a concluiu ou a abandonou). Antes de a etapa começar, seu array simplesmente fica `null` na resposta de decisão. |
| `Approved` | A verificação passou em todos os limiares configurados. |
| `In Review` | A pontuação ficou na faixa de revisão, ou um aviso configurável foi definido para revisão. |
| `Declined` | A pontuação ficou igual ou abaixo do limiar de recusa, ou foi disparado um aviso de recusa automática (ataque facial, nenhum rosto detectado, rosto na lista de bloqueio, nenhuma imagem de referência para a correspondência facial). |
| `Resub Requested` | Um revisor pediu que o usuário refizesse esta etapa. |

O `status` geral da sessão agrega os dois itens: qualquer recurso em `Declined` recusa a sessão, qualquer recurso em `In Review` coloca a sessão em `In Review` e, caso contrário, ela fica `Approved` (depois que todos os recursos terminam).

Para o comportamento dos limiares e a lista completa de códigos de aviso, consulte [Avisos da Autenticação biométrica](https://docs.didit.me/pt-br/core-technology/biometric-auth/warnings-biometric-authentication.md).

## Exemplo — prova de vida + correspondência facial (aprovado)

Os exemplos estão resumidos: o envelope de decisão completo também inclui `session_url`, `metadata`, `callback`, `reviews`, `contact_details`, `expected_details`, `environment`, `created_at` e `expires_at`.

```json theme={null}
{
  "session_id": "11111111-2222-3333-4444-555555555555",
  "session_kind": "user",
  "session_number": 1234,
  "status": "Approved",
  "workflow_id": "018e7b2c-5555-7777-9999-aaaaaaaaaaaa",
  "features": ["LIVENESS", "FACE_MATCH"],
  "vendor_data": "user-123",
  "liveness_checks": [
    {
      "node_id": "feature_liveness",
      "status": "Approved",
      "method": "PASSIVE",
      "score": 89.92,
      "reference_image": "https://<media-host>/.../reference.jpg",
      "video_url": "https://<media-host>/.../video.mp4",
      "age_estimation": null,
      "matches": [],
      "face_quality": 92.4,
      "face_luminance": 58.1,
      "warnings": []
    }
  ],
  "face_matches": [
    {
      "node_id": "feature_face_match",
      "status": "Approved",
      "score": 88.47,
      "source_image_session_id": "11111111-2222-3333-4444-555555555555",
      "source_image": "https://<media-host>/.../source.jpg",
      "target_image": "https://<media-host>/.../target.jpg",
      "warnings": []
    }
  ],
  "id_verifications": null,
  "nfc_verifications": null,
  "poa_verifications": null,
  "phone_verifications": null,
  "email_verifications": null,
  "aml_screenings": null
}
```

## Exemplo — somente prova de vida (Correspondência facial desabilitada no fluxo)

```json theme={null}
{
  "session_id": "22222222-3333-4444-5555-666666666666",
  "session_kind": "user",
  "status": "Approved",
  "workflow_id": "018e7b2c-6666-7777-9999-bbbbbbbbbbbb",
  "features": ["LIVENESS"],
  "vendor_data": "user-456",
  "liveness_checks": [
    {
      "node_id": "feature_liveness",
      "status": "Approved",
      "method": "ACTIVE_3D",
      "score": 96.10,
      "reference_image": "https://<media-host>/.../reference.jpg",
      "video_url": "https://<media-host>/.../video.mp4",
      "age_estimation": null,
      "matches": [],
      "face_quality": null,
      "face_luminance": null,
      "warnings": []
    }
  ],
  "face_matches": null
}
```

O modo somente de prova de vida é uma configuração do fluxo: quando a Correspondência facial está desabilitada, nenhum rosto de referência é necessário na criação da sessão e `face_matches` permanece `null`. Quando a correspondência facial **é** habilitada, omitir `portrait_image` não faz o fluxo passar para o modo somente de prova de vida: a Didit reutiliza o rosto armazenado para o usuário associado a `vendor_data` e, se não houver rosto armazenado, a criação da sessão falha com `400`.

## Exemplo — correspondência facial recusada por baixa similaridade

```json theme={null}
{
  "session_id": "33333333-4444-5555-6666-777777777777",
  "status": "Declined",
  "workflow_id": "018e7b2c-5555-7777-9999-aaaaaaaaaaaa",
  "liveness_checks": [
    {
      "node_id": "feature_liveness",
      "status": "Approved",
      "method": "PASSIVE",
      "score": 91.20,
      "reference_image": "https://<media-host>/.../reference.jpg",
      "video_url": "https://<media-host>/.../video.mp4",
      "age_estimation": null,
      "matches": [],
      "face_quality": 90.15,
      "face_luminance": 55.30,
      "warnings": []
    }
  ],
  "face_matches": [
    {
      "node_id": "feature_face_match",
      "status": "Declined",
      "score": 41.18,
      "source_image_session_id": "33333333-4444-5555-6666-777777777777",
      "source_image": "https://<media-host>/.../source.jpg",
      "target_image": "https://<media-host>/.../target.jpg",
      "warnings": [
        {
          "feature": "FACEMATCH",
          "risk": "LOW_FACE_MATCH_SIMILARITY",
          "additional_data": null,
          "log_type": "error",
          "short_description": "Low face match similarity",
          "long_description": "The facial features of the provided image don't closely match the reference image, suggesting a potential identity mismatch.",
          "node_id": "feature_face_match"
        }
      ]
    }
  ]
}
```

## Nota de segurança

`reference_image`, `video_url`, `source_image` e `target_image` são URLs assinadas que expiram após um período de validade limitado (4 horas por padrão). Elas apontam para dados biométricos: não as armazene em cache nem as exponha publicamente. Guarde o resultado da verificação (status, pontuação, `source_image_session_id`) do seu lado e consulte novamente o endpoint de decisão se precisar de URLs novas.

## Relacionados

> [card] [Avisos de autenticação biométrica](https://docs.didit.me/pt-br/core-technology/biometric-auth/warnings-biometric-authentication.md)
>
> Códigos de aviso, limiares e condições de recusa automática.

> [card] [Relatório de prova de vida](https://docs.didit.me/pt-br/core-technology/liveness/report-liveness.md)
>
> Referência completa dos campos dos itens em `liveness_checks[]`.

> [card] [Relatório de correspondência facial](https://docs.didit.me/pt-br/core-technology/face-match/report-face-match.md)
>
> Referência completa dos campos dos itens em `face_matches[]`.


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