---
title: Liveness (selfie biométrica)
canonical: https://developer.unico.io/pt-BR/dual-api/developers/sdks-and-tools/flutter/capture-flow/capture-types/liveness
locale: pt-BR
generated_by: markdown-export
---

Captura de selfie biométrica com verificação de liveness integrada. O SDK guia o usuário até que um frame biometricamente válido seja obtido via SmartFrames e retorna a imagem em Base64 + JWT.

:::secondary[Capacidade]
Este tipo de captura usa a capacidade de **Liveness**. Para uma visão conceitual de como o Liveness funciona, consulte a página da capacidade Liveness.
:::

## Como funciona

O plugin delega para os SDKs nativos subjacentes:

1. O plugin abre a câmera (Android ou iOS) com o overlay SmartFrame.
2. O SDK nativo guia o usuário para posicionar o rosto dentro do frame.
3. Valida o liveness — a sessão só é concluída quando o usuário está fisicamente presente.
4. Retorna um objeto `ResultCamera` com `base64` e `encrypted` (JWT) via o canal da plataforma.

## Modo de câmera (captura inteligente)

O SDK tem **enquadramento inteligente** e **captura automática** habilitados por padrão. Configure o modo de câmera no seu builder da seguinte forma:

```dart
UnicoCheckCameraOpener _opener = _unicoCheck
    .setAutoCapture(autoCapture: true)
    .setSmartFrame(smartFrame: true)
    .build();
```

## Iniciando uma captura de liveness

****Passo 2** — Implementar os listeners de selfie no `UnicoSelfie`**

Adicione os callbacks de selfie à sua classe de estado:

  | Método | Descrição |
  |---|---|
  | `onSuccessSelfie(ResultCamera result)` | Captura realizada com sucesso — retorna `ResultCamera` com `base64` (prévia) e `encrypted` (JWT para a API) |
  | `onErrorSelfie(UnicoError error)` | Captura falhou — retorna um `UnicoError` com código e descrição |

  :::warning[Expiração do token]
  O intervalo entre a geração do `encrypted` e o seu envio para a API não deve exceder **10 minutos**.
  :::

  ```dart
  class _MyHomePageState extends State<MyHomePage>
      implements UnicoSelfie {

    @override
    void onSuccessSelfie(ResultCamera result) { }

    @override
    void onErrorSelfie(UnicoError error) { }

  }
  ```

****Passo 3** — Chamar `openCameraSelfie`**

O método `openCameraSelfie` abre a câmera. Ele recebe a implementação do listener `UnicoSelfie`:

  ```dart
  _opener.openCameraSelfie(listener: this);
  ```

## Coleta de dados de monitoramento

O método `openCameraSelfie` oferece uma sobrecarga que aceita metadados via `UnicoCheckPrepareInfo` para auxiliar na identificação da sessão do usuário e do fluxo:

- `externalUserId` (String, **obrigatório**) — Identificador do usuário no seu sistema. Automaticamente hasheado com SHA-256 antes da transmissão.
- `useCase` (String, opcional) — Identificador do contexto ou fluxo em execução. Transmitido em texto simples.

```dart
_opener.openCameraSelfie(
  listener: this,
  prepareInfo: UnicoCheckPrepareInfo(
    externalUserId: 'external_user_id',
    useCase: 'use_case', // opcional
  ),
);
```

Para o tratamento completo do resultado, consulte [Recebendo o resultado](/developers/sdks-and-tools/flutter/capture-flow/receiving-the-result).