---
title: Liveness (selfie biométrica)
canonical: https://developer.unico.io/pt-BR/dual-api/developers/sdks-and-tools/android/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 como Base64 + JWT (JSON Web Token — um payload assinado enviado ao seu backend para chamar a API REST).

:::secondary[Capability]
Este tipo de captura usa a capability de **Liveness**. Para uma visão conceitual de como o Liveness funciona, consulte a [página da capability Liveness](/capabilities/liveness).
:::

## Como funciona

O SDK gerencia a sessão de captura completa:

1. Abre a câmera com a sobreposição SmartFrame.
2. 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).

## Iniciando uma captura de liveness

****Passo 2** — Implementar `iAcessoBioSelfie`**

`iAcessoBioSelfie` trata os callbacks de resultado da captura de selfie:

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

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

  ### Kotlin

    ```kotlin
    val selfieListener = object : iAcessoBioSelfie {
      override fun onSuccessSelfie(result: ResultCamera?) { }
      override fun onErrorSelfie(errorBio: ErrorBio?) { }
    }
    ```

### Java

    ```java
    iAcessoBioSelfie selfieListener = new iAcessoBioSelfie() {
      @Override
      public void onSuccessSelfie(ResultCamera result) { }

      @Override
      public void onErrorSelfie(ErrorBio errorBio) { }
    };
    ```

****Passo 3** — Chamar `prepareCamera`**

Com `unicoCheckCamera` inicializado e ambos os listeners implementados, chame `prepareCamera` passando a configuração do SDK (o `UnicoConfig` criado em [Inicialização](/developers/sdks-and-tools/android/initialization)) e um `SelfieCameraListener`:

  - `onCameraReady` — câmera pronta; chame `open` passando o `selfieListener` do Passo 2.
  - `onCameraFailed` — preparação da câmera falhou; trate a mensagem de erro.

  ### Kotlin

    ```kotlin
    unicoCheckCamera
      .prepareCamera(UnicoConfig(), object : SelfieCameraListener {
        override fun onCameraReady(cameraOpener: UnicoCheckCameraOpener.Selfie?) {
          cameraOpener?.open(selfieListener)
        }
        override fun onCameraFailed(message: String?) { }
      })
    ```

### Java

    ```java
    unicoCheckCamera
      .prepareCamera(new UnicoConfig(), new SelfieCameraListener() {
        @Override
        public void onCameraReady(UnicoCheckCameraOpener.Selfie cameraOpener) {
          cameraOpener.open(selfieListener);
        }

        @Override
        public void onCameraFailed(String message) { }
      });
    ```

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