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

Face Liveness e Face Authenticator

Permite integrar verificação facial aos aplicativos, proporcionando uma experiência segura e fluida de autenticação do usuário.

Vivacidade facial e autenticador facial

O SDK Web CafFaceLiveness fornece detecção de vivacidade facial com suporte a vários provedores, cada um oferecendo recursos e capacidades diferentes. O SDK direciona automaticamente para o provedor apropriado com base na configuração do seu token mobile.

Provedores compatíveis

Provedor
Descrição

Caf

Validação de vivacidade em 2D usando as soluções da Caf

FaceTec

Tecnologia de detecção de vivacidade 2D da FaceTec

iProov

Detecção de vivacidade com as tecnologias GPA e LA

Payface

Tecnologia de verificação facial da Payface

Início rápido

1. Instalação

Inclua o script do SDK no seu arquivo HTML:

<script src="https://repo.combateafraude.com/javascript/release/caf-face-liveness/0.17.2/caf-face-liveness_0.17.2.umd.js"></script>

Ou inclua-o via JavaScript:

const sdkScript = document.createElement("script");
sdkScript.src =
  "https://repo.combateafraude.com/javascript/release/caf-face-liveness/0.17.2/caf-face-liveness_0.17.2.umd.js";
document.body.appendChild(sdkScript);

Você também pode baixar o arquivo do SDK a partir do Caf CDN e então incluí-lo diretamente no seu projeto. Isso é útil se você preferir hospedar o arquivo do SDK ou se quiser evitar carregá-lo de uma CDN.

2. Uso básico

Exemplo completo

Aqui está um exemplo HTML pronto para uso:

Referência do SDK

Inicialização

Inicializa o SDK com a configuração fornecida.

Parâmetro de inicialização
Tipo
Obrigatório ou opcional
Descrição

sdkToken

string

Obrigatório

Token do SDK para autenticação

personId

string

Obrigatório

Identificador único do usuário

config

object

Opcional

Opções de configuração do SDK.

Consulte a Opções de configuração seção para mais detalhes.

customization

object

Opcional

Opções de personalização de aparência e texto.

Consulte a Opções de personalização seção para mais detalhes.

Opções de configuração

Parâmetro de configuração
Tipo
Obrigatório ou opcional
Descrição
Suporte do provedor

htmlContainerId

string

Obrigatório (iProov)

ID do contêiner HTML para a interface do SDK. Obrigatório somente quando o provedor selecionado for iProov.

iProov

enableDebugMode

boolean

Opcional

Ative o modo de depuração para desenvolvimento

Todos os provedores

performFaceAuthentication

boolean

Opcional

Se deve realizar a autenticação facial junto com a detecção de vivacidade

Ativar a autenticação facial requer um rosto previamente registrado para o personId. Consulte a Autenticação facial seção para mais detalhes.

Todos os provedores

idioma

string

Opcional

Idioma da interface. Valores suportados: "en_US", "es_MX", "pt_BR"

Todos os provedores

disableAnalytics

boolean

Opcional

Desativar o rastreamento de analytics

Todos os provedores

cameraPreviewFilter

string

Opcional

Filtro para a pré-visualização da câmera. Valores suportados: "shaded", "classic", "vibrant", "clear", "blur"

Ao usar o filtro de câmera "clear" com o GPA ativado, o SDK não poderá ser executado e lançará um erro. Se o GPA estiver ativado, certifique-se de usar uma opção diferente de filtro de câmera.

iProov

reverseProxy

object

Opcional

Configuração de proxy reverso.

Consulte a Configuração de proxy reverso seção para mais detalhes.

iProov

Opções de personalização

Parâmetro de personalização
Tipo
Descrição
Suporte do provedor

appearance.captureButtonIcon

string

URL do ícone do botão de captura

Caf, FaceTec

appearance.captureIconSize

string

Tamanho do ícone do botão de captura

Caf, FaceTec

appearance.captureButtonColor

string

Cor do botão de captura

Caf, FaceTec

appearance.fontFamily

string

Família de fontes da interface

Caf, FaceTec

startButton.label

string

Texto do botão Iniciar

iProov

startButton.color

string

Cor do texto do botão Iniciar

iProov

startButton.backgroundColor

string

Cor de fundo do botão Iniciar

iProov

startButton.borderRadius

string

Raio da borda do botão Iniciar

iProov

startButton.border

string

Estilo da borda do botão Iniciar

iProov

startButton.padding

string

Preenchimento do botão Iniciar

iProov

startButton.margin

string

Margem do botão Iniciar

iProov

messages.title

string

Texto do título da interface

Caf, FaceTec

messages.loading

string

Mensagem de carregamento durante a captura

Caf, FaceTec

messages.errors.captureFailed

string

Mensagem de erro quando a captura falha

Caf, FaceTec

Tratando erros de inicialização

Erros que podem ocorrer durante o init() método:

Nome do erro
Descrição

CafSdkInitError

Ocorreu um erro durante a inicialização do SDK (por exemplo, parâmetros obrigatórios ausentes).

CafSdkSessionError

Erro ao criar a sessão para realizar a vivacidade ou a autenticação facial. Verifique se o token fornecido é válido e não expirou.

CafUnknownError

Ocorreu um erro interno desconhecido

Quaisquer outros erros inesperados serão lançados como padrão do JavaScript Erro classe.

Exemplo:

Execução

Executa o processo de detecção de vivacidade facial.

Parâmetro de execução
Tipo
Obrigatório ou opcional
Descrição

options

object

Opcional

Opções para o método run.

Consulte a Opções de execução seção para mais detalhes.

Opções de execução

Opção de execução
Tipo
Descrição

cancelPromise

Promise<void>

Promise que é resolvida quando a operação deve ser cancelada.

onCaptureProcessingStart

function

Callback chamado quando o processamento da captura começa.

onCaptureProcessingEnd

function

Callback chamado quando o processamento da captura termina.

Retorna

O método retorna um Promise<string> que é resolvida com um string de token JWT contendo o resultado da execução.

Importante: Os campos descritos abaixo estão contidos no payload decodificado deste token JWT. Você deve decodificar e verificar o token JWT para acessar esses campos.

Estrutura do payload JWT

Após decodificar o JWT, o payload contém um objeto com as seguintes propriedades:

  • imageUrl (string): URL temporária da imagem capturada

  • isAlive (boolean): Indica se a verificação de vivacidade foi bem-sucedida

  • isMatch (boolean): Indica se a autenticação facial foi bem-sucedida (se ativada)

  • sessionId (string): Identificador único da sessão da execução

  • personId (string): O ID da pessoa usado para a execução

Tratando erros de execução

Erros que podem ocorrer durante o run() método:

Nome do erro
Descrição

CafCameraPermissionError

Erro ao obter permissão da câmera

CafCameraPermissionDeniedError

Permissão da câmera negada pelo usuário

CafCameraUnsupportedError

A câmera não é suportada pelo navegador/dispositivo

CafSdkRunError

Ocorreu um erro durante a execução do SDK

CafSdkCanceledError

Execução do SDK cancelada pelo usuário ou cancelPromise

CafFaceLivenessError

Erro durante a validação de vivacidade

CafFaceAuthenticationError

Erro durante a autenticação facial

CafFaceNotFoundError

Nenhum rosto registrado foi encontrado para o usuário

CafUnknownError

Ocorreu um erro interno desconhecido

CafUnsupportedError

O SDK não é suportado neste dispositivo, navegador ou sistema operacional.

CafDeviceMotionPermissionDeniedError

Permissão de movimento do dispositivo negada pelo usuário.

Quaisquer outros erros inesperados serão lançados como padrão do JavaScript Erro classe.

Exemplo:

Descarte

Limpa os recursos do SDK. Deve ser chamado quando o SDK não for mais necessário.

Exemplo

Produtos

Vivacidade Facial

O SDK fornece detecção de vivacidade facial para garantir que o usuário esteja vivo e presente durante o processo.

Como a Vivacidade Facial funciona

  1. Acesso à câmera: O SDK solicita acesso à câmera do usuário

  2. Captura facial: O SDK captura uma foto do rosto do usuário

  3. Validação de vivacidade: O SDK analisa o rosto capturado para verificar se o usuário está vivo

  4. Resultado: A carga útil do token JWT inclui o isAlive campo indicando se o usuário está vivo

