---
title: Parcours utilisateur
canonical: https://developer.unico.io/fr/dual-api/developers/sdks-and-tools/flutter/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 conjointement avec le flux configuré. Par exemple, le flux `idchecktrustdocssign` exécute selfie + document + signature en une seule session.

:::secondary[Produits]
Les parcours disponibles dépendent du flux configuré pour votre intégration. Consultez [Produits](/products) pour le mappage complet produit → flux → 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 orchestre la séquence de captures requises pour le flux (selfie, document, signature).
3. Le SDK transmet les résultats à Unico en interne — le client ne reçoit ni ne gère les données d'image directement.
4. Retourne un objet `SuccessResult` avec un `processId` via le canal de plateforme.

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

## 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 = new UnicoCheck(this)
    .setAutoCapture(autoCapture: true)
    .setSmartFrame(smartFrame: true)
    .build();
```

## Démarrer un parcours utilisateur

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

Ajoutez les callbacks de parcours à votre classe d'état :

  | Méthode | Description |
  |---|---|
  | `onSuccess(SuccessResult result)` | Capture réussie — retourne `SuccessResult` avec `processId` (Unico traite l'image en interne) |
  | `onErrorSelfie(UnicoError error)` | Capture échouée — retourne un `UnicoError` avec le code et la description |

  :::warning[Aucune donnée d'image]
  Contrairement au flux Liveness, le callback User Journey ne retourne **pas** de `base64` ni d'`encrypted`. Unico gère le traitement de l'image en interne et retourne uniquement un `processId`.
  :::

  ```dart
  @override
  void onSuccess(SuccessResult result) {
    debugPrint('processId: ${result.processId}');
  }

  @override
  void onErrorSelfie(UnicoError error) { }
  ```

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

La méthode `openCameraSelfie` ouvre la caméra. Pour les parcours utilisateur, passez le `webAppToken` fourni par Unico au lieu d'un fichier JSON d'identifiants :

  ```dart
  _opener.openCameraSelfie(
    listener: this,
    webAppToken: token,
  );
  ```

## 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,
  webAppToken: token,
  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).