#
Guia Rápido
O objetivo deste guia é que entenda de forma objetiva o que faz nossa API, e comece em poucos minutos a fazer consultas!
Abordaremos apenas uma pequena parcela de tudo que ela é capaz, se você gostar do conteúdo recomendamos a leitura da documentação completa.
#
Chave de API
A Chave de API é a forma mais simples de autenticar-se, porém também suportamos JWT.
Acesse a página de sua conta em nossa plataforma para visualizar sua Chave de API, caso ainda não tenha registro você será guiado no processo de criação:
Ao registrar-se você estará no plano gratuito, que oferece consultas e créditos suficientes para iniciar seus testes da API.
Após acessar o link acima, copie sua chave para utilizar no próximo passo, o formato dela é similar a:
27e4642e-34d1-4ff3-bc26-e34321d96326-fc7abaae-a96c-4e63-b52e-33fb48526dac
#
Receita Federal
Consultas online debitam o seu saldo em créditos, entenda o modelo de cobrança em Créditos e Limites.
#
Dados de Cadastro
Neste primeiro exemplo iremos obter os dados de um estabelecimento na Receita Federal.
Escolha a linguagem de sua preferência a seguir e substitua o termo sua-chave-de-api
pelo valor que obteve no passo anterior.
Aqui vamos usar o nosso CNPJ, mas fique a vontade para alterá-lo a outro de sua preferência!
curl --location --request GET 'https://api.cnpja.com/office/37335118000180' \
--header 'Authorization: sua-chave-de-api'
$headers = New-Object "System.Collections.Generic.Dictionary[[String],[String]]"
$headers.Add("Authorization", "sua-chave-de-api")
$response = Invoke-RestMethod 'https://api.cnpja.com/office/37335118000180' -Method 'GET' -Headers $headers
$response | ConvertTo-Json
OkHttpClient client = new OkHttpClient().newBuilder()
.build();
Request request = new Request.Builder()
.url("https://api.cnpja.com/office/37335118000180")
.method("GET", null)
.addHeader("Authorization", "sua-chave-de-api")
.build();
Response response = client.newCall(request).execute();
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://api.cnpja.com/office/37335118000180',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_HTTPHEADER => array(
'Authorization: sua-chave-de-api'
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
const axios = require('axios');
const config = {
method: 'get',
url: 'https://api.cnpja.com/office/37335118000180',
headers: {
'Authorization': 'sua-chave-de-api'
}
};
axios(config)
.then(function (response) {
console.log(JSON.stringify(response.data));
})
.catch(function (error) {
console.log(error);
});
const settings = {
"url": "https://api.cnpja.com/office/37335118000180",
"method": "GET",
"timeout": 0,
"headers": {
"Authorization": "sua-chave-de-api"
},
};
$.ajax(settings).done(function (response) {
console.log(response);
});
import http.client
conn = http.client.HTTPSConnection("api.cnpja.com")
payload = ''
headers = {
'Authorization': 'sua-chave-de-api'
}
conn.request("GET", "/office/37335118000180", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
Esta consulta retorna os dados de cadastro, includindo situação, endereço, contatos, atividades econômicas e quadro de sócios.
Ao ser concluída com sucesso o JSON de retorno irá iniciar com:
{
"updated": "2021-07-17T14:46:27Z",
"taxId": "37335118000180",
"alias": "CNPJA",
"founded": "2020-06-05",
"head": true,
"company": {
"id": 37335118,
"name": "CNPJA TECNOLOGIA LTDA",
"equity": 1000,
// Demais informações da empresa...
},
// Demais informações do estabelecimento...
}
A fim de manter o guia sucinto, não iremos abordar todos os campos aqui, para conhecer detalhadamente cada propriedade do retorno acesse:
Armazene o resultado desta e demais consultas no guia, pois ao término explicarmos sobre nosso cache.
#
Comprovante em PDF
Para emitir o comprovante em PDF referente a consulta acima, vamos substituir a rota /office/{cnpj}
por /rfb/certificate?taxId={cnpj}
:
curl --location --request GET 'https://api.cnpja.com/rfb/certificate?taxId=37335118000180' \
--header 'Authorization: sua-chave-de-api'
$headers = New-Object "System.Collections.Generic.Dictionary[[String],[String]]"
$headers.Add("Authorization", "sua-chave-de-api")
$response = Invoke-RestMethod 'https://api.cnpja.com/rfb/certificate?taxId=37335118000180' -Method 'GET' -Headers $headers
$response | ConvertTo-Json
OkHttpClient client = new OkHttpClient().newBuilder()
.build();
Request request = new Request.Builder()
.url("https://api.cnpja.com/rfb/certificate?taxId=37335118000180")
.method("GET", null)
.addHeader("Authorization", "sua-chave-de-api")
.build();
Response response = client.newCall(request).execute();
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://api.cnpja.com/rfb/certificate?taxId=37335118000180',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_HTTPHEADER => array(
'Authorization: sua-chave-de-api'
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
const axios = require('axios');
const config = {
method: 'get',
url: 'https://api.cnpja.com/rfb/certificate?taxId=37335118000180',
headers: {
'Authorization': 'sua-chave-de-api'
}
};
axios(config)
.then(function (response) {
console.log(JSON.stringify(response.data));
})
.catch(function (error) {
console.log(error);
});
const settings = {
"url": "https://api.cnpja.com/rfb/certificate?taxId=37335118000180",
"method": "GET",
"timeout": 0,
"headers": {
"Authorization": "sua-chave-de-api"
},
};
$.ajax(settings).done(function (response) {
console.log(response);
});
import http.client
conn = http.client.HTTPSConnection("api.cnpja.com")
payload = ''
headers = {
'Authorization': 'sua-chave-de-api'
}
conn.request("GET", "/rfb/certificate?taxId=37335118000180", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
Os comprovantes são emitidos sempre em tempo real, o retorno será o buffer de um arquivo PDF, exemplo:
#
Simples Nacional
Ao habilitar você está sujeito a uma cobrança adicional de créditos.
#
Opção e Enquadramento
A consulta anterior retornou os dados do cadastro na Receita, entretanto não contém as informações de regime do Simples Nacional e SIMEI.
Isto ocorre pois a aquisição em tempo real destas informações originam de locais diferentes, e estão sujeitas a adicionais custos de automação em nossa plataforma.
Para receber os dados do Simples, repita a consulta anterior adicionando o parâmetro: simples=true
.
curl --location --request GET 'https://api.cnpja.com/office/37335118000180?simples=true' \
--header 'Authorization: sua-chave-de-api'
$headers = New-Object "System.Collections.Generic.Dictionary[[String],[String]]"
$headers.Add("Authorization", "sua-chave-de-api")
$response = Invoke-RestMethod 'https://api.cnpja.com/office/37335118000180?simples=true' -Method 'GET' -Headers $headers
$response | ConvertTo-Json
OkHttpClient client = new OkHttpClient().newBuilder()
.build();
Request request = new Request.Builder()
.url("https://api.cnpja.com/office/37335118000180?simples=true")
.method("GET", null)
.addHeader("Authorization", "sua-chave-de-api")
.build();
Response response = client.newCall(request).execute();
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://api.cnpja.com/office/37335118000180?simples=true',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_HTTPHEADER => array(
'Authorization: sua-chave-de-api'
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
const axios = require('axios');
const config = {
method: 'get',
url: 'https://api.cnpja.com/office/37335118000180?simples=true',
headers: {
'Authorization': 'sua-chave-de-api'
}
};
axios(config)
.then(function (response) {
console.log(JSON.stringify(response.data));
})
.catch(function (error) {
console.log(error);
});
const settings = {
"url": "https://api.cnpja.com/office/37335118000180?simples=true",
"method": "GET",
"timeout": 0,
"headers": {
"Authorization": "sua-chave-de-api"
},
};
$.ajax(settings).done(function (response) {
console.log(response);
});
import http.client
conn = http.client.HTTPSConnection("api.cnpja.com")
payload = ''
headers = {
'Authorization': 'sua-chave-de-api'
}
conn.request("GET", "/office/37335118000180?simples=true", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
Observe que novas informações foram adicionadas ao mesmo retorno do exemplo anterior:
{
"updated": "2021-07-17T14:46:27Z",
"taxId": "37335118000180",
"alias": "CNPJA",
"founded": "2020-06-05",
"head": true,
"company": {
"id": 37335118,
"name": "CNPJA TECNOLOGIA LTDA",
"equity": 1000,
// Informações do Simples e SIMEI:
"simples": {
"optant": true,
"since": "2020-06-05"
},
"simei": {
"optant": false,
"since": null
},
// Demais informações da empresa...
},
// Demais informações do estabelecimento...
}
#
Histórico de Períodos
Também é possível trazer o histórico de períodos adicionando o parâmetro simplesHistory=true
:
curl --location --request GET 'https://api.cnpja.com/office/37335118000180?simples=true&simplesHistory=true' \
--header 'Authorization: sua-chave-de-api'
$headers = New-Object "System.Collections.Generic.Dictionary[[String],[String]]"
$headers.Add("Authorization", "sua-chave-de-api")
$response = Invoke-RestMethod 'https://api.cnpja.com/office/37335118000180?simples=true&simplesHistory=true' -Method 'GET' -Headers $headers
$response | ConvertTo-Json
OkHttpClient client = new OkHttpClient().newBuilder()
.build();
Request request = new Request.Builder()
.url("https://api.cnpja.com/office/37335118000180?simples=true&simplesHistory=true")
.method("GET", null)
.addHeader("Authorization", "sua-chave-de-api")
.build();
Response response = client.newCall(request).execute();
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://api.cnpja.com/office/37335118000180?simples=true&simplesHistory=true',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_HTTPHEADER => array(
'Authorization: sua-chave-de-api'
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
const axios = require('axios');
const config = {
method: 'get',
url: 'https://api.cnpja.com/office/37335118000180?simples=true&simplesHistory=true',
headers: {
'Authorization': 'sua-chave-de-api'
}
};
axios(config)
.then(function (response) {
console.log(JSON.stringify(response.data));
})
.catch(function (error) {
console.log(error);
});
const settings = {
"url": "https://api.cnpja.com/office/37335118000180?simples=true&simplesHistory=true",
"method": "GET",
"timeout": 0,
"headers": {
"Authorization": "sua-chave-de-api"
},
};
$.ajax(settings).done(function (response) {
console.log(response);
});
import http.client
conn = http.client.HTTPSConnection("api.cnpja.com")
payload = ''
headers = {
'Authorization': 'sua-chave-de-api'
}
conn.request("GET", "/office/37335118000180?simples=true&simplesHistory=true", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
Resultando em dados mais enriquecidos nas propriedades simples
e simei
:
"simples": {
"optant": true,
"since": "2022-01-01",
"history": [
{
"from": "2020-01-01",
"until": "2021-12-31",
"text": "Excluída por Ato Administrativo praticado pela Receita Federal do Brasil"
},
{
"from": "2019-01-01",
"until": "2019-12-31",
"text": "Excluída por Ato Administrativo praticado pela Receita Federal do Brasil"
}
]
},
"simei": {
"optant": false,
"since": null,
"history": [
{
"from": "2012-12-26",
"until": "2013-12-31",
"text": "Desenquadrada por Opção do Contribuinte"
}
]
}
#
Comprovante em PDF
Para emitir o comprovante em PDF referente ao Simples Nacional e SIMEI, utilizaremos a rota /simples/certificate?taxId={cnpj}
:
curl --location --request GET 'https://api.cnpja.com/simples/certificate?taxId=37335118000180' \
--header 'Authorization: sua-chave-de-api'
$headers = New-Object "System.Collections.Generic.Dictionary[[String],[String]]"
$headers.Add("Authorization", "sua-chave-de-api")
$response = Invoke-RestMethod 'https://api.cnpja.com/simples/certificate?taxId=37335118000180' -Method 'GET' -Headers $headers
$response | ConvertTo-Json
OkHttpClient client = new OkHttpClient().newBuilder()
.build();
Request request = new Request.Builder()
.url("https://api.cnpja.com/simples/certificate?taxId=37335118000180")
.method("GET", null)
.addHeader("Authorization", "sua-chave-de-api")
.build();
Response response = client.newCall(request).execute();
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://api.cnpja.com/simples/certificate?taxId=37335118000180',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_HTTPHEADER => array(
'Authorization: sua-chave-de-api'
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
const axios = require('axios');
const config = {
method: 'get',
url: 'https://api.cnpja.com/simples/certificate?taxId=37335118000180',
headers: {
'Authorization': 'sua-chave-de-api'
}
};
axios(config)
.then(function (response) {
console.log(JSON.stringify(response.data));
})
.catch(function (error) {
console.log(error);
});
const settings = {
"url": "https://api.cnpja.com/simples/certificate?taxId=37335118000180",
"method": "GET",
"timeout": 0,
"headers": {
"Authorization": "sua-chave-de-api"
},
};
$.ajax(settings).done(function (response) {
console.log(response);
});
import http.client
conn = http.client.HTTPSConnection("api.cnpja.com")
payload = ''
headers = {
'Authorization': 'sua-chave-de-api'
}
conn.request("GET", "/simples/certificate?taxId=37335118000180", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
Assim como na Receita Federal, os comprovantes do Simples Nacional são emitidos sempre em tempo real, exemplo:
#
Inscrições Estaduais
Ao habilitar você está sujeito a uma cobrança adicional de créditos.
#
Número e Habilitação
Outra informação amplamente utilizada, que se encaixa no mesmo cenário explicado no passo anterior, são as Inscrições Estaduais do estabelecimento.
Para adicioná-las, o processo é similar, através do parâmetro: registrations={UFs}
.
Onde UFs
deve ser substituído por uma ou mais siglas separadas por vírgula dos estados que deseja consultar as IEs.
Também é possível utilizar o termo BR
que indica que deseja as IEs de todas as UFs.
Neste exemplo utilizaremos o CNPJ 04.337.168/0001-48 com todas as IEs:
curl --location --request GET 'https://api.cnpja.com/office/04337168000148?registrations=BR' \
--header 'Authorization: sua-chave-de-api'
$headers = New-Object "System.Collections.Generic.Dictionary[[String],[String]]"
$headers.Add("Authorization", "sua-chave-de-api")
$response = Invoke-RestMethod 'https://api.cnpja.com/office/04337168000148?registrations=BR' -Method 'GET' -Headers $headers
$response | ConvertTo-Json
OkHttpClient client = new OkHttpClient().newBuilder()
.build();
Request request = new Request.Builder()
.url("https://api.cnpja.com/office/04337168000148?registrations=BR")
.method("GET", null)
.addHeader("Authorization", "sua-chave-de-api")
.build();
Response response = client.newCall(request).execute();
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://api.cnpja.com/office/04337168000148?registrations=BR',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_HTTPHEADER => array(
'Authorization: sua-chave-de-api'
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
const axios = require('axios');
const config = {
method: 'get',
url: 'https://api.cnpja.com/office/04337168000148?registrations=BR',
headers: {
'Authorization': 'sua-chave-de-api'
}
};
axios(config)
.then(function (response) {
console.log(JSON.stringify(response.data));
})
.catch(function (error) {
console.log(error);
});
const settings = {
"url": "https://api.cnpja.com/office/04337168000148?registrations=BR",
"method": "GET",
"timeout": 0,
"headers": {
"Authorization": "sua-chave-de-api"
},
};
$.ajax(settings).done(function (response) {
console.log(response);
});
import http.client
conn = http.client.HTTPSConnection("api.cnpja.com")
payload = ''
headers = {
'Authorization': 'sua-chave-de-api'
}
conn.request("GET", "/office/04337168000148?registrations=BR", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
O retorno irá conter os detalhes das IEs para os estados escolhidos:
{
"updated": "2021-07-17T14:46:27Z",
"taxId": "04337168000148",
"alias": "MOTO HONDA",
"founded": "1975-07-05",
"head": true,
"company": {
"id": 4337168,
"name": "MOTO HONDA DA AMAZONIA LTDA",
"equity": 1466281857,
// Demais informações da empresa...
},
"registrations": [
{
"state": "RJ",
"number": "91010453",
"enabled": true
},
{
"state": "AM",
"number": "063002280",
"enabled": false
},
{
"state": "RS",
"number": "9000000390",
"enabled": true
},
{
"state": "SE",
"number": "270850953",
"enabled": true
}
]
// Demais informações do estabelecimento...
}
#
Situação Cadastral
Também é possível trazer a situação cadastral e tipo das IEs adicionando o parâmetro registrationsStatus=true
:
curl --location --request GET 'https://api.cnpja.com/office/04337168000148?registrations=BR®istrationsStatus=true' \
--header 'Authorization: sua-chave-de-api'
$headers = New-Object "System.Collections.Generic.Dictionary[[String],[String]]"
$headers.Add("Authorization", "sua-chave-de-api")
$response = Invoke-RestMethod 'https://api.cnpja.com/office/04337168000148?registrations=BR®istrationsStatus=true' -Method 'GET' -Headers $headers
$response | ConvertTo-Json
OkHttpClient client = new OkHttpClient().newBuilder()
.build();
Request request = new Request.Builder()
.url("https://api.cnpja.com/office/04337168000148?registrations=BR®istrationsStatus=true")
.method("GET", null)
.addHeader("Authorization", "sua-chave-de-api")
.build();
Response response = client.newCall(request).execute();
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://api.cnpja.com/office/04337168000148?registrations=BR®istrationsStatus=true',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_HTTPHEADER => array(
'Authorization: sua-chave-de-api'
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
const axios = require('axios');
const config = {
method: 'get',
url: 'https://api.cnpja.com/office/04337168000148?registrations=BR®istrationsStatus=true',
headers: {
'Authorization': 'sua-chave-de-api'
}
};
axios(config)
.then(function (response) {
console.log(JSON.stringify(response.data));
})
.catch(function (error) {
console.log(error);
});
const settings = {
"url": "https://api.cnpja.com/office/04337168000148?registrations=BR®istrationsStatus=true",
"method": "GET",
"timeout": 0,
"headers": {
"Authorization": "sua-chave-de-api"
},
};
$.ajax(settings).done(function (response) {
console.log(response);
});
import http.client
conn = http.client.HTTPSConnection("api.cnpja.com")
payload = ''
headers = {
'Authorization': 'sua-chave-de-api'
}
conn.request("GET", "/office/04337168000148?registrations=BR®istrationsStatus=true", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
Resultando em dados mais enriquecidos na propriedade registrations
:
"registrations": [
{
"number": "91010453",
"state": "RJ",
"enabled": true,
"statusDate": "2005-02-25",
"status": {
"id": 1,
"text": "Sem restrição"
},
"type": {
"id": 2,
"text": "IE Substituto Tributário"
}
},
{
"number": "063002280",
"state": "AM",
"enabled": false,
"statusDate": "2017-05-20",
"status": {
"id": 1,
"text": "Sem restrição"
},
"type": {
"id": 1,
"text": "IE Normal"
}
},
{
"number": "9000000390",
"state": "RS",
"enabled": true,
"statusDate": "2021-01-21",
"status": {
"id": 2,
"text": "Bloqueado como Destinatário na UF"
},
"type": {
"id": 2,
"text": "IE Substituto Tributário"
}
},
{
"state": "SE",
"number": "270850953",
"enabled": true,
"statusDate": "2022-04-22",
"status": {
"id": 3,
"text": "Vedada operação como Destinatário na UF"
},
"type": {
"id": 2,
"text": "IE Substituto Tributário"
}
}
]
#
Localização
Ao habilitar você está sujeito a uma cobrança adicional de créditos.
#
Coordenadas
É possível adicionar a latitude e longitude de um endereço informando o parâmetro geocoding=true
:
curl --location --request GET 'https://api.cnpja.com/office/37335118000180?geocoding=true' \
--header 'Authorization: sua-chave-de-api'
$headers = New-Object "System.Collections.Generic.Dictionary[[String],[String]]"
$headers.Add("Authorization", "sua-chave-de-api")
$response = Invoke-RestMethod 'https://api.cnpja.com/office/37335118000180?geocoding=true' -Method 'GET' -Headers $headers
$response | ConvertTo-Json
OkHttpClient client = new OkHttpClient().newBuilder()
.build();
Request request = new Request.Builder()
.url("https://api.cnpja.com/office/37335118000180?geocoding=true")
.method("GET", null)
.addHeader("Authorization", "sua-chave-de-api")
.build();
Response response = client.newCall(request).execute();
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://api.cnpja.com/office/37335118000180?geocoding=true',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_HTTPHEADER => array(
'Authorization: sua-chave-de-api'
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
const axios = require('axios');
const config = {
method: 'get',
url: 'https://api.cnpja.com/office/37335118000180?geocoding=true',
headers: {
'Authorization': 'sua-chave-de-api'
}
};
axios(config)
.then(function (response) {
console.log(JSON.stringify(response.data));
})
.catch(function (error) {
console.log(error);
});
const settings = {
"url": "https://api.cnpja.com/office/37335118000180?geocoding=true",
"method": "GET",
"timeout": 0,
"headers": {
"Authorization": "sua-chave-de-api"
},
};
$.ajax(settings).done(function (response) {
console.log(response);
});
import http.client
conn = http.client.HTTPSConnection("api.cnpja.com")
payload = ''
headers = {
'Authorization': 'sua-chave-de-api'
}
conn.request("GET", "/office/37335118000180?geocoding=true", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
Resultando na adição das propriedades latitude
e longitude
dentro de address
:
"address": {
"latitude": -23.5774994,
"longitude": -46.6864608,
"municipality": 3550308,
"street": "Avenida Brig Faria Lima",
"number": "2369",
"details": "Conj 1102",
"district": "Jardim Paulistano",
"city": "São Paulo",
"state": "SP",
"zip": "01452922",
"country": {
"id": 76,
"name": "Brasil"
}
}
#
Mapa Aéreo
Oferecemos suporte a gerar mapas aéreos baseados no CNPJ, para tal utilize a rota /office/{cnpj}/map
:
curl --location --request GET 'https://api.cnpja.com/office/37335118000180/map' \
--header 'Authorization: sua-chave-de-api'
$headers = New-Object "System.Collections.Generic.Dictionary[[String],[String]]"
$headers.Add("Authorization", "sua-chave-de-api")
$response = Invoke-RestMethod 'https://api.cnpja.com/office/37335118000180/map' -Method 'GET' -Headers $headers
$response | ConvertTo-Json
OkHttpClient client = new OkHttpClient().newBuilder()
.build();
Request request = new Request.Builder()
.url("https://api.cnpja.com/office/37335118000180/map")
.method("GET", null)
.addHeader("Authorization", "sua-chave-de-api")
.build();
Response response = client.newCall(request).execute();
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://api.cnpja.com/office/37335118000180/map',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_HTTPHEADER => array(
'Authorization: sua-chave-de-api'
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
const axios = require('axios');
const config = {
method: 'get',
url: 'https://api.cnpja.com/office/37335118000180/map',
headers: {
'Authorization': 'sua-chave-de-api'
}
};
axios(config)
.then(function (response) {
console.log(JSON.stringify(response.data));
})
.catch(function (error) {
console.log(error);
});
const settings = {
"url": "https://api.cnpja.com/office/37335118000180/map",
"method": "GET",
"timeout": 0,
"headers": {
"Authorization": "sua-chave-de-api"
},
};
$.ajax(settings).done(function (response) {
console.log(response);
});
import http.client
conn = http.client.HTTPSConnection("api.cnpja.com")
payload = ''
headers = {
'Authorization': 'sua-chave-de-api'
}
conn.request("GET", "/office/37335118000180/map", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
Os mapas são fornecidos pelo Google, portanto estão sujeitos ao tempo de atualização deles.
Somos responsáveis apenas por traduzir o CNPJ ao endereço, exemplo:
#
Visão da Rua
Também é possível gerar a visão da rua baseada no CNPJ, para tal utilize a rota /office/{cnpj}/street
:
curl --location --request GET 'https://api.cnpja.com/office/37335118000180/street' \
--header 'Authorization: sua-chave-de-api'
$headers = New-Object "System.Collections.Generic.Dictionary[[String],[String]]"
$headers.Add("Authorization", "sua-chave-de-api")
$response = Invoke-RestMethod 'https://api.cnpja.com/office/37335118000180/street' -Method 'GET' -Headers $headers
$response | ConvertTo-Json
OkHttpClient client = new OkHttpClient().newBuilder()
.build();
Request request = new Request.Builder()
.url("https://api.cnpja.com/office/37335118000180/street")
.method("GET", null)
.addHeader("Authorization", "sua-chave-de-api")
.build();
Response response = client.newCall(request).execute();
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://api.cnpja.com/office/37335118000180/street',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_HTTPHEADER => array(
'Authorization: sua-chave-de-api'
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
const axios = require('axios');
const config = {
method: 'get',
url: 'https://api.cnpja.com/office/37335118000180/street',
headers: {
'Authorization': 'sua-chave-de-api'
}
};
axios(config)
.then(function (response) {
console.log(JSON.stringify(response.data));
})
.catch(function (error) {
console.log(error);
});
const settings = {
"url": "https://api.cnpja.com/office/37335118000180/street",
"method": "GET",
"timeout": 0,
"headers": {
"Authorization": "sua-chave-de-api"
},
};
$.ajax(settings).done(function (response) {
console.log(response);
});
import http.client
conn = http.client.HTTPSConnection("api.cnpja.com")
payload = ''
headers = {
'Authorization': 'sua-chave-de-api'
}
conn.request("GET", "/office/37335118000180/street", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
Assim como o mapa aéreo, a imagem é fornecida pelo Google, e está sujeita ao tempo de atualização deles.
Exemplo:
#
Cache e Online
Consultas em cache não consomem créditos, eles são debitados apenas para as em tempo real.
As consultas anteriores retornaram uma propriedade updated
, com estampa de tempo em UTC.
Em comparação com o horário brasileiro este valor é 3 horas a frente, ou seja, no exemplo a seguir:
"updated": "2021-07-17T14:46:27Z"
Significa que os dados foram atualizados 17 de julho de 2021 às 11:56 no Brasil.
Agora, resgate qualquer um dos resultados dos passos anteriores e confira o valor em updated
:
Se ele for menor que a data e hora atual
A consulta foi realizada em Cache e não consumiu créditos, apenas contou para sua taxa por minuto.
Se ele for igual a data e hora atual
A consulta foi realizada Online e consumiu tanto seus créditos como contou para sua taxa por minuto.
Por padrão, o máximo valor em updated
será uma data até 30 dias atrás. Entretanto, você pode controlar este valor como preferir utilizando o parâmetro de query maxAge=dias
.
Para testar este comportamento, faça uma consulta com um CNPJ diferente, e adicione maxAge
como 365
(1 ano):
curl --location --request GET 'https://api.cnpja.com/office/seu-cnpj?maxAge=365' \
--header 'Authorization: sua-chave-de-api'
$headers = New-Object "System.Collections.Generic.Dictionary[[String],[String]]"
$headers.Add("Authorization", "sua-chave-de-api")
$response = Invoke-RestMethod 'https://api.cnpja.com/office/seu-cnpj?maxAge=365' -Method 'GET' -Headers $headers
$response | ConvertTo-Json
OkHttpClient client = new OkHttpClient().newBuilder()
.build();
Request request = new Request.Builder()
.url("https://api.cnpja.com/office/seu-cnpj?maxAge=365")
.method("GET", null)
.addHeader("Authorization", "sua-chave-de-api")
.build();
Response response = client.newCall(request).execute();
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://api.cnpja.com/office/seu-cnpj?maxAge=365',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_HTTPHEADER => array(
'Authorization: sua-chave-de-api'
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
const axios = require('axios');
const config = {
method: 'get',
url: 'https://api.cnpja.com/office/seu-cnpj?maxAge=365',
headers: {
'Authorization': 'sua-chave-de-api'
}
};
axios(config)
.then(function (response) {
console.log(JSON.stringify(response.data));
})
.catch(function (error) {
console.log(error);
});
const settings = {
"url": "https://api.cnpja.com/office/seu-cnpj?maxAge=365",
"method": "GET",
"timeout": 0,
"headers": {
"Authorization": "sua-chave-de-api"
},
};
$.ajax(settings).done(function (response) {
console.log(response);
});
import http.client
conn = http.client.HTTPSConnection("api.cnpja.com")
payload = ''
headers = {
'Authorization': 'sua-chave-de-api'
}
conn.request("GET", "/office/seu-cnpj?maxAge=365", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
Desta forma, há uma alta probabilidade da consulta ser concluída em Cache, ou seja, com updated
retroativo. Se isto não ocorrer, escolha outro CNPJ até encontrar um exemplo.
Por fim, realize a mesma consulta trocando maxAge=365
por maxAge=1
, você irá observar que o tempo de resposta será maior, porém desta vez a estampa de tempo de retorna será a hora atual e os dados estarão atualizados.
O cenário que testamos é apenas uma amostra de tudo o que o controle de cache é capaz, para conhecer mais a respeito acesse: