Skip to main content

O fluxo em quatro passos

1

Verifique a conectividade

GET /version com a sua Api-Key (ele não a exige, mas assim você testa o cabeçalho completo). Deve devolver 200. Avalie o código de status, não o corpo: o formato do corpo não faz parte do contrato. Se falhar, o problema é de URL, rede ou proxy — ainda não há nada para depurar do lado da API.
2

Prepare as imagens

JPEG ou PNG, em base64 sem o prefixo data: e sem quebras de linha. Um rosto por imagem, frontal, bem iluminado.
3

Declare as operações

operations é uma lista de listas alinhada com images: operations[i] aplica-se a images[i]. Se você a omitir, cada imagem roda biometric por padrão.
4

Decida com a regra na forma positiva

status === 200 && biometric["0"]["1"] >= 70 confirma; qualquer outra coisa não confirma. Os detalhes do limiar estão na introdução.

Requisitos de imagem

Para converter uma imagem em base64:

O corpo da solicitação

Um operations desalinhado não é um 400 arrumado. Uma lista operations mais curta que images produz um 500 com corpo em texto puro (Internal Server Error), e omitir images também. Valide o alinhamento antes de chamar; esses erros são da sua solicitação e repeti-los devolve exatamente a mesma coisa.

As três formas de comparar

Se você guarda vetores para comparar depois, guarde também com qual metodologia foram gerados e compare sempre com a mesma. Um vetor vu_v4 comparado com euclidean_l2 dá pontuações de outra escala e o seu limiar deixa de valer.

Um lote não tolera falhas parciais

Se você envia 4 imagens e a terceira não tem rosto, não recebe 3 resultados e um erro: recebe um único 400 com imageNumber: 2 (base 0) e nenhum resultado. Não há resultados parciais. Se o seu fluxo tolera falhas por imagem, envie uma solicitação por imagem.

Timeouts e novas tentativas

Antes de ir para a produção

  1. GET /version devolve 200 a partir da sua conectividade de produção.
  2. A sua condição de verificação exige 200 e pontuação ≥ 70 sobre biometric["0"]["1"], e uma resposta inesperada não aprova por exclusão.
  3. Se você mudou distanceMethodology, calibrou o seu próprio limiar e não reutilizou o 70.
  4. O seu desserializador indexa os resultados por string ("0", "1") e tolera inferenceConfidence com ou sem code/confidence.
  5. O seu cliente HTTP tolera corpos de erro que não são JSON (os 500 em texto puro).
  6. operations tem exatamente uma entrada por imagem.
  7. As imagens têm pelo menos 360 × 360 e o JPEG vai em qualidade ≥ 90.
  8. Você nunca repete um no-match nem um spoofing: true com a mesma imagem.
  9. A api-key vive no seu backend, nunca no app móvel nem no front-end.
  10. Você envia um info próprio por operação e registra o id de cada resposta.
  11. events fica desabilitado em produção: o rastro é para diagnóstico.

Próximo: Respostas

A matriz biométrica campo a campo, o veredito de qualidade que muda de forma e o antispoofing aninhado.
Última modificação em 9 de setembro de 2026