1001Ferramentas
📋Validadores

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 — 00 quando 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 0100100 digitado como 100100 falha 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