> ## 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.

# Biometría con foto - WebView

> Verifica identidad en WhatsApp mediante WebView con foto, documento y comparación facial.

Este agente te permite ejecutar una verificación de identidad completa dentro de **WhatsApp mediante WebView**, combinando prueba de vida por foto, validación de documento y comparación facial. La experiencia se abre en un enlace único desde el chat y utiliza captura guiada con feedback inmediato.

<Info>
  En **prueba de vida** y **document check**, WebView usa captura guiada con retroalimentación en pantalla; el usuario permanece en el chat.
</Info>

## Requisitos previos

### ✅ Checklist para iniciar sin bloqueos

* Debes contar con **cuenta verificada en WhatsApp**.
* Debes contar con la URL púbica de Términos y Condiciones para configurarlo en el agente. **Esto es obligatorio**.
* El usuario debe poder **tomar foto** desde el chat (los permisos de cámara deben de estar habilitados en el dispositivo).
* También se piden **permisos de ubicación** para la obtención de datos que permiten una mejor auditoría y trazabilidad del proceso biométrico.

## ¿Cómo funciona?

En menos de 1 minuto, el usuario completa los siguientes pasos:

<Steps>
  <Step title="Accede desde un link único">
    El usuario recibe un link único por WhatsApp para iniciar la sesión. El link contiene un identificador de sesión no reutilizable y la información del flujo asociado.
  </Step>

  <Step title="Toma una foto">
    El usuario captura una foto en tiempo real desde la cámara, con guías visuales que aseguran una toma correcta.
  </Step>

  <Step title="Captura su documento de identidad">
    Se solicitan imágenes **frontal y reverso** del documento, con asistencia visual para validar vigencia y autenticidad.
  </Step>

  <Step title="Comparación facial automática">
    El sistema compara la foto contra el rostro extraído del documento y calcula el nivel de similitud. En esta versión aún no se incluye facematch contra entidades gubernamentales.
  </Step>
</Steps>

## ¿Cómo conectar la integración?

<Frame caption="Cómo conectar la integración de Biometría">
  <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="Ingresa a la plataforma">
    Utiliza el Agente para crear un flujo de biometría, o selecciona el template **Validación de identidad**.
    Si quieres iniciar un flujo desde cero, haz clic en Brain Studio en el sidebar.
  </Step>

  <Step title="Selecciona Biometría">
    En la barra de herramientas verás la opción **Biometría**. Haz clic en **Conectar**.
  </Step>

  <Step title="Conecta la integración">
    Al conectarla verás el nodo **Biometría**, en el cual podrás configurar reintentos, experiencia y validaciones adicionales.
  </Step>

  <Step title="Configurar outputs">
    Este agente cuenta con **1 output de éxito y 3 de error**. Cada uno puedes dirigirlo a:

    * Input de texto con mensaje personalizado.
    * Connect, solo si cuentas con este módulo.
  </Step>

  <Step title="Probar">
    Con la configuración que acabas de realizar, puedes proceder a realizar las pruebas con el botón Probar.
  </Step>
</Steps>

## Configuración

