retTrib na NF-e: retenções federais, bases e valores
<retTrib>total › retTribRevisão editorial em 14 de out. de 2026. As versões e condições das regras estão indicadas ao longo do artigo.
retTrib reúne valores de retenções de tributos federais no total da NF-e/NFC-e. Contém PIS, COFINS, CSLL, IRRF e Previdência Social; as bases de IRRF e Previdência são campos separados dos valores retidos.
Nesta página:
- Onde fica o grupo e o que a estrutura exige
- Quais são os campos e o que cada um significa
- Como distinguir retenção de outros totais
- Exemplo de representação com premissas declaradas
- Formato, ausência e zero dos filhos
- retTrib define alíquota ou reduz automaticamente vNF?
- Como investigar divergência ou erro de integração
Onde fica o grupo e o que a estrutura exige
XPath completo: /nfeProc/NFe/infNFe/total/retTrib. Se o arquivo contém apenas a raiz NFe, retire /nfeProc do início. Em consultas XPath, associe um prefixo, por exemplo n, ao namespace http://www.portalfiscal.inf.br/nfe e use esse prefixo em cada elemento. Buscar apenas pelo nome da última tag pode misturar item e total ou grupos tributários diferentes.
O grupo é opcional, no máximo uma ocorrência, depois de ISSQNtot e antes de ISTot quando esses irmãos existirem. Seus sete filhos são opcionais, mas têm ordem definida. A estrutura não exige que todos os tributos sejam informados juntos e não determina quando a operação está sujeita à retenção. Fonte: Schemas XML NF-e/NFC-e PL 010f.
Quais são os campos e o que cada um significa
| Ordem | Campo | Significado |
|---|---|---|
| 1 | vRetPIS |
Valor retido de PIS. |
| 2 | vRetCOFINS |
Valor retido de COFINS. |
| 3 | vRetCSLL |
Valor retido de CSLL. |
| 4 | vBCIRRF |
Base de cálculo do IRRF. |
| 5 | vIRRF |
Valor retido de IRRF. |
| 6 | vBCRetPrev |
Base de cálculo da retenção da Previdência Social. |
| 7 | vRetPrev |
Valor da retenção da Previdência Social. |
Prev significa Previdência, não “anterior”. O grupo não contém uma base única para PIS, COFINS e CSLL, nem suas alíquotas. Não tente recuperar uma base fiscal dividindo qualquer total por uma taxa presumida. Fonte: MOC 7 Anexo I — leiaute e regras de validação, pp.59–60.
Como distinguir retenção de outros totais
ICMSTot/vPIS e vCOFINS totalizam impostos de itens no recorte ICMS; os campos de ISSQNtot usam o recorte de serviços. retTrib/vRetPIS e vRetCOFINS representam retenções. Uma contribuição apurada e sua retenção não são a mesma coluna.
ISS retido fica em ISSQNtot/vISSRet, e outras retenções de serviços em ISSQNtot/vOutro. O leiaute não manda agregar esses valores dentro de retTrib, nem usar vRetPrev para uma retenção histórica de ICMS-ST. Fonte: MOC 7 Anexo I — leiaute e regras de validação, pp.58–60.
Exemplo de representação com premissas declaradas
Hipótese exclusivamente técnica: a memória de retenções já confirma PIS de R$ 2,00, COFINS de R$ 6,00, CSLL de R$ 3,00, base de IRRF de R$ 1.000,00 e IRRF de R$ 12,00, base previdenciária de R$ 800,00 e retenção previdenciária de R$ 40,00. Esses valores são premissas independentes, sem recomendação de incidência, base ou percentual.
Fragmento completo de retTrib, parcial em relação à nota:
<retTrib xmlns="http://www.portalfiscal.inf.br/nfe">
<vRetPIS>2.00</vRetPIS>
<vRetCOFINS>6.00</vRetCOFINS>
<vRetCSLL>3.00</vRetCSLL>
<vBCIRRF>1000.00</vBCIRRF>
<vIRRF>12.00</vIRRF>
<vBCRetPrev>800.00</vBCRetPrev>
<vRetPrev>40.00</vRetPrev>
</retTrib>
Não some bases aos valores retidos: R$ 1.000,00 e R$ 800,00 são referências de cálculo, não montantes retidos. O exemplo não demonstra recolhimento ou pagamento. Fonte estrutural: Schemas XML NF-e/NFC-e PL 010f.
Formato, ausência e zero dos filhos
No PL 010f v1.04, o tipo TDec_1302Opc usa ponto como separador, sem R$, vírgula, espaço, sinal ou separador de milhar. Para valores com parte decimal, use duas casas, como 12.50. O padrão não aceita 0 ou 0.00: a ausência de uma tag opcional e o valor zero são estados diferentes. Preserve o zero conhecido na origem; a serialização deve seguir o tipo, sem inventar um valor positivo ou substituir informação desconhecida por zero. Fonte: Tipos básicos NF-e/NFC-e.
Assim, vIRRF=0.00 pode falhar no schema mesmo que o campo seja opcional. Preserve a informação real na origem e represente o XML conforme o tipo; nunca substitua zero por R$ 0,01 para obter aceitação. Uma ausência de parâmetro fiscal também não pode ser convertida em zero.
retTrib define alíquota ou reduz automaticamente vNF?
O grupo não contém alíquotas e não fornece uma regra geral para escolher base ou retenção. A composição de vNF em W16-10, atualizada pela NT 2023.004, não traz uma subtração genérica de todos os filhos de retTrib; bases de retenção não são parcelas de preço. Não transforme o valor fiscal da nota em líquido a receber por uma fórmula presumida. Para definir incidência, valores e reflexos financeiros, reúna contrato, natureza do pagamento, documentos, partes, regime e data com o responsável contábil. Fontes: MOC 7 Anexo I — leiaute e regras de validação, pp.59–60 e 122; NT 2023.004 — Informações de Pagamentos e Outros, pp.15–16.
Como investigar divergência ou erro de integração
O MOC 7, Anexo I, p.123, informa que não há regras de validação para o grupo retTrib. Isso se refere às regras de negócio daquela edição; o XSD continua exigindo sequência, tipo e cardinalidade. Não invente um código de rejeição de soma para este campo. Compare documento de origem, memória de retenção, valores armazenados e XML final; investigue separadamente formato, mapeamento e mérito fiscal. Corrija somente a origem comprovada, preservando XML autorizado. Fonte: MOC 7 Anexo I — leiaute e regras de validação.
Uma conferência útil usa colunas separadas para as duas bases e para cada retenção, vinculadas à mesma nota/empresa. Compare cada campo com sua memória específica; não some todas as tags cujo nome contém Ret ou Prev. A autorização do XML não comprova recolhimento das retenções.
A base de retenção da Previdência em vBCRetPrev esclarece o sufixo Prev e sua diferença para retenções históricas.
Referência técnica para integração
- XPath completo
/nfeProc/NFe/infNFe/total/retTrib- Namespace
http://www.portalfiscal.inf.br/nfe- Leiaute
- 4.00 · PL_010e_v1.02
- Ocorrências no XSD
- 0–1 no contexto do elemento pai
- Tipo
- inline:complexType
- 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.