vBCSTRet no ICMS60: base do ICMS-ST retido anteriormente
<vBCSTRet>det › imposto › ICMS › ICMS60 › vBCSTRetRevisã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?
- Quando a base participa da rejeição 938?
- Base anterior, imposto anterior e base efetiva são iguais?
- Como a base aparece no XML?
- Como investigar base ausente ou divergente?
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
- MOC 7.0 — Anexo I, Leiaute e Regras de Validação NF-e/NFC-e — 7.00, novembro/2020; pp. 33–35 grupo N08; pp. 112–113 N23-10, N27b-10/N27b-20/N27d-10; pp. 120 e 140 totais.
- Nota Técnica 2018.005 — Alteração de leiaute NF-e/NFC-e — 1.52, julho/2025; pp. 4 e 7 histórico; pp. 14–15 grupo ICMS60; p. 22 regras N12-81/N12-82.
- Schemas NF-e/NFC-e — Leiaute NF-e 4.00 — PL_010f_v1.04, catálogo publicado 31/08/2026; ICMS53 linhas 2953–3018; ICMS60 linhas 3019–3111; tipo Torig; sequência e minOccurs.
- Tipos básicos NF-e 4.00 — PL_010f_v1.04; TDec_1104v, TDec_1302, TDec_0302a04, TDec_0302a04Opc, TDec_0302a04Max100.
Leituras relacionadas
- pST em ICMS60 —
/nfeProc/NFe/infNFe/det/imposto/ICMS/ICMS60/pST. - vICMSSubstituto em ICMS60 —
/nfeProc/NFe/infNFe/det/imposto/ICMS/ICMS60/vICMSSubstituto. - vICMSSTRet em ICMS60 —
/nfeProc/NFe/infNFe/det/imposto/ICMS/ICMS60/vICMSSTRet. - vBCEfet em ICMS60 —
/nfeProc/NFe/infNFe/det/imposto/ICMS/ICMS60/vBCEfet.
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