NCM e CFOP:
o que a SEFAZ rejeita e como evitar
Classificação fiscal errada é a principal causa de rejeição de NF-e. Este guia cobre os 15 CFOPs mais usados, as 3 rejeições mais comuns (778, 817, 374) e como o engineAPI valida formato e schema antes de enviar ao fisco.
NCM e CFOP: o que são e por que errar custa caro
Código de 8 dígitos que classifica mercadorias conforme a tabela TIPI da Receita Federal. Define alíquotas de IPI, II, ICMS em alguns estados e, a partir de 2026, influencia os campos CBS/IBS. Qualquer NCM inválido ou extinto causa rejeição imediata pelo SEFAZ.
Código de 4 dígitos que identifica a natureza de cada operação fiscal. O primeiro dígito define a direção (entrada/saída) e a abrangência geográfica. CFOP errado gera inconsistência no SPED e pode acarretar autuação fiscal.
As 3 rejeições que mais derrubam NF-e
Essas rejeições respondem pela maioria dos erros de transmissão relacionados a classificação fiscal. Cada uma tem causa precisa e correção direta.
NCM Inexistente ou Inválido
O código NCM informado foi extinto ou não existe na tabela TIPI vigente. Muito comum após atualizações via ADE RFB.
Consulte a TIPI vigente na Receita Federal antes de cadastrar o produto; NCMs mudam com frequência via ADE. O engineAPI valida o formato do NCM (8 dígitos) antes do envio, mas não substitui a checagem de existência na tabela TIPI.
Unidade Tributável incompatível
A unidade de medida (KG, UN, L) não condiz com o esperado para aquele NCM na tabela da SEFAZ.
Consulte a tabela 'NCM × uTrib' da SEFAZ e ajuste o cadastro do produto antes de emitir. O engineAPI transmite a unidade que você informar; a compatibilidade entre NCM e unidade é responsabilidade de quem cadastra o produto.
CFOP incompatível com tributação
O CFOP não condiz com a natureza da operação. Ex: CFOP de produto em nota de serviço, ou CFOP de serviço sem dados de ISSQN.
Mapear o CFOP correto para cada combinação de UF de origem/destino e regime tributário do emitente.
Os CFOPs que sua software house mais vai usar
Agrupados por tipo de operação. Para cada CFOP, o par 5.xxx é intraestadual e 6.xxx é interestadual.
Saídas: Vendas
5.102 / 6.1025.101 / 6.1015.4055.106 / 6.106Entradas: Compras
1.102 / 2.1021.101 / 2.1011.202 / 2.202Devoluções
5.202 / 6.2025.201 / 6.2011.411 / 2.411Transferências entre filiais
5.152 / 6.1525.151 / 6.151Serviços (NFS-e / NFe de serviço)
5.9335.302 / 6.302* Esta tabela cobre as operações mais comuns. Para operações especiais (conserto, industrialização por encomenda, importação), consulte a tabela completa do SEFAZ ↗ ou seu contador.
Pré-validação de schema antes de chegar ao SEFAZ
Seu sistema envia NCM e CFOP já classificados, e o engineAPI é passthrough: não recalcula tributos. O que o motor garante é formato e schema XML validados (mesmas regras do SEFAZ) antes de transmitir, para que erro estrutural nunca chegue ao fisco.
Validação de formato antes do envio
NCM (8 dígitos) e CFOP são validados no formato da requisição antes de qualquer chamada ao SEFAZ. Erro estrutural nunca sai do seu servidor.
Passthrough: você classifica, a gente transmite
O engineAPI não recalcula tributo nem infere classificação fiscal. NCM e CFOP são os que você (ou seu ERP) enviar, sem adivinhação escondida atrás da API.
IBS/CBS por NCM, com Cérebro Fiscal (opt-in)
Pra quem ativa o resolvedor de tributação, a base de alíquotas e exceções de IBS/CBS por NCM é sincronizada diariamente. Não substitui checar o NCM contra a TIPI completa.
Pré-validação de schema XML
Antes de enviar à SEFAZ, o engineAPI roda a mesma validação de schema (XSD) que o SEFAZ roda internamente. Erro estrutural de XML retorna antes da transmissão.
POST /v1/nfe/emit
{
"issuer_id": "iss_abc123",
"items": [
{
"description": "Notebook Dell Inspiron 15",
"ncm": "8471.30.19", // ← 8 dígitos, formato validado
"cfop": "5.102", // ← passthrough: você classifica
"quantity": 2,
"unit_price": 3499.90,
"unit": "UN"
}
]
}
// Se o formato do NCM estiver errado (≠ 8 dígitos), a API rejeita
// antes de gerar o XML — sem gastar transmissão com o SEFAZ.
// NCM e CFOP corretos para a operação continuam sendo responsabilidade
// de quem envia (você, seu ERP ou seu contador).5 dicas para zero rejeição por classificação
Nunca use NCMs genéricos
Itens como "outros" (ex: NCM 9999.99.99) são aceitos em homologação mas rejeitados em produção para muitos regimes. Classifique pelo produto real.
Audite o cadastro de produtos na virada do ano
A Receita Federal atualiza a TIPI anualmente via ADE. Produtos com NCM extinto geram rejeição 778 silenciosa: só aparece quando o cliente tenta emitir.
Mapeie CFOP por cenário, não por produto
O CFOP depende de: (1) UF de origem vs destino, (2) natureza da operação, (3) regime do emitente. Um mesmo produto pode ter CFOPs diferentes em cada venda.
Teste em homologação com dados reais de cliente
Homologação aceita NCMs inválidos que produção rejeita. Use o sandbox do engineAPI com os produtos reais dos seus clientes antes de ir a produção.
Monitore a unidade tributável (uTrib)
A rejeição 817 vem de NCM × unidade inconsistente. Cada NCM tem uma uTrib esperada. Use a tabela SEFAZ ou a validação automática do engineAPI.
Motor fiscal que valida antes
de chegar ao fisco.
Sandbox ativo em 5 minutos. NCM, CFOP e schema XML validados antes de cada transmissão.