Consulta por Aderência
Fluxo de integração com o Bureau de Faces da Certiface, que permite validar identidades de forma rápida e segura, combinando biometria facial e análises de risco para prevenir fraudes.
Certiface REST API
Sumário
Introdução
A finalidade da API Certiface/Bureau de Faces é identificar biometricamente o cliente na base do Certiface, informando os dados: foto, CPF, nome e data de nascimento.
Para isso, é necessário que seja feita a autenticação do operador que irá executar a validação e, em seguida, a identificação dele.
O Certiface REST API possui os seguintes métodos:
- Autenticação
- Certiface
Visão geral
Fluxo base para validação biométrica.
É bom saber!O endereço https://hml.certiface.com.br/CertiFaceWS/rs/operador/auth deverá ser utilizado apenas
para o desenvolvimento e homologação da integração.
Para acessar o ambiente de produção, esse endereço deverá ser substituído por:
https://www.certiface.com.br/CertiFaceWS/rs/operador/auth
Método Autenticação
O objetivo do método é autenticar o usuário do sistema e obter o token que será utilizado como chave criptográfica para acessar a chamada biométrica (método Certiface).
A resposta retorna em JSON com o token e a data/hora de expiração.
Request
POST https://hml.certiface.com.br/CertiFaceWS/rs/operador/authcontent-Type: application/x-www-form-urlencoded
body:
login=login
senha=md5PasswordParâmetros
| Parâmetro | Descrição |
|---|---|
| login | Login do operador do Certiface |
| senha | Senha criptografada em MD5 |
Gerar hash MD5 em Linux
echo -n "suasenha" | md5sum
fb8da69afd458b1b3b4dec5194c564d6Response
Retorno 200 OK
content-type: application/json
body:
{
"token": "WdCFs9ytXJC52RWV5jmynEIKVd0xpKH6JSi7HVeoMz8",
"expires": "01/01/2021 11:11:01"
}| Parâmetro | Descrição |
|---|---|
| token | Token para gerar o hash de autorização |
| expires | Data de expiração do Token |
Retorno 400
Requisição mal formada ou dados incorretos.
Retorno 401
Não autorizado.
Retorno 403
Sem permissão.
Método Certiface
O objetivo é validar biometricamente o cliente, podendo ocorrer o cadastro quando o cliente não estiver na base de dados do Certiface. Além da validação biométrica, também estão disponíveis (sob demanda) validações em outras bases de dados.
O retorno apresenta o status da transação e o resultado da validação biométrica, auxiliando na decisão de aprovar, revisar ou reprovar o cliente.
Request
POST https://comercial.certiface.com.br/CertiFaceWS/rs/certiface/consulta-aderenciaContent-Type: multipart/form-data
Headers
| Parâmetro | Descrição |
|---|---|
| Authorization | Login Hash de autorização (gerado utilizando SHA256) Data e hora de expiração (retornado pelo método Autenticação como expires) Exemplo: login;dBCOXryPKKnsHid9d6JZpNP8W0946PL5ymOxypX88NU;01/01/2021 11:01:01 |
| Date | Data e Hora da requisição, no formato: dd/MM/yyyy HH:mm:ss |
Exemplo:
Authorization: login;UUTKyf8qcxvvHs6M_ueOmoEFwYxvXE4DAeULKeoHr3o;
Date: 04/12/2025 17:01:19Atenção especial ao cabeçalho da requisição, header Authorization:
- Este header é composto do login do usuário, hash de autorização e data/hora de expiração (separados pelo caractere ";").
- A data e hora de expiração são retornadas pelo método Autenticação.
- O hash de autorização deve ser gerado utilizando o algoritmo SHA256 a partir do tipo do método (POST) + URL + data_e_hora_de_expiração como texto base e o token criptográfico gerado no método Autenticação como chave.
Exemplo da chamada do método Certiface:
var verb = 'POST';
var pathCertiface = '/rs/certiface/consulta-aderencia';
var expires = '04/10/2025 14:15:35';
var login = 'login'
var token = 'WdCFs9ytXJC52RWV5jmynEIKVd0xpKH6JSi7HVeoMz8';
var textToSign = (verb + pathCertiface + expires); // Concatena o texto
var hash = CryptoJS.HmacSHA256(textToSign, token); // Gera hash SHA256
var hashInBase64Safe = hashInBase64.replace(/\+/g, '-').replace(/\//g, '_').replace(/\=+$/, ''); // Converte em base64 Safe
var signature = login + ';' + hashInBase64Safe + ';' + expires; // Concatena a chave da assinatura
// Ex signature: login;dBCOXryPKKnsHid9d6JZpNP8W0946PL5ymOxypX88NU;04/10/2025 14:15:35Body
| Parâmetro | Descrição |
|---|---|
| cpf | Identificador único do cliente |
| nome (Opcional) | Nome do cliente (deve conter no mínimo dois nomes, ex: "Felipe Augusto") |
| nascimento (Opcional) | Data de nascimento do cliente, no formato "dd/mm/yyyy" |
| imagem | Imagem contendo a face do cliente. A imagem pode ser enviada em base64 ou em formato "file". |
Exemplo:
cpf: "00000014141"
nome: "Nome Completo"
nascimento: "01/01/2001"
imagem: "/9j/4AAQSkZJRgABAg.....VDc4DGpaKuf/9k="Response
Retorno 200 OK
Exemplo 1: Transação efetuada com sucesso
content-type: application/json
body:
{
"certifaceID": {
"codigo": 201,
"aprovado": true,
"conhecido": false,
"protocolo": "2026233477187",
"score_biometrico": 0.0
}
}
Importante!O serviço da Serpro é opcional e pode ser habilitado ou desabilitado. Caso o serviço esteja desabilitado, o objeto referente a ele será omitido do retorno da API.
Exemplo 2: Transação efetuada com sucesso com Serpro
Retorno 200 OK
content-type: application/json
body:
{
"certifaceID": {
"codigo": 201,
"aprovado": true,
"conhecido": false,
"protocolo": "2026233477187",
"score_biometrico": 0.0,
"serpro": {
"codigo": 200,
"causa": "Validacao positiva",
"score": 0.95203865
}
}
}Detalhes código/causa Serpro
| Valor | Descrição |
|---|---|
| 200 | Transação efetuada com sucesso. |
| 300 | Validação negativa. Comparação biométrica realizada com baixa similaridade. |
| 450 | Falha na comunicação ou tratamento da resposta da Serpro. |
Detalhamento da resposta:
Tabela "serpro"
| Parâmetro | Tipo | Descrição |
|---|---|---|
| codigo | Número inteiro | Código de status. Consulte "Detalhes código/causa Serpro" |
| causa | texto | Descrição do status e detalhamento de erros |
| score | Número decimal | Pontuação da validação da foto-documento versus base-Serpro de 0.0 a 1.0, retornado apenas quando executado |
HomologaçãoEm homologação, os retornos positivo e negativo da validação Serpro
estão limitados a um conjunto específico de CPFs de teste. Qualquer outro CPF
retorna Serpro não encontrado.Consulte a lista de CPFs de teste
Retorno positivo (validação positiva)
CPF 15929792038 25178629078 34963067005 44707559077 57742988097
Retorno negativo (validação negativa)
CPF 69680042081 77571154006 80277279011 91995827088 07034479046
Demais CPFsQualquer CPF fora das listas acima retorna Serpro não encontrado.
Retorno 201 OK
Exemplo 3: Cadastro com sucesso
content-type: application/json
body:
{
"certifaceID": {
"codigo": 201,
"aprovado": true,
"conhecido": false,
"protocolo": "10260002605634"
}
}Retorno 401
Exemplo 4: Imagem recusada
Este retorno ocorre quando a imagem enviada não atende aos requisitos mínimos de qualidade ou formato exigidos para processamento.
Recomendações de qualidade de imagem:
- Resolução de pelo menos 640 x 480 px (VGA) ou 320 x 480 (quando vertical recortada)
- Tamanho até 1 MB
- Formato JPG/JPEG
- Sem redimensionamento (alargar ou reduzir)
- Sem edição ou outros elementos (imagem limpa, sem tarjas, textos, filtros)
- Qualidade/compressão mínima de 85% (sem artefatos ou perda excessiva de qualidade)
- O recorte deve respeitar as proporções da face e as dimensões mínimas exigidas para a imagem
content-type: application/json
body:
{
"certifaceID": {
"protocolo": "209901234567",
"codigo": 401
}
}Retorno 501
Exemplo 5: Erro interno
content-type: application/json
body:
{
"certifaceID": {
"protocolo": "209901234567",
"codigo": 501
}
}Detalhamento da resposta:
Tabela "certifaceID"
| Parâmetro | Tipo | Descrição |
|---|---|---|
| codigo | Número inteiro | Código de status. Consulte tabela "certifaceID.codigo" |
| aprovado | Booleano | True para transação com validação positiva na base biométrica. False indica alta possibilidade de fraude ou erro |
| conhecido | Booleano | True quando o usuário já está registrado na base. False indica cadastro recente ou com baixa confiança |
| protocolo | texto | Protocolo de identificação da transação |
| score_biometrico | Número inteiro | Pontuação da validação com o registro da base Certiface em certificação, retorna negativo em caso de certificação negativa. Valor de -100.0 a 100.0 (retorna 0 quando é cadastro) |
Observação:Os códigos 202 e 212 não se aplicam à Base Transacional, uma vez que essa base não possui cadastro com alerta.
Tabela "certifaceID.codigo"
| Valor | Descrição |
|---|---|
| 201 | Cadastro com sucesso. |
| 202 | Cadastro com pendência. |
| 203 | Certificação positiva. |
| 204 | Certificação negativa. |
| 212 | Cadastro com risco. |
| 401 | Erro de imagem recusada (face não encontrada ou erro de qualidade da imagem) |
| 501 | Erro interno. |
Retorno 200 OK - Erros de validação
Observação: O formato do JSON de retorno para erros de validação é diferente.
Exemplo 6: Erro de validação de dados de entrada
content-type: application/json
body:
{
"status": "ERR",
"resultado": "ERR",
"protocolo": "209901234567",
"msg": "INVALID"
}Exemplo 7: Erro de usuário menor de idade
NOTA: Quando o bloqueio por idade estiver habilitado, conforme configuração definida pelo cliente, usuários menores de idade terão a solicitação bloqueada, retornando o erro abaixo. Por padrão, esse tratamento não está habilitado.
content-type: application/json
body:
{
"status": "ERR",
"resultado": "BMI",
"protocolo": "209901234567",
"msg": "USER IS UNDER 13: [12]"
}Tabela "certifaceErro"
| Parâmetro | Tipo | Descrição |
|---|---|---|
| protocolo | texto | Protocolo de identificação da transação |
| status | texto | Status da transação, consulte tabela "certifaceErro.status" |
| resultado | texto | Sigla do resultado, consulte tabela "certifaceErro.resultados" |
| msg | texto | Mensagem de detalhamento da transação - pode não ser retornado |
| similares | lista | Não utilizado neste cenário - pode não ser retornado |
Tabela "certifaceErro.status"
| Parâmetro | Descrição |
|---|---|
| ERR | Erro ao realizar transação |
Tabela "certifaceErro.resultados"
| Parâmetro | Descrição |
|---|---|
| ERR | Erro no processamento. Consulte a mensagem (quando disponível) para maiores informações |
| BMI | Bloqueio de menor de idade (configurável) |
| Código HTTP | Descrição |
|---|---|
| 400 Bad Request | Requisição form-data mal formada. |
| 401 Unauthorized | Não autorizado (credencial de acesso não informada, inválida ou expirada). |
Updated 1 day ago
