Pular para o conteúdo
Fiscal ProBiblioteca
NF-e e NFC-e · ICMS

vICMSSubstituto no ICMS60: ICMS próprio da operação anterior

<vICMSSubstituto>det › imposto › ICMS › ICMS60 › vICMSSubstituto

Revisão editorial em 14 de out. de 2026. As versões e condições das regras estão indicadas ao longo do artigo.

vICMSSubstituto dentro de ICMS60 informa o valor do ICMS próprio do substituto cobrado em operação anterior. O campo não representa o imposto próprio da venda atual nem o ICMS-ST retido. Sua origem histórica é essencial para interpretar o número e conferir o conjunto da retenção anterior.

Caminho desta página: /nfeProc/NFe/infNFe/det/imposto/ICMS/ICMS60/vICMSSubstituto. O prefixo nfeProc identifica o XML processado; no XML da NF-e antes do protocolo, o percurso começa em NFe. O campo pertence ao item det, não aos totais.

Neste artigo

De qual contribuinte e operação vem o valor?

A definição N26b fala no ICMS próprio do substituto em operação anterior. Não é o ICMS efetivo do contribuinte substituído da operação atual, nem o valor de ST recolhido pelo próprio substituto. A palavra Substituto identifica a função na cadeia, sem autorizar deduzir quem ocupa essa função em uma operação real apenas pelo cadastro.

Procure o documento e o item que sustentam essa informação e sua correspondência com a mercadoria atual. Se a origem não estiver disponível, não use uma alíquota atual sobre o preço de venda para inventar o valor anterior. Confirme documentos, quantidades, período e atribuição com o responsável contábil. Fontes: MOC 7.0, Anexo I, p. 34; NT 2018.005 v 1.52, p. 14.

Por que o campo opcional pode ser exigido na rejeição 938?

A sequência opcional da retenção anterior contém vBCSTRet, pST, vICMSSubstituto e vICMSSTRet. No XSD, os campos base, alíquota e ICMS retido são obrigatórios se essa sequência existir; vICMSSubstituto tem ocorrência própria 0–1. Essa distinção não elimina uma exigência contextual: a N12-81 pode exigir as quatro informações na NF-e modelo 55 com CST 60 e indFinal=0, conforme implementação da UF, gerando a rejeição 938.

A NT 2018.005 v 1.52, pp. 4 e 7, registra a exclusão do modelo 65 dessa regra; na tabela da p. 22, /65 está tachado. A extração textual que simplesmente reproduz 55/65 perde essa marca. Não aplique 938 a uma NFC-e apenas pela presença do campo no esquema compartilhado. Os dados devem corresponder à retenção anterior documentada para a mercadoria, não ser criados a partir de uma alíquota atual ou do preço da venda. Fontes: NT 2018.005 v 1.52, pp. 4, 7, 14, 22; pacote oficial PL 010f, ICMS60.

A mudança de ocorrência 0–1 da N26b está registrada na NT 2018.005 v 1.20, hoje descrita nas pp. 4 e 7 da versão 1.52. Ela flexibiliza a estrutura, mas não elimina a informação quando a N12-81 a exige em conjunto. São duas camadas diferentes: cardinalidade no XSD e exigência contextual por modelo/UF/operação.

Como comparar com imposto-ST, FCP e imposto efetivo?

vICMSSTRet é a ST anterior; vFCPSTRet é o fundo anterior; vICMSEfet é o ICMS no cenário próprio efetivo atual. Cada valor tem origem e função distintas. O fato de serem monetários não permite trocar seus conteúdos.

No exemplo sintético, o próprio anterior 90,00 e a ST anterior 90,00 foram assumidos como dados históricos; o FCP 20,00 é demonstrado por base 1.000,00×2%; o efetivo 81,00 decorre de base 450,00×18%. A igualdade entre os dois primeiros números é uma hipótese do exemplo, não exigência do esquema ou da legislação. pST 20% inclui FCP incidente no cenário 18+2; multiplicar base×pST e subtrair algum valor atual não reconstrói universalmente o próprio histórico. Fontes: MOC 7.0, Anexo I, pp. 34–35; NT 2018.005 v 1.52, pp. 14–15.

Como representar o valor e a posição no XML?

O campo usa TDec_1302, tipo monetário, e fica entre pST e vICMSSTRet na sequência anterior. Sua ocorrência individual é 0–1; informar apenas ele sem os filhos obrigatórios do bloco anterior não produz um grupo estruturalmente completo.

Trecho parcial com valores anteriores fictícios, sem validade como nota pronta:

<ICMS60 xmlns="http://www.portalfiscal.inf.br/nfe">
  <orig>0</orig>
  <CST>60</CST>
  <vBCSTRet>1000.00</vBCSTRet>
  <pST>20.0000</pST>
  <vICMSSubstituto>90.00</vICMSSubstituto>
  <vICMSSTRet>90.00</vICMSSTRet>
  <vBCFCPSTRet>1000.00</vBCFCPSTRet>
  <pFCPSTRet>2.0000</pFCPSTRet>
  <vFCPSTRet>20.00</vFCPSTRet>
  <pRedBCEfet>10.0000</pRedBCEfet>
  <vBCEfet>450.00</vBCEfet>
  <pICMSEfet>18.0000</pICMSEfet>
  <vICMSEfet>81.00</vICMSEfet>
</ICMS60>

90.00 é dinheiro. O texto não recebe moeda, vírgula, separador de milhar ou sinal negativo. Ausência não equivale a 0.00; o XSD aceitar um zero não prova que o ICMS próprio anterior foi efetivamente zero. Fonte: pacote oficial PL 010f, ICMS60 e tipos básicos.

Como investigar a ausência ou um valor inesperado?

Para 938, confirme modelo 55, CST 60, indFinal 0 e implementação da UF. Confira se o XML do item contém base anterior, pST, próprio do substituto e ST anterior. O valor presente em uma tela, num XML de aquisição ou num objeto interno pode ter sido omitido pelo serializador; compare as três origens antes de apontar falta cadastral.

Se o valor existe mas diverge, confirme documento, item, quantidade abrangida e critério de atribuição; depois compare o importador e a memória de cálculo. Não substitua pelo ICMS efetivo, não copie ST anterior e não altere indFinal. Corrija a fonte cujo erro foi comprovado, gere novo XML de teste e compare o conjunto, preservando o assinado.

Se a documentação histórica falta, explicite ao responsável contábil qual operação anterior, mercadoria, quantidade e período precisam ser confirmados. A versão 1.52 da NT 2018.005 contém também prazos de responsável técnico em 2026; esses prazos não definem nova obrigatoriedade universal deste campo. Fontes: NT 2018.005 v 1.52, pp. 4, 7, 14, 22; MOC 7.0, Anexo I, p. 34.

Fontes oficiais

Leituras relacionadas

Referência técnica para integração

XPath completo
/nfeProc/NFe/infNFe/det/imposto/ICMS/ICMS60/vICMSSubstituto
Namespace
http://www.portalfiscal.inf.br/nfe
Leiaute
4.00 · PL_010e_v1.02
Ocorrências no XSD
0–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