vICMSDeson no ICMS70: valor do benefício, motivo e dedução
<vICMSDeson>det › imposto › ICMS › ICMS70 › vICMSDesonRevisão editorial em 14 de out. de 2026. As versões e condições das regras estão indicadas ao longo do artigo.
vICMSDeson informa o valor do ICMS próprio desonerado no item ICMS70. É uma quantia monetária, acompanhada de motDesICMS, no XPath /nfeProc/NFe/infNFe/det/imposto/ICMS/ICMS70/vICMSDeson. Não é a parcela de base retirada, o ICMS devido ou a desoneração de ST.
Por que a redução da base não fornece sozinha o valor
pRedBC descreve a redução e vBC a base resultante. Se uma base sintética passa de 1000 para 800, a diferença 200 é base de cálculo, não imposto desonerado. Copiar 200 em vICMSDeson confundiria grandezas.
Mesmo multiplicar uma diferença de bases por uma alíquota não deve ser apresentado como fórmula universal de benefício. A apuração pode depender do fundamento, da modalidade e da disciplina da UF. Para determinar o valor real, reúna o dispositivo do benefício, UF, data, produto, operação, preço, base antes e depois da redução e memória de cálculo. O método e sua aplicação devem ser confirmados com o responsável contábil.
Depois de definido o valor, o artigo permite conferir sua representação, seu motivo e o efeito no total. Os exemplos abaixo assumem R$ 36,00 já apurados; não afirmam que esse seja o benefício de qualquer redução de 20%.
Par obrigatório dentro de bloco opcional
O XSD define a sequência própria como opcional, mas, se ela existe, exige vICMSDeson seguido de motDesICMS. No ICMS70 os motivos permitidos são 3, uso na agropecuária; 9, outros; e 12, órgão de fomento e desenvolvimento agropecuário. Não copie motivos de outra família ou selecione 9 apenas para acomodar um benefício desconhecido.
indDeduzDeson é opcional dentro desse mesmo bloco:0 declara que o valor não é deduzido do item/total e 1 declara dedução. O indicador não calcula o valor nem o motivo. vICMSSTDeson vem em outro par, com motDesICMSST; não se soma automaticamente a ele para preencher a desoneração própria.
Rejeições 627 e 934: o que cada uma verifica
N28-30, MOC p. 113, prevê a rejeição facultativa 627 quando há motivo e o valor próprio desonerado não é maior que zero. O formato monetário pode admitir zero, mas isso não elimina a condição da validação. Não invente valor positivo para fazer o par passar.
N12-90, NT 2019.001 v1.70 p. 18, inclui CST 70 e verifica valor e motivo conforme adoção a critério da UF, por modelo e CST, podendo gerar 934. Exclui devolução interestadual ou para o exterior; a UF pode excepcionar demais devoluções, ajustes e entradas. A exceção 5 de CST 90 não se aplica ao 70. O bloco opcional no schema pode, portanto, ser exigido no cenário de validação adotado.
Para ambos os retornos, compare o item efetivamente enviado à memória do benefício e confirme modelo, finalidade, destino e aplicação da regra. A mensagem não concede um benefício nem determina sua fórmula.
XML sintético e efeito sobre o total
Recorte de um bloco próprio, com valor 36 e motivo 9 assumidos somente para explicar a forma:
<vICMSDeson xmlns="http://www.portalfiscal.inf.br/nfe">36.00</vICMSDeson>
<motDesICMS xmlns="http://www.portalfiscal.inf.br/nfe">9</motDesICMS>
<indDeduzDeson xmlns="http://www.portalfiscal.inf.br/nfe">1</indDeduzDeson>
vICMSDeson usa TDec_1302. W04a-10, MOC p. 120, compara ICMSTot/vICMSDeson com a soma dos valores próprios desonerados dos itens, podendo gerar 795, de aplicação facultativa. Valores 36 e 10 somam 46 nesse total; não entram parcelas ST ou diferenças de base.
A composição do valor da nota é outra conferência. W16-10, NT 2023.004 v1.20 pp.15–16, contém o abatimento de desoneração e exceção para itens com indicador 0 ou não preenchido, nos quais a falta de subtração não deve causar rejeição. Num cenário sintético sem outras parcelas, produtos 1000 e desoneração 36 com indicador 1 resultam em 964; com 0 e sem subtração, permanece 1000. Isso demonstra o efeito aritmético, sem escolher qual tratamento o benefício real exige.
Como verificar a correção
Confira separadamente: método do benefício, valor no item, motivo permitido, indicador e soma do total. Se o total não fecha, não troque o indicador para encobrir um desconto duplicado em vDesc ou uma parcela ST indevida. Corrija a origem comprovada no emissor e regenere o XML; não edite um documento assinado e não tome uma soma coerente como aprovação fiscal do benefício.
Grupo completo para conferência
Este ICMS70 sintético reúne os campos do recorte e o núcleo obrigatório, na ordem do schema. É completo somente em relação ao grupo e parcial em relação à NF-e; não é documento pronto para transmissão. Os números adicionais são hipóteses didáticas, não parâmetros para uma empresa.
<ICMS70 xmlns="http://www.portalfiscal.inf.br/nfe">
<orig>0</orig>
<CST>70</CST>
<modBC>3</modBC>
<pRedBC>20.00</pRedBC>
<vBC>800.00</vBC>
<pICMS>18.00</pICMS>
<vICMS>144.00</vICMS>
<modBCST>4</modBCST>
<pMVAST>40.00</pMVAST>
<vBCST>1400.00</vBCST>
<pICMSST>18.00</pICMSST>
<vICMSST>108.00</vICMSST>
<vICMSDeson>36.00</vICMSDeson>
<motDesICMS>9</motDesICMS>
<indDeduzDeson>1</indDeduzDeson>
</ICMS70>
Referências oficiais
- MOC 7.0, Anexo I, leiaute e regras de validação — 7.00, novembro 2020. p. 36 desoneração; p. 113 N28-30; p. 120 W04a-10
- Schemas XML da NF-e/NFC-e — PL_010f_v1.04, publicado em 31/08/2026. ICMS70: par próprio e indicador
- NT 2019.001, criação e atualização de regras de validação — 1.70, agosto 2025. p. 18 N12-90, leitura visual
- NT 2023.004, informações de pagamentos e outros — 1.20, outubro 2024. pp.10–11 indicador e pp.15–16 W16-10, leitura visual
Páginas relacionadas
Referência técnica para integração
- XPath completo
/nfeProc/NFe/infNFe/det/imposto/ICMS/ICMS70/vICMSDeson- Namespace
http://www.portalfiscal.inf.br/nfe- Leiaute
- 4.00 · PL_010e_v1.02
- Ocorrências no XSD
- 1–1 no contexto do elemento pai
- Tipo
- TDec_1302 · string
- Preenchimento no catálogo
- Condicional
A ocorrência vale dentro da estrutura XML: um campo obrigatório em um grupo opcional não torna esse grupo obrigatório. A aplicação fiscal depende da operação e da versão da regra.
- pattern
0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,12}(\.[0-9]{2})?- whiteSpace
preserve