Interpretação do resultado da Vivacidade Facial

isAlive
Significado

verdadeiro

✅ O usuário está vivo e a verificação de vivacidade foi aprovada

falso

❌ A detecção de vivacidade falhou

Autenticação facial

O SDK suporta autenticação facial a ser realizada בנוסף à detecção de vivacidade. Quando ativado, após a validação de vivacidade, o SDK comparará o rosto capturado com um rosto cadastrado anteriormente para verificar a identidade do usuário.

Para ativar a autenticação facial, defina o performFaceAuthentication parâmetro como verdadeiro durante a inicialização do SDK:

Como a Autenticação Facial funciona

  1. Cadastro facial: O rosto do usuário deve ter sido previamente cadastrado usando o personId

  2. Vivacidade Facial: O SDK captura o rosto do usuário e realiza a validação de vivacidade

  3. Autenticação facial: O rosto capturado é comparado com o rosto cadastrado para o personId

  4. Resultado: A carga útil do token JWT inclui o isMatch campo indicando se há uma correspondência com o rosto cadastrado

Interpretação do resultado da Autenticação Facial

isAlive
isMatch
Significado

verdadeiro

verdadeiro

✅ O usuário está vivo e o rosto corresponde ao rosto cadastrado

verdadeiro

falso

⚠️ O usuário está vivo, mas o rosto não corresponde

falso

-

❌ A detecção de vivacidade falhou

Configuração de proxy reverso

Se você optar por usar um proxy reverso, você deve configurá-lo para encaminhar corretamente as solicitações para os endpoints apropriados. Abaixo está o mapeamento de redirecionamento:

  • /v1/https://web.us.prd.caf.io/bff/

  • /std/https://us.rp.secure.iproov.me/

  • /std/ws/wss://us.rp.secure.iproov.me/ws/

  • /assets/https://cdn.iproov.app/

Exemplo de configuração de proxy reverso

Supondo que seu domínio seja my.proxy.io, a configuração do seu SDK ficaria assim:

Observação: Os caminhos fornecidos neste exemplo são apenas para referência. Você pode configurar seu proxy e seus caminhos de acordo com seus padrões de melhores práticas.

Opções de integração

Para realizar a integração por meio de um iframe, as permissões de câmera e tela cheia devem ser fornecidas.

Requisitos de permissão de sensor do iOS

As versões recentes do iOS 26 introduziram mudanças que quebraram o fluxo de permissão do sensor de movimento para integrações em iframe. A solução alternativa que dependia de um botão de permissão prévia parou de funcionar e foi descontinuada.

A partir da versão 0.14.1, o iProov provedor incluso foi atualizado, o que lida nativamente com os novos requisitos do iOS quando o Web SDK é executado dentro de um iframe. O único caminho suportado é atualizar sua integração para CafFaceLiveness 0.14.1 (ou mais recente). Versões anteriores não funcionarão nos dispositivos mais recentes com iOS 26, mesmo que você mantenha a solução alternativa anterior em vigor.

Após a atualização, você pode incorporar o iframe exatamente como mostrado acima. Não são necessários botões extras nem fluxos de permissão personalizados.

Para usar o SDK por meio de um Webview, a permissão da câmera deve ser concedida no seu aplicativo nativo.

Exemplo de implementação no Android:

AndroidManifest.xml

MainActivity

Exemplo android projeto android para implementação em webview; além disso, é necessário conseguir abrir o aplicativo em tela cheia, o exemplo mostra como configurá-lo corretamente.

Eventos do SDK

O SDK dispara vários eventos durante seu ciclo de vida para poder lidar com diferentes cenários do processo de detecção de vivacidade e proporcionar uma melhor experiência ao usuário.

Ouça os eventos usando o padrão de listener de eventos do DOM:

Atualmente, os eventos estão disponíveis apenas ao usar o iProov provedor. O suporte a eventos para outros provedores está planejado para versões futuras.

Eventos disponíveis

Nome do evento
Descrição
Suporte do provedor

iniciado

O processo de detecção de vivacidade começa

iProov

sdk-button-ready

O botão de início do SDK está pronto para interação

iProov

sdk-button-clicked

O usuário clicou no botão de início do SDK

iProov

streaming

