CNPJ ativo, inscrição estadual suspensa: por que os cadastros divergem
CNPJ ATIVA na Receita não diz nada sobre a inscrição estadual. São dois cadastros, de dois governos. O estado pode suspender a IE com o CNPJ ativo, e quem confere só o CNPJ descobre na rejeição da nota.
Por que divergem#
- Donos diferentes. O CNPJ é da Receita Federal. A IE é da SEFAZ de cada estado, com regras e prazos próprios para suspender, baixar ou reativar.
- Um CNPJ, vários estados. A filial tem CNPJ e IE próprios. E um CNPJ pode ter IE de substituto tributário em outro estado. Veja a IE do CNPJ em todos os estados.
- Tempo. A consulta de CNPJ padrão usa a base pública mensal da Receita e pode estar até um mês atrás. A consulta ao vivo traz o dado do momento. Veja por que a consulta de CNPJ fica desatualizada.
O que cada consulta responde#
| Pergunta | Consulta de CNPJ | Consulta de IE |
|---|---|---|
| A empresa existe e está ativa na Receita? | Sim (situacao_cadastral) | Não |
| Tem IE neste estado? | Não | Sim |
| A IE está habilitada? | Não | Sim (situacao_ie) |
| Pode receber mercadoria na UF? | Não | Sim (situacao_contribuinte) |
| Razão social, CNAE, sócios | Sim | Razão social e CNAE da inscrição |
O que a SEFAZ confere na nota#
As duas coisas:
- O CNPJ na Receita. A partir de 16/11/2026, a NT 2026.007 rejeita NF-e para destinatário com CNPJ não cadastrado (181) ou fora da situação Ativa (182). Veja o que muda com a NT 2026.007.
- A IE no cadastro do estado. IE não habilitada: rejeição 306. IE de outro CNPJ: 234. Destinatário vedado ou bloqueado: 302 e 305.
Conferir só um dos dois deixa metade das recusas passar.
A consulta combinada (JavaScript)#
Duas chamadas em paralelo, uma decisão:
const BASE = "https://api.fiscalapi.com.br/api";
async function consultar(rota, params) {
const resp = await fetch(`${BASE}/${rota}?${new URLSearchParams(params)}`, {
headers: { "X-API-Key": process.env.FISCALAPI_KEY }, // só no servidor
signal: AbortSignal.timeout(100_000),
});
return { status: resp.status, dados: resp.ok ? await resp.json() : null };
}
const norm = (s) => (s ?? "").trim().toLowerCase();
export async function conferirCliente(cnpj, uf) {
const [rf, sefaz] = await Promise.all([
consultar("consultar-cnpj", { cnpj }),
consultar("consultar", { uf, cnpj }),
]);
if (rf.status === 404) return { diagnostico: "cnpj_nao_encontrado" };
if (rf.status !== 200 || sefaz.status !== 200 || rf.dados.source_status.status !== "success") {
return { diagnostico: "pendente", http: [rf.status, sefaz.status] }; // 429, 5xx: tente depois
}
const situacaoRf = rf.dados.result.situacao_cadastral;
if (norm(situacaoRf) !== "ativa") return { diagnostico: "cnpj_inativo", situacaoRf };
const ies = sefaz.dados.results;
if (ies.length === 0) return { diagnostico: "sem_ie_na_uf" };
const restrita = ies.find((i) => /vedad|bloquead/.test(norm(i.situacao_contribuinte)));
if (restrita) return { diagnostico: "restricao_destinatario", detalhe: restrita.situacao_contribuinte };
const habilitada = ies.find((i) => norm(i.situacao_ie) === "habilitado");
if (!habilitada) return { diagnostico: "cnpj_ativo_ie_nao_habilitada", ies };
return { diagnostico: "ok", ie: habilitada.inscricao_estadual };
} Cada chamada conta 1 consulta. Com force_fresh: "true" na consulta de CNPJ, o dado vem ao vivo e conta 3.
O que fazer com cada diagnóstico#
| Diagnóstico | Ação sugerida |
|---|---|
| ok | Faturar com a IE devolvida |
| cnpj_ativo_ie_nao_habilitada | Bloquear o faturamento com IE. O cliente regulariza na SEFAZ. Em GO, situacao_cadastral diz se está suspensa ou baixada |
| restricao_destinatario | Bloquear |
| sem_ie_na_uf | Decidir o indIEDest com o fiscal. Veja cliente é contribuinte do ICMS? |
| cnpj_inativo ou cnpj_nao_encontrado | Bloquear. Confirme o CNPJ com o cliente |
| pendente | Consultar de novo. Não gravar como "sem IE" |
Para decidir se vale vender ao cliente com IE suspensa, veja cliente com inscrição estadual suspensa.
Perguntas frequentes#
Uma API de CNPJ não basta? Não. Ela responde pela Receita. A situação da IE está no cadastro de cada estado.
A IE pode estar ativa com o CNPJ baixado? Os cadastros são independentes e podem ficar desencontrados por um tempo. Por isso a consulta combinada confere os dois.
Consulto pela UF do endereço do CNPJ? Pela UF do estabelecimento que vai receber a nota. O endereço vem em endereco.uf na consulta de CNPJ.
Onde testo sem código? Na consulta de CNPJ e na consulta de inscrição estadual. Contas que nunca assinaram têm 10 consultas grátis por mês no painel, com e-mail confirmado.
Fontes#
- Nota Técnica 2026.007 v1.10 (PDF), Portal da NF-e: rejeições 181 e 182
- MOC 7.0, Anexo I: Leiaute e Regras de Validação da NF-e e da NFC-e (PDF), Confaz: regras 5E17-10 a 5E17-63
- Consultar CNPJ e Consultar IE por UF, documentação da FiscalAPI
Artigos relacionados#
Consulte dados fiscais via API
Consulte Inscrições Estaduais, CNPJs e Certidões Negativas via API REST. Dados direto da SEFAZ e Receita Federal. Planos a partir de R$ 19,99/mês.
Criar conta →