Rejeição 629: vProd, quantidade e preço comercial não conferem
Revisão editorial em 15 de out. de 2026. Confira as versões e condições das regras nas fontes do artigo.
A Rejeição 629, regra I11-10, compara o valor bruto do item vProd com qCom × vUnCom: quantidade comercial multiplicada pelo valor unitário de comercialização. O MOC a descreve para NF-e/NFC-e de finalidade normal, finNFe=1, com aplicação facultativa. A conferência é por item, não entre o preço e o total final da nota.
Precisão, arredondamento e tolerância
No leiaute, qCom aceita até quatro casas decimais e vUnCom até dez; vProd tem duas casas. A nota(*4) do MOC manda arredondar o resultado da multiplicação para duas casas decimais e considerar tolerância de R$ 0,01 para mais ou para menos na validação. Primeiro multiplique os valores efetivamente enviados, depois arredonde o resultado e compare ao vProd.
Não arredonde previamente o preço unitário para duas casas só porque a tela o exibe assim. Também não confunda arredondamento com truncamento. A nota citada não especifica, por si só, uma convenção universal para todos os casos de empate no arredondamento; se esse detalhe for a causa observada, confira a especificação e a implementação aplicáveis. A tolerância fiscal não é autorização para alterar o preço verdadeiro.
Exemplo calculado com os valores serializados
Hipótese sintética, sem recomendação fiscal: qCom=3.0000 e vUnCom=7.3333333333 (ponto decimal conforme a serialização XML). A multiplicação é 21,9999999999 e o resultado arredondado a duas casas é R$ 22,00.
| vProd enviado | Diferença frente a R$22,00 | Leitura desta comparação |
|---|---|---|
| R$22,00 | R$0,00 | Coincide |
| R$21,99 | R$0,01 a menos | Dentro da tolerância documentada |
| R$22,02 | R$0,02 a mais | Fora da tolerância documentada |
Se o emissor usa 7,33 na conta interna, chega a 21,99, enquanto o XML leva o preço com dez casas. Isso evidencia bases de cálculo comercial diferentes entre os estágios. Outro exemplo: dez unidades a R$8,00 formam vProd de R$80,00; desconto de R$5,00 é representado separadamente em vDesc, não transformando o valor bruto em R$75,00 para esta multiplicação.
Diferença para 630 e 564
A 630 compara o mesmo vProd ao par tributável qTrib × vUnTrib. Uma caixa comercial pode corresponder a várias unidades tributáveis: as quantidades e os preços unitários mudam, mas ambos os pares precisam representar o mesmo valor bruto conforme a operação. Já a 564 soma valores dos itens e os compara ao total vProd em ICMSTot. Uma conta de item correta não garante que o agregado esteja correto.
A conta comercial é demonstrável por campos e valores em tabela; um XML parcial não acrescentaria a origem do arredondamento. Por isso o exemplo não monta uma nota fiscal artificial.
Diagnóstico da origem da diferença
Preserve envio e retorno, confira finNFe, modelo e det/@nItem. Leia qCom, vUnCom e vProd no arquivo transmitido e reproduza a conta em aritmética decimal. Compare depois com pedido, cadastro, importação e tela. Procure perda de casas, uso de vírgula/ponto, duplicação de quantidade, desconto abatido no bruto ou atualização de preço sem recálculo do item.
Corrija a origem demonstrada, regenere o XML e confira também o par tributável e os totais afetados. Não ajuste a finalidade para escapar da regra nem edite documento assinado/autorizado. Se a operação ou seus valores estão em disputa, obtenha a confirmação comercial/fiscal correspondente antes de modificar os dados.
Fontes oficiais
- MOC — Anexo I, Leiaute e Regras de Validação — 7.0: p.93, I11-10; p.140, nota(*4).
- Leiaute da NF-e e protocolo — PL_010f_v1.04 / leiauteNFe_v4.00.xsd: det/prod/qCom, vUnCom, vProd: quantidades 4, preço 10, valor 2 casas.