LivenessFacetecSDK e o fluxo completo de uma verificação no browser.
O bundle expõe window.LivenessFacetecSDK com uma fábrica que cria a instância do SDK. A única interface que você precisa conhecer é a FaceTecSDKConfig — o objeto de configuração que você passa para executar uma verificação.
sdk.run(config) orquestra o fluxo completo (preparação, captura, submissão e limpeza) em uma única chamada e resolve com o LivenessResult da verificação.
Configuração
| Parâmetro | Tipo | Obrigatório | Descrição | |||||
|---|---|---|---|---|---|---|---|---|
mount | `HTMLElement | string` | Sim | Elemento (ou seletor CSS) onde a UI da câmera vai renderizar. | ||||
onInit | (params) => Promise<SessionTokens> | Sim | Callback que seu código implementa: chama o seu backend, que implementa o serviço de Facetec, e devolve sessionToken, facetecSessionToken e sessionId. | |||||
hubOptions | HubOptions | Não | Personalização de idioma, textos e cores. Veja Customização. | |||||
onSuccess | (result) => void | Não | Disparado quando a captura termina (mesmo quando livenessCheck = false — é um resultado biométrico, não um erro técnico). | |||||
onFailure | (error) => void | Não | Disparado quando o fluxo técnico falha. Veja Solução de problemas. | |||||
onProgress | (state) => void | Não | Recebe transições de estado (Uninitialized, Initializing, Ready, Capturing, Closing, Error). |
Como o onInit funciona
O SDK chama onInit antes de inicializar a UI, passando metadados de dispositivo coletados pelo FingerprintJS Pro:
Nem sempre o SDK consegue obter o
visitorId e o eventId — depende de conectividade, configurações de privacidade e do ambiente de execução. Repasse-os ao seu backend quando estiverem presentes; quando ausentes, o serviço cria a sessão normalmente. Veja Serviço.maxAttempts — seu backend pode incluir este campo ao chamar POST /api/v1/sessions, definindo o número máximo de capturas biométricas permitidas na sessão (1–5, default 3). Quando uma captura falha e ainda há tentativas disponíveis, o FaceTec exibe a tela de retry automaticamente sem criar nova sessão.Fluxo de uso
Crie a instância do SDK
Logo após o bundle ser carregado, crie a instância. Você pode reaproveitá-la em múltiplas capturas.
Implemente o onInit chamando o seu backend
O
onInit é um async que devolve { sessionId, sessionToken, facetecSessionToken }. Encaminhe os sessionParams recebidos para o seu endpoint:Campos de LivenessResult
Quando a captura termina, o SDK emite o objeto abaixo via onSuccess (e também resolve a Promise de run com ele):
| Campo | Tipo | Descrição | |||||
|---|---|---|---|---|---|---|---|
sessionId | string | ID da sessão criada na Plataforma ID. | |||||
captureId | string | ID único da captura submetida. | |||||
verified | boolean | Resultado consolidado — true quando o liveness foi aprovado. | |||||
status | `‘completed' | 'failed’` | Estado da captura no backend. | ||||
processingTime | number | Tempo total de processamento em milissegundos. | |||||
livenessCheck | boolean? | Resultado isolado da verificação de vivacidade. | |||||
auditTrailCheck | boolean? | Validação da trilha de auditoria. | |||||
replayCheck | boolean? | Resultado da verificação anti-replay. | |||||
sessionTokenCheck | boolean? | Validação do token de sessão. | |||||
failureReason | string? | Motivo da falha, quando aplicável. | |||||
processedAt | string? | Timestamp ISO-8601 do processamento. | |||||
retryScreen | number? | Indicador interno de retry do FaceTec. | |||||
base64Data | string? | Dado biométrico opcional. | |||||
attemptsLeft | number? | Tentativas restantes no momento da aprovação. |
Os quatro
*Check são as garantias de segurança consolidadas pelo backend. Em uma captura legítima, todos devem ser true.Exemplo completo
Próximos passos
Customização
Locales, textos e paleta de cores da UI
Solução de problemas
Hierarquia de erros e diagnóstico