Nesta seção, você encontrará todas as especificações técnicas dos SDK's disponíveis da plataforma Unico IDCloud
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
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Nesta seção, você encontrará todas as informações necessárias pra implementar o SDK iOS da plataforma Unico IDCloud
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Nesta seção, você encontrará todas as informações necessárias pra implementar o SDK Flutter da plataforma Unico IDCloud
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Nesta seção, você encontrará todas as informações necessárias pra implementar o SDK Web da plataforma Unico IDCloud
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Nesta seção, você encontrará os recursos adicionais relacionados à SDK
Loading...
Loading...
Nesta seção, você encontrará uma visão geral sobre o funcionamento do SDK da plataforma Unico IDCloud
Os SDK's da plataforma Unico IDCloud tem como objetivo potencializar a segurança do seu negócio e dos seus clientes, permitindo inclusive personalizar a experiência de uso aplicando a identidade visual da sua marca. Os SDKs abstraem a complexidade de manipulação da câmera do dispositivo dos usuários e a captura de imagens (Selfie e documento), facilitando a vida do desenvolvedor e reduzindo o tempo de entrega do produto final. Outras vantagens:
Prova de vida: Os SDK's são utilizados em conjunto com a capacidade de Prova de vida para garantir que o usuário esteja ao vivo no momento de captura da selfie;
Precisão na captura de imagens: Os SDKs possuem recursos que auxiliam o usuário a obter fotos biometricamente válidas, reduzindo o drop das imagens quando comparados a captura realizada pelas câmeras padrões dos dispositivos. São adicionados SmartFrames, “elementos chave“ que se ajustam automaticamente à silhueta e proporção da tela do usuário permitindo uma melhor captura da imagem;
Segurança reforçada: Recursos de criptografia e segurança contra injection de imagens, possuindo também funcionalidades que previnem fraudes adaptadas a diferentes modos de câmera. Camadas de segurança que funcionam de forma complementar, tanto a nível da aplicação quanto em relação aos dados que são trafegados entre os SDKs e o backend. O SDK também inclui ofuscação de código, bloqueio de emulador e checagem de bundle do aplicativo que a está executando.
A captura das imagens por meio dos SDKs é apenas a primeira parte de sua jornada. Sendo assim, é de extrema importância que entenda os conceitos básicos e o funcionamento das APIs do motor biométrico. Para mais informações, veja sobre a API REST do by Client.
É importante ressaltar que para o bom funcionamento das nossas soluções, com o máximo de segurança e estabilidade, é imprescindível que o SDK esteja devidamente atualizado. É responsabilidade do cliente acompanhar e garantir que está utilizando a versão mais recente do SDK disponível em nossos servidores.
A Unico não se responsabiliza por problemas decorrentes de falta de atualização do SDK na operação do cliente. [Saiba mais sobre nossa Política de Atualização da SDK aqui]
O SDK (Client-side) é responsável por simplificar sua integração com a plataforma Unico IDCloud, absorvendo toda a complexidade da manipulação da câmera e captura de imagens.
Se a captura for feita com sucesso, o SDK retorna um objeto que deve ser enviado para a API do motor biométrico, completando assim a validação biométrica, conforme diagrama exemplificado abaixo:
Seu servidor interage com as APIs do motor biométrico para analisar a imagem (através das APIs REST do by Client)
Os servidores retornam a resposta do motor biométrico, que deve ser enviada para sua aplicação
Sua aplicação disponibiliza uma resposta ao usuário
A seguir, informações e requisitos necessários, oficialmente suportados por cada Client SDK da Unico:
Os SDKs da plataforma Unico IDCloud possuem um versionamento semântico, sendo assim, há numeração de versão "MAJOR.MINOR.PATCH", descrita da seguinte forma:
Versão Maior(MAJOR): Quando fizer mudanças incompatíveis na API;
Versão Menor(MINOR): Quando adicionar funcionalidades mantendo compatibilidade;
Versão de Correção (PATCH): Quando corrigir falhas mantendo compatibilidade.
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.
SDK Android | SDK iOS | SDK Web |
---|---|---|
Xcode: >= 15.0
Plugins: Flutter
Linguagens: swift/objective-c
iOS: >= 11
Gerenciador de dependência: Cocoapods ou Swift Package Manager
Frameworks: React JS, Angular, Next JS, Vue JS e JS Vanilla.
Versão Javascript: ECMAScript 5 ou superiores.
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 política de atualizações para o uso da SDK
É essencial que todos os clientes mantenham uma rotina de atualização do SDK, uma vez que novas formas de ataque são desenvolvidas a todo momento. A melhor forma de ter seu negócio protegido contra novos formatos de fraudes de Injection e Liveness é usar a versão mais atualizada do SDK da Unico.
É responsabilidade do cliente manter uma rotina saudável de atualização da SDK, garantindo a versão mínima para o bom funcionamento das nossas soluções em suas operações. Assim como é responsabilidade da Unico disponibilizar versões atualizadas, em relação às ameaças que surgem no mercado, e manter nossos clientes informados sobre o tema. Tendo isso em mente, a Unico criou uma Política de atualização do SDK.
Com o SDK desatualizado, nossos clientes estão vulneráveis a ataques de fraudadores. Considerando que a Unico preza pela máxima segurança de seus clientes, além da urgência do tema e necessidade de um processo ágil de atualizações, criou-se a política de atualização do SDK a fim de salvaguardar nossos clientes das mais novas fraudes que aparecem constantemente no mercado. A única forma de estar seguro é estar atualizado.
A Unico categoriza todas as atualizações de SDK entre Crítica e Não-crítica, baseados na criticidade das fraudes que bloqueamos com a nova versão.
Atualizações Críticas: São atualizações que visam proteger nossos clientes contra fraudes e ataques recentes no mercado. Elas precisam ser implementadas em até 5 (cinco) dias corridos, tendo em vista a ameaça real que a operação está suscetível. A partir daí, não daremos mais suporte à versões anteriores. Na prática, o cliente que entrar em contato conosco com uma versão anterior a última deverá obrigatoriamente atualizar o SDK para que possamos atendê-lo.
Atualizações Não-Críticas: São atualizações mais simples, de melhoria da tecnologia. Elas podem ser implementadas em até 60 (sessenta) dias corridos. Vale reforçar que, quanto mais atual a versão, mais chances de evitar bugs e erros. Por isso recomendamos que seja feita a atualização o mais rápido possível. Após este período, não daremos mais suporte técnico e o cliente precisa atualizar seu SDK para que possamos atuar nos casos.
Nós identificamos as atualizações como críticas no Release Notes com uma tag logo abaixo da versão, conforme exemplo abaixo:
Atualização Crítica
Estes períodos valem para todos os clientes da Unico, independentemente da capacidade utilizada.
Para atualizações críticas: enviaremos um e-mail assim que a nova versão estiver disponível, com reforço via time de Customer Success. Informando a urgência do tema e o tempo de 5 (cinco) dias corridos para atualização.
Para atualizações Não-críticas: para evitar sobrecarga dos times dos clientes, enviaremos um e-mail mensal com o resumo das atualizações não-críticas. Informando os principais pontos de mudança e o tempo de 60 (sessenta) dias corridos para atualização.
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 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
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:
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:
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
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:
Você pode seguir o processo padrão de atualização ou instalação descrito conforme a versão que você utiliza: , , e .
Quebras de contrato de API são restritas apenas às releases de versões Major (). Isso significa que mudanças significativas no contrato da API só podem ocorrer com grandes mudanças na SDK, e não em revisões menores. Nós temos como prática evitar ao máximo qualquer quebra de versão Major, pois impacta em grandes mudanças na integração com o cliente, o que não é nosso objetivo. Faremos apenas em casos de extrema necessidade e sempre com o objetivo de garantir a segurança em todas as operações.
Cada uma das versões tem seus próprios release notes conforme os links abaixo, apresentando novas funcionalidades ou correções de bugs / bloqueios de fraudes: , , e .
Sempre que há uma nova versão do SDK, o site é atualizado. Se você é cliente da Unico receberá um e-mail com as atualizações e as informações sobre as mudanças. Caso não esteja recebendo, contate seu CSM.
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 |
---|---|
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 .
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 acima.
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 .
Não encontrou algo ou ainda precisa de ajuda? Se já é um cliente ou parceiro, pode entrar em contato através da .
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
| Método utilizado para obter o código de erro ocorrido |
| Método utilizado para obter a descrição de erro ocorrido |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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 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.
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
:
Fonte: Bitrise, Xcode 16 release notes, Stackoverflow.
Dúvidas?
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.
|
|
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) |
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:
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 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.
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 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 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á 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 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 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 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á 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 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 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 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 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.
Possuir a versão 9 ou superior do instalado (IDE oficial de desenvolvimento do Google);
Método | Descrição |
---|---|
Parâmetro | Descrição |
---|---|
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 .
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 .
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 .
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 .
Fonte: , , .
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 .
É 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 .
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 .
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 .
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
getColorSilhouetteSuccess()
Método utilizado para customizar a cor de sucesso da silhueta
getColorSilhouetteError()
Método utilizado para customizar a cor de erro da silhueta
getColorBackground()
Método utilizado para customizar a cor de fundo da silhueta
getColorBoxMessage()
Método utilizado para customizar a cor de fundo da mensagem
getColorTextMessage()
Método utilizado para customizar a cor de texto da mensagem
getColorTextPopupError()
Método utilizado para customizar a cor de texto e ícones do popup
getColorBackgroundPopupError()
Método utilizado para customizar a cor de fundo do popup
getColorBackgroundButtonPopupError()
Método utilizado para customizar a cor de fundo do botão do popup
getColorTextButtonPopupError()
Método utilizado para customizar a cor de texto do botão do popup
getColorBackgroundTakePictureButton()
Método utilizado para customizar a cor de fundo do botão de tirar foto manualmente
getColorIconTakePictureButton()
Método utilizado para customizar a cor de ícone do botão de tirar foto manualmente
getColorBackgroundBottomDocument()
Método utilizado para customizar a cor de fundo do box na captura de documentos
getColorTextBottomDocument()
Método utilizado para customizar a cor de texto do box na captura de documentos
getImageIconPopupError()
Método utilizado para customizar o ícone do Popup de erro, exibido quando a face é posicionada de forma incorreta no frame de captura.
getProgressBarColor()
(opcional)
Método opcional utilizado para customizar a cor do ícone de loading da camera Liveness com interação. Caso não implementado getColorBoxMessage()
é ultilizado.
getCancelButtonIconColor()
(opcional)
Método opcional utilizado para customizar a cor do ícone de cancelar da camera Liveness com interação. Caso não implementado getColorBackgroundTakePictureButton()
é ultilizado.
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
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.
| 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 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 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 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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 Visão Geral.
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.
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 (CSP), adicione as seguintes configurações à sua política:
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.
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 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
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á uma lista das melhores práticas para implementação da SDK da plataforma Unico IDCloud
A Unico fornece um conjunto de POC (Prova de Conceito) que são implementações nas diversas linguagens suportadas pela SDK que apresentam exemplos funcionais de código com os fluxos e métodos no contexto da SDK, para fins didáticos, facilitando o entendimento da sequência esperada e sua adaptação para o código a ser implementado pelos nossos clientes. Você pode consultar as POCs disponíveis neste link e solicitá-las via abertura de ticket com nosso time de atendimento através do portal de clientes.
Constantemente as SDKs vêm evoluindo para garantir maior segurança e novos recursos e funcionalidades. É essencial que os clientes mantenham uma rotina de atualizações, além de ter agilidade em atualizações críticas.
Para mais detalhes, consulte a política de atualizações das SDKs.
Importante garantir que realize sua atualização para versão mais recente disponível:
Android: [lista de versões];
IOS: [lista de versões];
Flutter: [lista de versões];
Web: [lista de versões].
Sabemos que seu aplicativo faz uso de diversas outras bibliotecas e funcionalidades, muitas vezes sendo carregadas de forma simultânea à SDK da Unico. Como boa prática de atualização, evite realizar o processo de upgrade de nossa SDK ao mesmo tempo que atualiza alguma outra funcionalidade / biblioteca pois, ao se deparar com uma falha e/ou mudança de comportamento, pode ser um desafio entender o que está sendo a causa raiz. Recomendamos realizar as atualizações separadamente para garantir maior controle das validações, além de utilizar o nosso ambiente de homologação.
Caso esteja com dificuldade, abra um ticket no nosso portal de clientes com as seguintes informações (para agilizar a tratativa):
Qual é a linguagem da SDK que você está tentando atualizar?
Caso seja mobile (Android ou IOs), trata-se de uma implementação nativa ou híbrida (informar detalhes)?
Em caso de implementação JavaScript, qual o framework utilizado?
Qual é a versão atual da SDK que você está tentando atualizar? (não é necessário caso seja uma nova instalação);
Qual é a nova versão que está sendo realizada a tentativa de instalação/atualização?
Por favor, informe qual API Key está sendo utilizada;
A atualização consiste apenas no upgrade do SDK ou outros componentes / funcionalidades também estão sendo alterados/atualizados/modificados ? Em caso afirmativo, por favor descreva quais itens adicionais estão sendo modificados;
Prover uma descrição dos passos executados e quais foram os resultados/erros;
Por favor anexar evidências e insumos relacionados a falha/problema (arquivos de logs contendo trecho de erros/falhas, printscreens e/ou vídeos reproduzindo o problema).
Ao efetuar uma captura de imagem com sucesso, o método onSuccessSelfie retorna um objeto do tipo ResultCamera que possui 2 atributos:
Base64 da imagem obtida, que pode ser utilizado se quiser exibir uma prévia da imagem em seu app;
Encrypted, que é um objeto JWT que deve ser deve ser enviado na chamada das APIs REST. O JWT (Encrypted) deve ser utilizado estritamente durante o envio da imagem através das APIs da Unico. Não se deve abrir e/ou 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. Como dito, a SDK já fornece o atributo Base64 para obter a imagem em questão.
Um caso de exemplo em Swift: Método: onSuccessSelfie print("(result.encrypted)") para Encrypted print("(result.base64)") para para Base64 print("(result)") para Encrypted e Base64
Em resumo: nunca tente ler ou manipular o atributo Encrypted (JWT).
Por motivos de segurança, o envio da JWT deve ser realizado dentro de um período de 10 minutos. Caso o envio supere esta janela, o pacote será considerado inválido. Considere este tempo no momento da jornada do usuário em seu aplicativo e evite mudanças posteriores.
Por motivos de segurança, o envio da JWT deve ser feito somente uma vez para o backend da Unico. Ou seja, caso haja algum problema no processamento da imagem e/ou algum erro no response, deve-se realizar uma nova captura biométrica para geração de um novo objeto encrypted e então, enviar este novo arquivo para o backend da Unico.
A virtualização de dispositivos nas dinâmicas de testes do seu aplicativo pode ser interpretada como uma tentativa de burlar as camadas de segurança incorporadas ao provedor de biometria, podendo retornar os erros:
Mobile:
73006 - Unable to open camera on emulators
.
Web
73600 - Could not find camera resource
.
73400 - Could not initialize camera
.
Para evitar retrabalho e a identificação errônea de erros, os testes devem ser realizados em dispositivos físicos.
Toda comunicação e requisição é baseada em API Keys definidas previamente na instância do cliente. É muito importante que sua implementação utilize a mesma API Key no fluxo de captura e no fluxo de envio, pois evita erros de integração, facilita a validação e a rastreabilidade dos processos e fluxos.
Em caso de dúvidas sobre sua API Key acesse o suporte técnico.
No processo de realização de testes e validações, é normal manter o DevTools aberto para verificação de fluxos e requisições. No entanto, não deve-se considerar o método de validação de captura nesses testes pois a SDK identifica como possível fraude e invalida a passagem quando enviada ao backend. Por isso, quando houver a realização de fluxos ponta-a-ponta, é essencial manter o DevTools desativado e seguir com a captura normal.
Ao subir versões para o SDK WEB, caso tenha atualização também de arquivos resources, sempre excluir o arquivo antigo e inserir os novos na pasta Public, pois pode acontecer dos arquivos estarem com o mesmo nome e não serem substituídos. Certifique-se também de verificar se não há cache internamente dos arquivos resources antigos após a atualização e novo build.
Para a implementação em aplicações flutter, deve-se sempre utilizar o nosso plugin de flutter específico para este propósito. Reforçamos que não tentem implementar as versões nativas do nosso SDK (Android, IOS) através de bridges em aplicações flutter pois normalmente esta ação gera erros que não foram mapeados pelo time de engenharia da Unico.
A implementação do SDK possui 2 etapas até a captura da foto e geração do encrypted:
A preparação da câmera e;
A abertura da câmera.
Na primeira etapa é preciso passar o tipo de câmera a ser utilizado e o bundle com as informações de API KEY, estando tudo correto a autenticação com o backend do SDK é realizada com sucesso. Na segunda etapa é feita a abertura da câmera, normalmente a partir de um clique de botão do usuário. A autenticação com o backend do SDK pode levar alguns segundos, então colocar essa etapa junto com a abertura de câmera no clique do botão que o usuário utiliza pode gerar uma frustração e sensação de lentidão. Dessa forma, o ideal é que, durante o carregamento da página de orientações de captura, a preparação da câmera já esteja sendo feita, assim, quando o usuário decidir abrir a câmera, o carregamento será mais rápido e a experiência final será superior.
Desta forma, você irá otimizar sua implementação e melhorar a velocidade da sua aplicação, diminuindo a percepção de lentidão no processamento para seu usuário final.
Sempre realize a limpeza de cache antes de realizar o build e subir novas versões. Caso esta limpeza não seja realizada, é possível se deparar com erros relacionados a cache de dependências que possivelmente tenham sido removidas ou atualizadas em novas versões. Abaixo alguns exemplos de como realizar:
Para o Flutter seguir com o comando:
Remover o arquivo: pubspec.lock
ou;
flutter pub get
.
Para o IOS seguir com o comando:
pod cache clean 'unicocheck-ios' –all
ou;
pod cache clean –all
ou
Remover o podfile.lock
e seguir com o pod install
.
Para o Android no build Gradle seguir com o comando:
./gradlew clean
.
O ofuscamento é um processo de transformar o bytecode em uma forma menos legível por humanos, dificultando assim a engenharia reversa. A ferramenta de ofuscação que você utiliza em sua aplicação pode afetar o funcionamento da SDK, portanto é necessário que o mesmo não ofusque o código da SDK. Um bom indicador para problemas de ofuscação é verificar se sua aplicação funciona em modo debug e deixa de funcionar quando realiza o build em modo release, uma vez que a ofuscação não modifica os arquivos em modo debug.
Sendo assim, é necessário que durante a implementação do SDK vocêadicione às suas regras de ofuscação a configuração para o SDK Unico, caso contrário enfrentará problemas ao tentar buildar o projeto utilizando o SDK IOS, Android ou Flutter.
Abaixo os links para as configurações de ofuscação de cada SO:
Android: Link documentação ofuscação Android;
A Unico fornece um ambiente de homologação para que os clientes possam realizar testes e validações de suas implementações antes de realizar qualquer mudança e alteração no ambiente de produção. Reforçamos a importância desta etapa a fim de garantir maior segurança quando for realizar a janela de mudança em produção. Garanta que seu plano de testes inclua o máximo de validações e cenários que encontrará no ambiente de produção (como variação de dispositivos, testes com limitação de conectividade, etc) Importante: lembre-se que o ambiente de homologação possui seu próprio conjunto de parametrizações/configurações, como conta de serviço e API Keys específicas (diferentes do ambiente de produção).
Crie um roteiro / checklist levando em conta o plano de gestão de mudanças da sua empresa;
Certifique-se que tenha esteja utilizando as configurações corretas de produção (como API Key correta);
Garanta que tenha um plano de rollback (recovery) em caso de falha ao subir a nova versão em produção;
Ao se deparar com uma falha, colete todos os logs e insumos;
Reative a versão anterior funcional para mitigar impacto em produção;
Abra um um ticket no nosso portal de clientes contendo todas as informações e insumos da falha para que possamos apoiá-lo.
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.
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 suas aplicações Web
É disponibilizado a seguir a lista de possíveis códigos de erro do SDK Web.
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 lista com todas as PoCs de SDK disponíveis para apoiar a sua implementação
Os seguintes exemplos de projetos são disponibilizados para facilitar o entendimento do funcionamento de cada SDK.
Caso não encontre a POC nesta seção, solicite a POC ao seu Gerente de Projetos e ela será compartilhada através de um diretório SFTP.
Linguagem de programação | Descrição | Repositório |
---|---|---|
Linguagem de programação | Descrição | Repositório |
---|---|---|
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
Código | Descrição |
---|---|
Linguagem de programação | Descrição | Repositório |
---|---|---|
73000
Unknown and unexpected error. Unico SDK leverages a variety of APIs including camera, storage, security, networking, and more. This return value is a catch-all for errors experienced during normal usage of these APIs.
73001
<property> is required
73002
<property> must be an instance of <class>
73003
<class> with name <name> is not available to inject.
73004
Class type must be a function or a class.
73005
Could not find the <locale> locale.
73006
Could not find text: <text>.
73100
Unable to connect to internet.
73200
Could not find the Unico SDK JSON file.
73201
Could not load the Unico SDK JSON file.
73202
Unico SDK JSON file is invalid.
73204
Unable to initialize the SDK, please configure the environment on setEnviroment method of build.
73300
Could not authenticate this application.
73301
Could not authenticate this application.
73302
Authentication token not found.
73303
Current host is not registered.
73400
Could not initialize camera.
73401
Could not load ML models for this camera.
73402
The Key could not be verified due to connectivity issues on the user's device.
73403
This device/platform/browser/version combination is not supported by SDK.
73404
Device is in landscape display orientation. The SDK can only be used in portrait display orientation.
73405
Device blocked due to multiple failed attempts.
73406
The Session was cancelled, the SDK was opened in an IFrame.
73407
The SDK was not fully loaded.
73500
Could not get session.
73501
Could not get session.
73502
Session token not found.
73600
Could not find camera resource.
73601
Could not start camera in production mode.
74000
Invalid hexadecimal.
74001
Object is not a UnicoTheme
73700
Could not parse camera response.
73704
The user pressed the cancel button and did not complete the session.
73706
The camera access is prevented because either the user has explicitly denied permission or the user's device is configured to not allow access by a device policy.
73707
The session was canceled due to the app being terminated, put to sleep, an OS notification, or the app was placed in the background.
73708
The session was cancelled because device is in landscape mode. The user experience of devices in these orientations is poor and thus portrait is required.
73710
The session was cancelled because the user was unable to complete a Session in the default allotted time or the timeout set by the developer.
73715
The session was cancelled because not all guidance images were configured.
73716
The session was cancelled because SDK was unable to start the camera on this device.
73717
The session was cancelled because the user was in a locked out state.
73718
The session was cancelled because of an unknown and unexpected error. SDK leverages a variety of iOS APIs including camera, storage, security, networking, and more. This return value is a catch-all for errors experienced during normal usage of these APIs.
73720
The developer programmatically called the session cancel API.
73721
The session was cancelled due to a device orientation change during the session.
73722
The session was cancelled because the document is not ready.
73723
The session was cancelled because there was another session in progress.
73724
The session was cancelled because the camera was opened in an iFrame.
73728
Connection error, please use HTTPS to connect.
73729
Browser not supported, please open in another browser.
73730
Unable to initialize an active liveness session because of an unknown and unexpected license error.
73731
Unable to initialize an active liveness session because the license has expired.
73732
Unable to initialize an active liveness session because Origin is not permitted.
73800
Could not encrypt response.
73900
Could not get system information.
Kotlin
PoC em Kotlin que implementa a SDK Android
Swift
PoC em Swift que implementa a SDK iOS
ObjC
PoC em ObjC que implementa a SDK iOS
SFTP
React Native
PoC em React Native que implementa as SDKs Android e iOS
SFTP
Flutter
PoC em Dart que implementa a SDK Flutter
Angular
PoC em Angular que implementa a SDK Web
JS Vanilla
PoC em JS Vanilla (JS puro) que implementa a SDK Web
Next JS
PoC em Next que implementa a SDK Web
React JS com TypeScript
PoC em React com TypeScript que implementa a SDK Web
React JS com JavaScript
PoC em React com JavaScript que implementa a SDK Web
React JS com Webpack + Babel
PoC em React JS com Webpack + Babel que implementa a SDK Web
SFTP
Vue JS
PoC em Vue JS que implementa a SDK Web
Android
PoC em uma Webview Android que executa o SDK Web
SFTP
Android x Web Flow
PoC de fluxo de comunicação entre aplicação web e webview nativa Android
SFTP
iOS
PoC em uma Webview iOS que executa o SDK Web
SFTP
iOS x Web Flow
PoC de fluxo de comunicação entre aplicação web e webview nativa iOS
SFTP