Neste artigo abordaremos uma série de testes que você pode fazer utilizando ferramentas disponibilizadas gratuitamente pela SEFAZ para testar os arquivos XML de Nota Fiscal Eletrônica gerados por sua aplicação, bem como testar assinaturas digitais e garantir que o processo de transmissão de arquivos está funcional. Compartilhamos nossa experiência na execução de testes do projeto de forma que os leitores também possam efetuar os mesmos testes e garantir a funcionalida de suas aplicações de NFe que usem ou não soluções de terceiros quaisquer.
A NF-e é um documento emitido e
armazenado eletronicamente, com validade jurídica garantida por processo de
assinatura digital. O principal objetivo da implantação desta nova modalidade é
o acompanhamento em tempo real das operações comercias pelo Fisco e a
substituição do modelo atual de emissão de documentos fiscais em papel, de forma
a simplificar uma série de obrigações do contribuinte. Maiores informações podem
ser obtidas através do portal nacional em
www.nfe.fazenda.gov.br
Em artigos anteriores discutimos diversas questões relacionadas aos processos de
geração, assinatura e transmissão de arquivos de Nota Fiscal Eletrônica (NF-e),
no entanto não ressaltamos as soluções para problemas e dúvidas que comumente
surgem durante o processo de desenvolvimento destes projetos e dizem respeito à
validade do conteúdo e estruturas dos arquivos XML gerados bem como das suas
assinaturas digitais.
Testes e validações de NFe
Os arquivos de Nota Fiscal Eletrônica são arquivos XML (eXtensible Markup
Language) gerados conforme padrão de layout definido em arquivos de Schema
disponibilizados pelo Governo como Pacotes de Liberação e disponíveis para
download no Portal Oficial da NFe em
www.nfe.fazenda.gov.br
Uma vez gerados os arquivos conforme o layou definido nos Schemas sugere-se
realizar alguns testes de forma a garantir que seus arquivos são válidos. Para
realizar os testes é preciso ter um arquivo de NFe em mãos e caso a sua
aplicação ainda não gere os mesmos, algumas alternativas são possíveis:
1. Utilizar o programa Emissor (versão de Homologação) disponibilizado para
download pela SEFAZ no link
www.nfe.fazenda.gov.br/portal/emissor.aspx de forma a realizar o
preenchimento de uma NFe e a posterior exportação do arquivo XML.
2. Utilizar os arquivos de exemplo disponibilizados para download pela SEFAZ-RS
no link
www.sefaz.rs.gov.br/SEF_ROOT/inf/SEF-NFE.htm#NotaEX
3. Utilizar o aplicativo demo, desenvolvido em Delphi, disponibilizado para
download no site www.igara.com.br/produto.php?cod_produto=114 a partir do qual é
possível gerar o XML necessário clicando no botão “Nova NF-e”, depois no botão
“Salvar NF-e” e por fim selecionando o diretório onde deseja salvar o arquivo .XML
gerado.
4. Implementar o seu próprio sistema de geração de arquivos XML ou utilizar
qualquer outra solução de terceiros para tanto.
Em qualquer uma das alternativas o arquivo em questão pode ser visualizado no
Internet Explorer ou em qualquer outro browser de internet com suporte a XML, e
o resultado é conforme mostrado na Figura 01.

Figura 01: Arquivo
.xml de NF-e visualizado no Internet Explorer
A seguir disponibilizamos o conteúdo completo de um arquivo .XML de NFe gerado
conforme o processo descrito acima no item 3. Para utilizar este mesmo arquivo
em seus testes basta copiar o conteúdo da caixa de texto abaixo, cola-lo em uma
janela do NotePad e salvar o arquivo como
29080334261131000144550010000000013638874925-nfe.xml

Listagem 01:
Conteúdo completo de arquivo .xml de NF-e não assinado
Teste 01 – Abrindo no Browser
O primeiro teste a ser feito é abrir em um browser qualquer, o arquivo XML
gerado, e verificar se nenhum erro foi apresentado. Dessa forma a garantimos que
a estrutura de abertura e fechamento das tags do arquivo XML estão corretas,
exemplo:
Para toda tag de abertura, por exemplo, “<NFe>”, deve haver uma tag de
fechamento no estilo “</NFe>”. Sendo assim, para o exemplo do código anterior
apresentado acima, removendo a última tag “</NFe>” o seguinte é apresentado
conforme mostrado na Figura 02.

