CENTRO UNIVERSITÁRIO UNIVATES CURSO DE SISTEMAS DE INFORMAÇÃO APLICATIVO ANDROID PARA MANIFESTAÇÃO DO DESTINATÁRIO DA NOTA FISCAL ELETRÔNICA Jonas Kirch Lajeado, novembro de 2013 BDU – Biblioteca Digital da UNIVATES (http://www.univates.br/bdu) Jonas Kirch APLICATIVO ANDROID PARA MANIFESTAÇÃO DO DESTINATÁRIO DA NOTA FISCAL ELETRÔNICA Monografia apresentada ao Centro de Ciências Exatas e Tecnológicas do Centro Universitário UNIVATES, como parte da exigência para a obtenção do título de bacharel em Sistemas de Informação. Orientador: Prof. Ms. Alexandre Stürmer Wolf Lajeado, novembro de 2013 BDU – Biblioteca Digital da UNIVATES (http://www.univates.br/bdu) Jonas Kirch APLICATIVO ANDROID PARA MANIFESTAÇÃO DO DESTINATÁRIO DA NOTA FISCAL ELETRÔNICA A Banca examinadora abaixo aprova a Monografia apresentada ao Centro de Ciências Exatas e Tecnológicas, do Centro Universitário UNIVATES, como parte da exigência para a obtenção do grau de Bacharel em Sistemas de Informação: Prof. Ms. Alexandre Stürmer Wolf – orientador Centro Universitário UNIVATES Prof. Ms. Evandro Franzen Centro Universitário UNIVATES Prof. Ms. Andrigo Dametto Centro Universitário UNIVATES Lajeado, 29 de novembro 2013 BDU – Biblioteca Digital da UNIVATES (http://www.univates.br/bdu) AGRADECIMENTOS Agradeço primeiramente a Deus, por me dar a oportunidade de crescer a cada dia. Sou grato também aos meus pais, Pedro e Maria, por me mostrarem o caminho correto a seguir e por estarem sempre ao meu lado nos momentos em que mais precisei. Aos meus irmãos Jonathan e Joana pelo carinho e, deixo também, o meu muito obrigado a minha namorada Patrícia pelos anos de compreensão e companheirismo. Agradeço também aos colegas de trabalho da Office System Informática Ltda pelo apoio prestado durante essa trajetória. Também sou muito grato aos professores que colaboraram para o meu crescimento com seus sábios ensinamentos, principalmente ao Sr. Alexandre Stürmer Wolf, que me orientou e contribuiu no decorrer deste trabalho, aprimorando-o cada vez mais. BDU – Biblioteca Digital da UNIVATES (http://www.univates.br/bdu) RESUMO A Manifestação do Destinatário da Nota Fiscal Eletrônica (NF-e) consiste em um conjunto de eventos que permitem ao destinatário da NF-e manifestar-se sobre sua participação comercial descrita nas notas fiscais vinculadas ao seu CNPJ. Assim sendo, o presente trabalho visa apresentar o desenvolvimento de um aplicativo na plataforma Android, tendo como principal objetivo auxiliar o destinatário da NF-e a realizar o processo de Manifestação do Destinatário através de um dispositivo móvel, dado que esse procedimento é obrigatório para alguns segmentos e operações comerciais. O aplicativo desenvolvido também permite a consulta individual de uma NF-e e seus respectivos eventos através da leitura do código de barras do Documento Auxiliar da Nota Fiscal Eletrônica (DANFE), utilizando para isso a câmera de um smartphone ou tablet como leitor. Outra funcionalidade do aplicativo é permitir a consulta dos documentos fiscais emitidos para a empresa nos últimos quinze dias e a possibilidade de realizar o download da NF-e. Palavras-chave: Manifestação do Destinatário. Nota Fiscal Eletrônica. NF-e. Android. BDU – Biblioteca Digital da UNIVATES (http://www.univates.br/bdu) ABSTRACT The Manifestation of the Recipient (Manifestação do Destinatário) of the Electronic Invoice (Nota Fiscal Eletrônica - NF-e) consists set of in events that allows the recipient of the NF-e manifest their commercial participation described in the tax document linked to your CNPJ. Therefore, this work presents the development of an application on the Android platform, the main objective is to help the recipient of NF-e carry out the process of Manifestation Recipient through a mobile device, since this procedure is mandatory for some segments and business operations. The developed application also allows individual consultation of a NF-e and their respective events by reading the barcode of the Auxiliary Document Electronic Invoice (Documento Auxiliar da Nota Fiscal Eletrônica - DANFE), using for this the camera of a smartphone or tablet as a reader. Another feature of the application is to allow the consultation of tax documents issued to the company in the last fifteen days and the possibility of downloading the NF-e. Keywords: Manifestation of the Recipient. Eletronic Invoice. NF-e. Android. BDU – Biblioteca Digital da UNIVATES (http://www.univates.br/bdu) LISTA DE FIGURAS Figura 1 – Aspecto do DANFE ............................................................................................ 24 Figura 2 – Fluxo de um Evento ............................................................................................ 26 Figura 3 – NF-e consultada no Portal Nacional da NF-e ....................................................... 28 Figura 4 – Aplicação desktop para Manifestação do Destinatário ......................................... 32 Figura 5 – Aplicação web para Manifestação do Destinatário ............................................... 33 Figura 6 – Assinatura Digital da NF-e .................................................................................. 39 Figura 7 – Representação da mensagem SOAP .................................................................... 43 Figura 8 – Arquitetura da plataforma Android ...................................................................... 46 Figura 9 – Diagrama de casos de uso .................................................................................... 52 Figura 10 – Tela inicial (login) ............................................................................................. 57 Figura 11 – Tela principal .................................................................................................... 58 Figura 12 – Tela de consulta de NF-e ................................................................................... 59 Figura 13 – Telas do resultado da Consulta Individual de NF-e ............................................ 61 Figura 14 – Tela do resultado da Consulta de NF-e Destinadas ............................................ 62 Figura 15 – Tela de Manifestação do Destinatário ................................................................ 63 Figura 16 – Resultado da Manifestação do Destinatário ....................................................... 64 Figura 17 – Resultado do Download da NF-e ....................................................................... 64 Figura 18 – Telas do Status do Serviço ................................................................................. 65 Figura 19 – Telas do Cadastro de Destinatários .................................................................... 66 Figura 20 – Aplicativo NF-e Droid disponível no Google Play ............................................. 69 BDU – Biblioteca Digital da UNIVATES (http://www.univates.br/bdu) Figura 21 – Total de instalações do aplicativo por usuário .................................................... 69 Figura 22 – Instalações atuais do aplicativo por usuário ....................................................... 70 Figura 23 – Resultado final da avaliação .............................................................................. 71 BDU – Biblioteca Digital da UNIVATES (http://www.univates.br/bdu) LISTA DE CÓDIGOS Listagem 1 – XML para download da NF-e.......................................................................... 35 Listagem 2 – XML Schema para download da NF-e ............................................................. 36 Listagem 3 – XML Signature ............................................................................................... 39 Listagem 4 – Trecho do documento WSDL do web service para download da NF-e ............. 42 Listagem 5 – Mensagem SOAP para o web service de download da NF-e ............................ 44 BDU – Biblioteca Digital da UNIVATES (http://www.univates.br/bdu) LISTA DE TABELAS Tabela 1 – Eventos identificados pela equipe do projeto da NF-e ......................................... 26 Tabela 2 – Prazos para a Manifestação do Destinatário dos estabelecimentos obrigados ....... 30 Tabela 3 – Tabela de destinatário ......................................................................................... 54 BDU – Biblioteca Digital da UNIVATES (http://www.univates.br/bdu) LISTA DE ABREVIATURAS AC – Autoridade Certificadora ADT – Android Developer Tools AES – Advanced Encryption Standard AIDF – Autorização para Impressão de Documentos Fiscais API – Application Programming Interface B2B – Business to Business CAT – Coordenador da Administração Tributária CEP – Código de Endereçamento Postal CPF – Cadastro de Pessoa Física CNPJ – Cadastro Nacional de Pessoa Jurídica DANFE – Documento Auxiliar da Nota Fiscal Eletrônica DAO – Data Access Object DETRAN – Departamento Estadual de Transito DOE – Diário Oficial do Estado DOM – Document Object Model ENAT – Encontro Nacional dos Administradores Tributários ENCAT – Encontro Nacional de Coordenadores e Administradores Tributários Estaduais GML – General Markup Language JVM – Java Virtual Machine HTML – Hypertext Markup Language HTTP – Hypertext Transfer Protocol ICP-Brasil – Infraestrutura de Chaves Públicas Brasileira BDU – Biblioteca Digital da UNIVATES (http://www.univates.br/bdu) IE – Inscrição Estadual IHC – Interface Homem Computador ISO – International Organization for Standardization NF-e – Nota Fiscal Eletrônica OHA – Open Handset Alliance RFB – Receita Federal do Brasil RFID – Radio Frequency Identification SDK – Source Development Kit SEFAZ – Secretaria da Fazenda SGML – Standard Generalized Markup Language SHA – Secure Hash Algorithm SINIEF – Sistema Nacional de Informações Econômicas e Fiscais SOAP – Simple Object Access Protocol SPED – Sistema Público de Escrituração Digital SSL – Secure Sockets Layer SUFRAMA – Superintendência da Zona Franca de Manaus TI – Tecnologia da Informação UF – Unidade Federativa W3C – World Wide Web Consortium WSDL – Web Services Description Language WWW – World Wide Web XML – eXtensible Markup Language XSD – XML Schema Definition BDU – Biblioteca Digital da UNIVATES (http://www.univates.br/bdu) SUMÁRIO 1 INTRODUÇÃO .......................................................................................................... 14 1.1 Objetivo geral ......................................................................................................... 16 1.2 Objetivos específicos ............................................................................................... 16 1.3 Justificativa ............................................................................................................. 16 1.4 Organização do trabalho ........................................................................................ 17 2 NOTA FISCAL ELETRÔNICA ................................................................................ 18 2.1 Contextualização .................................................................................................... 18 2.2 Credenciamento ...................................................................................................... 21 2.3 Emissão e Transmissão da NF-e ............................................................................ 22 2.4 Documento Auxiliar da NF-e (DANFE) ................................................................ 23 2.5 Eventos da NF-e...................................................................................................... 25 2.5.1 Manifestação do Destinatário ................................................................................ 28 3 PADRÕES E TECNOLOGIAS UTILIZADAS ........................................................ 34 3.1 Extended Markup Language (XML)....................................................................... 34 3.1.1 XML Schema .......................................................................................................... 36 3.1.2 Analisador DOM .................................................................................................... 37 3.2 Assinatura Digital ................................................................................................... 37 3.2.1 Certificado Digital .................................................................................................. 40 3.3 Web service .............................................................................................................. 41 3.3.1 Web Services Description Language (WSDL)......................................................... 42 3.3.2 Simple Object Access Protocol (SOAP) ................................................................... 43 3.4 Android ................................................................................................................... 44 3.4.1 Arquitetura ............................................................................................................. 45 3.4.2 Modelo de segurança .............................................................................................. 47 3.4.3 Permissões do aplicativo ......................................................................................... 47 3.4.4 Banco de dados nativo ............................................................................................ 48 3.4.5 Assinatura do aplicativo ......................................................................................... 48 3.4.6 Distribuição de aplicativos ..................................................................................... 49 4 APLICATIVO DESENVOLVIDO ............................................................................ 50 4.1 Análise de requisitos ............................................................................................... 50 BDU – Biblioteca Digital da UNIVATES (http://www.univates.br/bdu) 4.1.1 4.1.2 4.2 4.2.1 4.2.2 4.2.3 4.3 4.3.1 4.3.2 4.3.3 4.3.4 4.3.5 Requisitos funcionais .............................................................................................. 50 Requisitos não funcionais ....................................................................................... 52 Desenvolvimento ..................................................................................................... 53 Ferramentas utilizadas ........................................................................................... 54 Modelagem da base de dados ................................................................................. 54 Modelagem de classes ............................................................................................. 55 Funcionalidades do Aplicativo ............................................................................... 57 Acesso ...................................................................................................................... 57 Consulta e Manifestação ........................................................................................ 58 Status do Serviço .................................................................................................... 65 Cadastro de Destinatários ...................................................................................... 65 Sair da aplicação..................................................................................................... 67 5 PUBLICAÇÃO E VALIDAÇÃO DO APLICATIVO .............................................. 68 5.1 Publicação do aplicativo ......................................................................................... 68 5.2 Validação do aplicativo .......................................................................................... 70 6 CONCLUSÃO ............................................................................................................ 74 6.1 Trabalhos futuros ................................................................................................... 75 REFERÊNCIAS ................................................................................................................. 77 APÊNDICES ...................................................................................................................... 80 BDU – Biblioteca Digital da UNIVATES (http://www.univates.br/bdu) 14 1 INTRODUÇÃO O complexo sistema tributário brasileiro é composto por diversos tributos, entre impostos, alíquotas, contribuições e legislações específicas, que dificultam o entendimento por parte dos contribuintes e sujeita a erros humanos em operações fiscais, além de dificultar o trabalho de fiscalização por parte do governo. Ao longo dos anos o governo vem tentando melhorar o controle fiscal e assim combater a sonegação de impostos, tentando aprimorar seus diversos métodos de arrecadação de tributos, entre estes o da Nota Fiscal. Uma nota fiscal representa uma operação de circulação de mercadorias ou prestação de serviços, servindo como garantia de compra por parte do cliente e o recolhimento de tributos por parte do governo. O avanço da Tecnologia da Informação (TI) proporcionou a evolução na emissão de notas fiscais, primeiro com a utilização de impressoras matriciais, depois com a tecnologia de impressão a laser, que juntamente com sistemas informatizados, garantiam a impressão de notas fiscais. Por fim, com a popularização da Internet, surge a Nota Fiscal Eletrônica (NF-e). A NF-e consiste em um arquivo digital, contendo todas as informações fiscais obrigatórias exigidas para a operação comercial, assinado digitalmente o que garante a integridade do arquivo digital e a autoria do emissor, transmitido pela Internet através de web services para a Secretaria da Fazenda (SEFAZ) que valida o arquivo e estando em conformidade devolve um protocolo denominado “Autorização de Uso”, que de fato transforma o arquivo digital em uma NF-e, permitindo assim a impressão do Documento 15 Auxiliar da NF-e (DANFE) usado para acompanhar o transito da mercadoria (BRASIL, Manual de Orientação..., 2012). BDU – Biblioteca Digital da UNIVATES (http://www.univates.br/bdu) Assim sendo, as notas ficais em papel foram substituídas pelas eletrônicas, sendo disponibilizadas de forma on-line através dos portais da SEFAZ e da Receita Federal do Brasil (RFB). Segundo Müller, Pilar e Kido (2006), a NF-e é uma forma eficaz para aperfeiçoar os controles fiscais, combater a sonegação e, consequentemente, prover o aumento da arrecadação de tributos, além de promover a integração dos sistemas de fiscalização nas três esferas do governo: Federal, Estadual e Municipal. Uma vez emitida a nota fiscal, podem ocorrer diversos eventos que têm consequências relevantes para o documento fiscal, como a carta de correção, que possui a finalidade de corrigir determinadas informações permitidas pela legislação, e como o cancelamento, cuja finalidade é cancelar a operação comercial. O governo, buscando aprimorar ainda mais o controle sobre as Notas Fiscais Eletrônicas passou a adotar o conceito de eventos a partir do Ajuste SINIEF 05/2012, publicado em 30 de março de 2012, onde foram definidos alguns eventos relacionados com a NF-e. O Encontro Nacional de Coordenadores e Administradores Tributários Estaduais (ENCAT) e a RFB, divulgaram em março de 2012 em Nota Técnica através do Portal Nacional da NF-e1 os web services e especificações técnicas necessárias para a implementação dos eventos da NF-e por parte do destinatário, denominados Manifestação do Destinatário, possibilitando aos contribuintes desenvolver a integração a partir de seus sistemas de informação. A Manifestação do Destinatário é um conjunto de eventos que permite ao destinatário da NF-e manifestar-se sobre sua participação comercial descrita nas notas fiscais vinculadas ao seu CNPJ. _____________ 1 Portal Nacional da NF-e: http://www.nfe.fazenda.gov.br 16 1.1 Objetivo geral BDU – Biblioteca Digital da UNIVATES (http://www.univates.br/bdu) O objetivo deste trabalho consiste no desenvolvimento de uma aplicação para dispositivos móveis na plataforma Android. Para isso serão utilizados os serviços disponibilizados pelo Portal Nacional da NF-e, com a finalidade de possibilitar ao destinatário da NF-e se manifestar sobre a sua participação comercial descrita nas notas fiscais vinculadas ao seu CNPJ, através de um dispositivo móvel, como smartphones ou tablets. O presente projeto tem o intuito de simplificar o registro destes eventos por parte do destinatário, obrigatórios para alguns segmentos e operações comerciais, facilitando esta ação através da mobilidade. 1.2 Objetivos específicos Possibilitar a consulta individual de uma NF-e, visualizando a situação atual e seus respectivos eventos; Utilizar a câmera do dispositivo móvel como leitor de código de barras, facilitando a leitura dos códigos das NF-e; Possibilitar o download de uma NF-e que tenha sido manifestada; Possibilitar a consulta das últimas NF-e que foram emitidas para o CNPJ da empresa. 1.3 Justificativa Conforme disposto no Ajuste SINIEF 17/2012 e 01/2013, inicialmente estabelecimentos distribuidores foram obrigados, a partir de 1º de março de 2013 a realizar a Manifestação do Destinatário. Em julho de 2013 a obrigatoriedade chegou aos postos de combustíveis e aos transportadores retalhistas de combustíveis. Para estas empresas, a Manifestação do Destinatário é obrigatória dentro dos prazos previstos na legislação sempre que a NF-e possuir operações com combustíveis. 17 Por sua vez, o governo do Rio Grande do Sul, publicou no Diário Oficial do Estado (DOE) a Instrução Normativa nº 29/13 que obriga os contribuintes do Estado a realizar a BDU – Biblioteca Digital da UNIVATES (http://www.univates.br/bdu) partir de 1º de julho de 2013 a Manifestação de todas as NF-e com valores superiores a R$ 100.000,00 (cem mil reais) dentro dos prazos previstos pela legislação. Segundo o Portal Nacional da NF-e, estas obrigatoriedades podem aumentar ao longo do ano de 2013 para operações que envolvem alguns tipos de mercadorias, entretanto, a Manifestação do Destinatário pode ser feita de forma voluntária por qualquer empresa, o que proporciona diversos benefícios para as empresas que o fizerem. Estes benefícios serão apresentados na seção 2.5.1 página 31. A principal justificativa para o desenvolvimento deste trabalho deve-se ao fato de não existirem aplicações voltadas para dispositivos móveis na plataforma Android, ao menos não disponíveis no Google Play (seção 3.4.6), que contribuam para o procedimento de Manifestação do Destinatário, aliado ao cenário de obrigatoriedades por parte dos destinatários da NF-e e dos diversos benefícios proporcionados por estes eventos. 1.4 Organização do trabalho O presente trabalho está divido em seis capítulos. O Capítulo 2 detalha a Nota Fiscal Eletrônica, apresentando os processos e eventos envolvidos, dando ênfase aos eventos de Manifestação do Destinatário e aos softwares existentes para este procedimento que é o foco do aplicativo proposto pelo trabalho. O Capítulo 3 apresenta a relação dos padrões e tecnologias utilizadas para o desenvolvimento da aplicação. O Capítulo 4 descreve o aplicativo desenvolvido, apresentando a análise de requisitos, o desenvolvimento e as funcionalidades. O Capítulo 5 apresenta a publicação e validação do aplicativo desenvolvido. A conclusão e os trabalhos futuros são abordados no Capítulo 6. BDU – Biblioteca Digital da UNIVATES (http://www.univates.br/bdu) 18 2 NOTA FISCAL ELETRÔNICA Neste capítulo será abordado de forma mais detalhada a Nota Fiscal Eletrônica, apresentando os eventos e autores envolvidos nos processos deste sistema, com ênfase nos eventos de Manifestação do Destinatário e aos softwares existentes para este procedimento. Serão mescladas informações conceituais com padrões técnicos de alguns pontos considerados mais importantes para a melhor compreensão do trabalho proposto. Devido ao fato da maioria das bibliografias sobre este assunto estarem disponíveis diretamente nos sites da Receita Federal do Brasil, como o site do Portal do SPED2 e da NF-e, em forma de Manuais e Notas Técnicas, algumas citações serão frequentemente repetidas. 2.1 Contextualização A Emenda Constitucional 42º, de 19 de dezembro de 2013, introduziu o inciso XXII, que determina às administrações tributárias da União, dos Estados, do Distrito Federal e dos Municípios a atuarem de forma integrada, inclusive com o compartilhamento de cadastros e informações fiscais, na forma da lei ou convênio. Para atender a esta necessidade, em Agosto de 2005 foi publicado o Protocolo de Cooperação ENAT 02/2005 e 03/2005 que criou o Sistema Público de Escrituração Digital (SPED) e o projeto na Nota Fiscal Eletrônica (NF-e) (MÜLLER; PILAR; KIDO, 2006, p. 24). Segundo Young (2009), o SPED é uma solução tecnológica patrocinada pelas administrações tributárias Federal, Estadual e Municipal, que consiste na modernização da _____________ 2 Portal do SPED: http://www1.receita.fazenda.gov.br 19 sistemática atual do cumprimento das obrigações acessórias, transmitidas pelos contribuintes às administrações tributárias e ao fisco, sendo composto por grandes subprojetos, entre eles a BDU – Biblioteca Digital da UNIVATES (http://www.univates.br/bdu) Nota Fiscal Eletrônica (NF-e). Conforme o Manual de Orientação do Contribuinte (2012, p. 10): A Nota Fiscal Eletrônica (NF-e) é desenvolvida de forma integrada, pelas Secretarias de Fazenda dos Estados e Secretaria da Receita Federal do Brasil, a partir da assinatura do Protocolo ENAT 03/2005 (27/08/2005), que atribui ao Encontro Nacional de Coordenadores e Administradores Tributários Estaduais (ENCAT) a coordenação e a responsabilidade pelo desenvolvimento e implantação do Projeto NF-e. O principal objetivo do projeto da NF-e foi a implantação de um novo modelo nacional de documentos fiscais, substituindo a sistemática antiga do documento fiscal em papel, modelos 1 e 1A, para documentos fiscais de existência somente eletrônica, modelo 55. Simplificando as obrigações acessórias dos contribuintes e permitindo um maior controle em tempo real pelo fisco (YOUNG, 2009). Segundo o Portal do SPED, o projeto se justifica pela necessidade de investimento público voltado para a integração e modernização do processo de controle fiscal, possibilitando o compartilhamento de informações entre as administrações tributárias, a redução de custos e entrevares burocráticos. O projeto facilita o cumprimento das obrigações tributárias e o pagamento de impostos e contribuições, além de fortalecer a fiscalização. O projeto da NF-e traz uma série de benefícios a todos os envolvidos em uma transação comercial, como contribuintes, sociedade e administrações tributárias. Estes benefícios são apresentados a seguir conforme Müller, Pilar e Kido (2006): a) Benefícios para o contribuinte vendedor (Emissor da NF-e): Redução de custos em impressões, aquisição de papel, envio e armazenagem de documentos fiscais; Simplificação de obrigações acessórias, como dispensa de Autorização para Impressão de Documentos Fiscais (AIDF); Redução do tempo de parada de caminhões em postos fiscais; Incentivo ao uso de relacionamentos eletrônicos com clientes (B2B). b) Benefícios para o contribuinte comprador (Receptor da NF-e): 20 Eliminação de digitação de notas fiscais na recepção de mercadorias; Planejamento de logística de entrega pela recepção antecipada da BDU – Biblioteca Digital da UNIVATES (http://www.univates.br/bdu) informação da NF-e; Redução de erros na escrituração devido a erros de digitação de notas fiscais; Incentivo a uso de relacionais eletrônicos com fornecedores (B2B). c) Benefícios para a sociedade: Redução do consumo de papel (impactos ecológicos); Incentivo ao comércio eletrônico e ao uso de novas tecnologias; Padronização dos relacionamentos eletrônicos entre empresas; Surgimento de oportunidades de negócio e empregos na prestação de serviços ligados à NF-e. d) Benefícios para as administrações tributárias: Aumento da confiabilidade da nota fiscal; Melhoria no processo de controle fiscal, possibilitando um melhor intercâmbio e compartilhamento de informações entre os fiscos; Redução de custos no processo de controle das notas fiscais capturadas pela fiscalização de mercadorias em trânsito; Diminuição da sonegação e aumento da arrecadação; Suporte aos projetos de escrituração eletrônica contábil e fiscal do SPED. Segundo o Portal da SEFAZ do estado de São Paulo, o projeto entrou em fase operacional em 2006, com apenas algumas empresas voluntárias, e teve sua massificação em 2007, a partir da publicação da Portaria CAT 104/07 que obrigou empresas de determinados segmentos a emitirem NF-e em substituição à Nota Fiscal de modelo 1 ou 1A, permitindo também a possibilidade do contribuinte solicitar o credenciamento para a emissão de NF-e de forma voluntária. Em dezembro de 2010 o projeto da NF-e é dado como finalizado, assumindo o status de um sistema nacional de documento fiscal eletrônico, compartilhado entre as unidades da Federação e a RFB (BRASIL, Manual de Orientação..., 2012). 21 De acordo com Portal Nacional da Nota Fiscal Eletrônica, em 26 de maio de 2013 já existem mais de 7 bilhões de NF-e autorizadas e mais de 1 milhão de emissores credenciados, BDU – Biblioteca Digital da UNIVATES (http://www.univates.br/bdu) comprovando, dessa forma, a grandeza do projeto. 2.2 Credenciamento De acordo com o Portal Nacional da NF-e, o contribuinte que deseja ser credenciado como emissor de NF-e deve entrar em contato com a SEFAZ de seu estado, pois cada SEFAZ utiliza seus próprios procedimentos que, normalmente, estão disponíveis em seus sites. A SEFAZ do Rio Grande do Sul disponibiliza através de seu site (www.sefaz.rs.gov.br) um “Manual de Credenciamento” no qual orienta os contribuintes do Estado a solicitar o credenciamento de forma on-line. Para a solicitação é necessário informar o usuário e a senha da pessoa cadastrada como autorizada pela empresa no cadastro de contribuintes do Estado, entretanto, a SEFAZ poderá credenciar o contribuinte automaticamente caso este seja obrigado a emitir NF-e. Ao realizar o credenciamento, o contribuinte pode optar pelo ambiente de homologação (não tem validade jurídica e é utilizada somente para fins de teste) ou pelo ambiente de produção (que possui validade jurídica e substitui as notas fiscais em papel). Além de estar credenciado, para emitir NF-e o contribuinte deve: Possuir acesso a Internet; Adquirir um certificado digital (seção 3.2.1 página 40) no padrão da Infraestrutura de Chaves Públicas Brasileira (ICP-Brasil) do tipo A1 ou A3 contendo o CNPJ da empresa; Adquirir, desenvolver ou utilizar o software gratuito para emissão de NF-e disponível no Portal Nacional da NF-e. 22 2.3 Emissão e Transmissão da NF-e BDU – Biblioteca Digital da UNIVATES (http://www.univates.br/bdu) A NF-e consiste em um arquivo digital no formato eXtensible Markup Language (XML) que será apresentado na seção 3.1 página 34, contendo todas as informações da operação comercial, obedecendo a estrutura definida no layout do “Manual de Orientação do Contribuinte – Padrões Técnicos de Comunicação”, disponibilizado no Portal Nacional da NF-e. O envio ocorre em lotes, ou seja, um arquivo XML pode conter mais de uma NF-e, sendo que cada uma delas é assinada digitalmente no padrão de assinatura digital World Wide Web Consortium (W3C) utilizando um certificado digital do tipo A1 ou A3 emitido por Autoridade Certificadora (AC) credenciada pela ICP-Brasil, o que garante a integridade e autenticidade do documento por parte do emitente. O funcionamento da assinatura digital e do certificado digital serão abordados mais detalhadamente nas seções 3.2 página 37 e 3.2.1 página 40. Antes da transmissão do arquivo XML, o mesmo deve ser previamente validado pelo respectivo arquivo XML Schema Definition (XSD) (seção 3.1.1 página 36), que é um arquivo que contém as regras da estrutura obrigatória do arquivo XML. O Portal Nacional da NF-e disponibiliza um pacote com todos os arquivos XSD para todos os serviços disponibilizados para a NF-e. A transmissão do arquivo ocorre por meio da Internet através de web services (seção 3.3 página 41) para a Secretária da Fazenda (SEFAZ) do Estado de jurisdição do contribuinte emitente, isto é, a SEFAZ do Estado no qual o emitente está autorizado a emitir NF-e, que processa o arquivo e, estando em conformidade, devolve um protocolo denominado “Autorização de Uso”, o qual garante a validade jurídica do documento eletrônico e o transforma em uma NF-e. Dessa forma, permitirá a impressão do Documento Auxiliar da Nota Fiscal Eletrônica (DANFE) que é utilizado para acompanhar o trânsito da mercadoria, servindo apenas como uma representação gráfica e não como a nota fiscal em si (BRASIL, Manual de Orientação..., 2012, p. 10). Segundo o Manual de Orientação do Contribuinte (2012), os web services utilizam o protocolo Secure Sockets Layer (SSL) versão 3.0, cuja finalidade é prover a segurança da 23 comunicação pela Internet, além de permite a identificação do servidor e do cliente através de certificados digitais, sem a necessidade de autenticação por usuário e senha. BDU – Biblioteca Digital da UNIVATES (http://www.univates.br/bdu) De acordo com o Manual de Orientação do Contribuinte (2012, p. 10): Este mesmo arquivo da NF-e será ainda transmitido para: a Receita Federal, que será repositório nacional de todas as NF-e emitidas; no caso de uma operação interestadual, a Secretaria da Fazenda Estadual de destino da operação; e, quando aplicável, os Órgãos e Entidades da Administração Pública Federal Direta e Indireta que tenham atribuição legal de regulação, normatização, controle e fiscalização, tais como a SUFRAMA, por exemplo. O arquivo fica disponível para consulta no site da SEFAZ de origem e destino da operação comercial ou no Portal Nacional da NF-e a todos os interessados que possuírem a chave de acesso, na qual está discriminada na parte superior do DANFE (seção 2.4) de forma textual e por meio de código de barras. 2.4 Documento Auxiliar da NF-e (DANFE) O Documento Auxiliar da Nota Fiscal Eletrônica (DANFE) é um documento impresso em papel que discrimina as informações da nota fiscal, como os dados do emitente, destinatário, produtos, tributos, valores, transportadora, entre outras. Segundo o Manual de Orientação do Contribuinte (2012, p. 11): O DANFE não é nota fiscal, nem a substitui, servindo apenas como instrumento auxiliar para consulta da NF-e, pois contém a chave de acesso da NF-e, que permite ao detentor desse documento confirmar, através das páginas da Secretaria de Fazenda Estadual ou da Receita Federal do Brasil, a efetiva existência de uma NF-e que tenha tido seu uso regularmente autorizado (BRASIL, Manual de Orientação..., 2012, p. 11). O DANFE serve como uma representação gráfica da NF-e e se equivale a um “espelho” do arquivo digital, não possuindo informações divergentes do arquivo eletrônico e com a obrigatoriedade de seguir os padrões estabelecidos no layout do próprio manual (BRASIL, Manual de Orientação..., 2012, p. 97). O DANFE deve ser impresso pelo emitente após a “Autorização de Uso” da NF-e (exceto em caso de problemas técnicos previstos na legislação) e antes da circulação da mercadoria, podendo ser impresso em qualquer tipo de papel, exceto papel jornal. 24 Nos casos de problemas técnicos que inviabilizem o envio da NF-e e seja necessário operar em contingência, torna-se preciso utilizar os formulários específicos previstos na BDU – Biblioteca Digital da UNIVATES (http://www.univates.br/bdu) legislação para a impressão (BRASIL, Manual de Orientação..., 2012). Conforme o Manual de Orientação do Contribuinte (2012, p. 97) o DANFE tem os seguintes objetivos: Acompanhar o trânsito de mercadorias; Colher a firma do destinatário/tomador para comprovação de entrega das mercadorias ou prestação de serviços; Prover a necessidade de representações impressas adicionais previstas expressamente na legislação; Auxiliar a escrituração da NF-e pelo destinatário não credenciado como emissor de NF-e. O documento é similar as notas fiscais tradicionais de modelo 1 ou 1A, a notável diferença é a informação “Chave de Acesso”, representada por 44 (quarenta e quatro) dígitos numéricos de forma textual e através de código de barras no formato 128-C, como pode ser observado no modelo representado na Figura 1. Figura 1 – Aspecto do DANFE Fonte: Gerado pelo sistema emissor gratuito de NF-e da RFB (2013). A “Chave de Acesso” é uma representação numérica e única da NF-e e é utilizada para consultar a situação e a validade da NF-e, através do Portal Nacional da NF-e ou do site da SEFAZ de origem ou destino da operação. O código de barras tem a finalidade de simplificar o processo de consulta por parte de órgãos fiscalizadores e até mesmo dos próprios contribuintes. 25 2.5 Eventos da NF-e BDU – Biblioteca Digital da UNIVATES (http://www.univates.br/bdu) O projeto da NF-e implementa o conceito de “evento”, que é o registro de uma ação ou situação com consequência relevante relacionada com a nota fiscal após a sua “Autorização de Uso”. O Ajuste SINIEF 05/2012 define: “A ocorrência relacionada com uma NF-e superveniente à sua respectiva autorização de uso denomina-se „Evento da NF-e‟”. Nas notas fiscais tradicionais de modelo 1 ou 1A, as informações da operação comercial estavam fixadas em um documento físico (papel ou formulário) e não havia nenhuma dificuldade de identificar o documento fiscal original, pois só existia um original. Desta forma todos os eventos que ocorriam após a emissão do documento fiscal eram registrados no próprio documento impresso (BRASIL, Registro de Eventos..., 2009, p. 6). Porém com a adoção da NF-e, este modelo se tornou impraticável, visto que as informações não estão mais fixadas em um único papel, o DANFE que acompanha o trânsito da mercadoria não é a NF-e em si, podendo haver diversos exemplares dela com pessoas distintas, sendo todas elas válidas juridicamente por representarem a mesma NF-e (BRASIL, Registro de Eventos..., 2009, p. 6). De acordo com Registro de Eventos da Nota Fiscal Eletrônica (2009, p. 6): Uma forma de minimizar esta situação é a adoção de um repositório central onde ficam armazenadas as NF-e existentes, para registro de todos os eventos que tenham alguma relevância para a Administração Tributária (BRASIL, Registro de Eventos..., 2009, p. 6). Um evento pode ser realizado por autores diferentes (Emissor, Destinatário, RFB, DETRAN, entre outros), conforme fluxo representado na Figura 2. 26 BDU – Biblioteca Digital da UNIVATES (http://www.univates.br/bdu) Figura 2 – Fluxo de um Evento Fonte: Manual do Registro de Eventos da Nota Fiscal Eletrônica (2009, p. 8). Segundo o Portal Nacional da NF-e, existem diversos eventos que são importantes para as NF-e que foram identificados em reuniões pela equipe do projeto, alguns eventos já existem e outros poderão ser desenvolvidos gradativamente, como pode ser observado na Tabela 1. Tabela 1 – Eventos identificados pela equipe do projeto da NF-e Evento Cancelamento pelo Fisco Reversão do cancelamento Operação não realizada NF-e referenciada pelo Fisco Correção pelo Fisco Restituição ICMS sobre Combustíveis Carta de Correção Registros de saída Roubo de Carga Ocorrência na Fiscalização de Trânsito Autor Fisco Autorizador Fisco Autorizador Fisco Autorizador Fisco Autorizador Fisco Autorizador Fisco Autorizador Emitente Emitente Emitente Fisco 27 BDU – Biblioteca Digital da UNIVATES (http://www.univates.br/bdu) Evento Rastreamento RFID Registro de passagem Registro de Veículos Confirmação de Internalização na SUFRAMA Saída para exportação Confirmação de recebimento Desconhecimento da operação Devolução de mercadoria NF-e em análise Confirmação de recebimento – Portal SEFAZ Desconhecimento da operação – Portal SEFAZ Devolução de mercadoria – Portal SEFAZ NF-e visada pelo Fisco Autor Fisco Fisco DETRAN SUFRAMA RFB Destinatário Destinatário Destinatário Fisco Fisco Fisco Fisco Fisco Fonte: Manual do Registro de Eventos da Nota Fiscal Eletrônica (2009, p. 22). Os registros de eventos seguem os mesmos padrões técnicos da emissão da NF-e, devendo ser gerado um arquivo no formato XML conforme critérios estabelecidos no layout técnico, assinado digitalmente pelo autor do evento e transmitido para o web service da SEFAZ de origem do autor do evento. Todos os eventos vinculados a uma determinada NF-e podem ser consultados através do site do Portal Nacional da NF-e ou no site da SEFAZ de origem/destino da operação, por meio da Chave de Acesso da NF-e. Na Figura 3 é possível visualizar uma NF-e consultada no Portal Nacional, na parte inferior as ocorrências “Autorização”, “Carta de Correção Eletrônica” e “Confirmação da Operação” representam os eventos vinculados a essa NF-e. 28 BDU – Biblioteca Digital da UNIVATES (http://www.univates.br/bdu) Figura 3 – NF-e consultada no Portal Nacional da NF-e Fonte: Adaptado de Portal Nacional da NF-e (2013). Na seção 2.5.1 serão apresentados os eventos por parte do destinatário da NF-e, no qual se encontra o foco do aplicativo proposto neste trabalho. 2.5.1 Manifestação do Destinatário Segundo Müller, Pilar e Kido (2007), os eventos por parte do destinatário, como a “Confirmação de Recebimento”, já estavam previstos no início do projeto da NF-e, porém, não seriam implantados na fase inicial do projeto. Segundo o Portal Nacional da NF-e, a equipe começou a trabalhar nesses eventos no início de 2011, juntamente com algumas grandes empresas que se candidataram a participar. Porém, somente em março de 2012, com a publicação do Ajuste SINIEF 05/2012 que define o conceito de eventos e o conjunto de eventos do destinatário, o ENCAT e a RFB divulgaram em Nota Técnica através do Portal Nacional da NF-e, os web services e especificações técnicas necessárias para a implementação dos eventos da NF-e por parte do destinatário, 29 denominados “Manifestação do Destinatário”, dessa forma possibilitou aos contribuintes adaptarem seus sistemas de informação a realizar estes eventos. BDU – Biblioteca Digital da UNIVATES (http://www.univates.br/bdu) A Manifestação do Destinatário consiste em um conjunto de eventos que permitem ao destinatário da NF-e se manifestar sobre sua participação comercial descrita na nota fiscal. O Portal Nacional da NF-e, na seção perguntas frequentes, detalha os eventos disponíveis e quando eles devem ser utilizados pelos destinatários: Confirmação da Operação: Deve ser usado quando a operação ocorrer conforme informado na NF-e. Este evento impede o emissor de realizar o cancelamento e possibilita ao destinatário realizar o download da NF-e; Desconhecimento da operação: Sua finalidade é possibilitar ao destinatário se manifestar quando utilizada indevidamente sua Inscrição Estadual (IE) pelo emitente da NF-e, para acobertar operações fraudulentas de remessas de mercadorias para destinatário diverso. Este evento protege o destinatário de passivos tributários envolvendo o uso indevido de sua IE/CNPJ; Operação não realizada: Este evento será informado pelo destinatário quando, por algum motivo, a operação legalmente acordada entre as partes não se realizou (devolução sem entrada física da mercadoria no estabelecimento do destinatário, sinistro da carga durante seu transporte, etc.); Ciência da Operação: Deve ser usado quando o destinatário da NF-e, tem conhecimento de que o documento foi emitido, mas ainda não expressou uma manifestação conclusiva para a operação. Após o registro deste evento é permitido que o destinatário realize o download da NF-e. Este evento também deverá ter na sequência o registro do evento com a manifestação conclusiva do destinatário sobre a operação, conforme prazo previsto pela legislação. O Portal da NF-e ainda descreve que, os eventos “Confirmação da Operação”, “Desconhecimento da Operação” ou “Operação não Realizada” possuem caráter conclusivo, ou seja, configuram a manifestação final do destinatário. Assim o destinatário poderá registrar somente um destes eventos, sendo que o último enviado se sobreporá aos demais. 30 Após o registro de um destes eventos com caráter conclusivo não será mais possível registrar a “Ciência da Operação”, visto que, este evento não configura a manifestação final BDU – Biblioteca Digital da UNIVATES (http://www.univates.br/bdu) do destinatário, não podendo substituir o anterior registrado. Para apoiar os eventos da Manifestação do Destinatário foram disponibilizados também os seguintes serviços: Consulta às Chaves de Acesso destinadas: Tem a principal finalidade de possibilitar ao destinatário da NF-e consultar as notas fiscais emitidas a sua empresa, permitindo a identificação do uso indevido de seu CNPJ em operações comerciais e consequentemente a possibilidade de manifestação; Download da NF-e: Permite o download da NF-e após realizar um dos eventos de “ciência da emissão” ou “confirmação de recebimento”. Mantendo o mesmo ideal de implantação da NF-e, o processo de Manifestação do Destinatário era, inicialmente, apenas voluntário. Conforme já mencionado na justificativa deste trabalho, com a publicação do Ajuste SINIEF 17/2012 e 01/2013, estabelecimentos distribuidores foram obrigadas a partir de 1º de março de 2013 a realizar a Manifestação do Destinatário. Em julho de 2013 foi a vez dos postos de combustíveis e dos transportadores retalhistas de combustíveis. Para estas empresas, a Manifestação do Destinatário é obrigatória sempre que a NF-e possuir operações com combustíveis, dentro dos prazos previstos pela legislação, conforme Tabela 2. Por sua vez, o governo do Rio Grande do Sul, publicou no Diário Oficial do Estado (DOE) a Instrução Normativa nº 29/13 que obriga os contribuintes do estado a realizarem a partir de 1º de julho de 2013 a Manifestação de todas as NF-e com valor superior a R$ 100.000,00 (cem mil reais) dentro dos prazos previstos pela legislação (Tabela 2), contados da data de “Autorização de Uso” da NF-e. Tabela 2 – Prazos para a Manifestação do Destinatário dos estabelecimentos obrigados Evento Ciência da Emissão Confirmação da Operação Operação não Realizada Desconhecimento da Operação Fonte: Ajuste SINEF 01/2013. Operação Interna 5 dias 20 dias 20 dias 10 dias Operação interestadual 10 dias 35 dias 35 dias 15 dias Operação interestadual, para área incentivada 10 dias 70 dias 70 dias 15 dias 31 Segundo o Portal Nacional da NF-e, entre os benefícios do destinatário nesse processo estão: BDU – Biblioteca Digital da UNIVATES (http://www.univates.br/bdu) Capacidade de identificar todas as NF-e emitidas tendo a empresa como destinatária, possibilitando a identificação do uso indevido de sua inscrição estadual ou CNPJ por parte de emissores que utilizam inscrições estaduais idôneas para acobertar operações fraudulentas de remessas de mercadorias para destinatário distinto do indicado na documentação fiscal; Possibilidade de download do arquivo XML de NF-e que não tenham sido transmitidas pelo respectivo emitente, ao manifestar a “ciência da emissão” ou “confirmação de recebimento”; Segurança jurídica no uso do crédito fiscal correspondente, pois uma nota confirmada não poderá ser cancelada pelo seu emitente; Registrar o recebimento da mercadoria, o que constitui formalmente o vínculo comercial que resguarda juridicamente as faturas comerciais, sem a necessidade de assinatura no canhoto impresso no DANFE. 2.5.1.1 Softwares relacionados O Portal Nacional da NF-e disponibiliza gratuitamente dois softwares para os contribuintes que desejam ou devem realizar o procedimento de Manifestação do Destinatário. Um deles é desenvolvido em ambiente desktop (seção 2.5.1.1.1) e o outro em ambiente web (seção 2.5.1.1.2). Nenhum deles é voltado para o uso específico em dispositivos móveis. 2.5.1.1.1 Aplicação Desktop O software para ambiente desktop (Figura 4) é desenvolvido na linguagem Java, portando necessita da instalação da Java Virtual Machine (JVM). O software tem uma base de dados local e permite ao usuário cadastrar vários destinatários e escolher qual deseja utilizar. Também possibilita consultar as últimas notas fiscais destinadas à empresa, consultar determinada NF-e pela chave de acesso ou importando o arquivo XML, ficando todas as notas 32 fiscais armazenadas localmente para posteriormente realizar a manifestação e também o download do XML. Ainda permite visualizar a quantidade de manifestações em um quadro de BDU – Biblioteca Digital da UNIVATES (http://www.univates.br/bdu) avisos e realizar procedimentos de backup e restore. Figura 4 – Aplicação desktop para Manifestação do Destinatário Fonte: Portal Nacional da NF-e (2013). 2.5.1.1.2 Aplicação Web Este serviço está disponível de forma experimental no Portal Nacional da NF-e, no menu “Serviços > Manifestação do Destinatário”. Ao selecionar esta opção o navegador solicita um certificado digital, se selecionado, abrirá a página para realizar a manifestação já com o campo CNPJ do destinatário preenchido (Figura 5), devendo ser informado ainda a Chave de Acesso da NF-e, a manifestação a ser realizada e a justificativa quando houver necessidade. 33 BDU – Biblioteca Digital da UNIVATES (http://www.univates.br/bdu) Figura 5 – Aplicação web para Manifestação do Destinatário Fonte: Portal Nacional da NF-e (2013). Caso não tenha a Chave de Acesso da NF-e, é possível realizar a consulta das últimas NF-e emitidas que o tenham como destinatário e em seguida realizar a manifestação. BDU – Biblioteca Digital da UNIVATES (http://www.univates.br/bdu) 34 3 PADRÕES E TECNOLOGIAS UTILIZADAS Esse capítulo visa formar o referencial teórico utilizado como base de estudo para o desenvolvimento do trabalho, apresentando os padrões e as tecnologias utilizadas para o desenvolvimento do aplicativo na plataforma Android para o processo de Manifestação do Destinatário da NF-e. 3.1 Extended Markup Language (XML) O termo “marcação” é utilizado muitas vezes para descrever anotações ou marcas em um texto, que tem por objetivo dar instruções de como o texto deve ser representado. Sendo assim, entende-se uma “linguagem de marcação” como um conjunto de convenções utilizadas para a codificação de textos, que deve especificar quais marcas são obrigatórias e permitidas, o significado de cada uma delas e fazer a distinção entre marcas e textos (ALMEIDA, 2002). A primeira linguagem de marcação moderna surgiu em 1969, chamada de General Markup Language (GML) que mais tarde se tornou a Standard Generalized Markup Language (SGML), que em 1986 foi adotada como um padrão de troca e armazenamento de dados internacionais sendo usado para descrever a estrutura e conteúdo de diferentes tipos de documentos eletrônicos. Porém, com a evolução da World Wide Web (WWW) surgiu a necessidade de abordagens mais simples voltadas para a Internet (ANDERSON et al., 2001). O XML ou Extended Markup Language é uma linguagem de marcação derivada e simplificada do SGML voltada para Internet, idealizada em 1996 por Jon Bosak, que em 1998 se tornou uma especificação reconhecida pelo W3C (ALMEIDA, 2002). 35 Segundo Almeida (2002), o XML é uma arquitetura que não possui elementos ou marcas pré-definidas, o que permite ao autor do documento total liberdade para idealizar suas BDU – Biblioteca Digital da UNIVATES (http://www.univates.br/bdu) próprias marcações, proporcionando ao XML maior flexibilidade na recuperação e disseminação das informações na Internet. De acordo com Bax (2000), XML é uma linguagem expressa em texto puro, concebida especialmente para armazenar e transmitir dados, sendo facilmente interpretado por software ou humano. É uma linguagem que possui marcas embutidas que qualificam cada unidade da informação contida no texto. Assim, um arquivo XML é constituído de elementos. Como sempre, cada elemento possui uma marca inicial (como <titulo> ou <title>), uma marca final (como </titulo> ou </title>) e a informação propriamente dita entre as duas marcas (BAX, 2000, p. 6). Segundo Bax (2000) as marcações de um documento XML tem a finalidade de estruturar o conteúdo do texto e não de formatação como algumas outras linguagens de marcação como o HTML. O XML é uma arquitetura não proprietária de código aberto, sendo amplamente utilizada na web. O projeto da NF-e adotou essa arquitetura em todas as operações disponíveis nas Notas Fiscais Eletrônicas, como na Listagem 1 onde é apresentado o XML usado para a solicitação de “Download da NF-e”. Listagem 1 – XML para download da NF-e <?xml version="1.0"?> <downloadNFe xmlns="http://www.portalfiscal.inf.br/nfe" versao="1.00"> <tpAmb>2</tpAmb> <xServ>DOWNLOAD NFE</xServ> <CNPJ>73766255000133</CNPJ> <chNFe>43130473766255000133550080000005651000036265</chNFe> </downloadNFe> Fonte: Do autor. 36 3.1.1 XML Schema BDU – Biblioteca Digital da UNIVATES (http://www.univates.br/bdu) O XML Schema ou esquema XML é uma especificação W3C que consiste em uma linguagem baseada no formato XML com o objetivo de definir uma classe de documento XML (W3C, 2004). Segundo Anderson et al. (2001), o papel de um esquema XML consiste basicamente em restringir e explicar o conteúdo de um documento XML, permitindo ao criador do documento especificar uma estrutura de elementos e definir os valores permitidos no conteúdo destes elementos. Em outras palavras, pode-se usar o XML Schema para definir um modelo para um documento XML e assim identificar se ele é válido ou não. De acordo com Pinto e Saccol (2003), entre as diversas possibilidades da linguagem XML Schema está a possibilidade de especificar o tipo de cada elemento do XML, normalmente utilizado quando se deseja impor alguma restrição ao elemento, esse tipo pode ser simples (simpleType), ou complexo (complexType) que pode conter um conjunto de elementos cada qual com seu tipo. Também pode ser definida a sequência de cada elemento dentro do XML e a quantidade mínima e máxima de cada elemento pelos atributos minOccurs e maxOccurs. A linguagem XML Schema fica armazenada em um arquivo Schema Definition Language (XSD) e um mesmo arquivo pode estar vinculado a diversos outros arquivos XSD. O projeto da NF-e disponibiliza e utiliza XML Schema para validar os arquivos XML do projeto. Entre as diversas utilidades estão as validações de elementos obrigatórios e de informações como: CEP, UF, CNPJ, CPF, datas, valores, entre outros. Na Listagem 2 é apresentado o XML Schema referente ao XML para download da NF-e apresentado na Listagem 1. Listagem 2 – XML Schema para download da NF-e <?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://www.portalfiscal.inf.br/nfe" targetNamespace="http://www.portalfiscal.inf.br/nfe" elementFormDefault="qualified" attributeFormDefault="unqualified"> <xs:include schemaLocation="leiauteDownloadNFe_v1.00.xsd"/> <xs:element name="downloadNFe" type="TDownloadNFe"> 37 <xs:annotation> <xs:documentation>Schema de validação XML do Pedido de download de NF-e</xs:documentation> BDU – Biblioteca Digital da UNIVATES (http://www.univates.br/bdu) </xs:annotation> </xs:element> </xs:schema> Fonte: Do autor. 3.1.2 Analisador DOM O Document Object Model (DOM) ou Modelo de Objetos de Documentos é mais uma especificação W3C, que define uma interface padrão para navegação e manipulação de documentos XML e HTML, permitindo ao desenvolvedor ler, pesquisar, excluir ou adicionar um objeto no DOM, independente da linguagem ou plataforma utilizada (ANDERSON et al., 2001). A maioria das linguagens de programação disponibilizam Application Programming Interface (API) ou bibliotecas que facilitam aos desenvolvedores interpretar e manipular documentos XML, como por exemplo, a API XML DOM, responsável por definir uma maneira na qual um documento XML possa ser acessado e manipulado pelo desenvolvedor (BECKER; CLARO; SOBRAL, 2002). O Android que será apresentado na seção 3.4 página 44, possui bibliotecas nativas para a manipulação de documentos XML, que foram utilizadas no desenvolvimento do aplicativo para facilitar a leitura e interpretação dos documentos XML retornados pelos web services do projeto NF-e. 3.2 Assinatura Digital A assinatura digital consiste em uma técnica de criptografia assimétrica, também conhecida como criptografia de chave pública, aplicada sobre um documento eletrônico com a finalidade de garantir a integridade e autenticidade do documento (MORAES, 2010). Em termos gerais, qualquer documento eletrônico – qualquer conjunto de bits – pode ser assinado criptograficamente. Assinaturas criptográficas, ou “assinaturas 38 digitais”, podem ser utilizadas para assinar documentos e até substituir, legalmente a assinatura manuscrita de uma pessoa (MEDNIEKZ et al., 2012, p. 115). BDU – Biblioteca Digital da UNIVATES (http://www.univates.br/bdu) Segundo Moraes (2010), o processo para criar a assinatura digital consiste em calcular um número individual também conhecido como hash, de um documento eletrônico através de um algoritmo matemático e depois cifrar o hash com a chave privada do assinante. Já o processo para validar a assinatura digital consiste em decifrar a assinatura digital com a chave pública do assinante e calcular o hash do documento original comparando-os, se o resultado for idêntico a assinatura é valida. A Figura 6, ilustra o processo da assinatura digital da NF-e, no qual é aplicado uma função de criptografia SHA-1 sobre o conteúdo do XML que resulta em um hash (Resumo 1) e sobre este é aplicado o algoritmo RSA utilizando a chave privada do certificado digital do “João da Silva”, resultando na assinatura digital. O “Resumo1”, a assinatura e o certificado são anexados ao conteúdo do XML e enviados para a SEFAZ do contribuinte emitente. A SEFAZ, por sua vez, para validar a assinatura digital do “João da Silva”, realiza a função de criptografia SHA-1 sobre o conteúdo do XML que resulta em um hash (Resumo2), depois aplica o algoritmo de descriptografia RSA sobre a assinatura do “João da Silva” utilizando a chave pública do certificado digital que gera um hash (Resumo3). Se o “Resumo2” for idêntico ao “Resumo3” a assinatura digital é valida. 39 BDU – Biblioteca Digital da UNIVATES (http://www.univates.br/bdu) Figura 6 – Assinatura Digital da NF-e Fonte: Do autor, adaptado de Manual - Credenciamento como Emissor da Nota Fiscal Eletrônica (2008, p. 17). A assinatura digital da NF-e segue o padrão W3C Signature em formato XML representado na Listagem 3. Listagem 3 – XML Signature 1 2 3 <Signature xmlns="http://www.w3.org/2000/09/xmldsig#"> <SignedInfo> <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC- xml-c14n-20010315" /> 4 <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa- sha1" /> 5 <Reference URI="#ID2102104313017376625500013355008000000532100003591701"> 6 7 <Transforms> <Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" /> 40 8 <Transform Algorithm="http://www.w3.org/TR/2001/REC-xml- BDU – Biblioteca Digital da UNIVATES (http://www.univates.br/bdu) c14n-20010315" /> 9 </Transforms> 10 <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> 11 12 <DigestValue>eFf3MHAb7HAhmDKy3v4yJ4jLjTg=</DigestValue> </Reference> 13 </SignedInfo> 14 <SignatureValue>cO5XYGkCkKqn2x5cjqgS+SeaUJcota...</SignatureValue> 15 <KeyInfo> 16 <X509Data> 17 <X509Certificate>MIIHFTCCBP2gAwIBAgIID0cNAQELB...</X509Certificate> 18 19 </X509Data> </KeyInfo> 20 </Signature> Fonte: Do autor. Na listagem acima, identifica-se o hash de resumo no elemento “DigestValue” (linha 11), a assinatura digital no elemento “SignatureValue” (linha 14) e a chave pública do certificado no elemento “X509Certificate” (linha 17). No desenvolvimento do aplicativo na plataforma Android (seção 3.4) não foi encontrado nenhuma biblioteca ou classe que apoiasse o processo de assinatura digital e a mesma teve que ser feita manualmente seguindo as especificações W3C Signature e as orientações do Manual de Orientação do Contribuinte da NF-e. De acordo com Moraes (2010), o certificado digital (seção 3.2.1) serve como garantia de que a chave pública enviada neste processo de assinatura digital seja realmente do emissor. 3.2.1 Certificado Digital O certificado digital consiste em um documento eletrônico com a finalidade de identificar uma entidade, seja ela uma pessoa física, jurídica ou até mesmo um servidor. Neste documento constam informações que identificam essa entidade, como: nome, endereço, email, CNPJ, chave pública e também sua validade (CARUSO; STEFFEN, 2006). 41 Segundo SIX (2012), um certificado digital normalmente é emitido por um órgão terceiro, chamado de Autoridade Certificadora (AC), que cabe a ela a responsabilidade de BDU – Biblioteca Digital da UNIVATES (http://www.univates.br/bdu) identificar se a entidade que está requisitando o certificado digital é realmente quem diz ser, antes de entregar o certificado a ela. De acordo com Caruso e Steffen (2006), no Brasil, as atividades de certificados digitais são de responsabilidade da Infraestrutura de Chaves Públicas Brasileiras (ICP-Brasil) e cabe a ela gerenciar e credenciar novas AC. A tecnologia de certificados digitais permite assinar digitalmente qualquer tipo de documento eletrônico com validade jurídica garantida, ou seja, é equivalente a uma assinatura manuscrita de uma pessoa (MEDNIEKZ et al., 2012). Para Caruso e Steffen (2006, p. 184): Os certificados digitais são utilizados para confirmação de identidade na Internet, correio eletrônico, transações on-line, redes privadas virtuais, transações eletrônicas, informações eletrônicas, cifragem de chaves de sessão, assinatura de documentos com verificação da integridade de suas informações, cifragem de documentos, base de dados, mensagens e outras informações eletrônicas. Segundo o Portal do Instituto Nacional de Tecnologia da Informação, entre os tipos de certificados mais comuns estão o A1, que possui validade de 1 (um) ano e fica armazenado no computador, e o A3, que pode ter validade de até 5 (cinco) anos e fica armazenado em um cartão ou token. De acordo com o Manual de Orientação do Contribuinte (2012), a Nota Fiscal Eletrônica exige que os contribuintes utilizem certificados digitais no padrão ICP-Brasil do tipo A1 ou A3 que contenham o CNPJ da empresa emitente, e estes são utilizados no momento da assinatura digital dos arquivos XML, o que permite a identificação do autor do arquivo e da integridade do mesmo, e também na transmissão dos arquivos evitando a necessidade da autenticação por meio de usuário e senha. 3.3 Web service A tecnologia web service foi criada por grandes empresas filiadas ao W3C e surgiu como uma evolução dos sistemas distribuídos muito utilizados na segunda metade da década de noventa em redes locais e homogêneas, a partir da necessidade de integrar aplicações heterogêneas pela Internet (GOMES, 2010). 42 Segundo Deitel e Deitel (2011), o web service ou serviço web é um componente de software armazenado em computador que disponibiliza um serviço para que possa ser BDU – Biblioteca Digital da UNIVATES (http://www.univates.br/bdu) acessado por outro componente de software em outro computador, permitindo assim a interação entre as aplicações, através da troca de mensagens pela Internet. O web service é uma tecnologia normalizada que permite a interoperabilidade entre aplicações heterogêneas, ou seja, permite a interação entre diferentes softwares independente da linguagem de programação em que foram desenvolvidas, sistema operacional ou hardware utilizado, utilizando para isso tecnologias abertas para a comunicação, como o XML e o HTTP (GOMES, 2010). Seu funcionamento normalmente está associado a dois “agentes”, o “provedor” do serviço e o “cliente” que vai consumir o serviço disponibilizado pelo provedor. O projeto da NF-e adotou a tecnologia web service, sendo que todos os endereços dos serviços do projeto estão disponíveis no Portal Nacional da NF-e. Existem alguns padrões para o desenvolvimento e comunicação com web services, entre eles o SOAP que será apresentado na seção 3.3.2 página 43. 3.3.1 Web Services Description Language (WSDL) Para apoiar a tecnologia web services, o W3C criou o Web Services Description Language (WSDL). Segundo Gomes (2010), o WSDL é um arquivo em formato XML com a finalidade de descrever detalhadamente as especificações e operações de determinado web service. O arquivo descreve os métodos disponíveis pelo serviço, o protocolo de comunicação utilizado, os tipos de dados suportados, o formato das mensagens de entrada e saída, o endereço do serviço, entre outras especificações. A Listagem 4 apresenta o trecho de um documento WSDL do web service do projeto NF-e para solicitar o serviço de “Download da NF-e”. Listagem 4 – Trecho do documento WSDL do web service para download da NF-e <s:element name="nfeCabecMsg" type="tns:nfeCabecMsg" /> <s:complexType name="nfeCabecMsg"> <s:sequence> <s:elemento type="s:string" /> minOccurs="0" maxOccurs="1" name="cUF" 43 <s:element minOccurs="0" maxOccurs="1" name="versaoDados" type="s:string" /> </s:sequence> BDU – Biblioteca Digital da UNIVATES (http://www.univates.br/bdu) <s:anyAttribute /> </s:complexType> Fonte: Portal Nacional da NF-e (2013). 3.3.2 Simple Object Access Protocol (SOAP) O Simple Object Access Protocol (SOAP) é um protocolo de comunicação para web services criado pelo W3C e segue um modelo de “requisição-resposta” através da troca de mensagens baseado no formato XML que normalmente trafegam sobre o protocolo HTTP (GOMES, 2010). A comunicação acontece através da troca de mensagens SOAP, onde normalmente o cliente (consumidor do serviço) faz uma requisição através de uma mensagem SOAP e o servidor (provedor do serviço) devolve uma mensagem SOAP com a resposta. Uma mensagem SOAP é um documento no formato XML que deve seguir as especificações definidas pelo documento WSDL. Por padrão toda mensagem SOAP (Figura 7) é formada por um envelope, que pode conter um cabeçalho para fins de controle e identificação e sempre haverá um corpo para a mensagem propriamente dita. (W3C, 2007). Figura 7 – Representação da mensagem SOAP Fonte: Do autor, adaptado de W3C (2007). 44 A Listagem 5 exibe uma mensagem SOAP completa relativo ao serviço de “download da NF-e” descrito no documento WSDL completo da Listagem 4. BDU – Biblioteca Digital da UNIVATES (http://www.univates.br/bdu) Listagem 5 – Mensagem SOAP para o web service de download da NF-e 1 <?xml version='1.0' encoding='UTF-8' ?> 2 <soap:Envelope xmlns:nfes="http://www.portalfiscal.inf.br/nfe/wsdl/NfeDownloadNF" xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns="http://www.portalfiscal.inf.br/nfe"> 3 <soap:Header> 4 <nfes:nfeCabecMsg> 5 <nfes:cUF>43</nfes:cUF> 6 <nfes:versaoDados>1.00</nfes:versaoDados> 7 </nfes:nfeCabecMsg> 8 </soap:Header> 9 <soap:Body> 10 <nfes:nfeDadosMsg> 11 <downloadNFe versao="1.00"><tpAmb>2</tpAmb><xServ>DOWNLOAD NFE</xServ><CNPJ>73766255000133</CNPJ><chNFe>431304737662550001335555 50000001681000010674</chNFe></downloadNFe> 12 13 </nfes:nfeDadosMsg> </soap:Body> 14 </soap:Envelope> Fonte: Do autor. Na listagem acima é possível observar as marcações de início e fim do cabeçalho (linhas 3 e 8) e do corpo da mensagem SOAP (linhas 9 e 13) que são padrões da mensagem SOAP como já representado na Figura 7. O projeto da NF-e utiliza o SOAP versão 1.2 para comunicação com os web services. Para o desenvolvimento do aplicativo foi utilizado a biblioteca “kSOAP2-Android”, uma biblioteca open source que implementa o protocolo SOAP para a plataforma Android. 3.4 Android O Google anunciou em novembro de 2007 a Open Handset Alliance (OHA) ou Aliança de Telefonia Móvel Aberta e a plataforma Android. A aliança foi inicialmente 45 composta por mais 33 empresas, entre fabricantes de aparelhos, operadoras de telefonia, empresas de software e de comercialização, entre outras. A aliança integra softwares e outras BDU – Biblioteca Digital da UNIVATES (http://www.univates.br/bdu) propriedades intelectuais contribuídas pelas empresas participantes que são disponibilizadas para os desenvolvedores por meio da comunidade open source através do site de desenvolvimento do Google (LOMBARDO et al., 2009). De acordo com Pereira e Silva (2009), o Android foi construído em conjunto com a OHA tendo como principal objetivo criar uma plataforma para dispositivos móveis verdadeiramente aberta, permitindo aos desenvolvedores criarem aplicações que utilizem todos os recursos que um dispositivo móvel possa oferecer. Por ser uma plataforma de código fonte aberto está sempre em constante evolução, já que desenvolvedores da comunidade open source podem adaptar e criar novas funcionalidades que venham a surgir. O Android é um ambiente de software para dispositivos móveis, sendo composto por um sistema operacional baseado em um Kernel Linux, bibliotecas, frameworks, aplicativos e funcionalidades do próprio dispositivo móvel. Os componentes do sistema operacional são escritos na linguagem C/C++, enquanto os aplicativos para os usuários são escritos na linguagem Java e interpretadas por uma máquina virtual chamada Dalvik, desenvolvida especialmente para a plataforma Android (ABLESON et al., 2012). 3.4.1 Arquitetura A arquitetura da plataforma Android (Figura 8) é composta por 4 camadas que formam uma pilha: Linux Kernel, Bibliotecas, Framework e Aplicações. As camadas serão apresentadas resumidamente conforme Pereira e Silva (2009). 46 BDU – Biblioteca Digital da UNIVATES (http://www.univates.br/bdu) Figura 8 – Arquitetura da plataforma Android Fonte: Pereira e Silva (2009, p. 5). Na base da pilha está o Linux Kernel que atua como uma camada de abstração entre o hardware do dispositivo com o restante da pilha, ele é responsável pelos serviços centrais, como o gerenciamento de energia, memória, processos e segurança. É nesta camada que os drivers de hardware são implementados. A camada bibliotecas (Libraries) contém todas as bibliotecas desenvolvidas na linguagem C/C++ que são utilizadas pelo sistema, além de bibliotecas com funções de áudio, vídeo, gráficos e acesso a banco de dado. Todas essas funções ficam disponíveis no framework para desenvolvimento de aplicativos. O ambiente de execução (Android Runtime) é uma instância da máquina virtual Dalvik que é criada para cada aplicação executada no Android. A máquina virtual Dalvik foi desenvolvida especialmente para uso em dispositivos móveis devido às baixas configurações de hardware destes dispositivos e tem a finalidade de interpretar os códigos escritos em Java. Neste ambiente também estão as bibliotecas que fornecem a maioria das funcionalidades disponíveis nas principais bibliotecas da linguagem Java. A camada Applications framework é o repositório das APIs e recursos utilizados pelos aplicativos Android, como os recursos visuais, os provedores de conteúdo que possibilitam 47 que uma aplicação possa compartilhar e acessar informações de outra aplicação, o gerenciador de localização, o gerenciador de notificações que fornece informações sobre eventos que BDU – Biblioteca Digital da UNIVATES (http://www.univates.br/bdu) ocorrem no aplicativo, entre outros. No topo da pilha, acima de todas as outras está a camada de aplicações (Applications), nela encontram-se todos os aplicativos desenvolvidos além dos aplicativos fundamentais da plataforma, como agenda, discador, gerenciador de contados, navegadores, clientes de e-mail, serviço de mensagens, entre outros. 3.4.2 Modelo de segurança Como o Android utiliza o sistema operacional Linux, o padrão de segurança também é baseado no sistema Linux, no qual utiliza o conceito de usuários e grupos, onde cada grupo e usuário possuem um identificador que os diferenciam e um usuário pode ser membro de vários grupos assim como um grupo pode ter vários usuários (SIX, 2012). Segundo Six (2012), cada arquivo do sistema Linux possui um usuário como proprietário e um grupo definido. As permissões são feitas diretamente no arquivo, podendo ser configuradas permissões diferentes para o proprietário, grupo e, para os demais usuários que não pertencem a nenhum dos dois, além disso, cada permissão possui atribuições de leitura, escrita e execução do arquivo. Por padrão, quando um aplicativo Android é instalado, um novo usuário é criado para essa aplicação com permissões totais sobre ela, e o Linux impede que aplicativos com diferentes usuários acessem dados de outras aplicações, proporcionando assim mais segurança (SIX, 2012). 3.4.3 Permissões do aplicativo Segundo Six (2012), o Android utiliza um sistema de permissões para serviços fornecidos pelas aplicações, onde os desenvolvedores devem solicitar por meio de suas aplicações a permissão aos usuários para alguns serviços que desejam utilizar em suas aplicações que são considerados perigosos para o Android, como o acesso a Internet e a rede de contatos. Para Six (2012, p. 49): 48 BDU – Biblioteca Digital da UNIVATES (http://www.univates.br/bdu) O Android é a única plataforma móvel atual com esse tipo de sistema de permissão nativo e requerido para os aplicativos. A habilidade de restringir os comportamentos e recursos de um aplicativo é uma capacidade significativa e poderosa que outras grandes plataformas não oferecem. Isso pode ser considerado tanto um ponto forte da plataforma Android como uma grande oportunidade para você, desenvolvedor, criar aplicativos mais seguros. O usuário, ao tentar instalar uma aplicação em seu dispositivo, recebe uma lista de permissões solicitadas pelo aplicativo e, desta forma, consegue identificar se essas permissões fazem sentido ou não para o aplicativo que está sendo instalado, podendo recusar a instalação do mesmo (SIX, 2012). 3.4.4 Banco de dados nativo O Android possui um banco de dados relacional chamado SQLite, que além de leve é muito robusto, e ainda tem a vantagem de ser aprimorado constantemente pela comunidade de código aberto (MEDNIEKZ et al., 2012). Segundo Medniekz et al. (2012), o SQLite não tem uma série de recursos de um banco de dados relacional voltados para ambientes desktop, o que o torna leve, mas nem por isso deixa de ser um banco de dados seguro e confiável. 3.4.5 Assinatura do aplicativo Segundo Six (2012), a assinatura de um aplicativo Android permite ao desenvolvedor carimbá-lo como sendo de sua autoria. Conforme Medniekz et al. (2012, p. 114): A assinatura do aplicativo, ou assinatura do código, permite que dispositivos Android, o Android Market e modos alternativos de distribuição saibam quais aplicativos se originam a partir do proprietário de um certificado de assinatura e assegura que o código não foi modificado desde a assinatura. Para realizar a assinatura de aplicativos é necessário um certificado digital com uma chave privativa associada. Um certificado digital neste caso serve como uma identificação para o desenvolvedor e a chave privativa é um número utilizado para gerar uma assinatura. No caso do Android, o certificado digital pode ser autoassinado, ou seja, ele não precisa ser gerado por uma autoridade certificadora e pode ser criado pelo próprio desenvolvedor (SIX, 2012). 49 De acordo com Six (2012), o certificado digital autoassinado com a chave privativa associada pode ser gerado pelo utilitário keytool e a assinatura dos aplicativos feitas pelo BDU – Biblioteca Digital da UNIVATES (http://www.univates.br/bdu) utilitário jarsigner, ambas do ambiente de desenvolvimento do Android. O autor ainda sugere para proteger bem a chave privativa, pois ela pode deixar qualquer um se identificar como o proprietário do aplicativo. 3.4.6 Distribuição de aplicativos O Google mantém o site Google Play – “play.google.com”, que tem como objetivo ser um centralizador de aplicativos Android para usuários e desenvolvedores. Os usuários podem acessar o site, fazer buscas, efetuar o download de aplicativos Android, realizar uma classificação ao aplicativo ou ainda deixar algum comentário (LECHETA, 2010). Já os desenvolvedores podem distribuir seus aplicativos para os usuários através do Google Play, de forma gratuita ou não. Para publicar um aplicativo é necessário possuir uma conta no Google e ainda se registrar como desenvolvedor no site “https://play.google.com/apps/publish/signup/”, onde será necessário preencher algumas informações e pagar uma taxa utilizando o serviço Google Checkout. Outro requisito para publicar um aplicativo é que o mesmo seja assinado digitalmente (seção 3.4.5) (MEDNIEKZ et al., 2012). Segundo Medniekz et al. (2012), os desenvolvedores podem publicar aplicativos e cobrar por eles sem ter a necessidade de criar uma empresa, sendo necessário somente criar uma “conta de comerciante” no Google e os pagamentos serão recebidos na conta bancária devidamente configurada no serviço Google Checkout. BDU – Biblioteca Digital da UNIVATES (http://www.univates.br/bdu) 50 4 APLICATIVO DESENVOLVIDO Neste capítulo serão apresentadas as principais etapas realizadas no desenvolvimento do aplicativo proposto pelo trabalho, o qual recebeu o nome de NF-e Droid. Nas próximas seções serão apresentados a análise de requisitos, o desenvolvimento e as funcionalidades do aplicativo desenvolvido. 4.1 Análise de requisitos A análise de requisitos possibilita ao engenheiro do software ou analista especificar as interfaces do sistema, bem como as funções e restrições que este deve possuir. A especificação de requisitos proporciona ao desenvolvedor critérios para avaliar se o software foi desenvolvido corretamente para atender as necessidades para a qual foi desenvolvido (PRESSMAN, 2010). Na seção 4.1.1 serão apresentados os requisitos funcionais e na seção 4.1.2 os requisitos não funcionais do aplicativo. 4.1.1 Requisitos funcionais Segundo Sommerville (2011), os requisitos funcionais devem descrever o que um sistema deve fazer e, quando seu uso é destinado aos usuários, devem ser especificados de forma mais abstrata para uma melhor compreensão por parte dos mesmos. Foram mapeados os seguintes requisitos funcionais para o aplicativo NF-e Droid: 51 Possibilitar ao usuário cadastrar vários destinatários; Possibilitar ao usuário selecionar qual destinatário vai utilizar (mediante login BDU – Biblioteca Digital da UNIVATES (http://www.univates.br/bdu) no sistema); Possibilitar ao usuário verificar se o serviço da SEFAZ de seu Estado está ativo ou não; Permitir a consulta de determinada NF-e e seus respectivos eventos através de sua chave de acesso, com ou sem auxilio da câmera; Permitir a consulta das últimas Notas Fiscais Eletrônicas emitidas para o destinatário selecionado; Permitir ao usuário se manifestar sobre sua participação comercial em uma NF-e emitida para o destinatário selecionado; Possibilitar ao usuário realizar o download da NF-e após ter realizado o processo de Manifestação da Nota Fiscal Eletrônica. Segundo Sommerville (2011), a modelagem de casos de uso é amplamente utilizada para apoiar a elicitação de requisitos, um diagrama de caso de uso oferece uma visão simplificada das interações que os usuários podem realizar. Sendo assim, para apoiar a elicitação dos requisitos funcionais do aplicativo, foi modelado o diagrama de casos de uso (Figura 9), onde é apresentado o usuário envolvido, no caso o destinatário da NF-e, e as principais funções que ele pode desempenhar. 52 BDU – Biblioteca Digital da UNIVATES (http://www.univates.br/bdu) Figura 9 – Diagrama de casos de uso Fonte: Do autor. No diagrama acima, as elipses representam as funcionalidades que o destinatário pode desempenhar e as notações <<extend>> indicam as funcionalidades opcionais que podem ser realizadas a partir da função apontada pela linha tracejada. 4.1.2 Requisitos não funcionais Segundo Sommerville (2011), os requisitos não funcionais são requisitos que não estão diretamente relacionados com as funcionalidades do sistema, entretanto, são normalmente mais críticos que os requisitos funcionais, pois podem restringir as operações do sistema. Foram mapeados os seguintes requisitos não funcionais para o aplicativo NF-e Droid: Usabilidade: O aplicativo deve seguir os princípios de usabilidade de Interface Homem Computador (IHC), devendo ser simples e intuitivo ao usuário; 53 Segurança: O aplicativo deve criptografar as senhas dos usuários e dos certificados digitais antes de armazena-las no banco de dados; BDU – Biblioteca Digital da UNIVATES (http://www.univates.br/bdu) Internet: O dispositivo no qual ficará instalado o aplicativo deve possuir conexão com a Internet, seja ela por Wifi, 3G, 4G, etc. Pois a troca de informações com a SEFAZ é realizada pela Internet através de web services; Plataforma: Para o correto funcionamento do aplicativo, o dispositivo móvel deve possuir a versão 2.2 ou superior da plataforma Android; Hardware: Para realizar a leitura do código de barras do DANFE é necessário um dispositivo com suporte a câmera digital de boa qualidade para a correta leitura do código; Certificado Digital: É necessário possuir um certificado digital no padrão ICPBrasil do tipo A1, em arquivo no formato (.pfx) ou (.p12), devendo o mesmo conter o CNPJ da empresa destinatária e os demais certificados da AC que o emitiu. O arquivo deve estar armazenado no cartão de memória ou na memória interna do dispositivo, pois é obrigatório para realizar a comunicação com os web services da SEFAZ e na realização da assinatura digital das mensagens; Aplicativo: Para realizar a leitura do código de barras do DANFE é necessária a instalação do aplicativo “Barcode Scanner”, disponível no Google Play. 4.2 Desenvolvimento Como já mencionado na justificativa deste trabalho, não existem aplicativos na plataforma Android (disponíveis no Google Play) que contribuíam para o procedimento de Manifestação do Destinatário, mais precisamente para dispositivos móveis. Partindo deste princípio, procurou-se desenvolver um aplicativo eficiente e confiável, aproveitando-se de recursos que um dispositivo móvel possa oferecer, como a câmera digital para a leitura dos códigos de barras. A preocupação ficou voltada para o desempenho, devida as baixas configurações de hardware que a maioria destes dispositivos possuem; a segurança das informações, pelo fato do dispositivo estar sujeito a roubo ou extravio; e a usabilidade, onde procurou-se desenvolver telas com interfaces simples e intuitivas ao usuário. 54 Para o desenvolvimento do aplicativo foram utilizados os web services de eventos e consultas disponíveis no Portal Nacional da NF-e, bem como os manuais com as BDU – Biblioteca Digital da UNIVATES (http://www.univates.br/bdu) especificações técnicas para a integração dos mesmos. Nas próximas subseções serão apresentadas as ferramentas utilizadas no desenvolvimento do aplicativo, a modelagem da base de dados e a modelagem de classes. 4.2.1 Ferramentas utilizadas Para o desenvolvimento do aplicativo NF-e Droid utilizou-se a ferramenta de desenvolvimento Eclipse, que é um software open source que reúne uma série de características e funções para apoio ao desenvolvimento de softwares na linguagem de programação Java, ou em outras linguagens mediante a utilização de plug-ins. Como o aplicativo foi desenvolvido para a plataforma Android, utilizou-se no Eclipse o plug-in Android Developer Tools (ADT) ou ferramenta de desenvolvimento Android. Também foi utilizado a versão 2.3.3 do Source Development Kit (SDK) ou kit de desenvolvimento para a plataforma Android. No desenvolvimento do aplicativo também utilizou-se a biblioteca “kSOAP2Android” versão 3.0, uma biblioteca open source que implementa o protocolo SOAP para a plataforma Android. 4.2.2 Modelagem da base de dados Para atender aos requisitos da aplicação, criou-se uma base de dados utilizando o banco de dados SQLite contendo uma única tabela, conforme representado na Tabela 3. Tabela 3 – Tabela de destinatário Campo Id destinatario senha logado Cnpj Ambiente UF Path_certificado Descrição Identificador numérico e único Descrição do destinatário Senha para autenticação no aplicativo Identificador para destinatário autenticado CNPJ do destinatário Ambiente (Homologação ou Produção) Unidade Federativa do destinatário Caminho completo do certificado digital 55 Campo Senha_certificado Path_xml Descrição Senha do certificado digital Diretório para armazenar os arquivos XML BDU – Biblioteca Digital da UNIVATES (http://www.univates.br/bdu) Fonte: Do autor. A tabela destinatários, representada acima, tem a finalidade de armazenar todos os dados do usuário que são necessários para realizar a comunicação com os web services da SEFAZ, além dos dados para realizar o acesso no sistema e também permitir a inclusão de vários destinatários. A senha de acesso ao sistema e do certificado digital são salvas na base de dados utilizando criptografia Advanced Encryption Standard (AES) a fim de proteger essas informações de pessoas mal intencionadas. 4.2.3 Modelagem de classes Para demonstrar as principais classes que foram criadas durante o desenvolvimento do aplicativo NF-e Droid, elaborou-se um diagrama de classes a fim de apresentar resumidamente as características de cada uma delas. No Apêndice A é apresentado o diagrama contendo as principais classes do aplicativo e os principais métodos públicos e privados de cada classe. Os métodos públicos estão representados na figura pela “bola verde” e os privados pelo “quadrado vermelho”. No diagrama não estão sendo representados os atributos das classes e os métodos get e set tradicionais. As classes Activity (telas) e Adapter (listas) dos aplicativos Android também não estão sendo representadas, bem como outras classes que foram utilizadas durante o desenvolvimento. A classe NFeMsg centraliza todos os métodos que montam as mensagens de solicitação aos web services da SEFAZ conforme as especificações do layout disponível no Portal Nacional da NF-e. As mensagens construídas nesses métodos são enviadas através do método enviaMsgWS da classe NFeUtils. O método enviaMsgWS por sua vez instancia a classe SoapServEnv que monta o envelope SOAP que é enviado ao web service. A classe NFeUtils além de conter o método responsável pelo envio da mensagem, contém alguns métodos de apoio, como o getWS e getSSLSocketFactory. O método getWS é 56 responsável por capturar o endereço do web service conforme UF e ambiente do destinatário que está autenticado na aplicação, já o método getSSLSocketFactory é responsável por BDU – Biblioteca Digital da UNIVATES (http://www.univates.br/bdu) realizar a autenticação através do protocolo SSL com o uso do certificado digital, pois é necessário para a comunicação com os web services da NF-e. Já a SoapServEnv é uma classe que estende a classe SoapSerializationEnvelope da biblioteca kSOAP2, pois houve a necessidade de sobrescrever o método Write da mesma, pois ela não montava o envelope SOAP corretamente para o projeto da NF-e. A classe AssinaturaXML é responsável por criar a assinatura digital no padrão W3C necessário para a manifestação do destinatário. O método gerarAssinatura recebe como parâmetro o caminho do certificado digital, a senha, o XML a ser assinado e a chave de acesso da NF-e; devolvendo a assinatura digital em formato XML. A classe DestinatarioDAO segue o padrão Data Access Object (DAO) ou objeto de acesso a dados, que é um padrão para persistência de dados que separa as regras de negócio das regras do banco de dados. Assim sendo, a classe DestinatarioDAO possui os métodos responsáveis por inserir, atualizar, excluir, selecionar e listar os destinatários da base de dados. Existem diversos eventos que podem estar vinculados a uma NF-e, como esses eventos possuem características em comum, criou-se a classe Evento contendo os atributos e métodos padrões para qualquer evento. As classes EventoCCe, EventoCancelamento e EventoManifestação implementam o conceito de herança, pois elas estendem a classe Evento herdando seus métodos, além de possuírem métodos adicionais. Essas classes são utilizadas na consulta individual de NF-e, onde é interpretado o retorno do XML e armazenado os eventos em uma lista para posterior visualização na tela. 57 4.3 Funcionalidades do Aplicativo BDU – Biblioteca Digital da UNIVATES (http://www.univates.br/bdu) As funcionalidades do aplicativo foram projetadas buscando respeitar os princípios de IHC, com telas simples e intuitivas ao usuário, para que o mesmo possa realizar as consultas e as manifestações de formas rápida e eficiente. A seguir serão apresentadas as telas do aplicativo desenvolvido detalhando as suas funcionalidades. 4.3.1 Acesso Na Figura 10 é exibida a tela inicial do aplicativo NF-e Droid, onde o usuário, no caso o destinatário da NF-e, seleciona o destinatário pelo qual deseja efetuar o login e informa a senha para acessar o sistema. Essa tela tem como principal objetivo oferecer segurança ao usuário, inibindo o acesso de pessoas não autorizadas no caso do extravio ou roubo do dispositivo móvel. Figura 10 – Tela inicial (login) Fonte: Do autor. 58 Ao utilizar pela primeira vez o aplicativo, o usuário é automaticamente direcionado para o Cadastro de Destinatário (seção 4.3.4) e é impedido de continuar até realizar o cadastro BDU – Biblioteca Digital da UNIVATES (http://www.univates.br/bdu) do mesmo. Após o usuário selecionar o destinatário e informar a senha, o sistema faz a autenticação e o usuário é direcionado para a tela principal (Figura 11) da aplicação. Figura 11 – Tela principal Fonte: Do autor. No título da tela principal consta o nome do destinatário que está autenticado e o ambiente que está sendo utilizado, logo abaixo é exibido o logotipo do aplicativo e os botões com as opções disponíveis ao usuário, que serão apresentadas nas próximas subseções. 4.3.2 Consulta e Manifestação Ao acessar a opção “Consulta e Manifestação” da tela principal é exibida a tela de Consulta de NF-e (Figura 12), que possui as principais funcionalidades do aplicativo, pois é a partir dela que pode ser realizado a consulta das Notas Fiscais Eletrônicas e consequentemente a manifestação do destinatário e o download da NF-e. Nessa tela existem 59 duas opções de consulta: Consulta Individual de NF-e (Figura 12 A) e Consulta de NF-e Destinadas (Figura 12 B), que serão detalhadas a seguir. BDU – Biblioteca Digital da UNIVATES (http://www.univates.br/bdu) Figura 12 – Tela de consulta de NF-e Fonte: Do autor. A Consulta Individual de NF-e (Figura 12 A), permite a consulta de uma única NF-e e pode ser realizada digitando a chave de acesso da Nota Fiscal Eletrônica ou utilizando o recurso de leitura de código de barras do DANFE, recurso este disponível somente se o dispositivo possuir câmera digital e o aplicativo “Barcode Scanner” instalado. Já a Consulta de NF-e Destinadas (Figura 12 B), permite ao usuário consultar todas as Notas Fiscais Eletrônicas que foram emitidas a ele nos últimos 15 dias, ou seja, todas as NF-e que constam o seu CNPJ ou IE como destinatário neste período, com a possibilidade de escolher se deseja consultar por: Todas as NF-e; Somente as NF-e que ainda não tiveram a manifestação do destinatário (Desconhecimento da operação, Operação não Realizada ou Confirmação da Operação); 60 Somente as NF-e que ainda não tiveram manifestação do destinatário (Desconhecimento da operação, Operação não Realizada ou Confirmação da BDU – Biblioteca Digital da UNIVATES (http://www.univates.br/bdu) Operação). Incluindo as NF-e que também não tiveram a Ciência da Operação. O usuário também pode filtrar o tipo de emissor antes de realizar a consulta: Todos os Emitentes / Remetentes; Somente as NF-e emitidas por emissores / remetentes que não tenham o mesmo CNPJ-Base do destinatário (para excluir as notas fiscais de transferência entre filiais). A seguir, serão apresentados os resultados após a realização da Consulta Individual de NF-e (seção 4.3.2.1) e da Consulta de NF-e Destinadas (seção 4.3.2.2). 4.3.2.1 Consulta Individual de NF-e O resultado após a realização da consulta individual de uma NF-e pode ser observado na Figura 13 (A), onde no título da tela consta o número e a série da NF-e, e ao lado, há um menu que oferece as opções: “Realizar a Manifestação” e “Download da NF-e”. Logo abaixo há duas abas: Situação Atual (Figura 13 A) e Eventos (Figura 13 B). 61 BDU – Biblioteca Digital da UNIVATES (http://www.univates.br/bdu) Figura 13 – Telas do resultado da Consulta Individual de NF-e Fonte: Do autor. Na Situação Atual da NF-e (Figura 13 A), consta os dados principais para a identificação da NF-e e a sua situação atual na SEFAZ no momento da consulta, que no caso da imagem acima, está “Autorizado o uso da NF-e”. Nos Eventos da NF-e (Figura 13 B), é exibido uma lista com todos os eventos que estão vinculados a NF-e que foi consultada, apresentando algumas informações que são padrões para qualquer evento da NF-e, como: Nome do evento, Data, Hora e Protocolo. Em alguns eventos onde há uma justificativa para o mesmo, é habilitado um botão que permite visualizar os detalhes do evento, como na Figura 13 (C), onde é possível visualizar a justificativa para o evento de “Desconhecimento da Operação” realizado pelo destinatário da NF-e. 4.3.2.2 Consulta de NF-e Destinadas O resultado após a realização da “Consulta de NF-e Destinadas” pode ser observado na Figura 14 (A), onde é exibida uma lista com as últimas NF-e que foram emitidas para o destinatário, apresentando algumas informações da nota fiscal, como: Situação atual, Número, 62 Série, Data, Nome do emitente, Tipo e Valor. Também é exibido a “Situação da Manifestação do Destinatário” para aquela NF-e, ficando destacado em vermelho caso ainda não tenha sido BDU – Biblioteca Digital da UNIVATES (http://www.univates.br/bdu) realizada, o que facilita a identificação por parte do usuário. Figura 14 – Tela do resultado da Consulta de NF-e Destinadas Fonte: Do autor. A Figura 14 (B), corresponde ao menu exibido após o usuário pressionar o dedo sobre uma determinada nota fiscal que conste na lista. O menu exibido contém as seguintes opções: Consultar a Situação Atual (seção 4.3.2.1); Realizar a Manifestação (seção 4.3.2.3); Download da NF-e (seção 4.3.2.4). 4.3.2.3 Manifestação do Destinatário A Manifestação do Destinatário (Figura 15), pode ser realizada tanto a partir da “Consulta Individual de NF-e” (seção 4.3.2.1), como a partir da “Consulta de NF-e Destinadas” (seção 4.3.2.2). 63 BDU – Biblioteca Digital da UNIVATES (http://www.univates.br/bdu) Figura 15 – Tela de Manifestação do Destinatário Fonte: Do autor. No topo da tela é exibido o número e a série da NF-e no qual está sendo realizada a manifestação e abaixo estão as opções de manifestações que podem ser escolhidas pelo destinatário, que são: Ciência da Operação; Confirmação da Operação; Desconhecimento da Operação; Operação não Realizada. Ao selecionar a opção “Desconhecimento da Operação” ou “Operação não Realizada” é necessário informar uma justificativa. Os detalhes de cada opção disponível para manifestação e quando devem ser utilizadas estão descritas na seção 2.5.1 página 29. Após o destinatário preencher todas as informações e realizar o envio pressionando o botão “Enviar”, o aplicativo de forma transparente gera o arquivo XML no layout exigido pelo projeto NF-e assinado digitalmente e envia ao web service da SEFAZ do destinatário que 64 realiza o processamento e devolve a resposta. O aplicativo exibe a resposta na tela através de uma mensagem personalizada do Android, conforme visualizado na Figura 16, onde neste BDU – Biblioteca Digital da UNIVATES (http://www.univates.br/bdu) caso, o evento de manifestação foi aceito e consequentemente registrado e vinculado a NF-e. Figura 16 – Resultado da Manifestação do Destinatário Fonte: Do autor. Após exibir a mensagem do resultado, a tela da Manifestação do Destinatário é fechada e a tela pelo qual foi solicitada a manifestação, no caso a “Consulta Individual de NFe” ou a “Consulta de NF-e Destinadas” é exibida novamente com as informações atualizadas. 4.3.2.4 Download da NF-e Assim como a Manifestação do Destinatário, o Download da NF-e só pode ser realizado a partir da Consulta Individual de NF-e (seção 4.3.2.1) ou da Consulta de NF-e Destinadas (seção 4.3.2.2) através dos menus presentes nestas telas. Ao selecionar a opção disponível no menu, a solicitação de download é enviado para a SEFAZ, que processa e devolve a resposta, que é interpretada pelo aplicativo e exibida na tela através de uma mensagem de alerta personalizada do Android, como ilustrado na Figura 17, onde neste caso, o download foi realizado com sucesso. Figura 17 – Resultado do Download da NF-e Fonte: Do autor. Os downloads ficam armazenados no diretório informado no cadastro de destinatários (seção 4.3.4). 65 4.3.3 Status do Serviço BDU – Biblioteca Digital da UNIVATES (http://www.univates.br/bdu) Ao acessar a opção “Status do Serviço” da tela principal, é exibida a tela da Figura 18 (A), cuja principal finalidade é permitir ao usuário consultar se os serviços de NF-e da SEFAZ de determinada Unidade Federativa estão ativos ou não. Por padrão, ao abrir a tela, a UF e o Ambiente já vêm preenchidos com os respectivos dados do destinatário autenticado, mas podem ser alterados antes da consulta. O resultado da consulta pode ser visualizado na Figura 18 (B), onde neste caso, o ambiente de Produção da SEFAZ do RS está funcionando normalmente (Serviço em Operação). Figura 18 – Telas do Status do Serviço Fonte: Do autor. 4.3.4 Cadastro de Destinatários Ao acessar a opção “Cadastro de Destinatário” da tela principal, é exibida uma lista com todos os destinatários cadastrados no aplicativo (Figura 19 A), apresentando 66 resumidamente algumas informações de cada um deles, como: Nome, CNPJ e Ambiente. Nessa tela também há um botão que permite cadastrar um novo destinatário, além de um BDU – Biblioteca Digital da UNIVATES (http://www.univates.br/bdu) menu onde é possível visualizar, editar ou excluir um destinatário. Figura 19 – Telas do Cadastro de Destinatários Fonte: Do autor. O Cadastro de Destinatário (Figura 19 B) tem a finalidade de coletar todos os dados do destinatário da NF-e necessários para a comunicação com os web services da SEFAZ, além da senha de acesso que é solicitada na entrada do aplicativo. Os dados solicitados são os mesmos representados na Tabela 3 da página 54. O aplicativo captura os dados do destinatário autenticado e conforme a UF e o ambiente informados, altera os endereços dos web services, pois a SEFAZ de cada Estado possui os seus próprios web services, tanto para o ambiente de Homologação (testes) como para o ambiente de Produção (com validade jurídica). 67 4.3.5 Sair da aplicação BDU – Biblioteca Digital da UNIVATES (http://www.univates.br/bdu) A opção “Sair” da tela principal serve como logout do usuário da aplicação. Caso o usuário encerre o aplicativo sem utilizar esta opção, o usuário permanecerá autenticado, de tal forma que na próxima vez que o aplicativo for aberto o usuário já estará autenticado e não será necessário realizar o login. BDU – Biblioteca Digital da UNIVATES (http://www.univates.br/bdu) 68 5 PUBLICAÇÃO E VALIDAÇÃO DO APLICATIVO Esse capítulo visa apresentar como o aplicativo desenvolvido foi distribuído aos usuários da plataforma Android e como ele foi validado. Na seção 5.1 será apresentada a publicação do aplicativo e na seção 5.2 a validação do aplicativo. 5.1 Publicação do aplicativo A fim de facilitar a distribuição do aplicativo NF-e Droid entre os milhares de usuários da plataforma Android, realizou-se em 07/08/2013 a publicação do aplicativo no Google Play, que é o site mantido pelo Google que serve como um centralizador de aplicativos para os usuários e desenvolvedores da plataforma Android. O Google Play disponibiliza um ambiente exclusivo aos desenvolvedores (Developer Console), onde é possível adicionar aplicativos a serem distribuídos. Para cada aplicativo adicionado é solicitado diversas informações, como: título, descrição, vídeos, imagens e formas de contato. Após adicionar o aplicativo e preencher todas as informações obrigatórias o desenvolvedor pode realizar a publicação do aplicativo, que de fato, o deixa disponível para os usuários do Google Play. Na Figura 20 é possível visualizar o aplicativo publicado (NF-e Droid Free3) sendo visualizado diretamente de um smartphone através do próprio aplicativo do Google Play. _____________ 3 Aplicativo NF-e Droid Free: https://play.google.com/store/apps/details?id=com.kirch.nfedroidf 69 BDU – Biblioteca Digital da UNIVATES (http://www.univates.br/bdu) Figura 20 – Aplicativo NF-e Droid disponível no Google Play Fonte: Google Play (2013). O Google Play Developer Console também permite ao desenvolvedor a visualização de gráficos estatísticos para cada aplicativo publicado. Na Figura 21 é apresentado o total de instalações do aplicativo “NF-e Droid Free” e a sua evolução desde a publicação, onde no período de 07/08/2013 a 12/11/2013 foram realizadas 727 (setecentos e vinte e sete) instalações por diferentes usuários. Figura 21 – Total de instalações do aplicativo por usuário Fonte: Google Play – Developer Console (2013). 70 A Figura 22, apresenta o total de instalações atuais por usuário, isto é, os aplicativos que foram instalados e não foram desinstalados no período de 07/08/2013 até 12/11/2013, BDU – Biblioteca Digital da UNIVATES (http://www.univates.br/bdu) totalizando ao final 150 (cento e cinquenta) aplicativos instalados. Figura 22 – Instalações atuais do aplicativo por usuário Fonte: Google Play – Developer Console (2013). 5.2 Validação do aplicativo Com o intuito de validar o aplicativo desenvolvido, quanto a sua qualidade e suas funcionalidades, elaborou-se um questionário de avaliação utilizando a ferramenta para formulários do Google Docs, o qual facilita a tabulação final dos resultados, bem como disponibiliza os formulários on-line. O questionário desenvolvido baseia-se nas características da norma ISO 9126 para qualidade de software e é composto por cinco perguntas à serem respondidas entre as opções “Bom”, “Razoável” ou “Ruim” e uma pergunta dissertativa destinada a críticas e sugestões, conforme ilustrado no Apêndice B. O público alvo foram 8 (oito) usuários da área de TI e da área administrativa de duas empresas da cidade de Lajeado/RS que utilizaram o aplicativo. Primeiramente os usuários foram auxiliados na instalação e configuração inicial do aplicativo, após foram instruídos a assistirem uma vídeo-aula, disponível juntamente com o aplicativo publicado, no qual demonstra como utilizar todas as funcionalidades disponíveis. Finalmente, solicitou-se a utilização da ferramenta e o questionário de avaliação foi disponibilizado eletronicamente por um período de 15 dias, de 26/09/2013 a 10/10/2013. Após o término deste período o questionário foi encerrado para respostas e os dados foram 71 coletados, na Figura 23 é exibido o resultado final da avaliação, representado por cinco gráficos, um para cada pergunta do questionário. BDU – Biblioteca Digital da UNIVATES (http://www.univates.br/bdu) Figura 23 – Resultado final da avaliação Fonte: Google Docs – Formulários (2013). 72 O resultado final foi satisfatório, sendo que nenhum quesito foi classificado como “Ruim” e a grande maioria foi classificado como “Bom” pelos avaliadores. Destacando-se as BDU – Biblioteca Digital da UNIVATES (http://www.univates.br/bdu) perguntas de número quatro “Como você classifica o aplicativo quanto as suas funcionalidades?” e de número cinco “Numa classificação geral, como você considera o aplicativo?”. Os usuários que avaliaram o aplicativo deixaram uma série de críticas e sugestões de melhorarias no questionário disponibilizado, que serão apresentadas a seguir segundo os avaliadores: “Faltou uma forma de recuperar a senha, mas está muito bom o aplicativo”; “O recurso da leitura do código de barras utilizando a câmera é muito ruim”; “Poderia ter uma forma de visualizar todos os dados da NF-e que foi realizado o download”; “Poderia ter uma maneira de enviar por e-mail os arquivos XML, para facilitar a integração com outros sistemas”; “Poderia haver um histórico com todas as notas fiscais que foram manifestadas”; “Implementar uma opção para manifestar uma nota fiscal e em seguida já realizar o download automaticamente”; “Faltou opção para selecionar o período da consulta das notas fiscais”; “Muito útil, pois pude verificar através das notas fiscais destinadas que foram emitidas NF-e para minha empresa sem o meu conhecimento, já que não havia recebido os arquivos XML e DANFE respectivos por e-mail”; “Ao visualizar as notas fiscais destinadas, poderia aparecer um totalizador com o total das notas que estão sendo exibidas, entre estas um total que não foram manifestadas e um total das que já foram manifestadas”. Dentre as críticas e sugestões expostas pelos usuários que avaliaram o aplicativo, duas não são passíveis de alterações, sendo elas o “recurso da leitura do código de barras utilizando 73 a câmera é muito ruim”, por se tratar de um aplicativo de terceiros e de estar diretamente relacionado a qualidade da câmera digital do dispositivo. Também não é possível criar a BDU – Biblioteca Digital da UNIVATES (http://www.univates.br/bdu) opção para “selecionar o período da consulta das notas fiscais”, por não existir essa opção no layout do XML disponibilizado pela SEFAZ. Percebeu-se que a etapa de validação do aplicativo foi muito proveitosa, já que os usuários que avaliaram a ferramenta contribuíram deixando diversas críticas e sugestões de modo que o aplicativo possa ser melhorado. Outro ponto positivo é que usuários de duas áreas distintas o avaliaram, assim sendo analisado por usuários com visões e conhecimentos diferentes. BDU – Biblioteca Digital da UNIVATES (http://www.univates.br/bdu) 74 6 CONCLUSÃO A Manifestação do Destinatário da Nota Fiscal Eletrônica é mais uma obrigatoriedade na qual os contribuintes deverão adequar seus processos e adquirir ou adaptar seus sistemas de informações para atender a legislação fiscal. Atualmente esse processo é desconhecido pela maioria dos usuários contribuintes, mas assim como aconteceu com a Nota Fiscal Eletrônica, a tendência é que gradativamente novas empresas sejam obrigadas a realizar esse procedimento e possivelmente em prazos menores, popularizando-se assim cada vez mais. A proposta deste trabalho foi o desenvolvimento de um aplicativo na plataforma Android para auxiliar o destinatário da NF-e a realizar o processo de Manifestação do Destinatário, utilizando para isso os web services disponibilizados pelo Portal Nacional da NF-e. Os objetivos propostos pelo trabalho foram alcançados, sendo que o aplicativo desenvolvido permite ao destinatário da NF-e manifestar-se sobre sua participação comercial descrita na nota fiscal no ato da operação, através de seu dispositivo móvel, seja de onde estiver desde que tenha conectividade com a Internet. A solução móvel desenvolvida, também contribui para um dos próprios objetivos da Manifestação do Destinatário, que é a alteração da assinatura manuscrita no canhoto da DANFE para a assinatura digital, que em ambos os casos confirmam o recebimento da mercadoria pelo destinatário. Com a mudança desse método tradicional, o aplicativo desenvolvido instalado juntamente ao dispositivo móvel, de forma análoga serve como uma "caneta" ao destinatário, podendo ele se assinar (manifestar) no ato do recebimento do documento, seja de onde estiver, inviabilizando a partir deste momento, o cancelamento da 75 nota fiscal pelo emitente. Assim sendo, diferentemente de uma solução desktop, o aplicativo desenvolvido permite uma maior fidedignidade com os princípios da Manifestação do BDU – Biblioteca Digital da UNIVATES (http://www.univates.br/bdu) Destinatário. As principais dificuldades encontradas durante o desenvolvimento do aplicativo foram a comunicação com os web services do projeto da Nota Fiscal Eletrônica e a assinatura digital, pois ambas exigem o uso de certificados digitais. Diferentemente de outras linguagens, a plataforma Android não tem funções prontas para a realização da assinatura digital no padrão W3C, tendo que ser implementada manualmente. Para distribuir o aplicativo desenvolvido a todos os usuários interessados, realizou-se a publicação do mesmo no Google Play, onde até o termino deste trabalho não havia outro aplicativo similar disponível. Desde a publicação até o final do trabalho proposto, totalizou-se um período de 97 (noventa e sete) dias, nos quais foram realizados 727 (setecentos e vinte e sete) instalações do aplicativo, o que demonstra bastante interesse por parte dos usuários. Após a publicação, o aplicativo foi submetido a uma etapa de validação, no qual solicitou-se que alguns usuários o utilizassem por um determinado período e respondessem um questionário a fim de avaliar a qualidade de suas funcionalidades. Como resultado, a maioria dos quesitos foram avaliados positivamente, mostrando que o aplicativo esta apto a ser utilizado por empresas, sendo uma boa opção aos contribuintes. 6.1 Trabalhos futuros Após o término da etapa de validação do aplicativo, foram coletadas diversas de críticas e sugestões deixadas pelos usuários mediante respostas ao questionário avaliativo disponibilizado. De posse dessas sugestões, selecionou-se as consideradas mais pertinentes, no qual poderiam ser implementadas futuramente com o intuito de deixar o aplicativo mais completo, sendo elas: Possibilidade de visualizar todos os dados da NF-e no qual foi realizado o download (interpretar os dados que estão no arquivo XML e exibir na tela); Recursos facilitadores para compartilhar ou enviar por e-mail os arquivos XML, facilitando, por exemplo, a integração com outros sistemas; 76 Armazenar todas as notas fiscais manifestadas em um banco de dados local para futuras consultas (histórico de manifestações realizadas); BDU – Biblioteca Digital da UNIVATES (http://www.univates.br/bdu) Após a realização da consulta de notas fiscais destinadas, apresentar um painel com os totais de notas retornados pela consulta, como: “Total de NF-e”, “Total de NF-e não manifestadas” e “Total de NF-e manifestadas”. BDU – Biblioteca Digital da UNIVATES (http://www.univates.br/bdu) 77 REFERÊNCIAS ABLESON, Frank W. et al. Android em Ação. 3 ed. Rio de Janeiro: Elsevier, 2012. 656 p. ISBN 978-85-352-4841-8. ALMEIDA, Maurício B. Uma introdução ao XML, sua utilização na Internet e alguns conceitos complementares. Ciência da Informação, Brasília, v. 31, n. 2, p. 5-13, mai/ago. 2002. Disponível em: <http://www.scielo.br/pdf/ci/v31n2/12903>. Acesso em: 18 mai. 2013. ANDERSON, Richard et al. Professional XML. Rio de Janeiro: Editora Ciência Moderna Ltda, 2001. 1266 p. ISBN 85-7393-116-7. BAX, Marcello P. Introdução às linguagens de marcas. Ciência da Informação, Brasília, v. 30, n. 1, p. 32-38, jan/abr. 2001. Disponível em: < http://www.scielo.br/pdf/ci/v30n1/a05v30n1.pdf>. Acesso em: 18 mai. 2013. BECKER, Aleksader K.; CLARO, Daniela B.; SOBRAL, João B. Web Services e XML: Um Novo Paradigma da Computação Distribuída. Ciências da Computação, Santa Catarina. 2002. Disponível em: <http://homes.dcc.ufba.br/~dclaro/download/ArtigoWebServices.pdf>. Acesso em: 01 junho 2013. BRASIL. Ajuste SINIEF nº 5, 30 de março de 2012. CONFAZ. Disponível em: < http://www.fazenda.gov.br/confaz/confaz/ajustes/2012/AJ_005_12.htm>. Acesso em: 01 junho 2013. BRASIL. Ajuste SINIEF nº 17, 28 de setembro de 2012. CONFAZ. Disponível em: < http://www.fazenda.gov.br/confaz/confaz/ajustes/2012/AJ_017_12.htm>. Acesso em: 01 junho 2013. BRASIL. Ajuste SINIEF nº 1, 6 de fevereiro de 2013. CONFAZ. Disponível em: < http://www.fazenda.gov.br/confaz/confaz/ajustes/2013/AJ_001_13.htm>. Acesso em: 01 junho 2013. BRASIL. Encontro Nacional de Coordenadores e Administradores Tributários Estaduais. Manual de Orientação do Contribuinte: Padrões Técnicos de Comunicação. v. 5. 2012. 216 p. Disponível em: 78 BDU – Biblioteca Digital da UNIVATES (http://www.univates.br/bdu) <http://www.nfe.fazenda.gov.br/portal/listaConteudo.aspx?tipoConteudo=33ol5hhSYZk=>. Acesso em: 24 mar. 2013. BRASIL. Encontro Nacional de Coordenadores e Administradores Tributários Estaduais. Registro de Eventos da Nota Fiscal Eletrônica. v. 0.03. 2009. 34 p. Disponível em: < http://www.nfe.fazenda.gov.br/portal/principal.aspx>. Acesso em: 06 mar. 2012. BRASIL. Encontro Nacional de Coordenadores e Administradores Tributários Estaduais. Nota Técnica 2012/002: Manifestação do Destinatário. v. 1.02. 2012. 24 p. Disponível em: <http://www.nfe.fazenda.gov.br/portal/listaConteudo.aspx?tipoConteudo=tW+YMyk/50s=>. Acesso em: 24 mar. 2013. BRASIL. Instituto Nacional de Tecnologia <http://www.iti.gov.br/>. Acesso em: 01 junho 2013. da Informação. BRASIL. Portal Nacional da Nota Fiscal Eletrônica. <http://www.nfe.fazenda.gov.br>. Acesso em: 26 maio 2013. Disponível Disponível em: em: BRASIL. Portal do Sistema Público de Escrituração Digital. Disponível em: <http://www1.receita.fazenda.gov.br/>. Acesso em: 26 maio 2013. CARUSO, Carlos A. A; STEFFEN, Flávio D. Segurança em informática e de informações. 3 ed. São Paulo: Senac, 2006. 416 p. ISBN 85-7359-096-3. CHEMIN, Beatris F. Manual da Univates para trabalhos acadêmicos: planejamento, elaboração e apresentação. 2. ed. Lajeado: Univates, 2012. E-book. Disponível em <www.univates.br>. Acesso em: 18 mai. 2013. DEITEL, Paul; DEITEL, Harvey. Java: Como programar. 8 ed. São Paulo: Pearson, 2011. 1144 p. ISBN 978-85-7605-563-1. GOMES, Daniel A. Web Services SOAP em Java: Guia prática para o desenvolvimento de web services em Java. 1 ed. São Paulo: Novatec, 2010. 183 p. ISBN 978-85-7522-218-8. LECHETA, Ricardo R. Google Android: Aprenda a criar aplicações para dispositivos móveis com o Android SDK. 2 ed. São Paulo: Novatec, 2010. 608 p. ISBN 978-85-7522-2447. LOMBARDO, John et al. Desenvolvimento de Aplicações Android. São Paulo: Novatec, 2009. 392 p. ISBN 978-85-7522-203-4. MEDNIEKS, Zigurd et al. Programando o Android. 1 ed. São Paulo: Novatec, 2012. 519 p. ISBN 978-85-7522-284-3. MORAES, Alexandre F. de. Segurança em Redes: fundamentos. 1 ed. São Paulo: Érica, 2010. 262 p. ISBN 978-85-365-0325-7. MÜLLER, Aderbal N.; PILAR, Rafaela do.; KIDO, Viviane M. Manual da Nota Fiscal Eletrônica. Curitiba: Juruá, 2007. 174 p. ISBN 978-85-362-1606-5. 79 BDU – Biblioteca Digital da UNIVATES (http://www.univates.br/bdu) PEREIRA, Lúcio. C. O.; SILVA, Michel L. Android para desenvolvedores. Rio de Janeiro: Brasport, 2009. 240 p. ISBN 978-85-7452-405-4. PINTO, Barbosa M.; SACCOL, Deise B. Um estudo sobre esquemas para documentos XML. Sistemas de Informação. Anais do V Encontro de Estudantes de Informática do Tocantins. Palmos, TO. outubro, 2003. pp. 211-220 PRESSMAN, Roger S. Engenharia de Software. 6 ed. Porto Alegre: AMGH, 2010. 752 p. ISBN 978-85-63308-00-9. RIO GRANDE DO SUL (Estado). Instrução Normativa nº 29, de 05 de abril de 2013. Diário Oficial do Estado, Porto Alegre, RS, 02 abr. 2013. Disponível em: <http://www.legislacao.sefaz.rs.gov.br/Site/Document.aspx?inpKey=216389&inpCodDisposi tive=&inpDsKeywords=manifesta%E7%E3o%20%20AND%20destinat%E1rio> Acesso em: 01 junho 2013. RIO GRANDE DO SUL (Estado). Secretaria da Fazenda. Manual – Credenciamento como Emissor de Nota Fiscal Eletrônica. versão 3.1. Disponível em: <https://www.sefaz.rs.gov.br/ASP/download/nfe/Credenciamento%20como%20Emissor%20 de%20Nota%20Fiscal%20Eletr%C3%B4nica%20v%203.1.pdf> Acesso em: 01 junho 2013. RIO GRANDE DO SUL (Estado). Secretaria da <https://www.sefaz.rs.gov.br/> Acesso em: 01 junho 2013. Fazenda. SÃO PAULO (Estado). Secretaria da Fazenda. <https://www.sefaz.sp.gov.br/> Acesso em: 01 junho 2013. Disponível Disponível em: em: SIX, Jeff. Segurança de aplicativos Android. 1 ed. São Paulo: Novatec, 2012. 140 p. ISBN 978-85-7522-313-0. SOMMERVILLE, Yan. Engenharia de Software. 9 ed. São Paulo: Pearson Prentice Hall, 2011. 529 p. ISBN 978-85-7936-108-1. YOUNG, Lúcia H. B. SPED - Sistema Público de Escrituração Digital. Curitiba: Juruá, 2009. 288 p. ISBN 978-85-362-2584-5. W3C. SOAP Version 1.2 Part 0: Primer (Second Edition). 2007. Disponível em: <http://www.w3.org/TR/2007/REC-soap12-part0-20070427/>. Acesso em: 26 maio 2013. W3C. XML Schema Part 0: Primer (Second Edition). 2004. Disponível em: <http://www.w3.org/TR/2004/REC-xmlschema-0-20041028/>. Acesso em: 26 maio 2013. W3C. XML Signature Sintax and Processing (Second Edition). 2008. Disponível em: <http://www.w3.org/TR/xmldsig-core/>. Acesso em: 26 maio 2013. BDU – Biblioteca Digital da UNIVATES (http://www.univates.br/bdu) 80 APÊNDICES BDU – Biblioteca Digital da UNIVATES (http://www.univates.br/bdu) 81 APÊNDICE A – Diagrama de classes 82 BDU – Biblioteca Digital da UNIVATES (http://www.univates.br/bdu) APÊNDICE B - Questionário de avaliação do aplicativo NF-e Droid