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

vFCPSTRet no ICMS60: valor do FCP anterior e totalização

<vFCPSTRet>det › imposto › ICMS › ICMS60 › vFCPSTRet

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

vFCPSTRet em ICMS60 é o valor monetário do Fundo de Combate à Pobreza retido anteriormente por substituição tributária. Ele acompanha sua base e seu percentual. O item e o total ICMSTot/vFCPSTRet têm o mesmo nome local, mas funções e XPaths diferentes.

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

Como conferir o valor do fundo anterior?

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.

O valor deve ser somado novamente por estar separado de pST?

A separação informa componentes da retenção anterior; não cria uma segunda cobrança. pST já inclui FCP quando incidente. No exemplo de 18% de ICMS com 2% de FCP, pST é 20%, enquanto o fundo anterior sobre base 1.000,00 é 20,00. O destaque de R$ 20,00 em vFCPSTRet não autoriza acrescentar os 2 pontos percentuais de FCP novamente a pST=20%, formando 22%.

vFCPST, sem Ret, e vFCP, próprio, pertencem a outros contextos. A fórmula do fundo anterior N27d-10 não importa automaticamente a subtração do FCP próprio que existe em regra de FCP-ST de outros grupos. Também não confunda o valor com vICMSEfet, informado para o cenário próprio efetivo. Fontes: MOC 7.0, Anexo I, pp. 34–35, 112–113.

Como representar o valor no XML?

O tipo TDec_1302 é monetário. Na sequência FCP anterior, o valor vem depois de vBCFCPSTRet e pFCPSTRet. A sequência é opcional, mas os três filhos são exigidos quando existe; informar apenas o valor deixa a estrutura incompleta.

Trecho parcial com base 1.000,00 e percentual 2% fictícios, não pronto para transmissão:

<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 20.00 representa dinheiro. 2.0000 representa percentual; 1000.00 representa base. Não use vírgula, moeda ou valor negativo no literal do valor. Se não há incidência, a decisão de não informar os campos deve corresponder ao contexto confirmado; um bloco zerado por padrão pode enfrentar a regra 881 pelo percentual. Fontes: pacote oficial PL 010f; MOC 7.0, Anexo I, pp. 112–113.

Como conferir a totalização e a rejeição 859?

Na NF-e modelo 55, W06b-10 compara total/ICMSTot/vFCPSTRet com a soma dos valores dos itens identificados por N27d. A rejeição 859 trata essa divergência. A soma usa valores de FCP anterior, não bases, percentuais, FCP próprio ou FCP-ST da operação.

Exemplo sintético de total: um item contribui 20,00 e outro 5,00; o total desse fundo anterior é 25,00. Não multiplique uma base agregada por um percentual médio inventado para substituir o somatório. Confira cada item, a presença do campo e o total do XML efetivamente enviado. Essa validação é distinta da N27d-10/860, que no MOC está marcada para implementação futura. Fonte: MOC 7.0, Anexo I, pp. 113 e 120.

Como localizar a origem de uma diferença?

Compare primeiro a retenção documentada, a base e o percentual do item; depois compare o valor gerado. Se o item confere e o total não, examine o somador, os itens incluídos e a família de FCP utilizada. Se ambos não conferem, confirme cada erro separadamente: ajustar apenas o total pode esconder uma parcela errada.

Registre modelo, UF, ambiente, data, mensagem e item. Para 881 e 875, revise o percentual e suas condições; para 859, a soma; para eventual 860, confira a regra e a implantação efetiva antes de atribuí-la a este XPath. Confirme com o responsável contábil produto, incidência, retenção e período quando faltarem parâmetros. Corrija a origem demonstrada, gere novo XML de teste e preserve XML assinado; não altere CST ou consumidor final para fazer o cálculo passar. 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/vFCPSTRet
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