Pular para o conteúdo
Fiscal ProBiblioteca
NF-e e NFC-e · Cobrança e pagamentos

vPag na NF-e: valor por meio, soma e troco

<vPag>pag › detPag › vPag

Revisão editorial em 26 de set. de 2026. As versões e condições das regras estão indicadas ao longo do artigo.

vPag, em /nfeProc/NFe/infNFe/pag/detPag/vPag, é o valor do pagamento associado ao meio daquele detPag. Ele é obrigatório em cada detalhe e não deve receber o total da venda repetido em todos os meios.

Origem do valor e formato XML

Obtenha o valor do registro de venda/pagamento, do retorno documentado da transação ou da condição representada no detalhe, preservando o vínculo à mesma empresa e operação. O valor entregue pelo comprador, o valor da transação e o repasse líquido após taxa podem ser diferentes; confirme qual informação está sendo mapeada. O campo não é definido como receita líquida de tarifas.

O formato monetário é 13v2: até 13 algarismos inteiros e duas casas decimais. Use ponto no XML, sem símbolo R$ ou separador de milhar. O tipo estrutural admite zero, mas isso não permite zerar um pagamento real para corrigir uma soma. tPag=90 tem condição específica: informar vPag diferente de zero é objeto de YA03-30/904, aplicação facultativa documentada para 55/65.

Exemplo misto: cada valor participa uma vez

Suponha uma venda de R$ 150,00 com R$ 100,00 em dinheiro e R$ 50,00 em cheque, sem troco. A soma dos detalhes será R$ 150,00.

Fragmento parcial e sintético, sem os demais grupos da nota e sem aptidão para transmissão:

<pag xmlns="http://www.portalfiscal.inf.br/nfe">
  <detPag><tPag>01</tPag><vPag>100.00</vPag></detPag>
  <detPag><tPag>02</tPag><vPag>50.00</vPag></detPag>
</pag>

Se o emissor colocar R$ 150,00 em ambos, os valores somarão R$ 300,00. Essa diferença não é necessariamente troco real; primeiro confirme se houve duplicação do total. Inventar vTroco=150.00 apenas faria uma equação fechar sem representar o ocorrido.

Soma, total da nota e troco

Para uma situação com troco real, a conferência documentada é vTroco = soma(vPag) − vNF. Se a nota for R$ 150,00 e os valores entregues na hipótese forem R$ 100,00 em dinheiro e R$ 60,00 em cheque, a soma será R$ 160,00 e o troco real assumido, R$ 10,00. Ele fica em pag/vTroco, após os detalhes, não em cada ocorrência.

A YA03-10, para NFC-e 65, trata soma menor que vNF, código 865, aplicação facultativa. Suas exceções documentadas são ajuste/devolução (finalidade 3/4) e meio 90-Sem Pagamento. A YA03-20, para modelos 55/65, trata soma maior que vNF sem troco, código 866, também facultativa. A YA09-10 confere o valor de troco contra a diferença, código 869, obrigatória. Essas diferenças de aplicação precisam ser preservadas; não se deve apresentar toda validação como universal para NF-e 55.

“Facultativa” descreve a aplicação da regra pela autorizadora, não autoriza dados inconsistentes ou a fabricação de um troco. A NT 2023.004 v1.20 também estabelece o teto R$ 300.000,00 na YA09-20, código 965.

Fatura, parcela e repasse não são vPag

cobr/fat/vLiq é o líquido da fatura e cobr/dup/vDup é o valor de uma parcela de cobrança. A soma de parcelas é conferida contra vLiq; essa equação não usa vPag. A divisão em parcelas do cartão também não é automaticamente uma lista de meios diferentes no XML.

Se o prestador repassa R$ 98,00 por uma transação de R$ 100,00 devido a tarifa contratual, a diferença não prova que o comprador pagou R$ 98,00. Confirme documento da venda, comprovante/retorno e composição do repasse antes de alterar o valor. Desconto ou renegociação também precisam estar documentados, não deduzidos de um extrato isolado.

O código 91-Pagamento Posterior da tabela atual difere de 90: representa pagamento integral ou parcial posterior à emissão/fato gerador, não ausência universal de pagamento. A existência do código não é comprovante de liquidação nem regra geral de zerar vPag; confirme a condição e o valor associados à operação real.

Como investigar 865, 866 ou 904

Na 865, confirme o modelo, as condições/exceções e some todos os vPag efetivamente enviados. Procure meio faltante, valor importado como líquido de taxa ou perda de centavos. Na 866, confira se a soma maior corresponde a valor realmente entregue com troco ou a duplicação de dados; não complete outro campo antes desse diagnóstico.

Na 904, confronte o 90 com o valor e com a finalidade/condição documentada, sem alterar finalidade fiscal por conveniência. No emissor, verifique decimal, conversão de separadores e associação do valor a cada meio. Corrija a origem do rascunho e revalide o XML regenerado, sem editar XML assinado ou alterar um pagamento real. Veja vTroco e sua equação e tPag e pagamento posterior.

Fontes oficiais

Referência técnica para integração

XPath completo
/nfeProc/NFe/infNFe/pag/detPag/vPag
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
Obrigatório

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