Skip to content

troyam/api-siafi

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 

Repository files navigation

API SIAFI

API para acesso ao Cadastro de Pessoas Físicas diretamente das bases da Receita Federal do Brasil.

A plataforma APIGOV (Plataforma que contempla todas as API's disponibilizadas e comercializadas pelo SERPRO) utiliza o protocolo Oauth2 - Client Credential Grant (https://tools.ietf.org/html/rfc6749#section-4.4) para realizar a autenticação e autorização de acesso para consumo das API's contratadas, conforme figura abaixo:

Como fazer consultas a API SIAFI

Para consumir a API SIAFI, você deverá utilizar os dois códigos (Consumer Key e Consumer Secret) disponibilizados na Área do Cliente. Esses códigos servem para identificar o contrato e deverão ser informados sempre que uma consulta for realizada. Exemplos de códigos:

Consumer Key: uldY78ZMvYm4btC0x3XZLG7ZTsYa

Consumer Secret: WyUeBFCUK7wu1Ko61V7bb7yB2Uoa

1 – Como solicitar o Token de Acesso (Bearer)

Para consultar a API, é necessário obter um token de acesso temporário (Bearer). Esse token possui um tempo de validade e sempre que expirado, este passo de requisição de um novo token de acesso deve ser repetido.

Para solicitar o token temporário é necessário realizar uma requisição HTTP POST para o endpoint Token https://apigateway.serpro.gov.br/token, informando as credenciais de acesso(consumerKey:consumerSecret) no HTTP Header Authorization, no formato base64, conforme exemplo abaixo. As credenciais de acesso devem ser obtidas a partir do portal do cliente Serpro - https://minhaconta.serpro.gov.br

[HEAD] Authorization: Basic base64(Consumer Key:Consumer Secret)

Abaixo segue um exemplo de chamada via cUrl:

curl -k -d "grant_type=client_credentials" -H "Authorization: Basic dWxkWTc4Wk12WW00YnRDMHgzWFpMRzdaVHNZYTpXeVVlQkZDVUs3d3UxS282MVY3YmI3eUIyVW9h" https://apigateway.serpro.gov.br/token

A chave informada no exemplo acima "dWxkWTc4Wk12WW00YnRDMHgzWFpMRz daVHNZYTpXeVVlQkZDVUs3d3UxS282MVY3YmI3eUIyVW9h" é resultado do BASE64 dos códigos Consumer Key e Consumer Secret separados pelo caracter “:”, conforme exemplo a seguir:

base64(uldY78ZMvYm4btC0x3XZLG7ZTsYa:WyUeBFCUK7wu1Ko61V7bb7yB2Uoa)

Receba o Token

Como resultado, o endpoint informará o token de acesso a API, no campo access_token da mensagem json de retorno. Este token deve ser informado nos próximos passos.

{"scope":"am_application_scope default","token_type":"Bearer","expires_in":3295,"access_token":"c66a7def1c96f7008a0c397dc588b6d7"}

Renovação do Token de Acesso

Atentar que sempre que o token de acesso temporário expirar, o gateway vai retornar um HTTP CODE 401 após realizar uma requisição para uma API. Neste caso, deve ser repetido o passo anterior (Como solicitar o Token de Acesso (Bearer)) para geração de um novo token de acesso temporário.

2 – Como realizar a consulta à API

De posse do Token de Acesso (Bearer), faça uma requisição via GET ao gateway informando os parâmetros da API. Exemplo:

curl -X GET --header "Accept: application/json" --header "Authorization: Bearer c66a7de41c96f7008a0c397dc588b6d7" "https://apigateway.serpro.gov.br/api-siafi/1.0/ne/consultar"

No exemplo acima foram utilizados os seguintes parametros:

[HEADER] Accept: application/json - Informamos o tipo de dados que estamos requerendo, nesse caso JSON

[HEADER] Authorization: Bearer c66a7de41c96f7008a0c397dc588b6d7 - Informamos o token de acesso recebido

[GET] https://apigateway.serpro.gov.br/consulta-cpf/v1/cpf/99999999999: chamamos a url da API informando o CPF. No caso a url é "consulta-cpf/v1/cpf/{numero do CPF}"

Nesse caso, espera-se que a resposta seja a seguinte:

{
  "ni": "91708635203", 
  "nome": "Nome do CPF 917.086.352-03", 
  "nascimento": "01011975", 
  "situacao": {
    "codigo" : "0", 
    "descricao" : "Regular"
  }
}

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 100.0%