> ## Documentation Index
> Fetch the complete documentation index at: https://docs.jelou.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Validação com foto (WebView)

> Verifique a identidade no WhatsApp via WebView com selfie por foto, documento e comparação facial.

Este agente permite executar uma verificação de identidade completa dentro do **WhatsApp via WebView**, combinando vivacidade por foto, validação de documento e comparação facial. A experiência abre a partir de um link exclusivo no chat e usa captura guiada com feedback imediato.

<Info>
  Para **vivacidade** e **verificação de documento**, o WebView usa captura guiada com feedback na tela; o usuário permanece no chat.
</Info>

## Pré-requisitos

### ✅ Checklist para começar sem bloqueadores

* Você deve ter uma **conta WhatsApp verificada**.
* Você deve ter o **PDF de Termos e Condições** (URL pública) para configurar no agente. **Isso é obrigatório.**
* O usuário deve conseguir **tirar fotos** pelo chat (permissões de câmera habilitadas no dispositivo).
* **Permissões de localização** também são solicitadas para que os dados possam ser coletados para melhor auditoria e rastreabilidade do processo biométrico.

## Como funciona?

Em menos de um minuto, o usuário conclui estas etapas:

<Steps>
  <Step title="Acesso via link exclusivo">
    O usuário recebe um link exclusivo do WhatsApp para iniciar a sessão. O link contém um id de sessão não reutilizável e as informações do fluxo associado.
  </Step>

  <Step title="Tirar uma foto">
    O usuário captura uma foto ao vivo pela câmera, com guias visuais para uma captura correta.
  </Step>

  <Step title="Capturar o documento de identidade">
    São solicitadas imagens da **frente e do verso** do documento, com assistência visual para validar validade e autenticidade.
  </Step>

  <Step title="Comparação facial automática">
    O sistema compara a foto ao rosto extraído do documento e calcula o nível de similaridade. Esta versão ainda não inclui facematch com entidades governamentais.
  </Step>
</Steps>

## Como conectar a integração?

<Frame caption="Como conectar a integração de Biometria">
  <iframe width="100%" height="400" src="https://www.youtube.com/embed/b_hlkjk0pQs" title="Conectar Biometría" frameBorder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowFullScreen />
</Frame>

<Steps>
  <Step title="Abrir a plataforma">
    Use o Agente para criar um fluxo de biometria ou selecione o template **Validação de identidade**.
    Para iniciar um fluxo do zero, clique em Brain Studio na barra lateral.
  </Step>

  <Step title="Selecionar Biometria">
    Na barra de ferramentas você verá a opção **Biometria**. Clique em **Conectar**.
  </Step>

  <Step title="Conectar a integração">
    Ao conectar, você verá o nó **Biometria**, onde poderá configurar tentativas, experiência e validações adicionais.
  </Step>

  <Step title="Configurar saídas">
    Este agente tem **1 saída de sucesso e 3 saídas de erro**. Cada uma pode direcionar para:

    * Entrada de texto com mensagem personalizada.
    * Connect, somente se você tiver este módulo.
  </Step>

  <Step title="Executar testes">
    Com a configuração que você acabou de definir, execute testes com o botão **Teste**.
  </Step>
</Steps>

## Configuração