Figura 02: Arquivo
.xml de NF-e com erro de estrutura, sendo visualizado no Internet Explorer
Até o momento, o arquivo em questão não tem valor jurídico, pois ainda não foi
assinado de forma que o emissor possa certificar a validade das informações
fornecidas, bem como não há nada que garanta que este documento não foi alterado
por terceiros sem o conhecimento prévio do emitente.
Para tanto, é preciso assinar digitalmente este documento. O processo de
assinatura pode ser feito de várias formas, são elas:
1. Utilizar o aplicativo de assinatura de NF-e disponibilizado para download
gratuito no portal oficial da NF-e em
www.nfe.fazenda.gov.br
2. Utilizar o aplicativo demo, desenvolvido em Delphi, disponibilizado para
download no site
www.igara.com.br/produto.php?cod_produto=114 que através do uso da
assinatura32dll.dll torna possível assinar os arquivos XML gerados.
3. Implementar o seu próprio sistema de geração de arquivos XML ou utilizar
qualquer outra solução de terceiros para tanto.
O processo descrito nos itens 1 e 2 acima já foram abordados em artigos
anteriores.
Em qualquer uma das opções anteriores, assinando o arquivo mostrado
anteriormente, o resultado final será equivalente ao apresentado a seguir, onde
o arquivo foi assinado utilizando um Certificado Digital válido, do tipo ToKen
USB A3, emitido pela CertiSign.

Listagem 02:
Conteúdo completo de arquivo .xml de NF-e assinado
Teste 02 – Validador Online SEFAZ-RS
É possível ainda submeter seus arquivos do Projeto NFe a testes mais detalhados,
através do uso do validador online de mensagens, disponibilizado gratuitamente
pela SEFAZ-RS no link
http://www.sefaz.rs.gov.br/AAE_ROOT/NFE/SAT-WEB-NFE-VAL_1.asp
Para testar sua mensagem basta abrir o arquivo .XML desejado, copiar seu
conteúdo completo, colá-lo no campo de dados e clicar no botão “Validar”. Caso o
mesmo exemplo do Teste 01 seja submetido ao validador online o resultado da
validação será conforme mostrado na Figura 03.

Figura 03:
Validação online de arquivo .xml de NF-e com erro de estrutura.
É importante ressaltar que este validador pode ser utilizado para validar
qualquer tipo de mensagem do Projeto NFe, incluindo mensagens de NFe,
Cancelamento, Inutilização, Consulta e etc. O resultado da validação de arquivos
de NFe válidos conforme o código apresentado na Listagem 02 é mostrado na Figura
04.

Figura 04: NFe
válida conforme validador online de mensagens do Projeto NFe disponibilizado
pela SEFAZ-RS
Teste 04 – Assinador de NFe
Conforme abordado em artigo anterior, arquivos de NFe podem ser assinados
utilizando o aplicativo de assinatura disponibilizado para download gratuito no
portal oficial da NF-e em
www.nfe.fazenda.gov.br
Este aplicativo, além de possibilitar a assinatura de arquivos permite também
efetuar a verificação e validação do Schema XML e da assinatura digital. O
resultado da validação de arquivos de NFe válidos conforme o código apresentado
na Listagem 02 é mostrado na Figura 05.
Esta opção é particularmente interessante para aqueles que detêm a tecnologia do
processo de geração dos arquivos XML e não dispõe de solução para assinatura
digital dos arquivos.

Figura 05: NFe
válida conforme aplicativo Assinador de NFe disponibilizado pela SEFAZ-RS
Teste 03 - Visualizador de NFe
Arquivos de NFe, após assinados, podem ser verificados no aplicativo
Visualizador de NF-e, disponibilizado para download gratuito no portal oficial
da NF-e em
www.nfe.fazenda.gov.br
Somente arquivos válidos são visualizados corretamente, conforme mostrado na
Figura 04, resultado da abertura do arquivo apresentado na Listagem 02.
Clicando na opção Verificar no Menu principal do aplicativo, temos ainda a opção
de verificar a estrutura e conteúdo, bem como a validade da assinatura digital
do arquivo.

Figura 06: NFe
válida conforme aplicativo Visualizador de NFe.
Teste 05 – Emissor de NFe
Arquivos de NFe, após assinados, podem ser importados para o aplicativo Emissor
de NF-e, disponibilizado para download gratuito no portal oficial da NF-e em
www.nfe.fazenda.gov.br
Somente arquivos válidos são visualizados corretamente, conforme mostrado na
Figura 05, resultado da abertura do arquivo apresentado na Listagem 02.
Esta opção é particularmente interessante para aqueles que detêm a tecnologia do
processo de geração dos arquivos XML dispõem ou não de solução para assinatura
digital dos arquivos, mas não dispõem de solução para transmissão dos arquivo
gerados e assinados. É possível, gerar e assinar os arquivos através do seu
sistema, deixando que o sistema da SEFAZ gerencie todo o processo de transmissão
dos mesmos.

