For the complete documentation index, see llms.txt. This page is also available as Markdown.

Integración basada en comprobaciones

Crea flujos de KYC y verificación de identidad basados en comprobaciones en apps de Flutter.

Descripción general

Esta guía le muestra cómo integrar el SDK de Flutter con ComplyCube utilizando el enfoque basado en comprobaciones, dándote control directo sobre cada paso de verificación individual.

Vista del SDK móvil

Flujo de integración

El SDK móvil se ejecuta en tu aplicación móvil, pero depende de tu backend para crear tokens seguros. Así es como funciona:

1

Crear un cliente

Registrar un nuevo cliente (es decir, cliente) usando la API de ComplyCube.

2

Generar un token del SDK

Tu backend solicita un token JWT vinculado a ese cliente.

3

Inicializa el SDK en tu aplicación móvil

Pasa el token y la configuración al inicializador del SDK.

4

Captura documentos, vídeos y selfies

El SDK guía a tu cliente a través de los pasos requeridos.

5

Realizar comprobaciones

Los datos capturados se envían de forma segura a ComplyCube para las comprobaciones de verificación, y los resultados se entregan en tiempo real a través de la API o de webhooks.

Flujo de integración del SDK móvil

Guía de integración

Explore el código fuente y los proyectos de ejemplo en nuestro repositorio: GitHub.

1

Instale el SDK

  1. Instala el ComplyCube Flutter instalando ejecutando:

  2. iOS

    1. Completa los pasos 1 y 2 en la iOS pestañas.

    2. Añade el fragmento de código siguiente a tu ios/PodFile y ejecuta el pod install comando.

    3. Completa pasos de permisos de la aplicación en la iOS pestañas.

  3. Android

    1. Completa los pasos en las Android pestaña.

objetivo de implementación de iOS

2

Crear un cliente

Todo flujo de verificación comienza con un cliente (es decir, cliente). Usa la API para crear el cliente.

Esto debe hacerse en tu backend de la app móvil servidor, no en la propia aplicación móvil.

Ejemplo de solicitud

Ejemplo de respuesta

La respuesta contendrá un id (el ID del cliente). Es necesario para el siguiente paso.

Consulta Referencia de la API de clientes para obtener más información.

3

Genera un token del SDK

Tu backend debe crear un token del SDK para cada nuevo flujo. Este token permite a los clientes enviar datos personales de forma segura desde tu app móvil a ComplyCube.

Los tokens tienen una vida útil corta y no deben reutilizarse.

Ejemplo de solicitud

Ejemplo de respuesta

Consulta Referencia de la API de tokens del SDK para obtener más información.

4

Prepara las etapas

Configura las etapas que deseas incluir en tu flujo.

5

Inicialice el SDK

Ahora puedes inicializar un flujo. La secuencia de etapas que especifiques determina el orden en que tu cliente ve esas etapas.

6

Realizar checks

Usando los resultados devueltos en la onSuccess callback, puedes activar tu backend móvil para ejecutar las comprobaciones necesarias en tu cliente.

Por ejemplo, usa el resultado de una captura de selfie y documento de la siguiente manera:

Ejemplo de solicitud para una comprobación de documento

Si has configurado webhooks como se describe en nuestra guía de webhooks, se te notificará una vez que un check se complete.

Para recuperar los resultados del check, puedes realizar una solicitud GET de check.

7

Recuperar los resultados de la verificación

Tu backend móvil puede recuperar todos los resultados de las comprobaciones usando nuestra API.

Todas nuestras comprobaciones son asíncronas. Si has configurado webhooks como se describe en nuestra guía de webhooks, se te notificará una vez que un check se complete.

Para recuperar los resultados del check, puedes realizar una solicitud GET de check.

Ejemplo de solicitud

Etapas

Cada etapa del flujo puede personalizarse para crear el recorrido ideal para tus clientes.

El fragmento a continuación muestra cómo configurar un flujo personalizado utilizando el SDK móvil de ComplyCube.

