vPag na NF-e: valor por meio, soma e troco
<vPag>pag › detPag › vPagRevisã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
- MOC 7.0 — Anexo I, 7.0; Grupo Y/YA, p. 61–62 e 125–126.
- NT 2023.004 — Informações de Pagamentos e Outros, 1.20; p. 3–6, 11–12, 14–15.
- Tabela de meios de pagamento, Publicada SVRS 04/03/2026; Plan1!A2:E26.
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