<Tabs>
  <Tab title="Outputs">
    ### Sucesso

    <AccordionGroup>
      <Accordion title="Biometria aprovada" icon="circle-check">
        Confirma que a verificação biométrica foi bem-sucedida.

        **Variável:** `approved`

        **Descrição:** Biometria aprovada

        **Estrutura da resposta (JSON):**

        ```json theme={null}
        {
          "document_response": {
            "document_check": {
              "result": "",
              "verified_fields": { "...": "Dados principais do documento" },
              "secondary_fields": { "...": "Dados secundários do documento" },
              "details": { "...": "Detalhes do tipo de documento" },
              "status_fields": { "...": "Status da validação" },
              "image_quality_details": { "...": "Detalhes de qualidade da imagem" },
              "images_extracted": { "...": "Imagens extraídas do documento" },
              "gov_entity_fields": { "document_number": "Número do documento de identidade" }
            },
            "document_image_front_url": "URL da imagem frontal do documento",
            "document_image_back_url": "URL da imagem do verso do documento",
            "document_face_image_url": "URL da imagem do rosto extraída do documento"
          },
          "liveness_response": {
            "result": "true",
            "url_selfie_image": "URL da foto usada para vivacidade"
          },
          "facematch_response": {
            "facematch_result": "approved",
            "facematch_confidence": "Percentual de correspondência (0-100)"
          },
          "reporte_de_biometria": {
            "report": "URL do relatório biométrico (web)",
            "report_pdf": "URL do relatório biométrico (PDF)"
          },
          "device_info": {
            "userAgent": "String user agent",
            "browser": "Navegador",
            "operatingSystem": "Sistema operacional",
            "platform": "Plataforma do dispositivo",
            "language": "Idioma",
            "timezone": "Fuso horário",
            "screenResolution": "Resolução da tela",
            "colorDepth": "Profundidade de cor em bits",
            "timestamp": "Timestamp do dispositivo",
            "ipAddress": "Endereço IP",
            "location": {
              "latitude": "Latitude (se o usuário conceder permissão)",
              "longitude": "Longitude (se o usuário conceder permissão)"
            },
            "deviceId": "ID único do dispositivo",
            "deviceName": "Nome do dispositivo"
          },
          "gov_entity_data": {
            "...": "Dados da entidade governamental do país (varia por país)"
          }
        }
        ```

        **Campos importantes:**

        * `document_response`: informações do documento de identidade
        * `liveness_response`: foto usada na vivacidade
        * `facematch_response`: resultado da comparação facial
        * `reporte_de_biometria`: URLs do relatório (web e PDF)
        * `device_info`: dados do dispositivo e localização (auditoria e rastreabilidade)
        * `gov_entity_data`: dados de entidade governamental (se aplicável)

        **Definições das variáveis JSON:**

        * **document\_response:** `document_check` (result, verified\_fields, secondary\_fields, details, status\_fields, image\_quality\_details, images\_extracted, gov\_entity\_fields), `document_image_front_url`, `document_image_back_url`, `document_face_image_url`
        * **liveness\_response:** `result`, `url_selfie_image`
        * **facematch\_response:** `facematch_result` (approved/decline), `facematch_confidence`
        * **reporte\_de\_biometria:** `report`, `report_pdf`
        * **device\_info:** `userAgent`, `browser`, `operatingSystem`, `platform`, `language`, `timezone`, `screenResolution`, `colorDepth`, `timestamp`, `ipAddress`, `location` (latitude, longitude; somente com permissão de localização), `deviceId`, `deviceName`
        * **gov\_entity\_data:** dados da entidade governamental do país (campos variam por país)
      </Accordion>
    </AccordionGroup>

    ### Erros

    <AccordionGroup>
      <Accordion title="Processo abandonado" icon="door-open">
        O usuário saiu do processo antes de concluir.

        **Variável:** `incomplete`

        **Descrição:** Processo abandonado
      </Accordion>

      <Accordion title="Biometria rejeitada" icon="ban">
        A verificação biométrica falhou ou foi rejeitada.

        **Variável:** `reject`

        **Descrição:** Biometria rejeitada
      </Accordion>

      <Accordion title="Erro no processo" icon="triangle-exclamation">
        Erro durante a execução do processo biométrico.

        **Variável:** `error`

        **Descrição:** Erro no processo
      </Accordion>
    </AccordionGroup>
  </Tab>
</Tabs>

## Relatório

Por padrão é gerado um relatório com os seguintes campos:

| **Campo**                             | **Descrição**                   |
| ------------------------------------- | ------------------------------- |
| Código biométrico                     | ID único do processo            |
| Data e hora                           | Timestamp da verificação        |
| Resultado biométrico                  | Aprovado / Não aprovado         |
| Número de identificação               | Documento do usuário            |
| Tipo de identificação                 | Tipo de documento               |
| Primeiros nomes                       | Primeiros nomes do usuário      |
| Sobrenomes                            | Sobrenomes do usuário           |
| Celular                               | Telefone                        |
| Foto                                  | URL do selfie                   |
| Resultado da vivacidade               | Aprovado / Não aprovado         |
| Foto frontal do documento             | URL                             |
| Foto do verso do documento            | URL                             |
| Resultado da verificação do documento | Aprovado / Não aprovado         |
| Foto do rosto no documento            | URL                             |
| Resultado do facematch                | Percentual de correspondência   |
| Relatório biométrico                  | URL do relatório                |
| Descrição da falha                    | Detalhe do erro                 |
| Observações                           | Observações adicionais          |
| User agent                            | String user agent do navegador  |
| Navegador                             | Navegador (ex.: Chrome)         |
| Sistema operacional                   | SO do dispositivo               |
| Plataforma                            | Plataforma (ex.: Linux aarch64) |
| Idioma                                | Idioma configurado (ex.: es-US) |
| Fuso horário                          | Fuso (ex.: America/Guayaquil)   |
| Resolução da tela                     | Resolução (ex.: 376x835)        |
| Profundidade de cor                   | Profundidade em bits            |
| Timestamp (dispositivo)               | Timestamp do dispositivo        |
| Endereço IP                           | IP usado na verificação         |
| Latitude                              | Latitude da localização         |
| Longitude                             | Longitude da localização        |
| ID do dispositivo                     | ID único do dispositivo         |
| Nome do dispositivo                   | Nome (ex.: Linux - Chrome)      |

