Migrar da ReceitaWS para a CNPJAPI

Já integra a ReceitaWS? A CNPJAPI responde no mesmo formato, campo a campo. A migração é drop-in: troque o host da chamada e o seu código de leitura do JSON continua igual. Este guia mostra o passo a passo.

O que muda (e o que não muda)

  • Muda o host: www.receitaws.com.br vira api.cnpjapi.com.br.
  • Muda a autenticação: a CNPJAPI exige a sua API key no cabeçalho Authorization: Bearer. Crie a conta em https://app.cnpjapi.com.br e gere a chave (veja Autenticação).
  • Não muda o corpo do JSON: os mesmos nomes de campo, no mesmo lugar (nome, fantasia, situacao, atividade_principal, qsa, ...). O seu parser não muda.

Passo a passo

Antes (ReceitaWS)

curl https://www.receitaws.com.br/v1/cnpj/00776574000156

Depois (CNPJAPI)

curl https://api.cnpjapi.com.br/v1/cnpj/00776574000156 \
  -H "Authorization: Bearer cnpj_sua_chave"

O caminho GET /v1/cnpj/{cnpj} espelha a URL da ReceitaWS - migrar é trocar o host e acrescentar o cabeçalho. Como alternativa, o endpoint canônico aceita GET /{cnpj}?formato=receitaws, com a mesma resposta compatível.

Exemplo em código

Os exemplos Node usam fetch nativo (Node 18+) e await no nível superior - rode como módulo ES (arquivo .mjs, ou "type": "module" no package.json), ou envolva o código numa função async.

Node.js (só o host e o cabeçalho mudam em relação ao seu código atual):

const cnpj = "00776574000156";
const resposta = await fetch(`https://api.cnpjapi.com.br/v1/cnpj/${cnpj}`, {
  headers: { Authorization: "Bearer cnpj_sua_chave" },
});
const empresa = await resposta.json();
console.log(empresa.nome, empresa.situacao); // mesmos campos da ReceitaWS

Python:

import requests

cnpj = "00776574000156"
r = requests.get(
    f"https://api.cnpjapi.com.br/v1/cnpj/{cnpj}",
    headers={"Authorization": "Bearer cnpj_sua_chave"},
)
empresa = r.json()
print(empresa["nome"], empresa["situacao"])  # mesmos campos da ReceitaWS

Pontos de atenção

A meta é paridade de propriedades - os mesmos nomes de campo, no mesmo lugar. Alguns detalhes herdados da ReceitaWS:

  • status vem "OK" no sucesso e "ERROR" no erro ({"status":"ERROR","message":"..."}).
  • atividades_secundarias sem itens traz a sentinela [{"code":"00.00-0-00","text":"Não informada"}], igual à ReceitaWS.
  • simples e simei vêm sempre presentes (campos false/null quando a empresa não é optante).
  • O campo proprietário billing da ReceitaWS é omitido.
  • Ao exceder o limite, a resposta é 429 com o cabeçalho Retry-After (veja Limites e planos).

A tabela completa de diferenças está em Compatível com a ReceitaWS.

Consulta em lote

O modo compatível também vale para o lote - até 20 CNPJs numa só chamada, no mesmo formato. Veja Consultar em lote.

Próximos passos

Crie sua conta gratuita em https://app.cnpjapi.com.br e migre da ReceitaWS trocando só o host.