Manuais:UniNFe/duv13
Reforma tributária - Guia introdutório de como implementar os novos impostos nos sofwares de ERP/PDV
Para reduzir a incerteza e padronizar a implementação do IBS/CBS no UNINFE, preparamos este guia introdutório. Ele apresenta, de forma objetiva, o fluxo de decisão para o cálculo e o correto enquadramento tributário por item, indicando quando e como aplicar CST, cClassTrib e, quando cabível, cCredPres. O material segue uma ordem operacional única — começando pela identificação da natureza da operação (onerosa ou não onerosa), passando pela verificação de anexos/benefícios por NCM, tratamento para Administração Pública e setores com regime específico — e termina com validações contra as tabelas oficiais.
O objetivo é dar clareza de ponta a ponta ao desenvolvedor: quais campos preencher, qual regra tem prioridade em cada cenário e como registrar, no sistema, o “porquê” de cada decisão (ex.: anexo aplicado, finalidade de uso, versão da tabela). Assim, você consegue integrar o novo modelo tributário ao emissor com segurança, rastreabilidade e consistência, evitando erros de mapeamento e divergências na apuração.
Fluxo prático IBS/CBS no emissor (NF-e/NFC-e) — passo a passo
- Identifique o ITEM (NCM/NBS) e marque como "tributável por padrão"
- Regra geral da LC 214/2025: IBS/CBS incidem sobre operações onerosas; a base é ampla. Em sistemas, todo item começa como "Tributado". Você usará a dupla CST+cClassTrib para declarar o enquadramento. [1]
- Classifique a OPERAÇÃO: Onerosa x Não Onerosa
- Onerosa (há contraprestação/benefício econômico: venda, prestação, etc.): mantém "Tributado" (ex.: CST=000).
- Não onerosa (sem contraprestação: transferência entre filiais, remessa para demonstração, doação, etc.): usar CST+cClassTrib de não incidência/isenção/diferimento/suspensão conforme tabela. LC 214/2025 exclui, como regra, as não onerosas - salvo hipóteses expressas. [1]
- Antes de "fechar" o CST, verifique BENEFÍCIOS por ANEXOS do NCM
- Se o NCM do item está em anexo de benefício (redução/alíquota zero/tratamento específico), o anexo prevalece sobre o padrão (desde que a operação seja onerosa). Para não onerosas, os anexos em regra não se aplicam. O mapeamento concreto vem das tabelas oficiais CST e cClassTrib (publicadas/atualizadas no portal da NF-e). [2][3][4]
- Se houver 'mais de um anexo aplicável ao NCM
- O usuário deve escolher a finalidade de uso do produto/serviço (ex.: alimento para consumo humano x outro uso; "dispositivo médico" x compra governamental; etc.) para selecionar o cClassTrib correto. (Há códigos 200*** para reduções/benefícios por finalidade.) [3][4]
- Destinatário é Administração Pública?
- Para compras públicas, há tratamento específico com redução definida em norma própria (percentual ainda sendo regulamentado em etapas). Use os CST/cClassTrib específicos "Governo" quando o destinatário for União/Estados/Municípios/Adm. Indireta, independentemente de anexos "comuns". Acompanhe as tabelas oficiais. [3][4]
- Emissor pertence a setores com regime diferenciado?
- Certos setores (ex.: hotéis, restaurantes, educação, saúde, transporte público etc.) têm códigos dedicados na cClassTrib/CST que alteram a tributação (reduções/regimes específicos). Exemplos de códigos 200*** ilustram esses casos. Consulte a Tabela Nacional para mapear. [3][4]
- (Quando aplicável) Crédito Presumido
- Se a operação dá direito a crédito presumido (cCredPres), informe o código conforme a tabela oficial. Mantenha a estrutura dos seus dados e só preencha quando cabível.
Orquestração no sistema (algoritmo de decisão)
Entrada por item:
NCM, tipoOperacao (onerosa|naoOnerosa), destinatarioEhGoverno (S/N), setorEmissor (categorizado), finalidadeUso (quando houver mais de um anexo), flags de benefício, elegibilidade cCredPres.
Pseudocódigo (simplificado):
cst = "000" // padrão: tributado
cClassTrib = "000001" // cClassTrib inicial compatível
if tipoOperacao == "naoOnerosa":
(cst, cClassTrib) = mapNaoOnerosa(NCM, naturezaOperacao) // transferência, doação, demonstração...
// anexos geralmente não se aplicam aqui
else:
if destinatarioEhGoverno:
(cst, cClassTrib) = mapGoverno(NCM) // códigos específicos p/ AP
else:
anexos = buscarAnexosPorNCM(NCM)
if anexos.vazio():
(cst, cClassTrib) = mapTributadoPadrao(NCM) // tributado integral
else:
if anexos.temMaisDeUm():
finalidade = obterFinalidadeUsoUsuario()
(cst, cClassTrib) = mapAnexo(NCM, finalidade) // 200xxx, etc.
else:
(cst, cClassTrib) = mapAnexo(NCM, anexos[0])
// Crédito presumido (opcional conforme regra)
cCredPres = elegivelCreditoPresumido ? mapcCredPres(NCM, contexto) : null
Tabelas envolvidas no formato JSON
Você deve popular estas tabelas a seguir em seu software para facilitar a tomada de decisão.
- Tabela de NCM com anexos
- Tabela CST IBS/CBS
- Tabela de CST e ClassTrib IBS/CBS
- Tabela de Crédito Presumido do IBS/CBS
- Tabela de Operações
Exemplos rápidos
- Venda normal de mercadoria comum (onerosa)
- Sem anexo aplicável → `CST=000` + `cClassTrib` “tributado integral”.
- Sem `cCredPres`.
- Transferência entre filiais (não onerosa)
- Selecionar `CST/cClassTrib` de **não incidência** para transferência do mesmo titular.
- Anexos não se aplicam.
- Sem `cCredPres`.
- Alimento destinado ao consumo humano (onerosa) com anexo de redução
- NCM com anexo específico (ex.: alimentos/medicamentos/dispositivos) → usar `cClassTrib` 200*** correspondente ao anexo/finalidade e seu `CST` indicado.
- Se elegível a crédito presumido (regras próprias), informar `cCredPres`.
- Venda para órgão público (onerosa)
- Usar CST/cClassTrib "Governo" (tratamento específico).
- Percentuais/reduções definidos em normas/tabelas próprias; acompanhar atualizações.
- Setor com regime diferenciado (ex.: hotelaria/restaurantes)
- Mapear cClassTrib setorial (200*** ou afim), conforme tabela.
- Pode mudar de "tributado integral" para "redução por setor".