> For the complete documentation index, see [llms.txt](https://docs.caf.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.caf.io/caf-docs/caf-product-guides-pt-br/guias-de-inicio-rapido/onboardings-integration/events.md).

# Eventos

#### Códigos de Eventos do Onboarding

Aqui está a tabela com as descrições:

| EVENTO                           | DESCRIÇÃO                                                                                                                                         | DETALHE                                                                              |
| -------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------ |
| **STEP\_STARTED**                | Evento geral para cada início de etapa do fluxo de onboarding. (DETALHE GENÉRICO)                                                                 | `{ "stepName":"INSTRUCTIONS", "stepIndex":0 }`                                       |
| **STEP\_COMPLETED**              | Evento geral acionado quando a etapa termina. (DETALHE GENÉRICO)                                                                                  | `{ "stepName":"INSTRUCTIONS", "stepIndex":0 }`                                       |
| **GET\_CAMERA\_PERMISSIONS**     | O usuário clicou no botão para permitir o acesso à câmera, mas ainda não concedeu permissão.                                                      | `{}`                                                                                 |
| **SDK\_CAMERA\_DENIED**          | O usuário negou o acesso à câmera, impedindo o progresso até que as permissões sejam concedidas.                                                  | `{ "StepName":"LIVENESS_IPROOV" }`                                                   |
| **LIVENESS\_CAPTURE**            | O usuário clicou no botão para iniciar a captura de detecção de liveness. Após a captura, a contagem de liveness indicará o número de tentativas. | `{ "livenessCount": X }`                                                             |
| **SDK\_CAPTURE\_DENIED**         | O usuário negou o acesso ao movimento, impedindo o sistema de verificar sua identidade.                                                           | `{ "assuranceType":"liveness" }`                                                     |
| **SDK\_CAPTURE\_FAILED**         | A captura de liveness falhou devido a um problema como pouca iluminação ou movimento inadequado, exigindo que o usuário tente novamente.          | `{ "assuranceType":"liveness","reason":"Tente novamente","passed":false }`           |
| **LIVENESS\_IPROOV\_ERROR**      | Ocorreu um erro ao realizar a verificação de liveness. Entre em contato com a equipe do SDK para obter mais assistência.                          | `{}`                                                                                 |
| **SDK\_CAPTURE\_INVALID**        | A captura de liveness foi inválida, possivelmente devido a posicionamento inadequado do usuário ou problemas de iluminação.                       | `{"assuranceType":"liveness","reason":"error_device_motion_unsupported"}}`           |
| **SDK\_CAPTURE\_RESULT**         | O resultado da captura de liveness, indicando se o usuário é considerado vivo ou não.                                                             | `{ "isAlive":true/false }`                                                           |
| **LIVENESS\_PREVIEW\_RETRY**     | O usuário optou por tentar novamente a captura da selfie, reiniciando o processo de verificação de liveness.                                      | `{}`                                                                                 |
| **DOCUMENT\_REUSE\_FLOW**        | A opção que o usuário selecionou ao encontrar seu documento na etapa de Reutilização de Documento, que pode ser `REUSE` ou `CAPTURE`.             | `{ "selected":"REUSE" }`                                                             |
| **DOCUMENT\_TYPE\_SELECTED**     | O usuário selecionou um tipo de documento (por exemplo, CNH) para prosseguir com a verificação do documento.                                      | `{ "type":"CNH" }`                                                                   |
| **TERM\_ACCEPTED**               | O usuário marcou a caixa de seleção para aceitar os termos de uso. Se desmarcada, um evento com `false` é emitido.                                | `{ "term":"DocumentType_0_Termos de Uso e Política de Privacidade","checked":true }` |
| **SELECT\_DOCUMENT\_TYPE**       | O usuário marcou a caixa de seleção para aceitar os termos de uso. Se desmarcada, um evento com `false` é emitido.                                | `{ "option":upload/picture }`                                                        |
| **SDK\_FRONT\_CAPTURE\_STARTED** | A captura da imagem frontal do documento foi iniciada                                                                                             | `{ "assuranceType":"document_detector"}`                                             |
| **SDK\_BACK\_CAPTURE\_STARTED**  | A captura da imagem do verso do documento foi iniciada                                                                                            | `{ "assuranceType":"document_detector"}`                                             |
| **SDK\_UPLOAD\_INVALID**         | O evento é acionado quando o SDK retorna falha no upload do documento                                                                             | `{"assuranceType":"document_detector","eventId":"DOCUMENT_NOT_SUPPORTED"}`           |
| **DD\_CAPTURE\_FINISH**          | O usuário cancelou a etapa de captura do documento.                                                                                               | `{}`                                                                                 |
| **DD\_PREVIEW\_RETRY**           | A captura do documento foi bem-sucedida.                                                                                                          | `{ "assuranceType":"document", "stepName":"DOCUMENT_CAPTURE" }`                      |
| **SDK\_CAPTURE\_FAILED**         | A captura do documento falhou devido a problemas na qualidade da imagem.                                                                          | `{ "assuranceType":"document", "reason":"Imagem borrada", "passed":false }`          |
| **FIELD\_CHANGE**                | O evento é acionado quando o usuário edita ou insere um valor no campo de texto                                                                   | `{"field":"email"}`                                                                  |
| **FAILED\_PHONE\_CODE**          | Código incorreto inserido                                                                                                                         | `{}`                                                                                 |
| **RESEND\_PHONE\_CODE**          | O evento é acionado quando o usuário solicita o reenvio do código de telefone                                                                     | `{}`                                                                                 |
| **FAILED\_EMAIL\_CODE**          | Código incorreto inserido                                                                                                                         | `{}`                                                                                 |
| **RESEND\_EMAIL\_CODE**          | O evento é acionado quando o usuário solicita o reenvio do código de e-mail                                                                       | `{}`                                                                                 |
| **ONBOARDING\_FINISHED**         | O processo de onboarding foi concluído com sucesso, e o usuário agora está integrado.                                                             | `{ "executionId":"67b27030a0e08600085f0c0f" }`                                       |

***

Os **STEP\_STARTED** e **STEP\_COMPLETED** eventos são indicadores do início e da conclusão de várias etapas dentro do processo de onboarding. Esses eventos ajudam a acompanhar o progresso do usuário em cada etapa.

* Os **STEP\_STARTED** O evento indica que uma determinada etapa foi iniciada. Ele contém dois parâmetros principais:
  * `stepName`: O nome da etapa, que pode ser um de vários estágios predefinidos no processo de onboarding. Exemplos de valores possíveis incluem:
    * `INSTRUCTIONS`
    * `CAMERA_ACCESS`
    * `LIVENESS_CAPTURE`
    * `DOCUMENT_TYPE`
    * `DISPATCH_ADDRESS`
    * `DOCUMENT_REUSE`
    * `DOCUMENT_REUSE_SEARCH`
    * `SEND_DOCUMENT_TYPE`
    * `COMPANY_ADDRESS`
    * `COMPANY_DATA`
    * `COMPANY_LISTING`
    * `COMPANY_SEARCH`
    * `COMPANY_LOCATION`
    * `BUSINESS_ADDRESS`
    * `INCOME`
    * `EMPLOYEE_DATA`
    * `PHONE_NUMBER_VALIDATION`
    * `EMAIL_VALIDATION`
    * `UPLOAD_DOCUMENT`
    * `WELCOME`
    * `NEW_ACCESS`
    * `FLOW_CHOICE`
    * `CUSTOM`
    * `QSA_CONTACT`
    * `QSA_CONTACT_INFO`
    * `QSA_NUMBER`
    * `PFL_PREVIEW`
    * `LIVENESS_CLEAR_SALE_PREVIEW`
    * `FA_PREVIEW`
    * `CUSTOM_FORM`
    * `DONE`
    * `USING_TERMS`
    * `DOCUMENT_ISSUED_COUNTRY`
    * `DD`
    * `PFL`
    * `LIVENESS_CLEAR_SALE`
    * `FA`
    * `FACE_AUTH_IPROOV`
    * `FACE_AUTH_FACETEC_3D`
    * `FACE_AUTH_FACETEC_2D`
    * `LIVENESS_IPROOV`
    * `LIVENESS_FACETEC_3D`
    * `LIVENESS_FACETEC_2D`
    * `DD_PREVIEW`
    * `FACE_AUTH_IPROOV_PREVIEW`
    * `LIVENESS_IPROOV_PREVIEW`
    * `LIVENESS_FACETEC_3D_PREVIEW`
    * `LIVENESS_FACETEC_2D_PREVIEW`
    * e outros.
  * `stepIndex`: O índice da etapa atual, que fornece uma referência numérica da posição do usuário no fluxo geral de onboarding. Isso permite identificar com precisão qual etapa está em andamento.
* Os **STEP\_COMPLETED** evento indica que uma determinada etapa foi concluída com sucesso. Assim como o **STEP\_STARTED** evento, ele inclui:
  * `stepName`: O nome da etapa concluída.
  * `stepIndex`: O índice da etapa concluída, que marca a progressão bem-sucedida para a próxima etapa do processo.

Esses eventos são cruciais para monitorar o fluxo do processo de onboarding, fornecendo tanto o nome da etapa atual quanto seu índice para ajudar a determinar em que ponto o usuário está na jornada de onboarding.

***

O processo de Onboarding se comunica com um iFrame ou WebView emitindo eventos por meio de `window.postMessage()`. O suporte a eventos está disponível atualmente para iFrame, Flutter\* e React Native.

```javascript
window.addEventListener(
  "message",
  function (e) {
    console.log(e.data);
  },
  false
);
```

#### Exemplo de uma mensagem retornada:

```json
{
  "code": "ONBOARDING_FINISHED",
  "detail": {
    "executionId": "xxxxxxxxxxxxxxxxxxxxxxxxxx"
  }
}
```

{% hint style="warning" %}
Sempre escute o `"message"` evento, pois a comunicação com o link de onboarding por meio de um iFrame utiliza a API `postMessage` .
{% endhint %}

#### Usando um Código de Evento Específico do Onboarding:

Para lidar com códigos de evento específicos emitidos pelo Onboarding, você pode verificar a `code` propriedade nos dados do evento:

```javascript
window.addEventListener(
  "message",
  function (e) {
    if (e.data.code === "SDK_BACK_CAPTURE_STARTED") {
      console.log("A captura foi iniciada");
    }
  },
  false
);
```

{% hint style="info" %}
**Se estiver usando** ouvintes de mensagens da Web com Flutter, então [InAppWebView](https://inappwebview.dev/) deve ser usado, com **`jsObjectName`** definido como **`FutterOnboardingChannel`**
{% endhint %}

Os eventos que podem ser emitidos pelo Onboarding são os seguintes:

* `SDK_CAPTURE_INVALID`: Será acionado quando a captura for inválida, como um documento incorreto ou baixa qualidade de imagem. (Detector de Documento e Liveness Facial Passivo)
* `SDK_CAPTURE_FAILED`: Alguma outra falha na captura. (Detector de Documento e Liveness Facial Passivo)
* `SDK_CAPTURE_RESULT`: Resultado da captura. (Liveness e FaceAuthenticator)
* `SDK_BACK_CAPTURE_STARTED`: Início da captura do verso do documento (Detector de Documento)
* `SDK_FRONT_CAPTURE_STARTED`: Início da captura da frente do documento (Detector de Documento)
* `DD_CAPTURE_FINISH`: Etapa de captura do Detector de Documento no onboarding concluída (se tiver ambos os lados, será acionado somente quando ambos os lados tiverem sido capturados); na verdade, só é acionado quando você já estiver avançando para a próxima etapa, se estiver tudo certo com a captura
* `ONBOARDING_FINISHED`: Onboarding concluído


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.caf.io/caf-docs/caf-product-guides-pt-br/guias-de-inicio-rapido/onboardings-integration/events.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