<Tabs>
  <Tab title="Outputs">
    ### Éxito

    <AccordionGroup>
      <Accordion title="Biometría Aprobada" icon="circle-check">
        Confirma que la verificación biométrica fue exitosa.

        **Variable:** `approved`

        **Descripción:** Biometría Aprobada

        **Estructura de respuesta (JSON):**

        ```json theme={null}
        {
          "document_response": {
            "document_check": {
              "result": "",
              "verified_fields": { "...": "Datos principales del documento" },
              "secondary_fields": { "...": "Datos secundarios del documento" },
              "details": { "...": "Detalles del tipo de documento" },
              "status_fields": { "...": "Estado de validaciones" },
              "image_quality_details": { "...": "Detalles de la calidad de la imagen" },
              "images_extracted": { "...": "Imágenes extraídas del documento" },
              "gov_entity_fields": { "document_number": "Número del documento de identidad" }
            },
            "document_image_front_url": "URL de la imagen frontal del documento",
            "document_image_back_url": "URL de la imagen posterior del documento",
            "document_face_image_url": "URL del rostro extraído del documento"
          },
          "liveness_response": {
            "result": "true",
            "url_selfie_image": "URL de la foto obtenida para validar vivacidad"
          },
          "facematch_response": {
            "facematch_result": "approved",
            "facematch_confidence": "Porcentaje de coincidencia (0-100)"
          },
          "reporte_de_biometria": {
            "report": "URL del reporte de biometría (web)",
            "report_pdf": "URL del reporte de biometría (PDF)"
          },
          "device_info": {
            "userAgent": "Cadena del agente de usuario",
            "browser": "Navegador",
            "operatingSystem": "Sistema operativo",
            "platform": "Plataforma del dispositivo",
            "language": "Idioma",
            "timezone": "Zona horaria",
            "screenResolution": "Resolución de pantalla",
            "colorDepth": "Profundidad de color en bits",
            "timestamp": "Marca de tiempo del dispositivo",
            "ipAddress": "Dirección IP",
            "location": {
              "latitude": "Latitud (si el usuario otorga permiso)",
              "longitude": "Longitud (si el usuario otorga permiso)"
            },
            "deviceId": "Identificador único del dispositivo",
            "deviceName": "Nombre del dispositivo"
          },
          "gov_entity_data": {
            "...": "Datos de la entidad gubernamental del país (varía según el país)"
          }
        }
        ```

        **Campos importantes:**

        * `document_response`: Información del documento de identidad
        * `liveness_response`: Foto enviada para validar la prueba de vida
        * `facematch_response`: Resultado de la comparación facial
        * `reporte_de_biometria`: URLs del reporte en formato web y PDF
        * `device_info`: Datos de dispositivo y ubicación (auditoría y trazabilidad)
        * `gov_entity_data`: Datos de la entidad gubernamental (si aplica)

        **Definición de variables del JSON response:**

        * **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; solo si hay permiso de ubicación), `deviceId`, `deviceName`
        * **gov\_entity\_data:** datos de la entidad gubernamental del país (campos varían según el país)
      </Accordion>
    </AccordionGroup>

    ### Errores

    <AccordionGroup>
      <Accordion title="Proceso abandonado" icon="door-open">
        El usuario abandonó el proceso antes de completarlo.

        **Variable:** `incomplete`

        **Descripción:** Proceso abandonado
      </Accordion>

      <Accordion title="Biometría Rechazada" icon="ban">
        La verificación biométrica falló o fue rechazada.

        **Variable:** `reject`

        **Descripción:** Biometría Rechazada
      </Accordion>

      <Accordion title="Error en el proceso" icon="triangle-exclamation">
        Error durante la ejecución del proceso de biometría.

        **Variable:** `error`

        **Descripción:** Error en el proceso
      </Accordion>
    </AccordionGroup>
  </Tab>
</Tabs>

## ¿Cómo personalizar la experiencia?

Al hacer clic en el nodo **Biometría** en el canvas, se abre un panel lateral con tres pestañas de configuración.

