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

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, um fluxo com Prova de Vida + Score de Risco + Captura de Documentos + Assinatura Eletrônica executa selfie, captura de documento e 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 SDK:

1. Lê a configuração de fluxo fornecida durante a inicialização.
2. Orquestra a sequência de capturas necessárias para o fluxo (selfie, documento, assinatura).
3. Retorna um `processId` via `onSuccess` quando o journey é concluído. Para a etapa de selfie, os dados de imagem (`base64` / `encrypted`) também são retornados via `onSuccessSelfie`. As capturas de documento e assinatura são processadas internamente pelo SDK — nenhum artefato por etapa é exposto ao cliente.

A orquestração é gerenciada inteiramente pelo SDK — você não precisa implementar a sequência de etapas no seu app.

## Iniciando uma Jornada do Usuário

****Passo 2** — Implemente `iAcessoBioSelfie`**

`iAcessoBioSelfie` gerencia os callbacks de resultado da captura na jornada:

  | Método | Descrição |
  |---|---|
  | `onSuccessSelfie(result)` | Imagem capturada com sucesso — retorna `ResultCamera` para chamadas subsequentes à REST API |
  | `onSuccess(result)` | Journey concluído com sucesso — retorna `SuccessResult` com um `processId` usado para consultar os resultados da validação |
  | `onErrorSelfie(errorBio)` | Captura falhou — retorna um `ErrorBio` com os detalhes do erro |

  ### Kotlin

    ```kotlin
    val cameraListener: iAcessoBioSelfie = object : iAcessoBioSelfie {
      override fun onSuccessSelfie(result: ResultCamera?) { }
      override fun onSuccess(result: SuccessResult) { }
      override fun onErrorSelfie(errorBio: ErrorBio?) { }
    }
    ```

### Java

    ```java
    iAcessoBioSelfie cameraListener = new iAcessoBioSelfie() {
      @Override
      public void onSuccessSelfie(ResultCamera result) { }

      @Override
      public void onSuccess(SuccessResult result) { }

      @Override
      public void onErrorSelfie(ErrorBio errorBio) { }
    };
    ```

****Passo 3** — Chame `prepareCamera`**

Com `unicoCheckCamera` inicializado e ambos os listeners implementados, chame `prepareCamera` passando a configuração do SDK, um `CameraListener` e seu `webAppToken`:

  :::note[webAppToken]
  O `webAppToken` é o campo `process.webAppToken` retornado por `POST /client/v1/process` ao criar o processo no seu backend. Consulte [Criar Processo](/dual-api/developers/api-reference/web-sdk/post-process).
  :::

  - `onCameraReady` — câmera pronta; chame `open` passando o `cameraListener` e seu `webAppToken`.
  - `onCameraFailed` — preparação da câmera falhou; trate a mensagem de erro.

  ### Kotlin

    ```kotlin
    unicoCheckCamera.prepareCamera(unicoConfig, object : CameraListener {
      override fun onCameraReady(cameraOpener: UnicoCheckCameraOpener.Camera?) {
        cameraOpener?.open(cameraListener, "your_web_app_token")
      }

      override fun onCameraFailed(message: String?) {
        Log.e(TAG, message)
      }
    })
    ```

### Java

    ```java
    unicoCheckCamera.prepareCamera(unicoConfig, new CameraListener() {
      @Override
      public void onCameraReady(UnicoCheckCameraOpener.Camera cameraOpener) {
        cameraOpener.open(cameraListener, "your_web_app_token");
      }

      @Override
      public void onCameraFailed(String message) {
        Log.e(TAG, message);
      }
    });
    ```

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