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.
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.
O token expira em 30 minutos.
Request
request: POST https://hml.certiface.com.br/CertiFaceWS/rs/operador/auth
content-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 |
Por segurança, não utilize encoders MD5 online.
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
É 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 Certiface O objetivo é validar biometricamente o cliente, podendo ocorrer o cadastro quando o cliente não estiver na base de dados do Certiface ou se a sua validação estiver nessa base. Além da validação biométrica, também estão disponíveis (sob demanda) validações em outras bases de dados. O retorno é composto pelo status da transação e o score de risco para melhor recomendar se o cliente será aprovado, revisado ou reprovado na transação corrente.
Request: POST https://comercial.certiface.com.br/CertiFaceWS/rs/certiface/consulta-aderencia Content-Type: multipart/form-data Authorization: login;UUTKyf8qcxvvHs6M_ueOmoEFwYxvXE4DAeULKeoHr3o; Date: 04/12/2025 17:01:19
Body:
cpf: "00000014141"
nome: "Nome Completo"
nascimento: "01/01/2001"
imagem: "/9j/4AAQSkZJRgABAg.....VDc4DGpaKuf/9k="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 |
Atençã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 retornados pelo método Autorizaçã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 Autorização como chave.
Body:
| 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 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:35Response
Retorno 200 OK
Exemplo 1: Transação efetuada com sucesso (codigo = 200)
Indica que o usuário com o CPF informado consta na base biométrica.
content-type: text/plain
body:
"certifaceID": {
"protocolo": "2025123456700",
"codigo": 203,
"aprovado": true,
"conhecido": false,
"score_biometrico": 92.3
}Exemplo 2: Dados informados incorretamente ou requisição mal formada (Retorno = 400)
content-type: application/json
body:
{
"status": "ERR",
"resultado": "ERR",
"protocolo": "202001138311",
"msg": "INVALID CPF"
}Exemplo 3: Imagem recusada (codigo = 401)
content-type: application/json
body:
{
"certifaceID": {
"protocolo": "209901234567",
"codigo": 401,
"score": 0
}
}Exemplo 4: Erro interno (codigo = 501)
content-type: application/json
body:
{
"certifaceID": {
"protocolo": "209901234567",
"codigo": 501,
"score": 0
}
}
Detalhamento da resposta: Tabela "certifaceID"
Parâmetro | Tipo | Descrição |
|---|---|---|
protocolo | Texto | Protocolo de identificação da transaçã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 |
conhecido | Booleano | True quando o usuário já está registrado na base |
score_biometrico | Número inteiro | Score de risco, de 0 (sem informação), 100 (baixo risco) a 1000 (alto risco) |
Tabela "certifaceID.codigo"
| Valor | Descrição |
|---|---|
| 200 | Transação efetuada com sucesso |
| 203 | Certificação positiva |
| 204 | Certificação negativa |
| 401 | Erro de imagem recusada (face não encontrada ou erro de qualidade da imagem) |
| 501 | Erro interno, falha ao processar transação |
Retorno 200 OK - Erros de validação Observação: O formato do JSON de retorno para erros de validação é diferente.
Exemplo 4: Erro de validação de dados de entrada
content-type: application/json
body:
{
"status": "ERR",
"resultado": "ERR",
"protocolo": "209901234567",
"msg": "INVALID"
}Exemplo 5: Erro de usuário menor de idade
NOTA: Retorno habilitado via config. TRATAMENTO_MENOR_IDADE, desabilitado por padrão.
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 mensagem (quando disponível) para maiores informações |
BMI | Bloqueio de menor de idade (configurável) |
Retorno 400 BAD REQUEST Requisição form-data mal formada.
Retorno 401 UNAUTHORIZED Não autorizado (credencial de acesso não informada, inválida ou expirada).
Retorno 404 NOT FOUND Usuário não possui biometria registrada em nossa base.
Updated about 1 hour ago
