- Requer Node.js 18 ou superior instalado.
Executar os seguintes comandos:
npm i
-> Baixa todos os módulos necessários para a execução da aplicação.npm run dev
-> Inicia o servidor da aplicação localmente.- Para realizar as consultas na API, utilizar o navegador ou programas como Postman e Insomnia baseado na documentação abaixo.
Observações:
- O provedor Invertexto não funcionará sem um token especificado no
.env
, pois se trata de uma API privada que requer uma conta. - A aplicação executará sem um banco de dados PostgreSQL normalmente, porém não fará os registros das requisições. Para configurar o banco de dados localmente, ver o arquivo
.env.example
.
Padronizar a forma como se acessa a API ajuda as aplicações a terem uma maior consistência, pois ao invés do desenvolvedor ter que se preocupar com a documentação de três APIs por exemplo, ele terá que se preocupar somente com uma, justamente por nela conter de maneira centralizada alguns dos dados públicos listados abaixo:
- Informações sobre o sistema bancário brasileiro.
- Código de Endereçamento Postal (CEP).
- Cadastro Nacional da Pessoa Jurídica (CNPJ).
- Discagem Direta à Distância (DDD).
- Feriados Nacionais.
- Geolocalização por IP.
- Instituto Brasileiro de Geografia e Estatística (IBGE).
Informações sobre o sistema bancário brasileiro.
GET
http://cancianhosting.ddns.net:3000/api/bancos/v1
Sucesso (200)
{
"provedor": "Banco Central",
"bancos": [
{
"ispb": "00000000",
"nome": "BCO DO BRASIL S.A.",
"codigo": "001",
"nomeExtenso": "Banco do Brasil S.A.",
"inicioDaOperacao": "22/04/2002"
},
{
"ispb": "00000208",
"nome": "BRB - BCO DE BRASILIA S.A.",
"codigo": "070",
"nomeExtenso": "BRB - BANCO DE BRASILIA S.A.",
"inicioDaOperacao": "22/04/2002"
},
...
]
}
GET
http://cancianhosting.ddns.net:3000/api/bancos/v1?codigo=
- Parâmetro Query:
codigo
inteiro de1
à999
. (Opcional)
codigo=1
- Sucesso (200)
{
"provedor": "Banco Central",
"bancos": [
{
"ispb": "00000000",
"nome": "BCO DO BRASIL S.A.",
"codigo": "001",
"nomeExtenso": "Banco do Brasil S.A.",
"inicioDaOperacao": "22/04/2002"
}
]
}
codigo
inválido - Erro interno do servidor (500)
{
"mensagem": "Todos os serviços de Bancos retornaram erro.",
"erros": [
{
"provedor": "Banco Central",
"erro": "Código do banco solicitado não existe ou é inválido."
}
]
}
Informações sobre Código de Endereçamento Postal.
GET
http://cancianhosting.ddns.net:3000/api/cep/v1/:cep
- Parâmetro Path:
cep
string de tamanho8
com a expressão regular/^[0-9]+$/
.
cep=97010041
- Sucesso (200)
{
"provedor": "ViaCEP",
"cep": "97010-041",
"logradouro": "Rua André Marques",
"complemento": "lado ímpar",
"bairro": "Centro",
"localidade": "Santa Maria",
"uf": "RS"
}
cep
inválido - Erro interno do servidor (500)
{
"mensagem": "Todos os serviços de CEP retornaram erro.",
"erros": [
{
"provedor": "ViaCEP",
"erro": {
"erro": true
}
},
{
"provedor": "Widenet",
"erro": {
"status": 404,
"ok": false,
"message": "CEP não encontrado",
"statusText": "not_found"
}
},
{
"provedor": "Invertexto",
"erro": {
"message": "No results found."
}
}
]
}
GET
http://cancianhosting.ddns.net:3000/api/cep/v1/:cep?provedor=
- Parâmetro Path:
cep
string de tamanho8
com a expressão regular/^[0-9]+$/
. - Parâmetro Query:
provedor
string válida somente com as opçõesviacep
,widenet
einvertexto
. (Opcional)
cep=97010041
e provedor=widenet
- Sucesso (200)
{
"provedor": "Widenet",
"cep": "97010-041",
"logradouro": "Rua André Marques - lado ímpar",
"bairro": "Centro",
"localidade": "Santa Maria",
"uf": "RS"
}
cep
inválido - Erro interno do servidor (500)
{
"mensagem": "O serviço Widenet retornou erro.",
"erros": {
"status": 404,
"ok": false,
"message": "CEP não encontrado",
"statusText": "not_found"
}
}
Informações sobre Cadastro Nacional da Pessoa Jurídica.
GET
http://cancianhosting.ddns.net:3000/api/cnpj/v1/:cnpj
- Parâmetro Path:
cnpj
string de tamanho14
com a expressão regular/^[0-9]+$/
.
cnpj=52429560000160
- Sucesso (200)
{
"provedor": "Minha Receita",
"cnpj": "52429560000160",
"identificadorMatrizFilial": 1,
"descricaoIdentificadorMatrizFilial": "MATRIZ",
"nomeFantasia": "ACOUGUE SAO BENEDITO",
"situacaoCadastral": 8,
"descricaoSituacaoCadastral": "BAIXADA",
"dataSituacaoCadastral": "1988-03-31",
"motivoSituacaoCadastral": 1,
"descricaoMotivoSituacaoCadastral": "EXTINCAO POR ENCERRAMENTO LIQUIDACAO VOLUNTARIA",
"nomeCidadeNoExterior": "",
"codigoPais": null,
"pais": null,
"dataInicioAtividade": "1985-10-15",
"cnaeFiscal": 4722901,
"cnaeFiscalDescricao": "Comércio varejista de carnes - açougues",
"descricaoTipoDeLogradouro": "RUA",
"logradouro": "EUGENIO PAULUCCI",
"numero": "3 79",
"complemento": "",
"bairro": "PS GERALDO",
"cep": "17020700",
"uf": "SP",
"codigoMunicipio": 6219,
"codigoMunicipioIbge": 3506003,
"municipio": "BAURU",
"dddTelefone1": "",
"dddTelefone2": "",
"dddFax": "",
"situacaoEspecial": "",
"dataSituacaoEspecial": null,
"opcaoPeloSimples": null,
"dataOpcaoPeloSimples": null,
"dataExclusaoDoSimples": null,
"opcaoPeloMei": null,
"dataOpcaoPeloMei": null,
"dataExclusaoDoMei": null,
"razaoSocial": "ODAIR SEBASTIAO ZANATA",
"codigoNaturezaJuridica": 2135,
"naturezaJuridica": "Empresário (Individual)",
"qualificacaoDoResponsavel": 50,
"capitalSocial": 0,
"codigoPorte": 5,
"porte": "DEMAIS",
"enteFederativoResponsavel": "",
"descricaoPorte": "",
"cnaesSecundarios": [
{
"codigo": 0,
"descricao": ""
}
]
}
cnpj
inválido - Erro interno do servidor (500)
{
"mensagem": "Todos os serviços de CNPJ retornaram erro.",
"erros": [
{
"provedor": "Minha Receita",
"erro": {
"message": "CNPJ 00.000.000/0000-00 não encontrado."
}
}
]
}
Informações sobre Discagem Direta à Distância.
GET
http://cancianhosting.ddns.net:3000/api/ddd/v1/:prefixo
- Parâmetro Path:
prefixo
string de tamanho2
com a expressão regular/^[0-9]+$/
.
prefixo=55
- Sucesso (200)
{
"provedor": "Anatel",
"uf": "RS",
"cidades": [
"SAO PEDRO DAS MISSÕES",
"SANTANA DO LIVRAMENTO",
"CHIAPETA",
"CAPAO DO CIPO",
"VITÓRIA DAS MISSÕES",
"VISTA GAÚCHA",
"VISTA ALEGRE",
"VILA NOVA DO SUL",
"VICENTE DUTRA",
"URUGUAIANA",
...
]
}
prefixo
inválido - Erro interno do servidor (500)
{
"mensagem": "Todos os serviços de DDD retornaram erro.",
"erros": [
{
"provedor": "Anatel",
"erro": "DDD solicitado não existe ou é inválido."
}
]
}
Informações sobre Feriados Nacionais e Estaduais (somente com o provedor Invertexto).
1. Lista as informações de todos os Feriados Nacionais do respectivo ano utilizando o sistema fallback com múltiplos provedores
GET
http://cancianhosting.ddns.net:3000/api/feriados/v1/:ano
- Parâmetro Path:
ano
string com a expressão regular/^[0-9]+$/
.
ano=2022
- Sucesso (200)
{
"provedor": "Invertexto",
"feriados": [
{
"data": "2022-01-01",
"nome": "Confraternização Universal",
"tipo": "feriado",
"nivel": "nacional"
},
{
"data": "2022-02-28",
"nome": "Carnaval",
"tipo": "facultativo",
"nivel": "nacional"
},
...
]
}
ano
inválido - Erro interno do servidor (500)
{
"mensagem": "Todos os serviços de Feriados Nacionais retornaram erro.",
"erros": [
{
"provedor": "Invertexto",
"erro": {
"message": "Server Error"
}
},
{
"provedor": "Brasil API",
"erro": {
"message": "Erro ao calcular feriados.",
"type": "feriados_error",
"name": "InternalError"
}
}
]
}
2. Lista as informações de todos os Feriados Nacionais do respectivo ano especificando o estado e o provedor
GET
http://cancianhosting.ddns.net:3000/api/feriados/v1/:ano?uf=&provedor=
- Parâmetro Path:
ano
string com a expressão regular/^[0-9]+$/
. - Parâmetro Query:
provedor
string válida somente com as opçõesinvertexto
ebrasilapi
. (Opcional)
Somente com o provedor Invertexto:
- Parâmetro Query:
uf
string válida somente com uma Unidade Federativa (em maiúsculo). (Opcional)
ano=2022
, uf=RS
e provedor=invertexto
- Sucesso (200)
{
"provedor": "Invertexto",
"feriados": [
...
{
"data": "2022-09-20",
"nome": "Dia do Gaúcho",
"tipo": "feriado",
"nivel": "estadual",
"lei": "Art. 6, parágrafo único da constituição estadual"
},
{
"data": "2022-10-12",
"nome": "Nossa Senhora Aparecida",
"tipo": "feriado",
"nivel": "nacional"
},
...
]
}
ano
inválido - Erro interno do servidor (500)
{
"mensagem": "O serviço Invertexto retornou erro.",
"erros": {
"message": "Server Error"
}
}
Informações sobre Geolocalização por IP.
GET
http://cancianhosting.ddns.net:3000/api/geoIp/v1/:ip
- Parâmetro Path:
ip
string válida somente com o formatoIPv4
ouIPv6
.
ip=187.181.173.114
- Sucesso (200)
{
"provedor": "Invertexto",
"cidade": null,
"pais": "Brasil",
"codigoPais": "BR",
"continente": "América do Sul",
"fusoHorario": "America/Sao_Paulo",
"latitude": -29.7766,
"longitude": -53.8354
}
ip
inválido - Erro interno do servidor (500)
{
"mensagem": "Todos os serviços de GeoIp retornaram erro.",
"erros": [
{
"provedor": "Invertexto",
"erro": {
"messsage": "No results found."
}
}
]
}
Informações sobre o Instituto Brasileiro de Geografia e Estatística referente aos estados.
GET
http://cancianhosting.ddns.net:3000/api/ibge/estados/v1
Sucesso (200)
{
"provedor": "Ibge",
"estados": [
{
"id": 11,
"sigla": "RO",
"nome": "Rondônia",
"regiao": {
"id": 1,
"sigla": "N",
"nome": "Norte"
}
},
{
"id": 12,
"sigla": "AC",
"nome": "Acre",
"regiao": {
"id": 1,
"sigla": "N",
"nome": "Norte"
}
},
...
]
}
GET
http://cancianhosting.ddns.net:3000/api/ibge/estados/v1?uf=
- Parâmetro Query:
uf
string válida somente com uma Unidade Federativa (em maiúsculo). (Opcional)
uf=RS
- Sucesso (200)
{
"provedor": "Ibge",
"estados": [
{
"id": 43,
"sigla": "RS",
"nome": "Rio Grande do Sul",
"regiao": {
"id": 4,
"sigla": "S",
"nome": "Sul"
}
}
]
}
Informações sobre o Instituto Brasileiro de Geografia e Estatística referente aos municípios de cada estado.
GET
http://cancianhosting.ddns.net:3000/api/ibge/municipios/v1/:uf
- Parâmetro Path:
uf
string válida somente com uma Unidade Federativa (em maiúsculo).
uf=RS
- Sucesso (200)
{
"provedor": "Ibge",
"municipios": [
{
"codigoIbge": 4300034,
"nome": "Aceguá"
},
{
"codigoIbge": 4300059,
"nome": "Água Santa"
},
{
"codigoIbge": 4300109,
"nome": "Agudo"
},
{
"codigoIbge": 4300208,
"nome": "Ajuricaba"
},
{
"codigoIbge": 4300307,
"nome": "Alecrim"
},
...
]
}