Bienvenido

La pantalla de bienvenida siempre se muestra primero en el flujo de verificación. Muestra un mensaje de bienvenida junto con un resumen de las etapas configuradas que el usuario completará.

Puedes personalizar el título de la pantalla para que se alinee con el tono y la identidad de tu aplicación.

Consentimiento

Esta etapa se utiliza para recopilar el consentimiento explícito del usuario antes de continuar con el flujo de verificación. Le ayuda a cumplir con los requisitos regulatorios y de conformidad cuando corresponda.

Puede personalizar el título y el mensaje de la pantalla para que se adapten a sus necesidades legales o de marca.

Selfie en foto y video

Puede solicitar una foto selfie (es decir, una Foto en vivo) o un video selfie (es decir, un Video en vivo) del cliente como parte del proceso de verificación biométrica.

  • Foto: Captura una imagen estática y realiza una comprobación pasiva de vitalidad antes de permitir el envío.

  • Video: Graba un video corto en el que el usuario completa un reto en pantalla (p. ej., movimiento de la cabeza o una frase hablada).

Documento

La fase de Documento permite a los usuarios seleccionar y capturar un documento de identidad para su verificación (p. ej., pasaporte, documento de identidad, permiso de residencia). Puede personalizar estas pantallas para:

  • Limitar el alcance de los tipos de documento que el cliente puede seleccionar, por ejemplo, solo Pasaporte.

  • Configurar los países emisores de documentos permitidos para cada tipo de documento.

  • Añadir o quitar la captura automatizada mediante asistencia inteligente.

  • Mostrar u ocultar las pantallas de instrucciones antes de la captura.

  • Establecer un límite de reintentos para permitir que los clientes avancen en el recorrido independientemente de la calidad de la captura.

Si proporciona solo un tipo de documento, se omitirá la pantalla de selección del tipo de documento. La pantalla de selección de país se omitirá si proporciona un único país para un tipo de documento determinado.

Puede controlar si las pantallas de instrucciones se muestran antes de cada captura con cámara habilitando o deshabilitando el modo de guía. Deshabilite la guía solo si sus usuarios ya están claramente informados sobre los pasos de captura, ya que estas pantallas ayudan a reducir los errores de los usuarios y a mejorar la calidad de la captura.

Tenga en cuenta que el retryLimit que configure aquí tendrá prioridad sobre el límite de reintentos que se haya establecido globalmente en sus configuración de automatización.

Captura NFC

El SDK móvil de ComplyCube admite lectura basada en NFC chip RFID la lectura de documentos de identidad equipados con chips integrados. Esto permite una extracción de datos segura y una autenticación documental de alta fiabilidad.

Póngase en contacto con su Gerente de cuenta o soporte para obtener acceso a nuestro SDK móvil con compatibilidad NFC.

Requisitos previos

Para usar esta función, tu aplicación debe tener la lectura de etiquetas de Comunicación de Campo Cercano habilitada. Para añadir esta capacidad a tu aplicación, consulta la guía de Apple aquí.

  1. Instala el CocoaPods Artifactory plugin ejecutando el siguiente comando en tu terminal:

  2. Para añadir la biblioteca, copia las credenciales de tu repositorio en un .netrc archivo en tu directorio de inicio y configura el repositorio:

    Recuerda obtener tus credenciales de JFrog usando el Configurar botón aquí.

  3. Añade repositorios de plugins e instala el pod usando tu Podfile:

  4. Debes añadir las siguientes claves a tu aplicación Info.plist archivo:

  5. Para leer correctamente las etiquetas NFC, debes añadir las siguientes entradas al target de tu aplicación Info.plist archivo:

  6. Añade lo siguiente en tu Runner.entitlements archivo:

  7. Para habilitar NFC al compilar tu app de iOS, pasa la USE_CCNFC variable de entorno durante la compilación:

    Para mantener esto habilitado en todas las compilaciones de iOS, añade la siguiente línea cerca de la parte superior de tu ios/Podfile:

Habilitar captura NFC

Captura de dirección

Esta etapa permite a los usuarios introducir manualmente su dirección residencial. Puede personalizarla para:

  • Restringir la entrada a países específicos

  • Activar o desactivar la función de autocompletado de direcciones para una introducción más rápida y precisa

Comprobante de domicilio

Esta etapa permite a los clientes enviar un documento que verifique su dirección residencial. Puede configurar qué tipos de documentos se aceptan, como facturas de servicios públicos o extractos bancarios, y elegir si los clientes pueden cargar un archivo o si deben capturar el documento en vivo usando la cámara de su dispositivo.

De forma predeterminada, esta etapa incluye la etapa de captura de dirección con el autocompletado habilitado para ayudar a los usuarios durante la entrada. El autocompletado se puede deshabilitar si no es necesario.

Finalización

Puede incluir una etapa de finalización al final del flujo para confirmar que el proceso se ha completado correctamente. Esta pantalla proporciona un punto final claro para el usuario y puede personalizarse para mostrar un mensaje de confirmación o los siguientes pasos.

Identidad de marca

El SDK te permite personalizar la interfaz de usuario para que coincida con la identidad visual de tu aplicación. Puedes definir los colores principal y de acento durante la configuración para alinear el flujo de verificación con las directrices de tu marca. Obtén más información sobre nuestras propiedades de apariencia (ver más abajo).

Para desactivar la visualización del encabezado en el widget del SDK de ComplyCube en Android, por favor inserte la siguiente línea en styles.xml:

Propiedades de apariencia
Propiedad de apariencia
Descripción

primaryButtonBgColor

Color de fondo del botón de acción principal.

primaryButtonTextColor

Color del texto del botón de acción principal.

primaryButtonBorderColor

Color del borde del botón de acción principal.

secondaryButtonBgColor

Color de fondo del botón secundario.

secondaryButtonPressedBgColor

Color de fondo del botón de acción secundaria al pulsarlo. No es compatible con Android.

secondaryButtonTextColor

Color del texto del botón de acción secundaria.

secondaryButtonBorderColor

Color del borde del botón de acción secundaria.

documentTypeSelectorBgColor

Color del botón de selección del tipo de documento.

documentTypeSelectorBorderColor

Color del borde del botón de selección del tipo de documento.

documentTypeSelectorTitleTextColor

Color del texto del título de selección del tipo de documento.

documentTypeSelectorDescriptionTextColor

Color del texto de la descripción de selección del tipo de documento.

documentTypeSelectorIconColor

Color del icono de selección del tipo de documento.

bodyTextColor

Color del texto del cuerpo de la pantalla.

linkButtonTextColor

Color de los enlaces. No es compatible con Android.

headingTextColor

Color del texto del título principal.

subheadingTextColor

Color del texto del subtítulo.

infoPanelTitleColor

Color del título del panel de información.

infoPanelDescriptionTextColor

Color del texto de la descripción del panel de información.

infoPanelBgColor

Color de fondo del panel de información.

infoPanelIconColor

Color del icono del panel de información.

errorPanelTitleColor

Color del título del panel de error.

errorPanelDescriptionTextColor

Color del texto de la descripción del panel de error.

errorPanelBgColor

Color de fondo del panel de error.

errorPanelIconColor

Color del icono del panel de error.

cameraButtonBgColor

Color de fondo del botón de captura de la cámara.

uiInterfaceStyle

Configura el SDK para usar el modo oscuro, el modo claro o el heredado del sistema.

Localización

