Native Biometrics

Em desenvolvimento

Uma API de identidade facial que qualquer provedor de identidade pode confiar.

Cadastre um rosto de referência, verifique sob demanda e receba uma assertion assinada que o seu backend — ou o NativeGuard, ou o Passly, ou qualquer IdP que você já opera — pode verificar offline. Só o vetor facial é armazenado, dentro da coleção Rekognition do seu tenant; a imagem em si nunca toca disco, log ou trace.

O caso de uso

Prove que é a mesma pessoa, sem ter que construir reconhecimento facial.

Fintechs que precisam de autenticação step-up, recuperação de conta ou um componente de captura para onboarding esbarram na mesma decisão de build vs. buy: o Amazon Rekognition Face Liveness é a parte fácil — assinatura de assertion, proteção contra replay, isolamento de dado por tenant e uma interface que qualquer IdP consiga consumir são a parte difícil.

O Native Biometrics resolve a parte difícil. Cadastre o rosto de referência de um usuário uma vez; verifique contra ele quantas vezes a sua política de risco exigir — um novo dispositivo, uma transferência de alto valor, uma redefinição de senha.

Toda verificação aprovada devolve uma assertion JWS compacta assinada com ES256 via AWS KMS. O seu backend — ou qualquer IdP, inclusive um que a Swepay não construiu — verifica offline contra um endpoint JWKS público. Sem sessão compartilhada, sem exigência de SDK proprietário do lado de quem verifica.

O Native Biometrics é um produto standalone: funciona do mesmo jeito com ou sem NativeGuard ou Passly rodando junto. Ele se integra nativamente com os dois — step-up por risco no NativeGuard, o componente de captura no Passly — mas nenhum dos dois é pré-requisito.

Onde o Native Biometrics se encaixa na sua stack

Seu appAPI Native BiometricsRekognition · KMS (ES256)sa-east-1Seu backend ou IdPNativeGuard · Passly · any IdPSÓ VETORES FACIAIS — NUNCA UMA IMAGEM CRUA

O que vem na caixa

Enrollment, verificação e uma assertion portátil.

Enrollment e verificação via REST ou SDK

Chame `/v1/enrollments` e `/v1/verifications` diretamente, ou use os componentes `<FaceEnroll />` e `<FaceCapture />` do `@swepay/biometrics-react` — ambos encapsulam a UI de Face Liveness do AWS Amplify para você não construir captura de câmera do zero.

Uma assertion assinada que qualquer IdP verifica

Uma verificação aprovada devolve um token JWS compacto (ES256, assinado via AWS KMS) com `sub`, `tenant_id`, `decision` e scores de confiança como claims. Verifique offline contra `GET /.well-known/jwks.json` — sem callback para a Swepay.

Integração nativa com NativeGuard e Passly

O NativeGuard pode chamar o Native Biometrics para step-up disparado por sinal de risco; o Passly usa o mesmo SDK de captura no fluxo de onboarding. As duas integrações são nativas, nenhuma é obrigatória para usar o Native Biometrics sozinho.

Só vetores faciais, nunca uma imagem

Só o vetor facial vive na coleção Rekognition do seu tenant. Nenhuma imagem crua é gravada em DynamoDB, logs ou traces — nem no enrollment, nem na verificação, nem na recuperação de conta.

Assertion de recuperação de conta

O mesmo fluxo de verificação funciona como fator de recuperação de conta: prove que é a mesma pessoa que fez o enrollment, sem uma ligação para o suporte ou um e-mail de redefinição de senha passível de phishing.

Residência de dados em sa-east-1

Rekognition Face Liveness e SearchFacesByImage rodam os dois em `sa-east-1` — a única região AWS onde ambos convivem — então o dado biométrico não sai do Brasil.

De zero a um usuário verificado

Três chamadas: cadastre, verifique, confie na assertion.

