Consulta de CNPJ
Envie o CNPJ e receba os dados cadastrais da empresa: razão social, nome fantasia, situação cadastral, endereço, CNAE, porte, Simples Nacional/MEI e quadro de sócios (QSA). Custa 1 crédito por CNPJ encontrado, como a Consulta Simples de CPF.
Usando Cursor, Lovable, v0 ou outra IA? Copie o prompt da Consulta de CNPJ e cole no seu assistente.
Muitos CNPJs de uma vez? Use a Consulta de CNPJ em Lote. Sem código, o dashboard consulta um CNPJ por vez e guarda o resultado no Histórico.
Endpoint
https:/ / api.cpfhub.io/ cnpj/ {cnpj}Parâmetros
| Onde | Nome | Obrigatório | Descrição |
|---|---|---|---|
| Path | cnpj | Sim | CNPJ com ou sem formatação: 11222333000181 ou 11.222.333/0001-81. Aceita o CNPJ alfanumérico (veja abaixo). |
| Header | x-api-key | Sim | Sua API Key. Veja Autenticação. |
CNPJ alfanumérico
A API aceita o novo formato de CNPJ alfanumérico, que a Receita Federal começou a emitir em julho de 2026: 12 caracteres com letras (A a Z) e números, seguidos de 2 dígitos verificadores numéricos. Exemplo fictício: 12ABC34501DE35 (ou 12.ABC.345/01DE-35).
- Letras minúsculas são convertidas para maiúsculas.
- Pontos, barra e traço são removidos antes da validação.
- O dígito verificador é conferido nos dois formatos. Sequências repetidas como
00000000000000são recusadas. - Guarde o CNPJ como texto no seu banco, nunca como número.
Exemplo
Os exemplos leem a chave de CPFHUB_API_KEY, tratam o 404 como resultado normal e usam timeout de 10 s.
curl --max-time 10 "https://api.cpfhub.io/cnpj/11222333000181" \
-H "x-api-key: $CPFHUB_API_KEY"Resposta
HTTP 200 OK
{
"success": true,
"data": {
"cnpj": "11222333000181",
"razao_social": "EMPRESA EXEMPLO LTDA",
"nome_fantasia": "EXEMPLO",
"situacao_cadastral": "Ativa",
"data_situacao_cadastral": "2015-03-10",
"matriz_filial": "Matriz",
"data_inicio_atividade": "2015-03-10",
"cnae_principal": "6201501",
"cnaes_secundarios": ["6204000", "6311900"],
"codigo_natureza_juridica": "2062",
"natureza_juridica": "Sociedade Empresária Limitada",
"tipo_logradouro": "RUA",
"logradouro": "DAS FLORES",
"numero": "100",
"complemento": "SALA 1",
"bairro": "CENTRO",
"cep": "01001000",
"uf": "SP",
"municipio": "SAO PAULO",
"email": "contato@example.com",
"telefones": [
{ "ddd": "11", "numero": "00000000", "is_fax": false }
],
"capital_social": "100000,00",
"porte_empresa": "Microempresa (ME)",
"opcao_simples": "S",
"data_opcao_simples": "2015-03-10",
"opcao_mei": "N",
"data_opcao_mei": null,
"QSA": [
{
"nome_socio": "FULANO DE TAL",
"cnpj_cpf_socio": "***.456.789-**",
"qualificacao_socio": "Sócio-Administrador",
"data_entrada_sociedade": "2015-03-10",
"identificador_socio": "Pessoa Física",
"faixa_etaria": "31 a 40 anos"
}
]
}
}Os campos vêm da base pública do CNPJ e são, em geral, string. Datas usam AAAA-MM-DD. Campo vazio pode vir como "".
| Campo | Tipo | Descrição |
|---|---|---|
data.cnpj | string | CNPJ consultado, 14 caracteres sem máscara |
data.razao_social | string | Razão social |
data.nome_fantasia | string | Nome fantasia. Pode vir vazio |
data.situacao_cadastral | string | "Ativa", "Baixada", "Inapta", "Suspensa" ou "Nula" |
data.data_situacao_cadastral | string | null | Data da situação cadastral atual |
data.matriz_filial | string | "Matriz" ou "Filial" |
data.data_inicio_atividade | string | null | Data de abertura |
data.cnae_principal | string | CNAE principal, 7 dígitos |
data.cnaes_secundarios | string[] | CNAEs secundários, 7 dígitos cada |
data.codigo_natureza_juridica, data.natureza_juridica | string | Código (4 dígitos) e descrição da natureza jurídica |
data.tipo_logradouro, data.logradouro, data.numero, data.complemento, data.bairro | string | Endereço do estabelecimento |
data.cep | string | CEP, 8 dígitos sem máscara |
data.uf, data.municipio | string | Estado (sigla) e município |
data.email | string | E-mail cadastrado na Receita. Pode vir vazio |
data.telefones[] | object[] | ddd, numero e is_fax (boolean) |
data.capital_social | string | Capital social com vírgula decimal: "100000,00" |
data.porte_empresa | string | "Microempresa (ME)", "Empresa de Pequeno Porte (EPP)", "Demais" ou "Não informado" |
data.opcao_simples, data.opcao_mei | string | "S", "N" ou "" (sem informação) |
data.data_opcao_simples, data.data_opcao_mei | string | null | Data da opção pelo Simples Nacional e pelo MEI |
data.QSA[] | object[] | Quadro de sócios e administradores (abaixo) |
data.lgpd_anonimizado | boolean | Só aparece quando o titular pediu anonimização. Alguns campos vêm ocultos |
Cada item de data.QSA:
| Campo | Descrição |
|---|---|
nome_socio | Nome do sócio (pessoa ou empresa) |
cnpj_cpf_socio | CNPJ do sócio pessoa jurídica. Para pessoa física, o CPF vem sempre mascarado: ***.456.789-** |
qualificacao_socio | Qualificação, por exemplo "Sócio-Administrador" |
data_entrada_sociedade | Data de entrada na sociedade, ou null |
identificador_socio | "Pessoa Física", "Pessoa Jurídica" ou "Estrangeiro" |
faixa_etaria | Faixa etária do sócio |
- Datas vazias ou
0000-00-00na base de origem chegam comonull. - A resposta pode ganhar campos novos. Ignore campos que o seu código não conhece.
Erros
| Status | Quando acontece | O que fazer |
|---|---|---|
400 | CNPJ com formato inválido ou dígito verificador incorreto ("CNPJ inválido. Formato ou dígito verificador incorreto.") | Corrija o CNPJ. Não repita. Não consome crédito. |
401 | API Key ausente, inválida ou inativa (error string) | Confira o header x-api-key. |
403 | Créditos esgotados sem overage ("Limite de créditos excedido", em geral com error string, às vezes em error.message) ou conta inativa/bloqueada (error string) | Recarregue créditos ou fale com o suporte. Não repita. |
404 | CNPJ não encontrado na base ("CNPJ não encontrado na base de dados") | Resultado normal. Não consome crédito. |
429 | Limite por minuto excedido, compartilhado com a Consulta Simples de CPF (30/min no padrão) | Espere os segundos do header Retry-After. Não consome crédito. |
503 | Base de CNPJ indisponível ("cnpj_unavailable") ou falha passageira ao reservar créditos ou registrar a consulta | Repita com espera crescente (2 s, 4 s, 8 s). Não consome crédito. |
Formato do erro e retentativas: Códigos de Erro. Limite por minuto e créditos: Limites de Uso.
Detalhes
- Custo: 1 crédito por CNPJ encontrado (
200), o mesmo custo da Consulta Simples de CPF e da mesma franquia do plano. Alguns planos têm custo próprio: consulte o do seu plano no dashboard.400,404,429e503não consomem crédito. - Limite por minuto: a Consulta de CNPJ e a Consulta Simples de CPF dividem o mesmo limite por API Key (30 requisições por minuto no padrão, somando as duas).
- Fonte dos dados: base pública do CNPJ publicada pela Receita Federal (Dados Abertos do CNPJ), atualizada mensalmente e tratada pelo projeto OpenCNPJ (licença MIT). A CPFHub.io não consulta a Receita em tempo real para CNPJ: um registro pode estar defasado até a próxima atualização mensal. Não existe Consulta em Tempo Real de CNPJ.
- Sócios pessoa física: o CPF do sócio vem sempre mascarado. A API não devolve CPF completo de sócios.
- Histórico: as consultas de CNPJ aparecem no Histórico do dashboard, junto com as de CPF.
- Timeout do cliente: a consulta pode ter sido concluída e cobrada no servidor. Repetir cobra de novo.
- Dados de exemplo: o CNPJ
11222333000181, o CNPJ alfanumérico12ABC34501DE35e os dados acima são fictícios.
Atualizado em 15 de outubro de 2026