---
title: Jornadas do Usuário
canonical: https://developer.unico.io/pt-BR/dual-api/developers/sdks-and-tools/flutter/capture-flow/capture-types/user-journeys
locale: pt-BR
generated_by: markdown-export
---

As Jornadas do Usuário são sessões de captura em múltiplas etapas orquestradas pelo SDK em conjunto com o fluxo configurado. Por exemplo, o fluxo `idchecktrustdocssign` executa selfie + documento + assinatura em uma única sessão.

:::secondary[Produtos]
As jornadas disponíveis dependem do fluxo configurado para a sua integração. Consulte [Produtos](/products) para o mapeamento completo de produto → fluxo → capacidade.
:::

## Como funciona

O plugin delega para os SDKs nativos subjacentes:

1. O plugin abre a câmera (Android ou iOS) com a sobreposição SmartFrame.
2. O SDK nativo orquestra a sequência de capturas necessárias para o fluxo (selfie, documento, assinatura).
3. O SDK encaminha internamente os resultados para a Unico — o cliente nunca recebe ou gerencia dados de imagem diretamente.
4. Retorna um objeto `SuccessResult` com um `processId` via platform channel.

A orquestração é tratada inteiramente pelo SDK — você não precisa implementar a sequência de etapas no seu código Dart.

## Modo de câmera (captura inteligente)

O SDK tem **enquadramento inteligente** e **captura automática** habilitados por padrão. Configure o modo de câmera no seu builder da seguinte forma:

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

## Iniciando uma Jornada do Usuário

****Passo 2** — Implemente os listeners da jornada no `UnicoSelfie`**

Adicione os callbacks da jornada à sua classe de estado:

  | Método | Descrição |
  |---|---|
  | `onSuccess(SuccessResult result)` | Captura realizada com sucesso — retorna `SuccessResult` com `processId` (a Unico processa a imagem internamente) |
  | `onErrorSelfie(UnicoError error)` | Captura falhou — retorna um `UnicoError` com código e descrição |

  :::warning[Sem dados de imagem]
  Ao contrário do fluxo Liveness, o callback da Jornada do Usuário **não** retorna `base64` ou `encrypted`. A Unico trata o processamento da imagem internamente e retorna apenas um `processId`.
  :::

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

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

****Passo 3** — Chame `openCameraSelfie`**

O método `openCameraSelfie` abre a câmera. Para Jornadas do Usuário, passe o `webAppToken` fornecido pela Unico em vez de um arquivo JSON de credenciais:

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

## Coleta de dados de monitoramento

O método `openCameraSelfie` fornece uma sobrecarga que aceita metadados via `UnicoCheckPrepareInfo` para auxiliar na identificação da sessão do usuário e do fluxo:

- `externalUserId` (String, **obrigatório**) — Identificador do usuário no seu sistema. Automaticamente submetido a hash SHA-256 antes da transmissão.
- `useCase` (String, opcional) — Identificador do contexto ou fluxo em execução. Transmitido em texto plano.

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

Para o tratamento completo do resultado, consulte [Recebendo o resultado](/developers/sdks-and-tools/flutter/capture-flow/receiving-the-result).