fiscal-mcp / rejeições / 610
Total da NF-e diferente do somatório dos itens.
A soma de det/prod/vProd não bate com total/ICMSTot/vProd. As duas origens mais comuns: arredondamento item a item, quando qCom × vUnCom tem mais de duas casas e cada item é arredondado por conta própria; e desconto aplicado no total sem ser distribuído nos itens.
Dois itens somam 250,00. O total foi gravado com outro valor — aqui, exagerado de propósito para o erro ficar visível.
o que foi transmitido
<det nItem="1">
<prod><vProd>200.00</vProd></prod>
</det>
<det nItem="2">
<prod><vProd>50.00</vProd></prod>
</det>
<total>
<ICMSTot>
<vProd>999.00</vProd>
</ICMSTot>
</total>
o que a SEFAZ aceita
<det nItem="1">
<prod><vProd>200.00</vProd></prod>
</det>
<det nItem="2">
<prod><vProd>50.00</vProd></prod>
</det>
<total>
<ICMSTot>
<vProd>250.00</vProd>
</ICMSTot>
</total>
Exemplo mínimo e fictício. Onde aparece CNPJ ou chave de acesso, o número não é de empresa nenhuma — nem passa no próprio dígito verificador.
Some os vProd de todos os itens e compare com total/ICMSTot/vProd. A regra tot-produtos-confere pega isso antes de transmitir.
Tudo aqui roda na sua máquina, sem certificado e sem enviar nada para lugar nenhum.
# o que a SEFAZ quis dizer
fiscal-mcp rejeicao 610
{
"ok": true,
"codigo": "610",
"significa": "Total da NF-e diferente do somatório dos itens.",
"acao": "Some os vProd de todos os itens e compare com total/ICMSTot/vProd. A regra tot-produtos-confere pega isso antes de transmitir.",
"reversivel": true
}
fiscal-mcp validar nota.xml
A regra tot-produtos-confere refaz a soma e mostra a diferença em reais, sem transmitir nada.
A mensagem que chega da SEFAZ muda de UF para UF e de versão para versão do Manual de Orientação do Contribuinte — o que não muda é o código. O texto acima é o significado consolidado no catálogo do fiscal-mcp, não a transcrição literal de uma resposta.
Se a sua veio diferente, ou se o campo que resolveu foi outro, abra uma issue — o catálogo é um YAML de umas poucas linhas, e é assim que ele fica melhor.