Se você trabalha com XML de NF-e e já estava “domando” CST e cClassTrib, prepara: tem mais uma peça ganhando protagonismo no ecossistema da Reforma Tributária do Consumo (RTC): o cCredPres (Código de Classificação do Crédito Presumido). E ele não veio sozinho junto chegam tabelas, indicadores (flags), regras de validação e eventos que vão separar rapidamente quem está com o layout alinhado de quem vai sofrer com rejeições em lote.
A ideia deste guia é te deixar com uma visão bem prática (sem juridiquês desnecessário) sobre quando o cCredPres passa a importar de verdade, onde ele mora no XML, como parametrizar com segurança e quais erros/rejeições aparecem quando algo sai fora do trilho.
O “barulho” não é por acaso. O Portal da NF-e publicou informe técnico (no contexto da NT 2025.002/RTC) comunicando a disponibilização/atualização de tabelas de classificação tributária (cClassTrib) e crédito presumido, que são exatamente a base para sistemas emissores e validadores saberem o que é permitido/obrigatório em cada cenário.
Em paralelo, a própria SVRS (Conformidade Fácil) vem disponibilizando páginas e tabelas que detalham códigos de crédito presumido e seus comportamentos (por exemplo: se o crédito é apropriado no DF-e, via evento, se “deduz” o crédito presumido, e a vigência por tributo).
Traduzindo: antes você conseguia “passar” com regras mais genéricas; agora o jogo vira mais tabelado, rastreável e validável.
Crédito presumido não é “crédito normal”. Ele existe quando a legislação define uma forma específica (e geralmente incentivada) de geração de crédito, ligada a certas operações, perfis de fornecedor ou regimes.
A tabela oficial/operacional do ecossistema (ex.: Conformidade Fácil) mostra exemplos bem concretos de hipóteses com códigos próprios como aquisição de produtor rural não contribuinte (código 1), TAC pessoa física não contribuinte (código 2), resíduos/logística reversa (código 3), compra de bem móvel usado de PF para revenda (código 4) cada uma citando base legal na LC 214/2025 e trazendo “configurações” diferentes.
É aqui que o cCredPres aparece como “rótulo técnico” da hipótese: ele identifica qual crédito presumido você está tentando usar e, junto com os indicadores da tabela, define:
A NT 2025.002/RTC vem evoluindo por versões, com fases de implantação. A própria publicação oficial (resumo disponível nos resultados do Portal da NF-e) indica implantação em produção a partir de 2025 visando operacionalização a partir de 2026.
E, na prática, o mercado já está tratando isso como: o que estiver errado (quando validado) vira rejeição. Há notícias e guias reforçando que o preenchimento incorreto de IBS/CBS pode causar rejeição conforme janelas de vigência das regras.
Ponto importante e bem pé-no-chão: como a NT é “viva”, datas e obrigatoriedades mudam entre versões. Por isso, o jeito seguro de operar é: versionar tabelas por NT, e testar sempre com validador atualizado.
Pensa num triângulo:
E tem um detalhe: existem tabelas de indicadores justamente para orientar o preenchimento por CST e por classificação. Ex.: há materiais técnicos no ecossistema explicando que a tabela de indicadores serve para dizer quando certos grupos/campos são obrigatórios, permitidos ou vedados conforme o CST.
Na prática, “parametrizar” não é só colocar um número no XML. É garantir que o combo CST + cClassTrib + cCredPres é coerente com as regras e com os indicadores vigentes.
De forma recorrente nos guias técnicos e nas próprias regras de rejeição, o crédito presumido aparece no item (det) dentro do grupo do IBS/CBS, com um grupo de operação de crédito presumido (ex.: <gCredPresOper>), contendo base e o cCredPres, e subgrupos específicos para IBS e CBS (ex.: <gIBSCredPres> e <gCBSCredPres>). Isso fica evidente até nos exemplos usados para explicar rejeições.
E aqui começa a parte “pegadinha”: nem todo cCredPres permite IBS e CBS ao mesmo tempo; alguns são só IBS, outros só CBS, e alguns exigem preenchimento via evento (dependendo dos indicadores da tabela).
A tabela operacional da Conformidade Fácil mostra exatamente isso no mundo real: há código com “Apropria DFE: Sim” e outros com “Apropria DFE: Não”, e também variações entre IBS e CBS e datas de vigência diferentes.
Vou te passar o jeito que costuma funcionar em projetos grandes (ERP, várias filiais, marketplace, integrações), porque ele evita o erro clássico: “tacar cCredPres no cadastro do produto e rezar”.
Antes do XML, você precisa responder com clareza:
A própria tabela publicada pela Conformidade Fácil deixa explícito que cada código tem “configurações” distintas por exemplo, o código 2 (TAC PF não contribuinte) aparece com Apropria DFE: Não e Apropria Evento: Sim, enquanto outros permitem apropriar no DF-e.
Aqui você transforma regra em “montagem de tag”:
Esse é o pedaço que muita gente ignora e paga caro depois:
Quando a validação endurece, quem tem isso estruturado corrige rápido. Quem não tem, vira mutirão.
Esse é o caso “clássico” de crédito presumido que o pessoal vai querer automatizar. Na tabela da Conformidade Fácil, o código 1 descreve aquisição de bens/serviços de produtor rural não contribuinte e indica que pode ser apropriado no DF-e e via evento (Sim/Sim), com vigência a partir de 01/01/2027 para IBS e CBS.
Como parametrizar sem dor:
Aqui a diferença que derruba muita implementação: esse código aparece com Apropria DFE: Não e Apropria Evento: Sim.
Ou seja: tentar enfiar crédito presumido no item “porque é TAC PF” pode gerar inconsistência. Esse é o caso típico em que a parametrização precisa direcionar fluxo de evento (e não só emissão de NF-e).
Esse caso é uma mistura de legal + operacional. A tabela aponta essa hipótese e, de quebra, mostra vigências diferentes entre IBS e CBS (ex.: IBS iniciando em 01/01/2029 no recorte exibido, CBS em 01/01/2027).
Isso é uma pista forte de que “parametrizar uma vez e esquecer” vai dar ruim: o comportamento muda conforme tributo e período.
Esse é outro campeão de dúvidas, porque aparece como hipótese que deduz crédito presumido (no recorte exibido: “Deduz Crédito Presumido: Sim”) e tem particularidades que chegam até a campo específico de condição suspensiva (vou falar disso nas rejeições).
Abaixo está um resumo bem prático das rejeições mais diretamente relacionadas ao uso do crédito presumido em NF-e (modelo 55), com a “correção típica” que resolve na maior parte dos casos.
Observação honesta: códigos/mensagens exatos e condições podem variar conforme versão/ambiente, então trate isso como “manual de campo” e valide com o cenário e a versão da NT no seu validador. Uma boa referência de teste é o Validador RTC da Conformidade Fácil.
|
Código / Rejeição |
O que normalmente significa |
Como corrigir (na prática) |
|
1049 — Não é permitido uso de Crédito Presumido na NFC-e (mod 65) |
Você colocou o grupo de crédito presumido no modelo 65 |
Remova <gCredPresOper> da NFC-e (se precisa de crédito presumido, emita NF-e mod 55) |
|
1055 — cCredPres inexistente |
Código informado não existe na tabela oficial |
Atualize/valide o código conforme tabela vigente (e garanta versionamento) |
|
1053 — Crédito Presumido IBS informado indevidamente |
Você informou <gIBSCredPres> mas o cCredPres/indicador não permite IBS |
Remova <gIBSCredPres> quando a tabela/indicador não permitir/exigir IBS |
|
1050 — Crédito Presumido CBS informado indevidamente |
Você informou <gCBSCredPres> mas o cCredPres/indicador não permite CBS |
Remova <gCBSCredPres> quando a tabela/indicador não permitir/exigir CBS |
|
1054 — Crédito Presumido IBS não informado |
A operação exige IBS presumido e você não mandou <gIBSCredPres> |
Inclua <gIBSCredPres> e preencha conforme indicador/tabela para o cCredPres |
|
1058 — Crédito Presumido CBS não informado |
A operação exige CBS presumido e você não mandou <gCBSCredPres> |
Inclua <gCBSCredPres> e preencha conforme indicador/tabela para o cCredPres |
|
1056 — <vCredPresCondSus> (IBS) informado indevidamente |
Você informou condição suspensiva fora das condições aceitas (ex.: ano/ código) |
Remova <vCredPresCondSus> quando não for permitido; a regra citada condiciona a uso futuro e ao cCredPres 4 |
|
1060 — <vCredPresCondSus> (CBS) informado indevidamente |
Mesma ideia, só que para CBS: condição suspensiva fora de período/código permitido |
Remova <vCredPresCondSus> quando não for permitido; a regra citada condiciona (ex.: a partir de 2027 e cCredPres 4) |
Quando bater rejeição de crédito presumido, normalmente a causa está em uma destas três:
E os eventos: quando o crédito presumido não “nasce” só no XML
Além de informar no documento, o ecossistema também trabalha com eventos específicos em alguns fluxos de RTC. Exemplos que aparecem na documentação e em guias técnicos:
Isso conversa diretamente com o que a tabela já sugere em certos códigos: às vezes “Apropria Evento: Sim” é o coração do processo, e tentar resolver “só com tag no item” vira rejeição ou incoerência.
Se você quer evitar o ciclo “gera XML → rejeita → ajusta no susto”, faz assim:
Se você precisa lidar com volume de XML (ERP, filiais, marketplace, integrações), “corrigir no braço” é inviável. Com a Taxcel, o fluxo fica padronizado:
• Importar o XML e transformar em planilha (visualização clara das tags e dados por item)
• Auditar em lote: encontrar itens com cClassTrib em branco/invalidada/incoerente
• Editar e complementar tags da Reforma quando o XML não vier completo
• Exportar novamente o XML após ajustes, mantendo consistência e rastreabilidade
Isso ajuda a tirar o tema do “campo escondido no XML” e levar para um processo revisável, auditável e escalável.