O streaming foi iniciado, permanecendo em tela cheia

iProov

streamed

Fim do streaming e saída da tela cheia

iProov

aprovado

A detecção de vivacidade foi bem-sucedida

iProov

falhou

A detecção de vivacidade falha

iProov

cancelado

O usuário cancela o processo

iProov

erro

Ocorreu um erro durante o processo

iProov

não suportado

O navegador não suporta o SDK

iProov

Detalhes do evento: evento "failed" do iProov

Quando a detecção de vivacidade falha, o falhou evento fornece feedback específico:

A tabela abaixo resume os possíveis falhou detalhes do evento:

Feedback
Motivo
LA
GPA

eyes_closed

Mantenha os olhos abertos

face_too_far

Aproxime o rosto da tela

face_too_close

Afaste o rosto da tela

misaligned_face

Mantenha o rosto dentro do oval

multiple_faces

Certifique-se de que apenas uma pessoa esteja visível

obscured_face

Remova qualquer cobertura facial

sunglasses

Remova os óculos de sol

too_bright

Luz ambiente muito forte ou brilho da tela muito baixo

too_dark

Seu ambiente parece estar muito escuro

too_much_movement

Por favor, fique parado

desconhecido

Tente novamente

Detalhes do evento: evento "error" do iProov

Quando ocorre um erro durante o processo de detecção de vivacidade, o erro evento fornece detalhes adicionais sobre o erro:

A tabela abaixo resume os possíveis erro detalhes do evento:

Feedback
Motivo

desconhecido

Tente novamente

client_camera

Ocorreu um erro ao obter o vídeo da câmera

client_error

Ocorreu um erro desconhecido

error_asset_fetch

Não foi possível buscar os recursos

error_camera

A câmera não pode ser iniciada por motivos desconhecidos

error_camera_in_use

A câmera já está em uso e não pode ser acessada

error_camera_not_supported

A resolução da câmera é muito baixa

error_camera_permission_denied

O usuário negou nossa solicitação de permissão da câmera

error_device_motion_denied

O usuário negou nossa solicitação de permissão de movimento do dispositivo

error_device_motion_unsupported

Seu dispositivo parece não informar totalmente o movimento do dispositivo

error_fullscreen_change

Saiu da tela cheia sem concluir o iProov

error_invalid_token

O token interno do SDK é inválido

error_network

Erro de rede

error_no_face_found

Nenhum rosto pôde ser encontrado

error_not_supported

O dispositivo ou a integração não consegue executar o Web SDK

error_server

Ocorreu um erro ao comunicar-se com os servidores do iProov

error_token_timeout

O token foi solicitado muito tempo depois de ter sido criado

error_too_many_requests

O serviço está sob alta demanda e o usuário deve tentar novamente

error_user_timeout

O usuário iniciou a solicitação, mas não transmitiu a tempo

integration_unloaded

O SDK foi desmontado do DOM antes de concluir

sdk_unsupported

O SDK passou do fim de sua vida útil e não é mais suportado

Notas de lançamento

CafFaceLiveness v0.17.2

Correções

  • provedor iProov: Corrigido o problema de comportamento de zoom em tablets no modo paisagem, garantindo o dimensionamento adequado da exibição em todos os dispositivos.

  • provedor Payface: Ampliada a janela de tempo limite de carregamento do SDK e adicionados registros de diagnóstico para melhorar a confiabilidade da inicialização em conexões de rede lentas.

CafFaceLiveness v0.17.1

Melhorias

  • Dependências atualizadas: Atualizado o provedor Payface com importantes melhorias de segurança e na captura facial.

Correções

  • provedor iProov: Corrigido um problema em que a tela de captura facial não era exibida corretamente em tela cheia em dispositivos móveis iOS.

CafFaceLiveness v0.17.0

Novos recursos

  • Tratamento específico para rosto não cadastrado: Adicionado CafFaceNotFoundError. Quando nenhum rosto está cadastrado para o personId, o SDK agora gera esse erro específico em vez de um genérico, melhorando significativamente o tratamento de erros no frontend.

Melhorias

  • Melhor tratamento dos erros de falha do usuário, incluindo rosto não encontrado, permissão da câmera negada e erros de movimento do dispositivo.

  • Dependências atualizadas: Atualizadas as dependências internas para aumentar a segurança e a estabilidade.

  • Registro: Aprimorados os registros internos e a análise para melhor depuração e monitoramento.

