vEncIni na NF-e: leitura inicial do contador do abastecimento
<vEncIni>det › prod › comb › encerrante › vEncIniRevisão editorial em 14 de out. de 2026. As versões e condições das regras estão indicadas ao longo do artigo.
vEncIni registra a leitura do contador no início do abastecimento. É obrigatório dentro de encerrante, no caminho /nfeProc/NFe/infNFe/det/prod/comb/encerrante/vEncIni. Ele estabelece a referência para comparar a leitura de término vEncFin. MOC 7.0, Anexo I (7.00)
- Leitura inicial é a quantidade vendida?
- De onde obter e preservar vEncIni?
- Como conferir o exemplo?
- Quantas casas decimais usar no XML?
- O que verificar quando início e fim parecem invertidos?
Leitura inicial é a quantidade vendida?
Não. É uma leitura acumulada do contador antes do evento. A quantidade medida no abastecimento sem virada corresponde à diferença final menos inicial, na unidade efetiva do equipamento. O valor pago e a quantidade comercial faturada têm outros campos e não substituem essa leitura.
As duas leituras precisam pertencer ao mesmo contador e abastecimento. Um inicial de outro bico, mesmo numericamente plausível, destrói a correspondência. Não calcule o início a partir do fim e de uma quantidade comercial sem conferir o registro original do equipamento e eventuais diferenças de unidade ou temperatura.
De onde obter e preservar vEncIni?
Use o evento capturado no início do abastecimento e seu vínculo com nBico e nTanque, incluindo nBomba quando disponível. Preserve esse dado junto à referência do evento para confrontá-lo com o XML gerado.
Se a captura não forneceu a leitura, identifique essa informação faltante. Zero não é uma forma de representar ausência; não deve ser inserido como valor padrão para permitir a geração do grupo. Uma leitura inicial zero pode ser verdadeira, mas precisa estar sustentada pelo evento, inclusive no tratamento documentado de virada do contador.
Como conferir o exemplo?
Este fragmento é sintético e parcial em relação à nota. Supõe que as leituras vieram do mesmo bico e tanque:
<encerrante xmlns="http://www.portalfiscal.inf.br/nfe">
<nBico>3</nBico>
<nTanque>1</nTanque>
<vEncIni>1200.000</vEncIni>
<vEncFin>1225.500</vEncFin>
</encerrante>
O início é 1200,000, o fim é 1225,500 e a variação é 25,500. Se o contador estiver em litros, são 25,5 L medidos. O fato de o número inicial ser muito maior que a quantidade vendida é compatível com um contador acumulado e não indica, sozinho, erro.
Quantas casas decimais usar no XML?
O tipo TDec_1203 admite até 12 algarismos inteiros. Se há fração, ela tem exatamente três casas; por exemplo, 1200.000. Formas inteiras como 1200 e 0 também passam no padrão. 1200.00, 1200,000, negativo e número com separador de milhares não seguem essa expressão. Leiaute NF-e/NFC-e, pacote oficial PL 010f (PL_010f_v1.04) Tipos básicos NF-e/NFC-e, PL 010f (PL_010f_v1.04)
Não converta a leitura para duas casas por ser tratada como “valor” na aplicação. Esse arredondamento pode perder precisão da medição e afetar a comparação ou a conciliação do abastecimento.
O que verificar quando início e fim parecem invertidos?
A regra LA16-10, rejeição 380, exige final superior ao inicial nos modelos 55/65. Se os valores forem iguais ou o final for menor, compare os registros originais, ordem de captura, bico, tanque e associação entre evento e item. O formato válido dos dois números não resolve essa comparação. MOC 7.0, Anexo I (7.00)
Se o contador virou para zero, o MOC orienta um item até o limite 999... e novo item a partir de inicial zero. Confirme a virada e as parcelas reais antes de aplicar esse procedimento. Não troque os campos automaticamente nem force inicial zero. Veja vEncFin e encerrante para interpretar a comparação e o grupo completo. Preserve o XML assinado e corrija a origem demonstrada do erro.
Referência técnica para integração
- XPath completo
/nfeProc/NFe/infNFe/det/prod/comb/encerrante/vEncIni- 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_1203 · 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]{3}|[1-9]{1}[0-9]{0,11}(\.[0-9]{3})?- whiteSpace
preserve