---
title: Liveness (selfie biométrique)
description: Capture de selfie biométrique avec vérification liveness intégrée, renvoyant l'image capturée en Base64 et JWT.
canonical: https://developer.unico.io/fr/dual-api/developers/sdks-and-tools/ios/capture-flow/capture-types/liveness
locale: fr
generated_by: markdown-export
---

Capture de selfie biométrique avec vérification liveness 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 une présentation conceptuelle du fonctionnement de Liveness, consultez la page de la capacité Liveness.
:::

## Fonctionnement

Le SDK gère l'intégralité de la session de capture :

1. Ouvre la caméra avec la superposition SmartFrame.
2. Guide l'utilisateur pour positionner son visage dans le cadre.
3. Valide le liveness — la session ne se termine que lorsque l'utilisateur est physiquement présent.
4. Retourne un objet `SelfieResult` (alias `ResultCamera`) avec `base64` et `encrypted` (JWT).

## Mode caméra (capture intelligente)

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

### Swift

  ```swift
  unicoCheck.setSmartFrame(true)
  unicoCheck.setAutoCapture(true)
  ```

### Objective-C

  ```objectivec
  [unicoCheck setSmartFrame:true];
  [unicoCheck setAutoCapture:true];
  ```

## Démarrer une capture liveness

****Étape 2** — Implémenter `SelfieCameraDelegate` et `AcessoBioSelfieDelegate`**

Ces délégués gèrent les callbacks de résultat de la capture selfie :

  | Méthode | Description |
  |---|---|
  | `onSuccessSelfie(result)` | Capture réussie — retourne `SelfieResult` avec `base64` (aperçu) et `encrypted` (JWT pour l'API) |
  | `onErrorSelfie(errorBio)` | Capture échouée — retourne un `ErrorBio` 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**.
  :::

  ### Swift

    ```swift
    class ViewController: UIViewController, AcessoBioManagerDelegate,
      SelfieCameraDelegate, AcessoBioSelfieDelegate {

      func onSuccessSelfie(_ result: SelfieResult!) { }
      func onErrorSelfie(_ errorBio: ErrorBio!) { }
    }
    ```

### Objective-C

    ```objectivec
    // .h
    @interface ViewController: UIViewController <AcessoBioManagerDelegate,
      SelfieCameraDelegate, AcessoBioSelfieDelegate> {
      AcessoBioManager *unicoCheck;
    }

    // .m
    - (void)onSuccessSelfie:(SelfieResult *)result {
        NSLog(@"%@", result.base64);
    }

    - (void)onErrorSelfie:(ErrorBio *)errorBio { }
    ```

****Étape 3** — Appeler `prepareSelfieCamera` et `open`**

Appelez `prepareSelfieCamera` en passant la configuration SDK. Lorsque la caméra est prête, l'événement `onCameraReady` est déclenché avec un `AcessoBioCameraOpenerDelegate` — ouvrez la caméra via la méthode `open()` :

  - `onCameraReady(cameraOpener)` — la caméra est prête ; appelez `open(self)`.
  - `onCameraFailed(message)` — la préparation de la caméra a échoué (`ErrorPrepare` est une extension de `ErrorBio`).

  ### Swift

    ```swift
    @IBAction func openCamera(_ sender: Any) {
      unicoCheck.build().prepareSelfieCamera(self, config: YourUnicoConfigClass())
    }

    func onCameraReady(_ cameraOpener: AcessoBioCameraOpenerDelegate!) {
      cameraOpener.open(self)
    }

    func onCameraFailed(_ message: ErrorPrepare!) { }
    ```

### Objective-C

    ```objectivec
    - (IBAction)openCamera:(UIButton *)sender {
        [[unicoCheck build] prepareSelfieCamera:self config:[YourUnicoConfigClass new]];
    }

    - (void)onCameraReady:(id)cameraOpener {
        [cameraOpener open:self];
    }

    - (void)onCameraFailed:(ErrorPrepare *)message { }
    ```

Pour le traitement complet du résultat, consultez [Réception du résultat](/developers/sdks-and-tools/ios/capture-flow/receiving-the-result).