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

vBCFCPSTRet no ICMS60: base do FCP anteriormente retido

<vBCFCPSTRet>det › imposto › ICMS › ICMS60 › vBCFCPSTRet

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

vBCFCPSTRet em ICMS60 é a base monetária do Fundo de Combate à Pobreza retido anteriormente por substituição tributária. Ela acompanha pFCPSTRet e vFCPSTRet. O campo descreve a base do fundo anterior, não a base de uma nova retenção ou da tributação efetiva.

Caminho desta página: /nfeProc/NFe/infNFe/det/imposto/ICMS/ICMS60/vBCFCPSTRet. 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 onde vem a base do FCP anterior?

A fonte é a documentação da retenção anterior correspondente à mercadoria e à parcela informada no item. Não reconstrua essa base copiando o preço atual, o total da nota ou a base efetiva. Também não presuma igualdade com vBCSTRet: a estrutura possui dois campos para grandezas distintas e exige que cada um reflita sua informação real.

Se o sistema importa dados de aquisição, confira o item, a quantidade abrangida, a unidade e o vínculo com o produto atual. A forma de atribuir uma retenção anterior a uma quantidade de saída pode depender de registros e critérios fiscais que o artigo não escolhe. Leve documentos, quantidades e período ao responsável contábil se essa correspondência não estiver definida. Fontes: MOC 7.0, Anexo I, p. 34; NT 2018.005 v 1.52, p. 14.

Como a base participa do cálculo do FCP?

O bloco de Fundo de Combate à Pobreza retido anteriormente tem três parcelas: vBCFCPSTRet, base monetária; pFCPSTRet, percentual; vFCPSTRet, valor. A sequência é opcional no XSD, mas seus três filhos são obrigatórios quando existe. Não preencha apenas o percentual nem crie uma tag contêiner chamada N27.1: esse nome identifica uma sequência do manual, não um elemento XML.

Em um exemplo sintético, com base anterior de 1.000,00 e percentual fictício de 2%, o FCP retido é 1.000,00 × (2 ÷100) =20,00. A base, a incidência e o percentual reais precisam ser comprovados. A fórmula desse valor anterior não subtrai automaticamente o vFCP próprio de outra operação: o MOC N27d-10 descreve o produto da base pelo percentual para CST 60/CSOSN500.

A N27b-10, modelos 55/65, relaciona percentual retido igual a zero à rejeição 881 e orienta não informar os campos de FCP-ST de produto não sujeito à incidência. A N27b-20/875 confronta o percentual com a tabela da UF do destinatário quando esta não é EX; havendo UF do local de entrega diferente de EX, admite como válida a alíquota do destinatário ou da entrega. A N27d-10/860 verifica o valor em documento normal (finNFe=1), mas está marcada como implementação futura no MOC consultado. Não apresente 860 como rejeição garantidamente ativa para esse XPath. Fontes: MOC 7.0, Anexo I, pp. 112–113; NT 2018.005 v 1.52, p. 14.

Por que base de FCP, base de ST e base efetiva podem diferir?

A base FCP anterior corresponde ao fundo retido; vBCSTRet corresponde ao ICMS-ST anterior; vBCEfet representa a operação própria no cenário de regime comum. A comparação deve começar pela origem e finalidade, antes de exigir que os números sejam iguais.

No exemplo sintético, as duas bases anteriores são 1.000,00 por hipótese, enquanto a base efetiva é 450,00, calculada de vProd=500.00 com redução 10%. A coincidência das bases anteriores não é uma regra; a diferença da base efetiva também não demonstra erro. pST=20% já inclui FCP incidente no cenário 18+2, sem converter o campo do fundo em uma segunda cobrança nova. Fontes: MOC 7.0, Anexo I, pp. 34–35; NT 2018.005 v 1.52, pp. 14–15.

Como representar a base no XML?

A base usa TDec_1302, tipo monetário. Ela é a primeira do bloco FCP anterior; depois vêm percentual e valor. O bloco é opcional, mas, quando informado, exige os três filhos. Não crie um contêiner XML para a sequência N27.1 do manual.

Trecho parcial com base anterior 1.000,00 e percentual 2% 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>

O texto 1000.00 usa ponto decimal, sem vírgula ou símbolo monetário. Base ausente não se torna 0,00; uma base existente e válida não deve ser apagada apenas porque a tela recolheu o bloco. Fonte: pacote oficial PL 010f, ICMS60 e TDec_1302.

Como diagnosticar diferença no valor ou no total?

Compare a base anterior com o documento e o percentual do fundo. No exemplo,1.000×2%=20; usar a base efetiva 450 produziria 9, outra quantia. Confira se o gerador copiou a base errada ou se o percentual foi usado sem converter por 100. A causa só está confirmada quando aparece nos dados e no cálculo.

Na NF-e 55, a W06b-10/859 compara o total de vFCPSTRet com a soma dos valores dos itens, não com a soma das bases. Uma base errada pode afetar o valor, mas a rejeição de total exige conferir também o somador. N27d-10/860 está marcada como futura; 881 e 875 verificam percentuais com condições próprias. Confirme documentação, produto, data e incidência, ajuste a fonte comprovadamente errada e confira novo XML de teste sem editar o assinado. Fontes: MOC 7.0, Anexo I, pp. 112–113, 120.

Fontes oficiais

Leituras relacionadas

Referência técnica para integração

XPath completo
/nfeProc/NFe/infNFe/det/imposto/ICMS/ICMS60/vBCFCPSTRet
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