Validador de Código NCM
Valida o formato do NCM (8 dígitos numéricos). Decompõe em capítulo (2), posição (2), subposição (2) e item (2). Não valida tabela oficial.
Validacao de NCM: do regex ao lookup na TIPI
O NCM (Nomenclatura Comum do Mercosul) e a classificacao fiscal de 8 digitos que determina como um produto e tributado quando cruza as fronteiras brasileiras ou circula no mercado interno. Validar um NCM e um processo em camadas: nao basta confirmar que a entrada tem 8 digitos — o codigo precisa existir na TIPI vigente e ser hierarquicamente coerente.
Convencionalmente o NCM e exibido na mascara CC.CC.CC.CC, mas a Sefaz aceita tanto a forma com pontos quanto a sequencia bruta de 8 digitos. Um validador robusto normaliza a entrada, faz a checagem de regex e em seguida consulta a tabela oficial.
A hierarquia 6+2: Sistema Harmonizado da OMA mais Mercosul
Os 8 digitos se decompoem em dois blocos semanticos:
- Digitos 1-6 (SH): o Sistema Harmonizado, mantido pela Organizacao Mundial das Aduanas (OMA) e usado por mais de 200 paises. Os digitos 1-2 sao o Capitulo, 3-4 a Posicao e 5-6 a Subposicao.
- Digitos 7-8 (Mercosul): Item (digito 7) e Subitem (digito 8), criados pelo Mercosul para refinar a tributacao quando a granularidade do SH e insuficiente.
Exemplo: o NCM 87.03.23.10 significa Capitulo 87 (veiculos), Posicao 03 (automoveis de passeio), Subposicao 23 (motor de 1500 a 3000 cm3), Item 1 e Subitem 0 (detalhamento Mercosul para carros com ignicao por centelha e cilindrada de 1500 a 3000 cm3).
Tres camadas de validacao
Um validador serio submete a entrada a tres testes sequenciais:
// 1. Formato
const re = /^\d{2}\.?\d{2}\.?\d{2}\.?\d{2}$/
if (!re.test(input)) return { ok: false, error: 'formato' }
const ncm = input.replace(/\./g, '')
// 2. Semantica (lookup na tabela)
const existe = await tabelaTipi.has(ncm)
if (!existe) return { ok: false, error: 'fora da TIPI' }
// 3. Coerencia hierarquica
const capitulo = ncm.slice(0, 2)
const posicao = ncm.slice(0, 4)
if (!capitulosValidos.has(capitulo)) return { ok: false, error: 'capitulo' }
if (!posicoesValidas.has(posicao)) return { ok: false, error: 'posicao' }
return { ok: true }
TIPI: a fonte da verdade e suas atualizacoes anuais
A TIPI (Tabela de Incidencia do Imposto sobre Produtos Industrializados) e a tabela oficial mantida pela Receita Federal. Lista todo NCM valido junto com a aliquota de IPI aplicavel. A versao atual e fixada pelo Decreto 11.158/2022 e e alterada por Resolucoes Camex ao longo do ano — geralmente consolidadas em um novo Decreto a cada ano. Codigos podem ser criados, modificados ou revogados em qualquer revisao, por isso a validacao de NCM nao pode depender de uma lista cravada no codigo.
A OMA revisa o Sistema Harmonizado a cada cinco anos (HS 2017, HS 2022, HS 2027), obrigando o Mercosul a realinhar o prefixo de 6 digitos. A ultima grande revisao moveu centenas de produtos de e-commerce, veiculos eletricos e biotecnologia para novas posicoes — fonte classica de falhas de validacao em catalogos que nao foram migrados.
Casos de uso que exigem NCM valido
- Emissao de NF-e: a Sefaz rejeita qualquer nota cujo NCM nao esteja na TIPI vigente (regra N16a do schema). O codigo de rejeicao
778e "NCM nao encontrado na TIPI vigente". - Declaracao de Importacao (DI / Duimp): o Siscomex bloqueia o registro se o NCM for invalido ou revogado, e calcula II, IPI, PIS-Importacao e COFINS-Importacao a partir do codigo.
- Declaracao de Exportacao (DU-E): obrigatoria para o desembaraco; NCM errado pode gerar reclassificacao, multa e retencao da carga no porto.
- ICMS-ST e CEST: quando o produto esta sob substituicao tributaria, o NCM e usado em conjunto com o CEST para definir o regime.
- Obrigacoes estatisticas: SECEX, MDIC e IBGE usam o NCM para compor as estatisticas de comercio exterior.
APIs gratuitas e bibliotecas brasileiras
A Receita Federal nao expoe um endpoint publico limpo para NCM, mas a comunidade preencheu a lacuna. A opcao gratuita mais confiavel e a BrasilAPI:
GET https://brasilapi.com.br/api/ncm/v1/{codigo}
GET https://brasilapi.com.br/api/ncm/v1?search={termo}
Alternativas comerciais como Soluctra, Mastersaf e SOVOS Taxweb entregam uma TIPI continuamente atualizada e o historico de revisoes, indispensavel para auditorias retroativas. Nao cravem listas de NCM no banco de produtos — configurem um job mensal que puxe a TIPI mais recente e concilie os SKUs.
Erros de validacao mais comuns
- Erro de digitacao: digitos trocados ou ponto faltando — pego pelo regex.
- NCM revogada: o codigo era valido no ano passado mas nao existe mais — pego pelo lookup na TIPI.
- Hierarquia inconsistente: os digitos 7-8 apontam para um item Mercosul inexistente sob uma subposicao SH valida.
- Drift de migracao HS: catalogo ainda referencia codigos HS 2017 apos a virada para HS 2022.
- Pseudo-codigo: placeholders internos como
9999.99.99que passam no regex mas falham na TIPI.
NCM vs HS vs TARIC: nao sao intercambiaveis
Mesmo que NCM, TARIC (UE) e HTS (EUA) estendam o mesmo Sistema Harmonizado, eles divergem a partir do sexto digito. Um produto classificado como 8703.23.10 no Brasil pode virar 8703.23.19.10 (10 digitos) na TARIC da UE e 8703.23.01.40 no HTS americano. Catalogos cross-border precisam manter o mapeamento por jurisdicao; reusar o NCM brasileiro em uma declaracao europeia e reclassificacao na certa.
FAQ
De quanto em quanto tempo a TIPI e atualizada? O Decreto base costuma ser anual, mas resolucoes Camex podem altera-lo a qualquer momento. Planeje uma reconciliacao mensal contra a fonte oficial.
Existe forma gratuita de validar NCM contra a tabela oficial? Sim. A BrasilAPI faz proxy da lista oficial e e gratuita para uso moderado. Para alto volume, espelhe a tabela localmente e atualize semanalmente.
Um mesmo produto pode ter mais de um NCM? Nao. Cada SKU deve ser classificado em um unico NCM. Se o produto realmente se encaixa em duas posicoes, a Receita Federal aceita uma consulta de classificacao e emite solucao de consulta vinculante.
O que a Sefaz retorna quando o NCM e invalido? O codigo de rejeicao 778 ("NCM nao encontrado na TIPI vigente") ou 779 (quando o codigo e valido mas nao pode ser usado no tipo de operacao informado).
Este validador consulta a Receita Federal? Nao. Ele faz checagens de formato e hierarquia localmente. Para confirmacao semantica na TIPI, aponte seu backend para a BrasilAPI ou um fornecedor de compliance fiscal licenciado.
Ferramentas Relacionadas
Validador de Código Promocional
Verifica se um código promocional segue o formato configurado: tamanho, caracteres permitidos (alfanumérico, com ou sem hífens) e checksum opcional Luhn.
Validador de Placa de Veículo
Valide placas de veículo brasileiras nos padrões antigo (ABC-1234) e Mercosul (ABC1D23). Detecta automaticamente qual padrão. Tudo no navegador.
Validador de Código de Município IBGE
Valida o formato do código IBGE de município (7 dígitos: UF + 5 internos). Verifica se os 2 primeiros são UF válida.