El SDK es compatible con varios idiomas, incluidos los que se enumeran a continuación.

  • Árabe - ar 🇦🇪

  • Chino (simplificado) - zh 🇨🇳

  • Chino (tradicional) - hk 🇨🇳

  • Neerlandés - nl 🇳🇱

  • Inglés - en 🇺🇸

  • Francés - fr 🇫🇷

  • Alemán - de 🇩🇪

  • Hindi - hi 🇮🇳

  • Indonesio - id 🇮🇩

  • Italiano - it 🇮🇹

  • Japonés - ja 🇯🇵

  • Coreano - ko 🇰🇷

  • Noruego - no 🇳🇴

  • Polaco - po 🇵🇱

  • Portugués - pt 🇵🇹

  • Español - es 🇪🇸

  • Sueco - sv 🇸🇪

  • Tailandés - th 🇹🇭

  • Vietnamita - vi 🇻🇳

  • y más...

Gestión de resultados

Para ejecutar comprobaciones de verificación, debe implementar los éxito, cancelado, y error callbacks.

Al completarse correctamente (onSuccess), puede activar solicitudes de comprobación desde su backend utilizando los IDs de recursos devueltos en el objeto de resultado. Estos IDs corresponden a los activos cargados (p. ej., documentos, selfies) y pueden usarse para iniciar comprobaciones de verificación a través de la API de ComplyCube.

Si el usuario abandona el flujo antes de completarlo, el onCancelled callback se invoca con un motivo descriptivo que indica por qué se canceló la sesión (p. ej., salida del usuario, tiempo de espera agotado, permiso denegado)

En algunos casos, el cliente puede cancelar el flujo después de completar una o más etapas de captura. Si esto ocurre, es posible que cualquier dato capturado antes de la cancelación, como documentos o medios biométricos, ya se haya cargado en su registro de cliente.

Si el SDK encuentra un problema, el onError callback se activa con un ComplyCubeError objeto que contiene el tipo de error y el mensaje. Consulte los códigos de error (véase a continuación) para obtener una lista completa de los posibles casos de error.

Códigos de error
Tipo de error
Descripción

BiometricStageCount

La configuración incluye duplicados foto de selfie o video de selfie etapas.

Cancelado

El cliente canceló el flujo y salió del SDK (activó la onCancelled devolución de llamada).

Conectividad

Se ha producido un error de red.

DocumentMandatory

Una etapa de documento es obligatorio según las etapas configuradas, pero no se ha incluido.

ExpiredToken

El token del SDK ha expirado. Genere un nuevo token y reinicie el flujo.

FlowError

Se produjo un error irrecuperable durante el flujo.

InvalidCountryCode

Se proporcionó un código de país no válido.

JailBroken

El SDK no puede ejecutarse en este dispositivo porque ha sido liberado de restricciones (jailbreak) o comprometido.

NoDiskAccess

El cliente denegó los permisos de acceso al disco requeridos por el SDK.

NoDocumentTypes

Una etapa de documento se inicializó sin especificar ningún tipo de documento.

NoResult

No se devolvió ningún resultado a la devolución de llamada. Si esto persiste, póngase en contacto con soporte.

NoUserConsent

El cliente no ha dado su consentimiento para continuar con el flujo del SDK.

NotAuthorized

El SDK intentó acceder a un extremo para el que no está autorizado.

Desconocido

Se produjo un error inesperado. Si esto ocurre repetidamente, contacte con soporte.

UnsupportedCountryTypeCombination

La combinación de país y tipo de documento seleccionada no es compatible.

UnsupportedDocumentType

El tipo de documento proporcionado no es compatible.

UploadError

Se produjo un error al cargar un documento o una selfie.

UploadRequireGuidance

Si useLiveCaptureOnly está configurado en false, la guía debe habilitarse configurando isGuidanceEnabled en true.

Seguimiento de eventos

El SDK registra una variedad de eventos durante todo el flujo de verificación, cubriendo todas las interacciones clave del usuario en cada etapa. Consulte a continuación la lista de eventos.

Si necesita implementar analíticas personalizadas, puede conectarse a estos eventos y activar su propia lógica de seguimiento en consecuencia.

