Documentação

Componentes

Dois componentes cobrem os três fluxos de verificação. Ambos aceitam as mesmas props de callback e tela de resultado.

LivenessCheck

Prova de vida isolada. O usuário passa pelo detector de liveness e o SDK retorna se a captura foi aprovada. O JSON de onResult inclui selfieBase64 (frame capturado no navegador, anexado no frontend).

"use client";
import { LivenessCheck } from "techface-sdk";

<LivenessCheck
  onResult={(result) => console.log(result)}
  onError={(error) => console.error(error.code, error.message)}
/>

FaceMatchCheck

Comparação facial com ou sem liveness. Exige uma imagem de referência via URL pública ou base64.

Com prova de vida (padrão)

<FaceMatchCheck
  liveness
  referenceImage={{ url: "https://exemplo.com/foto-documento.jpg" }}
  onResult={(result) => console.log(result.approved)}
  onError={(error) => console.error(error.message)}
/>

Sem prova de vida — selfie + comparação

<FaceMatchCheck
  liveness={false}
  referenceImage={{ base64: "<conteudo-base64-da-foto>" }}
  onResult={(result) => console.log(result.faceMatch?.similarity)}
/>
Nos três fluxos, selfieBase64 pode aparecer no onResult. Nos fluxos com liveness, a imagem é capturada e anexada no frontend — a API não devolve a foto. No fluxo facematch (sem liveness), a selfie também é enviada à API para comparação, mas o campo no JSON continua vindo do cliente. Veja Resultado e erros.

Props compartilhadas

Aplicam-se a LivenessCheck e FaceMatchCheck:

PropTipoDescrição
onResult(result) => voidCallback com o resultado consolidado em JSON.
onError(error) => voidErros com code e message em pt-BR.
showResultScreenbooleanExibe a tela de resultado do SDK. Padrão: true.

Props do FaceMatchCheck

PropTipoDescrição
referenceImage{ url } | { base64 }Obrigatória. Foto de referência (documento, cadastro anterior, etc.).
livenessbooleanAtiva prova de vida antes da comparação. Padrão: true.

Exemplo completo

VerificacaoIdentidade.tsx
"use client";

import "techface-sdk/styles.css";
import {
  Techface,
  FaceMatchCheck,
  type VerificationResult,
  type TechfaceError,
} from "techface-sdk";

Techface.configure({ apiKey: process.env.NEXT_PUBLIC_TECHFACE_API_KEY! });

function handleResult(result: VerificationResult) {
  if (result.approved) {
    // prossiga no fluxo do seu produto
  }
  // result.selfieBase64 — JPEG base64 capturado no frontend
  if (result.selfieBase64) {
    // persistir ou enviar ao seu backend
  }
}

function handleError(error: TechfaceError) {
  console.error(error.code, error.message);
}

export function VerificacaoIdentidade() {
  return (
    <FaceMatchCheck
      liveness
      referenceImage={{ url: "https://exemplo.com/documento.jpg" }}
      onResult={handleResult}
      onError={handleError}
      showResultScreen
    />
  );
}