Pular para o conteúdo principal

Selfie com prova de vida passiva

O módulo passive_liveness faz a prova de vida com uma selfie, sem desafio de movimento. O titular tira a foto de perto e o widget guarda alguns quadros logo depois dela. Sobre essa captura rodamos a detecção de ataque de apresentação (como foto impressa ou tela) e devolvemos uma pontuação de vivacidade de 0 a 100 com a faixa real, ambiguous ou spoof. Quando o mesmo flow lê um documento (cpf_ocr ou doc_global), o módulo também compara a selfie com o rosto do documento e devolve o resultado em match. Sem documento, o match sai not_requested. Por já incluir essa comparação, ele não entra no mesmo flow que o face: a API recusa a combinação com 422 passive_liveness_includes_face_match. O módulo não tem dependência e não substitui o liveness onde outro módulo exige a prova de vida com desafio.
O status é um de quatro: approved, declined, recapture (a foto não serviu e o titular tira outra) e review (revisão humana, como na faixa ambiguous ou no match com pouca folga). O mesmo valor sai no resumo: "checks": { ... "passive_liveness": "approved" }. O evidence_level diz o que sustentou a pontuação: sequence quando os quadros depois da selfie chegaram e confirmaram a foto, single_image quando só a imagem única estava disponível. Nesse segundo caso a resposta traz o aviso single_image_evidence, porque uma imagem só sustenta menos que a sequência, e você decide se isso basta para o seu caso. A lista de avisos é fechada, cada um com a severidade: no_face_detected, multiple_faces, presentation_attack, face_mismatch e face_in_blocklist (error); low_face_quality e liveness_ambiguous (warning); match_reference_missing e single_image_evidence (info). O bloco não traz idade, gênero nem vetor biométrico. A pontuação e a similaridade só viajam para o seu servidor, no webhook e no GET com a chave secreta, nunca para o navegador. Para a prova de vida com desafio, veja o liveness; o preço está na tabela de preços.