CafFaceLiveness v0.16.0

Recursos

  • Evento de clique no botão de início: Adicionado um novo sdk-button-clicked evento, disparado quando o usuário clica no botão de início do iProov. Use-o junto com o sdk-button-ready evento existente para acompanhar o engajamento do usuário durante o fluxo de verificação.

Correções

  • Corrigido um erro que podia ocorrer ao chamar dispose() depois que o fluxo de vivacidade já havia sido concluído.

CafFaceLiveness v0.15.1

Melhorias

  • Dependências atualizadas: Atualizado o provedor iProov e as dependências internas para melhorar o desempenho e a estabilidade.

  • Tratamento de erros: Melhorado o tratamento de erros para o provedor iProov.

  • Registro: Aprimorados os registros internos e a análise para melhor depuração e monitoramento.

Recursos

  • Análise: Adicionados novos eventos ao sistema interno de análise para rastrear melhor a compatibilidade e o suporte do navegador.

CafFaceLiveness v0.14.3

Correções

  • Adicionados erros para navegadores não suportados e permissões de movimento do dispositivo negadas: CafUnsupportedError e CafDeviceMotionPermissionDeniedError.

  • Melhorada a análise adicionando registros mais específicos para erros e falhas usando o provedor iProov.

CafFaceLiveness v0.14.2

Análise aprimorada do SDK

  • Melhorado o registro adicionando informações sobre tentativas de captura e métricas específicas de qualidade.

  • Adicionado rastreamento de abandono: quando um usuário abandona abruptamente a jornada antes da conclusão, como ao fechar a janela do navegador, minimizar a aba ou navegar para uma página diferente, o SDK rastreará esse evento para fornecer melhores insights sobre a jornada do usuário e os possíveis motivos do abandono.

CafFaceLiveness v0.14.1

Correções

  • Atualizado o iProov mecanismo do provedor, corrigindo a inicialização de iframes em dispositivos com iOS 26.x e eliminando a solução alternativa anterior de permissão do sensor de movimento.

CafFaceLiveness v0.14.0

Melhorias

Esta versão inclui uma atualização do nosso provedor Payface que melhora a experiência do usuário, resultando em taxas de sucesso mais altas. As principais melhorias incluem:

  • Orientação aprimorada ao usuário: Novos alertas de iluminação ajudam os usuários a encontrar as condições ideais para uma captura bem-sucedida.

  • Acessibilidade aprimorada: Instruções mais claras criam uma jornada do usuário mais fluida e inclusiva.

  • Experiência mais responsiva: Cancelar a captura agora é mais rápido, melhorando a usabilidade.

Recursos

  • Fingerprinting do dispositivo: Coleta a impressão digital do dispositivo durante a verificação para fortalecer a prevenção a fraudes e a análise de risco. Desativado por padrão; entre em contato com nossa equipe para ativar.

CafFaceLiveness v0.13.0

  • Tratamento de erros simplificado com base em nomes: Consolidamos os tipos de erro em nomes claros e descritivos para melhorar a consistência.

  • Dependências atualizadas: Melhorada a estabilidade, a segurança e a compatibilidade do SDK.

CafFaceLiveness v0.12.1

  • Sistema de captura de imagem mais robusto: O SDK agora conta com um mecanismo inteligente de fallback, garantindo que a captura de imagem funcione de forma mais confiável em diferentes dispositivos e navegadores, mesmo em cenários com limitações técnicas.

  • Validação aprimorada da qualidade da imagem: Novas validações foram implementadas para evitar imagens de baixa qualidade, aumentando a confiabilidade do processo de captura.

  • Otimização de desempenho na inicialização: O processo de inicialização do SDK agora é mais rápido e leve, reduzindo o tempo de espera do usuário.

  • Feedback visual aprimorado: Novos eventos e mensagens de status permitem que a interface do usuário informe com mais precisão o usuário sobre o momento da captura.

CafFaceLiveness v0.12.0

