---
title: Recorridos de usuario
canonical: https://developer.unico.io/es/dual-api/developers/sdks-and-tools/flutter/capture-flow/capture-types/user-journeys
locale: es
generated_by: markdown-export
---

Los User Journeys son sesiones de captura de múltiples pasos orquestadas por el SDK en conjunto con el flujo configurado. Por ejemplo, el flujo `idchecktrustdocssign` ejecuta selfie + documento + firma en una sola sesión.

:::secondary[Productos]
Los journeys disponibles dependen del flujo configurado para su integración. Consulte [Productos](/products) para ver el mapeo completo de producto → flujo → capacidad.
:::

## Cómo funciona

El plugin delega a los SDKs nativos subyacentes:

1. El plugin abre la cámara (Android o iOS) con la superposición SmartFrame.
2. El SDK nativo orquesta la secuencia de capturas requeridas por el flujo (selfie, documento, firma).
3. El SDK reenvía los resultados internamente a Unico — el cliente nunca recibe ni gestiona los datos de imagen directamente.
4. Devuelve un objeto `SuccessResult` con un `processId` a través del canal de plataforma.

La orquestación es gestionada completamente por el SDK — no es necesario implementar la secuencia de pasos en su código Dart.

## Modo de cámara (captura inteligente)

El SDK tiene **encuadre inteligente** y **captura automática** habilitados por defecto. Configure el modo de cámara en su builder de la siguiente manera:

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

## Iniciar un User Journey

****Paso 2** — Implementar los listeners del journey en `UnicoSelfie`**

Agregue los callbacks del journey a su clase de estado:

  | Método | Descripción |
  |---|---|
  | `onSuccess(SuccessResult result)` | Captura exitosa — devuelve `SuccessResult` con `processId` (Unico procesa la imagen internamente) |
  | `onErrorSelfie(UnicoError error)` | Captura fallida — devuelve un `UnicoError` con código y descripción |

  :::warning[Sin datos de imagen]
  A diferencia del flujo Liveness, el callback de User Journey **no** devuelve `base64` ni `encrypted`. Unico gestiona el procesamiento de imagen internamente y devuelve únicamente un `processId`.
  :::

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

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

****Paso 3** — Llamar a `openCameraSelfie`**

El método `openCameraSelfie` abre la cámara. Para los User Journeys, pase el `webAppToken` proporcionado por Unico en lugar de un archivo JSON de credenciales:

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

## Recopilación de datos de monitoreo

El método `openCameraSelfie` proporciona una sobrecarga que acepta metadatos a través de `UnicoCheckPrepareInfo` para ayudar a identificar la sesión del usuario y el flujo:

- `externalUserId` (String, **requerido**) — Identificador del usuario dentro de su sistema. Se hashea automáticamente con SHA-256 antes de la transmisión.
- `useCase` (String, opcional) — Identificador del contexto o flujo que se está ejecutando actualmente. Se transmite en texto plano.

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

Para el manejo completo del resultado, consulte [Recibir el resultado](/developers/sdks-and-tools/flutter/capture-flow/receiving-the-result).