Validador de Código CEST
Valida o formato de código CEST (XX.XXX.XX), 7 dígitos. Verifica se o segmento (XX) está entre 01-28 (oficiais).
Validacao de CEST: formato, lookup e coerencia com o NCM
O CEST (Codigo Especificador da Substituicao Tributaria) e um codigo de 7 digitos que identifica produtos sujeitos a ICMS Substituicao Tributaria (ICMS-ST). Foi criado pelo Convenio ICMS 92/2015 do Confaz (Conselho Nacional de Politica Fazendaria) para uniformizar, em todos os estados, quais mercadorias estao no regime de ST e a qual segmento pertencem.
Validar um CEST e mais do que aplicar regex. O codigo precisa (i) seguir o formato canonico, (ii) existir no anexo do Convenio ICMS 142/2018 (a tabela consolidada que substituiu o 92/2015) e (iii) ser coerente com o NCM do produto. Um CEST sem NCM compativel e automaticamente rejeitado pela Sefaz.
Anatomia dos 7 digitos: segmento + item + especificacao
O CEST e exibido na forma canonica SS.III.EE e se decompoe assim:
- Digitos 1-2 (SS): o segmento. O Confaz define 28 segmentos, numerados de 01 a 28.
- Digitos 3-5 (III): o item dentro do segmento. Sao numerados sequencialmente conforme o Confaz adiciona produtos.
- Digitos 6-7 (EE): a especificacao. Distingue variantes de um mesmo item —
00quando nao ha especificacao adicional.
Exemplo: CEST 03.002.00 = segmento 03 (bebidas alcoolicas, exceto cerveja e chope) + item 002 (vinho) + especificacao 00 (sem variante). Lendo o codigo da esquerda para a direita aparece a cadeia de classificacao para ST.
Os 28 segmentos do Confaz
Cada segmento agrupa produtos tematicamente relacionados. Os mais frequentes no e-commerce do dia a dia:
- 01 Autopecas — 02 Bebidas alcoolicas, exceto cerveja e chope — 03 Bebidas alcoolicas (vinho, espumante, destilados)
- 04 Cervejas, chopes, refrigerantes, aguas e outras bebidas — 05 Cigarros e outros derivados do fumo — 06 Cimentos
- 07 Combustiveis e lubrificantes — 08 Energia eletrica — 09 Ferramentas — 10 Materiais de construcao
- 11 Materiais de limpeza — 12 Materiais eletricos — 13 Medicamentos — 14 Papeis
- 15 Perfumaria e higiene pessoal — 16 Produtos alimenticios — 17 Produtos ceramicos — 20 Produtos de papelaria
- 21 Produtos eletronicos, eletroeletronicos e eletrodomesticos — 22 Racoes para animais — 23 Sorvetes — 24 Tintas e vernizes
- 26 Veiculos automotores — 27 Veiculos de duas e tres rodas — 28 Venda de mercadorias pelo sistema porta a porta
Tres camadas de validacao
// 1. Formato
const re = /^\d{2}\.?\d{3}\.?\d{2}$/
if (!re.test(input)) return { ok: false, error: 'formato' }
const cest = input.replace(/\./g, '')
// 2. Existencia no anexo do Convenio ICMS 142/2018
const linha = tabelaCest.get(cest)
if (!linha) return { ok: false, error: 'fora da tabela CEST' }
// 3. Coerencia com o NCM
if (!linha.ncms.some(n => ncmComecaCom(produtoNcm, n))) {
return { ok: false, error: 'CEST nao cobre este NCM' }
}
return { ok: true, segmento: linha.segmento, mva: linha.mvaPorUf }
ICMS-ST em linguagem direta
Substituicao Tributaria significa que um contribuinte na cadeia — em geral o fabricante ou importador — paga o ICMS devido pelas operacoes seguintes (atacado e varejo) em nome de todos os revendedores. O CEST sinaliza que o produto esta sob ST, e a MVA (Margem de Valor Agregado) — percentual definido por cada estado — e usada para estimar o preco final de varejo e calcular o ICMS-ST devido.
Nem todo estado adota ST para todo CEST: cada UF escolhe (e altera) os protocolos. O mesmo CEST pode disparar ST em Sao Paulo e nao no Para. Validadores production-grade tambem checam o protocolo da UF, nao apenas a existencia do CEST.
CEST exige NCM: o par inseparavel
A tabela Confaz associa cada CEST a uma lista de NCMs compativeis (em geral prefixos de NCM). Um CEST nao pode aparecer em nota fiscal eletronica sem NCM, e o NCM precisa casar com ao menos um prefixo da lista do CEST. A rejeicao Sefaz mais frequente aqui e a 806: "CEST informado nao corresponde ao NCM informado".
<det nItem="1">
<prod>
<NCM>22030000</NCM>
<CEST>0300200</CEST> <!-- vinho, segmento bebidas -->
</prod>
</det>
Erros comuns e edge cases
- Zeros a esquerda removidos: CEST
0100100digitado como100100falha no regex; normalize sempre para 7 digitos. - CEST sem NCM: sistemas de emissao precisam exigir NCM sempre que houver CEST.
- Segmento errado: classificar um refrigerante no segmento 03 (alcoolicos) em vez do 04 (cervejas, chopes, refrigerantes) e erro frequente.
- Tabela desatualizada: o Confaz publica alteracoes por convenios ICMS; depender da versao de 2015 perde itens incluidos pelo 142/2018 e posteriores.
- Confusao com MEI: o MEI em geral esta fora do regime de ST, mas o CEST ainda precisa ser informado se o produto estiver na tabela; o ICMS-ST simplesmente nao sera cobrado do MEI.
FAQ
E se meu produto nao estiver na tabela CEST? Ele nao esta sob ICMS-ST. A NF-e deve omitir a tag CEST por completo — nao invente um placeholder.
O CEST e obrigatorio em todo estado? O CEST e obrigatorio sempre que o produto consta da tabela do convenio, em qualquer UF. Se o ICMS-ST de fato sera cobrado depende dos protocolos de cada estado.
O CEST altera a aliquota de ICMS? Nao. O CEST apenas identifica o produto como sujeito a ST. A aliquota e a MVA sao definidas pela legislacao de cada UF, nao pelo CEST.
Como os marketplaces (Mercado Livre, Magalu, B2W) tratam o CEST? Eles exigem que o vendedor declare o CEST por SKU e validam server-side antes de emitir a NF-e. CEST errado bloqueia a venda.
Onde consigo a tabela oficial de CEST? No anexo do Convenio ICMS 142/2018 e suas alteracoes, publicado no portal do Confaz. A BrasilAPI tambem expoe um espelho mantido.
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 Código de Rastreio
Valida o formato de códigos de rastreio dos Correios brasileiros (AA123456789BR). Identifica prefixo do serviço e país.
Validador Código Banco FEBRABAN
Valide o código de um banco brasileiro no padrão FEBRABAN (3 dígitos, ex.: 001 Banco do Brasil, 341 Itaú). Útil para boletos, TEDs, DOCs e cadastros bancários.