Recursos

  • Seleção de câmera aprimorada: Detecção inteligente de rótulo/modo de frente com seleção heurística da melhor câmera (Caf e FaceTec).

  • Descoberta unificada e reutilização de stream: Descoberta única de mídia do usuário com reutilização de stream e fallback automático de câmera, reduzindo solicitações de permissão e acelerando a inicialização (Caf e FaceTec).

  • Troca de câmera mais rápida: Troca de câmera quase instantânea com seleções em cache (Caf e FaceTec).

CafFaceLiveness v0.11.2

Melhorias

Experiência do usuário aprimorada durante interrupções: Comportamento aprimorado de Face Liveness quando os usuários passam por mudanças de foco ou interrupções durante sessões de captura facial usando o provedor Payface.

  • Adicionada funcionalidade de pausar/retomar quando o foco do navegador é perdido (troca de aba, minimização etc.)

  • Agora os usuários podem se recuperar de interrupções em vez de reiniciar todo o processo de captura

  • Redução nas taxas de abandono de sessão devido a interrupções acidentais

CafFaceLiveness v0.11.1

Correções

Compatibilidade aprimorada com dispositivos: Estabilidade e compatibilidade aprimoradas do Face Liveness em vários dispositivos e navegadores, reduzindo significativamente as falhas de sessão e melhorando a experiência do usuário durante o processo de verificação facial usando o provedor Payface.

  • Corrigidos problemas de compatibilidade que estavam causando erros de "não suportado" em determinados dispositivos

  • Confiabilidade aprimorada da inicialização da câmera em diferentes dispositivos móveis e navegadores

  • Redução nas taxas de abandono durante sessões de Face Liveness

CafFaceLiveness v0.11.0

Recursos

Inicialização da câmera aprimorada: Refatorada a inicialização da câmera ao usar os provedores Caf ou FaceTec, movendo a configuração da câmera da inicialização do SDK para a fase de execução, resultando em inicialização mais rápida e melhor gerenciamento de recursos.

Correções

  • Corrigido um problema em que o stream da câmera não era reproduzido automaticamente ao inicializar o SDK dentro de um WebView móvel.

CafFaceLiveness v0.10.1

Correções

  • Garante que o SDK seja fechado corretamente após erros de captura ao usar os provedores Caf ou FaceTec, evitando estados inconsistentes e permitindo que o usuário tente o processo novamente.

CafFaceLiveness v0.10.0

Recursos

Rastreamento de analytics aprimorado: Rastreamento de eventos de analytics aprimorado, fornecendo melhor monitoramento de erros e recursos de depuração do SDK.

Correções

  • Corrigidas falhas de inicialização da câmera e problemas de sobreposição em tela cheia ao usar os provedores Caf ou FaceTec.

  • Corrigida a configuração de proxy reverso para encaminhar corretamente as solicitações para os endpoints desejados.

CafFaceLiveness v0.9.0

Recursos

  • Modo de tela cheia: Habilite o modo de tela cheia ao usar os provedores Caf ou FaceTec para melhorar a experiência do usuário.

  • Melhorias no Payface: Provedor Payface atualizado para melhorar a observabilidade e a compatibilidade com Webview.

CafFaceLiveness v0.7.3

Correções

Corrigido um problema em que o SDK não estava habilitando a autenticação facial ao usar o provedor Payface. Agora o SDK realiza corretamente a autenticação facial quando a performFaceAuthentication opção é definida como verdadeiro durante a inicialização.

CafFaceLiveness v0.7.2

Apresentando CafFaceLiveness, um Web SDK para detecção de vitalidade facial e autenticação em aplicações web.

Recursos

  • Detecção de Vitalidade Facial: Validação em tempo real para garantir a presença do usuário

  • Autenticação facial: Verificação de identidade opcional contra faces registradas

  • Suporte a Múltiplos Provedores: Roteamento automático entre os provedores Caf, FaceTec, iProov e Payface

  • Configuração Flexível: Opções de personalização para a interface e o comportamento

  • Vários Idiomas: Suporte nativo para inglês, espanhol e português

  • Proxy Reverso: Tráfego seguro da API por meio da configuração de proxy reverso

Observação: Esta é a versão inicial do CafFaceLiveness Web SDK. Versões futuras incluirão recursos adicionais, melhorias e suporte ampliado a provedores.

Atualizado