Para incorporar tu propio seguimiento, define una función y aplícala usando el onCustomEvent propiedad al inicializar el widget de Flutter:

Eventos
Evento

INTRODUCCIÓN El cliente llegó a la pantalla de introducción.

ETAPA_DE_CONSENTIMIENTO El cliente llegó a la pantalla de consentimiento.

ADVERTENCIA_DE_ETAPA_DE_CONSENTIMIENTO El cliente intentó salir sin dar su consentimiento.

PERMISO_DE_ACCESO_A_LA_CÁMARA El cliente llegó a la pantalla de solicitud de permiso de la cámara.

ETAPA_DE_GUÍA_DE_CAPTURA_DE_DOCUMENTO El cliente llegó a la pantalla de guía de captura de documentos.

ETAPA_DE_TIPO_DE_DOCUMENTO El cliente llegó a la pantalla de selección del tipo de documento para una captura de documento.

ETAPA_DE_SELECCIÓN_DE_PAÍS El cliente llegó a la pantalla de selección de país para una captura de documento.

ETAPA_DE_CÁMARA_DE_DOCUMENTO_DE_UNA_CARA El cliente llegó a la etapa de captura con cámara para un documento de identificación de una sola cara.

ETAPA_DE_CÁMARA_MANUAL_DE_DOCUMENTO_DE_UNA_CARA El cliente llegó a la pantalla de captura manual con cámara de un documento de identificación de una sola cara.

ETAPA_DE_REVISIÓN_DE_CALIDAD_DE_DOCUMENTO_DE_UNA_CARA El cliente llegó a la pantalla de vista previa de calidad para un documento de identificación de una sola cara.

ETAPA_DE_CÁMARA_DELANTERA_DE_DOCUMENTO_DE_DOS_CARAS El cliente llegó a la pantalla de captura con cámara para la cara frontal de un documento de identificación de dos caras.

ETAPA_DE_CÁMARA_MANUAL_DELANTERA_DE_DOCUMENTO_DE_DOS_CARAS El cliente llegó a la pantalla de captura manual con cámara para la cara frontal de un documento de identificación de dos caras.

ETAPA_DE_REVISIÓN_DE_CALIDAD_DELANTERA_DE_DOCUMENTO_DE_DOS_CARAS El cliente llegó a la pantalla de vista previa de calidad para la cara frontal de un documento de identificación de dos caras.

ETAPA_DE_CÁMARA_POSTERIOR_DE_DOCUMENTO_DE_DOS_CARAS El cliente llegó a la pantalla de captura con cámara para la cara posterior de un documento de identificación de dos caras.

ETAPA_DE_CÁMARA_MANUAL_POSTERIOR_DE_DOCUMENTO_DE_DOS_CARAS El cliente llegó a la pantalla de captura manual con cámara para la cara posterior de un documento de identificación de dos caras.

ETAPA_DE_REVISIÓN_DE_CALIDAD_POSTERIOR_DE_DOCUMENTO_DE_DOS_CARAS El cliente llegó a la pantalla de vista previa de calidad para la cara posterior de un documento de identificación de dos caras.

ETAPA_DE_GUÍA_DE_CAPTURA_DE_SELFIE El cliente llegó a la pantalla de guía de captura de selfie.

ETAPA_DE_CÁMARA_DE_SELFIE El cliente llegó a la pantalla de cámara para capturar la foto de selfie.

ETAPA_DE_CÁMARA_MANUAL_DE_SELFIE El cliente llegó a la pantalla de cámara para capturar manualmente la foto de selfie.

ETAPA_DE_REVISIÓN_DE_CALIDAD_DE_SELFIE El cliente llegó a la pantalla de revisión de la foto capturada de la selfie.

ETAPA_DE_CÁMARA_DE_VIDEO_SELFIE El cliente llegó a la pantalla de cámara para selfie en video.

ETAPA_DE_CÁMARA_MANUAL_DE_VIDEO_SELFIE El cliente llegó a la pantalla de captura manual con cámara para una selfie en video.

