---
title: Parcours utilisateur
canonical: https://developer.unico.io/fr/dual-api/developers/sdks-and-tools/ios/capture-flow/capture-types/user-journeys
locale: fr
generated_by: markdown-export
---

Les parcours utilisateur sont des sessions de capture multi-étapes orchestrées par le SDK en conjonction avec le flux configuré. Par exemple, un flux avec Détection de Vie + Score de Risque + Capture de document + Signature électronique exécute le selfie, la capture de document et la signature en une seule session.

:::secondary[Produits]
Les parcours disponibles dépendent du flux configuré pour votre intégration. Consultez les [Produits](/products) pour la correspondance complète produit → flux → capacité.
:::

## Fonctionnement

Le SDK :

1. Lit la configuration du flux fournie lors de l'initialisation.
2. Orchestre la séquence des captures requises pour le flux (selfie, document, signature).
3. Retourne un `processId` via `onSuccess` lorsque le journey se termine. Pour l'étape selfie, les données d'image (`base64` / `encrypted`) sont également retournées via `onSuccessSelfie`. Les captures de documents et de signature sont traitées en interne par le SDK — aucun artefact par étape n'est exposé au client.

L'orchestration est entièrement gérée par le SDK — vous n'avez pas besoin d'implémenter la séquence des étapes dans votre application.

## Démarrer un parcours utilisateur

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

Redéfinissez les méthodes pour gérer les callbacks du résultat de capture du parcours :

  | Méthode | Description |
  |---|---|
  | `onSuccessSelfie(result)` | Image capturée avec succès — retourne `SelfieResult` pour les appels REST API ultérieurs |
  | `onSuccess(result)` | Journey terminé avec succès — retourne un `processId` utilisé pour consulter les résultats de validation |
  | `onErrorSelfie(errorBio)` | Capture échouée — retourne un `ErrorBio` avec les détails de l'erreur |

  ### Swift

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

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

### Objective-C

    ```objectivec
    @interface ViewController: UIViewController <AcessoBioManagerDelegate,
      SelfieCameraDelegate, AcessoBioSelfieDelegate>
    @end

    @implementation ViewController
    - (void)onSuccessSelfie:(SelfieResult *)result { }
    - (void)onSuccess:(SuccessResult *)result { }
    - (void)onErrorSelfie:(ErrorBio *)errorBio { }
    @end
    ```

****É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é — ouvrez la caméra via la méthode `open()`, en passant le `webAppToken` :

  :::info[webAppToken]
  Le `webAppToken` est le champ `process.webAppToken` retourné par `POST /client/v1/process` lors de la création du processus sur votre backend. Voir [Créer un processus](/dual-api/developers/api-reference/web-sdk/post-process).
  :::

  - `onCameraReady(cameraOpener)` — la caméra est prête ; appelez `open(self, webAppToken:)`.
  - `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, webAppToken: "your_web_app_token")
    }

    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 webAppToken:@"your_web_app_token"];
    }

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

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