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
BD
U –
Bib
liote
ca D
igita
l da
UN
IVAT
ES
(htt
p://w
ww
.uni
vate
s.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
BD
U –
Bib
liote
ca D
igita
l da
UN
IVAT
ES
(htt
p://w
ww
.uni
vate
s.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
BD
U –
Bib
liote
ca D
igita
l da
UN
IVAT
ES
(htt
p://w
ww
.uni
vate
s.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.
BD
U –
Bib
liote
ca D
igita
l da
UN
IVAT
ES
(htt
p://w
ww
.uni
vate
s.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.
BD
U –
Bib
liote
ca D
igita
l da
UN
IVAT
ES
(htt
p://w
ww
.uni
vate
s.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.
BD
U –
Bib
liote
ca D
igita
l da
UN
IVAT
ES
(htt
p://w
ww
.uni
vate
s.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
BD
U –
Bib
liote
ca D
igita
l da
UN
IVAT
ES
(htt
p://w
ww
.uni
vate
s.br/
bdu)
Figura 19 – Telas do Cadastro de Destinatários .................................................................... 66
Figura 20 – Aplicativo NF-e Droid disponível no Google Play ............................................. 69
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
BD
U –
Bib
liote
ca D
igita
l da
UN
IVAT
ES
(htt
p://w
ww
.uni
vate
s.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
BD
U –
Bib
liote
ca D
igita
l da
UN
IVAT
ES
(htt
p://w
ww
.uni
vate
s.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
BD
U –
Bib
liote
ca D
igita
l da
UN
IVAT
ES
(htt
p://w
ww
.uni
vate
s.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
BD
U –
Bib
liote
ca D
igita
l da
UN
IVAT
ES
(htt
p://w
ww
.uni
vate
s.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
BD
U –
Bib
liote
ca D
igita
l da
UN
IVAT
ES
(htt
p://w
ww
.uni
vate
s.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
BD
U –
Bib
liote
ca D
igita
l da
UN
IVAT
ES
(htt
p://w
ww
.uni
vate
s.br/
bdu)
4.1.1 Requisitos funcionais .............................................................................................. 50
4.1.2 Requisitos não funcionais ....................................................................................... 52
4.2 Desenvolvimento ..................................................................................................... 53
4.2.1 Ferramentas utilizadas ........................................................................................... 54
4.2.2 Modelagem da base de dados ................................................................................. 54
4.2.3 Modelagem de classes ............................................................................................. 55
4.3 Funcionalidades do Aplicativo ............................................................................... 57 4.3.1 Acesso ...................................................................................................................... 57
4.3.2 Consulta e Manifestação ........................................................................................ 58
4.3.3 Status do Serviço .................................................................................................... 65
4.3.4 Cadastro de Destinatários ...................................................................................... 65
4.3.5 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
BD
U –
Bib
liote
ca D
igita
l da
UN
IVAT
ES
(htt
p://w
ww
.uni
vate
s.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
BD
U –
Bib
liote
ca D
igita
l da
UN
IVAT
ES
(htt
p://w
ww
.uni
vate
s.br/
bdu)
15
Auxiliar da NF-e (DANFE) usado para acompanhar o transito da mercadoria (BRASIL,
Manual de Orientação..., 2012).
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
BD
U –
Bib
liote
ca D
igita
l da
UN
IVAT
ES
(htt
p://w
ww
.uni
vate
s.br/
bdu)
16
1.1 Objetivo geral
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.
BD
U –
Bib
liote
ca D
igita
l da
UN
IVAT
ES
(htt
p://w
ww
.uni
vate
s.br/
bdu)
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
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.
BD
U –
Bib
liote
ca D
igita
l da
UN
IVAT
ES
(htt
p://w
ww
.uni
vate
s.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
BD
U –
Bib
liote
ca D
igita
l da
UN
IVAT
ES
(htt
p://w
ww
.uni
vate
s.br/
bdu)
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
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):
BD
U –
Bib
liote
ca D
igita
l da
UN
IVAT
ES
(htt
p://w
ww
.uni
vate
s.br/
bdu)
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
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).
BD
U –
Bib
liote
ca D
igita
l da
UN
IVAT
ES
(htt
p://w
ww
.uni
vate
s.br/
bdu)
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,
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.
BD
U –
Bib
liote
ca D
igita
l da
UN
IVAT
ES
(htt
p://w
ww
.uni
vate
s.br/
bdu)
22
2.3 Emissão e Transmissão da NF-e
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
BD
U –
Bib
liote
ca D
igita
l da
UN
IVAT
ES
(htt
p://w
ww
.uni
vate
s.br/
bdu)
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.
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.
BD
U –
Bib
liote
ca D
igita
l da
UN
IVAT
ES
(htt
p://w
ww
.uni
vate
s.br/
bdu)
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
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.
BD
U –
Bib
liote
ca D
igita
l da
UN
IVAT
ES
(htt
p://w
ww
.uni
vate
s.br/
bdu)
25
2.5 Eventos da NF-e
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.
BD
U –
Bib
liote
ca D
igita
l da
UN
IVAT
ES
(htt
p://w
ww
.uni
vate
s.br/
bdu)
26
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 Autor
Cancelamento pelo Fisco Fisco Autorizador
Reversão do cancelamento Fisco Autorizador Operação não realizada Fisco Autorizador
NF-e referenciada pelo Fisco Fisco Autorizador
Correção pelo Fisco Fisco Autorizador
Restituição ICMS sobre Combustíveis
Fisco Autorizador
Carta de Correção Emitente
Registros de saída Emitente Roubo de Carga Emitente
Ocorrência na Fiscalização de
Trânsito
Fisco
BD
U –
Bib
liote
ca D
igita
l da
UN
IVAT
ES
(htt
p://w
ww
.uni
vate
s.br/
bdu)
27
Evento Autor
Rastreamento RFID Fisco
Registro de passagem Fisco
Registro de Veículos DETRAN Confirmação de Internalização na
SUFRAMA
SUFRAMA
Saída para exportação RFB Confirmação de recebimento Destinatário
Desconhecimento da operação Destinatário
Devolução de mercadoria Destinatário NF-e em análise Fisco
Confirmação de recebimento –
Portal SEFAZ
Fisco
Desconhecimento da operação – Portal SEFAZ
Fisco
Devolução de mercadoria – Portal
SEFAZ
Fisco
NF-e visada pelo 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.
BD
U –
Bib
liote
ca D
igita
l da
UN
IVAT
ES
(htt
p://w
ww
.uni
vate
s.br/
bdu)
28
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,
BD
U –
Bib
liote
ca D
igita
l da
UN
IVAT
ES
(htt
p://w
ww
.uni
vate
s.br/
bdu)
29
denominados “Manifestação do Destinatário”, dessa forma possibilitou aos contribuintes
adaptarem seus sistemas de informação a realizar estes eventos.
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.
BD
U –
Bib
liote
ca D
igita
l da
UN
IVAT
ES
(htt
p://w
ww
.uni
vate
s.br/
bdu)
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
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 Operação
Interna
Operação
interestadual
Operação interestadual,
para área incentivada
Ciência da Emissão 5 dias 10 dias 10 dias
Confirmação da Operação 20 dias 35 dias 70 dias
Operação não Realizada 20 dias 35 dias 70 dias
Desconhecimento da Operação 10 dias 15 dias 15 dias
Fonte: Ajuste SINEF 01/2013.
BD
U –
Bib
liote
ca D
igita
l da
UN
IVAT
ES
(htt
p://w
ww
.uni
vate
s.br/
bdu)
31
Segundo o Portal Nacional da NF-e, entre os benefícios do destinatário nesse processo
estão:
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
BD
U –
Bib
liote
ca D
igita
l da
UN
IVAT
ES
(htt
p://w
ww
.uni
vate
s.br/
bdu)
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
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.
BD
U –
Bib
liote
ca D
igita
l da
UN
IVAT
ES
(htt
p://w
ww
.uni
vate
s.br/
bdu)
33
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.
BD
U –
Bib
liote
ca D
igita
l da
UN
IVAT
ES
(htt
p://w
ww
.uni
vate
s.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).
BD
U –
Bib
liote
ca D
igita
l da
UN
IVAT
ES
(htt
p://w
ww
.uni
vate
s.br/
bdu)
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
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.
BD
U –
Bib
liote
ca D
igita
l da
UN
IVAT
ES
(htt
p://w
ww
.uni
vate
s.br/
bdu)
36
3.1.1 XML Schema
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">
BD
U –
Bib
liote
ca D
igita
l da
UN
IVAT
ES
(htt
p://w
ww
.uni
vate
s.br/
bdu)
37
<xs:annotation>
<xs:documentation>Schema de validação XML do Pedido
de download de NF-e</xs:documentation>
</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
BD
U –
Bib
liote
ca D
igita
l da
UN
IVAT
ES
(htt
p://w
ww
.uni
vate
s.br/
bdu)
38
digitais”, podem ser utilizadas para assinar documentos e até substituir, legalmente a
assinatura manuscrita de uma pessoa (MEDNIEKZ et al., 2012, p. 115).
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.
BD
U –
Bib
liote
ca D
igita
l da
UN
IVAT
ES
(htt
p://w
ww
.uni
vate
s.br/
bdu)
39
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 <Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
2 <SignedInfo>
3 <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 <Transforms>
7 <Transform
Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" />
BD
U –
Bib
liote
ca D
igita
l da
UN
IVAT
ES
(htt
p://w
ww
.uni
vate
s.br/
bdu)
40
8 <Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-
c14n-20010315" />
9 </Transforms>
10 <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"
/>
11 <DigestValue>eFf3MHAb7HAhmDKy3v4yJ4jLjTg=</DigestValue>
12 </Reference>
13 </SignedInfo>
14 <SignatureValue>cO5XYGkCkKqn2x5cjqgS+SeaUJcota...</SignatureValue>
15 <KeyInfo>
16 <X509Data>
17
<X509Certificate>MIIHFTCCBP2gAwIBAgIID0cNAQELB...</X509Certificate>
18 </X509Data>
19 </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, e-
mail, CNPJ, chave pública e também sua validade (CARUSO; STEFFEN, 2006).
BD
U –
Bib
liote
ca D
igita
l da
UN
IVAT
ES
(htt
p://w
ww
.uni
vate
s.br/
bdu)
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
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).
BD
U –
Bib
liote
ca D
igita
l da
UN
IVAT
ES
(htt
p://w
ww
.uni
vate
s.br/
bdu)
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
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 minOccurs="0" maxOccurs="1" name="cUF"
type="s:string" />
BD
U –
Bib
liote
ca D
igita
l da
UN
IVAT
ES
(htt
p://w
ww
.uni
vate
s.br/
bdu)
43
<s:element minOccurs="0" maxOccurs="1" name="versaoDados"
type="s:string" />
</s:sequence>
<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).
BD
U –
Bib
liote
ca D
igita
l da
UN
IVAT
ES
(htt
p://w
ww
.uni
vate
s.br/
bdu)
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.
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 </nfes:nfeDadosMsg>
13 </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
BD
U –
Bib
liote
ca D
igita
l da
UN
IVAT
ES
(htt
p://w
ww
.uni
vate
s.br/
bdu)
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
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).
BD
U –
Bib
liote
ca D
igita
l da
UN
IVAT
ES
(htt
p://w
ww
.uni
vate
s.br/
bdu)
46
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
BD
U –
Bib
liote
ca D
igita
l da
UN
IVAT
ES
(htt
p://w
ww
.uni
vate
s.br/
bdu)
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
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):
BD
U –
Bib
liote
ca D
igita
l da
UN
IVAT
ES
(htt
p://w
ww
.uni
vate
s.br/
bdu)
48
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).
BD
U –
Bib
liote
ca D
igita
l da
UN
IVAT
ES
(htt
p://w
ww
.uni
vate
s.br/
bdu)
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
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.
BD
U –
Bib
liote
ca D
igita
l da
UN
IVAT
ES
(htt
p://w
ww
.uni
vate
s.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:
BD
U –
Bib
liote
ca D
igita
l da
UN
IVAT
ES
(htt
p://w
ww
.uni
vate
s.br/
bdu)
51
Possibilitar ao usuário cadastrar vários destinatários;
Possibilitar ao usuário selecionar qual destinatário vai utilizar (mediante login
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.
BD
U –
Bib
liote
ca D
igita
l da
UN
IVAT
ES
(htt
p://w
ww
.uni
vate
s.br/
bdu)
52
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;
BD
U –
Bib
liote
ca D
igita
l da
UN
IVAT
ES
(htt
p://w
ww
.uni
vate
s.br/
bdu)
53
Segurança: O aplicativo deve criptografar as senhas dos usuários e dos
certificados digitais antes de armazena-las no banco de dados;
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 ICP-
Brasil 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.
BD
U –
Bib
liote
ca D
igita
l da
UN
IVAT
ES
(htt
p://w
ww
.uni
vate
s.br/
bdu)
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
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 “kSOAP2-
Android” 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 Descrição
Id Identificador numérico e único destinatario Descrição do destinatário
senha Senha para autenticação no aplicativo
logado Identificador para destinatário autenticado Cnpj CNPJ do destinatário
Ambiente Ambiente (Homologação ou Produção)
UF Unidade Federativa do destinatário
Path_certificado Caminho completo do certificado digital
BD
U –
Bib
liote
ca D
igita
l da
UN
IVAT
ES
(htt
p://w
ww
.uni
vate
s.br/
bdu)
55
Campo Descrição
Senha_certificado Senha do certificado digital
Path_xml Diretório para armazenar os arquivos XML
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 é
BD
U –
Bib
liote
ca D
igita
l da
UN
IVAT
ES
(htt
p://w
ww
.uni
vate
s.br/
bdu)
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
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.
BD
U –
Bib
liote
ca D
igita
l da
UN
IVAT
ES
(htt
p://w
ww
.uni
vate
s.br/
bdu)
57
4.3 Funcionalidades do Aplicativo
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.
BD
U –
Bib
liote
ca D
igita
l da
UN
IVAT
ES
(htt
p://w
ww
.uni
vate
s.br/
bdu)
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
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
BD
U –
Bib
liote
ca D
igita
l da
UN
IVAT
ES
(htt
p://w
ww
.uni
vate
s.br/
bdu)
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.
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);
BD
U –
Bib
liote
ca D
igita
l da
UN
IVAT
ES
(htt
p://w
ww
.uni
vate
s.br/
bdu)
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
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).
BD
U –
Bib
liote
ca D
igita
l da
UN
IVAT
ES
(htt
p://w
ww
.uni
vate
s.br/
bdu)
61
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,
BD
U –
Bib
liote
ca D
igita
l da
UN
IVAT
ES
(htt
p://w
ww
.uni
vate
s.br/
bdu)
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
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).
BD
U –
Bib
liote
ca D
igita
l da
UN
IVAT
ES
(htt
p://w
ww
.uni
vate
s.br/
bdu)
63
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
BD
U –
Bib
liote
ca D
igita
l da
UN
IVAT
ES
(htt
p://w
ww
.uni
vate
s.br/
bdu)
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
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 NF-
e” 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).
BD
U –
Bib
liote
ca D
igita
l da
UN
IVAT
ES
(htt
p://w
ww
.uni
vate
s.br/
bdu)
65
4.3.3 Status do Serviço
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
BD
U –
Bib
liote
ca D
igita
l da
UN
IVAT
ES
(htt
p://w
ww
.uni
vate
s.br/
bdu)
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
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).
BD
U –
Bib
liote
ca D
igita
l da
UN
IVAT
ES
(htt
p://w
ww
.uni
vate
s.br/
bdu)
67
4.3.5 Sair da aplicação
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.
BD
U –
Bib
liote
ca D
igita
l da
UN
IVAT
ES
(htt
p://w
ww
.uni
vate
s.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
BD
U –
Bib
liote
ca D
igita
l da
UN
IVAT
ES
(htt
p://w
ww
.uni
vate
s.br/
bdu)
69
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).
BD
U –
Bib
liote
ca D
igita
l da
UN
IVAT
ES
(htt
p://w
ww
.uni
vate
s.br/
bdu)
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,
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
BD
U –
Bib
liote
ca D
igita
l da
UN
IVAT
ES
(htt
p://w
ww
.uni
vate
s.br/
bdu)
71
coletados, na Figura 23 é exibido o resultado final da avaliação, representado por cinco
gráficos, um para cada pergunta do questionário.
Figura 23 – Resultado final da avaliação
Fonte: Google Docs – Formulários (2013).
BD
U –
Bib
liote
ca D
igita
l da
UN
IVAT
ES
(htt
p://w
ww
.uni
vate
s.br/
bdu)
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
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
BD
U –
Bib
liote
ca D
igita
l da
UN
IVAT
ES
(htt
p://w
ww
.uni
vate
s.br/
bdu)
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
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.
BD
U –
Bib
liote
ca D
igita
l da
UN
IVAT
ES
(htt
p://w
ww
.uni
vate
s.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
BD
U –
Bib
liote
ca D
igita
l da
UN
IVAT
ES
(htt
p://w
ww
.uni
vate
s.br/
bdu)
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
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;
BD
U –
Bib
liote
ca D
igita
l da
UN
IVAT
ES
(htt
p://w
ww
.uni
vate
s.br/
bdu)
76
Armazenar todas as notas fiscais manifestadas em um banco de dados local
para futuras consultas (histórico de manifestações realizadas);
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”.
BD
U –
Bib
liote
ca D
igita
l da
UN
IVAT
ES
(htt
p://w
ww
.uni
vate
s.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:
BD
U –
Bib
liote
ca D
igita
l da
UN
IVAT
ES
(htt
p://w
ww
.uni
vate
s.br/
bdu)
78
<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 da Informação. Disponível em:
<http://www.iti.gov.br/>. Acesso em: 01 junho 2013.
BRASIL. Portal Nacional da Nota Fiscal Eletrônica. Disponível em:
<http://www.nfe.fazenda.gov.br>. Acesso em: 26 maio 2013.
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-244-
7.
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.
BD
U –
Bib
liote
ca D
igita
l da
UN
IVAT
ES
(htt
p://w
ww
.uni
vate
s.br/
bdu)
79
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 Fazenda. Disponível em:
<https://www.sefaz.rs.gov.br/> Acesso em: 01 junho 2013.
SÃO PAULO (Estado). Secretaria da Fazenda. Disponível em:
<https://www.sefaz.sp.gov.br/> Acesso em: 01 junho 2013.
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.
BD
U –
Bib
liote
ca D
igita
l da
UN
IVAT
ES
(htt
p://w
ww
.uni
vate
s.br/
bdu)
81
APÊNDICE A – Diagrama de classes