Biometria

Face match: documento e selfie

Compara o rosto do documento com a selfie e diz se são a mesma pessoa.

Motor própriotempo real
POST/api/v1/oracle/face/verify

Sobre esta API

Compara o rosto do documento com uma selfie e responde se são a mesma pessoa, com a distância medida e o limiar usado.

Envie doc_photo e selfie — foto, HEIC ou PDF, inclusive a CNH digital. Com crop_rg e crop_selfie, os rostos também são recortados antes de comparar.

Processado em motor próprio, sem envio da imagem a terceiros. Não faz prova de vida.

Tecnologia

Motor próprio · Atualização: tempo real

Requisição

POST /api/v1/oracle/face/verify

Autenticação HTTP Basic: public_key:secret_key em Base64. Guarde a chave secreta no servidor.

CabeçalhoDescrição
Authorization
Obrigatório
Chave de API em Basic: public_key:secret_key em Base64.
X-Project-Id
Opcional
Projeto que recebe a chamada. Sem ele, vale o projeto padrão da conta.
Idempotency-Key
Opcional
Repetir a mesma chave em até 24 horas devolve a resposta anterior, sem executar nem cobrar de novo.

Parâmetros

CampoTipo e localDescrição
doc_photo
Obrigatório
filefileFoto ou PDF do documento (CNH, RG, CNH digital).
selfie
Obrigatório
filefileSelfie da pessoa.
crop_rg
Opcional
booleanqueryRecorta o rosto do documento antes de comparar.

Exemplo: false

crop_selfie
Opcional
booleanqueryRecorta o rosto da selfie antes de comparar.

Exemplo: false

curl --request POST 'https://api.apifordevs.com/api/v1/oracle/face/verify?crop_rg=false&crop_selfie=false' \
  --user "afd_live_pk_...:$AFD_SECRET_KEY" \
  --header "X-Project-Id: $AFD_PROJECT_ID" \
  --form 'doc_photo=@./doc_photo.jpg' \
  --form 'selfie=@./selfie.jpg'

Campos de resposta

Campos e tipos publicados no catálogo desta API.

Mesma pessoaverifiedboolean
Os dois rostos são da mesma pessoa.
Distância medidadistancenumber
Limiarthresholdnumber
Limiar usado. Abaixo dele, verified é verdadeiro.
Comparação que decidiuplanstring
Qual comparação decidiu: original (imagens inteiras) ou recorte (rostos recortados).
Detalhedetailstring

Exemplo de resposta

{
  "success": true,
  "code": 200,
  "code_message": "A requisição foi processada com sucesso.",
  "errors": [],
  "header": null,
  "data_count": 1,
  "data": [
    {
      "verified": true,
      "distance": 0.31,
      "threshold": 0.68,
      "plan": "original",
      "detail": null
    }
  ]
}

Respostas e cobrança

HTTPDescriçãoCobrança
200Sucesso.Sujeita à cobrança
400

bad_request

live_key_cannot_use_dev_mode

Arquivo ou parâmetro que a rota não consegue processar, projeto inválido, ou dev_mode=true com chave de produção.Sem cobrança
401

unauthorized

Credencial ausente, inválida ou revogada.Sem cobrança
402

payment_required

Saldo insuficiente ou limite de gasto diário atingido.Sem cobrança
403

forbidden

ip_not_allowed

test_key_cannot_run_live

E-mail da conta não verificado, chave sem escopo para o serviço, IP fora da allowlist do projeto ou chave de teste sem dev_mode=true.Sem cobrança
409

conflict

Requisição com a mesma Idempotency-Key ainda em andamento.Sem cobrança
413

payload_too_large

Arquivo acima de 20 MB.Sem cobrança
422

validation_error

Parâmetro obrigatório ausente ou fora do formato, ou Idempotency-Key repetida com outro conteúdo.Sem cobrança
429

rate_limit_exceeded

Limite de requisições por minuto da chave atingido.Sem cobrança
500

internal_error

Falha interna.Sem cobrança
503

service_unavailable

upstream_error

Serviço desativado (service_unavailable), ou o processamento não respondeu a tempo (upstream_error). Não é cobrada; com upstream_error, pode ser repetida.Sem cobrança

Casos de uso

Onboarding com selfie

Confirmar que quem está abrindo a conta é o titular do documento apresentado.

Reautenticação em operação sensível

Pedir selfie antes de transferência alta ou troca de dispositivo e comparar com o documento já cadastrado.

SUA PRÓXIMA ENTREGA

Qual é a sua próxima integração?

Encontre a API que resolve o próximo passo do seu produto.