Rejeição 180 na NF-e: conferir o regime tributário (CRT) do emitente

A partir de 16/11/2026, a SEFAZ compara o CRT (Código de Regime Tributário) informado na NF-e e na NFC-e com o regime do CNPJ do emitente na base da Receita Federal (a LCC-RFB, que a Receita repassa às SEFAZ). Se não baterem, a nota volta com a rejeição 180. A regra é da Nota Técnica 2026.007, a mesma das rejeições 181 e 182 do destinatário.

O CRT vai no XML da nota, mas vem do cadastro do emitente no ERP ou no emissor: em geral a empresa mudou de regime e o cadastro continua com o CRT antigo. Este guia mostra o que fazer, qual CRT corresponde a cada situação e como conferir o regime pela API da CNPJAPI antes de emitir.

Recebeu a rejeição 180? O que fazer

  1. Consulte o CNPJ da empresa que está emitindo e veja o bloco SimplesNacional da resposta.
  2. Compare com o CRT configurado no emissor, usando a tabela abaixo.
  3. Corrija o CRT no cadastro do emitente (no ERP ou no emissor) e transmita de novo.

Os casos mais comuns são o MEI desenquadrado que continua emitindo com CRT 4 e a empresa excluída do Simples Nacional que continua com CRT 1. Na dúvida sobre o regime certo, confirme com o contador antes de mudar o cadastro. Se a empresa deveria estar no Simples e a consulta mostra que não está, o caminho é regularizar a opção com o contador, não trocar o CRT.

Qual CRT usar

CRT na NF-e Regime O que a consulta deve mostrar
1 Simples Nacional OpcaoPeloSimples: true e OpcaoPeloMEI: false
2 Simples Nacional, com excesso de sublimite de receita bruta OpcaoPeloSimples: true e OpcaoPeloMEI: false
3 Regime Normal OpcaoPeloSimples: false, ou SimplesNacional nulo
4 Simples Nacional, MEI OpcaoPeloMEI: true

O MEI também aparece com OpcaoPeloSimples: true, porque o SIMEI faz parte do Simples Nacional. Por isso, confira OpcaoPeloMEI primeiro: um MEI que emite com CRT 1 também cai na rejeição 180.

A resposta traz ainda as datas (DataOpcaoSimples, DataExclusaoSimples, DataOpcaoMEI e DataExclusaoMEI). Cada data de exclusão vale para o seu regime: com a opção em false, ela mostra desde quando a empresa saiu. Com a opção ainda em true e uma data de exclusão futura, a saída já está marcada, e o CRT precisa mudar nessa data.

Conferir pela API

Consulte o CNPJ do emitente com GET /{cnpj}. Para testar sem criar conta, use a chave pública de testes com o exemplo fictício 99999999000191, que é optante do Simples (veja Autenticação):

curl "https://api.cnpjapi.com.br/99999999000191" \
  -H "Authorization: Bearer cnpj_teste_exemplos"
"SimplesNacional": {
  "OpcaoPeloSimples": true,
  "DataOpcaoSimples": "15/08/2019",
  "DataExclusaoSimples": "",
  "OpcaoPeloMEI": false,
  "DataOpcaoMEI": "",
  "DataExclusaoMEI": ""
}

Para uma empresa fora do Simples, SimplesNacional vem null (é o caso do outro exemplo da chave de testes, 98765432000198).

Em Python, uma checagem para rodar no cadastro do emitente ou antes de transmitir:

import requests

API_KEY = "cnpj_teste_exemplos"  # troque pela sua chave


def crt_esperado(cnpj: str) -> set[int]:
    r = requests.get(
        f"https://api.cnpjapi.com.br/{cnpj}",
        headers={"Authorization": f"Bearer {API_KEY}"},
        timeout=10,
    )
    r.raise_for_status()

    simples = r.json()["SimplesNacional"]
    if simples and simples["OpcaoPeloMEI"]:
        return {4}  # MEI
    if simples and simples["OpcaoPeloSimples"]:
        return {1, 2}  # Simples Nacional
    return {3}  # Regime Normal


crt_da_nota = 1
if crt_da_nota not in crt_esperado("99999999000191"):  # troque pelo CNPJ do emitente
    print("CRT diferente do regime na Receita: risco de rejeição 180")

Em Node.js:

async function crtEsperado(cnpj) {
  const r = await fetch(`https://api.cnpjapi.com.br/${cnpj}`, {
    headers: { Authorization: "Bearer cnpj_sua_chave" },
  });
  if (!r.ok) throw new Error(`HTTP ${r.status}`);

  const { SimplesNacional: simples } = await r.json();
  if (simples?.OpcaoPeloMEI) return [4]; // MEI
  if (simples?.OpcaoPeloSimples) return [1, 2]; // Simples Nacional
  return [3]; // Regime Normal
}

Onde encaixar no seu sistema

  1. No cadastro do emitente: ao cadastrar a empresa no ERP ou no emissor, consulte o CNPJ e sugira o CRT pela tabela acima.
  2. Revalidação periódica: o regime muda (exclusão do Simples, desenquadramento do MEI). Revalide as empresas emitentes antes de 16/11 e depois todo mês. Para quem emite por muitas empresas, como escritórios de contabilidade, use a consulta em lote.
  3. Na emissão: se o CRT configurado não estiver entre os esperados, avise o usuário com uma mensagem clara ("o regime desta empresa na Receita é Simples Nacional, MEI") em vez de deixar a nota voltar com a rejeição.

Rejeição 180 e rejeição 481

As duas tratam do CRT do emitente, mas comparam com bases diferentes. A 481 compara com o cadastro da SEFAZ do estado e já existia. A 180 é nova e compara com a base da Receita Federal. Se a nota passou a cair na 180, confira o regime na Receita. Se cai na 481, o cadastro estadual também precisa ser atualizado.

Perguntas frequentes

O que é a rejeição 180 na NF-e? É a rejeição de quando o CRT (Código de Regime Tributário) informado na nota é diferente do regime do CNPJ do emitente na base da Receita Federal. Ela foi criada pela NT 2026.007.

Como resolver a rejeição 180? Consulte o CNPJ da empresa emitente, veja se ela é optante do Simples Nacional ou MEI e corrija o CRT no cadastro do emissor: 1 ou 2 para o Simples, 3 para o Regime Normal e 4 para o MEI.

Quando a rejeição 180 começa a valer? Em produção, a partir de 16/11/2026, com homologação desde 26/10/2026, junto com as demais regras da NT 2026.007. As datas já foram adiadas mais de uma vez: confira o Portal Nacional da NF-e.

Qual a diferença entre a rejeição 180 e a 481? A 481 compara o CRT com o cadastro da SEFAZ do estado. A 180 compara com a base da Receita Federal.

Vale para NFC-e? Sim. A regra do emitente vale para a NF-e (modelo 55) e para a NFC-e (modelo 65), quando o emitente é identificado por CNPJ.

Próximos passos