<AccordionGroup>
  <Accordion title="General" icon="sliders">
    Configura la cantidad de reintentos permitidos por etapa del proceso biométrico.

    **Variable:** Máximo intentos en prueba de vida

    **Descripción:** Define cuántas veces el usuario puede reintentar la captura facial antes de que el proceso falle.

    **Input:** 1, 2 o 3

    ***

    **Variable:** Máximo intentos en verificación de documento

    **Descripción:** Define cuántas veces el usuario puede reintentar la captura del documento.

    **Input:** 1, 2 o 3
  </Accordion>

  <Accordion title="Experiencia" icon="palette">
    Personaliza la apariencia de la WebView que verá el usuario final. Usa el botón **Vista previa** para visualizar el mockup de cada pantalla antes de publicar.

    **Variable:** Colores

    **Descripción:** Usa los colores de Jelou (por defecto) o define colores propios para botones, steppers, spinners, fondo y texto.

    **Input:** Código de color en formato HEX (ej. `#1E7A4C`)

    ***

    **Variable:** Idioma de la experiencia

    **Descripción:** Define el idioma por defecto de la UI que verá el usuario al iniciar el proceso.

    **Input:** Español, Inglés o Portugués

    ***

    **Variable:** Toggle de idioma

    **Descripción:** Se activa un botón en la interfaz del usuario que permite al usuario cambiar el idioma.

    **Input:** Activado / Desactivado.
  </Accordion>

  <Accordion title="Validaciones" icon="shield-check">
    Define los niveles mínimos de validación que debe superar el usuario para que el proceso se considere exitoso.

    En el proceso de biometría, los clientes o usuarios pueden realizar ciertas configuraciones que afectan el rendimiento del proceso biométrico, es decir, el desempeño en la tasa de aprobación y rechazo.

    #### Verificación documental

    Controla qué tan estricto es el análisis del documento de identidad. ¿Qué tan crítico necesitas que sea esta validación? Elige entre tres niveles:

    | Nivel             | Qué incluye                                                                                              | Caso de uso                                                                             |
    | ----------------- | -------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- |
    | **Estándar**      | Tipo y origen del documento, fecha de vigencia y elementos de seguridad físicos.                         | Flujos de alto volumen que buscan agilidad sin perder los controles base.               |
    | **Avanzado**      | Todo lo de Estándar, más el resultado global del documento y patrones de manipulación o recaptura.       | Flujos de alto riesgo o sectores regulados que necesitan evidencia auditable adicional. |
    | **Personalizado** | Cualquier combinación de parámetros documentales, configurada solo por una persona asignada del cliente. | Empresas con reglas de negocio específicas. Requiere coordinación previa con Jelou.     |

    <AccordionGroup>
      <Accordion title="Estándar" icon="shield">
        Valida los controles base del documento:

        * **Tipo y origen del documento**: identifica el tipo de documento y el país o entidad emisora, estableciendo el contexto para el resto de las validaciones.
        * **Fecha de vigencia**: verifica que el documento no esté vencido. Si el campo es ilegible (baja resolución, reflejos), el caso puede derivarse a revisión manual en vez de rechazarse directo.
        * **Elementos de seguridad físicos**: valida hologramas, patrones de fondo y zonas de protección — barrera contra impresiones o fotocopias de alta resolución.

        <Info>
          Las variables **tipo y origen del documento** y **fecha de vigencia** no pueden desactivarse bajo ningún nivel seleccionado.
        </Info>
      </Accordion>

      <Accordion title="Avanzado" icon="shield-halved">
        Incluye todo lo del nivel Estándar, más:

        * **Resultado global del documento**: análisis forense integral — coherencia visual, consistencia entre zonas y patrones de manipulación o recaptura. Puede determinar el rechazo del documento de forma autónoma.
        * **Zona de lectura automática**: lee y valida la zona MRZ o el código de barras del documento, cuando el tipo de documento cuenta con esta zona.
        * **Coherencia de datos del documento**: verifica la consistencia de los datos extraídos entre las distintas zonas del documento.
        * **Calidad de la foto capturada**: evalúa nitidez, iluminación y ángulo de la captura como señal de contexto, no de autenticidad.

        <Tip>
          En poblaciones con alta presencia de documentos antiguos o deteriorados, este nivel puede aumentar la tasa de derivación a revisión manual (HIL). Evalúa la calidad documental típica de tu base de usuarios antes de activarlo.
        </Tip>
      </Accordion>

      <Accordion title="Personalizado" icon="shield-check">
        Permite combinar libremente cualquiera de los parámetros documentales. Esta configuración la aplica únicamente una persona asignada del cliente Enterprise y requiere **coordinación previa con Jelou** antes de habilitarse.

        | Parámetro                             | Qué analiza                                                                                                                                                                 |
        | ------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
        | **Tipo y origen del documento**       | Identifica el tipo de documento y el país o entidad emisora, estableciendo el contexto para el resto de las validaciones.                                                   |
        | **Fecha de vigencia**                 | Verifica que el documento no esté vencido. Si el campo es ilegible (baja resolución, reflejos), el caso puede derivarse a revisión manual en vez de rechazarse directo.     |
        | **Elementos de seguridad físicos**    | Valida hologramas, patrones de fondo y zonas de protección — barrera contra impresiones o fotocopias de alta resolución.                                                    |
        | **Resultado global del documento**    | Análisis forense integral: coherencia visual, consistencia entre zonas y patrones de manipulación o recaptura. Puede determinar el rechazo del documento de forma autónoma. |
        | **Zona de lectura automática**        | Lee y valida la zona MRZ o el código de barras del documento, cuando el tipo de documento cuenta con esta zona.                                                             |
        | **Coherencia de datos del documento** | Verifica la consistencia de los datos extraídos entre las distintas zonas del documento.                                                                                    |
        | **Calidad de la foto capturada**      | Evalúa nitidez, iluminación y ángulo de la captura como señal de contexto, no de autenticidad.                                                                              |

        <Info>
          Las variables **tipo y origen del documento** y **fecha de vigencia** no pueden desactivarse bajo ningún nivel seleccionado.
        </Info>

        <Warning>
          **Pasos a seguir para desactivar el parámetro Elementos de seguridad físicos**

          Este toggle verifica la presencia de hologramas, chips, códigos de barras, etc. Si tu cliente pide bajarlo, sigue estos pasos:

          1. Solicítalo a Jelou: envía el correo electrónico de la persona que requiere la desactivación y pide la asignación del rol **external\_client\_biometry** para tu company.
          2. Con el rol activo, el cliente ingresa a Brain y desactiva la validación directamente.
          3. Al desactivarla, el sistema baja el nivel documental a **bajo** y dispara el modal de consentimiento: el cliente debe escribir "conozco y acepto los riesgos" para confirmar. Esa aceptación queda registrada para auditoría interna.
        </Warning>
      </Accordion>
    </AccordionGroup>

    <AccordionGroup>
      <Accordion title="Configuración recomendada por país" icon="earth-americas">
        Para los países de Latam que en general cuentan con una alta presencia de documentos antiguos o deteriorados, te recomendamos aplicar una configuración **Personalizada** con los siguientes parámetros:

        | País          | Tipo de configuración | Parámetros activos                                                             |
        | ------------- | --------------------- | ------------------------------------------------------------------------------ |
        | 🇪🇨 Ecuador  | Personalizada         | Tipo y origen del documento, Fecha de vigencia, Elementos de seguridad físicos |
        | 🇨🇴 Colombia | Personalizada         | Tipo y origen del documento, Fecha de vigencia, Elementos de seguridad físicos |

        <Warning>
          Al dejar desactivados **zona de lectura automática** y **calidad de la foto capturada**, el sistema no exigirá que el documento tenga MRZ ni penalizará si la calidad de la imagen no es alta.
        </Warning>
      </Accordion>
    </AccordionGroup>

    #### Comparación facial

    **Variable:** Comparación facial (facematch)

    **Descripción:** Define el porcentaje mínimo de similitud aceptado entre la selfie de prueba de vida y el rostro extraído del documento.

    **Input:** Bajo (65%), Estándar (80%) o Estricto (90%). El umbral es 100% configurable por empresa; el valor por defecto es **70%**.

    <Tip>
      Un umbral de facematch más alto reduce el riesgo de suplantación, pero puede aumentar el falso rechazo de usuarios legítimos. Ajusta el valor según el nivel de riesgo aceptable para tu operación.
    </Tip>

    #### Validación gubernamental

    **Variable:** Habilitar validación gubernamental

    **Descripción:** Esta función tiene un costo adicional. Valida los datos extraídos por OCR contra la fuente gubernamental correspondiente. Al activarla, debes seleccionar el país en el cual necesitas la validación gubernamental.

    **Input:** Activado / Desactivado + selección de país

    #### Validación de recaptura

    **Variable:** Habilitar validación de recaptura

    **Descripción:** Para una capa adicional de seguridad, puedes activar el agente de recaptura, basado en un modelo de lenguaje (LLM). Este agente analiza la foto del documento para descartar que se trate de una foto capturada desde una pantalla.

    **Input:** Activado / Desactivado

    <Warning>
      Al activar esta función, el nivel de análisis del documento es más riguroso, por lo que puede: aumentar el tiempo total del proceso de biometría, aumentar el tiempo de carga y disminuir la tasa de aprobación cuando los documentos presenten muchos reflejos o destellos por luz interior.
    </Warning>

    #### URL Términos y condiciones

    **Variable:** URL Términos y condiciones

    **Descripción:** El usuario debe aceptar los términos en la pantalla inicial antes de comenzar el proceso.

    **Input:** URL pública (el enlace debe ser de acceso público)
  </Accordion>