Usando `@swepay/biometrics-core` contra a API do Native Biometrics. A maioria dos apps cadastra uma vez por usuário e depois verifica a cada evento de step-up.

  1. 0. Cadastre um rosto de referência

    Monte o `<FaceEnroll />` (ou chame o client diretamente) uma vez por usuário, logo após o cadastro ou no ponto em que a sua política de risco exigir prova forte de identidade.

    Requisiçãots
    import { BiometricsClient } from "@swepay/biometrics-core";
    
    const client = new BiometricsClient({
      apiBaseUrl: "https://api-biometrics-hml.swepay.com.br", // illustrative — no public host yet
      getAccessToken: () => getCurrentUserAccessToken(),
    });
    
    const enrollment = await client.createEnrollment({ userRef: "user_123" });
    const completion = await client.completeEnrollment(enrollment.enrollmentId);
    Respostajson
    {
      "status": "enrolled",
      "livenessConfidence": 98.4,
      "attemptsRemaining": null
    }
  2. 1. Verifique um rosto em um evento de step-up

    Abra uma sessão de verificação sempre que a sua política de risco exigir prova de presença — um novo dispositivo, uma transferência de alto valor, uma redefinição de senha.

    Requisiçãots
    const verification = await client.createVerification({ purpose: "login" });
    const decision = await client.completeVerification(verification.verificationId, {
      livenessSessionId: verification.livenessSessionId,
    });
    Respostajson
    {
      "decision": "approved",
      "livenessConfidence": 98.1,
      "similarity": 96.4,
      "assertion": "eyJhbGciOiJFUzI1NiIsImtpZCI6IjIwMjYtMDktMDEifQ..."
    }
  3. 2. Verifique a assertion no seu backend

    Qualquer backend — o seu, o NativeGuard ou um IdP terceiro — busca o JWKS público uma vez, faz cache e verifica o JWS offline. Sem chamada de volta ao Native Biometrics no caminho quente.

    Requisiçãobash
    curl https://api-biometrics-hml.swepay.com.br/.well-known/jwks.json
    Respostajson
    {
      "keys": [
        { "kty": "EC", "crv": "P-256", "kid": "2026-09-01", "use": "sig", "x": "...", "y": "..." }
      ]
    }

`api-biometrics-hml.swepay.com.br` acima é ilustrativo — o Native Biometrics ainda não tem host público implantado (as rotas do backend estão implementadas; o onboarding no Marketplace Subscription Hub está pendente). Referência completa do SDK: `@swepay/biometrics-react` e `@swepay/biometrics-core`. Perguntas técnicas: engineering@swepay.com.br.

Segurança e conformidade

O que a gente guarda, e o que a gente nunca faz.

Dado facial é dado pessoal sensível pela LGPD (art. 5º, II). O Native Biometrics foi construído para minimizar o que retém.

Base legal: prevenção à fraude

O tratamento se apoia no art. 11, II, "g" da LGPD — prevenção à fraude e à segurança do titular. O Native Biometrics não trata dado biométrico para nenhuma outra finalidade.

Só o vetor é armazenado

O vetor facial vive numa coleção Amazon Rekognition escopada ao seu tenant. A imagem crua é usada em memória durante a requisição e descartada — nunca gravada em DynamoDB, S3, logs de aplicação ou traces distribuídos.

Residência de dados: sa-east-1

Todo o processamento biométrico acontece em `sa-east-1` (São Paulo). Nada atravessa fronteira para enrollment ou verificação.

Exclusão sob pedido

`DELETE /v1/enrollments/{userRef}` revoga um enrollment e remove o rosto indexado — a trilha de exclusão LGPD para uma solicitação de titular. Segurança e pedidos DSR: security@swepay.com.br (assunto `DSR`).

Pricing

Dimensões de uso, mais um plano mensal com volume incluído.

Cobrado inteiramente via AWS Marketplace — sem fatura separada. Escolha um plano mensal para volume incluído previsível, ou pague por dimensão se o uso for irregular.

Dimensões de uso

Todo plano abaixo inclui um pacote de `bio_mau`; uso acima do plano, ou uso totalmente fora de um plano, é cobrado por dimensão.

DimensãoDescriçãoPreço
bio_enroll
Face enrollment
Completed face enrollment (one per user)US$ 0.25
bio_challenge
Verification / recovery
Completed verification or account-recovery challengeUS$ 0.10
bio_mau
Monthly active user
Enrolled MAU, includes up to 3 verificationsUS$ 0.30

Planos mensais

Precificado por usuário mensal ativo (MAU) — um usuário que completa pelo menos um enrollment ou verificação no mês de cobrança.