ETAPA_DE_ACCIÓN_DE_VIDEO_SELFIE_UNO El cliente llegó a la primera acción en una captura de selfie en video.

ETAPA_DE_ACCIÓN_DE_VIDEO_SELFIE_DOS El cliente llegó a la segunda acción en una captura de selfie en video.

ETAPA_DE_REVISIÓN_DE_CALIDAD_DE_VIDEO_SELFIE El cliente llegó a la pantalla de cámara para captura manual de selfie en video.

ETAPA_DE_GUÍA_DE_CAPTURA_DE_COMPROBANTE_DE_DOMICILIO El cliente llegó a la pantalla de guía de captura de comprobante de domicilio.

ETAPA_DE_TIPO_DE_DOCUMENTO_DE_COMPROBANTE_DE_DOMICILIO El cliente llegó a la pantalla de selección del tipo de documento para una captura de comprobante de domicilio.

ETAPA_DE_SELECCIÓN_DE_PAÍS_DE_COMPROBANTE_DE_DOMICILIO El cliente llegó a la pantalla de selección de país para una captura de comprobante de domicilio.

ETAPA_DE_CÁMARA_DE_COMPROBANTE_DE_DOMICILIO_DE_UNA_CARA El cliente llegó a la etapa de captura con cámara para un comprobante de domicilio de una sola cara.

ETAPA_DE_CÁMARA_MANUAL_DE_COMPROBANTE_DE_DOMICILIO_DE_UNA_CARA El cliente llegó a la etapa de captura manual con cámara para un comprobante de domicilio de una sola cara.

ETAPA_DE_REVISIÓN_DE_CALIDAD_DE_COMPROBANTE_DE_DOMICILIO_DE_UNA_CARA El cliente llegó a la pantalla de vista previa de calidad para un comprobante de domicilio de una sola cara.

ETAPA_DE_CÁMARA_DELANTERA_DE_COMPROBANTE_DE_DOMICILIO_DE_DOS_CARAS El cliente llegó a la etapa de captura con cámara para la cara frontal de un comprobante de domicilio de dos caras.

ETAPA_DE_CÁMARA_MANUAL_DELANTERA_DE_COMPROBANTE_DE_DOMICILIO_DE_DOS_CARAS El cliente llegó a la etapa de captura manual con cámara para la cara frontal de un comprobante de domicilio de dos caras.

ETAPA_DE_REVISIÓN_DE_CALIDAD_DELANTERA_DE_COMPROBANTE_DE_DOMICILIO_DE_DOS_CARAS El cliente llegó a la pantalla de vista previa de calidad para la cara frontal de un comprobante de domicilio de dos caras.

ETAPA_DE_CÁMARA_POSTERIOR_DE_COMPROBANTE_DE_DOMICILIO_DE_DOS_CARAS El cliente llegó a la etapa de captura con cámara para la cara posterior de un comprobante de domicilio de dos caras.

ETAPA_DE_CÁMARA_MANUAL_POSTERIOR_DE_COMPROBANTE_DE_DOMICILIO_DE_DOS_CARAS El cliente llegó a la etapa de captura manual con cámara para la cara posterior de un comprobante de domicilio de dos caras.

ETAPA_DE_REVISIÓN_DE_CALIDAD_POSTERIOR_DE_COMPROBANTE_DE_DOMICILIO_DE_DOS_CARAS El cliente llegó a la pantalla de vista previa de calidad para la cara posterior de un comprobante de domicilio de dos caras.

ETAPA_DE_FINALIZACIÓN El cliente ha llegado a la pantalla de finalización.

Gestión de vencimiento del token

Para gestionar la expiración del token de forma fluida, puedes proporcionar una función de devolución de llamada que genere un nuevo token del SDK cuando sea necesario. Esto permite que el flujo continúe sin interrupciones, sin que el usuario tenga que reiniciar la sesión manualmente.