Figura 07: NFe
válida importada para aplicativo Emissor de NFe.
Teste 06 – Validação de arquivos XML vs. XSD em sua aplicação
Conforme mostrado no Teste 02 a SEFAZ-RS disponibiliza um validador online para
testes detalhados dos arquivos XML gerados. Estes testes validam conteúdo e
estrutura e são baseados no processo de comparação do XML com o seu respectivo
XSD.
Arquivos XSD são um dos três padrões existentes para a validação de documentos
XML (DTDs, XDR e XSD). Um documento XSD é em sua essência um documento XML. Isso
quer dizer que ele deve obedecer as mesmas regras que um documento XML exige (em
especial as regras relacionadas a sua boa formação).
Utilizando os recurso das classes TXMLDocument e interfaces IDOMDocument é
possível implementar em sua aplicação os mesmos recursos oferecidos pelo
validador online da SEFAZ-RS, conforme demonstrado no aplicativo demo da Figura
06 que acompanho o download da solução de NFe disponível no site
www.igara.com.br/produto.php?cod_produto=114

Figura 08:
Validação de arquivos XML vs. XSD
Teste 07 – Teste de conexão antes de iniciar a transmissão
Caso o usuário tente acessar os webservices de comunicação com a SEFAZ para
realizar o envio de arquivos, sem que o mesmo esteja devidamente conectado à
internet, ocorrerão erros de transmissão. Portanto é aconselhável que seu
aplicativo, antes de executar qualquer função de transmissão, teste a
conectividade com a internet, que pode ser feito conforme mostrado a seguir:

O procedimento anterior
procedimento, implementado no evento onClick de um botão, testa de forma
bastante eficiente a conectividade com a internet, e funciona tanto em
computadores PC e Notebook para conexões com fio e wireless. Para sua correta
execução, deve-se incluir ao projeto a unit a seguir, e declará-la no uses do
formulário onde se encontra o botão.

Teste 08 –
Disponibilidade de Serviços
Mesmo com todas as precauções possíveis, é possível que um dia, um cliente já em
operação, entre em contato informando que o seu aplicativo subitamente parou de
funcionar e não está efetuando a transmissão de arquivos. Nestes casos é
possível que os webservices de recepção de arquivos estejam em manutenção,
sobrecarga ou com algum outro defeito temporário no sistema da SEFAZ.
Para resolver questões como estas, o portal oficial do projeto de Nota Fiscal
Eletrônica disponibiliza um serviço de consulta à disponibilidade dos
webservices. O serviço está disponível no link
http://www.nfe.fazenda.gov.br/portal/VerificacaoDeServicos/VerificacaoServicos.aspx
Este teste indica se o problema encontrado na comunicação é da sua aplicação em
si, ou da disponibilidade do serviço da SEFAZ em questão, dando maior
tranqüilidade ao desenvolvedor e segurança ao cliente.
São feitas consultas aos serviços a cada 140 segundos, o resultado é apresentado
de forma gráfica em uma tabela que apresenta uma visão geral dos serviços
disponíveis na SEFAZ em cada Unidade Federativa, conforme mostrado na Figura 07.

Figura 9: Serviço
de consulta da disponibilidade dos Webservices
Conclusão
Neste artigo fizemos um apanhado de conceitos e tecnologias envolvendo testes
que podem ser aplicados no desenvolvimento e implantação de soluções para NF-e,
de forma a garantir a correta estrutura e conteúdo dos arquivos XML gerados e
assinados pelo seu aplicativo.
Apresentamos alternativas de testes simples e eficazes que dão ao leitor uma
visão mais clara de como proceder para realizar testes de sua aplicação. Agora
ficou muito mais fácil testar seu projeto de NFe!
Alexandre Magno é estudante de Engenharia Mecatrônica da UNIFACS –
Universidade Salvador e desenvolvedor da TKS Software - Soluções de Automação e
Softwares Dedicados. Pode ser contatado em
alexandremlcosta@hotmail.com
Fellipe Capolupo é estudante de Engenharia Elétrica da UNIFACS –
Universidade Salvador e desenvolvedor da TKS Software - Soluções de Automação e
Softwares Dedicados. Pode ser contatado em
capolupofellipe@yahoo.com.br
Victory Fernandes é Professor do Departamento de Engenharia da UNIFACS,
Engenheiro Mestrando em Redes de Computadores, e desenvolvedor sócio da TKS
Software - Soluções de Automação e Softwares Dedicados. Pode ser contatado em
victory@igara.com.br , ou através dos
sites www.igara.com.br
–
www.igara.com.br/victory
|