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

Captura de selfie biométrica con verificación de liveness incorporada. El SDK guía al usuario hasta obtener un fotograma biométricamente válido mediante SmartFrames y devuelve la imagen como Base64 + JWT (JSON Web Token — un payload firmado que se envía a tu backend para llamar a la API REST).

:::secondary[Capability]
Este tipo de captura utiliza la capability **Liveness**. Para una descripción conceptual del funcionamiento de Liveness, consulta la [página de la capability Liveness](/capabilities/liveness).
:::

## Cómo funciona

El SDK gestiona la sesión de captura completa:

1. Abre la cámara con la superposición SmartFrame.
2. Guía al usuario para que posicione su rostro dentro del marco.
3. Valida el liveness — la sesión solo se completa cuando el usuario está físicamente presente.
4. Devuelve un objeto `ResultCamera` con `base64` y `encrypted` (JWT).

## Iniciar una captura de liveness

****Paso 2** — Implementar `iAcessoBioSelfie`**

`iAcessoBioSelfie` gestiona los callbacks del resultado de captura de selfie:

  | Método | Descripción |
  |---|---|
  | `onSuccessSelfie(result)` | Captura exitosa — devuelve `ResultCamera` con `base64` (vista previa) y `encrypted` (JWT para la API) |
  | `onErrorSelfie(errorBio)` | Captura fallida — devuelve un `ErrorBio` con código y descripción |

  :::warning[Expiración del token]
  El intervalo entre la generación de `encrypted` y su envío a la API no debe superar los **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) { }
    };
    ```

****Paso 3** — Llamar a `prepareCamera`**

Con `unicoCheckCamera` inicializado y ambos listeners implementados, llama a `prepareCamera` pasando la configuración del SDK (el `UnicoConfig` creado en [Inicialización](/developers/sdks-and-tools/android/initialization)) y un `SelfieCameraListener`:

  - `onCameraReady` — la cámara está lista; llama a `open` pasando el `selfieListener` del Paso 2.
  - `onCameraFailed` — la preparación de la cámara falló; gestiona el mensaje de error.

  ### 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 el manejo completo del resultado, consulta [Recibir el resultado](/developers/sdks-and-tools/android/capture-flow/receiving-the-result).