<Info>
  O relatório biométrico pode ser baixado em **PDF** para auditoria ou backup interno.
</Info>

<Warning>
  **Localização no relatório:** latitude e longitude dependem da permissão concedida pelo usuário. Se o usuário negar o acesso à localização ou estiver desativada no dispositivo, esses campos não aparecerão no relatório.
</Warning>

## Como personalizar a experiência?

Ao clicar no nó **Biometria** no canvas, um painel lateral abre com três abas de configuração.

<Tabs>
  <Tab title="Geral">
    Configure a quantidade de tentativas permitidas por etapa do processo biométrico.

    * **Máximo de tentativas na verificação de presença** — define quantas vezes o usuário pode tentar a captura facial antes de o processo falhar.
    * **Máximo de tentativas na verificação de documento** — define quantas vezes o usuário pode tentar capturar o documento.

    <Info>
      Esta configuração é **global para a sua empresa**: qualquer alteração se aplicará a todos os fluxos que usam biometria WebView.
    </Info>
  </Tab>

  <Tab title="Experiência">
    Personalize a aparência do WebView que o usuário final verá. Use o botão **Pré-visualização** para ver o mockup de cada tela antes de publicar.

    | Opção                     | Descrição                                                                                                     |
    | ------------------------- | ------------------------------------------------------------------------------------------------------------- |
    | **Cores**                 | Use as cores da Jelou (padrão) ou defina cores personalizadas para botões, steppers, spinners, fundo e texto. |
    | **Idioma da experiência** | Escolha entre **Espanhol** e **Inglês** como idioma padrão da interface.                                      |
    | **Toggle de idioma**      | Ative para que o usuário possa trocar o idioma diretamente da tela inicial.                                   |

    <Note>
      Esta aba está disponível somente na modalidade **WebView**.
    </Note>

    <Info>
      A configuração de experiência é **global para a sua empresa** e se aplica a todos os fluxos que usam biometria WebView.
    </Info>
  </Tab>

  <Tab title="Validações">
    Defina os níveis mínimos de validação que o usuário deve superar para que o processo seja considerado bem-sucedido.

    | Parâmetro                  | Opções                                     | Descrição                                                                            |
    | -------------------------- | ------------------------------------------ | ------------------------------------------------------------------------------------ |
    | **Verificação documental** | Médio / Avançado                           | **Médio**: validação padrão do documento. **Avançado**: detecção avançada de fraude. |
    | **Comparação facial**      | Baixo (65%) / Padrão (80%) / Estrito (90%) | Percentual mínimo de similaridade aceito entre a selfie e a foto do documento.       |
    | **URL Termos e condições** | URL pública                                | O usuário deve aceitar os termos na tela inicial. O link deve ser de acesso público. |

    <Info>
      A configuração de validações é **global para a sua empresa** e se aplica a todos os fluxos que usam biometria WebView.
    </Info>
  </Tab>
</Tabs>

## Perguntas frequentes

<AccordionGroup>
  <Accordion title="Quais imagens de documento são necessárias durante o processo biométrico?">
    Fotos do **documento de identidade pelos dois lados**: frente e verso.
  </Accordion>

  <Accordion title="Como a biometria WebView difere de Flows ou conversacional?">
    O WebView abre um link dedicado com captura guiada; o relatório inclui **dados do dispositivo** (navegador, SO, resolução, fuso, IP, ID do dispositivo) e **localização** se o usuário conceder permissão. Você pode ajustar **cores** (fundo, texto, botões, stepper), **idioma da interface** e opções de segurança descritas no guia de personalização; os **widgets de captura** não são editáveis. O conversacional usa **vídeo** no chat; o Flows usa **foto** dentro do WhatsApp Flows com regras próprias de galeria e interface nativa.
  </Accordion>

  <Accordion title="Posso personalizar cores e idioma da interface?">
    Sim: cores de fundo, texto, botões e stepper; idioma da interface (espanhol/inglês) e, quando habilitado, seletor de idioma para o usuário. A cor do stepper também se aplica aos widgets. Os widgets de captura facial e de documento não são personalizáveis.
  </Accordion>

  <Accordion title="Quantos outputs este agente tem?">
    **1 output de sucesso** (Biometria aprovada) e **3 outputs de erro** (Processo abandonado, Biometria rejeitada, Erro no processo). Cada um pode direcionar para mensagem de texto personalizada ou Connect.
  </Accordion>
</AccordionGroup>
