vICMSRet na NF-e: valor retido do ICMS do transporte
<vICMSRet>transp › retTransp › vICMSRetRevisão editorial em 26 de set. de 2026. As versões e condições das regras estão indicadas ao longo do artigo.
vICMSRet registra, em reais, o valor do ICMS retido sobre o transporte dentro de retTransp. O caminho é /nfeProc/NFe/infNFe/transp/retTransp/vICMSRet. Ele representa um resultado monetário; não é a alíquota pICMSRet, a base vBCRet ou o valor do serviço vServ.
A leitura correta começa pela memória de cálculo da prestação. O campo não deve receber o ICMS total dos produtos nem um valor de retenção federal apenas porque todos são impostos retidos.
Conferir o resultado com os parâmetros definidos
Compare três informações da mesma memória: base, percentual e resultado. Numa demonstração de aplicação simples de percentual, a relação matemática é base × percentual ÷ 100. Essa demonstração não define incidência, composição da base, benefícios, ajustes ou a alíquota aplicável ao seu transporte.
Hipótese sintética: base R$ 800,00 e alíquota ilustrativa de 12%. O resultado exato é R$ 96,00. Se o sistema usar o valor do serviço de R$ 1.000,00 no lugar da base, a conta dará R$ 120,00. Se confundir 12% com 0,12%, dará R$ 0,96. Esses cenários mostram causas distintas; “diferença de centavos” não é diagnóstico suficiente.
Para resultados que exigem tratamento de casas, confira a memória e o critério aplicável à operação. O formato de duas casas não estabelece sozinho o método de arredondamento nem uma tolerância de validação. Não acrescente uma margem automática para ajustar o resultado até a autorização.
Representação monetária no XML
O MOC X15 identifica valor retido e formato 13v2. O tipo TDec_1302 do PL_010c prevê até treze inteiros e, quando decimal, duas casas, com alternativas inteiras e zero no padrão. 96.00 representa R$ 96,00; 96,00, R$96.00 e valor negativo não correspondem à representação descrita. MOC, p.60.
O filho é obrigatório uma vez quando o grupo existe, depois da alíquota e antes do CFOP. O pai é opcional estruturalmente. Zero explícito permitido no tipo não deve ser confundido com parâmetro desconhecido ou ausência de retenção.
Fragmento parcial e sintético, não pronto para transmissão. Código, local e valores são demonstrativos, sem recomendação fiscal:
<retTransp xmlns="http://www.portalfiscal.inf.br/nfe">
<vServ>1000.00</vServ>
<vBCRet>800.00</vBCRet>
<pICMSRet>12.00</pICMSRet>
<vICMSRet>96.00</vICMSRet>
<CFOP>5352</CFOP>
<cMunFG>4106902</cMunFG>
</retTransp>
O resultado do exemplo é coerente com a hipótese matemática e exato em centavos. Isso não comprova que a operação do leitor admita essa base, alíquota ou CFOP.
Divergência de cálculo não é rejeição 755
Se há erro de formato, examine separador decimal, escala reais/centavos, sinal e casas. Se há diferença de resultado, percorra origem da base, unidade percentual e memória; compare o que foi calculado com o que foi serializado. Evite sobrescrever manualmente o XML antes de identificar a camada que alterou o valor.
A rejeição 755 trata da presença de retTransp na NFC-e ou NF-e com DANFE Simplificado Tipo 2, tpImp=6, conforme X11-10 na NT 2026.002 v1.10a. O conjunto de transporte tem cronograma de teste em 01/07/2026 e produção em 03/08/2026, sem confirmação operacional da UF. Um valor correto ou zero não libera esse pai.
Se falta definição tributária, apresente ao responsável fiscal documentos do serviço, contrato, percurso e memória com as parcelas. Depois de definidos os parâmetros, confira resultado e formato, corrija a origem comprovada e preserve XML assinado. Veja alíquota da retenção para a escala percentual e base da retenção para sua composição documentada.
Referência técnica para integração
- XPath completo
/nfeProc/NFe/infNFe/transp/retTransp/vICMSRet- 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