Starter

$1,250/mês

MAU incluído
5,000 MAU
Ideal para
Fintechs pilotando autenticação step-up ou recuperação de conta
Assinar

Growth

$12,400/mês

MAU incluído
62,000 MAU
Ideal para
Produtos levando biometria para toda a base ativa
Assinar

Scale

$45,000/mês

MAU incluído
300,000 MAU
Ideal para
Plataformas autenticando centenas de milhares de usuários por mês
Assinar

Mais de 300.000 MAU?

Fale com engenharia para um Private Offer do AWS Marketplace com volume customizado e SLA contratual.

Falar com engenharia→

Qual eu preciso?

Native Biometrics vs. Native KYC

Produtos independentes (ADR-0003) que resolvem problemas diferentes e se integram bem juntos. A maioria das fintechs começa pelo que casa com o momento: fazer onboarding de um cliente novo, ou reverificar um que já conhecem.

CritérioNative BiometricsNative KYC
Pergunta centralEssa é a mesma pessoa que fez o enrollment?Quem é essa pessoa, e o documento dela prova isso?
Momento típicoAutenticação step-up, recuperação de conta, verificação recorrenteOnboarding de um cliente novo, pela primeira vez
EntradaSó captura facial ao vivoDocumento (RG/CNH/CIN/passaporte) + captura facial ao vivo + CPF
SaídaAssertion assinada (JWS), qualquer IdP verifica offlineVeredito explicável (approved/review/rejected) + cadeia de evidência
Checagem de sanções/PEPNãoSim (OFAC, ONU, UE, CEIS/CNEP/PEP)
O que é armazenadoSó o vetor facial, na coleção Rekognition do seu tenantCadeia de evidência (scores, status) — sem imagem, sem template

Precisa dos dois? Assine cada um de forma independente no AWS Marketplace — não existe SKU combinado, e não há exigência de rodar um para usar o outro.

Perguntas frequentes

Antes de integrar.

Respostas diretas para as perguntas mais comuns antes de uma revisão de segurança ou compliance.

Vocês guardam a foto dos meus usuários?

Não. O Native Biometrics nunca persiste uma imagem crua — nem no enrollment, nem na verificação, nem na recuperação de conta. Só o vetor facial é armazenado, dentro de uma coleção Amazon Rekognition escopada ao seu tenant, em `sa-east-1`.

O Native Biometrics exige o Native KYC, ou o contrário?

Não. Os dois são produtos independentes — assine um, os dois, ou nenhum. O Native Biometrics responde "essa é a mesma pessoa que fez o enrollment"; o Native KYC responde "quem é essa pessoa, e o documento dela prova isso". Veja a comparação abaixo.

Posso usar a assertion assinada com um provedor de identidade que a Swepay não construiu?

Sim. A assertion é um JWS padrão (ES256), verificável offline contra `GET /.well-known/jwks.json` (RFC 7517). Qualquer IdP capaz de verificar uma assinatura JWT consegue consumi-la — NativeGuard e Passly fazem isso, e o seu próprio backend também consegue.

O que acontece se a liveness ou o face match falharem?

A verificação ou o enrollment devolve `rejected` ou `retry` — nunca um passe silencioso. `retry` significa que a mesma sessão pode ser retomada (por exemplo, se a captura de liveness foi inconclusiva); `rejected` significa que o usuário precisa de uma nova sessão. Nada recebe uma assertion a menos que a decisão seja `approved`.

Um usuário pode optar por sair ou pedir exclusão do dado biométrico?

Sim. `DELETE /v1/enrollments/{userRef}` remove o rosto indexado imediatamente. Solicitações de titular: security@swepay.com.br, assunto `DSR`.

Duas formas de começar.

Contratação direta via AWS Marketplace

Assine, receba as credenciais JWT, rode o primeiro enrollment hoje.

Assinar Native Biometrics

Tem perguntas técnicas antes?

Pergunte para engenharia antes de assinar — formato da API, verificação da assertion, ou como isso se encaixa com NativeGuard ou Passly.

Escrever para engenharia

Planos de volume e integração customizada

Para plataformas com MAU acima de 300.000, ou que precisam de uma sessão de onboarding dedicada antes de ir para produção.

Falar com engenharia