Pular para o conteúdo
Fiscal ProBiblioteca
NF-e e NFC-e · Informações complementares da operação

vTotDed no grupo cana: totalizar e conferir as deduções

<vTotDed>cana › vTotDed

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

vTotDed é o valor total das deduções no registro de aquisição de cana, em /nfeProc/NFe/infNFe/cana/vTotDed. O MOC o identifica como ZC14. Ele consolida valores monetários; não é quantidade de descontos, percentual ou descrição da taxa.

De onde vem o total e o que deve ser comparado?

O grupo deduc discrimina deduções de taxas e contribuições. Cada ocorrência contém xDed, a descrição, e vDed, seu valor; são permitidas até dez ocorrências. O total consolidado fica fora dessas ocorrências, depois de vFor e antes de vLiqFor.

Para conferir o acerto, compare o demonstrativo de origem com cada dedução, sua descrição e seu valor. Some os valores monetários que pertencem ao acerto representado e confronte com vTotDed. Essa conferência é distinta de decidir se uma cobrança é permitida: o leiaute informa a representação, não autoriza criar taxa, contribuição ou abatimento.

Não confunda vTotDed com prod/vDesc ou o desconto dos totais da nota. O caminho cana identifica um registro específico de fornecimento, enquanto os campos de desconto têm outros contextos. Copiar uma dedução para um desconto fiscal exige análise da operação e não decorre de uma semelhança de nomes.

Como verificar uma soma e um caso sem deduções?

Hipótese sintética: três deduções documentadas de R$ 80,00, R$ 35,50 e R$ 14,50. A soma é 80,00 + 35,50 + 14,50 = 130,00. Se vTotDed trouxer R$ 115,50, confira se a terceira parcela ficou fora do mapeamento ou se o documento de origem utiliza outro escopo. A diferença isolada não demonstra qual sistema está errado.

Fragmento sintético, parcial em relação ao grupo cana e à NF-e:

<vTotDed xmlns="http://www.portalfiscal.inf.br/nfe">130.00</vTotDed>

Noutro cenário assumido, sem qualquer dedução, omitir todos os grupos deduc não dispensa vTotDed, obrigatório dentro de cana. O valor zero pode ser representado por 0.00. Isso retrata inexistência real de dedução; não serve para esconder parcela desconhecida. Com fornecimentos de R$ 1.000,00 e deduções inexistentes, o líquido do acerto seria R$ 1.000,00.

Que formato o XML aceita?

O tipo TDec_1302 é não negativo, com até 13 posições inteiras e duas casas quando se usa fração. Escreva 130.00, sem R$, vírgulas ou milhares. Não serialize valores negativos para compensar uma dedução invertida. Não some valores armazenados em centavos como se já estivessem em reais: R$ 14,50 deve sair como 14.50, não 1450.00.

O grupo cana ocorre 0..1, mas seus três valores monetários são obrigatórios quando ele é usado. A regra ZC01-10 do MOC prevê rejeição 763 para NFC-e com dados de cana; a existência estrutural no XSD comum não autoriza o uso nesse modelo.

Como corrigir sem ocultar a causa?

Confira referência, safra e fornecedor antes de comparar deduções de períodos diferentes. Se a discriminação estiver correta e o total errado, revise a agregação e a unidade monetária no emissor. Se o total refletir o demonstrativo, mas a discriminação não, revise a importação das parcelas. Preserve o documento que justifica a cobrança e confirme sua natureza com o responsável pela operação e pela escrituração. O resultado técnico esperado é a concordância entre parcelas aplicáveis, total e líquido do mesmo acerto, não apenas um XML que passe no XSD.

Fontes técnicas

MOC 7.0 — Anexo I — 7.0: p. 65, ZC10–ZC15; p. 128, ZC01-10/763.

XSD NF-e/NFC-e — PL_010f_v1.04: linhas 6363–6477, deduc, vTotDed e vLiqFor.

Tipos básicos NF-e/NFC-e — PL_010f_v1.04: linhas 301–309, TDec_1302.

Referência técnica para integração

XPath completo
/nfeProc/NFe/infNFe/cana/vTotDed
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
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\.[0-9]{2}|[1-9]{1}[0-9]{0,12}(\.[0-9]{2})?
whiteSpace
preserve