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 tudo antes de enviar ao fisco.
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.
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.
Sincronizar a tabela TIPI mensalmente e validar o NCM antes do envio. engineAPI mantém a tabela atualizada automaticamente.
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.
Consultar a tabela 'NCM × uTrib' da SEFAZ e ajustar o cadastro do produto. engineAPI valida a combinação NCM + unidade antes do envio.
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.
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.
Validação NCM antes do envio
O motor valida o código NCM contra a tabela TIPI atualizada antes de gerar o XML. Rejeição 778 nunca chega ao SEFAZ.
Tabela TIPI sincronizada automaticamente
Você não precisa monitorar ADEs da Receita Federal. Quando um NCM muda ou é extinto, a tabela é atualizada no motor em até 24h.
CFOP inteligente por operação
Informe origem, destino, regime e natureza da operação. O motor sugere o CFOP correto — você não precisa decorar tabela.
Pré-validação de schema XML
Antes de enviar à SEFAZ, o engineAPI roda as mesmas validações que o SEFAZ roda internamente. Erros de schema, CFOP e NCM retornam antes da transmissão.
POST /v1/nfe/emit
{
"issuer_id": "iss_abc123",
"items": [
{
"description": "Notebook Dell Inspiron 15",
"ncm": "8471.30.19", // ← validado contra TIPI
"cfop": "5.102", // ← validado contra UF origem/destino
"quantity": 2,
"unit_price": 3499.90,
"unit": "UN"
}
]
}
// Se NCM inválido → retorna antes de transmitir:
// { "error": "NCM_INVALID", "code": "8471.30.19",
// "message": "NCM não encontrado na TIPI vigente" }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.