</AccordionGroup>

<Info>
  Esta configuración es **global para tu empresa**: si la modificas, se actualizará en todos los flujos que usen biometría WebView.
</Info>

## Reporte

Por defecto se genera un reporte con los siguientes campos.

<AccordionGroup>
  <Accordion title="Campos del reporte" icon="file-lines">
    | **Campo**                | **Descripción**                                      |
    | ------------------------ | ---------------------------------------------------- |
    | Código de Biometría      | Identificador único del proceso                      |
    | Fecha y Hora             | Timestamp de la verificación                         |
    | Resultado Biometría      | Aprobado / Desaprobado                               |
    | Número de Identificación | Documento del usuario                                |
    | Tipo de Identificación   | Tipo de documento                                    |
    | Nombres                  | Nombres del usuario                                  |
    | Apellidos                | Apellidos del usuario                                |
    | Celular                  | Teléfono                                             |
    | Foto                     | URL de la selfie                                     |
    | Resultado Prueba de Vida | Aprobado / Desaprobado                               |
    | Foto Documento Delantera | URL                                                  |
    | Foto Documento Posterior | URL                                                  |
    | Resultado Document Check | Aprobado / Desaprobado                               |
    | Foto Rostro en Documento | URL                                                  |
    | Resultado Facematch      | Porcentaje de coincidencia                           |
    | Reporte de Biometría     | URL del reporte                                      |
    | Descripción de Fallo     | Detalle del error                                    |
    | Observaciones            | Notas adicionales                                    |
    | User Agent               | Cadena del agente de usuario del navegador           |
    | Browser                  | Navegador (ej. Chrome)                               |
    | Operating System         | Sistema operativo del dispositivo                    |
    | Platform                 | Plataforma (ej. Linux aarch64)                       |
    | Language                 | Idioma configurado (ej. es-US)                       |
    | Timezone                 | Zona horaria (ej. America/Guayaquil)                 |
    | Screen Resolution        | Resolución de pantalla (ej. 376x835)                 |
    | Color Depth              | Profundidad de color en bits                         |
    | Timestamp (device)       | Marca de tiempo del dispositivo                      |
    | IP Address               | Dirección IP desde la que se realizó la verificación |
    | Latitude                 | Latitud de la ubicación                              |
    | Longitude                | Longitud de la ubicación                             |
    | Device ID                | Identificador único del dispositivo                  |
    | Device Name              | Nombre del dispositivo (ej. Linux - Chrome)          |

    <Info>
      El reporte biométrico se encuentra disponible para descargarlo en formato **PDF** y utilizarlo para auditoría o respaldo interno.
    </Info>

    <Warning>
      **Ubicación en el reporte:** Los datos de ubicación (latitud, longitud) dependen del permiso otorgado por el usuario. Si el usuario deniega el acceso a la ubicación o el dispositivo tiene desactivado el uso de ubicación, estos campos no estarán disponibles en el reporte.
    </Warning>
  </Accordion>
