Chamando a API
Fazendo uma requisição para criação do token
De posse do Token de Acesso, faça a requisição a um dos serviços.
Criação do PIN
curl -X POST --header "Authorization: Bearer 06aef429-a981-3ec5-a1f8-71d38d86481e" "https://gateway.apiserpro.serpro.gov.br/biovalid-trial/v1/token?cpf=11111111111"
Retorno esperado: RBPR6YFE3
O PIN também pode ser criado usando um dos tipos de KBA, sendo o do tipo Datavalid ou um próprio.
Quando o KBA do tipo Datavalid for utilizado, os campos são fixos com base na CNH, sendo:
- categoria
- numero de registro
- data de validade
Para utilizar este tipo de KBA, basta informar o parâmetro kba_datavalid na URL durante a criação do PIN, conforme exemplo abaixo.
curl -X POST --header "Authorization: Bearer 06aef429-a981-3ec5-a1f8-71d38d86481e" "https://gateway.apiserpro.serpro.gov.br/biovalid-trial/v1/token?cpf=11111111111&kba_datavalid=true"
Para utilizar um KBA próprio, basta informar as perguntas no corpo da requisição, conforme exemplo abaixo.
curl -X POST \
--url 'https://gateway.apiserpro.serpro.gov.br/biovalid-trial/v1/token?cpf=11111111111' \
--header 'Content-Type: application/json' \
--header 'Authorization': 'Bearer 06aef429-a981-3ec5-a1f8-71d38d86481e' \
--data '[
{ "pergunta": "Qual sua data de aniversário?", "resposta": "22/06/1983", "tipo": "DATE" },
{ "pergunta": "Você tem filhos?", "resposta": "true", "tipo": "BOOLEAN" },
{ "pergunta": "Qual o nome da sua mãe?", "resposta": "Marcia", "tipo": "TEXT" }
]'
Os tipos das perguntas podem ser:
- DATE no formato dd/MM/yyyy
- BOOLEAN no formato true ou false
- TEXT pode ser um texto livre
- NUMERIC do tipo número inteiro
Não é possível usar os dois tipos de KBA's ao mesmo tempo. Caso seja informado os dois KBA's na criação do PIN, o KBA Datavalid será o utilizado.
Caso seja necessário, é possível definir um tempo de uso para o PIN em minutos. Ou seja, o usuário só pode enviar a foto em até X minutos após a criação do PIN. Para definir o tempo de uso, adicionar o parâmetros expira_em na URL, conforme exemplo abaixo de 5 minutos.
curl -X POST --header "Authorization: Bearer 06aef429-a981-3ec5-a1f8-71d38d86481e" "https://gateway.apiserpro.serpro.gov.br/biovalid-trial/v1/token?cpf=11111111111&expira_em=5"
Pedir ao usuário fazer a biometria com o PIN pelo aplicativo.
Pegar o resultado da validação biométrica.
curl -X GET --header "Authorization: Bearer 06aef429-a981-3ec5-a1f8-71d38d86481e" "https://gateway.apiserpro.serpro.gov.br/biovalid-trial/v1/token?cpf=11111111111&token=RBPR6YFE3"
Retorno:
Quando o retorno for com sucesso é esperado é um JWT codificado em base64. Ao decodifica-lo, será possível ver o PIN, CPF e o resultado da biometria.
Exemplo decodificado.
{
"iss": "biodata",
"iat": 1592319844,
"exp": 1592321644,
"aud": "Demonstração",
"sub": "11111111111",
"filiacao": {},
"cnh": {
"categoria": true,
"numero_registro": false,
"data_validade": false
},
"documento": {},
"endereco": {},
"cpf_disponivel": true,
"biometria_face": {
"disponivel": true,
"probabilidade": "Altíssima probabilidade",
"similaridade": 0.970771181293467
},
"token": "RBPR6YFE3",
"data_prova_de_vida": "dd/MM/yyyy HH:mm:ss",
"kba_cliente_valido": true
}
Quando for utilizado o KBA definido pelo cliente, o campo kba_cliente_valido informa se o usuário informou as respostas corretamente (true) ou não informou corretamente (false). Já quando a opção foi utilziar o KBA do Datavalid, os campos dentro de CNH devem ser conferidos, sendo para as respostas corretas (true) e as incorretas (false).
EXCEÇÕES
Se por algum motivo o usuário ainda não fez a biometria, o retorno esperado é:
{ "codigo": "5", "mensagem": "Sem informações de biometria." }
Se o usuário já fez a biometria mas sem a possibilidade de validação por parte do Biovalid, o retorno esperado é:
{ "codigo": "12", "mensagem": "Usuário não possui CNH ou Foto na base do DENATRAN para validação biométrica." }