fiscal-mcp

fiscal-mcp / rejeições / 225

Rejeição 225

Falha no schema XML — o arquivo não obedece ao leiaute.

reversível — corrija o documento e transmita de novoNF-e · SEFAZ
01.

O que aconteceu

O XML não passou no XSD da versão declarada em infNFe/@versao. Isso é leiaute, não regra de negócio: elemento faltando, elemento fora da ordem que o schema exige, ou valor fora do tipo do campo. A mensagem completa da SEFAZ costuma trazer o elemento culpado — e é justamente a parte que muita integração descarta antes de gravar no log.

02.

O XML, antes e depois

Valor monetário gravado sem as duas casas decimais que o tipo do campo exige. Passa no seu código, não passa no XSD.

o que foi transmitido

<prod>
  <cProd>P001</cProd>
  <xProd>Produto de exemplo</xProd>
  <vUnCom>125.00</vUnCom>
  <vProd>250</vProd>
</prod>

o que a SEFAZ aceita

<prod>
  <cProd>P001</cProd>
  <xProd>Produto de exemplo</xProd>
  <vUnCom>125.00</vUnCom>
  <vProd>250.00</vProd>
</prod>

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.

03.

O que fazer

Valide o XML contra o XSD da versão declarada antes de transmitir. A mensagem completa da SEFAZ costuma indicar o elemento culpado.

04.

Reproduzir sem 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 225

{
  "ok": true,
  "codigo": "225",
  "significa": "Falha no schema XML — o arquivo não obedece ao leiaute.",
  "acao": "Valide o XML contra o XSD da versão declarada antes de transmitir. A mensagem completa da SEFAZ costuma indicar o elemento culpado.",
  "reversivel": true
}
fiscal-mcp validar nota.xml

Pega parte dos casos — as regras de formato conferem os campos monetários. Validação completa por XSD ainda não está no pacote: está no roadmap, e até lá o XSD oficial do Portal da NF-e é a referência.

05.

A redação exata varia

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.

← todas as rejeições catalogadas