</AccordionGroup>

## Preguntas frecuentes

<AccordionGroup>
  <Accordion title="¿Qué documentos se necesitan durante el proceso biométrico?">
    Se requieren fotos del **documento de identidad por ambos lados**: frontal y reverso.
  </Accordion>

  <Accordion title="¿En qué se diferencia la biometría WebView de Flows o conversacional?">
    WebView abre un enlace dedicado con captura guiada; el reporte incluye **datos de dispositivo** (navegador, SO, resolución, zona horaria, IP, device ID) y **ubicación** si el usuario concede permiso. Puedes ajustar **colores** (fondo, textos, botones, stepper), **idioma de la UI** y opciones de seguridad descritas en la guía de personalización; los **widgets de captura** no son editables. Conversacional usa **video** en el chat; Flows usa **foto** dentro de WhatsApp Flows con reglas propias de galería y UI nativa.
  </Accordion>

  <Accordion title="¿Puedo personalizar colores e idioma de la UI?">
    Sí: colores de fondo, de textos, de botones y del stepper; idioma de la UI (Español/Inglés) y, si aplica, selector de idioma para el usuario. El color del stepper también aplica a los widgets. Los widgets de captura facial y de documento no son modificables.
  </Accordion>

  <Accordion title="¿Cuántos outputs tiene este agente?">
    Tiene **1 output de éxito** (Biometría Aprobada) y **3 outputs de error** (Proceso abandonado, Biometría Rechazada, Error en el proceso). Cada uno puedes dirigirlo a mensaje personalizado o Connect.
  </Accordion>

  <Accordion title="¿Qué pasa si estoy teniendo muchos documentos rechazados?">
    Para clientes en pruebas es común reportar demasiados rechazos en WebView. En la mayoría de los casos, la causa es un nivel de análisis documental muy riguroso para el país. Revisa la sección **Validaciones** y ajusta el nivel documental según la configuración recomendada por país.
  </Accordion>

  <Accordion title="¿Si tapo parte del documento que contiene información relevante, igual aprueba la verificación de documento?">
    En la etapa de verificación de documento se identifica el tipo de documento (país, año de emisión) y se compara contra una plantilla. Si el documento hace match y no presenta rasgos de manipulación, se aprueba, extrayendo los datos por medio de OCR — lo cual incluye firma, foto ghost, portrait, chip (si el documento cuenta con este elemento de seguridad), etc. Si el elemento que cubre el documento no oculta información relevante, este puede ser aprobado; pero si la validación contra el Registro gubernamental está activa y los datos no son correctos, la biometría será rechazada.
  </Accordion>
</AccordionGroup>
