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

Capture de selfie biométrique avec vérification de vivacité intégrée. Le SDK guide l'utilisateur jusqu'à l'obtention d'une image biométriquement valide via SmartFrames et retourne l'image en Base64 + JWT.

:::secondary[Capacité]
Ce type de capture utilise la capacité **Liveness**. Pour un aperçu conceptuel du fonctionnement de Liveness, consultez la page dédiée à cette capacité.
:::

## Fonctionnement

Le plugin délègue aux SDK natifs sous-jacents :

1. Le plugin ouvre la caméra (Android ou iOS) avec la superposition SmartFrame.
2. Le SDK natif guide l'utilisateur pour positionner son visage dans le cadre.
3. Valide la vivacité — la session ne se termine que lorsque l'utilisateur est physiquement présent.
4. Retourne un objet `ResultCamera` avec `base64` et `encrypted` (JWT) via le canal de plateforme.

## Mode caméra (capture intelligente)

Le SDK a le **cadrage intelligent** et la **capture automatique** activés par défaut. Configurez le mode caméra dans votre builder comme suit :

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

## Démarrer une capture liveness

****Étape 2** — Implémenter les listeners selfie sur `UnicoSelfie`**

Ajoutez les callbacks selfie à votre classe d'état :

  | Méthode | Description |
  |---|---|
  | `onSuccessSelfie(ResultCamera result)` | Capture réussie — retourne `ResultCamera` avec `base64` (aperçu) et `encrypted` (JWT pour l'API) |
  | `onErrorSelfie(UnicoError error)` | Capture échouée — retourne un `UnicoError` avec le code et la description |

  :::warning[Expiration du token]
  L'intervalle entre la génération de `encrypted` et son envoi à l'API ne doit pas dépasser **10 minutes**.
  :::

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

    @override
    void onSuccessSelfie(ResultCamera result) { }

    @override
    void onErrorSelfie(UnicoError error) { }

  }
  ```

****Étape 3** — Appeler `openCameraSelfie`**

La méthode `openCameraSelfie` ouvre la caméra. Elle prend l'implémentation du listener `UnicoSelfie` :

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

## Collecte de données de surveillance

La méthode `openCameraSelfie` fournit une surcharge qui accepte des métadonnées via `UnicoCheckPrepareInfo` pour aider à identifier la session utilisateur et le flux :

- `externalUserId` (String, **obligatoire**) — Identifiant de l'utilisateur dans votre système. Automatiquement haché en SHA-256 avant transmission.
- `useCase` (String, optionnel) — Identifiant du contexte ou du flux en cours d'exécution. Transmis en clair.

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

Pour la gestion complète du résultat, consultez [Réception du résultat](/developers/sdks-and-tools/flutter/capture-flow/receiving-the-result).