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

vBCIRRF em retTrib: base do IRRF na NF-e

<vBCIRRF>total › retTrib › vBCIRRF

Revisã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