vFCPSTRet no ICMS60: valor do FCP anterior e totalização
<vFCPSTRet>det › imposto › ICMS › ICMS60 › vFCPSTRetRevisã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 valor deve ser somado novamente por estar separado de pST?
- Como representar o valor no XML?
- Como conferir a totalização e a rejeição 859?
- Como localizar a origem de uma diferença?
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
- 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
- vBCFCPSTRet em ICMS60 —
/nfeProc/NFe/infNFe/det/imposto/ICMS/ICMS60/vBCFCPSTRet. - pFCPSTRet em ICMS60 —
/nfeProc/NFe/infNFe/det/imposto/ICMS/ICMS60/pFCPSTRet. - pST em ICMS60 —
/nfeProc/NFe/infNFe/det/imposto/ICMS/ICMS60/pST. - ICMS60 em ICMS60 —
/nfeProc/NFe/infNFe/det/imposto/ICMS/ICMS60.
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