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

vTroco na NF-e: cálculo, limite e rejeições 866, 869 e 965

<vTroco>pag › vTroco

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

vTroco, em /nfeProc/NFe/infNFe/pag/vTroco, registra o valor do troco. Ele aparece uma vez no grupo pag, depois dos detalhes detPag. O cálculo documentado para conferência é soma(vPag) − vNF; o valor deve representar troco real, não um ajuste inventado para fechar valores inconsistentes.

Como calcular com mais de um pagamento

Some todos os vPag de pag/detPag e subtraia o total fiscal total/ICMSTot/vNF usado pela regra. Não subtraia o líquido da fatura vLiq, a soma das parcelas vDup ou um repasse bancário. Esses campos pertencem a outros conceitos e equações.

Suponha nota de R$ 150,00, entrega de R$ 100,00 em dinheiro e R$ 60,00 em cheque, com troco efetivo de R$ 10,00. A conta é 100,00 + 60,00 = 160,00 e 160,00 − 150,00 = 10,00. A conferência reversa será 160,00 − 10,00 = 150,00.

Fragmento parcial e sintético de pag, sem assinatura e sem os demais grupos da nota; não está pronto 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>60.00</vPag></detPag>
  <vTroco>10.00</vTroco>
</pag>

O exemplo mostra dois meios e um único troco. Não coloque R$ 10,00 em cada detalhe nem repita vTroco. O formato monetário 13v2 usa ponto decimal, sem símbolo monetário ou separador de milhar. O campo é estruturalmente opcional e seu tipo admite zero, mas isso não dispensa informar corretamente um troco que existe.

Ausência, valor errado e limite são erros distintos

Regra Condição documentada Código e aplicação
YA03-20 Soma dos pagamentos maior que vNF, sem vTroco 866, modelos 55/65, facultativa
YA09-10 Troco informado diferente de soma(vPag) − vNF 869, modelos 55/65, obrigatória
YA09-20 Troco informado superior a R$ 300.000,00 965, modelos 55/65, obrigatória, limite da NT 2023.004 v1.20

Se o troco fosse R$ 9,00 no exemplo, a soma continuaria R$ 160,00 e a diferença esperada, R$ 10,00: seria uma divergência de valor da 869. Se o troco não fosse informado, a condição de ausência da 866 seria distinta. Não trate os dois retornos como uma tolerância genérica de arredondamento.

O limite atual não é R$ 1.000,00

A NT 2023.004 v1.20, de outubro/2024, elevou a YA09-20 de R$ 1.000,00 para R$ 300.000,00, com entrada imediata em homologação e produção. O valor R$ 1.000,00 aparece rasurado na página 15; a observação histórica de ativação da regra em 01/10/2024 não deve ser atribuída como data de criação do campo inteiro.

O limite é um teto de validação documentado, não recomendação para conceder troco elevado ou prova de pertinência operacional. A condição é “superior a”: R$ 300.000,00 não excede esse teto por esse critério isolado, mas a equação e os fatos da operação continuam obrigatórios. R$ 300.000,01 excede. Não altere pagamento ou total fiscal para encaixar um troco no limite.

Quando a soma menor não representa troco negativo

Se os detalhes somarem R$ 140,00 para uma nota de R$ 150,00, a diferença será −R$ 10,00. Isso não representa troco que deva ser informado com sinal negativo: investigue meio omitido, pagamento parcial, erro de valor ou condição da operação. No modelo 65, a YA03-10 trata soma menor que vNF, código 865, aplicação facultativa e exceções documentadas para ajuste/devolução e 90-Sem Pagamento.

Também não confunda desconto da venda ou da fatura com troco. Desconto altera uma condição comercial/valor conforme sua representação confirmada; troco devolve excesso real entregue na hipótese. Um valor excedente por duplicação de integração não se torna troco legítimo apenas porque a fórmula fecha.

Roteiro para 866, 869 ou 965

Preserve o XML e o retorno e compare os valores de cada meio com venda e comprovantes da mesma empresa. Na 866, confirme se houve excesso e devolução real ou se o total foi duplicado em mais de um detalhe. Na 869, refaça a equação usando exatamente os valores enviados e confira serialização decimal. Na 965, confira montante, teto atual e versão implementada, sem modificar fatos verdadeiros por tentativa.

Corrija a origem comercial ou o gerador do rascunho a partir da causa confirmada e revalide o XML regenerado. Não edite XML assinado, altere tributação ou invente descontos/trocos para obter autorização. Se há divergência no total fiscal, a composição precisa ser investigada separadamente com os documentos e parâmetros confirmados pelo responsável; este campo não define alíquotas ou incidência. Veja vPag por meio e pag e a conferência completa.

Fontes oficiais

Referência técnica para integração

XPath completo
/nfeProc/NFe/infNFe/pag/vTroco
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_1302 · string
Preenchimento no catálogo
Opcional

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