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

vBCSTRet no ICMS60: base do ICMS-ST retido anteriormente

<vBCSTRet>det › imposto › ICMS › ICMS60 › vBCSTRet

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

vBCSTRet dentro de ICMS60 é o valor da base de cálculo do ICMS-ST cobrado anteriormente. É uma base monetária da retenção documentada, não o valor do imposto e não a base efetiva da venda atual.

Caminho desta página: /nfeProc/NFe/infNFe/det/imposto/ICMS/ICMS60/vBCSTRet. 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

Qual é a origem da base retida anteriormente?

O MOC descreve a base do ICMS-ST anterior e registra que o valor pode ser omitido quando a legislação não exigir sua informação. Essa observação precisa ser lida com a sequência estrutural e a regra contextual; não permite omitir um filho obrigatório depois de iniciar o bloco nem afastar a N12-81 quando aplicável.

Obtenha a base dos documentos e registros da retenção vinculados à mercadoria. O preço atual, o imposto anterior dividido por uma alíquota escolhida ou a base de FCP não substituem essa evidência. Se a saída abrange uma parcela do estoque/documento anterior, a correspondência de quantidades e os critérios fiscais precisam estar definidos; o artigo não inventa rateio. Fontes: MOC 7.0, Anexo I, p. 34; NT 2018.005 v 1.52, p. 14.

Quando a base participa da 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.

Base anterior, imposto anterior e base efetiva são iguais?

Não são conceitos iguais. vBCSTRet é base; vICMSSTRet é imposto-ST anterior; vICMSSubstituto é imposto próprio do substituto; vBCEfet é base da operação própria no cenário comum. Um campo não preenche o outro por ter valor monetário.

No exemplo, a base anterior é 1.000,00 e o ICMS-ST anterior 90,00, assumidos como dados históricos. O produto 1.000×pST 20%=200,00 não permite afirmar sozinho que a ST anterior é 200,00: pST inclui FCP quando incidente, e há informação separada do imposto próprio e do fundo. A base efetiva 450,00 foi calculada de vProd 500,00 com redução 10%; não é a retenção anterior atualizada pelo preço. Fontes: MOC 7.0, Anexo I, pp. 34–35; NT 2018.005 v 1.52, pp. 14–15.

Como a base aparece no XML?

O campo é monetário, tipo TDec_1302, com até 13 dígitos inteiros e duas casas quando existe fração. Ele abre a sequência anterior depois de CST. O bloco, quando presente, inclui pST e vICMSSTRet; vICMSSubstituto é opcional estruturalmente, embora possa ser exigido pela regra de negócio.

Trecho parcial com valores anteriores fictícios, não uma NF-e 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>

Use ponto decimal, sem símbolo de moeda, unidade física ou separador de milhar. Base ausente não significa zero informado. O XML de outro grupo com a mesma tag não comprova o preenchimento neste XPath. Fonte: pacote oficial PL 010f, ICMS60/vBCSTRet e tipos básicos.

Como investigar base ausente ou divergente?

Para ausência, compare o documento de origem, o cadastro/importação e o XML do item. Verifique se o dado já era conhecido e foi perdido no mapeamento. Para 938, confirme modelo 55, CST 60, indFinal 0 e implementação da UF, depois confira os quatro campos no XML efetivamente enviado.

Para divergência, confirme a mercadoria, quantidade abrangida, unidade, documento anterior e período. Não force igualdade com a base efetiva ou FCP, nem derive a base de uma alíquota atual sem sustentação. Corrija a origem demonstrada, preserve XML assinado e compare outro XML de teste. Se os dados históricos ou critérios de atribuição faltam, leve esses documentos e a operação ao responsável contábil; a ausência não autoriza preenchimento arbitrário. A publicação do PL 010f não comprova uma dispensa ou obrigação geral em todos os ambientes. Fontes: NT 2018.005 v 1.52, pp. 4, 7, 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/vBCSTRet
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