vBCIRRF em retTrib: base do IRRF na NF-e
<vBCIRRF>total › retTrib › vBCIRRFRevisão editorial em 14 de out. de 2026. As versões e condições das regras estão indicadas ao longo do artigo.
retTrib/vBCIRRF informa a base de cálculo do Imposto de Renda Retido na Fonte. Não é o valor retido, que fica em vIRRF, e não deve ser somada à cobrança como se fosse um imposto adicional.
Onde localizar a base de IRRF
XPath completo: /nfeProc/NFe/infNFe/total/retTrib/vBCIRRF. 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 campo pertence às retenções federais da NF-e/NFC-e. Não é uma tag de NFS-e, nem um destaque de imposto próprio de item. Fonte: MOC 7 Anexo I — leiaute e regras de validação, grupo W02.
W27 é a base de IRRF; W28, vIRRF, é o valor retido. vBCRetPrev é base previdenciária, e bases vBC de ICMS ou ISS têm outros ancestrais. Não reutilize qualquer base de nome parecido. Fonte: MOC 7 Anexo I — leiaute e regras de validação, p.60.
De onde obter a base e quais parâmetros confirmar
A base deve corresponder à memória de cálculo de IRRF da operação documentada. O leiaute não diz que ela seja sempre igual a vProd, vServ, vNF, valor líquido ou base de Previdência. A definição material depende da natureza do pagamento, documentos, partes, data e fundamento. Esses dados precisam ser confirmados antes do preenchimento.
Também não se deve inferir a base dividindo vIRRF por uma alíquota presumida: o grupo não informa alíquota, e uma mesma quantia retida não identifica sozinha a formação da base. O artigo permite conferir a representação depois da definição, sem escolher o tratamento.
Exemplo de base e imposto em campos separados
Hipótese técnica: a memória já confirmou base de IRRF de R$ 1.000,00 e retenção de R$ 12,00. Esses são valores de entrada, sem sugestão de percentual. Fragmento completo do grupo informado, parcial em relação à nota:
<retTrib xmlns="http://www.portalfiscal.inf.br/nfe">
<vBCIRRF>1000.00</vBCIRRF>
<vIRRF>12.00</vIRRF>
</retTrib>
A base é R$ 1.000,00; o valor retido é R$ 12,00. Não some os dois como uma retenção de R$ 1.012,00 nem copie a base para vIRRF. Fonte: Schemas XML NF-e/NFC-e PL 010f.
Obrigatoriedade e formato da base
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.
vBCIRRF tem ocorrência 0–1 dentro de retTrib. Sua posição é depois de vRetCSLL e antes de vIRRF, quando presentes. A cardinalidade opcional não comprova que sua omissão seja fiscalmente adequada à operação. Fonte: Schemas XML NF-e/NFC-e PL 010f.
Como diagnosticar um valor divergente
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.
Procure troca entre base e retenção, cópia indevida de vNF ou uso da base de Previdência. Se o XML difere da memória correta, corrija o mapper; se a memória carece de fundamento ou dado, confirme esse parâmetro antes de recalcular.
O valor retido em vIRRF detalha a coluna de imposto correspondente à base W27.
Referência técnica para integração
- XPath completo
/nfeProc/NFe/infNFe/total/retTrib/vBCIRRF- 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
- TDec_1302Opc · 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-9]{1}[1-9]{1}|0\.[1-9]{1}[0-9]{1}|[1-9]{1}[0-9]{0,12}(\.[0-9]{2})?- whiteSpace
preserve