Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Nesta seção, você encontrará todas as informações necessárias pra implementar os SDKs da plataforma Unico IDCloud
Nesta seção, você encontrará todas as informações necessárias pra implementar o SDK Android da plataforma Unico IDCloud
Nesta seção, você encontrará todas as informações necessárias pra implementar o SDK iOS da plataforma Unico IDCloud
Nesta seção, você encontrará todas as informações necessárias pra implementar o SDK Flutter da plataforma Unico IDCloud
Nesta seção, você encontrará todas as informações necessárias pra implementar o SDK Web da plataforma Unico IDCloud
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 Android
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 iOS
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
Nesta seção, você encontrará todas as informações necessárias para o uso e integração do SDK da plataforma Unico IDCloud em suas aplicações Web
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 Android para a captura da selfie
Este guia foi elaborado para ajudá-lo a implementar o SDK Android de forma rápida e fácil. Abaixo veja o passo a passo de todo o processo de integração. Após isso, caso deseje personalizar a experiência, não deixe de ver a seção Personalização Android.
Crie uma instância do builder (Gerado através da interface IAcessoBioBuilder
), fornecendo como parâmetro o contexto e ambiente em questão e a implementação da classe AcessoBioListener
.
A implementação dessa classe é bem simples e pode ser feita com poucas linhas de código. Tudo que precisa fazer é instanciar o builder informando o contexto em questão e sobrescrever os métodos de callback com as lógicas de negócio de sua aplicação:
Configure o ambiente que será utilizado na execução da SDK. Utilize o enumerado Environment
que contém os seguintes enumerados:
Environment.PROD
: para ambiente de Produção;
Environment.UAT
: para ambiente de Homologação.
Veja como implementar no exemplo abaixo:
Note que, o trabalho de implementação da classe AcessoBioListener
é, em grande parte, a configuração dos métodos de callback. Cada método é chamado em uma situação específica de retorno do SDK.
Basta sobrescrever os métodos exemplificados no passo anterior com as lógicas de negócio de sua aplicação.
Este método é invocado sempre que qualquer erro de implementação ocorrer ao utilizar algum de nossos métodos:
onErrorAcessoBio(ErrorBio errorBio)
Ao ser invocado, o método recebe um parâmetro do tipo ErrorBio que contem detalhes do erro. Saiba mais sobre o tipo ErrorBio
na seção de tratamento de erros.
onUserClosedCameraManually()
Este método é invocado sempre quando o usuário fechar a câmera de forma manual, como por exemplo, ao clicar no botão "Voltar".
onSystemClosedCameraTimeoutSession()
Este método é invocado assim que o tempo máximo de sessão for atingido (Sem capturar nenhuma imagem).
Pode ser configurado no builder através do método setTimeoutSession. Este método deve receber o tempo máximo da sessão em segundos. É possível alterar o tempo máximo de sessão do seu usuário ao utilizar a funcionalidade de detecção do rosto (Câmera de selfie com captura inteligente). Caso ele ultrapasse o tempo determinado em seu processo para capturar a foto, você pode apresentar alguma mensagem personalizável ou instrução ao usuário. O valor padrão é de 40 segundos e seu valor mínimo também é de 40 segundos.
onSystemChangedTypeCameraTimeoutFaceInference()
Este método é invocado assim que o tempo máximo para detecção do rosto de um usuário for atingido (Sem ter nada detectado). Neste caso, o modo de câmera é alterado automaticamente para o modo de captura manual (Sem a silhueta de captura inteligente).
O tempo máximo de captura ao utilizar a detecção do rosto (Câmera de selfie com captura inteligente) é de 13 segundos. Se o usuário encontra alguma dificuldade para captura da foto através da detecção do rosto e ultrapasse o tempo determinado em seu processo, a captura é alterada automaticamente para a manual, tendo como objetivo facilitar a ação para o usuário (TimeoutToFaceInference).
Todos os métodos acima devem ser criados da forma indicada em seu projeto (Mesmo que sem nenhuma lógica). Caso contrário, o projeto não compila com sucesso.
O SDK tem configurado e habilitado por padrão o enquadramento inteligente e a captura automática. Em função disso, deve-se configurar o modo de câmera no seu builder da seguinte forma:
Os valores false/true dos métodos acima não alteram a experiência de captura, servem apenas para a lógica interna do funcionamento do SDK.
A implementação destes métodos listeners deve ser feita através de uma instância da classe iAcessoBioSelfie
.
O método de abertura da câmera, que é chamado na próxima etapa, precisa saber o que fazer ao conseguir capturar uma imagem com sucesso ou ao ocorrer algum erro no processo. É necessário informar "o que fazer" ao método de abertura da câmera através da implantação de listeners que são chamados em situações de sucesso ou erro.
Através da configuração dos listeners, você pode especificar o que acontece em seu App em situações de erro (Método onErrorSelfie
) ou sucesso (Método onSuccessSelfie
) na captura de imagens.
Mudanças da nomenclatura para as versões inferiores a 4.2.1:
Do método prepareCamera
que antes era prepareSelfieCamera
;
Da classe CameraListener
que antes era SelfieCameraListener
;
Do objeto UnicoCheckCameraOpener.Camera
que antes era UnicoCheckCameraOpener.Selfie
.
Para a configuração dos listeners, é necessário implementar:
Para seguir com a abertura da câmera, primeiro é necessário prepará-la utilizando o método prepareCamera. Este método recebe como parâmetro a implementação da classe CameraListener
, a classe ou o JSON com as credenciais, gerado nessa etapa.
Quando a câmera estiver preparada, é disparado o evento onCameraReady
, que recebe como parâmetro um objeto do tipo UnicoCheckCameraOpener.Camera
.
É necessário sobrescrever este método, efetuando a abertura da câmera com o objeto recebido através do método open()
. O método open()
deve receber como parâmetro os listeners configurados nos passos acima.
onSucessSelfie
Ao efetuar uma captura de imagem com sucesso, este método é invocado e retorna um objeto do tipo ResultCamera
que é utilizado posteriormente na chamada das APIs REST:
O objeto ResultCamera
retorna 2 atributos: base64
e encrypted
:
O atributo base64
pode ser utilizado se quiser exibir uma prévia da imagem em seu app;
O atributo encrypted
deve ser enviado na chamada das APIs REST do by Client.
O atributo encrypted
é destinado estritamente ao envio da imagem através das APIs do by Client. Não se deve abrir e serializar esse atributo, pois suas características podem ser alteradas sem aviso prévio. Seu uso deve ser exclusivo nas interações com as APIs para garantir a integridade e segurança dos dados. A Unico não se responsabiliza por quaisquer danos decorrentes dessa prática, uma vez que as modificações podem ocorrer de maneira imprevista.
Os arquivos base64/encrypted
podem sofrer variações de tamanho de acordo com diversas variáveis, dentre elas, a qualidade dos aparelhos e das fotos geradas pelos mesmos e regras de negócio da Unico. Para não encontrar problemas em sua aplicação, não limite em sua lógica de programação ou sua infraestrutura o tamanho da string gerada pela SDK para os arquivos.
onErrorSelfie
Ao ocorrer algum erro na captura de imagem, este método é invocado e retorna um objeto do tipo ErrorBio
:
Saiba mais sobre os tipos de ErrorBio
na seção de tratamento de erros do SDK.
Se for necessário converter o base64 para bitmap, a maneira padrão não funciona para o Android. É necessário realizar o split a partir da vírgula(,
) para que funcione. Se quiser saber mais, leia o artigo: How to convert a Base64 string into a Bitmap image to show it in a ImageView?.
A captura das imagens é apenas a primeira parte da jornada. Após capturar a imagem, é necessário enviar o encrypted
gerado pelo SDK para as APIs REST do by Client. Saiba mais na seção CreateProcess do by Client.
Por motivos de segurança, o intervalo entre a geração do encrypted
e o envio via um dos fluxos disponíveis deve ser de até no máximo 10 minutos. Envios feitos além deste período serão rejeitados automaticamente pela API.
Não encontrou algo ou ainda precisa de ajuda? Se já é um cliente ou parceiro, pode entrar em contato através da Central de Ajuda.
Nesta seção, você encontrará a solução de alguns problemas comuns na integração do SDK da plataforma Unico IDCloud em seus aplicativos Android
O material de ofuscação tem por motivação servir de auxilio para o desenvolvedor passar pelos problemas de ofuscação em seu aplicativo.
O ofuscador do cliente pode afetar o funcionamento do SDK, é necessário que o mesmo não ofusque o código do SDK.
A Unico se isenta da responsabilidade em relação à conflitos de ofuscação com a SDK.
O ofuscamento é um processo de transformar o bytecode em uma forma menos legível por humanos, dificultando assim a engenharia reversa.
Esse processo consiste em remover informações relacionadas a depuração como tabelas de variáveis, número de linhas e renomear os pacotes, classes e métodos.
Ao embarcar a SDK Adroid na aplicação podem ocorrer falhas.
Quando o ofuscamento foi realizado via DexGuard, ao ocorrer a falha utilize as regras:
Quando o ofuscamento foi realizado via ProGuard, ao ocorrer a falha utilize as regras:
A partir da versão 4.4.x do SDK, o Unico começou a usar seu próprio repositório Maven para distribuir o Android SDK e alterou o nome da dependência do SDK, além de ajustes nas regras do ProGuard e do DexGuard para clientes que utilizam a biblioteca da GuardSquare conforme descrito na seção de Ofuscação de código acima.
Altere o repositório Maven para o novo repositório no arquivo build.gradle
do projeto.
A implementação era feita da seguinte forma:
Agora deve ser atualizado para o novo repositório:
Altere a dependência do SDK para a nova dependência no arquivo app/build.gradle
do projeto.
A implementação era feita da seguinte forma:
Agora deve ser atualizado para a nova dependência:
Não encontrou algo ou ainda precisa de ajuda? Se já é um cliente ou parceiro, pode entrar em contato através da Central de Ajuda.
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 iOS para a captura da selfie
Este guia foi elaborado para ajudá-lo a implementar o SDK iOS de forma rápida e fácil. Abaixo veja o passo a passo de todo o processo de integração. Após isso, caso deseje personalizar a experiência, não deixe de ver a seção Personalização iOS.
Para iniciar com SDK iOS do Unico Check, importe o SDK e implemente a interface AcessoBioManagerDelegate
dentro da ViewController que deseja utilizar.
A implementação dessa classe é bem simples e pode ser feita com poucas linhas de código. Tudo que precisa fazer é instanciar o builder informando o contexto e ambiente em questão e sobrescrever os métodos de callback com as lógicas de negócio de sua aplicação:
Configure o ambiente que será utilizado na execução da SDK. Utilize o enumerado Environment
que contém os seguintes enumerados:
PROD
: para ambiente de Produção;
UAT
: para ambiente de Homologação.
Veja como implementar no exemplo abaixo:
Note que, conforme o exemplo anterior, o trabalho de implementação da interface AcessoBioManagerDelegate
é, em grande parte, a configuração dos métodos de callback. Cada método é chamado em uma situação específica de retorno do SDK.
Basta sobrescrever os métodos exemplificados no passo anterior com as lógicas de negócio de sua aplicação:
onErrorAcessoBioManager(_ error: ErrorBio!)
Este método é invocado quando qualquer erro de implementação ocorrer ao utilizar algum dos métodos, como por exemplo, ao informar um tipo de documento incorreto para a funcionalidade de captura de documentos.
Ao ser invocado, o método receberá um parâmetro do tipo ErrorBio
que contem detalhes do erro. Saiba mais sobre o tipo ErrorBio
no artigo de tratamento de erros deste SDK.
onUserClosedCameraManually()
Este método é invocado sempre quando o usuário fechar a câmera de forma manual, como por exemplo, ao clicar no botão "Voltar".
onSystemClosedCameraTimeoutSession()
Este método é invocado assim que o tempo máximo de sessão for atingido (Sem capturar nenhuma imagem).
Pode ser configurado no builder através do método setTimeoutSession. Este método deve receber o tempo máximo da sessão em segundos. É possível alterar o tempo máximo de sessão do seu usuário ao utilizar a funcionalidade de detecção do rosto (Câmera de selfie com captura inteligente). Caso ele ultrapasse o tempo determinado em seu processo para capturar a foto, você pode apresentar alguma mensagem personalizável ou instrução ao usuário. O valor padrão é de 40 segundos e seu valor mínimo também é de 40 segundos.
onSystemChangedTypeCameraTimeoutFaceInference()
Este método é invocado assim que o tempo máximo para detecção do rosto de um usuário for atingido (Sem ter nada detectado). Neste caso, o modo de câmera é alterado automaticamente para o modo de captura manual (Sem a silhueta de captura inteligente).
O tempo máximo de captura ao utilizar a detecção do rosto (Câmera de selfie com captura inteligente) é de 13 segundos. Se o usuário encontra alguma dificuldade para captura da foto através da detecção do rosto e ultrapasse o tempo determinado em seu processo, a captura é alterada automaticamente para a manual, tendo como objetivo facilitar a ação para o usuário (TimeoutToFaceInference).
Todos os métodos acima devem ser criados da forma indicada em seu projeto (Mesmo que sem nenhuma lógica). Caso contrário, o projeto não compila com sucesso.
O SDK tem configurado e habilitado por padrão o enquadramento inteligente e a captura automática. Em função disso, deve-se configurar o modo de câmera no seu builder da seguinte forma:
Os valores false/true dos métodos acima não alteram a experiência de captura, servem apenas para a lógica interna do funcionamento do SDK.
O método de abertura da câmera precisa saber o que fazer ao conseguir capturar uma imagem com sucesso ou ao ter algum erro no processo. É informado "o que fazer" ao método de abertura da câmera através da configuração de delegates que são chamados em situações de sucesso ou erro.
Através da configuração dos delegates, você pode especificar o que acontece em seu App em situações de erro (método onErrorSelfie
) ou sucesso (método onSuccessSelfie
) na captura de imagens.
Para a configuração dos delegates, você deve implementar as interfaces SelfieCameraDelegate
e AcessoBioSelfieDelegate
:
onSuccessSelfie
Ao efetuar uma captura de imagem com sucesso, este método é invocado e retorna um objeto do tipo SelfieResult
que é utilizado posteriormente na chamada das APIs REST.
O objeto ResultCamera
retorna 2 atributos: base64
e encrypted
:
O atributo base64
pode ser utilizado se quiser exibir uma prévia da imagem em seu app;
O atributo encrypted
deve ser enviado na chamada das APIs REST do by Client.
O atributo encrypted
é destinado estritamente ao envio da imagem através das APIs do by Client. Não se deve abrir e serializar esse atributo, pois suas características podem ser alteradas sem aviso prévio. Seu uso deve ser exclusivo nas interações com as APIs para garantir a integridade e segurança dos dados. A Unico não se responsabiliza por quaisquer danos decorrentes dessa prática, uma vez que as modificações podem ocorrer de maneira imprevista.
Os arquivos base64/encrypted
podem sofrer variações de tamanho de acordo com diversas variáveis, dentre elas, a qualidade dos aparelhos e das fotos geradas pelos mesmos e regras de negócio da Unico. Para não encontrar problemas em sua aplicação, não limite em sua lógica de programação ou sua infraestrutura o tamanho da string gerada pela SDK para os arquivos.
Caso queira converter o base64 para bitmap, a maneira padrão não funciona para o iOS. É necessário realizar o split a partir da vírgula(,
) para que funcione. Caso queira saber mais, leia o seguinte artigo: How to convert a Base64 string into a Bitmap image to show it in a ImageView?.
onErrorSelfie
Ao ocorrer algum erro na captura de imagem, este método é invocado e retorna um objeto do tipo ErrorBio
:
Saiba mais sobre os tipos de ErrorBio
na seção de tratamento de erros do SDK.
Caso não seja configurado, a SDK usa o ambiente configurado em através do arquivo de configuração (getHostKey). Caso getHostKey não esteja sendo usado, um erro é retornado.
É possível configurar o ambiente que será utilizado na execução da SDK. Utilize o enumerado EnvironmentEnum
que contém os seguintes enumerados:
EnvironmentEnum.PROD
: para ambiente de Produção
EnvironmentEnum.UAT
: para ambiente de Homologação
Veja como implementar no exemplo abaixo:
Para seguir com a abertura da câmera, primeiro deve-se prepará-la utilizando o método prepareSelfieCamera
. Este método recebe como parâmetro a implementação da classe SelfieCameraDelegate
e o JSON com as credenciais, gerado na etapa acima.
Quando a câmera estiver preparada, o evento onCameraReady
é disparado e 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 open()
:
O tipo ErrorPrepare
é uma extensão de ErrorBio
contendo assim todas as suas propriedades. Saiba mais sobre o tipo ErrorBio
na seção de tratamento de erros do SDK.
Caso ocorra algum erro ao preparar a câmera, o evento onCameraFailed
é disparado. Você devem implementar este método aplicando as regras de negócio de seu App.
A captura das imagens é apenas a primeira parte da jornada. Após capturar a imagem, é necessário enviar o encrypted
gerado pelo SDK para as APIs REST do by Client. Saiba mais na seção CreateProcess do by Client.
Por motivos de segurança, o intervalo entre a geração do encrypted
e o envio via um dos fluxos disponíveis deve ser de até no máximo 10 minutos. Envios feitos além deste período serão rejeitados automaticamente pela API.
Não encontrou algo ou ainda precisa de ajuda? Se já é um cliente ou parceiro, pode entrar em contato através da Central de Ajuda.
Nesta seção, você encontrará todas as atualizações do SDK Android
Mantenha seu SDK Android sempre atualizado com a última versão disponível.
O versionamento semântico é utilizado para numerar as versões. Para mais informações, consulte o artigo Visão Geral.
Guia de atualização para versão 5.x.x
A atualização major que esta sendo implementada a partir da versão 5.x.x deveria ter sido realizada no lançamento da versão 4.4.0. Esta alteração está relacionada à ofuscação de código e exige ajustes nas regras do ProGuard e do DexGuard para clientes que utilizam a biblioteca da GuardSquare.
Além disso, o repositório onde a SDK é disponibilizada mudou e também houve alteração no nome da dependência do SDK. Você deve atualizar seus registros de acordo com o artigo Atualização do SDK versão 4.3.x.
Atualização do SDK e server do Liveness com interação.
Atualização do SDK e server do Liveness com interação.
Atualização do SDK e server do Liveness com interação;
Melhorias internas no produto, sem impacto externo.
Correção na câmera de documento, onde em alguns cenários ocorria um crash após a captura.
Atualização do SDK e server do Liveness com interação;
Melhorias internas no produto, sem impacto externo;
Atualização do SDK e server do Liveness com interação;
Melhorias internas no produto, sem impacto externo.
Correção na resposta das requisições internas da sdk, onde em alguns casos quando não havia internet, o callback de erro não era devolvido e mantinha o usuário preso na tela.
Melhorias internas no produto, sem impacto externo.
Melhorias internas no produto, sem impacto externo.
Correção de localização setLocale()
na captura com Liveness interativo.
Correção de erros internos que não afetam a experiência do usuário final.
Melhorias internas de produto. Essas melhorias não afetam diretamente a experiência do usuário final, mantendo a interface e funcionalidades externas inalteradas.
Melhorias de segurança em nosso Liveness;
A partir de agora, os desenvolvedores serão notificados em tempo real durante o desenvolvimento se a versão utilizada não estiver em conformidade com as políticas de atualização da Unico. Em casos de dúvidas, contacte o seu CSM;
A partir de agora, é possível definir o ambiente da SDK pela própria API pública no método setEnvironment()
. Em casos de dúvidas, contate o seu CSM.
Atualização Crítica
Atualização do SDK e server do Smartlive com interação.
Melhorias nos algoritmos de comunicação entre o clientside e serverside unico.
Correção do erro current host is not registred
em ambiente de homologação.
Melhorias internas no produto, sem impacto externo.
Atualização Crítica
Atualização do SDK e server do Smartlive com interação;
Melhorias nas verificações de injeção de vídeo recentemente adicionadas no lado do dispositivo e no lado do servidor para mitigar ameaças de IA generativa.
Atualização Crítica
Atualização do SDK e server do Smartlive com interação;
Melhorias nas verificações de injeção de vídeo recentemente adicionadas no lado do dispositivo e no lado do servidor para mitigar ameaças de IA generativa.
Melhorias e correções na inicialização da SDK, evitando a perda de 1.5% das sessões.
Atualização do SDK e server do Smartlive com interação.
Novas funcionalidades que melhoram a experiência de captura no Liveness Interativo.
Melhorias nas verificações de injeção de vídeo recentemente adicionadas no lado do dispositivo e no lado do servidor para mitigar ameaças de IA generativa.
Correção no botão de fechar na captura de liveness interativo, em alguns cenários uma tela de loading pode aparecer por tempo indeterminado.
Correção no ciclo de vida da captura, em cenários onde a tela é encerrada antes do callback de sucesso ou erro.
Correção na geolocalização, em cenários onde a aplicação pode parar quando for desabilitada.
Correção na compatibilidade em estilos predefinidos, causando conflitos entre <attr ... />
.
Atualização Crítica
Melhorias nas verificações de injeção de vídeo recentemente adicionadas no lado do dispositivo e no lado do servidor para mitigar ameaças de IA generativa;
Nova funcionalidade de captura para garantir segurança eficaz;
Atualização do SDK e server do Smartlive com interação;
Fix camera traseira no modelo Multilaser M8.
Habilitamos a customização da cor da barra de progresso através do método opcional setColorProgressBar()
;
Habilitamos a customização dos textos da UI do liveness interativo via configuração remota;
Habilitação a customização do logo abaixo do frame de captura do smartlive com interação.
Atualização do SDK e server do Smartlive com interação;
Melhoria interna no produto, sem impacto externo.
Melhorias nos registros de log do SDK;
Melhoria interna no produto, sem impacto externo.
Correção do problema relacionado a orquestração thread's de retorno ao cliente que impactava a captura biométrica quando fluxo de retentativa habilitado.
Essa versão visa proporcionar uma experiência mais estável e eficiente. Requer apenas atualização da SDK.
Disponibilizado código e descrição do erro retornado pelo callback onCameraFailed, facilitando seu monitoramento e mapeamento;
Definição automática de ambientes de produção e homologação no SDK;
Otimização no fluxo de gerar JWT melhorando a performance.
Melhoria no fluxo de autenticação, reduzindo falhas na autenticação de dispositivos com configurações específicas no Sistema Operacional. Essa modificação visa proporcionar uma experiência mais estável e eficiente. Importante destacar que essa melhoria requer apenas a atualização da SDK para que os benefícios sejam integralmente aplicados.
Atualização do SDK e server do Smartlive com interação.
Melhoria internas no produto, sem impacto externo.
Melhorias internas;
Ao receber uma config inválida o erro é retornado pelo callback onCameraFailed
e não mais pelo exception do UnicoCheckException.
Hotfix: Câmera de Documento com Liveness habilitado;
Hotfix: Modo escuro não respeita as cores customizadas em alguns dispositivos Xiaomi.
Disponibilizar o novo fluxo de captura e retentativas quando usado o Liveness com Interação (entrar em contato com a único caso queira habilitar essa nova funcionalidade);
Lançar erro 73800
caso haja falha na captura usando o fluxo de retentativa;
Lançar erro 73100
caso haja falha de conexão com internet durante uma requisição;
Removido o timeout do fluxo de captura usando Livenes com Interação.
Hotfix: Corrigido callbacks internos como opcionais prevenindo possíveis erros relacionados a propriedades não inicializadas;
Hotfix: Reforçado a clareza das mensagens de erro para desenvolvedores, em especial quando há ausência da implementação da AcessoBioListener, tornando mais intuitivo o processo de correção;
Hotfix: Alterado as regras de ofuscação para garantir que a classe UnicoCheckException não seja ofuscada e os erros sejam exibidos corretamente no console e nos logs;
Hotfix: Otimizado a inicialização do objeto bioConfig evitando erros internos.
Hotfix: Corrigido um problema na configuração do SDK através do arquivo JSON.
Hotfix: Corrigido erro de caractere afetando build;
Hotfix: Modo baixa luminosidade não altera a cor dos textos.
Hotfix: Aplicação não respondendo, ARN;
Hotfix: Modo alta luminosidade não altera a cor dos texto;
Hotfix: Erro internal exception.
Atualização do SDK client e server do Smartlive com interação.
Melhoria de segurança na comunicação da SDK.
Hotfix: Timeout na câmera traseira.
Atualização do SDK client e server do Smartlive com interação;
Atualização das mensagens do Smartlive com interação;
Atualização da biblioteca de CameraX
Adicionado timeout na câmera de liveness com interação;
Hotfix: Câmera de documento.
Hotfix: compatibilidade com Android 8.0.
Melhoria de compatibilidade com a ferramenta de ofuscação;
Melhoria de segurança na comunicação da SDK;
Nova URL do repositório para download do SDK;
Alteração do nome do SDK de com.github.acesso-io:acessobio-android para io.unico:capture;
Suporte para o Kotlin a partir da versão 1.5.
Atualização do SDK client e server do Smartlive com interação.
Hotfix: Suporte ao tema dark.
Hotfix: Compatibilidade ofuscação.
Hotfix: Geolocalização em casos de endereço nulo;
Hotfix: Tempo de expiração da câmera de documentos;
Hotfix: Implementação de projeto com sentry.
Hotfix: Abertura de camera traseira;
Atualização da versão do modo de câmera de selfie com prova de vida da FaceTec.
Feat: segurança no changelog;
Feat: Atualização da SDK e server do Smartlive com interação.
Fix: Suporte a uso do modo de câmera com captura automática em tablets;
Fix: Conflito com sentry.
Atualização da SDK e server do Smartlive com interação;
Coleta de dados de uso, geolocalização e dispositivo (Os dados coletados são usados para garantir a segurança do processo e melhorar a experiência do usuário);
Correção do bug para abrir a câmera em dispositivos com Android 6.0.1.
Hotfix: Prefixo da url.
Hotfix: Contorno da silhueta na cor branca.
Uma nova camada de segurança;
Atualização da versão do modo de câmera de selfie com prova de vida da FaceTec.
Hotfix: Melhoria da lentidão na main thread;
Hotfix: Tratamento dos retornos de erro onBackPressed, bitmap e no available camera.
Novo incremento de segurança;
Ajuste na resolução das imagens;
Hotfix: Ajuste no uso de captura de documentos usando uma APIKey com Smartlive ativo habilitado;
Hotfix: Ajustes na configuração de timeout da câmera de documentos.
Hotfix: Ajuste no frame de captura de documentos genéricos;
Hotfix: Correção de nomenclaturas que causavam conflito de themes;
Hotfix: Melhoria na coleta de logs de erro.
Indicador de atividade agora possui mesma cor que a mensagem na customização;
Possibilidade de executar os métodos prepareSelfieCamera e prepareDocumentCamera sem o arquivo json, utilizando uma interface do tipo AcessoBioConfigDataSource.
Hotfix: ajuste no lifecycle do frame de captura com interação.
Melhoria da resolução da imagem gerada pelo modo de câmera de selfie com prova de vida da FaceTec para celulares de qualidade média/alta;
Atualização do google play services ML Kit face detection para a versão 17.0.1.
Atualização da versão do modo de câmera de selfie com prova de vida da FaceTec;
Remoção de pedidos de permissões que não estavam sendo usados.
Ajuste no tema padrão para o modo de baixa luminosidade modo de câmera de selfie com prova de vida da FaceTec.
Customização do botão de fechar camera;
Correções de erros na customização de sucesso.
Ajuste para otimizar performance;
Ajuste no seletor de câmera para dispositivos com múltiplas câmeras.
Ajuste nas configurações que geram o objeto encriptado unico;
Correções em configuração de Temas;
Resolução de conflitos com bugfender.
Downgrade do Kotlin para 1.4.0;
Ajuste ao abrir a câmera pela segunda vez.
Correção no encrypted.
Ajuste de dependencias para tornar as bibliotecas do SDK Android compativeis com minCompileSdk 30.
Adicionada compatibilidade com java 8;
Adicionado frames de captura de CNH frente e CNH verso.
Correção de erro no jitpack.
Update da biblioteca GSON para versão 2.8.9;
Ajuste no módulo de abertura de câmera.
Foi corrigido o bug no módulo de abertura da câmera de documentos.
Foi corrigido o bug que deixa o debug lento ao utilizar o SDK Android.
Foi corrigido o bug referente a: request prepare camera.
A partir de agora, o SDK Android conta com a funcionalidade de Prova de Vida. Para atualizar essa nova versão do SDK, solicite junto ao seu gestor de contas a documentação correspondente a nova implementação e ativação da funcionalidade para sua operação;
O SDK Android está ainda mais seguro.
A partir dessa versão é necessário adicionar no projeto o arquivo: unico-check-mobile-services.json. Procure o customer success ou o gestor de contas para ter acesso ao Portal do Cliente e seguir o passo a passo necessário;
Foi disponibilizado mais um frame de captura em documentos: CPF.
Não é permitido o uso da câmera em emuladores.
Ajuste na captura do log de erro.
Correção de espelhamento de imagem ao utilizar a câmera do tipo "Documento".
Mudança na estrutura de classes.
Mudança na estrutura de classes.
Refatoração de funções públicas, permitindo o retorno assync dentro da própria função;
Refatoração nos métodos disableAutoCapture e disableSmartFrame;
Correção de bug de enquadramento de face;
Correção de bug de travamento de tela após a captura.
Troca do motor de tracking biométrico, foi migrado do FirebaseMLVision para FaceDetectorMLKit;
Foi atualizada a API padrão de abertura de câmera, migramos da API de Camera2 para API de CameraX;
Foram obtidos ganhos significativos na gerência de ciclo de vida, memória, processamento e aumentando a compatibilidade de dispositivos que são suportados;
Foi removida a necessidade da implementação do Firebase para o uso das tecnologias do SDK Android, diminuindo consideravelmente a fricção na integração e evitando conflitos que anteriormente ocorriam;
Foram removidos todos os métodos de processos REST da API pública, garbages code e realizamos outras melhorias.
A SDK está mais segura com novos métodos de criptografia em real-time;
A SDK está mais rápida e precisa na detecção de faces com melhorias dos modelos de IA para o câmera inteligente;
Agora é possível configurar o tempo máximo de sessão do seu usuário;
Agora é possível configurar o tempo máximo de captura ao utilizar a detecção da face (smart câmera). Caso o usuário encontre alguma dificuldade para capturar a foto através da detecção de face e ultrapasse o tempo determinado em seu processo, a captura será alterada automaticamente para a manual, visando facilitar a ação para o usuário.
Depreciamos todos os métodos referentes a requisições REST, que outrora permitiam a criação de processos dentro da v3 do unico-onboarding diretamente da SDK.
Nesta versão trazemos grande otimização no tamanho da SDK, diminuindo em 75% do tamanho anterior;
Foram incluidas melhorias de performance.
A SDK está 42% mais leve com a remoção de várias intra-dependências e remoções de garbage-code;
A SDK está mais segura com novos métodos de criptografia em real-time;
A SDK está mais rápida com os novos modelos de IA para o câmera inteligente;
Foram removidos todos os métodos que permitiam acesso ao Liveness com interação.
Foi removido o método de validação REST no fluxo básico de captura de documentos.
Atualização do Firebase ML-Vision 19.0.3 para 24.1.0;
Atualização do Google Services 4.3.3 para 4.3.5.
Agora é possível customizar todos os elementos visuais utilizando também cores no formato hexadecimal. Lembrando que os formatos padrões dos SO's continuam ativos, como UIColor para iOS e Colors para Android;
Foi adicionado um novo método de retorno para notificar a sua classe implementadora no momento em que o usuário fechar a câmera manualmente;
Foi corrigido o retorno do método de FaceMatch, devolvendo o objeto completo com base64 da selfie, base64 do documento e o status de FaceMatch.
Agora é possível customizar todos os elementos visuais utilizando também cores no formato hexadecimal. Lembrando que os formatos padrões dos SO's continuam ativos, como UIColor para iOS e Colors para Android;
Foi adicionado um novo método de retorno para notificar a sua classe implementadora no momento em que o usuário fechar a câmera manualmente;
Foi corrigido o retorno do método de FaceMatch, devolvendo o objeto completo com base64 da selfie, base64 do documento e o status de FaceMatch;
Outras limpezas.
Foi adicionado um novo método de callback (retorno) para notificar a sua classe implementadora no momento em que o usuário fechar a câmera manualmente;
Foi corrigido o callback do método de FaceMatch, devolvendo o objeto completo com base64 da selfie, base64 do documento e o status de facematch;
Outras limpezas.
Novas validações prévias, facilitando a visibilidade de qualquer tipo de anormalidade quanto ao setup previamente a abertura de câmera em si;
Pequenas melhorias e limpeza em toda solução.
Pequenas correções de bugs e melhorias no fluxo de permissões.
Posibilidade de customizar a imagem do ícone de popup de reset de sessão dentro do fluxo do Liveness com interação;
Foi removida a obrigatoriedade da tag allowBackups em AndroidManifest.
Possibilidade de personalizar todos os elementos visuais utilizando cores em formato hexadecimal. Os formatos padrão permanecem ativos;
Foi adicionado um novo método de callback para notificar sua classe implementadora no momento em que o usuário fecha manualmente a câmera;
Foram corrigidos pequenos bugs no fluxo do Liveness com interação;
Corrigido o retorno do método FaceMatch, retornando o objeto completo com base64 da selfie, base64 do documento e o status do FaceMatch.
Não encontrou algo ou ainda precisa de ajuda? Se já é um cliente ou parceiro, pode entrar em contato através da Central de Ajuda.
Nesta seção, você encontrará todas as informações necessárias para a customização do SDK da plataforma Unico IDCloud em seus aplicativos Android
O SDK Android permite que algumas personalizações sejam feitas. Abaixo veja todas as personalizações possíveis para este SDK.
É possível configurar a experiência das mensagens informativas dos frames de captura alterando seu idioma. Utilize o enumerado LocaleTypes
que contém os seguintes 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).
Veja como implementar no exemplo abaixo:
Pode ser necessário uma ativação remota para ser utilizado, caso deseje usar, sinalize seu gerente de projetos ou o suporte da Unico.
Caso não seja configurado, por padrão o SDK utiliza o 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 os métodos estão disponíveis abaixo:
Também é possível realizar personalizações de forma estática, no seu arquivo colors.xml adicione o seguinte código:
Abaixo, confira a especificação de campos da personalização:
Esta é uma etapa opcional, porém muito recomendada para que o processo de captura tenha a
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 os métodos estão disponíveis abaixo:
Também é possível realizar personalizações de forma estática, no seu arquivo colors.xml adicione o seguinte código:
Abaixo, confira a especificação de campos da personalização:
Não encontrou algo ou ainda precisa de ajuda? Se já é um cliente ou parceiro, pode entrar em contato através da Central de Ajuda.
O material de ofuscação tem por motivação servir de auxilio para o desenvolvedor passar pelos problemas de ofuscação em seu aplicativo.
O ofuscador do cliente pode afetar o funcionamento do SDK, é necessário que o mesmo não ofusque o código do SDK.
A Unico se isenta da responsabilidade em relação à conflitos de ofuscação com a SDK.
O ofuscamento é um processo de transformar o bytecode em uma forma menos legível por humanos, dificultando assim a engenharia reversa.
Esse processo consiste em remover informações relacionadas a depuração como tabelas de variáveis, número de linhas e renomear os pacotes, classes e métodos.
Ao embarcar a SDK Adroid na aplicação podem ocorrer falhas.
Quando o ofuscamento for realizado pela ferramenta iXGuard, sugerimos utilizar a versão 4.11.0 ou superior.
2.4.0
A responsabilidade do controle do fluxo é delegada para quem chama a SDK. Sendo assim, ao aparecer alguma forma de sombra ou a tela não fechar após a conclusão com sucesso da captura, a sugestão é que seja implementada uma forma de liberação dessa tela. Essa liberação pode variar de acordo com o empilhamento de navegação implementado. Para essa implementação, adicione o método condizente a liberação preferencialmente dentro do método de delegate onSuccessSelfie
. A seguir, alguns exemplos de liberação que podem ser usados:
bitcode
na distribuição de aplicativos usando Xcode 16Após o lançamento da versão oficial do Xcode 16 no dia 17 de setempro de 2024 e com a sua utilização para distribuição de aplicativos na AppStore, verificamos um bloqueio ao utilizar a SDK iOS sinalizando o uso de bitcode
em duas dependências internas ao utilizar o Cocoapods
como gerenciador de dependencias internas, são elas o DeviceProfiling
e UnicoSdkLogger
. A fim de não bloquear novos lançamentos é possível aplicar o seguinte passo-a-passo até a sua definitiva correção em uma release futura da SDK iOS:
Abrir arquivo Podfile
;
Inserir as linhas a seguir após comando post_install do |installer|
e antes do ultimo end
:
2.1. Caso já haja algum código, insira antes do trecho existente;
2.2. Caso já faça a remoção do bitcode
manualmente, adicionar os caminhos explicitamente citados em framework_paths
;
Caso não haja o comando post_install do |installer|
no arquivo Podfile
, inserir-lo confrme a seguir antes do último end
:
Nesta seção, você encontrará todas as informações necessárias para instalação do SDK da plataforma Unico IDCloud em seus aplicativos Android
É necessário que seu ambiente de desenvolvimento esteja de acordo com os seguintes pré-requisitos:
O componente de captura disponibilizado por meio do SDK Android dá suporte às versões igual ou superiores para as tecnologias:
Android: 5.0 (API 21);
Kotlin: 1.6.
Este SDK não funciona em emuladores, somente em dispositivos físicos.
O SDK Android é compatível com a grande maioria dos dispositivos que possuam Android 5.0 (API de nível 21) ou versões superiores.
A tabela a seguir lista os dispositivos testados em laboratório, além da disponibilidade das extensões do fornecedor/fabricante. Algumas extensões listadas podem estar sujeitas as API ou SKUs específicos do fabricante. Clique abaixo para ver os dispositivos testados:
Para implementar o SDK Android da plataforma Unico IDCloud ao seu aplicativo Android, siga o passo a passo listado abaixo:
O SDK Android é disponibilizado através de um Repositório Maven, adicione ao bloco repositories do arquivo build.gradle
existente na raiz do seu projeto:
Habilite o suporte ao AndroidX ao em seu arquivo gradle.properties
na raiz de seu projeto (isto garante uma melhor performance e funcionamento do frame de captura):
Após configurar o SDK Android, basta importá-lo em seu projeto. Para isto, adicione acessobio-android
ao bloco dependencies
do arquivo app/build.gradle
.
A dependência deve ser incluída em um arquivo diferente do que foi utilizado no passo anterior. Neste passo, é necessário utilizar o arquivo build.gradle
referente ao módulo e não ao projeto:
Ao compilar o projeto, você pode se deparar com o seguinte erro:
Invoke-customs are only supported starting with android 0 --min-api 26
Por incompatibilidade da versão do frame min-26. Adicione as linhas a seguir ao bloco compileOptions, no mesmo arquivo app/build.gradle
:
Entre em contato com o CSs e/ou time de Onboarding.
Solicite a SDK Key informando os identificadores de suas aplicações. Bundle Identifier para iOS, PackageID para Android e Host para WEB.
Os identificadores de suas aplicações serão vinculados a SDK Key pela equipe da Unico.
Você recebe a sua SDK Key para implementar o AcessoBioConfigDataSource
Pronto. Finalizada a instalação do SDK, siga para a implementação lendo o material Guia de uso e integração a seguir:
Não encontrou algo ou ainda precisa de ajuda? Se já é um cliente ou parceiro, pode entrar em contato através da Central de Ajuda.
Nesta seção, você encontrará todas as informações necessárias para o tratamento dos erros do SDK da plataforma Unico IDCloud em seus aplicativos Android
ErrorBio
Este objeto é retornado sempre que ocorre um erro no SDK Android.
Nome do método | Descrição |
---|---|
É disponibilizado a seguir a lista de possíveis códigos de erro do SDK Android:
Código | Descrição |
---|---|
Não encontrou algo ou ainda precisa de ajuda? Se já é um cliente ou parceiro, pode entrar em contato através da Central de Ajuda.
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 Android para a captura do documento
Este guia foi elaborado para ajudá-lo a implementar o SDK Android de forma rápida e fácil. Abaixo veja o passo a passo de todo o processo de integração. Após isso, caso deseje personalizar a experiência, não deixe de ver a seção Personalização Android.
Neste modo de câmera, existe um frame de captura para auxiliar o usuário a posicionar o documento corretamente. Após posicionar o documento corretamente, o usuário deve clicar no botão para realizar a captura da foto do documento.
A SDK não realiza nenhum tipo de validação do que está sendo capturado.
Neste modo de câmera é possivel capturar os documentos:
CPF: Captura da frente do CPF;
CNH: Captura da CNH aberta;
CNH frente: Captura da frente da CNH;
CNH verso: Captura do verso da CNH;
RG frente: Captura da frente do RG;
RG verso: Captura do verso do RG;
Outros: Captura de qualquer outro documento.
Crie uma instância do builder (Gerado através da interface IAcessoBioBuilder
), fornecendo como parâmetro o contexto em questão e a implementação da classe AcessoBioListener
.
A implementação dessa classe é bem simples e pode ser feita com poucas linhas de código. Tudo que precisa fazer é instanciar o builder informando o contexto em questão e sobrescrever os métodos de callback com as lógicas de negócio de sua aplicação:
Note que, o trabalho de implementação da classe AcessoBioListener é, em grande parte, a configuração dos métodos de callback. Cada método é chamado em uma situação específica de retorno do SDK.
Basta sobrescrever os métodos exemplificados no passo anterior com as lógicas de negócio de sua aplicação:
onErrorAcessoBio(ErrorBio errorBio)
Ao ser invocado, o método recebe um parâmetro do tipo ErrorBio que contem detalhes do erro. Saiba mais sobre o tipo ErrorBio
na seção de tratamento de erros.
onUserClosedCameraManually()
Este método é invocado sempre quando o usuário fechar a câmera de forma manual, como por exemplo, ao clicar no botão "Voltar".
onSystemClosedCameraTimeoutSession()
Este método é invocado assim que o tempo máximo de sessão for atingido (Sem capturar nenhuma imagem).
Pode ser configurado no builder através do método setTimeoutSession. Este método deve receber o tempo máximo da sessão em segundos. É possível alterar o tempo máximo de sessão do seu usuário ao utilizar a funcionalidade de detecção do rosto (Câmera de selfie com captura inteligente). Caso ele ultrapasse o tempo determinado em seu processo para capturar a foto, você pode apresentar alguma mensagem personalizável ou instrução ao usuário. O valor padrão é de 40 segundos e seu valor mínimo também é de 40 segundos.
onSystemChangedTypeCameraTimeoutFaceInference()
Este método é invocado assim que o tempo máximo para detecção do rosto de um usuário for atingido (Sem ter nada detectado). Neste caso, o modo de câmera é alterado automaticamente para o modo de captura manual (Sem a silhueta de captura inteligente).
O tempo máximo de captura ao utilizar a detecção do rosto (Câmera de selfie com captura inteligente) é de 13 segundos. Se o usuário encontra alguma dificuldade para captura da foto através da detecção do rosto e ultrapasse o tempo determinado em seu processo, a captura é alterada automaticamente para a manual, tendo como objetivo facilitar a ação para o usuário (TimeoutToFaceInference).
Todos os métodos acima devem ser criados da forma indicada em seu projeto (Mesmo que sem nenhuma lógica). Caso contrário, o projeto não compila com sucesso.
A implementação destes métodos listeners deve ser feita através de uma instância da classe iAcessoBioSelfie
.
O método de abertura da câmera, que é chamado na próxima etapa, precisa saber o que fazer ao conseguir capturar uma imagem com sucesso ou ao ocorrer algum erro no processo. É necessário informar "o que fazer" ao método de abertura da câmera através da implantação de listeners que são chamados em situações de sucesso ou erro.
Através da configuração dos listeners, você pode especificar o que acontece em seu App em situações de erro (Método onErrorDocument
) ou sucesso (Método onSuccessDocument
) na captura de imagens.
O exemplo abaixo ilustra a configuração dos listeners, build e abertura da câmera:
É necessário criar uma instância do builder através do método build()
. Este método é disponibilizado através do objeto gerado com a interface IAcessoBioBuilder
e classe AcessoBio
:
O próximo passo é preparar a câmera utilizando o método prepareDocumentCamera()
com o objeto retornado pelo builder (Nomeado como UnicoCheckCamera
no exemplo acima).
O método prepareDocumentCamera()
gera um objeto do tipo UnicoCheckCameraOpener.Document
, que é utilizado para abrir a câmera com seu método open()
, recebendo os parâmetros tipo de documento a ser capturado, sendo eles:
Caso precise capturar um documento que não possuímos um frame específico (ex: RNE, entre outros), utilize o frame DocumentCameraType.None
, que irá te possibilitar um frame genérico, retangular, que pode ser utilizado para orientar qualquer captura.
onSucessDocument
Ao efetuar uma captura de imagem com sucesso, este método é invocado e retorna um objeto do tipo ResultCamera
que é utilizado posteriormente na chamada das APIs REST:
O objeto ResultCamera
retorna 2 atributos: base64
e encrypted
:
O atributo base64
pode ser utilizado se quiser exibir uma prévia da imagem em seu app;
Tanto o atributo encrypted
quanto o atributo base64
podem ser enviados na chamada das APIs REST do by Client.
Se for necessário converter o base64 para bitmap, a maneira padrão não funciona para o Android. É necessário realizar o split a partir da vírgula(,
) para que funcione. Se quiser saber mais, leia o artigo How to convert a Base64 string into a Bitmap image to show it in a ImageView?.
onErrorDocument
Ao ocorrer algum erro na captura de imagem, este método é invocado e retorna um objeto do tipo ErrorBio
:
Saiba maisobre os tipos de ErrorBio
na seção de tratamento de erros 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 CreateProcess do by Client.
Não encontrou algo ou ainda precisa de ajuda? Se já é um cliente ou parceiro, pode entrar em contato através da Central de Ajuda.
Nesta seção, você encontrará todas as informações necessárias para instalação do SDK da plataforma Unico IDCloud em seus aplicativos iOS
É necessário que seu ambiente de desenvolvimento esteja de acordo com os seguintes pré-requisitos:
O componente de captura disponibilizado por meio do SDK iOS é compatível com todos os dispositivos que possuam iOS 11 ou versões mais recentes. Você pode conferir a lista com esses dispositivos nos canais de suporte oficiais da Apple.
Para implementar o SDK iOS da plataforma Unico IDCloud ao seu aplicativo iOS, siga o passo a passo listado abaixo:
O CocoaPods é um gerenciador de dependências para projetos Cocoa, para instruções de uso e instalação visite a documentação do oficial do Cocoapods. Para integrar o SDK iOS em seu projeto Xcode usando CocoaPods, siga as orientações abaixo:
Inclua o unicocheck-ios
em seu Podfile
:
Em seguida, basta utilizar o comando em seu terminal para instalar as dependências:
Se estiver executando o projeto em .xcodeproj é necessário abrir o projeto em .xcworkspace
O Swift Package Manager é um gerenciador de dependências para projetos Swift. Ele é integrado ao sistema de compilação Swift para automatizar o processo de download, compilação e vinculação de dependências. Para integrar o SDK iOS em seu projeto usando o SPM, siga as orientações abaixo:
Inclua a dependência em seu arquivo Package.swift
:
Entre em contato com o CSs e/ou time de Onboarding.
Solicite a SDK Key informando os identificadores de suas aplicações. Bundle Identifier para iOS, PackageID para Android e Host para WEB.
Os identificadores de suas aplicações serão vinculados a SDK Key pela equipe da Unico.
Você recebe a sua SDK Key para implementar o AcessoBioConfigDataSource
Pronto. Finalizada a instalação do SDK, siga para a implementação lendo o material Guia de uso e integração a seguir:
Não encontrou algo ou ainda precisa de ajuda? Se já é um cliente ou parceiro, pode entrar em contato através da Central de Ajuda.
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 iOS para a captura do documento
Este guia foi elaborado para ajudá-lo a implementar o SDK iOS de forma rápida e fácil. Abaixo veja o passo a passo de todo o processo de integração. Após isso, caso deseje personalizar a experiência, não deixe de ver a seção Personalização iOS.
Neste modo de câmera, existe um frame de captura para auxiliar o usuário a posicionar o documento corretamente. Após posicionar o documento corretamente, o usuário deve clicar no botão para realizar a captura da foto do documento.
A SDK não realiza nenhum tipo de validação do que está sendo capturado.
Neste modo de câmera é possivel capturar os documentos:
RG: Captura do RG (separado em frente e verso);
CNH: Captura da CNH aberta;
CNH frente: Captura da frente da CNH;
CNH verso: Captura do verso da CNH;
CPF: Captura do documento de CPF;
Sem silhueta: Captura documento genérico.
Para iniciar com SDK iOS da plataforma Unico IDCloud, importe o SDK e implemente a interface AcessoBioManagerDelegate
dentro da ViewController que deseja utilizar.
A implementação dessa classe é bem simples e pode ser feita com poucas linhas de código. Tudo que precisa fazer é intanciar o builder informando o contexto em questão e sobrescrever os métodos de callback com as lógicas de negócio de sua aplicação:
Note que, conforme o exemplo anterior, o trabalho de implementação da interface AcessoBioManagerDelegate
é, em grande parte, a configuração dos métodos de callback. Cada método é chamado em uma situação específica de retorno do SDK.
Basta sobrescrever os métodos exemplificados no passo anterior com as lógicas de negócio de sua aplicação:
onErrorAcessoBioManager(_ error: ErrorBio!)
Este método é invocado quando qualquer erro de implementação ocorrer ao utilizar algum dos métodos, como por exemplo, ao informar um tipo de documento incorreto para a funcionalidade de captura de documentos.
Ao ser invocado, o método recebe um parâmetro do tipo ErrorBio
que contem detalhes do erro. Saiba mais sobre o tipo ErrorBio
no artigo de tratamento de erros deste SDK.
onUserClosedCameraManually()
Este método é invocado sempre quando o usuário fechar a câmera de forma manual, como por exemplo, ao clicar no botão "Voltar".
onSystemClosedCameraTimeoutSession()
Este método é invocado assim que o tempo máximo de sessão for atingido (Sem capturar nenhuma imagem).
Pode ser configurado no builder através do método setTimeoutSession. Este método deve receber o tempo máximo da sessão em segundos. É possível alterar o tempo máximo de sessão do seu usuário ao utilizar a funcionalidade de detecção do rosto (Câmera de selfie com captura inteligente). Caso ele ultrapasse o tempo determinado em seu processo para capturar a foto, você pode apresentar alguma mensagem personalizável ou instrução ao usuário. O valor padrão é de 40 segundos e seu valor mínimo também é de 40 segundos.
onSystemChangedTypeCameraTimeoutFaceInference()
Este método é invocado assim que o tempo máximo para detecção do rosto de um usuário for atingido (Sem ter nada detectado). Neste caso, o modo de câmera é alterado automaticamente para o modo de captura manual (Sem a silhueta de captura inteligente).
O tempo máximo de captura ao utilizar a detecção do rosto (Câmera de selfie com captura inteligente) é de 13 segundos. Se o usuário encontra alguma dificuldade para captura da foto através da detecção do rosto e ultrapasse o tempo determinado em seu processo, a captura é alterada automaticamente para a manual, tendo como objetivo facilitar a ação para o usuário (TimeoutToFaceInference).
Todos os métodos acima devem ser criados da forma indicada em seu projeto (Mesmo que sem nenhuma lógica). Caso contrário, o projeto não compila com sucesso.
O método de abertura da câmera (que é chamado no próximo passo) precisa saber o que fazer ao conseguir capturar uma imagem com sucesso ou ao ter algum erro no processo. É informado "o que fazer" ao método de abertura da câmera através da configuração de delegates que são chamados em situações de sucesso ou erro.
Através da configuração dos delegates, você pode especificar o que acontece em seu App em situações de erro (método onErrorDocument
) ou sucesso (método onSuccessDocument
) na captura de imagens.
Para a configuração dos delegates, você deve implementar as interfaces DocumentCameraDelegate
e AcessoBioDocumentDelegate
:
onSucessDocument
Ao efetuar uma captura de imagem com sucesso, este método é invocado e retorna um objeto do tipo ResultCamera
que é utilizado posteriormente na chamada das APIs REST.
O objeto ResultCamera
retorna 2 atributos: base64
e encrypted
:
O atributo base64
pode ser utilizado se quiser exibir uma prévia da imagem em seu app;
Tanto o atributo encrypted
quanto o atributo base64
podem ser enviados na chamada das APIs REST do by Client.
Se for necessário converter o base64 para bitmap, a maneira padrão não funciona para o Android. É necessário realizar o split a partir da vírgula(,
) para que funcione. Se quiser saber mais, leia o artigo How to convert a Base64 string into a Bitmap image to show it in a ImageView?.
onErrorDocument
Ao ocorrer algum erro na captura de imagem, este método é invocado e retorna um objeto do tipo ErrorBio
.
Saiba mais sobre os tipos de ErrorBio
na seção de tratamento de erros do SDK.
Para abrir da câmera, é necessário prepará-la utilizando o método prepareDocumentCamera
. Este método recebe como parâmetro a implementação da classe DocumentCameraDelegate
e o JSON com as credenciais, gerado na etapa acima.
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:
Caso precise capturar um documento que não possuímos um frame específico (ex: RNE, entre outros), utilize o frame DocumentEnums.none
, que irá te possibilitar um frame genérico, retangular, que pode ser utilizado para orientar qualquer captura.
Os delegates implementados acima (aqui descritos como Self):
O tipo ErrorPrepare
é uma extensão de ErrorBio
contendo assim todas as suas propriedades. Saiba mais sobre o tipo ErrorBio
na seção de tratamento de erros do SDK.
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.
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 CreateProcess do by Client.
Não encontrou algo ou ainda precisa de ajuda? Se já é um cliente ou parceiro, pode entrar em contato através da Central de Ajuda.
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 do documento
Este guia foi elaborado para ajudá-lo a implementar o SDK Flutter de forma rápida e fácil. Abaixo veja o passo a passo de todo o processo de integração. Após isso, caso deseje personalizar a experiência, não deixe de ver a seção .
Neste modo de câmera, existe um frame de captura para auxiliar o usuário a posicionar o documento corretamente. Após posicionar o documento corretamente, o usuário deve clicar no botão para realizar a captura da foto do documento.
A SDK não realiza nenhum tipo de validação do que está sendo capturado.
Neste modo de câmera é possivel capturar os documentos:
CPF: Captura da frente do CPF;
CNH: Captura da CNH aberta;
CNH frente: Captura da frente da CNH;
CNH verso: Captura do verso da CNH;
RG frente: Captura da frente do RG;
RG verso: Captura do verso do RG;
Outros: Captura de qualquer outro documento.
Para iniciar, crie uma instância do builder (gerado através da interface UnicoCheckBuilder
, fornecendo como parâmetro o contexto em questão e a implementação da classe UnicoListener
.
A implementação dessa classe é bem simples e pode ser feita com poucas linhas de código. Tudo que precisa fazer é sobrescrever os métodos de callback com as lógicas de negócio de sua aplicação.
Note que, conforme o exemplo anterior, o trabalho de implementação da classe UnicoListener é, em grande parte, a configuração dos métodos de callback. Cada método é chamado em uma situação específica de retorno do SDK.
Basta sobrescrever os métodos exemplificados no passo anterior com as lógicas de negócio de sua aplicação:
onErrorUnico(UnicoError error)
onUserClosedCameraManually()
Este método é invocado sempre quando o usuário fechar a câmera de forma manual, como por exemplo, ao clicar no botão "Voltar".
onSystemClosedCameraTimeoutSession()
Este método é invocado assim que o tempo máximo de sessão for atingido (Sem capturar nenhuma imagem).
Pode ser configurado no builder através do método setTimeoutSession. Este método deve receber o tempo máximo da sessão em segundos. É possível alterar o tempo máximo de sessão do seu usuário ao utilizar a funcionalidade de detecção do rosto (Câmera de selfie com captura inteligente). Caso ele ultrapasse o tempo determinado em seu processo para capturar a foto, você pode apresentar alguma mensagem personalizável ou instrução ao usuário. O valor padrão é de 40 segundos e seu valor mínimo também é de 40 segundos.
onSystemChangedTypeCameraTimeoutFaceInference()
Este método é invocado assim que o tempo máximo para detecção do rosto de um usuário for atingido (Sem ter nada detectado). Neste caso, o modo de câmera é alterado automaticamente para o modo de captura manual (Sem a silhueta de captura inteligente).
O tempo máximo de captura ao utilizar a detecção do rosto (Câmera de selfie com captura inteligente) é de 13 segundos. Se o usuário encontra alguma dificuldade para captura da foto através da detecção do rosto e ultrapasse o tempo determinado em seu processo, a captura é alterada automaticamente para a manual, tendo como objetivo facilitar a ação para o usuário (TimeoutToFaceInference).
Todos os métodos acima devem ser criados da forma indicada em seu projeto (Mesmo que sem nenhuma lógica). Caso contrário, o projeto não compila com sucesso.
A implementação destes métodos listeners deve ser feita através de uma instância da classe iAcessoBioSelfie
.
O método de abertura da câmera precisa saber o que fazer ao conseguir capturar uma imagem ou ao ter algum erro no processo. É informado "o que fazer" ao método de abertura da câmera através da implantação de listeners que são chamados em situações de sucesso ou erro.
Através da implementação dos listeners, você pode especificar o que acontece em seu App em situações de erro (método onErrorDocument
) ou sucesso (método onSuccessDocument
) na captura de imagens.
onSucessDocument
Ao efetuar uma captura de imagem com sucesso, este método é invocado e retorna um objeto do tipo ResultCamera
que é utilizado posteriormente na chamada das APIs REST:
O objeto ResultCamera
retorna 2 atributos: base64
e encrypted
:
O atributo base64
pode ser utilizado se quiser exibir uma prévia da imagem em seu app;
onErrorDocument
Ao ocorrer algum erro na captura de imagem, este método é invocado e retorna um objeto do tipo UnicoError
:
Para abrir a câmera, o método openCameraDocument()
é utilizado. Esse método é disponibilizado através do objeto gerado com uma instancia da classe UnicoCheck
.
Este método recebe os seguintes parâmetros:
Arquivo JSON com as credenciais, gerado no passo de configurar credenciais;
Os listeners configurados acima;
Tipo de documento a ser capturado, sendo eles:
Caso precise capturar um documento que não possuímos um frame específico (ex: RNE, entre outros), utilize o frame DocumentCameraTypes.OUTROS("descrição")
, que irá te possibilitar um frame genérico, retangular, que pode ser utilizado para orientar qualquer captura.
Exemplo para captura de CNH:
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 guia foi elaborado para ajudá-lo a implementar o SDK Flutter de forma rápida e fácil. Abaixo veja o passo a passo de todo o processo de integração. Após isso, caso deseje personalizar a experiência, não deixe de ver a seção .
Para iniciar, crie uma instância do builder (gerado através da interface UnicoCheckBuilder
, fornecendo como parâmetro o contexto e ambiente em questão e a implementação da classe UnicoListener
.
A implementação dessa classe é bem simples e pode ser feita com poucas linhas de código. Tudo que precisa fazer é sobrescrever os métodos de callback com as lógicas de negócio de sua aplicação.
Configure o ambiente que será utilizado na execução da SDK. Utilize o enumerado Environment
que contém os seguintes enumerados:
UnicoEnvironment.PROD
: para ambiente de Produção;
UnicoEnvironment.UAT
: para ambiente de Homologação.
Veja como implementar no exemplo abaixo:
Note que, conforme o exemplo anterior, o trabalho de implementação da classe UnicoListener é, em grande parte, a configuração dos métodos de callback. Cada método será chamado em uma situação específica de retorno do SDK.
Basta sobrescrever os métodos exemplificados no passo anterior com as lógicas de negócio de sua aplicação:
onErrorUnico(UnicoError error)
onUserClosedCameraManually()
Este método é invocado sempre quando o usuário fechar a câmera de forma manual, como por exemplo, ao clicar no botão "Voltar".
onSystemClosedCameraTimeoutSession()
Este método é invocado assim que o tempo máximo de sessão for atingido (Sem capturar nenhuma imagem).
Pode ser configurado no builder através do método setTimeoutSession. Este método deve receber o tempo máximo da sessão em segundos. É possível alterar o tempo máximo de sessão do seu usuário ao utilizar a funcionalidade de detecção do rosto (Câmera de selfie com captura inteligente). Caso ele ultrapasse o tempo determinado em seu processo para capturar a foto, você pode apresentar alguma mensagem personalizável ou instrução ao usuário. O valor padrão é de 40 segundos e seu valor mínimo também é de 40 segundos.
onSystemChangedTypeCameraTimeoutFaceInference()
Este método é invocado assim que o tempo máximo para detecção do rosto de um usuário for atingido (Sem ter nada detectado). Neste caso, o modo de câmera é alterado automaticamente para o modo de captura manual (Sem a silhueta de captura inteligente).
O tempo máximo de captura ao utilizar a detecção do rosto (Câmera de selfie com captura inteligente) é de 13 segundos. Se o usuário encontra alguma dificuldade para captura da foto através da detecção do rosto e ultrapasse o tempo determinado em seu processo, a captura é alterada automaticamente para a manual, tendo como objetivo facilitar a ação para o usuário (TimeoutToFaceInference).
Todos os métodos acima devem ser criados da forma indicada em seu projeto (Mesmo que sem nenhuma lógica). Caso contrário, o projeto não compila com sucesso.
O SDK tem configurado e habilitado por padrão o enquadramento inteligente e a captura automática. Em função disso, deve-se configurar o modo de câmera no seu builder da seguinte forma:
Os valores false/true dos métodos acima não alteram a experiência de captura, servem apenas para a lógica interna do funcionamento do SDK.
A implementação destes métodos listeners deve ser feita através de uma instância da classe UnicoSelfie
.
O método de abertura da câmera precisa saber o que fazer ao conseguir capturar uma imagem ou ao ter algum erro no processo. É informado "o que fazer" ao método de abertura da câmera através da implantação de listeners que são chamados em situações de sucesso ou erro.
Através da implementação dos listeners, você pode especificar o que acontece em seu App em situações de erro (método onErrorSelfie
) ou sucesso (método onSuccessSelfie
) na captura de imagens.
onSucessSelfie
Ao efetuar uma captura de imagem com sucesso, este método é invocado e retorna um objeto do tipo ResultCamera
que é utilizado posteriormente na chamada das APIs REST:
O objeto ResultCamera
retorna 2 atributos: base64
e encrypted
:
O atributo base64
pode ser utilizado se quiser exibir uma prévia da imagem em seu app;
O atributo encrypted
é destinado estritamente ao envio da imagem através das APIs do by Client. Não se deve abrir e serializar esse atributo, pois suas características podem ser alteradas sem aviso prévio. Seu uso deve ser exclusivo nas interações com as APIs para garantir a integridade e segurança dos dados. A Unico não se responsabiliza por quaisquer danos decorrentes dessa prática, uma vez que as modificações podem ocorrer de maneira imprevista.
Os arquivos base64/encrypted
podem sofrer variações de tamanho de acordo com diversas variáveis, dentre elas, a qualidade dos aparelhos e das fotos geradas pelos mesmos e regras de negócio da Unico. Para não encontrar problemas em sua aplicação, não limite em sua lógica de programação ou sua infraestrutura o tamanho da string gerada pela SDK para os arquivos.
onErrorSelfie
Ao ocorrer algum erro na captura de imagem, este método é invocado e retorna um objeto do tipo UnicoError
:
O método openCameraSelfie
é utilizado para abrir a camera. Este método recebe como parâmetro a implementação da classe UnicoSelfie
e o JSON com as credenciais, gerado na etapa acima.
O exemplo a seguir ilustra os passos de configuração dos listeners e abertura da câmera:
Por motivos de segurança, o intervalo entre a geração do encrypted
e o envio via um dos fluxos disponíveis deve ser de até no máximo 10 minutos. Envios feitos além deste período serão rejeitados automaticamente pela API.
Nesta seção, você encontrará todas as informações necessárias para a customização do SDK da plataforma Unico IDCloud em seus aplicativos iOS
O SDK iOS permite que algumas personalizações sejam feitas. Abaixo veja todas as personalizações possíveis para este SDK.
É possível configurar a experiência das mensagens informativas dos frames de captura alterando seu idioma. Utilize o enumerado LocaleTypes
que contém os seguintes 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).
Veja como implementar no exemplo abaixo:
Pode ser necessário uma ativação remota para ser utilizado, caso deseje usar, sinalize seu gerente de projetos ou o suporte da Unico.
Caso não seja configurado, por padrão o SDK utiliza o 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 os métodos estão disponíveis abaixo:
A seguir alguns exemplos de como você pode utilizar os métodos acima em seu projeto:
Nesta seção, você encontrará todas as informações necessárias para instalação do SDK da plataforma Unico IDCloud em seus aplicativos Flutter
É necessário que seu ambiente de desenvolvimento esteja de acordo com os seguintes pré-requisitos:
O componente de captura disponibilizado por meio do SDK Flutter dá suporte às versões igual ou superiores para as tecnologias:
Android: 5.0 (API 21);
iOS: 11.
Este SDK não funciona em emuladores, somente em dispositivos físicos.
iOS: é compatível com quase todos os dispositivos que possuam iOS 11.
Você pode conferir a lista com esses dispositivos nos oficiais da Apple.
É compatível com a grande maioria dos dispositivos que possuam Android 5.0 (API de nível 21) ou versões superiores;
A tabela a seguir lista os dispositivos testados em laboratório, além da disponibilidade das extensões do fornecedor/fabricante. Algumas extensões listadas podem estar sujeitas as API ou SKUs específicos do fabricante. Clique abaixo para ver os dispositivos testados:
Para implementar o SDK Flutter da plataforma Unico IDCloud ao seu aplicativo Flutter, siga o passo a passo listado abaixo:
Para adicionar o SDK Flutter do Unico Check ao seu projeto, execute o seguinte comando utilizando o CLI do flutter:
Este comando adiona a seguinte linha no arquivo pubspec.yaml
de seu pacote:
Obter pacotes manualmente: o comando flutter pub add unico_check
dispara implicitamente o comando flutter pub get
. Caso o pacote não tenha sido instalado corretamente, certifique-se que o unico_check
em seu arquivo pubspec.yaml
e rode o flutter pub get
manualmente.
Entre em contato com o CSs e/ou time de Onboarding.
Solicite a SDK Key informando os identificadores de suas aplicações. Bundle Identifier para iOS, PackageID para Android e Host para WEB.
Os identificadores de suas aplicações serão vinculados a SDK Key pela equipe da Unico.
Você recebe a sua SDK Key para implementar o AcessoBioConfigDataSource
Nesta seção, você encontrará todas as atualizações do SDK iOS
Mantenha seu SDK iOS sempre atualizado com a última versão disponível.
O versionamento semântico é utilizado para numerar as versões. Para mais informações, consulte o artigo .
Atualização do SDK e server de Liveness com interação.
A partir do Xcode 15, a Apple abandonou o suporte para iOS 11. A Unico abandonará o suporte para iOS 11 no Unico Check iOS SDK em uma versão futura.
Atualização do SDK e server de Liveness com interação;
Remoção de bitcode
que bloqueia envios para AppStore usando Xcode 16 e CocoaPods.
A partir do Xcode 15, a Apple abandonou o suporte para iOS 11. A Unico abandonará o suporte para iOS 11 no Unico Check iOS SDK em uma versão futura.
Atualizações:
Atualização do SDK e server de Liveness com interação.
Atualização do SDK e server de Liveness com interação;
Correção que causava aumento no tempo de inicialização das aplicações.
A partir de agora, é possível definir o ambiente da SDK pela própria API pública no método setEnvironment()
. Em casos de dúvidas, contacte o seu CSM;
Correção de localização (setLocale) na captura com Liveness interativo.
Identificamos um aumento no tempo de inicialização das aplicações que utilizem essa versão, o que pode ter um impacto mais significativo em dispositivos mais antigos. Estamos empenhados em resolver essa questão com a maior rapidez possível.
Melhorias internas de produto. Essas melhorias não afetam diretamente a experiência do usuário final, mantendo a interface e funcionalidades externas inalteradas;
Melhoria no foco da câmera de documentos para dispositivos iPhone Pro Max.
Atualização do SDK e server de Liveness com interação.
Melhoria no foco da câmera de documentos para dispositivos iPhone Pro Max.
Correção de bug que quebrava a SDK ao iniciar em dispositivos usando iOS 12.
Atualização Crítica
Atualização do SDK e server de Liveness com interação.
Atualização do SDK e server de Liveness com interação.
Correção de bug que fazia SDK ficar congelado na tela de loading em alguns casos específicos;
Melhorias nos algoritmos de comunicação entre o clientside e serverside unico.
Correção de crash "[USLErrorSDK ????]: unrecognized selector sent to instance".
Atualização Crítica
Atualização do SDK e server de Liveness com interação;
Melhorias nas verificações de injeção de vídeo recentemente adicionadas no lado do dispositivo e no lado do servidor para mitigar ameaças de IA generativa.
Atualização Crítica
Atualização do SDK e server de Liveness com interação;
Melhorias nas verificações de injeção de vídeo recentemente adicionadas no lado do dispositivo e no lado do servidor para mitigar ameaças de IA generativa.
Remoção de dependência que poderia causar a mensagem ITMS-91065: Missing signature
ao enviar para o Testflight e AppStore.
Ajustes na distribuição de um módulo interno que causava o erro No architectures in the binary
ao enviar para o Testflight e AppStore.
Ajustes nos manifestos de privacidade visando corrigir problemas de upload p/ AppStore.
Melhoria no foco da câmera de documentos para dispositivos iPhone 12 ou mais recentes;
Na SDK e server do Smartlive com interação;
Câmera de documentos com um crash intermitente durante sua abertura.
Manifesto de Privacidade: erro listado ao gerar o Relatório de Privacidade pelo Xcode.
Manifesto de privacidade;
SDK de Smartlive com interação;
Suporte ao Xcode 15.
Novas funcionalidades que melhoram a experiência de captura no Liveness Interativo.
Problema corrigido: uma implementação interna que ocasionava um crash ao final do fluxo quando a aplicação é gerada usando as seguintes configurações: macOS 14+(Sonoma) com Chip M1/M2 e Xcode 15+.
Melhorias nas verificações de injeção de vídeo recentemente adicionadas no lado do dispositivo e no lado do servidor para mitigar ameaças de IA generativa.
Revertido: Problema corrigido: uma implementação interna que ocasionava um crash ao final do fluxo quando a aplicação é gerada usando as seguintes configurações: macOS 14+(Sonoma) com Chip M1/M2 e Xcode 15+.
Corrigido: Invalid Bundle. The bundle UnicoSdkLogger.framework does not support the minimum OS Version specified in the Info.plist.
Problema corrigido: uma implementação interna que ocasionava um crash ao final do fluxo quando a aplicação é gerada usando as seguintes configurações: macOS 14+(Sonoma) com Chip M1/M2 e Xcode 15+.
É necessário ter a versão mínima do iOS 11 no projeto. Caso a versão informada em seu info.plist esteja abaixo da versão 11, você pode ter problemas de incompatibilidade.
A partir do Xcode 15, a Apple abandonou o suporte para iOS 11. A Unico abandonará o suporte para iOS 11 no iOS SDK em uma versão futura.
Atualização Crítica
Nova funcionalidade de captura para garantir segurança eficaz;
Adição de novos tratamentos de erros do Liveness Ativo.
Erro 73720
caso ocorra falha no processamento de liveness;
Erro 73721
caso ocorra o limite de tentativas de captura;
Erro 73722
caso ocorra o limite de tempo de captura;
Erro 73730
um erro interno de licença;
Erro 73731
um erro interno de licença expirada;
Atualização do SDK e server do Smartlive com interação;
Melhorias nas verificações de injeção de vídeo recentemente adicionadas no lado do dispositivo e no lado do servidor para mitigar ameaças de IA generativa;
Habilitamos a customização do logo no rodapé da tela para Camera Interativa (Facetec);.
Melhorias internas no produto, sem impacto externo.
Atualização do SDK e server do Smartlive com interação;
Melhorias internas no produto, sem impacto externo.
Melhoria nos logs internos do SDK;
Melhorias internas no produto, sem impacto externo.
Definição automática de ambientes de produção e homologação no SDK.
Problema corrigido: Foi abordado um vazamento de memória e crashes ao alternar entre os modos background e ativo, especialmente ao manter a câmera ativa. Agora, ao entrar em modo background, a câmera será encerrada automaticamente para otimizar o consumo de bateria e memória do dispositivo, reduzindo significativamente o risco de vazamentos de memória e crashes.
Atualização do SDK e server do Smartlive com interação.
Melhorias internas no produto, sem impacto externo.
Disponibilizar o novo fluxo de captura e retentativas quando usado o Liveness com Interação (entrar em contato com a único caso queira habilitar essa nova funcionalidade);
Lançar erro 73800
caso haja falha na captura usando o fluxo de retentativa;
Lançar erro 73100
caso haja falha de conexão com internet durante uma requisição.
Removido o timeout do fluxo de captura usando Liveness com Interação.
Otimização do consumo de memória pela SDK, resolvendo problemas em instâncias que eram afetadas em capturas de longa duração.
Correção nas cores no modo alta iluminação na câmera Smartlive com interação.
Atualização do SDK client e server do Smartlive com interação.
Aumento do tempo padrão da sessão da câmera Smartlive com interação para 60s.
Melhorias internas no produto, sem impacto externo.
Atualização do SDK client e server do Smartlive com interação;
Remoção da tela de sucesso após a captura na câmera Smartlive com interação.
Atualização do SDK client e server do Smartlive com interação.
Hotfix: Correção do timeout da câmera Smartlive com interação e de documentos.
Melhorias internas no produto, sem impacto externo.
Atualização do SDK client e server do Smartlive com interação.
Atualização do SDK client e server do Smartlive com interação.
Atualização do SDK client e server do Smartlive com interação.
Atualização do SDK client e server do Smartlive com interação;
hotfix: Correção da abertura da câmera de documentos quando NSLocationWhenInUseUsageDescription não é implementado.
Data de lançamento: 23/02/2023
Correções de bugs:
hotfix: Correção do pedido de geolocalização sobre a câmera Smartlive podendo eventualmente cancelar a captura;
hotfix: Reset de brilho ao estado original após da captura;
Data de lançamento: 03/02/2023
Atualizações:
Atualização do SDK e server do Smartlive com interação;
Correções de bugs:
hotfix: Correção do frame de captura de documentos em iPhones com telas menores do que 4.7 polegadas;
hotfix: Correção na análise de face em iPhones modelo Pro Max;
Data de lançamento: 12/12/2022
Atualizações:
Atualização do SDK e server do Smartlive com interação;
Melhoria de segurança no changelog.
Data de lançamento: 22/11/2022
Atualizações:
Atualização do SDK e server do Smartlive com interação;
Coleta de dados de uso, geolocalização e dispositivo (os dados coletados são usados para garantir a segurança do processo e melhorar a experiência do usuário).
Feat: Automação da publicação no CocoaPods.
Atualização da versão do Smartlive com interação;
Melhoria na tratativa de erro ao identificar fontes maliciosas;
hotfix: Abertura de câmera em celulares com versão do iOS abaixo da 13.
Ajuste na resolução das imagens;
Habilitada a opção Build Libraries for Distribution. Isso ajuda o Xcode a evitar o travamento de versão, para que os módulos da unico possam ser usados quando versões mais recentes do Xcode ou do compilador Swift forem usadas e lançadas a loja.
Hot fix: Fechamento automático da câmera quando o usuário coloca a aplicação em background;
Hot fix: Limpezas de warnings na base de código.
Hot fix: Ajustes para manter compatibilidade com Xcode 13.
Hot fix: JWT encode nos modos de liveness ativo.
Hot fix: ajuste no callback do fechamento manual do frame de captura com interação.
Melhoria da resolução da imagem gerada pelo Smartlive com interação para celulares de qualidade média/alta.
Atualização da versão da SDK do Smartlive;
Possibilidade de executar os métodos prepareSelfieCamera
e prepareDocumentCamera
sem o arquivo json
, utilizando uma classe do tipo AcessoBioConfigDataSource
.
Ajuste no tema padrão para o modo de baixa luminosidade do frame com interação;
Ajuste na customização para o botão de fechar do frame com interação.
Feature flag para poder selecionar a exibição ou não do logo da unico.
Correções nas configurações que estavam impedindo o upload do archive/.ipa para a loja Apple.
Suporte do gerenciador de pacotes Swift Package Manager (SPM);
Adição de dois novos frames de documentos: CNH frente e CNH verso.
Correção na customização da funcionalidade de Prova de Vida. As cores não estavam sendo aplicadas ao modo de captura como deveriam;
Correção nos callbacks de erro que não estavam sendo invocados em casos de falhas em requisições REST.
Suporte para versões anteriores do Swift (versão mínima: swift 4.2), desde que sigam os pré-requisitos quanto a versão mínima do Xcode (13 ou superior);
Correção no valor da propriedade encrypted no retorno do objeto (SelfieResult / DocumentResult);
Correção na abertura da câmera quando o objeto de tema possuía qualquer propriedade de cor como nula;
Correção no botão de fechar das câmeras: normal, inteligente e documentos.
Adicionado o frame de CPF;
Correção na implementação do frame de RG.
Correção na implementacão das customizacões.
Mudança na estrutura de classes;
Refatoração de funções públicas, permitindo o retorno assync dentro da própria função;
Refatoração nos métodos disableAutoCapture e disableSmartFrame;
Correção de bug de enquadramento de face;
Correção de bug de travamento de tela após a captura.
O SDK está 16% mais leve com a remoção de várias intra-dependências e remoções de garbage-code;
O SDK está mais seguro com novos métodos de criptografia em real-time;
O SDK está mais rápido e preciso na detecção de faces com melhorias dos modelos de IA para o câmera inteligente;
Agora é possível configurar o tempo máximo de sessão do seu usuário através do método: [acessoBioManager setTimeoutSession:], obtendo o retorno/callback quando ocorrer através do método: - (void)systemClosedCameraTimeoutSession;
Agora é possível configurar o tempo máximo de inferência e detecção da face do seu usuário através do método: [acessoBioManager setTimeoutToFaceInference:], obtendo o retorno/callback quando ocorrer através do método: - (void)systemClosedCameraTimeoutFaceInference;
Entre outras limpezas realizadas frequentemente.
O SDK está 16% mais leve com a remoção de várias intra-dependências e remoções de garbage-code;
O SDK está mais seguro com novos métodos de criptografia em real-time;
O SDK está mais rápido com os novos modelos de IA para o câmera inteligente;
Remoção de todos os métodos que permitiam acesso ao Liveness com interação;
Entre outras limpezas realizadas frequentemente.
Esta versão possui correções e melhorias importantes em relação a versão anterior (1.2.2);
Correções nas validações que envolvem iPhone 6 e iPhone 5;
Entre outras limpezas realizadas frequentemente.
Agora é possível customizar todos os elementos visuais utilizando também cores no formato hexadecimal. Lembrando que os formatos padrões dos SO's continuam ativos, como UIColor para iOS e Colors para Android;
Adicão de um novo método de retorno para notificar a sua classe implementadora no momento em que o usuário fechar a câmera manualmente;
Correção de bugs em toda classe de documentos que impedia as requisições para o servidor de forma adequada;
Entre outras limpezas realizadas frequentemente.
Adição de um novo método de callback (retorno) para notificar a sua classe implementadora no momento em que o usuário fechar a câmera manualmente;
Correção de bugs em toda classe de documentos que impedia as requisições para o servidor de forma adequada;
Entre outras limpezas realizadas frequentemente.
Atualizações:
Normalização dos cálculos de pontos biométricos em dispositivos com tela em retina, o qual utilizam escala em @3x;
Automatização da operação de adicionar manualmente ao target o arquivo CenterModelCrop.mlmodel. A centralização ficou mais simples e rápida, diminuindo a fricção do usuário no momento de enquadrar o rosto;
Entre outras limpezas realizadas frequentemente.
A partir dessa versão (1.2.0), o SDK do Unico Check não possuirá mais intra-dependências dentro do projeto. Tais quais incluíam FirebaseMLVision, AFNetworking, MBProgressHUD entre outras. O time trouxe todas as funcionalidades e vantagens que tais dependências traziam para o iOS core nativo, simplificando e reduzindo em mais de 75% o tamanho de biblioteca em relação a versão anterior.
Bug fixado a respeito da versão da biblioteca AFNetworking, a qual estava impedindo o upload para a Apple Store pelo uso de WebViews depreciadas na Guideline de 2020.
Adição do botão de fechar no fluxo de captura de documentos. Permitindo que o usuário volte a tela anterior, caso queira;
Correção de um bug que impedia a implementação da captura de documentos no modo DocumentNone;
No fluxo de captura de documentos, correção de um bug que impedia a alteração da label de instrução de acordo com o documento selecionado.
Agora é possível customizar a imagem do ícone de popup de reset de sessão dentro do fluxo do Liveness com interação.
Correção de bug que ocasionava conflitos entre códigos em swift desenvolvidos em nossa biblioteca e códigos em swift desenvolvidos no projeto do cliente. Estes conflitos, não permitiam o upload da aplicação para a Apple Store.
O projeto acessobio-ios era um repositório público distribuído pelo Cocoapods. Devido as melhorias significativas e mudanças que foram realizadas foi criado um novo repositório que tem o intuito de proteger o código em relação aos dados sensíveis. Portanto, o repositório acessobio-ios não está mais disponível;
O novo repositório não afeta na implementação.
Nesta seção, você encontrará todas as informações necessárias para a customização do SDK da plataforma Unico IDCloud em seus aplicativos Flutter
O SDK Android permite que algumas personalizações sejam feitas. Abaixo veja todas as personalizações possíveis para este SDK.
É possível configurar a experiência das mensagens informativas dos frames de captura alterando seu idioma. Utilize o enumerado LocaleTypes
que contém os seguintes 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).
Veja como implementar no exemplo abaixo:
Pode ser necessário uma ativação remota para ser utilizado, caso deseje usar, sinalize seu gerente de projetos ou o suporte da Unico.
Caso não seja configurado, por padrão o SDK utiliza o 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 os métodos estão disponíveis abaixo:
Nesta seção, você encontrará a solução de alguns problemas comuns na integração do SDK da plataforma Unico IDCloud em seus aplicativos Android
O material de ofuscação tem por motivação servir de auxilio para o desenvolvedor passar pelos problemas de ofuscação em seu aplicativo.
O ofuscador do cliente pode afetar o funcionamento do SDK, é necessário que o mesmo não ofusque o código do SDK.
A Unico se isenta da responsabilidade em relação à conflitos de ofuscação com a SDK.
O ofuscamento é um processo de transformar o bytecode em uma forma menos legível por humanos, dificultando assim a engenharia reversa.
Esse processo consiste em remover informações relacionadas a depuração como tabelas de variáveis, número de linhas e renomear os pacotes, classes e métodos.
Ao embarcar a SDK Adroid na aplicação podem ocorrer falhas.
Quando o ofuscamento foi realizado via DexGuard, ao ocorrer a falha utilize as regras:
Quando o ofuscamento foi realizado via ProGuard, ao ocorrer a falha utilize as regras:
bitcode
na distribuição de aplicativos usando Xcode 16Após o lançamento da versão oficial do Xcode 16 no dia 17 de setempro de 2024 e com a sua utilização para distribuição de aplicativos na AppStore, verificamos um bloqueio ao utilizar a SDK iOS sinalizando o uso de bitcode
em duas dependências internas ao utilizar o Cocoapods
como gerenciador de dependencias internas, são elas o DeviceProfiling
e UnicoSdkLogger
. A fim de não bloquear novos lançamentos é possível aplicar o seguinte passo-a-passo até a sua definitiva correção em uma release futura da SDK iOS:
Abrir arquivo Podfile
;
Inserir as linhas a seguir após comando post_install do |installer|
e antes do ultimo end
:
2.1. Caso já haja algum código, insira antes do trecho existente;
2.2. Caso já faça a remoção do bitcode
manualmente, adicionar os caminhos explicitamente citados em framework_paths
;
Caso não haja o comando post_install do |installer|
no arquivo Podfile
, inserir-lo confrme a seguir antes do último end
:
Nesta seção, você encontrará todas as informações necessárias para o uso e integração do SDK da plataforma Unico IDCloud em suas aplicações Web para a captura da selfie
Este guia foi elaborado para ajudá-lo a implementar o SDK Web de forma rápida e fácil. Abaixo veja o passo a passo de todo o processo de integração. Após isso, caso deseje personalizar a experiência, não deixe de ver a seção .
Para começar, você deve efetuar 3 passos simples em seu projeto:
Instancie um novo Builder:
Especifique o caminho dos arquivos adicionais (caso adicionados em seu projeto):
Especifique o caminho dos arquivos dos modelos de IA, caso utilize a funcionalidade de Câmera Inteligente
A partir da versão 3.18.0, para que o SDK busque automaticamente os recursos adicionais basta que o método setResourceDirectory
não seja implementado e as sejam aplicadas corretamente.
Caso não seja configurado, por padrão o SDK Web utiliza o ambiente de produção.
É possível configurar o ambiente que será utilizado na execução da SDK. Utilize o enumerado SDKEnvironmentTypes
que contém os seguintes enumerados:
SDKEnvironmentTypes.PROD
: para ambiente de Produção;
SDKEnvironmentTypes.UAT
: para ambiente de Homologação.
Veja como implementar no exemplo abaixo:
Um dos objetos que deve ser passado como parâmetro ao método responsável por renderizar o frame de captura é o de callback. Este objeto deverá conter funções de callback para casos de sucesso e erro, como exemplificados abaixo.
Este objeto é obrigatório e caso não seja corretamente implementado (contemplando todos os eventos de success
ou error
) gera uma exceção, que caso não tratada, é exibida no console do usuário.
O atributo encrypted
é destinado estritamente ao envio da imagem através das APIs do by Client. Não se deve abrir e serializar esse atributo, pois suas características podem ser alteradas sem aviso prévio. Seu uso deve ser exclusivo nas interações com as APIs para garantir a integridade e segurança dos dados. A Unico não se responsabiliza por quaisquer danos decorrentes dessa prática, uma vez que as modificações podem ocorrer de maneira imprevista.
Os arquivos base64/encrypted
podem sofrer variações de tamanho de acordo com diversas variáveis, dentre elas, a qualidade dos aparelhos e das fotos geradas pelos mesmos e regras de negócio da Unico. Para não encontrar problemas em sua aplicação, não limite em sua lógica de programação ou sua infraestrutura o tamanho da string gerada pela SDK para os arquivos.
Para iniciar a câmera com as configurações feitas até aqui, é preciso criar uma instância do builder através do método build()
.
Em seguida, com a câmera "montada", deve-se configurar o modo de captura da câmera.
A preparação da câmera será efetuada a partir do método prepareSelfieCamera()
, disponibilizado a partir do builder. Este método recebe 2 parâmetros:
Modo de câmera desejado, sendo eles:
SelfieCameraTypes.NORMAL
para o modo de câmera normal;
SelfieCameraTypes.SMART
para o modo de câmera inteligente.
Este método gera uma promise que ao ser resolvida, devolve um objeto que é utilizado para efetivamente abrir a câmera através do método open
, que recebe como parâmetro as funções de callback
configuradas no passo acima.
Para otimizar a abertura da câmera é possível separar as chamadas dos métodos prepareSelfieCamera()
e open()
.
Caso deseje utilizar a captura automática, passe o parâmetro Unico.SelfieCameraTypes.SMART
para o método prepareSelfieCamera
.
Para a captura inteligente, os modelos de visão computacional também devem ser carregados através do método setModelsPath
, conforme explicado no primeiro passo deste guia.
Usando a classe UnicoConfig:
É possível utilizar o SDK Web com Liveness Interativo embarcado em um iFrame, para isso é preciso realizar uma implementação semelhante a seção anterior na preparação da câmera.
A preparação da câmera será efetuada através do método prepareSelfieCameraForIFrame()
, também disponibilizado a partir do builder. Este método recebe os mesmos parâmetros do prepareSelfieCamera()
:
O método prepareSelfieCameraForIFrame()
só funciona se a implementação estiver em um iFrame, o uso fora de um iFrame resulta no erro 73724
. Assim como usar o método prepareSelfieCamera()
dentro de um iFrame resulta no erro 73724
Para que a captura funcione corretamente é necessário implementar o elemento <iframe>
como no exemplo abaixo:
Para executar a captura é necessário estar no modo tela cheia do browser para que o SDK possa se redimensionar automaticamente. Sendo assim, ao executar a captura, o SDK apresenta uma tela solicitando a abertura do frame em modo tela cheia. Veja no exemplo a seguir:
Após permitir o uso de tela cheia, o frame de captura abrirá normalmente:
A Apple impede o uso de APIs de tela cheia especificamente em iPhones (iPads são aceitáveis). Sendo assim, para capturas em iPhones, é necessário configurar o posicionamento do iFrame por conta própria.
Por motivos de segurança, o intervalo entre a geração do encrypted
e o envio via um dos fluxos disponíveis deve ser de até no máximo 10 minutos. Envios feitos além deste período serão rejeitados automaticamente pela API.
Nesta seção, você encontrará todas as informações necessárias para o tratamento dos erros do SDK da plataforma Unico IDCloud em seus aplicativos Flutter
Nesta seção, você encontrará todas as atualizações do SDK Flutter
Mantenha seu SDK Flutter sempre atualizado com a última versão disponível.
O versionamento semântico é utilizado para numerar as versões. Para mais informações, consulte o artigo .
Atualização de sdk nativas:
Android versão 5.25.0
.
Atualização de sdk nativas:
Android versão 5.24.0
;
iOS versão 2.16.4
.
Correção na câmera de documento, onde em alguns cenários ocorria um crash após a captura.
Atualização de sdk nativas:
Atualização de sdk nativas:
Atualização de sdk nativas:
Atualização de sdk nativas:
Agora, os SDKs suportam múltiplos idiomas! Além do português, é possível alternar entre as opções de inglês e espanhol no método setLocale()
, oferecendo uma experiência mais personalizada para os usuários final;
A partir de agora, é possível definir o ambiente da SDK pela própria API pública no método setEnvironment()
;
Em casos de dúvidas, contacte o seu CSM.
Atualização de sdk nativas:
Atualização de sdk nativas:
Atualização Crítica
Atualização de sdk nativas:
Atualização de sdk nativas:
Atualização de sdk nativas:
Atualização Crítica
Atualização de sdk nativas:
Atualização Crítica
Atualização de sdk nativas:
Atualização de sdk nativas:
Atualização de sdk nativas:
Versão de iOS
contém o Manifesto de privacidade.
Atualização de sdk nativas:
Atualização de sdk nativas:
Atualização Crítica
Atualização de sdk nativas:
Atualização de sdk nativas:
Atualização de sdk nativas:
Atualização de sdk nativas:
Atualização de sdk nativas:
Atualização de sdk nativas:
Atualização de sdk nativas:
Atualização de sdk nativas:
Atualização da versão mínima do SDK Dart para >= 2.15.0
Customização da tela de loading usando a cor do background da captura;
Atualização de sdk nativas:
Atualização do server e SDK do Smartlive com interação.
Fix: Abertura da câmera com Smartlive com interação;
Fix: Incompatibilidade durante o build com ofuscação.
Fix: Atualização bibliotecas nativas.
Fix: Camera traseira.
Fix: Erro build não encontrando arquivos.
Atualização de sdk nativas:
Fix: Abertura de câmera ao não permitir o uso da geolocalização.
Atualização de sdk nativas:
Fix: Correção no exemplo de RG.
Atualização da SDK e server do Smartlive com interação;
Fix: Correção na dependência do arquivo google-service-json.
Versão estável do SDK que contém a técnologia de SmartLive com interação.
Nova versão do SDK que contém a técnologia de SmartLive com interação.
deprecated
Maior versão estável do SDK Flutter. Contém apenas captura manual e automática.
Nesta seção, você encontrará todas as informações necessárias para instalação do SDK da plataforma Unico IDCloud em suas aplicações Web
O frame de captura disponibilizado por meio do SDK, é compatível com as seguintes combinações de browsers e sistemas operacionais:
Sistema Operacional | Chrome | Firefox | Safari | Samsung Internet | Opera | Edge |
---|
De forma geral, o SDK da suporte a WebRTC e versões mais recentes dos browsers listados acima. Por questões de compatibilidade e segurança, o funcionamento em versões muito antigas destes browsers não é garantido.
O componente de captura disponibilizado por meio do SDK Web dá suporte às versões igual ou superiores para as tecnologias:
Android: 5.0 (API 21);
iOS: 11.
É um componente do sistema que permite que as aplicações Android ou iOS exibam conteúdos da web diretamente dentro do aplicativo, baseado no mesmo projeto de código. Sendo responsável pela navegação em sites e conteúdo da web dentro dos aplicativos.
É necessário ter realizado a implantação do SDK Web em uma aplicação que contenha um domínio seguro com protocolo https.
O SDK Web tem compatibilidade com webviews executadas no Android 8 (API 26) ou superior.
Para que o SDK tenha um funcionamento correto é necessário adicionar algumas permissões e configurações ao arquivo AndroidManifest, são elas:
O SDK Web tem compatibilidade com webviews executadas no iOS 13 ou superior.
Para que o SDK tenha um funcionamento correto é necessário adicionar algumas permissões e configurações ao arquivo info.plist, são elas:
O componente foi homologado somente em camadas nativas, para que seja utilizado em frameworks híbridos (Flutter ou React Native) é necessário implementar na camada nativa do Android e/ou iOS.
Quando em execução, o SDK vai solicitar a permissão de abertura da câmera para webview, que por sua vez vai solicitar a mesma para a aplicação nativa. É mandatório que sua aplicação nativa tenha as permissões necessárias ajustadas nos arquivos de configuração.
Nosso suporte é restrito a aplicativos desenvolvidos diretamente nas plataformas nativas Android e iOS, utilizando seus respectivos módulos nativos. No momento, não oferecemos suporte para aplicativos desenvolvidos em frameworks híbridos, como React Native, Ionic ou outras tecnologias de desenvolvimento multiplataforma.
Para implementar o SDK Android da plataforma Unico IDCloud ao seu aplicativo Android, siga o passo a passo listado abaixo:
O SDK Web emprega o uso de Web Workers para aprimorar a segurança e a performance. Por isso é necessário adicionar as seguintes configurações à sua Content Security Policy (CSP):
Se a sua aplicação possui uma CSP, essa configuração é obrigatória para garantir o funcionamento correto do SDK.
Para utilizar o SDK Web é necessário utilizar as credenciais que permitem a abertura da câmera em seu projeto. São essas credenciais que irão garantir a Prova de vida e a proteção anticlone da sua aplicação.
Para obter as credenciais, você deve informar ao seu gerente de projetos ou ao suporte da Unico o Hostname da sua aplicação (ex: https://
appunico.com.br
), e você receberá um JSON com as credenciais e seu Hostname nele, como no exemplo abaixo:
O SDK Web é disponibilizado através de um pacote npm ou cdn. Para a instalação, siga os passos abaixo de acordo com sua preferência:
Ou pelo yarn, com o comando abaixo:
Para instalar o SDK em seu projeto por meio do cdn, basta efetuar o download do arquivo abaixo e importa-lo em seu projeto.
Nesta seção, você encontrará todas as informações necessárias para a customização do SDK da plataforma Unico IDCloud em suas aplicações Web
O SDK Web permite que algumas personalizações sejam feitas. Abaixo veja todas as personalizações possíveis para este SDK.
É possível configurar a experiência das mensagens informativas dos frames de captura alterando seu idioma. Utilize o enumerado LocaleTypes
que contém os seguintes 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).
Veja como implementar no exemplo abaixo:
Pode ser necessário uma ativação remota para ser utilizado, caso deseje usar, sinalize seu gerente de projetos ou o suporte da Unico.
Caso não seja configurado, por padrão o SDK utiliza o 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.
Para efetuar a customização do frame de captura por meio do Theme Builder basta gerar uma instância da classe UnicoThemeBuilder
e invocar os métodos que customizam cada uma das propriedades do frame de captura, como exemplificados a seguir:
Após a geração do objeto de tema, conforme exemplificado acima, ele dever ser passado como parâmetro para o método setTheme
do builder unicoCameraBuilder
Nesta seção, você encontrará todas as informações necessárias para o uso e integração do SDK da plataforma Unico IDCloud em suas aplicações Web para a captura do documento
Este guia foi elaborado para ajudá-lo a implementar o SDK Web de forma rápida e fácil. Abaixo veja o passo a passo de todo o processo de integração. Após isso, caso deseje personalizar a experiência, não deixe de ver a seção .
Neste modo de câmera, existe um frame de captura para auxiliar o usuário a posicionar o documento corretamente. Após posicionar o documento corretamente, o usuário deve clicar no botão para realizar a captura da foto do documento.
A SDK não realiza nenhum tipo de validação do que está sendo capturado.
Neste modo de câmera é possivel capturar os documentos:
CPF: Captura da frente do CPF;
CNH: Captura da CNH aberta;
CNH frente: Captura da frente da CNH;
CNH verso: Captura do verso da CNH;
RG frente: Captura da frente do RG;
RG verso: Captura do verso do RG;
Outros: Captura de qualquer outro documento.
Para começar, você deve efetuar 2 passos simples em seu projeto:
Instancie um novo Builder:
Especifique o caminho dos arquivos adicionais (caso adicionados em seu projeto):
É recomendado que você configure o tamanho do frame dentro de sua aplicação, a fim de otimizar a área de captura dentro de seu WebApp. Confira abaixo como fazer esta configuração para Web Desktop ou Mobile.
Muitas vezes o funcionamento do frame pode ser afetado por alguns design-systems que possuam algum tipo de grid-system como, por exemplo, bootstrap ou material-ui. Para minimizar este risco, certifique-se de posicionar o frame (id="box-camera"
) em algum lugar do código que não herde regras indesejadas de css.
Nas versões Web Desktop, é possível restringir o tamanho do frame para que o mesmo não utilize toda a dimensão de seu WebApp. Para isto, basta envolver o frame (id="box-camera"
) em outra tag html, como no exemplo abaixo:
Idealmente, você deve tentar manter uma proporção adequada entre altura e largura, o que irá facilitar o enquadramento da face do usuário. A seguir um exemplo:
Seguindo o exemplo acima, o frame respeita o tamanho do elemento "pai", neste caso representado pelo container. Desta forma, você tem a flexibilidade para implementar o frame da forma mais conveniente para sua aplicação (como em um modal, por exemplo).
Testes alterando o tamanho da tela através do modo desenvolvedor de seu browser não funcionam. É recomendado que este tipo de teste seja feito alterando o tamanho da janela de seu browser.
Para uma view Web Mobile é recomendado que o frame de captura ocupe 100% da tela para evitar problemas com os algorítimos de visão computacional. Caso a área de captura esteja distorcida, a funcionalidade de captura automática (Câmera Inteligente) pode apresentar problemas de calculo no tracking da face dos usuários.
Sendo assim, é recomendado que na view Web Mobile:
O frame de captura ocupe 100% da tela do dispositivo (100vw/vh
);
Evitar o scroll horizontal ou vertical (isso pode ser minimizado com um modal);
Testes de devices utilizando o modo desenvolvedor de seu browser não funcionam, dado que, a camera utilizada pelo seu browser é a mesma de seu desktop, que possui uma resolução totalmente diferente da camera de um dispositivo móvel. Recomendamos que este tipo de teste seja feito diretamente no dispositivo.
Um dos objetos que é necessário passar como parâmetro ao método responsável por renderizar o frame de captura é o de callback. Este objeto deve conter funções de callback para casos de sucesso e erro, como exemplificados abaixo.
Este objeto é obrigatório e caso não seja corretamente implementado (contemplando todos os eventos de success
ou error
gera uma exceção, que caso não tratada, é exibida no console do usuário).
Para iniciar a câmera com as configurações feitas até aqui, é preciso criar uma instância do builder através do método build()
.
Em seguida, com a câmera "montada", deve-se configurar o modo de captura da câmera.
A preparação da câmera é efetuada a partir do método prepareDocumentCamera()
, disponibilizado a partir do builder. Este método recebe 2 parâmetros:
Tipo de documento a ser capturado, sendo eles:
Este método gera uma promise que ao ser resolvida, devolve um objeto que é utilizado para efetivamente abrir a câmera através do método open
, que recebe como parâmetro as funções de callback
configuradas no passo acima.
Abaixo um exemplo utilizando a captura de CNH:
Usando a classe UnicoConfig
:
Caso precise capturar um documento que não possuímos um frame específico (ex: RNE, entre outros), utilize o frame DocumentCameraType.None
, que irá te possibilitar um frame genérico, retangular, que pode ser utilizado para orientar qualquer captura.
Nesta seção, você encontrará todas as atualizações do SDK Web
Mantenha seu SDK Web sempre atualizado com a última versão disponível.
O versionamento semântico é utilizado para numerar as versões. Para mais informações, consulte o artigo .
Atualização do SDK e server do Liveness com interação.
Atualização do SDK e server do Liveness com interação;
Resolução de conflitos entre ferramentas de observabilidade.
Atualização do SDK e server do Liveness com interação;
Correção de estilização em modo de captura em baixa luminosidade;
Atualização do SDK e server do Liveness com interação.
Atualização do SDK e server do Liveness com interação.
Atualização do SDK e server do Liveness com interação.
Melhorias internas de produto. Essas melhorias não afetam diretamente a experiência do usuário final, mantendo a interface e funcionalidades externas inalteradas.
Melhorias internas de produto. Essas melhorias não afetam diretamente a experiência do usuário final, mantendo a interface e funcionalidades externas inalteradas.
Melhoria no carregamento dos scripts do Liveness Interativo.
Atualização do SDK e server do Liveness com interação;
Novo modelo de implementação dos recursos do Liveness Interativo.
A partir da versão 3.18.0, para que o SDK busque automaticamente os recursos adicionais basta que o método setResourceDirectory
não seja implementado e as configurações de CSP para uso do SDK sejam aplicadas corretamente.
Melhorias internas de produto. Essas melhorias não afetam diretamente a experiência do usuário final, mantendo a interface e funcionalidades externas inalteradas.
Atualização Crítica
Atualização do SDK e server do Smartlive com interação;
Melhorias nas verificações de injeção de vídeo recentemente adicionadas no lado do dispositivo e no lado do servidor para mitigar ameaças de IA generativa.
Atualização Crítica
Atualização do SDK e server do Smartlive com interação;
Melhorias nas verificações de injeção de vídeo recentemente adicionadas no lado do dispositivo e no lado do servidor para mitigar ameaças de IA generativa.
Atualização Crítica
Atualização do SDK e server do Smartlive com interação;
Melhorias nas verificações de injeção de vídeo recentemente adicionadas no lado do dispositivo e no lado do servidor para mitigar ameaças de IA generativa.
Melhorias internas de produto que melhoram nossa capacidade de detecção de erros.
Novas funcionalidades que melhoram a experiência de captura no Liveness Interativo.
Melhorias internas de produto. Essas melhorias não afetam diretamente a experiência do usuário final, mantendo a interface e funcionalidades externas inalteradas.
Content-Security-Policy: ...; worker-src 'self' blob:; child-src 'self' blob:
Melhorias internas de produto. Essas melhorias não afetam diretamente a experiência do usuário final, mantendo a interface e funcionalidades externas inalteradas.
Atualização Crítica
Atualização do SDK e server do Smartlive com interação;
Ajuste de tamanho de frames de CNH frente e verso em iPhones com telas de 6 polegadas ou mais.
Implementação de suporte ao uso de iFrames no Liveness Interativo.
Melhoria internas no produto, sem impacto externo.
Habilitamos a customização das cores do botão de cancelar e barra de progresso através dos métodos opcionais setColorCancelButton() e setColorProgressBar();
Habilitamos a customização dos textos da UI do liveness interativo via configuração remota.
Nova personalização de logomarca no modo de captura do Liveness Ativo. Em breve adicionaremos mais informações na documentação;
Adição de novos tratamentos do Liveness Ativo durante o prepareCamera.
Lançar erro 73402
caso haja falha no carregamento do frame devido a problemas de rede;
Lançar erro 73403
caso o dispositivo/browser não seja suportado pelo SDK;
Lançar erro 73404
caso o dispositivo esteja em modo de tela paisagem;
Lançar erro 73405
caso o dispositivo esteja bloqueado por segurança devido a muitas tentativas mal sucedidas;
Lançar erro 73406
caso o SDK seja executado em um iFrame;
Lançar erro 73407
caso o SDK não tenha carregado todos os recursos completamente;
Lançar erro 73600
caso haja erro no carregamento dos recursos do Liveness Ativo.
Melhorias nas regras de compatibilidade do SDK com o Angular 10.
Atualização do SDK e server do Smartlive com interação.
Novas funcionalidades de autenticação e captura, disponíveis mediante análise interna pela equipe Unico para garantir segurança eficaz.
Adição de novos tratamentos de erros do Liveness Ativo:
Erro 73728
em caso de abertura do SDK em domínios sem HTTPS;
Erro 73729
em caso de abertura do SDK em browsers incompatíveis;
Erro 73730
um erro interno de licença;
Erro 73731
um erro interno de licença expirada;
Erro 73732
em caso de abertura do SDK em uma origem não configurada.
Atualização no modulo de segurança da SDK;
Melhoria internas no produto, sem impacto externo.
Melhoria no fluxo de autenticação, reduzindo falhas na autenticação de dispositivos com configurações específicas no Sistema Operacional.
Definição automática de ambientes de produção e homologação no SDK.
Melhorias internas do produto.
Atualização do SDK e server do Smartlive com interação.
Atualização do SDK e server do Smartlive com interação;
Atualização de segurança na lib crypto-es para a versão 2.1.0.
Disponibilizar o novo fluxo de captura e retentativas quando usado o Liveness com Interação (entrar em contato com a Unico caso queira habilitar essa nova funcionalidade);
Lançar erro 73800
caso haja falha na captura usando o fluxo de retentativa;
Lançar erro 73100
caso haja falha de conexão com internet durante uma requisição.
Correção no download do SDK via NPM.
Recomendamos atualizar! Correção e normalização das chaves de rastreabilidade da sessão de captura a qual nos permite ter uma analise anti-fraude mais sólida de ponta-a-ponta.
Melhorias internas do produto.
Melhorias internas do produto.
Atualização do SDK e server do Smartlive com interação;
Melhorias internas do produto;
Correção em frases da tela de retry em Inglês e Espanhol;
Correção do frame de documento others no desktop.
Atualização do SDK e server do Smartlive com interação;
Implementação de experiência de captura de selfie nos idiomas Inglês e Espanhol;
Correção em exceção lançada quando não há permissão de acesso a geolocalização;
Correção na abertura da câmera de documentos.
Atualização do SDK e server do Smartlive com interação;
Atualização de mensagem no final do fluxo de captura com Smartlive Interativo.
Atualização do SDK e server do Smartlive com interação;
Revisão dos textos de orientação ao usuário na captura biométrica.
Melhoria internas no produto, sem impacto externo.
Atualização do SDK e server do Smartlive com interação;
Melhoria em captura com Smartlive com interação no Samsung Internet Browser;
Possibilidade de utilizar ambientes de Uat ou Prod na mesma versão do SDK.
Melhoria de segurança na comunicação da SDK.
Atualização do SDK e server do Smartlive com interação.
Adição de nova forma de configuração que permite inserir as configurações do SDK pela classe UnicoConfig;
Hot fix: Correção em tratamento anti-injection para conflitos com o Sentry.
Atualização do SDK e server do Smartlive com interação;
Melhoria em tratamento anti-injection;
Melhoria na compatibilidade do SDK com frameworks mais antigos.
Hot fix: Correção em tratamento anti-injection para Motorola Edge;
Hot fix: Correção em validação de evento para browser Safari.
Melhorias de segurança voltadas a anti-injection;
Atualização da versão do SDK e Server do Smartlive com interação;
Correção em fechamento de câmera nos frames sem interação.
Suporte ao navegador Samsung internet;
Coleta de dados de uso, geolocalização e dispositivo (os dados coletados são usados para garantir a segurança do processo e melhorar a experiência do usuário).
Melhorias em tratamentos anti-injection;
Customização automática dos modos de alta e baixa luminosidade do Smartlive com interação;
Atualização da versão do SDK e Server do Smartlive com interação.
Implementação do cancelButton no Smartlive sem interação;
Adição do modo de Câmera Traseira ao Smartlive sem interação;
Adição de opacidade em botão principal do Smartlive com interação em caso de rosto desalinhado.
Atualização da versão do SDK do Smartlive com interação;
A partir dessa versão o SDK web conta com uma das ferramentas de ofuscação de código mais poderosas do mercado.
Compatibilidade dos frames das câmeras normal e inteligente ao uso de webview no instagram e facebook;
Atualização da versão do SDK do Smartlive com interação;
Hot fix: Correção na abertura do frame da câmera normal e da câmera inteligente.
Implementação do cancelButton do Smartlive com interação;
Hot fix: Retorno de erros de browsers não suportados;
Hot fix: Remoção do frame do Smartlive com interação após erro.
Hot fix: Correção da câmera invocada para captura de documentos em devices que possuem múltiplas câmeras
Atualização da versão do SDK do Smartlive.
Correção no frame de captura de CNH Aberta em desktop
Melhoria na qualidade da imagem retornada no base64;
Melhoria em requests de autenticação;
Correção para uso de WebCam na câmera de documentos.
Melhoria em tratamento anti-injection.
Lançamento de frames de captura de documentos com CNH frente e CNH verso;
Captura de documentos em modo paisagem no desktop.
Ajuste para utilização de função ao invés de classes;
Ajuste na inicialização da camera após a segunda abertura.
Ajuste na abertura da camera para Motorola Edge 20;
Ajuste nas informações criptografadas retornadas para o cliente.
Ajuste no fechamento da camera da FaceTec quando um erro é retornado.
Remoção da tela de permissão de camera da FaceTec.
Feature Flag para exibição do logo da unico.
Remoção do logo da unico.
Inclusão da funcionalidade de captura com liveness com interação.
Correção em um bug nas implementações em Angular > 6. Este bug deixava a tela congelada quando houvesse concorrência entre setTimeout's no SDK e a aplicação do cliente."
Remoção dos seguintes tipos de documentos utilizados no método initDocument()
:
2: RG frente e verso;
4: Novo RG frente e verso.
Caso esteja utilizando os tipos mencionados acima (2 ou 4), realize a captura simples de cada documento através dos tipos:
6: RG frente;
7: RG verso;
8: Novo RG frente;
9: Novo RG verso.
Melhorias nos retornos callback de on.error
e on.support;
Melhoria na mudança de orientação do celular;
Remoção da propriedade: boxOrientationHtml.
Caso a orientação mude, fechamos a câmera e retornamos no callback de erro;
Maior segurança no SDK;
Melhoria no objeto de retorno no método on.success
, adicionando a propriedade encrypted
que possui um JWT que deve ser enviado em menos de 10 minutos para integração com Unico check onboarding:
Mudança no suporte a browsers.
Depreciações:
Remoção da lib js antiga e tornando esta a oficial.
Correção de silhueta grande em PWA.
Atualização de plugins externos para versões mais recentes corrigindo vulnerabilidades dos mesmos.
Correção de câmera invertida para capturas usando câmera traseira dos celulares.
Versão inicial.
Fonte: , , .
Dúvidas?
Não encontrou algo ou ainda precisa de ajuda? Se já é um cliente ou parceiro, pode entrar em contato através da .
Parâmetro | Descrição |
---|---|
Parâmetro | Descrição |
---|---|
Ao ser invocado, o método recebe um parâmetro do tipo UnicoError
que contem detalhes do erro. Saiba mais sobre o tipo UnicoError
na seção do SDK.
Tanto o atributo encrypted
quanto o atributo base64
podem ser enviados na chamada das APIs REST do .
Se for necessário converter o base64 para bitmap, a maneira padrão não funciona para o Android. É necessário realizar o split a partir da vírgula(,
) para que funcione. Se quiser saber mais, leia o artigo .
Saiba mais sobre os tipos de ErrorBio
na seção de do SDK.
Parâmetro | Descrição |
---|
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 .
Não encontrou algo ou ainda precisa de ajuda? Se já é um cliente ou parceiro, pode entrar em contato através da .
Ao ser invocado, o método recebe um parâmetro do tipo UnicoError
que contem detalhes do erro. Saiba mais sobre o tipo UnicoError
no documento de do SDK.
O atributo encrypted
deve ser enviado na chamada das APIs REST do .
Se for necessário converter o base64 para bitmap, a maneira padrão não funciona para o Android. É necessário realizar o split a partir da vírgula(,
) para que funcione. Se quiser saber mais, leia o artigo: .
Saiba mais sobre os tipos de 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 encrypted
gerado pelo SDK para as APIs REST do by Client. Saiba mais na seção .
Não encontrou algo ou ainda precisa de ajuda? Se já é um cliente ou parceiro, pode entrar em contato através da .
Método | Descrição |
---|
Não encontrou algo ou ainda precisa de ajuda? Se já é um cliente ou parceiro, pode entrar em contato através da .
Pronto. Finalizada a instalação do SDK, siga para a implementação lendo o material a seguir:
Não encontrou algo ou ainda precisa de ajuda? Se já é um cliente ou parceiro, pode entrar em contato através da .
Visualize a lista completa de todos os erros em ;
Habilitamos a customização das cores do botão de cancelar e barra de progresso através dos métodos opcionais getProgressBarColor() e getCancelButtonIconColor();
Habilitamos a customização dos textos da UI do liveness interativo via configuração remota;
Remoção do Bitcode das distribuições binárias do unicocheck-ios. A partir do Xcode 14, o bitcode não é mais necessário para aplicativos e a App Store não aceita mais envios com bitcode.
Não encontrou algo ou ainda precisa de ajuda? Se já é um cliente ou parceiro, pode entrar em contato através da .
Método | Descrição |
---|
Não encontrou algo ou ainda precisa de ajuda? Se já é um cliente ou parceiro, pode entrar em contato através da .
Fonte: , , .
Não encontrou algo ou ainda precisa de ajuda? Se já é um cliente ou parceiro, pode entrar em contato através da .
A classe UnicoConfig obtida ;
A captura das imagens é apenas a primeira parte da jornada. Após capturar a imagem, é necessário enviar o encrypted
gerado pelo SDK para as APIs REST do by Client. Saiba mais na seção .
Não encontrou algo ou ainda precisa de ajuda? Se já é um cliente ou parceiro, pode entrar em contato através da .
Não encontrou algo ou ainda precisa de ajuda? Se já é um cliente ou parceiro, pode entrar em contato através da .
Android versão 5.23.0
.
iOS versão 2.16.3
.
Android versão 5.22.0
;
iOS versão 2.16.2
.
iOS versão 2.16.1
.
Android versão 5.21.1
.
Android versão 5.20.0
;
iOS versão 2.16.0
.
Android versão 5.19.0
;
iOS versão 2.15.6
.
Android versão 5.17.0
;
iOS versão 2.15.2
.
Android versão 5.16.0
;
iOS versão 2.15.1
.
Android versão 5.15.1
.
Android versão 5.15.0
;
iOS versão 2.14.2
.
Android versão 5.14.1
;
iOS versão 2.14.0
.
Android versão 5.13.0
;
iOS versão 2.12.1
.
Android versão 5.12.0
;
iOS versão 2.12.0
.
iOS versão 2.11.0
.
Android versão 5.11.0-rc2
;
iOS versão 2.9.3-beta
.
Android versão 5.11.0-rc
;
iOS versão 2.9.1
.
iOS versão 2.9.0
.
Android versão 5.9.0
;
iOS versão 2.8.0
.
Android versão 5.7.0
;
iOS versão 2.6.1
.
Android versão 5.6.1
;
iOS versão 2.6.0
.
Android versão 5.3.0
;
iOS versão 2.4.0
.
Android versão 5.3.0
;
iOS versão 2.4.0
.
Android versão 5.0.0
;
iOS versão 2.3.20
.
Android versão 4.4.0
;
iOS versão 2.3.18
.
Android versão 4.2.7
;
iOS versão 2.3.10
.
Android versão 4.2.6
;
iOS versão 2.3.9
.
Não encontrou algo ou ainda precisa de ajuda? Se já é um cliente ou parceiro, pode entrar em contato através da .
É recomendado o uso de webviews baseadas no Chromium com algumas customizações para melhor funcionamento do JavaScript. É possível encontrar um exemplo de implementação através das nossas .
O iOS fornece duas maneiras de se utilizar Webviews em aplicações, são elas: WKWebView e SFSafariViewController. Recomendamos o uso do SFSafariViewController para uma melhor compatibilidade com os recursos do DOM. É possível encontrar um exemplo de implementação através das nossas .
Release do SDK | Release da FaceTec (Clique na numeração para fazer o download dos arquivos adicionais) |
---|
Para realizar o download do arquivo de AI do Unico Check SDK Web clique .
Instalação através do pacote NPM
Para instalar o SDK em seu projeto através do , basta executar o comando abaixo:
Instalação através do CDN
da versão 3.18.9
.
Pronto. Finalizada a instalação do SDK, siga para a implementação lendo o material a seguir:
Não encontrou algo ou ainda precisa de ajuda? Se já é um cliente ou parceiro, pode entrar em contato através da .
Não encontrou algo ou ainda precisa de ajuda? Se já é um cliente ou parceiro, pode entrar em contato através da .
Você pode conferir um exemplo de implementação através de um projeto (Angular).
A classe UnicoConfig obtida ;
Parâmetro | Descrição |
---|
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 .
Não encontrou algo ou ainda precisa de ajuda? Se já é um cliente ou parceiro, pode entrar em contato através da .
Código | Descrição |
---|
Não encontrou algo ou ainda precisa de ajuda? Se já é um cliente ou parceiro, pode entrar em contato através da .
O SDK Web emprega Web Workers para aprimorar a segurança e a performance. Para garantir a funcionalidade desses workers ao usar a Content Security Policy (), adicione as seguintes configurações à sua política:
Não encontrou algo ou ainda precisa de ajuda? Se já é um cliente ou parceiro, pode entrar em contato através da .
Possuir a versão 9 ou superior do Android Studio instalado (IDE oficial de desenvolvimento do Google);
Possuir a versão do SDK Android na versão 21 ou superior;
Possuir o repositório Maven da Unico configurado.
getCode()
Método utilizado para obter o código de erro ocorrido
getDescription()
Método utilizado para obter a descrição de erro ocorrido
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
DocumentCameraType.CPF
Frame para captura da frente do CPF
DocumentCameraType.CNH
Frame para captura da CNH aberta
DocumentCameraType.CNH_FRENTE
Frame para captura da frente da CNH
DocumentCameraType.CNH_VERSO
Frame para captura do verso da CNH
DocumentCameraType.RG_FRENTE
Frame para captura da frente do RG
DocumentCameraType.RG_VERSO
Frame para captura do verso do RG
DocumentCameraType.None
Frame para captura de qualquer outro documento
Possuir a versão 15.0.1 ou superior do Xcode instalado (IDE oficial de desenvolvimento da Apple);
Possuir a versão do SDK iOS na versão 11 ou superior;
Possuir o gerenciador de dependências Cocoapods ou Swift Package Manager já configurado.
DocumentEnums.CPF
Frame para captura da frente do CPF
DocumentEnums.CNH
Frame para captura da CNH aberta
DocumentEnums.cnhFrente
Frame para captura da frente da CNH
DocumentEnums.cnhVerso
Frame para captura do verso da CNH
DocumentEnums.RG
Frame para captura do RG aberto
DocumentEnums.rgFrente
Frame para captura da frente do RG
DocumentEnums.rgVerso
Frame para captura do verso do RG
DocumentEnums.none
Frame para captura de qualquer outro documento
| Frame para captura da frente do CPF |
| Frame para captura da CNH aberta |
| Frame para captura da frente da CNH |
| Frame para captura do verso da CNH |
| Frame para captura da frente do RG |
| Frame para captura do verso do RG |
| Frame para captura de qualquer outro documento |
| Método utilizado para customizar a cor de sucesso da silhueta |
| Método utilizado para customizar a cor de erro da silhueta |
| Método utilizado para customizar a cor de fundo da silhueta |
| Método utilizado para customizar a cor de fundo da mensagem |
| Método utilizado para customizar a cor de texto da mensagem |
| Método utilizado para customizar a cor de texto e ícones do popup |
| Método utilizado para customizar a cor de fundo do popup |
| Método utilizado para customizar a cor de fundo do botão do popup |
| Método utilizado para customizar a cor de texto do botão do popup |
| Método utilizado para customizar a cor de fundo do botão de tirar foto manualmente |
| Método utilizado para customizar a cor de ícone do botão de tirar foto manualmente |
| Método utilizado para customizar a cor de fundo do box na captura de documentos |
| Método utilizado para customizar a cor de texto do box na captura de documentos |
| Método utilizado para customizar o ícone do Popup de erro, exibido quando a face é posicionada de forma incorreta no frame de captura. |
| Método opcional utilizado para customizar a cor do ícone de loading da camera Liveness com interação. Caso não implementado |
| Método opcional utilizado para customizar a cor do ícone de cancelar da camera Liveness com interação. Caso não implementado |
| Método utilizado para customizar a cor de erro da silhueta |
| Método utilizado para customizar a cor neutra da silhueta |
| Método utilizado para customizar a cor de fundo da silhueta |
| Método utilizado para customizar a cor de fundo da mensagem |
| Método utilizado para customizar a cor de texto da mensagem |
| Método utilizado para customizar a cor de fundo do popup |
| Método utilizado para customizar a cor de texto e ícones do popup |
| Método utilizado para customizar a cor de fundo do botão do popup |
| Método utilizado para customizar a cor de texto do botão do popup |
| Método utilizado para customizar a cor de fundo do botão de tirar foto manualmente |
| Método utilizado para customizar a cor de ícone do botão de tirar foto manualmente |
| Método utilizado para customizar a cor de fundo do box na captura de documentos |
| Método utilizado para customizar a cor de texto do box na captura de documentos |
| Frame para captura da frente do CPF |
| Frame para captura da CNH aberta |
| Frame para captura da frente da CNH |
| Frame para captura do verso da CNH |
| Frame para captura da frente do RG |
| Frame para captura do verso do RG |
| Frame para captura da frente do novo RG |
| Frame para captura da parte traseira do novo RG |
| Frame para captura de qualquer outro documento |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| Método utilizado para obter o código de erro ocorrido |
| Método utilizado para obter a descrição de erro ocorrido |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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)
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) |
Windows (desktop) | N/A | N/A |
Android | N/A |
iOS | N/A |
MacOS (desktop) | N/A |
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 |
Nesta seção, você encontrará todas as informações necessárias para o tratamento dos erros do SDK da plataforma Unico IDCloud em seus aplicativos iOS
ErrorBio
Este objeto é retornado sempre que ocorre um erro no SDK iOS.
Nome do método | Descrição |
---|---|
É disponibilizado a seguir a lista de possíveis códigos de erro do SDK Android:
Código | Descrição |
---|---|
Não encontrou algo ou ainda precisa de ajuda? Se já é um cliente ou parceiro, pode entrar em contato através da Central de Ajuda.
Possuir o Developer SDK do instalado
getCode()
Método utilizado para obter o código de erro ocorrido
getDescription()
Método utilizado para obter a descrição de erro ocorrido
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