Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
En esta sección, encontrarás todas las especificaciones técnicas de las APIs REST de la plataforma Unico IDCloud
Loading...
Loading...
En esta sección, encontrará recursos adicionales relacionados con la integración
Loading...
Loading...
Loading...
En esta sección, encontrará todas las especificaciones técnicas de los SDK disponibles de la plataforma Unico IDCloud.
Loading...
Loading...
En esta sección, encontrará toda la información necesaria para implementar los SDKs de la plataforma Unico IDCloud.
En esta sección, encontrará toda la información necesaria para implementar el SDK Android de la plataforma Unico IDCloud.
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Nesta seção, você encontrará todas as informações necessárias pra implementar o SDK iOS da plataforma Unico IDCloud
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
En esta sección, encontrará toda la información necesaria para implementar el SDK Flutter de la plataforma Unico IDCloud.
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
En esta sección, encontrará toda la información necesaria para implementar el SDK Web de la plataforma Unico IDCloud.
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Nesta seção, você encontrará os recursos adicionais relacionados à SDK
Loading...
Loading...
Loading...
Aquí encontrarás la información técnica de las API REST de la plataforma Unico IDCloud
¡Bienvenido a la documentación de las API REST de la plataforma Unico IDCloud! En esta página, encontrarás todo lo que necesitas saber para mejorar la seguridad y la calidad de tus aplicaciones utilizando nuestra API REST.
¿No encontraste algo o aún necesitas ayuda? Si ya eres cliente o socio, puedes ponerte en contacto a través del Centro de Ayuda.
☁ Sobre o IDCloud
Comienza la lectura conociendo más sobre la plataforma IDCloud.
🔑 Sobre la Autenticación
Consulta las especificaciones técnicas de la autenticación para utilizar las API de la plataforma IDCloud.
🔒 Sobre las APIs
Consulta las especificaciones técnicas de las API de la plataforma IDCloud.
⚙ Sobre los SDKs
Sigue el paso a paso para implementar los SDK de la plataforma IDCloud.
En esta sección, encontrarás cómo realizar el proceso de autenticación en la plataforma Unico IDCloud
Después de crear y configurar una cuenta de servicio, tu aplicación debe completar las siguientes etapas:
Crear un JSON Web Token (JWT), que incluye el encabezado, el payload y la firma.
Solicitar un token de acceso (AccessToken) a la plataforma de autenticación OAuth2.
Procesar la respuesta JSON que la plataforma de autenticación devolverá.
Si en la respuesta está incluido un token de acceso, podrás utilizarlo para hacer solicitudes a las APIs de los productos de Unico a los que la cuenta de servicio tenga permisos de acceso. (Si en la respuesta no se incluye un token de acceso, tu JWT y la solicitud para obtener el token pueden estar incorrectos o la cuenta de servicio puede no tener los permisos necesarios para acceder a los recursos solicitados).
El token de acceso generado en la solicitud mencionada anteriormente tiene una validez predeterminada de 3600 segundos, aunque puede variar según la configuración de seguridad establecida para tu empresa. Cuando el token de acceso expire, tu aplicación deberá generar un nuevo JWT, firmarlo y solicitar un nuevo token de acceso a la plataforma de autenticación.
Un JWT está compuesto por tres partes: un encabezado, un payload y una firma. El encabezado y el payload son objetos JSON. Estos objetos JSON se serializan en UTF-8 y luego se codifican utilizando codificación Base64url¹. Esta codificación proporciona resistencia contra alteraciones de codificación en casos de operaciones repetidas de codificación. El encabezado, el payload y la firma se concatenan con un carácter de punto final (".").
Un JWT se compone de la siguiente forma:
El texto base para la firma se compone de la siguiente manera:
El encabezado consiste en dos campos que indican el algoritmo de firma y el formato del token. Ambos campos son obligatorios y cada campo tiene solo un valor. Las cuentas de servicio dependen del algoritmo RSA SHA-256 y del formato de token JWT. Como resultado, la representación JSON del encabezado es la siguiente:
La representación en Base64url es la siguiente:
El payload JWT contiene información sobre el JWT, incluyendo los permisos solicitados (alcances), la cuenta que solicita el acceso, el emisor, el momento en que se emitió el token y el tiempo de vida del token. La mayoría de los campos son obligatorios. Al igual que el encabezado JWT, el payload es un objeto JSON y se utiliza en la composición de la firma.
Los campos obligatorios en el JWT se muestran en la siguiente tabla. Pueden aparecer en cualquier orden dentro del payload.
iss
El identificador de la cuenta de servicio en la empresa.
scope
Una lista delimitada por espacios o por el signo de más + de los permisos que la aplicación está solicitando. Si todos los permisos de la cuenta son necesarios, utilizar el signo de asterisco * para ello.
aud
Casos recurrentes que NO funcionan:
exp
El tiempo de expiración del token, especificado en segundos desde 00:00:00 UTC, 1 de enero de 1970. Este valor tiene un tiempo máximo de 1 hora después del momento de emisión del JWT. Este valor debe ser numérico. Casos recurrentes que NO funcionan:
Uso de comillas para delimitar el valor. Ej.: “1524161193” es una cadena de texto y no funcionará. Mientras que 1524161193 es un número y funcionará.
iat
El momento de emisión del JWT, especificado en segundos desde 00:00:00 UTC, 1 de enero de 1970. Este valor debe ser numérico.
Uso de comillas para delimitar el valor. Ej.: “1524161193” es una cadena de texto y no funcionará. Mientras que 1524161193 es un número y funcionará.
Entienda cómo funciona la conversión de los campos de emisión (iat) y expiración (exp) del JWT, y vea también ejemplos de uso de los valores de los campos aquí. Además, el campo "iat" debe ser la hora actual en el formato requerido y el "exp" debe seguir la fórmula a continuación:
La representación de los campos JSON obligatorios en el payload del JWT se muestra de la siguiente manera:
La especificación JSON Web Signature (JWS)² es la mecánica que guía el cálculo de la firma para un JWT. El contenido de entrada para el cálculo de la firma es el array de bytes del siguiente contenido:
El mismo algoritmo indicado en el encabezado del JWT debe ser utilizado para el cálculo de la firma. El único algoritmo de firma soportado por la plataforma de autenticación OAuth2 es RSA utilizando SHA-256. Este se expresa como RS256 en el campo alg del encabezado del JWT.
Firme la representación UTF-8 del contenido de entrada utilizando SHA256withRSA (también conocido como RSASSA-PKCS1-V1_5-SIGN con el hash SHA-256) con la clave privada que fue creada y asociada con la cuenta de servicio (archivo .key.pem generado por la solicitud recibida por correo electrónico). El contenido de salida será un array de bytes.
La firma debe ser luego codificada en Base64url. El encabezado, el payload y la firma deben ser concatenados con el carácter de punto final. El resultado es el JWT. Debe ser de la siguiente forma:
A continuación se muestra un ejemplo del token JWT antes de la codificación en Base64url:
A continuación se muestra un ejemplo del JWT que ha sido firmado y está listo para la transmisión:
También es posible utilizar bibliotecas previamente establecidas para realizar la creación del JWT. Como referencia, es posible encontrar una lista de bibliotecas en el sitio jwt.io.
Después de la generación del JWT firmado, una aplicación puede utilizarlo para solicitar un token de acceso (Access Token). La solicitud del token de acceso es una solicitud POST HTTPS y el cuerpo debe ser URL encoded. La URL es la mostrada a continuación:
Los parámetros a continuación son obligatorios en la solicitud POST HTTPS:
grant_type
Utilice el siguiente texto, codificado en URL si es necesario: urn:ietf:params:oauth:grant-type:jwt-bearer
assertion
El JWT, incluida la firma.
Si el JWT y la solicitud del token de acceso fueron formados adecuadamente y la cuenta de servicio tiene los permisos necesarios, la respuesta de la plataforma de autenticación devuelve un objeto JSON que contiene un token de acceso. A continuación se muestra un ejemplo de respuesta de la plataforma:
El token de acceso devuelto en el campo “access_token” del objeto JSON también es un token JWT que debe ser utilizado en las APIs de los productos de unico. Si se devuelve un error en la solicitud, es posible consultar el tipo de error en la tabla de errores haciendo clic aquí.
La duración del token de acceso es variable. Su duración es especificada en el campo “expires_in”, devuelto junto con el token de acceso. Se debe utilizar el mismo token de acceso durante su validez para todas las llamadas a las APIs de los productos.
No solicite un nuevo token de acceso hasta que la validez del token actual esté llegando a su fin. Sugerimos un margen de 600 segundos (10 minutos). Para ello, ejecute el cálculo: token decodificado:
Siendo que token.exp es el timestamp de expiración del token.
Por defecto, el token enviado a la empresa tiene una duración de 1h, pero puede ser alterado. La sugerencia es siempre usar el expires_in como base y restar 600s de él para solicitar un nuevo token.
Ejemplos:
Un nuevo token de acceso puede ser solicitado cuando queden 10 minutos para su expiración.
No utilice un tiempo fijo para la obtención de un nuevo token, ya que el tiempo de duración del token recibido puede ser menor que el tiempo establecido, lo que ocasionará fallos en el uso de los servicios.
¹ De acuerdo con la RFC 4648 de codificación BaseN, el formato Base64url es similar al formato Base64, con la excepción de que el carácter = debe ser omitido, y los caracteres + y / deben ser reemplazados por - y _, respectivamente.
² JSON Web Signature: https://tools.ietf.org/html/rfc7515.
¿No encontraste algo o aún necesitas ayuda? Si ya eres cliente o socio, puedes ponerte en contacto a través del Centro de Ayuda.
Dirección de la plataforma de autenticación que emite los tokens de acceso. Este valor debe ser siempre exactamente .
Inclusión de una barra al final de la dirección: ;
Uso del protocolo HTTP en lugar de HTTPS: .
En esta sección, encontrará toda la especificación técnica sobre la forma de autenticación para utilizar las APIs REST de la plataforma IDCloud
Para utilizar la plataforma IDCloud es necesario autenticarte mediante un token de acceso, utilizando el sistema de autenticación conocido como OAuth2.
El sistema de autenticación OAuth2 de Unico soporta la interacción server-to-server entre una aplicación web y los servicios de Unico.
Para este escenario, necesitarás una cuenta de servicio, que es una cuenta impersonal que pertenece a tu aplicación y no a un usuario individual. Tu aplicación llama las APIs de Unico en nombre de la cuenta de servicio, por lo que los usuarios no están directamente involucrados. Este escenario se denomina "two-legged OAuth", o "2LO". Típicamente, una aplicación utiliza una cuenta de servicio cuando llama a las APIs de Unico para trabajar con sus propios datos en lugar de los datos del usuario.
Este es el paso cero para iniciar tu implementación, así que no saltes esta etapa.
¿No encontraste algo o aún necesitas ayuda? Si ya eres cliente o socio, puedes ponerte en contacto a través del Centro de Ayuda.
En esta sección, encontrarás todas las especificaciones técnicas de las APIs REST de la plataforma Unico IDCloud
En esta sección, encontrarás la descripción de todas las capacidades de la plataforma Unico IDCloud.
A continuación, verás detalladamente cómo funciona cada capacidad:
Cuando es necesario identificar si la persona es real y está viva en el momento de la operación. Puede utilizarse de forma aislada o en conjunto con las capacidades de Verificación de Identidad, Alerta de comportamiento, Score de riesgo y Validación (1:1). Debe ser siempre utilizada junto con los SDKs.
Las posibilidades de respuesta son:
SÍ: indica que el usuario está vivo en el momento de la captura de la selfie;
NO: indica que el usuario no está vivo en el momento de la captura de la selfie.
Popularmente, se puede llamar IDLive o Smartlive/Liveness con Interacción.
Cuando es necesario garantizar que el usuario que está realizando el proceso es quien dice ser. Por defecto, siempre se utiliza en conjunto con la capacidad de Prueba de vida.
Las posibilidades de respuesta son:
SÍ: indica que la cara es la del verdadero titular del CURP;
NO: indica que la cara no es la del verdadero titular del CURP;
INCONCLUSO: indica que no tenemos suficientes pruebas para garantizar si la cara es o no la del verdadero titular del CURP.
Popularmente, se puede llamar IDUnico.
El Alerta de Comportamiento complementa la respuesta de Verificación de Identidad, aportando el componente de comportamiento que asegura un riesgo relacionado con esa identidad, debido a un comportamiento fraudulento previo. Solo puede ser utilizado en conjunto con la capacidad de Verificación de Identidad.
Las posibilidades de respuesta son:
SÍ: indica que la cara ya estuvo involucrada en transacciones fraudulentas de identidad;
SOSPECHOSO: indica que la cara ya ha tenido al menos una coincidencia en nuestra base con otro identificador;
INCONCLUSO: indica que no tenemos suficientes indicios para confirmar si la cara está involucrada en transacciones fraudulentas en nuestra base.
Popularmente, pode ser chamado de Trust ou IDTrust.
Cuando es necesario reconocer si la persona en la operación es la misma que realizó el registro. Por defecto, siempre se utiliza en conjunto con la capacidad de Prueba de vida. Solo puede ser utilizado en casos donde ya se haya realizado un proceso de Verificación de Identidad.
Las posibilidades de respuesta son:
SÍ: indica que la cara que está realizando la transacción es la misma que realizó el proceso utilizado como referencia;
NO: indica que la cara que está realizando la transacción no es la misma que realizó el proceso utilizado como referencia.
Popularmente, se puede llamar Token Biométrico o Transacional.
¿No encontraste algo o aún necesitas ayuda? Si ya eres cliente o socio, puedes ponerte en contacto a través del Centro de Ayuda.
En esta sección, encontrarás cómo crear una cuenta de servicio para autenticarte en la plataforma Unico IDCloud
Para utilizar interacciones server-to-server, es necesario solicitar la creación de la cuenta de servicio al gerente de proyectos responsable de tu empresa enviando los siguientes datos: nombre de la empresa, nombre de la aplicación, nombre, correo electrónico y teléfono móvil del responsable de la aplicación en la empresa. Es necesario crear cuentas diferentes para los entornos de Homologación y Producción.
Tras recibir estos datos, se creará una cuenta de servicio responsable de autenticar tu aplicación y te enviaremos un correo electrónico para que se genere el par de claves para la cuenta.
Una credencial de cuenta de servicio incluye un nombre único de cuenta, un identificador de la empresa (Tenant ID) y al menos un par de claves (pública y privada). Al final de la generación de las claves, solo recibirás la clave privada (archivo .key.pem), así como el payload que debe utilizarse para generar el JWT. Este payload tendrá el siguiente formato:
Si necesitas la clave pública para configurar en tu sistema, contacta al gerente de proyectos responsable de tu cuenta. También es posible generar una clave pública mediante el siguiente comando openssl:
¿No encontraste algo o aún necesitas ayuda? Si ya eres cliente o socio, puedes ponerte en contacto a través del Centro de Ayuda.
En esta sección, encontrará recursos adicionales relacionados con la autenticación
En esta sección, encontrarás una visión general de cómo integrarte con la plataforma Unico IDCloud
Conoce todo sobre nuestra plataforma de verificación de identidad Unico IDCloud
IDCloud es la única plataforma de verificación de identidad que combina seguridad con precisión garantizada. Con ella, es posible validar la identidad de los usuarios de manera simple e intuitiva, utilizando solo una selfie, garantizando fluidez y protección en tus procesos de verificación.
La plataforma es versátil y se puede adaptar a diferentes casos de uso, permitiéndote ajustarla según las necesidades de tu escenario. Para ello, ofrecemos diversas capacidades: funcionalidades de nuestra plataforma que atienden a una amplia gama de operaciones y demandas. Para saber más sobre nuestras capacidades, accede a la siguiente página:
Lee más en .
Lee más en .
¿No encontraste algo o aún necesitas ayuda? Si ya eres cliente o socio, puedes ponerte en contacto a través del .
¿No encontraste algo o aún necesitas ayuda? Si ya eres cliente o socio, puedes ponerte en contacto a través del .
¿No encontraste algo o aún necesitas ayuda? Si ya eres cliente o socio, puedes ponerte en contacto a través del .
¿No encontraste algo o aún necesitas ayuda? Si ya eres cliente o socio, puedes ponerte en contacto a través del .
Prueba de vida
Verificación de Identidad
Alerta de comportamiento
Validación (1:1)
1.0.1
Verifique si el ID informado en la formación del "iss" es el ID del tenant correcto, proporcionado en la generación de la clave privada¹.
1.0.14
Verifique con la persona responsable del proyecto si la aplicación utilizada está activa.
1.1.1
El parámetro "scope" no fue informado en el payload del token JWT utilizado en la solicitud.
1.2.4
El token JWT utilizado en la solicitud ha expirado. Verifique el valor informado en el campo "exp" del payload.
1.2.5
El token JWT utilizado en la solicitud no puede ser validado. Verifique los parámetros informados y asegúrese de haberlo firmado correctamente.
1.2.6
La clave privada utilizada en la firma del token JWT utilizado en la solicitud ya no es aceptable. Solicite nuevas credenciales para la cuenta utilizada.
1.2.7
El token JWT utilizado en la solicitud ya no es aceptable, ya que ya ha sido utilizado anteriormente. Genere un nuevo token para realizar una nueva solicitud.
1.2.11
La cuenta utilizada no está activa.
1.2.14
La cuenta utilizada no tiene los permisos necesarios.
1.2.18
La cuenta utilizada ha sido temporalmente bloqueada por exceder la cantidad de intentos fallidos de autenticación.
1.2.19
La cuenta utilizada no está autorizada para impersonar otra cuenta de usuario (elimine el parámetro "sub" del payload).
1.2.20 1.2.21
Error en la decodificación del token JWT utilizado en la solicitud. Utilice un nuevo token insertando solo los campos especificados en las secciones "Campos obligatorios" y "Campos adicionales", respetando la nomenclatura, semántica y tipo de cada campo.
1.2.22
El token JWT utilizado en la solicitud tiene campos adicionales en el payload que no están permitidos. Utilice un nuevo token insertando solo los campos especificados en las secciones "Campos obligatorios" y "Campos adicionales", respetando la nomenclatura, semántica y tipo de cada campo.
1.3.1
La cuenta utilizada tiene restricciones de IP de origen.
1.3.2
La cuenta utilizada tiene restricciones de fecha/hora de acceso.
En esta sección, encontrarás todas la visión general de las APIs REST de la plataforma Unico IDCloud
Las APIs de la plataforma Unico IDCloud ofrecen total libertad para que el cliente utilice las soluciones de validación de identidad de la plataforma de la manera que prefiera.
Su objetivo es proporcionar una variedad de posibilidades en el uso de las capacidades de la plataforma IDCloud, ofreciendo una solución que puede integrarse con tu back-end y brindar libertad a los clientes que deseen controlar la experiencia de los usuarios con un front-end propio (para ello, consulta el Estándar de Captura) o a través de nuestros SDKs.
Las APIs de Unico IDCloud permiten que los clientes se integren de la manera que prefieran, combinando o no las capacidades según sus necesidades. Este medio de integración proporciona los recursos necesarios para realizar la validación de Prueba de Vida, Verificación de Identidad, Alerta de Comportamiento y Validación (1:1).
Puedes combinar las capacidades como desees, incluso en los casos de uso más diversos. Sin embargo, para ello, debes contar con API Keys configuradas con las capacidades que deseas utilizar.
Para solicitar capacidades en la API Key, contacta a la persona responsable de tu proyecto de integración o al equipo de soporte de Unico para realizar esta configuración.
¿No encontraste algo o aún necesitas ayuda? Si ya eres cliente o socio, puedes ponerte en contacto a través del Centro de Ayuda.
En esta sección, encontrará la colección de Postman con la REST API para realizar la autenticación en la plataforma Unico IDCloud
Descargue el archivo a continuación, impórtelo en Postman y sustituya los valores de los parámetros "service_account", "tenant_id" y "secret_key" para probar la llamada.
¿No encontraste algo o aún necesitas ayuda? Si ya eres cliente o socio, puedes ponerte en contacto a través del Centro de Ayuda.
En esta sección, encontrará la colección de Postman con la REST API para realizar las solicituds
¿No encontraste algo o aún necesitas ayuda? Si ya eres cliente o socio, puedes ponerte en contacto a través del Centro de Ayuda.
En esta sección encontrarás todas las especificaciones técnicas de las API REST de IDCloud
En esta sección, encontrarás una visión general sobre los errores que puedes recibir en los endpoints de la plataforma Unico IDCloud
La plataforma IDCloud utiliza códigos de respuesta HTTP convencionales para indicar el éxito o fracaso de una solicitud de API.
Como regla general:
Los códigos en el rango 2xx indican éxito en la solicitud;
Los códigos en el rango 4xx indican parámetros incorrectos o incompletos (por ejemplo, un parámetro obligatorio fue omitido o una operación falló con terceros, etc.);
Los códigos en el rango 5xx indican que hubo un error en los servidores de la plataforma Unico IDCloud.
La plataforma Unico IDCloud también genera un mensaje de error y un código de error formateado en JSON:
¿No encontraste algo o aún necesitas ayuda? Si ya eres cliente o socio, puedes ponerte en contacto a través del Centro de Ayuda.
En esta sección, encontrará toda la información necesaria para el uso e integración del SDK de la plataforma Unico IDCloud en sus aplicaciones Web.
En esta sección, encontrará la política de actualizaciones para el uso del SDK.
Es esencial que todos los clientes mantengan una rutina de actualización del SDK, ya que constantemente se desarrollan nuevas formas de ataque. La mejor manera de proteger su negocio contra nuevos tipos de fraudes de Inyección y Liveness es utilizar la versión más actualizada del SDK de Unico.
Es responsabilidad del cliente mantener una rutina adecuada de actualización del SDK, asegurando la versión mínima necesaria para el buen funcionamiento de nuestras soluciones en sus operaciones. Así como es responsabilidad de Unico ofrecer versiones actualizadas en relación con las amenazas que surgen en el mercado y mantener informados a nuestros clientes sobre el tema. Con esto en mente, Unico ha creado una Política de actualización del SDK.
Con el SDK desactualizado, nuestros clientes están vulnerables a ataques de fraudes. Considerando que Unico prioriza la máxima seguridad de sus clientes, además de la urgencia del tema y la necesidad de un proceso ágil de actualizaciones, se creó la política de actualización del SDK para salvaguardar a nuestros clientes de los fraudes más nuevos que aparecen constantemente en el mercado. La única forma de estar seguro es estar actualizado.
Unico categoriza todas las actualizaciones del SDK entre Críticas y No Críticas, basadas en la criticidad de los fraudes que bloqueamos con la nueva versión.
Actualizaciones Críticas: Son actualizaciones que buscan proteger a nuestros clientes contra fraudes y ataques recientes en el mercado. Deben ser implementadas en un plazo de 5 (cinco) días corridos, debido a la amenaza real a la que está expuesta la operación. A partir de este plazo, no brindaremos más soporte a versiones anteriores. En la práctica, el cliente que se comunique con nosotros con una versión anterior a la última deberá obligatoriamente actualizar el SDK para que podamos atenderlo.
Actualizaciones No Críticas: Son actualizaciones más simples, de mejora tecnológica. Pueden ser implementadas en un plazo de hasta 60 (sesenta) días corridos. Vale la pena enfatizar que, cuanto más actual sea la versión, más posibilidades de evitar errores y fallos. Por eso, recomendamos que se realice la actualización lo más rápido posible. Después de este período, no brindaremos más soporte técnico y el cliente deberá actualizar su SDK para que podamos actuar en los casos.
Identificamos las actualizaciones críticas en las Release Notes con una etiqueta justo debajo de la versión, como se muestra en el siguiente ejemplo:
Actualización Crítica
Estos plazos aplican para todos los clientes de Unico, independientemente de la capacidad utilizada.
Puedes seguir el proceso estándar de actualización o instalación según la versión que estés utilizando: Web, iOS, Android y Flutter.
Las rupturas de contrato de API están restringidas únicamente a las versiones de releases Major (consulta más sobre versionado semántico aquí). Esto significa que cambios significativos en el contrato de la API solo pueden ocurrir con grandes cambios en el SDK, y no en revisiones menores. Nuestra práctica es evitar al máximo cualquier ruptura en una versión Major, ya que impacta en grandes cambios en la integración con el cliente, lo cual no es nuestro objetivo. Solo lo haremos en casos de extrema necesidad y siempre con el objetivo de garantizar la seguridad en todas las operaciones.
Cada una de las versiones tiene sus propios release notes según los enlaces a continuación, presentando nuevas funcionalidades o correcciones de errores / bloqueos de fraudes: Android, iOS, Flutter y Web.
Cada vez que haya una nueva versión del SDK, el sitio https://unicoidtech.gitbook.io/idcloud/integracao/sdk será actualizado. Si eres cliente de Unico, recibirás un correo electrónico con las actualizaciones e información sobre los cambios. Si no estás recibiendo estos correos, contacta a tu CSM.
Para actualizaciones críticas: Enviaremos un correo electrónico tan pronto como la nueva versión esté disponible, con un refuerzo por parte del equipo de Customer Success, informando sobre la urgencia del tema y el plazo de 5 (cinco) días corridos para la actualización.
Para actualizaciones no críticas: Para evitar la sobrecarga de los equipos de los clientes, enviaremos un correo electrónico mensual con un resumen de las actualizaciones no críticas. Informaremos los principales puntos de cambio y el plazo de 60 (sesenta) días corridos para la actualización.
¿No encontraste algo o aún necesitas ayuda? Si ya eres cliente o socio, puedes ponerte en contacto a través del Centro de Ayuda.
En esta sección, encontrarás cómo crear un proceso en la plataforma Unico IDCloud
En esta sección, encontrarás la documentación detallada sobre el funcionamiento del endpoint para crear un proceso en la plataforma Unico IDCloud.
Se trata de un servicio con retorno síncrono, es decir, toda la integración ocurre utilizando un único endpoint y la respuesta se devolverá en el response de este mismo endpoint.
Las capacidades de la plataforma Unico IDCloud se gestionan a través de API Keys, utilizadas como un parámetro en el header de las solicitudes, que definen el alcance de acceso.
Como requisito previo, es necesario contar con una API Key configurada con las capacidades que utilizarás.
Fale com o responsável do seu projeto para obter a API Key com esta configuração.
Tus solicitudes a la API se autentican mediante un access-token. Cualquier solicitud que no incluya un access-token válido retornará un error.
Puedes ver más información sobre cómo generar un access-token aquí.
Endpoints:
Producción: https://api.id.unico.app.
POST
/
processes/v1
Endpoint para crear un nuevo proceso
Headers
Content-Type*
application/json
Authorization*
<acess-token>
APIKEY*
Clave con las capacidades habilitadas
Request Body Schema
subject.code
*
string
Identificador del usuario. Puede ser:
CURP: para operaciones originadas en México;
CPF: para operaciones originadas en Brasil.
subject.name
string
Nombre del usuario.
subject.email
string
Correo electrónico del usuario.
subject.phone
string
Teléfono del usuario.
useCase
string
Caso de uso de la operación (ejemplo: Apertura de cuenta).
imageBase64
*
string
Archivo encriptado generado por el SDK o en base64 (en caso de no utilizar prueba de vida/SDK).
Response
Response parameters
id
string
El id del proceso.
status
integer
Estado del proceso. Valores posibles:
3: completado;
5: error.
idCloud.result
string
Recomendación final de Unico sobre si aprobar o rechazar al usuario. Valores posibles:
yes: La recomendación final de Unico es aprobar al usuario.
no: La recomendación final de Unico es rechazar al usuario.
inconclusive: No es posible determinar si el usuario debe ser aprobado o no.
El retorno de este campo se personaliza según las necesidades del cliente. Se puede definir previamente cuál será el valor de retorno en este campo.
idCloud.details
string
Cadena formateada que contiene propiedades relacionadas con identidad y comportamiento.
Ejemplo: "identity: isDocumentOwner: yes, isConsistent: yes; behavior: isTrustworthy: yes"
.
Las propiedades pueden variar según la respuesta del producto.
Este retorno no debe utilizarse para la toma de decisiones ni ser analizado.
Puntos Importantes:
Si el status = 3
, considere la respuesta del parámetro idCloud.result
.
La respuesta devuelta en este parámetro incluirá todas las validaciones realizadas por las capacidades de la plataforma Unico IDCloud;
Los campos dentro del objeto de idCloud.details
son sólo para fines informativos y no deben analizarse. (Si algún campo dentro de idCloud.details no es concluyente, se omitirá de la respuesta).
Si ocurre un error en el procesamiento de la biometría, la solicitud devolverá un status code = 200 y el proceso tendrá un status = 5
, como en el siguiente ejemplo:
¿No encontraste algo o aún necesitas ayuda? Si ya eres cliente o socio, puedes ponerte en contacto a través del Centro de Ayuda.
En esta sección, encontrará toda la información necesaria para el uso e integración del SDK de la plataforma Unico IDCloud en sus aplicaciones Web para la captura de selfies.
Este guía fue elaborada para ayudarlo a implementar el SDK Android de manera rápida y sencilla. A continuación, vea el paso a paso de todo el proceso de integración. Después de eso, si desea personalizar la experiencia, no deje de ver la sección Personalización Android.
Cree una instancia del builder (Generado a través de la interfaz IAcessoBioBuilder
), proporcionando como parámetro el contexto y el ambiente en cuestión, y la implementación de la clase AcessoBioListener
.
La implementación de esta clase es muy simple y se puede hacer con pocas líneas de código. Lo único que necesita hacer es instanciar el builder proporcionando el contexto correspondiente y sobrescribir los métodos de callback con la lógica de negocio de su aplicación:
Configure el ambiente que se utilizará en la ejecución del SDK. Utilice el enumerado Environment
que contiene los siguientes valores enumerados:
Environment.PROD
: para ambiente de Producción;
Environment.UAT
: para ambiente de Homologación.
Vea cómo implementarlo en el siguiente ejemplo:
Tenga en cuenta que el trabajo de implementación de la clase AcessoBioListener
es, en su mayoría, la configuración de los métodos de callback. Cada método se llama en una situación específica de retorno del SDK.
Basta con sobrescribir los métodos ejemplificados en el paso anterior con la lógica de negocio de su aplicación.
Este método se invoca siempre que ocurra cualquier error de implementación al utilizar alguno de nuestros métodos:
onErrorAcessoBio(ErrorBio errorBio)
Al ser invocado, el método recibe un parámetro de tipo ErrorBio que contiene detalles del error. Obtenga más información sobre el tipo ErrorBio
en la sección de tratamiento de errores.
onUserClosedCameraManually()
Este método se invoca siempre que el usuario cierre la cámara de forma manual, como por ejemplo, al hacer clic en el botón "Volver".
onSystemClosedCameraTimeoutSession()
Este método se invoca tan pronto como se alcance el tiempo máximo de sesión (sin capturar ninguna imagen).
Se puede configurar en el builder a través del método setTimeoutSession. Este método debe recibir el tiempo máximo de la sesión en segundos. Es posible cambiar el tiempo máximo de sesión de su usuario utilizando la funcionalidad de detección del rostro (cámara de selfie con captura inteligente). Si el usuario supera el tiempo determinado en su proceso para capturar la foto, puede mostrar un mensaje personalizable o una instrucción al usuario. El valor predeterminado es de 40 segundos y su valor mínimo también es de 40 segundos.
onSystemChangedTypeCameraTimeoutFaceInference()
Este método se invoca tan pronto como se alcance el tiempo máximo para la detección del rostro de un usuario (sin haber detectado nada). En este caso, el modo de cámara se cambia automáticamente al modo de captura manual (sin la silueta de captura inteligente).
El tiempo máximo de captura al utilizar la detección del rostro (cámara de selfie con captura inteligente) es de 13 segundos. Si el usuario tiene dificultades para capturar la foto mediante la detección del rostro y supera el tiempo determinado en su proceso, la captura se cambia automáticamente a manual, con el objetivo de facilitar la acción para el usuario (TimeoutToFaceInference).
Todos los métodos anteriores deben ser creados de la forma indicada en su proyecto (aunque sin ninguna lógica). De lo contrario, el proyecto no se compilará correctamente.
El SDK tiene configurado y habilitado por defecto el encuadre inteligente y la captura automática. Por lo tanto, debe configurarse el modo de cámara en su builder de la siguiente manera:
Los valores false/true de los métodos anteriores no alteran la experiencia de captura, solo sirven para la lógica interna del funcionamiento del SDK.
La implementación de estos métodos listeners debe realizarse mediante una instancia de la clase iAcessoBioSelfie
.
El método de apertura de la cámara, que se llama en la siguiente etapa, necesita saber qué hacer al lograr capturar una imagen con éxito o si ocurre algún error en el proceso. Es necesario especificar "qué hacer" al método de apertura de la cámara mediante la implementación de listeners que se llaman en situaciones de éxito o error.
A través de la configuración de los listeners, puede especificar qué sucede en su App en situaciones de error (Método onErrorSelfie
) o éxito (Método onSuccessSelfie
) durante la captura de imágenes.
Cambios en la nomenclatura para versiones anteriores a 4.2.1:
El método prepareCamera
, que antes era prepareSelfieCamera
;
La clase CameraListener
, que antes era SelfieCameraListener
;
El objeto UnicoCheckCameraOpener.Camera
, que antes era UnicoCheckCameraOpener.Selfie
.
Para la configuración de los listeners, es necesario implementar:
Para continuar con la apertura de la cámara, primero es necesario prepararla utilizando el método prepareCamera. Este método recibe como parámetro la implementación de la clase CameraListener
, la clase o el JSON con las credenciales, generados en esta etapa.
Cuando la cámara esté preparada, se dispara el evento onCameraReady
, que recibe como parámetro un objeto del tipo UnicoCheckCameraOpener.Camera
.
Es necesario sobrescribir este método, realizando la apertura de la cámara con el objeto recibido a través del método open()
. El método open()
debe recibir como parámetro los listeners configurados en los pasos anteriores.
onSuccessSelfie
Al realizar una captura de imagen con éxito, este método es invocado y retorna un objeto del tipo ResultCamera
, que se utiliza posteriormente en la llamada a las APIs REST:
El objeto ResultCamera
retorna 2 atributos: base64
y encrypted
:
El atributo base64
puede ser utilizado si se desea mostrar una vista previa de la imagen en su app.
El atributo encrypted
debe ser enviado en la llamada a las APIs REST del IDCloud.
El atributo encrypted
está destinado estrictamente al envío de la imagen a través de las APIs. No debe abrirse ni serializarse este atributo, ya que sus características pueden ser alteradas sin previo aviso. Su uso debe ser exclusivo en las interacciones con las APIs para garantizar la integridad y seguridad de los datos. Unico no se responsabiliza por daños derivados de esta práctica, ya que las modificaciones pueden ocurrir de manera inesperada.
Los archivos base64/encrypted
pueden sufrir variaciones en tamaño según diversas variables, entre ellas, la calidad de los dispositivos y las fotos generadas por los mismos, así como las reglas de negocio de Unico. Para evitar problemas en su aplicación, no limite en su lógica de programación ni en su infraestructura el tamaño de la cadena generada por el SDK para los archivos.
onErrorSelfie
Cuando ocurre algún error en la captura de imagen, este método es invocado y retorna un objeto del tipo ErrorBio
:
Infórmese más sobre los tipos de ErrorBio
en la sección de tratamiento de errores del SDK.
Si es necesario convertir el base64 a bitmap, el método estándar no funciona para Android. Es necesario realizar el split a partir de la coma (,
) para que funcione. Si desea saber más, lea el artículo: How to convert a Base64 string into a Bitmap image to show it in an ImageView?
La captura de las imágenes es solo la primera parte del proceso. Después de capturar la imagen, es necesario enviar el encrypted
generado por el SDK a las APIs REST. Infórmese más en la sección Creación de proceso.
Por motivos de seguridad, el intervalo entre la generación del encrypted
y su envío a través de uno de los flujos disponibles debe ser de hasta un máximo de 10 minutos. Los envíos realizados después de este período serán rechazados automáticamente por la API.
¿No encontraste algo o aún necesitas ayuda? Si ya eres cliente o socio, puedes ponerte en contacto a través del Centro de Ayuda.
En esta sección, encontrará toda la información necesaria para el tratamiento de los errores del SDK de la plataforma Unico IDCloud en sus aplicaciones Android.
ErrorBio
Este objeto es retornado siempre que ocurre un error en el SDK Android.
getCode()
Método utilizado para obtener el código de error ocurrido
getDescription()
Método utilizado para obtener la descripción del error ocurrido
A continuación se presenta la lista de posibles códigos de error del SDK Android:
73001
Context invalid
73002
Did not grant permission to open camera
73003
The lest API is 21(LOLLIPOP)
73004
Could not find implementation interface callback iAcessoBioSelfie
73005
Could not find implementation interface callback iAcessoBioDocument
73006
Unable to open camera on emulators
73100
Unable to connect to internet
73200
Please inform the json file name
73202
Unable to parse json file
73300
Unable to get unico authentication object
73301
Unable to parse object
73302
Could not find the unico token
73303
Current host is not registered
73400
Could not initialize camera
73500
Unable to get session token, service response error
73501
Unable to parce object
73502
Could not get session token
73701
Could not find active liveness import
73702
Unable to initialize active liveness in production mode
73703
Unable to get active liveness session
73704
The user pressed the cancel button and did not complete the Session.
73705
The Session was not performed successfully and a FaceScan was not generated. In general, other statuses will be sent to the
73706
The camera access is prevented because either the user has explicitly denied permission or the user's device is configured to
73707
The Session was cancelled due to the app being terminated, put to sleep, an OS notification, or the app was placed in the
73708
The Session was cancelled because device is in landscape mode. The user experience of devices in these orientations is poor
73709
The Session was cancelled because device is in reverse portrait mode. The user experience of devices in these orientations is
73710
The Session was cancelled because the user was unable to complete a Session in the default allotted time or the timeout set
73712
The Session was cancelled due to memory pressure.
73712
The Session was cancelled because your App is not in production and requires a network connection.
73713
The Session was cancelled because your key needs to be validated again.
73714
The Session was cancelled because the developer-configured encryption key was not valid.
73715
The Session was cancelled because not all guidance images were configured.
73716
The Session was cancelled because SDK was unable to start the camera on this device.
73717
The Session was cancelled because the user was in a locked out state.
73718
The Session was cancelled because of an unknown and unexpected error. SDK leverages a variety of iOS APIs including camera,
73719
The Session cancelled because user pressed the Get Ready screen subtext message. Note: This functionality is not available by
73800
Could not build encrypted key
¿No encontraste algo o aún necesitas ayuda? Si ya eres cliente o socio, puedes ponerte en contacto a través del Centro de Ayuda.
En esta sección, encontrará la solución a algunos problemas comunes en la integración del SDK de la plataforma Unico IDCloud en sus aplicaciones Android.
El material de ofuscación tiene como objetivo ayudar al desarrollador a superar los problemas de ofuscación en su aplicación.
El ofuscador del cliente puede afectar el funcionamiento del SDK, por lo que es necesario que no ofusque el código del SDK.
Unico se exime de responsabilidad en relación con los conflictos de ofuscación con el SDK.
La ofuscación es un proceso que transforma el bytecode en una forma menos legible por humanos, dificultando así la ingeniería inversa.
Este proceso consiste en eliminar información relacionada con la depuración, como tablas de variables, números de líneas, y renombrar paquetes, clases y métodos.
Al integrar el SDK Android en la aplicación, pueden ocurrir fallos.
Cuando la ofuscación se realiza mediante DexGuard, en caso de fallo, utilice las siguientes reglas:
Cuando la ofuscación se realiza mediante ProGuard, en caso de fallo, utilice las siguientes reglas:
A partir de la versión 4.4.x del SDK, Unico comenzó a usar su propio repositorio Maven para distribuir el SDK de Android y cambió el nombre de la dependencia del SDK, además de realizar ajustes en las reglas de ProGuard y DexGuard para los clientes que utilizan la biblioteca de GuardSquare, como se describe en la sección de Ofuscación de código arriba.
Cambia el repositorio Maven al nuevo repositorio en el archivo build.gradle
del proyecto.
La implementación se hacía de la siguiente manera:
Ahora debe actualizarse al nuevo repositorio:
Cambia la dependencia del SDK a la nueva dependencia en el archivo app/build.gradle
del proyecto.
La implementación se hacía de la siguiente manera:
Ahora debe actualizarse a la nueva dependencia:
¿No encontraste algo o aún necesitas ayuda? Si ya eres cliente o socio, puedes ponerte en contacto a través del Centro de Ayuda.
En esta sección, encontrará todas las actualizaciones del SDK de Android.
Mantenga su SDK de Android siempre actualizado con la última versión disponible.
Se utiliza el versionado semántico para numerar las versiones. Para más información, consulte el artículo Visión General.
Guía de actualización para la versión 5.x.x
La actualización mayor que se está implementando a partir de la versión 5.x.x debería haberse realizado en el lanzamiento de la versión 4.4.0. Este cambio está relacionado con la ofuscación de código y requiere ajustes en las reglas de ProGuard y DexGuard para los clientes que utilizan la biblioteca de GuardSquare.
Además, el repositorio donde se distribuye el SDK ha cambiado y también se ha modificado el nombre de la dependencia del SDK. Debe actualizar sus registros de acuerdo con el artículo Actualización del SDK versión 4.3.x.
Ajustes de dependencias internas garantizando la compatibilidad con la versión de Kotlin 1.6.0
.
Soporte para la cámara trasera en flujos de tiendas físicas;
Actualización del SDK y servidor de Liveness con interacción;
Mejoras internas del producto. Estas mejoras no afectan directamente la experiencia del usuario final, manteniendo la interfaz y funcionalidades externas sin cambios.
¿No encontraste algo o aún necesitas ayuda? Si ya eres cliente o socio, puedes ponerte en contacto a través del Centro de Ayuda.
En esta sección, encontrará toda la información necesaria para el uso e integración del SDK de la plataforma Unico IDCloud en sus aplicaciones iOS para la captura de selfies.
Esta guía ha sido elaborada para ayudarlo a implementar el SDK iOS de forma rápida y fácil. A continuación, verá el paso a paso de todo el proceso de integración. Después de esto, si desea personalizar la experiencia, no deje de consultar la sección Personalización iOS.
Para comenzar con el SDK iOS de Unico Check, importe el SDK e implemente la interfaz AcessoBioManagerDelegate
dentro del ViewController en el que desea utilizarlo.
La implementación de esta clase es bastante simple y puede realizarse con pocas líneas de código. Solo necesita instanciar el builder proporcionando el contexto y el entorno en cuestión, y sobrescribir los métodos de callback con las lógicas de negocio de su aplicación:
Configure el entorno que se utilizará durante la ejecución del SDK. Utilice el enumerado Environment
que contiene los siguientes valores:
PROD
: para entorno de Producción;
UAT
: para entorno de Homologación.
Vea cómo implementarlo en el siguiente ejemplo:
Tenga en cuenta que, conforme al ejemplo anterior, el trabajo de implementación de la interfaz AcessoBioManagerDelegate
consiste en gran parte en configurar los métodos de callback. Cada método es llamado en una situación específica del retorno del SDK.
Basta con sobrescribir los métodos ejemplificados en el paso anterior con la lógica de negocio de su aplicación:
onErrorAcessoBioManager(_ error: ErrorBio!)
Este método es invocado cuando ocurre cualquier error de implementación al utilizar alguno de los métodos, como por ejemplo, al proporcionar un tipo de documento incorrecto para la funcionalidad de captura de documentos.
Al ser invocado, el método recibirá un parámetro del tipo ErrorBio
que contiene detalles del error. Obtenga más información sobre el tipo ErrorBio
en el artículo de tratamiento de errores de este SDK.
onUserClosedCameraManually()
Este método se invoca siempre que el usuario cierre la cámara manualmente, como por ejemplo, al hacer clic en el botón "Volver".
onSystemClosedCameraTimeoutSession()
Este método se invoca tan pronto como se alcance el tiempo máximo de sesión (sin capturar ninguna imagen).
Puede ser configurado en el builder mediante el método setTimeoutSession. Este método debe recibir el tiempo máximo de sesión en segundos. Es posible cambiar el tiempo máximo de sesión de su usuario al utilizar la funcionalidad de detección facial (Cámara de selfie con captura inteligente). Si el usuario supera el tiempo determinado para capturar la foto, puede presentar un mensaje o instrucción personalizable al usuario. El valor predeterminado es de 40 segundos y su valor mínimo también es de 40 segundos.
onSystemChangedTypeCameraTimeoutFaceInference()
Este método se invoca tan pronto como se alcance el tiempo máximo para la detección facial de un usuario (sin que se haya detectado nada). En este caso, el modo de cámara se cambia automáticamente al modo de captura manual (sin la silueta de captura inteligente).
El tiempo máximo de captura al utilizar la detección facial (Cámara de selfie con captura inteligente) es de 13 segundos. Si el usuario tiene dificultades para capturar la foto a través de la detección facial y supera el tiempo determinado en su proceso, la captura se cambia automáticamente al modo manual con el fin de facilitar la acción para el usuario (TimeoutToFaceInference).
Todos los métodos anteriores deben ser creados de la manera indicada en su proyecto (aunque sin ninguna lógica). De lo contrario, el proyecto no compilará con éxito.
El SDK tiene configurado y habilitado por defecto el encuadre inteligente y la captura automática. Debido a esto, se debe configurar el modo de cámara en su builder de la siguiente manera:
Los valores false/true de los métodos anteriores no alteran la experiencia de captura, solo sirven para la lógica interna del funcionamiento del SDK.
El método de apertura de la cámara necesita saber qué hacer al conseguir capturar una imagen con éxito o al tener algún error en el proceso. Se informa "qué hacer" al método de apertura de la cámara a través de la configuración de delegados que son llamados en situaciones de éxito o error.
A través de la configuración de los delegados, puedes especificar qué sucede en tu aplicación en situaciones de error (método onErrorSelfie
) o éxito (método onSuccessSelfie
) en la captura de imágenes.
Para la configuración de los delegados, debes implementar las interfaces SelfieCameraDelegate
y AcessoBioSelfieDelegate
:
onSuccessSelfie
Al realizar una captura de imagen con éxito, este método es invocado y retorna un objeto del tipo SelfieResult
, que se utiliza posteriormente en la llamada a las APIs REST.
El objeto ResultCamera
retorna 2 atributos: base64
y encrypted
:
El atributo base64
puede ser utilizado si deseas mostrar una vista previa de la imagen en tu app;
El atributo encrypted
debe ser enviado en la llamada a las APIs REST.
El atributo encrypted
está destinado estrictamente al envío de la imagen a través de las APIs del by Client. No debe abrirse ni serializarse, ya que sus características pueden ser modificadas sin previo aviso. Su uso debe ser exclusivo en las interacciones con las APIs para garantizar la integridad y seguridad de los datos. Unico no se hace responsable de cualquier daño derivado de esta práctica, ya que las modificaciones pueden ocurrir de manera impredecible.
Los archivos base64/encrypted
pueden sufrir variaciones de tamaño según diversas variables, entre ellas, la calidad de los dispositivos y las fotos generadas por los mismos, así como las reglas de negocio de Unico. Para evitar problemas en tu aplicación, no limites en tu lógica de programación ni en tu infraestructura el tamaño de la cadena generada por el SDK para los archivos.
Si deseas convertir el base64 a bitmap, el método estándar no funciona para iOS. Es necesario realizar el split a partir de la coma (,
) para que funcione. Si deseas saber más, lee el siguiente artículo: How to convert a Base64 string into a Bitmap image to show it in an ImageView?.
onErrorSelfie
Cuando ocurre un error en la captura de la imagen, este método es invocado y retorna un objeto del tipo ErrorBio
:
Infórmate más sobre los tipos de ErrorBio
en la sección de tratamiento de errores del SDK.
Si no se configura, el SDK utiliza el entorno configurado a través del archivo de configuración (getHostKey). Si no se está utilizando getHostKey, se devuelve un error.
Es posible configurar el entorno que se utilizará en la ejecución del SDK. Utiliza el enumerado EnvironmentEnum
, que contiene los siguientes valores:
EnvironmentEnum.PROD
: para el entorno de Producción
EnvironmentEnum.UAT
: para el entorno de Homologación
Mira cómo implementarlo en el siguiente ejemplo:
Para continuar con la apertura de la cámara, primero debes prepararla utilizando el método prepareSelfieCamera
. Este método recibe como parámetro la implementación de la clase SelfieCameraDelegate
y el JSON con las credenciales, generado en la etapa anterior.
Cuando la cámara esté preparada, el evento onCameraReady
se dispara y recibe como parámetro un objeto del tipo AcessoBioCameraOpenerDelegate
.
Debes sobrescribir este método, realizando la apertura de la cámara con el objeto recibido a través del método open()
:
El tipo ErrorPrepare
es una extensión de ErrorBio
, por lo que contiene todas sus propiedades. Infórmate más sobre el tipo ErrorBio
en la sección de tratamiento de errores del SDK.
Si ocurre algún error al preparar la cámara, el evento onCameraFaile
d se dispara. Debes implementar este método aplicando las reglas de negocio de tu aplicación.
La captura de las imágenes es solo la primera parte del proceso. Después de capturar la imagen, es necesario enviar el encrypted
generado por el SDK a las APIs REST del by Client. Infórmate más en la sección Creación de proceso.
Por motivos de seguridad, el intervalo entre la generación del encrypted
y el envío a través de uno de los flujos disponibles debe ser como máximo de 10 minutos. Los envíos realizados después de este período serán rechazados automáticamente por la API.
¿No encontraste algo o aún necesitas ayuda? Si ya eres cliente o socio, puedes ponerte en contacto a través del Centro de Ayuda.
En esta sección, encontrará toda la información necesaria para el uso e integración del SDK de la plataforma Unico IDCloud en sus aplicaciones iOS.
En esta sección, encontrará una visión general sobre el funcionamiento del SDK de la plataforma Unico IDCloud.
Los SDK de la plataforma Unico IDCloud tienen como objetivo potenciar la seguridad de su negocio y de sus clientes, permitiendo incluso personalizar la experiencia de uso aplicando la identidad visual de su marca. Los SDK abstraen la complejidad de manipulación de la cámara del dispositivo de los usuarios y la captura de imágenes (Selfie y documento), facilitando la vida del desarrollador y reduciendo el tiempo de entrega del producto final. Otras ventajas:
Prueba de vida: Los SDK se utilizan junto con la capacidad de Prueba de vida para garantizar que el usuario esté en vivo en el momento de la captura de la selfie.
Precisión en la captura de imágenes: Los SDK cuentan con recursos que ayudan al usuario a obtener fotos biométricamente válidas, reduciendo el abandono de imágenes cuando se comparan con la captura realizada por las cámaras estándar de los dispositivos. Se agregan SmartFrames, “elementos clave” que se ajustan automáticamente a la silueta y proporción de la pantalla del usuario, permitiendo una mejor captura de la imagen.
Seguridad reforzada: Recursos de cifrado y seguridad contra la inyección de imágenes, también con funcionalidades que previenen fraudes adaptadas a diferentes modos de cámara. Capas de seguridad que funcionan de forma complementaria, tanto a nivel de la aplicación como en relación a los datos que se transmiten entre los SDK y el backend. El SDK también incluye ofuscación de código, bloqueo de emuladores y verificación del paquete de la aplicación que lo está ejecutando.
La captura de las imágenes mediante los SDK es solo la primera parte de su viaje. Por lo tanto, es de extrema importancia que comprenda los conceptos básicos y el funcionamiento de las APIs del motor biométrico. Para más información, consulte la API REST IDCloud.
Es importante resaltar que, para el buen funcionamiento de nuestras soluciones, con el máximo de seguridad y estabilidad, es imprescindible que el SDK esté debidamente actualizado. Es responsabilidad del cliente seguir y garantizar que está utilizando la versión más reciente del SDK disponible en nuestros servidores.
Unico no se responsabiliza por problemas derivados de la falta de actualización del SDK en la operación del cliente. [Saber más sobre nuestra Política de Actualización del SDK aquí].
El SDK (Client-side) es responsable de simplificar su integración con la plataforma Unico IDCloud, absorbiendo toda la complejidad de la manipulación de la cámara y la captura de imágenes.
Si la captura se realiza con éxito, el SDK devuelve un objeto que debe ser enviado a la API del motor biométrico, completando así la validación biométrica, según el diagrama ejemplificado a continuación:
El usuario accede a su aplicación
A través del SDK, su aplicación solicita el frame para captura (según cómo haya sido configurada su aplicación)
Su aplicación renderiza el frame para captura en un placeholder preestablecido
El SDK captura la imagen, generando un token JWT que será retornado a su aplicación
Su aplicación envía el JWT
a su servidor
Su servidor interactúa con las APIs del motor biométrico para analizar la imagen (a través de las APIs REST IDCloud)
Los servidores devuelven la respuesta del motor biométrico, que debe ser enviada a su aplicación
Su aplicación proporciona una respuesta al usuario
A continuación, se presentan la información y los requisitos necesarios, oficialmente soportados por cada Client SDK de Unico:
Plugins: Flutter
Lenguajes: Java/Kotlin
Xcode: >= 15.0
Plugins: Flutter
Lenguajes: swift/objective-c
iOS: >= 11
Administrador de dependencias: Cocoapods ou Swift Package Manager
Frameworks: React JS, Angular, Next JS, Vue JS e JS Vanilla.
Versión Javascript: ECMAScript 5 ou superiores.
Nuestro soporte está restringido a aplicaciones desarrolladas directamente en las plataformas nativas Android e iOS, utilizando sus respectivos módulos nativos, además del framework Flutter (si la implementación se realiza utilizando nuestro plugin). Actualmente, no ofrecemos soporte para aplicaciones desarrolladas en frameworks híbridos, como React Native, Ionic u otras tecnologías de desarrollo multiplataforma.
Los SDKs de la plataforma Unico IDCloud siguen un versionado semántico, por lo que la numeración de la versión es "MAJOR.MINOR.PATCH", descrita de la siguiente manera:
Versión Mayor (MAJOR): Cuando se realizan cambios incompatibles en la API;
Versión Menor (MINOR): Cuando se agregan funcionalidades manteniendo la compatibilidad;
Versión de Corrección (PATCH): Cuando se corrigen fallas manteniendo la compatibilidad.
¿No encontraste algo o aún necesitas ayuda? Si ya eres cliente o socio, puedes ponerte en contacto a través del Centro de Ayuda.
En esta sección, encontrará toda la información necesaria para la instalación del SDK de la plataforma Unico IDCloud en sus aplicaciones Android.
Es necesario que su entorno de desarrollo cumpla con los siguientes requisitos previos:
Tener la versión del SDK Android en la versión 21 o superior;
Tener configurado el repositorio Maven de Unico.
El componente de captura proporcionado a través del SDK Android es compatible con las versiones iguales o superiores de las siguientes tecnologías:
Android: 5.0 (API 21);
Kotlin: 1.6.
Este SDK no funciona en emuladores, solo en dispositivos físicos.
El SDK Android es compatible con la gran mayoría de dispositivos que tengan Android 5.0 (API de nivel 21) o versiones superiores.
La siguiente tabla lista los dispositivos probados en laboratorio, además de la disponibilidad de las extensiones del proveedor/fabricante. Algunas extensiones listadas pueden estar sujetas a APIs o SKUs específicos del fabricante. Haga clic a continuación para ver los dispositivos probados:
Dispositivo
Versión de Android
Resultado de la prueba
Tipo de prueba
ASUS - X01BDA
10.0.0
Físico
ASUS - Z01KD
8.0.1
Físico
HUAWEY - P30 Lite
9.0.0
Físico
LG - K22
10.0.0
Físico
LG - Q6
7.0.0
Físico
MOTOROLA - Moto one macro
10.0.0
Físico
MOTOROLA - Moto G4
6.0.1
Físico
MOTOROLA - Moto G5s Plus
8.1.0
Físico
MOTOROLA - Moto G6 Play
9.0.0
Físico
MOTOROLA - Moto G7 Play
10.0.0
Físico
MOTOROLA - Moto G7 Power
10.0.0
Físico
MOTOROLA - Moto G8 Power Lite
10.0.0
Físico
SAMSUNG - A01
10.0.0
Físico
SAMSUNG - J8 SM J810M
8.1.0
Físico
SAMSUNG - Galaxy A30s SM-A307GT
10.0.0
Físico
SAMSUNG - Galaxy A51
10.0.0
Físico
SAMSUNG - Galaxy A71
11.0.0
Físico
SAMSUNG - Galaxy S20+
11.0.0
Físico
SAMSUNG - s10e
11.0.0
Físico
XIAOMI - Mi 8 Lite
9.0.0
Físico
XIAOMI - Mi 8 Lite
10.0.0
Físico
XIAOMI - Poco X3
10.0.0
Físico
XIAOMI - Redmi Note 8
10.0.0
Físico
XIAOMI - Redmi Note 8 Pro
10.0.0
Físico
XIAOMI - Redmi Note 9
10.0.0
Físico
XIAOMI - Redmi Note 9 Pro
10.0.0
Físico
GOOGLE - Pixel sailfish
8.0.0
Virtual (TestLab)
HUAWEY - ALE L23
5.0.0
Virtual (TestLab)
HUAWEY - ANE LX1
9.0.0
Virtual (TestLab)
HUAWEY - ANE LX2
9.0.0
Virtual (TestLab)
HUAWEY - COR L29
8.1.0
Virtual (TestLab)
HUAWEY - MHA L29
7.0.0
Virtual (TestLab)
HUAWEY - NEO L29
9.0.0
Virtual (TestLab)
SAMSUNG - SC 02J
8.0.0
Virtual (TestLab)
SAMSUNG - SM G891A
9.0.0
Virtual (TestLab)
SAMSUNG - SM G930AZ
8.0.0
Virtual (TestLab)
SAMSUNG - SM G935A
8.0.0
Virtual (TestLab)
SAMSUNG - SM G965N
9.0.0
Virtual (TestLab)
SAMSUNG - SM G965U1
8.0.0
Virtual (TestLab)
SAMSUNG - SM G981U1
10.0.0
Virtual (TestLab)
SAMSUNG - SM J727V
8.1.0
Virtual (TestLab)
SAMSUNG - SM N950F
9.0.0
Virtual (TestLab)
SAMSUNG - SM N950N
9.0.0
Virtual (TestLab)
SAMSUNG - SM N950U
8.0.0
Virtual (TestLab)
SAMSUNG - SM N960F
9.0.0
Virtual (TestLab)
SAMSUNG - SM N960N
9.0.0
Virtual (TestLab)
SAMSUNG - SM N960U1
8.1.0
stLab)
Para implementar el SDK Android de la plataforma Unico IDCloud en su aplicación Android, siga los pasos listados a continuación:
El SDK Android se proporciona a través de un Repositorio Maven. Agregue al bloque de repositories del archivo build.gradle
existente en la raíz de su proyecto:
Habilite el soporte para AndroidX en su archivo gradle.properties
en la raíz de su proyecto (esto garantiza un mejor rendimiento y funcionamiento del frame de captura):
Después de configurar el SDK Android, solo debe importarlo en su proyecto. Para ello, agregue acessobio-android
al bloque dependencies
del archivo app/build.gradle
.
La dependencia debe ser incluida en un archivo diferente al utilizado en el paso anterior. En este paso, es necesario utilizar el archivo build.gradle
correspondiente al módulo y no al proyecto:
Al compilar el proyecto, puede encontrarse con el siguiente error:
Invoke-customs are only supported starting with android 0 --min-api 26
Esto ocurre por una incompatibilidad con la versión del frame min-26. Agregue las siguientes líneas al bloque compileOptions en el mismo archivo app/build.gradle
:
Póngase en contacto con el equipo de CSs y/o el equipo de Onboarding.
Solicite la SDK Key proporcionando los identificadores de sus aplicaciones: Bundle Identifier para iOS, PackageID para Android y Host para WEB.
Los identificadores de sus aplicaciones serán vinculados a la SDK Key por el equipo de Unico.
Recibirá su SDK Key para implementar el AcessoBioConfigDataSource.
Listo. Una vez finalizada la instalación del SDK, continúe con la implementación leyendo el material Guía de uso e integración a continuación:
¿No encontraste algo o aún necesitas ayuda? Si ya eres cliente o socio, puedes ponerte en contacto a través del Centro de Ayuda.
En esta sección, encontrará toda la información necesaria para el uso e integración del SDK de la plataforma Unico IDCloud en sus aplicaciones Android para la captura de documentos.
Este guía ha sido elaborada para ayudarlo a implementar el SDK Android de manera rápida y sencilla. A continuación, vea el paso a paso de todo el proceso de integración. Después de eso, si desea personalizar la experiencia, no deje de consultar la sección Personalización Android.
En este modo de cámara, existe un marco de captura para ayudar al usuario a posicionar correctamente el documento. Después de posicionar el documento de manera correcta, el usuario debe hacer clic en el botón para realizar la captura de la foto del documento.
El SDK no realiza ningún tipo de validación sobre lo que se está capturando.
En este modo de cámara es posible capturar los documentos:
CPF: Captura del frente del CPF;
CNH: Captura de la CNH abierta;
CNH frente: Captura del frente de la CNH;
CNH verso: Captura del reverso de la CNH;
RG frente: Captura del frente del RG;
RG verso: Captura del reverso del RG;
Otros: Captura de cualquier otro documento.
Cree una instancia del builder (Generado a través de la interfaz IAcessoBioBuilder
), proporcionando como parámetro el contexto en cuestión y la implementación de la clase AcessoBioListener
.
La implementación de esta clase es bastante simple y se puede hacer con pocas líneas de código. Todo lo que necesita hacer es instanciar el builder proporcionando el contexto correspondiente y sobrescribir los métodos de callback con las lógicas de negocio de su aplicación:
Tenga en cuenta que el trabajo de implementación de la clase AcessoBioListener
consiste en gran parte en la configuración de los métodos de callback. Cada método se llama en una situación específica de retorno del SDK.
Basta con sobrescribir los métodos ejemplificados en el paso anterior con las lógicas de negocio de su aplicación:
onErrorAcessoBio(ErrorBio errorBio)
Al ser invocado, el método recibe un parámetro del tipo ErrorBio que contiene detalles del error. Infórmese más sobre el tipo ErrorBio
en la sección de tratamiento de errores.
onUserClosedCameraManually()
Este método se invoca siempre cuando el usuario cierra la cámara de forma manual, como por ejemplo, al hacer clic en el botón "Volver".
onSystemClosedCameraTimeoutSession()
Este método se invoca tan pronto como se alcanza el tiempo máximo de sesión (sin capturar ninguna imagen).
Puede configurarse en el builder a través del método setTimeoutSession. Este método debe recibir el tiempo máximo de la sesión en segundos. Es posible cambiar el tiempo máximo de sesión de su usuario al utilizar la funcionalidad de detección facial (Cámara de selfies con captura inteligente). Si el tiempo determinado para capturar la foto se excede, puede mostrar un mensaje personalizable o una instrucción al usuario. El valor predeterminado es de 40 segundos y su valor mínimo también es de 40 segundos.
onSystemChangedTypeCameraTimeoutFaceInference()
Este método se invoca tan pronto como se alcanza el tiempo máximo para la detección facial de un usuario (sin que nada haya sido detectado). En este caso, el modo de cámara se cambia automáticamente al modo de captura manual (sin la silueta de captura inteligente).
El tiempo máximo de captura al utilizar la detección facial (Cámara de selfies con captura inteligente) es de 13 segundos. Si el usuario tiene dificultades para capturar la foto mediante la detección facial y excede el tiempo determinado en su proceso, la captura se cambia automáticamente a manual, con el objetivo de facilitar la acción para el usuario (TimeoutToFaceInference).
Todos los métodos anteriores deben ser creados de la forma indicada en su proyecto (aunque sin ninguna lógica). De lo contrario, el proyecto no se compilará correctamente.
La implementación de estos métodos listeners debe hacerse a través de una instancia de la clase iAcessoBioSelfie
.
El método de apertura de la cámara, que se llama en la siguiente etapa, necesita saber qué hacer cuando logre capturar una imagen con éxito o si ocurre algún error en el proceso. Es necesario especificar "qué hacer" al método de apertura de la cámara mediante la implementación de listeners que se llaman en situaciones de éxito o error.
A través de la configuración de los listeners, puede especificar qué ocurre en su App en situaciones de error (Método onErrorDocument
) o éxito (Método onSuccessDocument
) durante la captura de imágenes.
El siguiente ejemplo ilustra la configuración de los listeners, el build y la apertura de la cámara:
Es necesario crear una instancia del builder a través del método build()
. Este método está disponible a través del objeto generado con la interfaz IAcessoBioBuilder
y la clase AcessoBio
:
El siguiente paso es preparar la cámara utilizando el método prepareDocumentCamera()
con el objeto retornado por el builder (nombrado como UnicoCheckCamera
en el ejemplo anterior).
El método prepareDocumentCamera()
genera un objeto del tipo UnicoCheckCameraOpener.Document
, que se utiliza para abrir la cámara con su método open()
, recibiendo los parámetros del tipo de documento a capturar, siendo estos:
DocumentCameraType.CPF
Marco para captura del frente del CPF
DocumentCameraType.CNH
Marco para captura de la CNH abierta
DocumentCameraType.CNH_FRENTE
Marco para captura del frente de la CNH
DocumentCameraType.CNH_VERSO
Marco para captura del reverso de la CNH
DocumentCameraType.RG_FRENTE
Marco para captura del frente del RG
DocumentCameraType.RG_VERSO
Marco para captura del reverso del RG
DocumentCameraType.None
Marco para captura de cualquier otro documento
Caso precise capturar um documento que não possuímos um frame Si necesita capturar un documento para el cual no tenemos un marco específico (por ejemplo, RNE, entre otros), utilice el marco DocumentCameraType.None
, que le permitirá usar un marco genérico, rectangular, que puede ser utilizado para orientar cualquier captura.
Al realizar una captura de imagen con éxito, este método es invocado y retorna un objeto del tipo ResultCamera
, que se utiliza posteriormente en la llamada a las APIs REST:
El objeto ResultCamera
retorna 2 atributos: base64 y encrypted:
El atributo base64
puede ser utilizado si desea mostrar una vista previa de la imagen en su app.
Tanto el atributo encrypted
como el atributo base64
pueden enviarse en la llamada a las APIs REST.
Si es necesario convertir el base64 a bitmap, el método estándar no funciona para Android. Es necesario realizar el split a partir de la coma (,
) para que funcione. Si desea saber más, lea el artículo How to convert a Base64 string into a Bitmap image to show it in an ImageView?.
Cuando ocurre un error en la captura de imagen, este método es invocado y retorna un objeto del tipo ErrorBio
:
Infórmese más sobre los tipos de ErrorBio
en la sección de tratamiento de errores del SDK.
La captura de las imágenes es solo la primera parte del proceso. Después de capturar la imagen, es necesario enviar el base64
generado por el SDK a las APIs REST. Infórmese más en la sección Creación de proceso.
¿No encontraste algo o aún necesitas ayuda? Si ya eres cliente o socio, puedes ponerte en contacto a través del Centro de Ayuda.
En esta sección, encontrará toda la información necesaria para la personalización del SDK de la plataforma Unico IDCloud en sus aplicaciones Android.
El SDK Android permite que se realicen algunas personalizaciones. A continuación, vea todas las personalizaciones posibles para este SDK.
Es posible configurar la experiencia de los mensajes informativos de los marcos de captura cambiando su idioma. Utilice el enumerado LocaleTypes
, que contiene los siguientes valores:
LocaleTypes.PT_BR
: para Portugués (Brasil);
LocaleTypes.ES_MX
: para Español (México);
LocaleTypes.ES_ES
: para Español (España);
LocaleTypes.EN_US
: para Inglês (EUA).
Vea cómo implementarlo en el siguiente ejemplo:
Puede ser necesaria una activación remota para utilizarlo. Si desea usarla, comuníquese con su gerente de proyectos o con el soporte de Unico.
Si no se configura, por defecto, el SDK utilizará el Portugués como idioma principal.
Esta es una etapa opcional, pero muy recomendada para que el proceso de captura tenga la identidad visual de su empresa.
Es posible personalizar algunos objetos del marco de acuerdo con el modo de cámara utilizado, mediante el método setTheme()
.
Los tipos admitidos para la representación de color son Color Resource o String que contenga el código hexadecimal del color. Ejemplo: R.color.red o #FF0000.
Todos los métodos están disponibles a continuación:
También es posible realizar personalizaciones de forma estática. En su archivo colors.xml, agregue el siguiente código:
A continuación, consulte la especificación de campos de personalización:
Esta es una etapa opcional, pero muy recomendada para que el proceso de captura tenga la identidad visual de su empresa.
Es posible personalizar algunos objetos del marco de acuerdo con el modo de cámara utilizado, mediante el método setTheme()
.
Los tipos admitidos para la representación de color son Color Resource o String que contenga el código hexadecimal del color. Ejemplo: R.color.red o #FF0000.
Todos los métodos están disponibles a continuación:
También es posible realizar personalizaciones de forma estática. En su archivo colors.xml, agregue el siguiente código:
A continuación, consulte la especificación de campos de personalización:
¿No encontraste algo o aún necesitas ayuda? Si ya eres cliente o socio, puedes ponerte en contacto a través del Centro de Ayuda.
En esta sección, encontrará toda la información necesaria para la instalación del SDK de la plataforma Unico IDCloud en sus aplicaciones iOS.
Es necesario que su entorno de desarrollo cumpla con los siguientes requisitos:
Tener la versión del SDK iOS en la versión 11 o superior;
PTener configurado el gestor de dependencias Cocoapods o Swift Package Manager.
El componente de captura disponible a través del SDK iOS es compatible con todos los dispositivos que tengan iOS 11 o versiones más recientes. Puede consultar la lista de estos dispositivos en los canales de soporte oficiales de Apple.
Para implementar el SDK iOS de la plataforma Unico IDCloud en su aplicación iOS, siga los pasos a continuación:
CocoaPods es un gestor de dependencias para proyectos Cocoa. Para instrucciones de uso e instalación, consulte la documentación oficial de CocoaPods. Para integrar el SDK iOS en su proyecto Xcode usando CocoaPods, siga las siguientes indicaciones:
Incluya unicocheck-ios
en su archivo Podfile
:
A continuación, solo debe usar el comando en su terminal para instalar las dependencias:
Si está ejecutando el proyecto en .xcodeproj, es necesario abrir el proyecto en .xcworkspace.
El Swift Package Manager es un gestor de dependencias para proyectos Swift. Está integrado al sistema de compilación Swift para automatizar el proceso de descarga, compilación y vinculación de dependencias. Para integrar el SDK iOS en su proyecto usando SPM, siga las siguientes indicaciones:
Incluya la dependencia en su archivo Package.swift
:
Póngase en contacto con el CS y/o el equipo de Onboarding.
Solicite la SDK Key proporcionando los identificadores de sus aplicaciones. Bundle Identifier para iOS, PackageID para Android y Host para WEB.
Los identificadores de sus aplicaciones serán vinculados a la SDK Key por el equipo de Unico.
Recibirá su SDK Key para implementar el AcessoBioConfigDataSource.
Listo. Una vez finalizada la instalación del SDK, continúe con la implementación leyendo el material Guía de uso e integración a continuación:
¿No encontraste algo o aún necesitas ayuda? Si ya eres cliente o socio, puedes ponerte en contacto a través del Centro de Ayuda.
En esta sección, encontrarás cómo debe ser el estándar de captura de la selfie del usuario en caso de que no utilices nuestros SDKs
Para un mejor rendimiento de las capacidades de la plataforma IDCloud, recomendamos el uso de nuestros SDKs. Ellos garantizarán el mejor funcionamiento del producto en su totalidad, tanto en relación con la tasa de abandono (drop) como en la validación de la Prueba de vida.
Para obtener mejores resultados en la captura de imágenes, se ha definido un estándar de captura. La imagen debe ser nítida, con suficiente iluminación frontal. El rostro debe estar recto, mirando hacia la cámara, sin objetos u obstrucciones, y con una expresión neutral.
Normalmente, las imágenes capturadas presentan los siguientes problemas:
Iluminación detrás del cliente: Es necesario que la iluminación frontal sea lo suficientemente buena para obtener una captura nítida del rostro.
Iluminación excesiva: La iluminación frontal debe ser adecuada para una captura clara del rostro.
Rostro muy cerca de la cámara + iluminación: El rostro debe estar centrado en la cámara y la iluminación frontal debe ser suficiente.
Imágenes borrosas: El rostro de la persona debe estar bien enfocado al momento de la captura.
Imágenes movidas: Estabilizar la cámara durante la captura.
Cliente con gafas: El cliente debe estar sin gafas o cualquier objeto que pueda impedir la visualización completa de su rostro.
Para la obtención y envío de imágenes, se utiliza el estándar ICAO. El estándar ICAO (Organización Internacional de Aviación Civil) establece características para que una fotografía cumpla con los requisitos y recomendaciones definidos para configuraciones de captura y envío de imágenes:
Posicionamiento del rostro e información adicional:
La foto debe ser tomada de frente: mirar directamente a la cámara y mantener la cabeza erguida. El rostro debe estar centrado. Los hombros deben estar alineados y paralelos al plano de la cámara.
Los ojos deben estar abiertos naturalmente: las pupilas e iris deben ser visibles.
Gafas: la foto debe ser tomada sin gafas.
Sin sombrero, gorra ni máscara: la región de la cara debe ser claramente visible.
Expresión facial neutral: el rostro debe tener una expresión neutral, sin sonreír, levantar las cejas, apretar los ojos ni fruncir el ceño.
Peinado: el cabello no debe cubrir la zona de visibilidad de los ojos.
Iluminación y fondo:
El fondo debe ser claro, liso y sin textura. No debe contener manchas, líneas o curvas que queden visibles en la imagen. Colores claros como azul claro o blanco pueden usarse, siempre que haya suficiente distinción entre el rostro/cabello y el fondo. No debe haber sombra detrás de la imagen del rostro, ni objetos visibles al fondo, como personas, muebles, papeles tapiz, plantas.
La iluminación debe ser adecuada y uniforme, distribuida igualmente en el rostro, sin diferencias entre el lado izquierdo y derecho. La foto debe tener brillo y buen contraste entre cabello, rostro y fondo. Las fotos con mala iluminación son aquellas donde la luz está solo en los laterales, arriba o abajo.
Formato de imagen: JPEG, PNG o JWT;
Imágenes capturadas en color.
Tamaño recomendado: Proporción 1920x1080 o 1080x1920;
Orientación: Retrato;
Tamaño: Máximo 800kb, si es necesario, puede comprimirse a JPEG92.
Tamaño recomendado: Proporción HD - 1280x720 o 720x1280;
Tamaño mínimo: Proporción VGA - 640x480 o 480x640;
Orientación: Si se usa tipificación/OCR, es recomendable capturar en la orientación de lectura.
Tamaño: Máximo 800kb, si es necesario, puede comprimirse a JPEG92.
Enmarcado: Se recomienda que la imagen no tenga espacios sobrantes (sin bordes). Cuanto mayor sea el área libre (borde), peor será para la tipificación de documentos.
La foto debe tener:
Color.
Enmarcado.
Enfoque nítido y claro, sin marcas de tinta o pliegues.
Mirar directamente a la cámara.
Mostrar el tono de piel natural.
Tener brillo y contraste apropiados.
Expresión facial neutra y ojos claramente visibles y abiertos.
Sin cabello sobre los ojos.
Frente a la cámara, sin mirar por encima del hombro ni inclinar la cabeza, mostrando claramente los dos lados del rostro.
Con un fondo simple de color claro, preferentemente blanco.
Con iluminación uniforme, sin sombras o reflejos de flash en el rostro y sin ojos rojos.
Sin lentes de contacto de color.
Sin maquillaje.
El uso de gafas no es recomendado, pero en casos donde sea necesario usarlas:
Los ojos deben estar nítidos, sin reflejo del flash o luz ambiental en las gafas y sin lentes de color.
La montura no debe cubrir ninguna parte de los ojos.
Añadir orientaciones antes de la captura para el usuario:
Utilice "marcos" de captura para orientar el posicionamiento del cliente frente al rostro:
En esta sección, encontrará la solución a algunos problemas comunes en la integración del SDK de la plataforma Unico IDCloud en sus aplicaciones iOS.
El material de ofuscación tiene como objetivo ayudar al desarrollador a superar los problemas de ofuscación en su aplicación.
El ofuscador del cliente puede afectar el funcionamiento del SDK, por lo que es necesario que no ofusque el código del SDK.
Unico se exime de responsabilidad respecto a los conflictos de ofuscación con el SDK.
La ofuscación es un proceso que transforma el bytecode en una forma menos legible para los humanos, dificultando así la ingeniería inversa.
Este proceso consiste en eliminar información relacionada con la depuración, como tablas de variables, número de líneas, y renombrar los paquetes, clases y métodos.
Al integrar el SDK iOS en la aplicación, pueden ocurrir fallas.
Cuando la ofuscación se realice con la herramienta iXGuard, se sugiere utilizar la versión 4.12.6 o superior.
La responsabilidad del control del flujo se delega a quien llama al SDK. Por lo tanto, si aparece alguna forma de sombra o la pantalla no se cierra después de la finalización exitosa de la captura, se sugiere implementar una forma de liberar esta pantalla. Esta liberación puede variar según el apilamiento de navegación implementado. Para esta implementación, agregue el método adecuado para la liberación preferiblemente dentro del método delegado onSuccessSelfie
. A continuación, algunos ejemplos de liberación que pueden ser utilizados:
Después del lanzamiento oficial de Xcode 16 el 17 de septiembre de 2024 y su uso para la distribución de aplicaciones en la App Store, se detectó un bloqueo al utilizar el SDK iOS, señalando el uso de bitcode
en dos dependencias internas al usar Cocoapods
como gestor de dependencias internas: DeviceProfiling
y UnicoSdkLogger
.
Para evitar bloquear nuevos lanzamientos, es posible aplicar el siguiente paso a paso hasta que se realice la corrección definitiva en una futura versión del SDK iOS:
Abrir archivo Podfile
;
Insertar las siguientes líneas después del comando post_install do |installer|
y antes del último end
:
2.1. En caso de que ya exista algún código, insertarlo antes del fragmento existente;
2.2. En caso de que ya se elimine el bitcode manualmente, agregar las rutas explícitamente mencionadas en framework_paths
;
Si no existe el comando post_install do |installer|
en el archivo Podfile, insertarlo de la siguiente manera antes del último end
:
En esta sección, encontrará todas las actualizaciones del SDK de iOS
Mantenga su SDK de iOS siempre actualizado con la última versión disponible.
Actualización del SDK y servidor de Liveness con interacción.
A partir de Xcode 15, Apple ha abandonado el soporte para iOS 11. Unico abandonará el soporte para iOS 11 en el SDK de Unico Check en una versión futura.
Actualización del SDK y servidor de Liveness con interacción.
A partir de Xcode 15, Apple ha abandonado el soporte para iOS 11. Unico abandonará el soporte para iOS 11 en el SDK de Unico Check en una versión futura.
En esta sección, encontrará toda la información necesaria para la personalización del SDK de la plataforma Unico IDCloud en sus aplicaciones iOS.
El SDK iOS permite realizar algunas personalizaciones. A continuación, vea todas las personalizaciones posibles para este SDK.
Es posible configurar la experiencia de los mensajes informativos de los frames de captura cambiando su idioma. Utilice el enumerado LocaleTypes
, que contiene los siguientes valores:
LocaleTypes.PT_BR
: para Português(Brasil);
LocaleTypes.ES_MX
: para Espanhol(México);
LocaleTypes.ES_ES
: para Espanhol(Espanha);
LocaleTypes.EN_US
: para Inglês(EUA).
Vea cómo implementarlo en el siguiente ejemplo:
Puede ser necesaria una activación remota para ser utilizado. Si desea usarlo, comuníquese con su gerente de proyectos o con el soporte de Unico.
Si no se configura, por defecto el SDK utiliza el portugués como idioma principal.
Esta é uma etapa opcional, porém muito recomendada para que o processo de captura tenha a identidade visual da sua empresa.
É possível customizar alguns objetos do frame de acordo com o modo de câmera utilizado, através do método setTheme()
.
Os tipos suportados para representação de cor são Color Resource ou String contendo o código hexadecimal da cor. Ex: R.color.red ou #FF0000.
Todos los métodos están disponibles a continuación:
A continuación, algunos ejemplos de cómo puede utilizar los métodos anteriores en su proyecto:
En esta sección, encontrarás toda la información necesaria para el uso e integración del SDK de la plataforma Unico IDCloud en tus aplicaciones iOS para la captura de documentos.
En este modo de cámara, existe un marco de captura para ayudar al usuario a colocar el documento correctamente. Después de colocar el documento en la posición correcta, el usuario debe hacer clic en el botón para realizar la captura de la foto del documento.
El SDK no realiza ningún tipo de validación sobre lo que se está capturando.
En este modo de cámara, es posible capturar los siguientes documentos:
RG: Captura del RG (separado en frente y reverso);
CNH: Captura de la CNH abierta;
CNH frente: Captura del frente de la CNH;
CNH reverso: Captura del reverso de la CNH;
CPF: Captura del documento de CPF;
Sin silueta: Captura de documento genérico.
Para comenzar con el SDK iOS de la plataforma Unico IDCloud, importa el SDK e implementa la interfaz AcessoBioManagerDelegate
dentro del ViewController que deseas utilizar.
La implementación de esta clase es bastante simple y puede realizarse con pocas líneas de código. Todo lo que necesitas hacer es instanciar el builder, indicando el contexto en cuestión, y sobrescribir los métodos de callback con las lógicas de negocio de tu aplicación:
Ten en cuenta que, como en el ejemplo anterior, el trabajo de implementación de la interfaz AcessoBioManagerDelegate
es, en su mayoría, la configuración de los métodos de callback. Cada método se llama en una situación específica de retorno del SDK.
Basta sobrescribir los métodos ejemplificados en el paso anterior con las lógicas de negocio de tu aplicación:
onErrorAcessoBioManager(_ error: ErrorBio!)
Este método se invoca cuando ocurre cualquier error de implementación al utilizar alguno de los métodos, como por ejemplo, al informar un tipo de documento incorrecto para la funcionalidad de captura de documentos.
onUserClosedCameraManually()
Este método se invoca siempre cuando el usuario cierre la cámara de forma manual, como por ejemplo, al hacer clic en el botón "Volver".
onSystemClosedCameraTimeoutSession()
Este método se invoca tan pronto como se alcanza el tiempo máximo de sesión (sin capturar ninguna imagen).
Se puede configurar en el builder a través del método setTimeoutSession. Este método debe recibir el tiempo máximo de la sesión en segundos. Es posible alterar el tiempo máximo de sesión de tu usuario al utilizar la funcionalidad de detección facial (Cámara de selfie con captura inteligente). Si se supera el tiempo determinado en tu proceso para capturar la foto, puedes mostrar algún mensaje personalizable o instrucción al usuario. El valor predeterminado es de 40 segundos y su valor mínimo también es de 40 segundos.
onSystemChangedTypeCameraTimeoutFaceInference()
Este método se invoca tan pronto como se alcanza el tiempo máximo para la detección del rostro de un usuario (sin haber detectado nada). En este caso, el modo de cámara se cambia automáticamente al modo de captura manual (sin el contorno de captura inteligente).
El tiempo máximo de captura al utilizar la detección del rostro (Cámara de selfie con captura inteligente) es de 13 segundos. Si el usuario tiene alguna dificultad para capturar la foto a través de la detección del rostro y supera el tiempo determinado en su proceso, la captura se cambia automáticamente a modo manual, con el objetivo de facilitar la acción para el usuario (TimeoutToFaceInference).
Todos los métodos anteriores deben ser creados de la manera indicada en tu proyecto (incluso sin ninguna lógica). De lo contrario, el proyecto no se compilará correctamente.
El método de apertura de la cámara (que se llama en el siguiente paso) necesita saber qué hacer cuando se capture una imagen con éxito o cuando ocurra un error en el proceso. Se informa "qué hacer" al método de apertura de la cámara a través de la configuración de delegados que se llaman en situaciones de éxito o error.
A través de la configuración de los delegados, puedes especificar lo que ocurre en tu aplicación en situaciones de error (método onErrorDocument
) o éxito (método onSuccessDocument
) al capturar imágenes.
Para la configuración de los delegados, debes implementar las interfaces DocumentCameraDelegate
y AcessoBioDocumentDelegate
:
onSucessDocument
Al realizar una captura de imagen con éxito, este método se invoca y retorna un objeto del tipo ResultCamera
, que se utiliza posteriormente en la llamada a las APIs REST.
El objeto ResultCamera
retorna 2 atributos: base64
y encrypted
:
El atributo base64
puede ser utilizado si deseas mostrar una vista previa de la imagen en tu app;
Tanto el atributo encrypted
como el atributo base64
pueden ser enviados en la llamada a las APIs REST.
onErrorDocument
Cuando ocurre un error en la captura de la imagen, este método se invoca y retorna un objeto del tipo ErrorBio
.
Para abrir la cámara, es necesario prepararla utilizando el método prepareDocumentCamer
a. Este método recibe como parámetro la implementación de la clase DocumentCameraDelegate
y el JSON con las credenciales, generado en la etapa anterior.
Quando a câmera estiver preparada, o evento onCameraReadyDocument
é disparado, que recebe como parâmetro um objeto do tipo AcessoBioCameraOpenerDelegate
.
Você deve sobrescrever este método, efetuando a abertura da câmera com o objeto recebido através do método openDocument()
, recebendo os parâmetros tipo de documento a ser capturado, sendo eles:
En caso de que necesites capturar un documento para el cual no tengamos un marco específico (por ejemplo, RNE, entre otros), utiliza el marco DocumentEnums.none
, que te permitirá usar un marco genérico, rectangular, que puede ser utilizado para orientar cualquier captura.
Los delegados implementados anteriormente (aquí descritos como Self):
Caso ocorra algum erro ao preparar a câmera, o evento onCameraFailedDocument
é disparado. Você deve implementar este método aplicando as regras de negócio de seu App.
Em caso de sucesso, o evento onSuccessDocument
é disparado, conforme explicado na seção acima.
En esta sección, encontrará toda la información necesaria para el tratamiento de errores del SDK de la plataforma Unico IDCloud en sus aplicaciones iOS.
Android: 5.0 (API 21)
Kotlin: 1.6
Tener instalada la versión 9 o superior de (IDE oficial de desarrollo de Google);
Tener instalada la versión 15.0.1 o superior de (IDE oficial de desarrollo de Apple);
Nota: Imágenes extraídas de la guía "ICAO Guide for MRTD Photo Guidelines. ICAO. Icao guide for mrtd photo guidelines.
¿No encontraste algo o aún necesitas ayuda? Si ya eres cliente o socio, puedes ponerte en contacto a través del .
Fuente: , , .
¿No encontraste algo o aún necesitas ayuda? Si ya eres cliente o socio, puedes ponerte en contacto a través del .
Se utiliza el versionado semántico para numerar las versiones. Para más información, consulte el artículo
¿No encontraste algo o aún necesitas ayuda? Si ya eres cliente o socio, puedes ponerte en contacto a través del .
¿No encontraste algo o aún necesitas ayuda? Si ya eres cliente o socio, puedes ponerte en contacto a través del .
Este guía ha sido elaborada para ayudarte a implementar el SDK iOS de manera rápida y sencilla. A continuación, verás el paso a paso de todo el proceso de integración. Después de eso, si deseas personalizar la experiencia, no olvides consultar la sección .
Al ser invocado, el método recibe un parámetro del tipo ErrorBio
que contiene detalles sobre el error. Infórmate más sobre el tipo ErrorBio
en el artículo de de este SDK.
Si es necesario convertir el base64 a bitmap, el método estándar no funciona para Android. Es necesario realizar el split a partir de la coma (,) para que funcione. Si deseas saber más, lee el artículo .
Infórmate más sobre los tipos de ErrorBio
en la sección de del SDK.
O tipo ErrorPrepare
é uma extensão de ErrorBio
contendo assim todas as suas propriedades. Saiba mais sobre o tipo ErrorBio
na seção de do SDK.
A captura das imagens é apenas a primeira parte da jornada. Após capturar a imagem, é necessário enviar o base64
gerado pelo SDK para as APIs REST do by Client. Saiba mais na seção .
¿No encontraste algo o aún necesitas ayuda? Si ya eres cliente o socio, puedes ponerte en contacto a través del .
¿No encontraste algo o aún necesitas ayuda? Si ya eres cliente o socio, puedes ponerte en contacto a través del .
getColorSilhouetteSuccess()
Método utilizado para personalizar el color de éxito de la silueta.
getColorSilhouetteError()
Método utilizado para personalizar el color de error de la silueta.
getColorBackground()
Método utilizado para personalizar el color de fondo de la silueta.
getColorBoxMessage()
Método utilizado para personalizar el color de fondo del mensaje.
getColorTextMessage()
Método utilizado para personalizar el color del texto del mensaje.
getColorTextPopupError()
Método utilizado para personalizar el color del texto e íconos del popup.
getColorBackgroundPopupError()
Método utilizado para personalizar el color de fondo del popup.
getColorBackgroundButtonPopupError()
Método utilizado para personalizar el color de fondo del botón del popup.
getColorTextButtonPopupError()
Método utilizado para personalizar el color del texto del botón del popup.
getColorBackgroundTakePictureButton()
Método utilizado para personalizar el color de fondo del botón para tomar foto manualmente.
getColorIconTakePictureButton()
Método utilizado para personalizar el color del ícono del botón para tomar foto manualmente.
getColorBackgroundBottomDocument()
Método utilizado para personalizar el color de fondo del cuadro en la captura de documentos.
getColorTextBottomDocument()
Método utilizado para personalizar el color del texto del cuadro en la captura de documentos.
getImageIconPopupError()
Método utilizado para personalizar el ícono del Popup de error, que se muestra cuando la cara está posicionada de forma incorrecta en el marco de captura.
getProgressBarColor()
(opcional)
Método opcional utilizado para personalizar el color del ícono de carga de la cámara Liveness con interacción. Si no se implementa, se utiliza el método getColorBoxMessage()
.
getCancelButtonIconColor()
(opcional)
Método opcional utilizado para personalizar el color del ícono de cancelar de la cámara Liveness con interacción. Si no se implementa, se utiliza el método getColorBackgroundTakePictureButton()
.
DocumentCameraType.CPF
Marco para captura del frente del CPF
DocumentCameraType.CNH
Marco para captura de la CNH abierta
DocumentCameraType.CNH_FRENTE
Marco para captura del frente de la CNH
DocumentCameraType.CNH_VERSO
Marco para captura del reverso de la CNH
DocumentCameraType.RG_FRENTE
Marco para captura del frente del RG
DocumentCameraType.RG_VERSO
Marco para captura del reverso del RG
DocumentCameraType.None
Marco para captura de cualquier otro documento
getCode()
Método utilizado para obtener el código de error ocurrido.
getDescription()
Método utilizado para obtener la descripción del error ocurrido.
73000
The Session was cancelled because of an unknown and unexpected error. The Unico Check SDK leverages a variety of iOS APIs including camera, storage, security, networking, and more. This return value is a catch-all for errors experienced during normal usage of these APIs.
73001
Context invalid
73003
The API version needs to be 11 or newer.
73006
Unable to open camera on emulators
73100
Unable to connect to internet
73200
Could not find the unico_sdk json file
73202
Unable to load unico_sdk json file
73203
Unable to load AcessoBioConfigDataSource
73204
Unable to initialize the SDK, please configure the environment on setEnviroment method of build.
73300
Unable to get unico authentication object
73301
Unable to parse unico authentication object
73302
Could not find the unico token
73701
Could not find active liveness import
73702
Unable to initialize active liveness in production mode
73703
Unable to get active liveness session
73704
The user pressed the cancel button and did not complete the Session.
73705
The Session was not performed successfully and a FaceScan was not generated. In general, other statuses will be sent to the developer for specific unsuccess reasons.
73706
The camera access is prevented because either the user has explicitly denied permission or the user's device is configured to not allow access by a device policy.
73707
The Session was cancelled due to the app being terminated, put to sleep, an OS notification, or the app was placed in the background.
73708
The Session was cancelled because the device is in landscape mode. The user experience of devices in these orientations is poor and thus portrait is required.
73709
The Session was cancelled because the device is in reverse portrait mode. The user experience of devices in these orientations is poor and thus portrait is required.
73710
The Session was cancelled because the user was unable to complete a Session in the default allotted time or the timeout set by the developer.
73711
The Session was cancelled due to memory pressure.
73712
The Session was cancelled because your App is not in production and requires a network connection.
73713
The Session was cancelled because your key needs to be validated again.
73714
The Session was cancelled because the developer-configured encryption key was not valid.
73715
The Session was cancelled because not all guidance images were configured.
73716
The Session was cancelled because SDK was unable to start the camera on this device.
73717
The Session was cancelled because the user was in a locked out state.
73718
The Session was cancelled because of an unknown and unexpected error. SDK leverages a variety of iOS APIs including camera, storage, security, networking, and more. This return value is a catch-all for errors experienced during normal usage of these APIs.
73719
The Session was cancelled because the user pressed the Get Ready screen subtext message. Note: This functionality is not available by default, and must be requested from FaceTec in order to enable it.
73720
The Session was not processed.
73721
The Session can't be performed: attempts limit exceeded.
73722
The Session can't be performed: face alignment timeout.
73730
Unable to initialize an active liveness session because of an unknown and unexpected license error.
73731
Unable to initialize an active liveness session because the license has expired.
73800
Could not build encrypted key
En esta sección, encontrará toda la información necesaria para el tratamiento de los errores del SDK de la plataforma Unico IDCloud en sus aplicaciones Flutter.
UnicoError
Este objeto es retornado siempre que ocurre un error en el SDK Flutter.
getCode()
Método utilizado para obtener el código de error ocurrido
getDescription()
Método utilizado para obtener la descripción del error ocurrido
A continuación se proporciona la lista de posibles códigos de error del SDK Flutter:
73001
Context invalid
73002
Did not grant permission to open camera
73003
The lest API is 21(LOLLIPOP)
73004
Could not find implementation interface callback iAcessoBioSelfie
73005
Could not find implementation interface callback iAcessoBioDocument
73006
Unable to open camera on emulators
73100
Unable to connect to internet
73200
Please inform the json file name
73202
Unable to parse json file
73300
Unable to get unico authentication object
73301
Unable to parse object
73302
Could not find the unico token
73303
Current host is not registered
73400
Could not initialize camera
73500
Unable to get session token, service response error
73501
Unable to parce object
73502
Could not get session token
73701
Could not find active liveness import
73702
Unable to initialize active liveness in production mode
73703
Unable to get active liveness session
73704
The user pressed the cancel button and did not complete the Session.
73705
The Session was not performed successfully and a FaceScan was not generated. In general, other statuses will be sent to the
73706
The camera access is prevented because either the user has explicitly denied permission or the user's device is configured to
73707
The Session was cancelled due to the app being terminated, put to sleep, an OS notification, or the app was placed in the
73708
The Session was cancelled because device is in landscape mode. The user experience of devices in these orientations is poor
73709
The Session was cancelled because device is in reverse portrait mode. The user experience of devices in these orientations is
73710
The Session was cancelled because the user was unable to complete a Session in the default allotted time or the timeout set
73712
The Session was cancelled due to memory pressure.
73712
The Session was cancelled because your App is not in production and requires a network connection.
73713
The Session was cancelled because your key needs to be validated again.
73714
The Session was cancelled because the developer-configured encryption key was not valid.
73715
The Session was cancelled because not all guidance images were configured.
73716
The Session was cancelled because SDK was unable to start the camera on this device.
73717
The Session was cancelled because the user was in a locked out state.
73718
The Session was cancelled because of an unknown and unexpected error. SDK leverages a variety of iOS APIs including camera,
73719
The Session cancelled because user pressed the Get Ready screen subtext message. Note: This functionality is not available by
73800
Could not build encrypted key
¿No encontraste algo o aún necesitas ayuda? Si ya eres cliente o socio, puedes ponerte en contacto a través del Centro de Ayuda.
En esta sección, encontrará toda la información necesaria para la personalización del SDK de la plataforma Unico IDCloud en sus aplicaciones Flutter.
El SDK Flutter permite realizar algunas personalizaciones. A continuación, vea todas las personalizaciones posibles para este SDK.
Es posible configurar la experiencia de los mensajes informativos de los marcos de captura cambiando su idioma. Utilice el enumerado LocaleTypes
, que contiene los siguientes valores:
LocaleTypes.PT_BR
: para Portugués (Brasil);
LocaleTypes.ES_MX
: para Español (México);
LocaleTypes.ES_ES
: para Español (España);
LocaleTypes.EN_US
: para Inglés (EUA).
Vea cómo implementarlo en el siguiente ejemplo:
Puede ser necesaria una activación remota para su uso. Si desea usarla, comuníquese con su gerente de proyectos o con el soporte de Unico.
Si no se configura, por defecto el SDK utilizará el portugués como idioma principal.
Esta es una etapa opcional, pero muy recomendada para que el proceso de captura tenga la identidad visual de su empresa.
Es posible personalizar algunos objetos del marco de acuerdo con el modo de cámara utilizado, mediante el método setTheme()
.
Los tipos admitidos para representar el color son Color Resource o una String que contenga el código hexadecimal del color. Ejemplo: R.color.red o #FF0000.
Todos los métodos están disponibles a continuación:
getColorSilhouetteError()
Método utilizado para personalizar el color del error de la silueta
getColorSilhouetteNeutral()
Método utilizado para personalizar el color neutro de la silueta
getColorBackground()
Método utilizado para personalizar el color de fondo de la silueta
getColorBoxMessage()
Método utilizado para personalizar el color de fondo del mensaje
getColorTextMessage()
Método utilizado para personalizar el color del texto del mensaje
getColorBackgroundPopupError()
Método utilizado para personalizar el color de fondo del popup
getColorBackgroundButtonPopupErrorgetColorTextPopupError()
Método utilizado para personalizar el color del texto e íconos del popup
getColorBackgroundButtonPopupError()
Método utilizado para personalizar el color de fondo del botón del popup
getColorTextButtonPopupError()
Método utilizado para personalizar el color del texto del botón del popup
getColorBackgroundTakePictureButton()
Método utilizado para personalizar el color de fondo del botón para tomar foto manualmente
getColorIconTakePictureButton()
Método utilizado para personalizar el color del ícono del botón para tomar foto manualmente
getColorBackgroundBottomDocument()
Método utilizado para personalizar el color de fondo del cuadro en la captura de documentos
getColorTextBottomDocument()
Método utilizado para personalizar el color del texto del cuadro en la captura de documentos
getColorProgressBar()
Método utilizado para personalizar el color de la barra de progreso en la validación de la imagen
getColorCancelButtonIcon()
Método utilizado para personalizar el color del ícono de cancelar la captura en la esquina superior izquierda
En la implementación de Android, la personalización de colorCancelButtonIcon debe realizarse agregando el color deseado en el archivo de recursos colors.xml.
¿No encontraste algo o aún necesitas ayuda? Si ya eres cliente o socio, puedes ponerte en contacto a través del Centro de Ayuda.
En esta sección, encontrará toda la información necesaria para el uso e integración del SDK de la plataforma Unico IDCloud en sus aplicaciones Flutter.
Nesta seção, você encontrará todas as informações necessárias para o uso e integração do SDK da plataforma Unico IDCloud em seus aplicativos Flutter para a captura da selfie
Este guía ha sido elaborada para ayudarlo a implementar el SDK Flutter de manera rápida y fácil. A continuación, vea el paso a paso de todo el proceso de integración. Después de eso, si desea personalizar la experiencia, no deje de consultar la sección Personalización Flutter.
Para comenzar, cree una instancia del builder (generado a través de la interfaz UnicoCheckBuilder
), proporcionando como parámetro el contexto y el entorno en cuestión, así como la implementación de la clase UnicoListener
.
La implementación de esta clase es bastante sencilla y se puede hacer con unas pocas líneas de código. Todo lo que necesita hacer es sobrescribir los métodos de callback con las lógicas de negocio de su aplicación.
Configure el entorno que será utilizado en la ejecución del SDK. Utilice el enumerado Environment que contiene los siguientes valores:
UnicoEnvironment.PROD
: para el entorno de Producción;
UnicoEnvironment.UAT
: para el entorno de Homologación.
Vea cómo implementarlo en el ejemplo a continuación:
Tenga en cuenta que, como en el ejemplo anterior, el trabajo de implementación de la clase UnicoListener es, en su mayoría, la configuración de los métodos de callback. Cada método será llamado en una situación específica de retorno del SDK.
Basta sobrescribir los métodos ejemplificados en el paso anterior con las lógicas de negocio de su aplicación:
onErrorUnico(UnicoError error)
Al ser invocado, el método recibe un parámetro del tipo UnicoError
que contiene detalles del error. Obtenga más información sobre el tipo UnicoError
en el documento de tratamiento de errores del SDK.
onUserClosedCameraManually()
Este método se invoca siempre cuando el usuario cierra la cámara manualmente, como por ejemplo, al hacer clic en el botón "Volver".
onSystemClosedCameraTimeoutSession()
Este método se invoca tan pronto como se alcanza el tiempo máximo de sesión (sin capturar ninguna imagen).
Se puede configurar en el builder a través del método setTimeoutSession. Este método debe recibir el tiempo máximo de la sesión en segundos. Es posible modificar el tiempo máximo de sesión de su usuario al utilizar la funcionalidad de detección facial (cámara de selfie con captura inteligente). Si supera el tiempo determinado en su proceso para capturar la foto, puede mostrar un mensaje personalizable o una instrucción al usuario. El valor predeterminado es de 40 segundos y su valor mínimo también es de 40 segundos.
onSystemChangedTypeCameraTimeoutFaceInference()
Este método se invoca tan pronto como se alcanza el tiempo máximo para la detección del rostro de un usuario (sin detectar nada). En este caso, el modo de cámara se cambia automáticamente al modo de captura manual (sin la silueta de captura inteligente).
El tiempo máximo de captura al utilizar la detección facial (cámara de selfie con captura inteligente) es de 13 segundos. Si el usuario tiene dificultades para capturar la foto mediante la detección facial y supera el tiempo determinado en su proceso, la captura se cambia automáticamente a manual, con el objetivo de facilitar la acción para el usuario (TimeoutToFaceInference).
Todos los métodos anteriores deben ser creados de la manera indicada en su proyecto (aunque sin ninguna lógica). De lo contrario, el proyecto no se compilará con éxito.
El SDK tiene configurado y habilitado por defecto el encuadre inteligente y la captura automática. Por lo tanto, debe configurar el modo de cámara en su builder de la siguiente manera:
Los valores false/true de los métodos anteriores no alteran la experiencia de captura, solo sirven para la lógica interna del funcionamiento del SDK.
La implementación de estos métodos listeners debe hacerse a través de una instancia de la clase UnicoSelfie
.
El método de apertura de la cámara necesita saber qué hacer al conseguir capturar una imagen o al tener algún error en el proceso. Se le indica "qué hacer" al método de apertura de la cámara mediante la implementación de listeners, que son llamados en situaciones de éxito o error.
A través de la implementación de los listeners, puede especificar lo que sucede en su aplicación en situaciones de error (método onErrorSelfie
) o éxito (método onSuccessSelfie
) en la captura de imágenes.
onSucessSelfie
Al realizar una captura de imagen con éxito, este método es invocado y retorna un objeto del tipo ResultCamera
, que se utiliza posteriormente en la llamada a las APIs REST:
El objeto ResultCamera
retorna 2 atributos: base64
y encrypted
:
El atributo base64
puede ser utilizado si desea mostrar una vista previa de la imagen en su aplicación;
El atributo encrypted
debe ser enviado en la llamada a las APIs REST.
El atributo encrypted
está destinado estrictamente al envío de la imagen a través de las APIs del cliente. No se debe abrir ni serializar este atributo, ya que sus características pueden ser modificadas sin previo aviso. Su uso debe ser exclusivo en las interacciones con las APIs para garantizar la integridad y seguridad de los datos. Unico no se hace responsable de los daños derivados de esta práctica, ya que las modificaciones pueden ocurrir de manera imprevista.
Los archivos base64/encrypted
pueden variar en tamaño según diversas variables, entre ellas, la calidad de los dispositivos y las fotos generadas por estos, así como las reglas de negocio de Unico. Para evitar problemas en su aplicación, no limite en su lógica de programación o infraestructura el tamaño de la cadena generada por el SDK para los archivos.
Si es necesario convertir el base64 a bitmap, el método estándar no funciona para Android. Es necesario realizar el split a partir de la coma (,) para que funcione. Si desea saber más, lea el artículo: How to convert a Base64 string into a Bitmap image to show it in an ImageView?
onErrorSelfie
Cuando ocurre un error en la captura de la imagen, este método es invocado y retorna un objeto del tipo UnicoError
:
Obtenga más información sobre los tipos de ErrorBio
en la sección de tratamiento de errores del SDK.
El método openCameraSelfie
se utiliza para abrir la cámara. Este método recibe como parámetro la implementación de la clase UnicoSelfie
y el JSON con las credenciales, generado en el paso anterior.
El siguiente ejemplo ilustra los pasos de configuración de los listeners y apertura de la cámara:
La captura de las imágenes es solo la primera parte del proceso. Después de capturar la imagen, es necesario enviar el encrypted
generado por el SDK a las APIs REST. Obtenga más información en la sección Creación de proceso.
Por razones de seguridad, el intervalo entre la generación del encrypted
y el envío a través de uno de los flujos disponibles no debe ser superior a 10 minutos. Los envíos realizados después de este período serán rechazados automáticamente por la API.
¿No encontraste algo o aún necesitas ayuda? Si ya eres cliente o socio, puedes ponerte en contacto a través del Centro de Ayuda.
En esta sección, encontrará todas las actualizaciones del SDK de Flutter
Mantenga su SDK de Flutter siempre actualizado con la última versión disponible.
Se utiliza el versionado semántico para numerar las versiones. Para más información, consulte el artículo Visión General.
Actualización de SDK nativos:
Android versión 5.30.1
release notes.
iOS versión 2.16.9
release notes.
¿No encontraste algo o aún necesitas ayuda? Si ya eres cliente o socio, puedes ponerte en contacto a través del Centro de Ayuda.
En esta sección, encontrará toda la información necesaria para el uso e integración del SDK de la plataforma Unico IDCloud en sus aplicaciones Web.
En esta sección, encontrará la solución a algunos problemas comunes en la integración del SDK de la plataforma Unico IDCloud en sus aplicaciones Flutter.
El material de ofuscación tiene como objetivo ayudar al desarrollador a superar los problemas de ofuscación en su aplicación.
El ofuscador del cliente puede afectar el funcionamiento del SDK, por lo que es necesario asegurarse de que no se ofusque el código del SDK.
Unico se exime de responsabilidad en cuanto a conflictos de ofuscación con el SDK.
La ofuscación es un proceso que convierte el bytecode en una forma menos legible para los humanos, dificultando así la ingeniería inversa.
Este proceso consiste en eliminar información relacionada con la depuración, como tablas de variables, números de línea, y renombrar paquetes, clases y métodos.
Al integrar el SDK Flutter en la aplicación, pueden ocurrir fallos.
Cuando la ofuscación se ha realizado mediante DexGuard, en caso de que ocurra una falla, utilice las siguientes reglas:
Cuando la ofuscación se ha realizado mediante ProGuard, en caso de que ocurra una falla, utilice las siguientes reglas:
bitcode
en la distribución de aplicaciones usando Xcode 16Después del lanzamiento oficial de Xcode 16 el 17 de septiembre de 2024 y con su uso para la distribución de aplicaciones en la AppStore, hemos observado un bloqueo al utilizar la SDK iOS, señalando el uso de bitcode en dos dependencias internas al utilizar Cocoapods como gestor de dependencias internas. Estas dependencias son DeviceProfiling y UnicoSdkLogger. Con el fin de no bloquear nuevos lanzamientos, es posible aplicar el siguiente paso a paso hasta su corrección definitiva en una futura versión de la SDK iOS:
Abrir el archivo Podfile
.;
Insertar las siguientes líneas después del comando post_install do |installer|
y antes del último end
:
2.1. Si ya existe algún código, insértelo antes del fragmento existente;
2.2. Si ya se realiza la eliminación del bitcode
manualmente, agregue los caminos explícitamente citados en framework_paths
;
Si no existe el comando post_install do |installer|
en el archivo Podfile
, agréguelo como se muestra a continuación antes del último end
:
Fuente: Bitrise, Xcode 16 release notes, Stackoverflow.
¿No encontraste algo o aún necesitas ayuda? Si ya eres cliente o socio, puedes ponerte en contacto a través del Centro de Ayuda.
En esta sección, encontrará toda la información necesaria para el uso e integración del SDK de la plataforma Unico IDCloud en sus aplicaciones Flutter para la captura de documentos.
Esta guía ha sido elaborada para ayudarlo a implementar el SDK Flutter de manera rápida y fácil. A continuación, vea el paso a paso de todo el proceso de integración. Después de eso, si desea personalizar la experiencia, no deje de consultar la sección Personalización Flutter.
En este modo de cámara, existe un marco de captura para ayudar al usuario a posicionar correctamente el documento. Después de colocar el documento de forma correcta, el usuario debe hacer clic en el botón para capturar la foto del documento.
El SDK no realiza ningún tipo de validación sobre lo que se está capturando.
En este modo de cámara, es posible capturar los siguientes documentos:
CPF: Captura del anverso del CPF;
CNH: Captura de la CNH abierta;
CNH frente: Captura del anverso de la CNH;
CNH verso: Captura del reverso de la CNH;
RG frente: Captura del anverso del RG;
RG verso: Captura del reverso del RG;
Outros: Captura de cualquier otro documento.
Para comenzar, cree una instancia del builder (generado a través de la interfaz UnicoCheckBuilder
), proporcionando como parámetro el contexto en cuestión y la implementación de la clase UnicoListener
.
La implementación de esta clase es bastante sencilla y puede realizarse con unas pocas líneas de código. Todo lo que necesita hacer es sobrescribir los métodos de callback con la lógica de negocio de su aplicación.
Tenga en cuenta que, como en el ejemplo anterior, el trabajo de implementación de la clase UnicoListener es, en gran parte, la configuración de los métodos de callback. Cada método se llama en una situación específica de retorno del SDK.
Basta con sobrescribir los métodos ejemplificados en el paso anterior con la lógica de negocio de su aplicación:
onErrorUnico(UnicoError error)
Al ser invocado, el método recibe un parámetro del tipo UnicoError
que contiene detalles del error. Obtenga más información sobre el tipo UnicoError
en la sección de tratamiento de errores del SDK.
onUserClosedCameraManually()
Este método se invoca siempre cuando el usuario cierra la cámara manualmente, como por ejemplo, al hacer clic en el botón "Volver".
onSystemClosedCameraTimeoutSession()
Este método se invoca tan pronto como se alcanza el tiempo máximo de sesión (sin capturar ninguna imagen).
Se puede configurar en el builder mediante el método setTimeoutSession. Este método debe recibir el tiempo máximo de la sesión en segundos. Es posible modificar el tiempo máximo de sesión del usuario al utilizar la funcionalidad de detección facial (Cámara de selfie con captura inteligente). Si supera el tiempo determinado en su proceso para capturar la foto, puede mostrar un mensaje personalizable o una instrucción al usuario. El valor predeterminado es de 40 segundos y su valor mínimo también es de 40 segundos.
onSystemChangedTypeCameraTimeoutFaceInference()
Este método se invoca tan pronto como se alcanza el tiempo máximo para la detección del rostro de un usuario (sin haber detectado nada). En este caso, el modo de cámara se cambia automáticamente al modo de captura manual (sin la silueta de captura inteligente).
El tiempo máximo de captura al utilizar la detección facial (Cámara de selfie con captura inteligente) es de 13 segundos. Si el usuario tiene dificultades para capturar la foto a través de la detección facial y supera el tiempo determinado en su proceso, la captura se cambia automáticamente a manual, con el objetivo de facilitar la acción para el usuario (TimeoutToFaceInference).
Todos los métodos anteriores deben ser creados de la forma indicada en su proyecto (aunque sin ninguna lógica). De lo contrario, el proyecto no se compilará con éxito.
La implementación de estos métodos listeners debe hacerse a través de una instancia de la clase iAcessoBioSelfie
.
El método de apertura de la cámara necesita saber qué hacer cuando consiga capturar una imagen o cuando ocurra algún error en el proceso. Se le indica "qué hacer" al método de apertura de la cámara mediante la implementación de listeners, que se llaman en situaciones de éxito o error.
A través de la implementación de los listeners, puede especificar lo que sucede en su aplicación en situaciones de error (método onErrorDocument
) o de éxito (método onSuccessDocument
) en la captura de imágenes.
onSucessDocument
Al realizar una captura de imagen con éxito, este método es invocado y retorna un objeto del tipo ResultCamera
, que se utiliza posteriormente en la llamada a las APIs REST:
El objeto ResultCamera
retorna 2 atributos: base64
y encrypted
:
El atributo base64
puede ser utilizado si desea mostrar una vista previa de la imagen en su aplicación;
Tanto el atributo encrypted
como el atributo base64
pueden ser enviados en la llamada a las APIs REST.
Si es necesario convertir el base64 a bitmap, el método estándar no funciona en Android. Es necesario realizar el split a partir de la coma (,) para que funcione. Si desea saber más, lea el artículo: How to convert a Base64 string into a Bitmap image to show it in an ImageView?
onErrorDocument
Cuando ocurre algún error en la captura de la imagen, este método es invocado y retorna un objeto del tipo UnicoError
:
Obtenga más información sobre los tipos de ErrorBio
en la sección de tratamiento de errores del SDK.
Para abrir la cámara, se utiliza el método openCameraDocument(). Este método está disponible a través del objeto generado con una instancia de la clase UnicoCheck.
Este método recibe los siguientes parámetros:
Archivo JSON con las credenciales, generado en el paso de configuración de credenciales;
Listeners configurados anteriormente;
Tipo de documento a capturar, siendo los siguientes:
DocumentCameraTypes.CPF
Marco para captura del anverso del CPF
DocumentCameraTypes.CNH
Marco para captura de la CNH abierta
DocumentCameraTypes.CNH_FRENTE
Marco para captura del anverso de la CNH
DocumentCameraTypes.CNH_VERSO
Marco para captura del reverso de la CNH
DocumentCameraTypes.RG_FRENTE
Marco para captura del anverso del RG
DocumentCameraTypes.RG_VERSO
Marco para captura del reverso del RG
DocumentCameraTypes.OUTROS("descrição")
Marco para captura de cualquier otro documento
En caso de que necesite capturar un documento para el cual no contamos con un marco específico (por ejemplo: RNE, entre otros), utilice el marco DocumentCameraTypes.OUTROS("descripción")
, que le permitirá utilizar un marco genérico, rectangular, que puede ser usado para guiar cualquier tipo de captura.
Ejemplo para captura de CNH:
La captura de las imágenes es solo la primera parte del proceso. Después de capturar la imagen, es necesario enviar el base64 generado por el SDK a las APIs REST. Obtenga más información en la sección Creación de proceso.
¿No encontraste algo o aún necesitas ayuda? Si ya eres cliente o socio, puedes ponerte en contacto a través del Centro de Ayuda.
En esta sección, encontrará toda la información necesaria para la instalación del SDK de la plataforma Unico IDCloud en sus aplicaciones Flutter.
Es necesario que su entorno de desarrollo cumpla con los siguientes requisitos previos:
El componente de captura proporcionado a través del SDK de Flutter es compatible con versiones iguales o superiores de las siguientes tecnologías:
Android: 5.0 (API 21);
iOS: 11.
Este SDK no funciona en emuladores, solo en dispositivos físicos.
iOS: es compatible con casi todos los dispositivos que tengan iOS 11.
Puede consultar la lista de estos dispositivos en los canales de soporte oficiales de Apple.
Es compatible con la gran mayoría de dispositivos que tengan Android 5.0 (API de nivel 21) o versiones superiores;
La siguiente tabla muestra los dispositivos probados en laboratorio, además de la disponibilidad de las extensiones del proveedor/fabricante. Algunas extensiones listadas pueden estar sujetas a APIs o SKUs específicos del fabricante. Haga clic a continuación para ver los dispositivos probados:
Dispositivo
Versão do Android
Resultado do teste
Tipo do teste
ASUS - X01BDA
10.0.0
Físico
ASUS - Z01KD
8.0.1
Físico
HUAWEY - P30 Lite
9.0.0
Físico
LG - K22
10.0.0
Físico
LG - Q6
7.0.0
Físico
MOTOROLA - Moto one macro
10.0.0
Físico
MOTOROLA - Moto G4
6.0.1
Físico
MOTOROLA - Moto G5s Plus
8.1.0
Físico
MOTOROLA - Moto G6 Play
9.0.0
Físico
MOTOROLA - Moto G7 Play
10.0.0
Físico
MOTOROLA - Moto G7 Power
10.0.0
Físico
MOTOROLA - Moto G8 Power Lite
10.0.0
Físico
SAMSUNG - A01
10.0.0
Físico
SAMSUNG - J8 SM J810M
8.1.0
Físico
SAMSUNG - Galaxy A30s SM-A307GT
10.0.0
Físico
SAMSUNG - Galaxy A51
10.0.0
Físico
SAMSUNG - Galaxy A71
11.0.0
Físico
SAMSUNG - Galaxy S20+
11.0.0
Físico
SAMSUNG - s10e
11.0.0
Físico
XIAOMI - Mi 8 Lite
9.0.0
Físico
XIAOMI - Mi 8 Lite
10.0.0
Físico
XIAOMI - Poco X3
10.0.0
Físico
XIAOMI - Redmi Note 8
10.0.0
Físico
XIAOMI - Redmi Note 8 Pro
10.0.0
Físico
XIAOMI - Redmi Note 9
10.0.0
Físico
XIAOMI - Redmi Note 9 Pro
10.0.0
Físico
GOOGLE - Pixel sailfish
8.0.0
Virtual (TestLab)
HUAWEY - ALE L23
5.0.0
Virtual (TestLab)
HUAWEY - ANE LX1
9.0.0
Virtual (TestLab)
HUAWEY - ANE LX2
9.0.0
Virtual (TestLab)
HUAWEY - COR L29
8.1.0
Virtual (TestLab)
HUAWEY - MHA L29
7.0.0
Virtual (TestLab)
HUAWEY - NEO L29
9.0.0
Virtual (TestLab)
SAMSUNG - SC 02J
8.0.0
Virtual (TestLab)
SAMSUNG - SM G891A
9.0.0
Virtual (TestLab)
SAMSUNG - SM G930AZ
8.0.0
Virtual (TestLab)
SAMSUNG - SM G935A
8.0.0
Virtual (TestLab)
SAMSUNG - SM G965N
9.0.0
Virtual (TestLab)
SAMSUNG - SM G965U1
8.0.0
Virtual (TestLab)
SAMSUNG - SM G981U1
10.0.0
Virtual (TestLab)
SAMSUNG - SM J727V
8.1.0
Virtual (TestLab)
SAMSUNG - SM N950F
9.0.0
Virtual (TestLab)
SAMSUNG - SM N950N
9.0.0
Virtual (TestLab)
SAMSUNG - SM N950U
8.0.0
Virtual (TestLab)
SAMSUNG - SM N960F
9.0.0
Virtual (TestLab)
SAMSUNG - SM N960N
9.0.0
Virtual (TestLab)
SAMSUNG - SM N960U1
8.1.0
stLab)
Para implementar el SDK Flutter de la plataforma Unico IDCloud en su aplicación Flutter, siga los pasos que se detallan a continuación:
Para agregar el SDK Flutter de Unico Check a su proyecto, ejecute el siguiente comando utilizando el CLI de Flutter:
Este comando agrega la siguiente línea en el archivo pubspec.yaml
de su paquete:
Obtener paquetes manualmente: el comando flutter pub add unico_check
dispara implícitamente el comando flutter pub get
. Si el paquete no se ha instalado correctamente, asegúrese de que unico_check
esté en su archivo pubspec.yaml
y ejecute manualmente el comando flutter pub get
.
Póngase en contacto con el CSs y/o el equipo de Onboarding.
Solicite la SDK Key informando los identificadores de sus aplicaciones. Bundle Identifier para iOS, PackageID para Android y Host para WEB.
Los identificadores de sus aplicaciones serán vinculados a la SDK Key por el equipo de Unico.
Recibirá su SDK Key para implementar el AcessoBioConfigDataSource.
Listo. Una vez finalizada la instalación del SDK, continúe con la implementación leyendo el material Guía de uso e integración a continuación:
¿No encontraste algo o aún necesitas ayuda? Si ya eres cliente o socio, puedes ponerte en contacto a través del Centro de Ayuda.
En esta sección, encontrará toda la información necesaria para el uso e integración del SDK de la plataforma Unico IDCloud en sus aplicaciones Web para la captura de selfies.
Esta guía ha sido elaborada para ayudarlo a implementar el SDK Web de manera rápida y fácil. A continuación, verá el paso a paso de todo el proceso de integración. Después de eso, si desea personalizar la experiencia, no olvide consultar la sección de Personalización Web.
Para comenzar, debe realizar 3 pasos simples en su proyecto:
Instancie un nuevo Builder:
Especifique la ruta de los archivos adicionales (en caso de que se hayan agregado a su proyecto):
Especifique la ruta de los archivos de los modelos de IA, en caso de que utilice la funcionalidad de Cámara Inteligente.
A partir de la versión 3.18.0, para que el SDK busque automáticamente los recursos adicionales, basta con que el método setResourceDirectory
no sea implementado y las configuraciones de CSP para el uso del SDK se apliquen correctamente.
Si no se configura, por defecto el SDK Web utiliza el entorno de producción.
Es posible configurar el entorno que se utilizará en la ejecución del SDK. Use el enumerado SDKEnvironmentTypes
, que contiene los siguientes enumerados:
SDKEnvironmentTypes.PROD
: para el entorno de Producción;
SDKEnvironmentTypes.UAT
: para el entorno de Homologación.
Vea cómo implementarlo en el siguiente ejemplo:
Uno de los objetos que debe ser pasado como parámetro al método responsable de renderizar el frame de captura es el de callback. Este objeto deberá contener funciones de callback para los casos de éxito y error, como se ejemplifica a continuación.
Este objeto es obligatorio y, si no se implementa correctamente (cubriendo todos los eventos de éxito o error
), generará una excepción, que, si no se maneja, se mostrará en la consola del usuario.
El atributo encrypted
está destinado estrictamente al envío de la imagen a través de las APIs de by Client. No debe abrirse ni serializarse este atributo, ya que sus características pueden cambiar sin previo aviso. Su uso debe ser exclusivo en las interacciones con las APIs para garantizar la integridad y seguridad de los datos. Unico no se hace responsable de ningún daño derivado de esta práctica, ya que las modificaciones pueden ocurrir de manera imprevista.
Los archivos base64/encrypted
pueden sufrir variaciones de tamaño debido a diversas variables, entre ellas, la calidad de los dispositivos y las fotos generadas por los mismos, y las reglas de negocio de Unico. Para evitar problemas en su aplicación, no limite en su lógica de programación ni en su infraestructura el tamaño de la cadena generada por el SDK para los archivos.
Para iniciar la cámara con las configuraciones realizadas hasta ahora, es necesario crear una instancia del builder mediante el método build()
.
A continuación, con la cámara "montada", se debe configurar el modo de captura de la cámara.
La preparación de la cámara se realizará a partir del método prepareSelfieCamera()
, disponible a partir del builder. Este método recibe 2 parámetros:
La clase UnicoConfig obtenida en este paso;
El modo de cámara deseado, siendo estos:
SelfieCameraTypes.NORMAL
para el modo de cámara normal;
SelfieCameraTypes.SMART
para el modo de cámara inteligente.
Este método genera una promise que, al resolverse, devuelve un objeto que se utiliza para abrir efectivamente la cámara mediante el método open
, el cual recibe como parámetro las funciones de callback
configuradas en el paso anterior.
Para optimizar la apertura de la cámara, es posible separar las llamadas a los métodos prepareSelfieCamera()
y open()
.
Si desea utilizar la captura automática, pase el parámetro Unico.SelfieCameraTypes.SMART
al método prepareSelfieCamera
.
Para la captura inteligente, los modelos de visión computacional también deben ser cargados mediante el método setModelsPath
, tal como se explicó en el primer paso de esta guía.
Usando la clase UnicoConfig:
Es posible utilizar el SDK Web con Liveness Interactivo incrustado en un iFrame. Para ello, es necesario realizar una implementación similar a la sección anterior en la preparación de la cámara.
La preparación de la cámara se realizará mediante el método prepareSelfieCameraForIFrame()
, también disponible a partir del builder. Este método recibe los mismos parámetros que prepareSelfieCamera()
:
El método prepareSelfieCameraForIFrame()
solo funciona si la implementación está en un iFrame; su uso fuera de un iFrame resulta en el error 73724
. De la misma manera, usar el método prepareSelfieCamera()
dentro de un iFrame también resulta en el error 73724
.
Para que la captura funcione correctamente, es necesario implementar el elemento <iframe>
como en el siguiente ejemplo:
Para realizar la captura, es necesario estar en modo pantalla completa en el navegador para que el SDK pueda redimensionarse automáticamente. Por lo tanto, al realizar la captura, el SDK mostrará una pantalla solicitando la apertura del frame en modo pantalla completa. Vea el siguiente ejemplo:
Después de permitir el uso de pantalla completa, el frame de captura se abrirá normalmente:
Apple impide el uso de APIs de pantalla completa específicamente en iPhones (iPads son aceptables). Por lo tanto, para capturas en iPhones, es necesario configurar el posicionamiento del iFrame por cuenta propia.
La captura de las imágenes es solo la primera parte del proceso. Después de capturar la imagen, es necesario enviar el encrypted
generado por el SDK a las APIs REST. Obtenga más información en la sección Creación de proceso.
Por motivos de seguridad, el intervalo entre la generación del encrypted
y el envío a través de uno de los flujos disponibles debe ser de un máximo de 10 minutos. Los envíos realizados después de este período serán rechazados automáticamente por la API.
¿No encontraste algo o aún necesitas ayuda? Si ya eres cliente o socio, puedes ponerte en contacto a través del Centro de Ayuda.
En esta sección, encontrará toda la información necesaria para la instalación del SDK de la plataforma Unico IDCloud en sus aplicaciones Web.
El marco de captura proporcionado a través del SDK es compatible con las siguientes combinaciones de navegadores y sistemas operativos:
Windows (desktop)
N/A
N/A
Android
N/A
iOS
N/A
MacOS (desktop)
N/A
En general, el SDK soporta WebRTC y las versiones más recientes de los navegadores listados anteriormente. Por razones de compatibilidad y seguridad, el funcionamiento en versiones muy antiguas de estos navegadores no está garantizado.
El componente de captura proporcionado a través del SDK Web es compatible con las versiones iguales o superiores para las siguientes tecnologías:
Android: 5.0 (API 21);
iOS: 11.
Es un componente del sistema que permite que las aplicaciones Android o iOS muestren contenido web directamente dentro de la aplicación, basado en el mismo proyecto de código. Es responsable de la navegación en sitios web y contenido web dentro de las aplicaciones.
Es necesario haber implementado el SDK Web en una aplicación que contenga un dominio seguro con protocolo https.
El SDK Web es compatible con webviews ejecutadas en Android 8 (API 26) o superior.
Para que el SDK funcione correctamente, es necesario agregar algunos permisos y configuraciones al archivo AndroidManifest, los cuales son:
Se recomienda el uso de webviews basadas en Chromium con algunas personalizaciones para un mejor funcionamiento de JavaScript. Es posible encontrar un ejemplo de implementación a través de nuestras PoCs.
El SDK Web es compatible con webviews ejecutadas en iOS 13 o superior.
Para que el SDK funcione correctamente, es necesario agregar algunos permisos y configuraciones al archivo info.plist, los cuales son:
iOS proporciona dos formas de utilizar Webviews en aplicaciones, estas son: WKWebView y SFSafariViewController. Recomendamos el uso de SFSafariViewController para una mejor compatibilidad con los recursos del DOM. Es posible encontrar un ejemplo de implementación a través de nuestras PoCs.
El componente ha sido homologado solo en capas nativas, por lo que, para ser utilizado en frameworks híbridos (Flutter o React Native), es necesario implementarlo en la capa nativa de Android y/o iOS.
Cuando se está ejecutando, el SDK solicitará el permiso para abrir la cámara en la webview, que a su vez pedirá el mismo permiso a la aplicación nativa. Es obligatorio que su aplicación nativa tenga los permisos necesarios configurados en los archivos correspondientes.
Nuestro soporte está restringido a aplicaciones desarrolladas directamente en las plataformas nativas Android y iOS, utilizando sus respectivos módulos nativos. Actualmente, no ofrecemos soporte para aplicaciones desarrolladas en frameworks híbridos como React Native, Ionic u otras tecnologías de desarrollo multiplataforma.
El componente ha sido homologado en las redes sociales Instagram y Facebook en el modo Liveness sin interacción. El modo Liveness con interacción no es compatible en webviews de aplicaciones de redes sociales.
Para implementar el SDK Web de la plataforma Unico IDCloud en su aplicación Web, siga los pasos listados a continuación:
El SDK Web utiliza Web Workers para mejorar la seguridad y el rendimiento. Por eso, es necesario agregar las siguientes configuraciones a su Content Security Policy (CSP):
Si su aplicación tiene una CSP, esta configuración es obligatoria para garantizar el funcionamiento correcto del SDK.
Póngase en contacto con el equipo de CSs y/o el equipo de Onboarding;
Solicite la SDK Key proporcionando los identificadores de sus aplicaciones: Bundle Identifier para iOS, PackageID para Android y Host para WEB
Los identificadores de sus aplicaciones serán vinculados a la SDK Key por el equipo de Unico.
Recibirá su SDK Key para implementar el UnicoConfig.
La tabla a continuación lista los archivos de recursos adicionales disponibles para ser incluidos en su proyecto. Debe descargarlos e incorporarlos en su proyecto para realizar la captura con Prueba de Vida:
3.19.2
3.19.0 -> 3.19.1
3.18.11
3.18.10
3.18.9
3.18.8
3.18.7
3.18.6
3.18.5
3.18.4
3.18.0 -> 3.18.3
3.16.4 -> 3.17.0
3.16.3
3.16.2
3.14.1 -> 3.16.1
3.11.1 -> 3.14.0
3.10.2 -> 3.11.0
3.10.1
3.9.1 -> 3.10.0
3.9.0
3.8.3
3.8.2
3.8.0 -> 3.8.1
3.7.1 -> 3.7.2
3.6.5 -> 3.7.0
3.6.3 -> 3.6.4
3.6.1 -> 3.6.2
3.5.4 -> 3.6.0
3.5.3
3.5.0 -> 3.5.2
Para descargar el archivo de IA del Unico Check SDK Web, haga clic aqui.
Todos los archivos adicionales deben estar en una ubicación pública y visible para la web dentro de su proyecto.
El SDK Web está disponible a través de un paquete npm o cdn. Para la instalación, siga los pasos a continuación según su preferencia:
Instalación a través del paquete NPM
Para instalar el SDK en su proyecto a través de npm, simplemente ejecute el siguiente comando:
O también mediante yarn, con el siguiente comando:
Instalación a través del CDN
Para instalar el SDK en su proyecto a través del cdn, simplemente descargue el archivo a continuación e imprtelo en su proyecto.
Descargar la versión 3.19.2
.
Listo. Una vez finalizada la instalación del SDK, continúe con la implementación leyendo el material Guía de uso e integración a continuación:
¿No encontraste algo o aún necesitas ayuda? Si ya eres cliente o socio, puedes ponerte en contacto a través del Centro de Ayuda.
En esta sección, encontrará toda la información necesaria para el uso e integración del SDK de la plataforma Unico IDCloud en sus aplicaciones Web para la captura de documentos.
Esta guía ha sido elaborada para ayudarlo a implementar el SDK Web de manera rápida y fácil. A continuación, vea el paso a paso de todo el proceso de integración. Después de eso, si desea personalizar la experiencia, no olvide consultar la sección de Personalización Web.
En este modo de cámara, existe un frame de captura para ayudar al usuario a posicionar el documento correctamente. Después de posicionar el documento correctamente, el usuario debe hacer clic en el botón para realizar la captura de la foto del documento.
El SDK no realiza ningún tipo de validación de lo que se está capturando.
En este modo de cámara es posible capturar los siguientes documentos:
CPF: Captura del frente del CPF;
CNH: Captura de la CNH abierta;
CNH frente: Captura del frente de la CNH;
CNH verso: Captura del reverso de la CNH;
RG frente: Captura del frente del RG;
RG verso: Captura del reverso del RG;
Otros: Captura de cualquier otro documento.
Para comenzar, debe realizar 2 pasos simples en su proyecto:
Instancie un nuevo Builder:
Especifique la ruta de los archivos adicionales (en caso de que se hayan agregado a su proyecto):
Se recomienda que configure el tamaño del frame dentro de su aplicación, para optimizar el área de captura dentro de su WebApp. A continuación, vea cómo hacer esta configuración para Web Desktop o Mobile.
A menudo, el funcionamiento del frame puede verse afectado por algunos sistemas de diseño que tienen algún tipo de grid-system, como por ejemplo, bootstrap o material-ui. Para minimizar este riesgo, asegúrese de posicionar el frame (id="box-camera") en un lugar del código que no herede reglas no deseadas de CSS.
En las versiones Web Desktop, es posible restringir el tamaño del frame para que no utilice toda la dimensión de su WebApp. Para ello, basta con envolver el frame (id="box-camera"
) en otra etiqueta HTML, como en el siguiente ejemplo:
Idealmente, debe intentar mantener una proporción adecuada entre altura y ancho, lo que facilitará el encuadre de la cara del usuario. A continuación, un ejemplo:
Siguiendo el ejemplo anterior, el frame respeta el tamaño del elemento "padre", en este caso representado por el contenedor. De esta forma, tiene la flexibilidad para implementar el frame de la manera más conveniente para su aplicación (como en un modal, por ejemplo).
Las pruebas al cambiar el tamaño de la pantalla mediante el modo desarrollador de su navegador no funcionan. Se recomienda que este tipo de prueba se realice cambiando el tamaño de la ventana de su navegador.
Para una vista Web Mobile, se recomienda que el frame de captura ocupe el 100% de la pantalla para evitar problemas con los algoritmos de visión computacional. Si el área de captura está distorsionada, la funcionalidad de captura automática (Cámara Inteligente) puede presentar problemas de cálculo en el tracking de la cara de los usuarios.
Por lo tanto, se recomienda que en la vista Web Mobile:
El frame de captura ocupe el 100% de la pantalla del dispositivo (100vw/vh
);
Evite el desplazamiento horizontal o vertical (esto se puede minimizar con un modal);
Puede ver un ejemplo de implementación a través de un proyecto en esta página (Angular).
Las pruebas de dispositivos utilizando el modo desarrollador de su navegador no funcionan, ya que la cámara utilizada por su navegador es la misma que la de su escritorio, que tiene una resolución totalmente diferente a la cámara de un dispositivo móvil. Recomendamos que este tipo de prueba se realice directamente en el dispositivo.
Uno de los objetos que debe pasar como parámetro al método responsable de renderizar el frame de captura es el de callback. Este objeto debe contener funciones de callback para los casos de éxito y error, como se ejemplifica a continuación.
Este objeto es obligatorio y, si no se implementa correctamente (cubriendo todos los eventos de éxito o error), generará una excepción que, si no se maneja, se mostrará en la consola del usuario.
Para iniciar la cámara con las configuraciones realizadas hasta ahora, es necesario crear una instancia del builder mediante el método build().
A continuación, con la cámara "montada", debe configurarse el modo de captura de la cámara.
La preparación de la cámara se realiza mediante el método prepareDocumentCamera()
, disponible a partir del builder. Este método recibe 2 parámetros:
La clase UnicoConfig obtenida en este paso;
El tipo de documento a capturar, siendo estos:
DocumentCameraTypes.CPF
Marco para captura del frente del CPF
DocumentCameraTypes.CNH
Marco para captura de la CNH abiertarta
DocumentCameraTypes.CNH_FRENTE
Marco para captura del frente de la CNH
DocumentCameraTypes.CNH_VERSO
Marco para captura del reverso de la CNH
DocumentCameraTypes.RG_FRENTE
Marco para captura del frente del RG
DocumentCameraTypes.RG_VERSO
Marco para captura del reverso del RG
DocumentCameraTypes.RG_FRENTE_NOVO
Marco para captura del frente del nuevo RG
DocumentCameraTypes.RG_VERSO_NOVO
Marco para captura de la parte trasera del nuevo RG
DocumentCameraTypes.OTHERS("descrição")
Marco para captura de cualquier otro documento
Este método genera una promesa que, al resolverse, devuelve un objeto que se utiliza para abrir efectivamente la cámara a través del método open
, que recibe como parámetro las funciones de callback
configuradas en el paso anterior.
A continuación, un ejemplo utilizando la captura de CNH:
Usando la clase UnicoConfig
:
En caso de que necesite capturar un documento para el cual no tengamos un marco específico (por ejemplo, RNE, entre otros), utilice el marco DocumentCameraType.None, que le permitirá utilizar un marco genérico, rectangular, que puede ser usado para orientar cualquier captura.
La captura de las imágenes es solo la primera parte del proceso. Después de capturar la imagen, es necesario enviar el base64
generado por el SDK a las APIs REST. Obtenga más información en la sección Creación de proceso
¿No encontraste algo o aún necesitas ayuda? Si ya eres cliente o socio, puedes ponerte en contacto a través del Centro de Ayuda.
En esta sección, encontrará consejos e información sobre accesibilidad.
La SDK implementa componentes preparados con atributos HTML para accesibilidad, como aria-label, tabindex, role, entre otros, que habilitan la navegación por teclado entre elementos, activan orientaciones por audio y son utilizados por software de lectura de pantalla.
Al integrar la SDK Web en una página, es posible que existan otros elementos interactivos en la página que no sean visibles durante el flujo de apertura de la cámara y captura de imagen. Estos elementos pueden generar conflictos con la información del flujo de captura, afectando la experiencia del usuario. Por lo tanto, es importante eliminar o desactivar la interacción con otros elementos mientras se realiza la captura.
Esto se puede hacer de diversas maneras y depende de los elementos existentes y los frameworks utilizados en la página. A continuación, se muestra un ejemplo utilizando el atributo aria-hidden:
aria-hidden
Es importante usar este atributo con precaución, ya que puede perjudicar la accesibilidad de los elementos en la página si se aplica incorrectamente o si no se elimina cuando termine el flujo de captura.
En esta sección, encontrará toda la información necesaria para la personalización del SDK de la plataforma Unico IDCloud en sus aplicaciones Web.
El SDK Web permite realizar algunas personalizaciones. A continuación, vea todas las personalizaciones posibles para este SDK.
Es posible configurar la experiencia de los mensajes informativos de los frames de captura cambiando su idioma. Utilice el enumerado LocaleTypes
, que contiene los siguientes valores:
LocaleTypes.PT_BR
: para Portugués (Brasil);
LocaleTypes.ES_MX
: para Español (México);
LocaleTypes.ES_ES
: para Español (España);
LocaleTypes.EN_US
: para Inglés (EUA).
Vea cómo implementarlo en el siguiente ejemplo:
Puede ser necesaria una activación remota para utilizarlo, en caso de desear usarlo, comuníquese con su gerente de proyectos o con el soporte de Unico.
Si no se configura, por defecto el SDK utiliza el Portugués como idioma principal.
Este es un paso opcional, pero muy recomendado para que el proceso de captura tenga la identidad visual de su empresa.
Para realizar la personalización del marco de captura mediante el Theme Builder, basta con generar una instancia de la clase UnicoThemeBuilder
e invocar los métodos que personalizan cada una de las propiedades del marco de captura, como se ejemplifica a continuación:
Después de generar el objeto de tema, como se ejemplifica arriba, debe ser pasado como parámetro al método setTheme
del builder unicoCameraBuilder
.
En esta sección, encontrará todas las actualizaciones del SDK Web
Mantenga su SDK Web siempre actualizado con la última versión disponible.
Se añadió un nuevo método para la personalización de fuentes en la clase UnicoThemeBuilder
.
Mejoras internas del producto. Estas mejoras no afectan directamente la experiencia del usuario final, manteniendo la interfaz y funcionalidades externas sin cambios.
Mejoras internas del producto. Estas mejoras no afectan directamente la experiencia del usuario final, manteniendo la interfaz y funcionalidades externas sin cambios.
En esta sección, encontrará toda la información necesaria para el tratamiento de los errores del SDK de la plataforma Unico IDCloud en sus aplicaciones Web.
En esta sección, encontrarás una lista de las mejores prácticas para la implementación de la SDK de la plataforma Unico IDCloud.
Constantemente, las SDKs evolucionan para garantizar mayor seguridad y nuevos recursos y funcionalidades. Es esencial que los clientes mantengan una rutina de actualizaciones, además de tener agilidad en las actualizaciones críticas.
Es importante asegurarse de realizar la actualización a la versión más reciente disponible:
Sabemos que su aplicación hace uso de diversas bibliotecas y funcionalidades, a menudo cargadas de forma simultánea con la SDK de Unico. Como buena práctica de actualización, evite realizar el proceso de actualización de nuestra SDK al mismo tiempo que actualiza alguna otra funcionalidad/biblioteca, ya que, al encontrarse con un fallo y/o cambio de comportamiento, puede resultar un desafío entender cuál es la causa raíz. Recomendamos realizar las actualizaciones por separado para garantizar un mayor control en las validaciones, además de utilizar nuestro entorno de homologación.
Si tiene problemas, abra un ticket en nuestro portal de clientes con la siguiente información (para agilizar el proceso):
¿Cuál es el lenguaje de la SDK que está intentando actualizar?
Si es una implementación móvil (Android o iOS), ¿es nativa o híbrida (proporcione detalles)?
En caso de implementación en JavaScript, ¿qué framework está utilizando?
¿Cuál es la versión actual de la SDK que está intentando actualizar? (no es necesario si se trata de una nueva instalación)
¿Cuál es la nueva versión que está intentando instalar/actualizar?
Por favor, proporcione la API Key que está utilizando.
¿La actualización consiste únicamente en la actualización de la SDK o también se están modificando/actualizando/alterando otros componentes/funcionalidades? Si es así, por favor describa qué elementos adicionales están siendo modificados.
Proporcione una descripción de los pasos realizados y los resultados/errores obtenidos.
Por favor, adjunte evidencia e insumos relacionados con el fallo/problema (archivos de registro que contengan fragmentos de errores/fallos, capturas de pantalla y/o videos reproduciendo el problema).
Al realizar una captura de imagen con éxito, el método onSuccessSelfie devuelve un objeto del tipo ResultCamera que tiene 2 atributos:
Base64 de la imagen obtenida, que puede utilizarse si desea mostrar una vista previa de la imagen en su aplicación.
Encrypted, que es un objeto JWT que debe ser enviado en la llamada a las APIs REST. El JWT (Encrypted) debe utilizarse estrictamente durante el envío de la imagen a través de las APIs de Unico. No debe abrirse ni serializarse este atributo, ya que sus características pueden cambiar sin previo aviso. Su uso debe ser exclusivo en las interacciones con las APIs para garantizar la integridad y seguridad de los datos. Unico no se responsabiliza de los daños derivados de esta práctica, ya que las modificaciones pueden ocurrir de manera imprevista. Como se mencionó, la SDK ya proporciona el atributo Base64 para obtener la imagen en cuestión.
Un ejemplo en Swift:
Método: onSuccessSelfie
print("(result.encrypted)")
para Encrypted
print("(result.base64)")
para Base64
print("(result)")
para Encrypted y Base64
En resumen: nunca intente leer ni manipular el atributo Encrypted (JWT).
Por razones de seguridad, el envío del JWT debe realizarse dentro de un período de 10 minutos. Si el envío supera este plazo, el paquete será considerado inválido. Es importante tener en cuenta este tiempo en el flujo del usuario dentro de su aplicación y evitar cambios posteriores.
Por razones de seguridad, el JWT debe enviarse solo una vez al backend de Unico. Es decir, si hay algún problema con el procesamiento de la imagen o algún error en la respuesta, se debe realizar una nueva captura biométrica para generar un nuevo objeto encrypted
, y luego enviar este nuevo archivo al backend de Unico.
La virtualización de dispositivos en las dinámicas de prueba de su aplicación puede ser interpretada como un intento de eludir las capas de seguridad del proveedor de biometría, lo que puede generar los siguientes errores:
Mobile:
73006 - Unable to open camera on emulators
.
Web
73600 - Could not find camera resource
.
73400 - Could not initialize camera
.
Para evitar errores erróneos y trabajo innecesario, las pruebas deben realizarse en dispositivos físicos.
Toda la comunicación y las solicitudes están basadas en las API Keys definidas previamente en la instancia del cliente. Es crucial que su implementación utilice la misma API Key en el flujo de captura y en el flujo de envío, ya que esto previene errores de integración, facilita la validación y mejora la trazabilidad de los procesos y flujos.
Si tiene dudas sobre su API Key, consulte con el soporte técnico.
En el proceso de realización de pruebas y validaciones, es común mantener el DevTools abierto para la verificación de flujos y solicitudes. Sin embargo, no se debe considerar el método de validación de captura en estas pruebas, ya que la SDK lo identifica como posible fraude e invalida la solicitud cuando se envía al backend. Por lo tanto, cuando se realicen flujos de extremo a extremo, es esencial mantener el DevTools desactivado y seguir con la captura normal.
Al subir versiones para la SDK WEB, si hay actualización también de archivos resources, siempre elimine el archivo antiguo e inserte los nuevos en la carpeta Public, ya que puede ocurrir que los archivos tengan el mismo nombre y no sean reemplazados. Asegúrese también de verificar que no haya caché interna de los archivos resources antiguos después de la actualización y nuevo build.
Para la implementación en aplicaciones Flutter, siempre se debe utilizar nuestro plugin específico para este propósito. Reiteramos que no intenten implementar las versiones nativas de nuestra SDK (Android, iOS) mediante bridges en aplicaciones Flutter, ya que normalmente esta acción genera errores que no han sido mapeados por el equipo de ingeniería de Unico.
La implementación de la SDK tiene 2 etapas hasta la captura de la foto y generación del encrypted:
Preparación de la cámara;
Apertura de la cámara.
En la primera etapa, es necesario pasar el tipo de cámara que se utilizará y el bundle con la información de la API KEY. Si todo está correcto, la autenticación con el backend de la SDK se realiza con éxito. En la segunda etapa, se realiza la apertura de la cámara, generalmente a partir de un clic en el botón del usuario. La autenticación con el backend de la SDK puede tomar algunos segundos, por lo que poner esta etapa junto con la apertura de la cámara al hacer clic en el botón puede generar frustración y sensación de lentitud. Por lo tanto, lo ideal es que, durante la carga de la página de instrucciones de captura, ya se esté realizando la preparación de la cámara, así cuando el usuario decida abrir la cámara, la carga será más rápida y la experiencia final será mejor.
De esta manera, optimizará su implementación y mejorará la velocidad de su aplicación, disminuyendo la percepción de lentitud en el procesamiento para su usuario final.
Siempre realice la limpieza de caché antes de realizar el build y subir nuevas versiones. Si no se realiza esta limpieza, podría encontrarse con errores relacionados con el caché de dependencias que posiblemente hayan sido eliminadas o actualizadas en nuevas versiones. A continuación, algunos ejemplos de cómo hacerlo:
Para Flutter, siga el comando:
Eliminar el archivo: pubspec.lock
o;
flutter pub get
.
Para iOS, siga el comando:
pod cache clean 'unicocheck-ios' –all
o;
pod cache clean –all
o;
Eliminar el archivo podfile.lock
y ejecutar pod install
.
Para Android en build Gradle, siga el comando:
./gradlew clean
.
La ofuscación es un proceso de transformación del bytecode en una forma menos legible para los humanos, dificultando así la ingeniería inversa. La herramienta de ofuscación que utilices en tu aplicación puede afectar el funcionamiento de la SDK, por lo que es necesario que esta no ofusque el código de la SDK. Un buen indicador de problemas de ofuscación es verificar si tu aplicación funciona en modo debug y deja de funcionar cuando realizas el build en modo release, ya que la ofuscación no modifica los archivos en modo debug.
Por lo tanto, es necesario que durante la implementación de la SDK agregues a tus reglas de ofuscación la configuración para la SDK Unico, de lo contrario, enfrentarás problemas al intentar realizar el build del proyecto utilizando la SDK para iOS, Android o Flutter.
A continuación, los enlaces para las configuraciones de ofuscación para cada sistema operativo:
Unico proporciona un entorno de homologación para que los clientes puedan realizar pruebas y validaciones de sus implementaciones antes de realizar cualquier cambio o alteración en el entorno de producción. Reforzamos la importancia de esta etapa para garantizar una mayor seguridad al realizar la ventana de cambio en producción. Asegúrate de que tu plan de pruebas incluya la mayor cantidad de validaciones y escenarios que encontrarás en el entorno de producción (como variación de dispositivos, pruebas con limitación de conectividad, etc.).
Importante: recuerda que el entorno de homologación tiene su propio conjunto de parametrizaciones/configuraciones, como cuentas de servicio y claves de API específicas (diferentes al entorno de producción).
Cree un guion / lista de verificación teniendo en cuenta el plan de gestión de cambios de su empresa;
Asegúrese de estar utilizando las configuraciones correctas de producción (como la clave API correcta);
Garantice que tenga un plan de retroceso (recuperación) en caso de falla al subir la nueva versión a producción;
Al encontrarse con una falla, recopile todos los registros y datos necesarios;
Reactive la versión anterior funcional para mitigar el impacto en producción;
Abra un ticket en nuestro portal de clientes con toda la información y los insumos sobre la falla para que podamos apoyarlo.
En esta sección, encontrará la lista con todas las PoCs de SDK disponibles para apoyar su implementación.
Los siguientes ejemplos de proyectos se ponen a disposición para facilitar la comprensión del funcionamiento de cada SDK.
Si no encuentra la PoC en esta sección, solicite la PoC a su Gerente de Proyectos y será compartida a través de un directorio SFTP.
Nuestro soporte está restringido a aplicaciones desarrolladas directamente en las plataformas nativas Android e iOS, utilizando sus respectivos módulos nativos, además del framework Flutter (si la implementación utiliza nuestro plugin). Actualmente, no ofrecemos soporte para aplicaciones desarrolladas en frameworks híbridos, como React Native, Ionic u otras tecnologías de desarrollo multiplataforma.
Tener instalado el Developer SDK de .
.
¿No encontraste algo o aún necesitas ayuda? Si ya eres cliente o socio, puedes ponerte en contacto a través del .
¿No encontraste algo o aún necesitas ayuda? Si ya eres cliente o socio, puedes ponerte en contacto a través del .
Se utiliza el versionado semántico para numerar las versiones. Para más información, consulte el artículo
¿No encontraste algo o aún necesitas ayuda? Si ya eres cliente o socio, puedes ponerte en contacto a través del .
¿No encontraste algo o aún necesitas ayuda? Si ya eres cliente o socio, puedes ponerte en contacto a través del .
Unico proporciona un conjunto de PoC (Prueba de Concepto) que son implementaciones en los diversos lenguajes soportados por la SDK, que presentan ejemplos funcionales de código con los flujos y métodos en el contexto de la SDK, con fines didácticos, facilitando la comprensión de la secuencia esperada y su adaptación al código que debe ser implementado por nuestros clientes. Puedes consultar las PoCs disponibles y solicitarlas a través de la apertura de un ticket con nuestro equipo de atención mediante el
Para más detalles, consulta la
Android: [];
IOS: [];
Flutter: [];
Web: [].
Android:
iOS:
¿No encontraste algo o aún necesitas ayuda? Si ya eres cliente o socio, puedes ponerte en contacto a través del .
¿No encontraste algo o aún necesitas ayuda? Si ya eres cliente o socio, puedes ponerte en contacto a través del .
73000
Unknown and unexpected error. Unico SDK leverages a variety of APIs including camera, storage, security, networking, and more. This return value is a catch-all for errors experienced during normal usage of these APIs.
73001
<property> is required
73002
<property> must be an instance of <class>
73003
<class> with name <name> is not available to inject.
73004
Class type must be a function or a class.
73005
Could not find the <locale> locale.
73006
Could not find text: <text>.
73100
Unable to connect to internet.
73200
Could not find the Unico SDK JSON file.
73201
Could not load the Unico SDK JSON file.
73202
Unico SDK JSON file is invalid.
73204
Unable to initialize the SDK, please configure the environment on setEnviroment method of build.
73300
Could not authenticate this application.
73301
Could not authenticate this application.
73302
Authentication token not found.
73303
Current host is not registered.
73400
Could not initialize camera.
73401
Could not load ML models for this camera.
73402
The Key could not be verified due to connectivity issues on the user's device.
73403
This device/platform/browser/version combination is not supported by SDK.
73404
Device is in landscape display orientation. The SDK can only be used in portrait display orientation.
73405
Device blocked due to multiple failed attempts.
73406
The Session was cancelled, the SDK was opened in an IFrame.
73407
The SDK was not fully loaded.
73500
Could not get session.
73501
Could not get session.
73502
Session token not found.
73600
Could not find camera resource.
73601
Could not start camera in production mode.
74000
Invalid hexadecimal.
74001
Object is not a UnicoTheme
73700
Could not parse camera response.
73704
The user pressed the cancel button and did not complete the session.
73706
The camera access is prevented because either the user has explicitly denied permission or the user's device is configured to not allow access by a device policy.
73707
The session was canceled due to the app being terminated, put to sleep, an OS notification, or the app was placed in the background.
73708
The session was cancelled because device is in landscape mode. The user experience of devices in these orientations is poor and thus portrait is required.
73710
The session was cancelled because the user was unable to complete a Session in the default allotted time or the timeout set by the developer.
73715
The session was cancelled because not all guidance images were configured.
73716
The session was cancelled because SDK was unable to start the camera on this device.
73717
The session was cancelled because the user was in a locked out state.
73718
The session was cancelled because of an unknown and unexpected error. SDK leverages a variety of iOS APIs including camera, storage, security, networking, and more. This return value is a catch-all for errors experienced during normal usage of these APIs.
73720
The developer programmatically called the session cancel API.
73721
The session was cancelled due to a device orientation change during the session.
73722
The session was cancelled because the document is not ready.
73723
The session was cancelled because there was another session in progress.
73724
The session was cancelled because the camera was opened in an iFrame.
73728
Connection error, please use HTTPS to connect.
73729
Browser not supported, please open in another browser.
73730
Unable to initialize an active liveness session because of an unknown and unexpected license error.
73731
Unable to initialize an active liveness session because the license has expired.
73732
Unable to initialize an active liveness session because Origin is not permitted.
73800
Could not encrypt response.
73900
Could not get system information.
Kotlin
PoC en Kotlin que implementa la SDK para Android
Swift
PoC en Swift que implementa la SDK para iOS
ObjC
PoC en ObjC que implementa la SDK para iOS
React Native
PoC en React Native que implementa las SDK para Android e iOS
SFTP
Flutter
PoC en Dart que implementa la SDK para Flutter
Angular
PoC en Angular que implementa la SDK Web
JS Vanilla
PoC en JS Vanilla (JS puro) que implementa la SDK Web
Next JS
PoC en Next que implementa la SDK Web
React JS com TypeScript
PoC en React con TypeScript que implementa la SDK Web
React JS com JavaScript
PoC en React con JavaScript que implementa la SDK Web
React JS com Webpack + Babel
PoC en React JS con Webpack + Babel que implementa la SDK Web
Vue JS
PoC en Vue JS que implementa la SDK Web
Android
PoC en una Webview Android que ejecuta la SDK Web
SFTP
Android x Web Flow
PoC de flujo de comunicación entre aplicación web y webview nativa Android
SFTP
iOS
PoC en una Webview iOS que ejecuta la SDK Web
SFTP
iOS x Web Flow
PoC de flujo de comunicación entre aplicación web y webview nativa iOS
SFTP
Aquí encontrarás la lista de términos, palabras o expresiones técnicas que se utilizan en esta documentación, así como sus respectivas descripciones
APIKey
Creada en el portal de Único, utilizada de manera obligatoria en la interfaz entre sistemas, lleva configuraciones que se aplicarán en las integraciones. Es única por operación/flujo y siempre vinculada a la filial y cuenta de servicio.
Arquivo .pem
Es un archivo que contiene la clave privada, utilizado en la autenticación OAuth2.
Bundle
Es un paquete que contiene las credenciales para utilizar el SDK.
Cuenta de Servicio
Es una cuenta impersonal que pertenece a la aplicación y no a un usuario individual, utilizada en la autenticación OAuth2.
Sucursal
Identificación de la sucursal u operación del cliente, vinculada a la cuenta de servicio y a todos los usuarios que tendrán acceso al sistema.
Instancia
URL de la página de acceso al portal del producto de Unico.
Encrypted
Archivo JWT generado por nuestro SDK, que se usará en la integración. Tiene una expiración de 10 minutos y solo puede ser utilizado una vez.
Portal IDCloud
Lugar de acceso al producto de Unico.
ProcessID
Identificación generada después de la creación del proceso.
SDK
Es un conjunto de herramientas o paquetes proporcionados por Único para facilitar la captura de imágenes faciales y/o documentos.
Flow
Es un atributo que lleva configuraciones y define el flujo del cliente final en el proceso de biometría en by Unico.
TenantID
Es un identificador exclusivo de tu empresa en Unico.
Capacidades
Son las funcionalidades que se pueden utilizar en la plataforma IDCloud.
Drop
Es cuando una foto es rechazada por el motor de biometría debido a baja calidad y/o algún error del motor.
¿No encontraste algo o aún necesitas ayuda? Si ya eres cliente o socio, puedes ponerte en contacto a través del Centro de Ayuda.