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.
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.