225 - Rejeição: Falha no schema XML da NF-e - parte II

A NF-e é rejeitado por "215 - Rejeição: Falha no schema XML" ou "225 - Rejeição: Falha no schema XML da NFe". O arquivo XML é aceito pelo programa emissor da SEFAZ/SP e também não obtemos erro na validação das mensagens da NF-e oferecida pela SEFAZ/RS (http://www.sefaz.rs.gov.br/NFE/NFE-VAL.aspx).

Existe um caso mais interessante de "225 - Rejeição: Falha no schema XML da NF-e", a NF-e está correta, passa na validação de Schema XML e mesmo assim, o WS rejeita a NF-e por falha no schema XML.

Este caso tem acontecido com freqüência e tem derrubado muita gente boa, o motivo do erro é bastante simples:

O WS de recepção da NF-e recebe as NF-e em uma estrutura de lote, mesmo que o lote tenha uma única NF-e.

A validação de uma NF-e contra um schema XML de Lote de NF-e vai resultar em "225 - Rejeição: Falha no schema XML da NF-e".

Passos para criação de um lote de NF-e:

1. as NF-e devem ser assinadas individualmente;
2. eliminar a declaração XML de todas as NF-e;
3. inserir as NF-e na seguinte estrutura:


<?xml version="1.0" encoding="UTF-8"?>
<enviNFe xmlns="http://www.portalfiscal.inf.br/nfe" versao="2.00">
<idLote>000000823002811</idLote>
<NFe xmlns="http://www.portalfiscal.inf.br/nfe"><infNFe Id="NFe35080599999090910270550010000000015180051273" versao="2.00"> (...) </NFe>
<NFe xmlns="http://www.portalfiscal.inf.br/nfe"><infNFe Id="NFe35080599999090910270550010000000015180051273" versao="2.00"> (...) </NFe>
<NFe xmlns="http://www.portalfiscal.inf.br/nfe"><infNFe Id="NFe35080599999090910270550010000000015180051273" versao="2.00"> (...) </NFe>
<NFe xmlns="http://www.portalfiscal.inf.br/nfe"><infNFe Id="NFe35080599999090910270550010000000015180051273" versao="2.00"> (...) </NFe>
</enviNFe>


Observações:

1. a identação das tags foi realiazada apenas melhorar a visualização, o XML não deve ter identação e nem quebra de linha, sob risco de rejeição por erro 588;
2. a NF-e e lote só devem ter o namespace padrão do projeto xmlns="http://www.portalfiscal.inf.br/nfe", a existência de namespaces estranhos resulta em erro 587;
3. a versao do lote deve ser compatível com a NF-e, o exemplo acima é da versão 2.00;
4. o número do lote pode ser gerado livremente pelo emissor, pois a maioria das SEFAZ não faz nenhum controle, mas evite o uso em duplicidade;
5. A DLL oferece funcionalidades para enviar uma única NF-e (EnviaNFe2G/EnviaNFeSCAN).

Um outro erro comum é o desconhecimento do mecanismo de funcionamento da recepção de NF-e que é um processo assíncrono de duas etapas.

Muitas pessoas transmitem o lote da NF-e e ao receber o número do recibo de entrega do lote acreditam que a NF-e foi autorizada e depois desesperados ao verificar que a consulta da NF-e no Portal resulta ém NF-e inexistente!

Após o envio do lote de NF-e é preciso buscar o resultado do processamento do lote para verificar se as NF-e foram autorizadas.