Desenvolvimento - Delphi
Nota Fiscal Eletrônica - Geração, Assinatura e Transmissão
Neste artigo faremos um apanhado geral dos inúmeros conceitos e tecnologias envolvidas no desenvolvimento e implantação de soluções para NF-e, incluindo o processo de geração, assinatura e transmissão de Notas Fiscais Eletrônicas. Ao final deste artigo o leitor terá uma visão geral de como funciona o processo e será apresentado a alternativas simples, eficazes e flexíveis para agilizar o processo de adequação do seu software à nova legislação.
por Victory FernandesAtualmente tenho sido cobrado por todos os lados a respeito de soluções para Nota Fiscal Eletrônica (NF-e). Os clientes precisam adequar seus sistemas, a empresa precisa fornecer solução imediata, os leitores querem saber mais sobre o tema.
A NF-e é um documento emitido e armazenado eletronicamente, com validade jurídica garantida por processo de assinatura digital. O principal objetivo da implantação desta nova modalidade é o acompanhamento em tempo real das operações comercias pelo Fisco e a substituição do modelo atual de emissão de documentos fiscais em papel, de forma a simplificar uma série de obrigações do contribuinte. Maiores informações podem ser obtidas através do portal nacional em www.nfe.fazenda.gov.br
Neste artigo faremos um apanhado geral dos inúmeros conceitos e tecnologias envolvidas no desenvolvimento e implantação de soluções para NF-e, incluindo o processo de geração, assinatura e transmissão de Notas Fiscais Eletrônicas. Ao final deste artigo o leitor terá uma visão geral de como funciona o processo e será apresentado a alternativas simples, eficazes e flexíveis para agilizar o processo de adequação do seu software à nova legislação.
Descrição Simplificada do Processo
De maneira
simplificada o modelo operacional da NF-e pode ser assim descrito:
1. A empresa emissora da NF-e gera um arquivo eletrônico contendo as informações fiscais da operação comercial em questão.
a. O arquivo eletrônico tem extensão .XML (Extensible Markup Language) e deve ser gerado conforme padrão pré-estabelecido vigente.
b. Este documento eletrônico contém informações equivalentes às informações contidas no modelo atual de notas fiscais em papel.
2. O documento da NF-e emitido deve ser assinado digitalmente, de maneira a garantir a integridade dos dados, a autoria do emissor e a validade jurídica do documento.
a. O processo de assinatura digital deve ser feito utilizando-se certificado digital tipo A1 ou A3 emitido por autoridade certificadora credenciada pela Infra-estrutura de Chaves Públicas Brasileira – ICP-Brasil (www.icpbrasil.gov.br).
b. Neste artigo foram utilizados certificados emitidos pela empresa CertSign (www.certisign.com.br), devidamente credenciada no ICP-Brasil.
c. A escolha do fornecedor do certificado abordado neste artigo se deu primeiramente pela CertSign ser devidamente certificada no ICP-Brasil e também pelo fato de ser uma das empresas líderes deste mercado e dispor de Autoridade de Registro (AR) sediada em nossa cidade, Salvador – Ba. No entanto sinta-se o leitor livre para escolher entre qualquer uma das empresas disponíveis no mercado, todas elas dispõem de processos semelhantes aos apresentados e toda a teoria mostrada no que tange a NF-e continua sendo válida.
3. O arquivo deve então ser transmitido, via Internet, para a Secretaria da Fazenda do Estado (SEFAZ) onde reside o contribuinte emissor.
4. Após receber o arquivo, a SEFAZ realiza um processo de pré-validação e devolve uma Autorização de Uso, permitindo com isso o trânsito da mercadoria e a continuação da transação comercial.
5. Para acompanhar o trânsito da mercadoria o sistema deve imprimir, em papel comum, geralmente em única via, uma representação gráfica simplificada da NF-e, chamada de DANFE (Documento Auxiliar da Nota Fiscal Eletrônica)
a. O DANFE deve conter impressa uma chave de acesso que possibilita a consulta da NF-e na internet, de forma que qualquer pessoa possa confirmar as informações impressas com as informações contidas no site da SEFAZ.
b. O DANFE não é uma nota fiscal, nem a substitui, servindo apenas como instrumento auxiliar para consulta da NF-e na internet.
Atualmente, conforme consta no FAQ disponível no portal da NF-e, o protocolo ICMS 30/07 alterou o Protocolo ICMS 10/07 e estabeleceu a obrigatoriedade de utilização NF-e a partir de 1º de abril de 2008, para os seguintes tipos de contribuintes que estejam localizados nos Estados signatários deste protocolo:
· fabricantes e distribuidores de cigarros
· distribuidores, produtores, formuladores e importadores de combustíveis líquidos, assim definidos e autorizados por órgão federal competente;
· transportadores e revendedores retalhistas – TRR - assim definidos e autorizados por órgão federal competente.
Para os demais contribuintes, a estratégia de implantação nacional é que estes, voluntariamente e gradualmente, independente do porte, se interessem por emitir Nota Fiscal Eletrônica.
Certificados Digitais
Os certificados digitais são documentos eletrônicos que identificam pessoas físicas ou jurídicas e através do uso de criptografia asseguram a confiabilidade, privacidade, integridade, inviolabilidade e autenticidade de informações de transações realizadas via Internet.
O processo de assinatura digital utilizando certificados digitais nas operações via Internet tem validade jurídica para ser utilizado como assinatura de próprio punho, comprovando que seu proprietário concorda com o documento assinado.
Os tipos mais
comuns de certificados digitais são:
· Certificados tipo A3 oferecem maior segurança, já que seu certificado é gerado, armazenado e processado em cartão inteligente (SmartCard) ou token (espécie de hardlock para conexão na porta USB), que permanece assim inviolável e único. Apenas o detentor da senha de acesso, criada no momento da validação, pode utilizar a chave privada. O certificado digital tipo A3 possui validade de 3 anos.
· Certificados tipo A1 são gerados e armazenados no computador pessoal do usuário, não sendo necessário o uso de cartões inteligentes ou tokens. Os dados podem ser protegidos por uma senha de acesso, criada pelo usuário. Somente com esta senha é possível acessar, mover e copiar sua chave privada. Por medida de segurança, recomenda-se que um único computador armazene o par de chaves tipo A1 e apenas uma cópia de segurança seja criada. A validade deste tipo de certificado é de 01(um) ano, contado a partir de sua data de emissão.
A escolha do tipo de certificado a ser utilizado no desenvolvimento da sua aplicação depende muito das suas necessidades e possibilidades financeiras.
Os certificados tipo A1 são mais baratos, no entanto são menos flexíveis, pois estão instalados em uma única máquina, têm prazo de validade reduzido e são considerados menos seguros.
Os certificados tipo A3 do tipo SmartCard têm um custo intermediário, mas num primeiro momento, dependem da aquisição de um leitor de cartão que deve estar instalado na máquina onde o cartão será utilizado. A vantagem, no entanto é que, após o prazo de 3 anos da compra do primeiro cartão, não será necessário adquirir novo leitor de cartão, o que torna o custo a longo prazo mais interessante.
Os certificados tipo A3 do tipo token USB têm maior flexibilidade quando comparados aos outros formatos pois depende apenas da disponibilidade de uma porta USB na máquina onde o mesmo será utilizado, facilitando e muito o processo de desenvolvimento. O custo, no entanto, é o mais elevado tendo em vista que o prazo de validade é o mesmo quando comparado ao modelo SmartCard.
Acessando o site da CertSign no link específico de certificados digitais para emissão de NF-e, temos acesso aos seguintes custos, por tipo de certificado, conforme mostrado na Figura 01.
Figura 01: Certificados para emissão de NF-e no site da CertSign
Para o desenvolvimento do projeto de NF-e, optei pelo certificado tipo A3, modelo token USB, devido à sua flexibilidade e praticidade, principalmente considerando o ambiente de desenvolvimento do projeto realizado vários desenvolvedores diferentes e o processo de atendimento na sede do cliente quando utilizamos notebooks.
Gerando uma NF-e para testes de assinatura
Os arquivos de Nota Fiscal Eletrônica são arquivos XML (eXtensible Markup
Language) gerados conforme padrão de layout definido em arquivos de
Schema disponibilizados pelo Governo como Pacotes de Liberação e
disponíveis para download no Portal Oficial da NFe em www.nfe.fazenda.gov.br.
Para fazer testes de geração, assinatura e transmissão de uma NF-e, utilizamos o aplicativo disponibilizado no site http://www.igara.com.br/produto.php?cod_produto=114. O aplicativo mostrado da Figura 02 é um demo desenvolvido em Delphi, totalmente funcional que permite a geração de NF-e a partir de informações digitadas pelo usuário em campos de texto que seguem o layout específico vigente.
Após abrir o aplicativo, clicamos no botão “Nova NF-e” e depois no botão “Salvar NF-e”. Por fim selecionamos o diretório onde desejamos salvar o arquivo .XML gerado. O aplicativo sugere um nome para o arquivo gerado e este nome não deve ser alterado, pois segue padrão de nomenclatura específico exigido com base no conteúdo da NF-e em questão.
Figura 02: Aplicativo em Delphi para geração de NF-e
O arquivo gerado pode ser visualizado no Internet Explorer ou em qualquer outro browser de internet com suporte a XML, e o resultado é conforme mostrado na Figura 03.
Neste artigo não entraremos em detalhes sobre o processo de geração da NF-e, pois este será o tema de outros artigos que virão.
Figura 03: Arquivo .xml de NF-e visualizado no Internet Explorer
Até o momento, o arquivo gerado não tem valor jurídico, pois ainda não foi assinado de forma que o emissor possa certificar a validade das informações fornecidas, bem como não há nada que garanta que este documento não foi alterado por terceiros sem o conhecimento prévio do emitente.
Para tanto, é preciso assinar este documento. Na minha coluna online no site da Revista ActiveDelphi você encontra um artigo que demonstra como utilizar o aplicativo de assinatura de NF-e disponibilizado para download gratuito no portal oficial da NF-e em www.nfe.fazenda.gov.br. No entanto, neste artigo o objetivo é demonstrar como assinar digitalmente os arquivos a partir da sua própria aplicação, e para isso utilizaremos a assinaturaNFe32dll.dll.
Assinatura de NFe com uso da assinaturaNFe32dll.dll
Para demonstrar como é fácil assinar uma NFe, utilizaremos a assinaturaNFe32dll.dll e o aplicativo demo que acompanha a mesma pode ser obtido a partir do site http://www.igara.com.br/produto.php?cod_produto=114.
Após o download, executamos o aplicativo e clicamos no botão “1. Selecione o arquivo XML da NFe”. Um componente da classe TOpenDialog é utilizado para apresentar ao usuário uma caixa de seleção de arquivos, onde o mesmo indicará o arquivo .XML a ser assinado. O código do evento OnClick do botão é conforme mostrado a seguir.
procedure TForm1.Button12Click(Sender: TObject);
begin
opendialog1.InitialDir := ExtractFileDir(application.ExeName);
if OpenDialog1.Execute then
begin
nfe_filename := OpenDialog1.FileName;
WebBrowser1.Navigate(nfe_filename);
memo1.Lines.LoadFromFile(nfe_filename);
end;
end;
A Figura 03 apresenta o resultado da execução de tal procedimento, onde após a seleção do arquivo .XML, o mesmo é carregado em componentes da classe TMemo e TWebBrowser, conforme mostrado no lado esquerdo da Figura 04.
Figura 04: Aplicativo demo de assinatura de NF-e. Seleção da NF-e a ser assinada.
Uma vez carregado o arquivo desejado clique no botão “2. Assinar NFe Selecionada” para dar início ao processo de assinatura. O código executado no evento OnClick do botão é conforme segue.
O procedimento executa uma chamada à função fncAssinarXML contida na dll passando como parâmetro do tipo TStrings as linhas do arquivo .XML carregado anteriormente. O resultado da chamada da função é atribuído a um segundo componente da classe TMemo.
Se tudo estiver correto, o retorno da função fncAssinarXML será o arquivo da Nota Fiscal Eletrônica devidamente assinado. Caso contrário, o retorno será uma String vazia.
procedure TForm1.Button1Click(Sender: TObject);
var
nfe_assinada: String;
begin
try
nfe_assinada := fncAssinarXML(memo1.Lines);
memo2.Lines.Text := copy(nfe_assinada, 4, length(nfe_assinada));
except
exit;
end;
if memo2.Lines.Count > 0 then
showmessage("NFe assinada com sucesso");
end;
No momento da execução do código apresentado, surgirá uma tela para seleção do certificado digital a ser utilizado no processo de assinatura, conforme mostrado na Figura 05. Importante ressaltar que nesta tela é possível verificar as informações contidas no certificado, de forma a diferenciar os certificados entre si, para os casos de mais um certificado disponível em uma mesma máquina.
Figura 05: Seleção de certificado a ser utilizado no processo de assinatura.
Após selecionar o certificado desejado, clique no botão “Ok”. Surgirá então a tela apresentada na Figura 06 a seguir. Neste momento, para finalizar o processo e efetivamente assinar o documento é preciso se fornecer a senha de registro do certificado digital selecionado. Conforme abordado no artigo anterior no momento da aquisição do token, uma senha de acesso deve ser fornecida, sendo pessoal e intransferível, onde somente através dela é possível se utilizar das funcionalidades do certificado.
Figura 06: Confirmação de senha para uso do certificado.
Após preencher a senha e clicar no botão “Ok”, o arquivo .XML selecionado anteriormente será assinado e o conteúdo do XML assinado será apresentado conforme demonstrado na Figura 07 a seguir.
Figura 07: Aplicativo demo de assinatura de NF-e. Assinatura da NF-e.
Agora basta clicar no botão “3. Salvar NFe Assinada” para que o procedimento de OnClick do botão execute a chamada a um componente da classe TSaveDialog, utilizado para apresentar ao usuário uma caixa de seleção de arquivos, onde o mesmo indicará o local onde o arquivo .XML assinado deve ser salvo. O código do evento OnClick do botão é conforme mostrado a seguir.
procedure TForm1.Button2Click(Sender: TObject);
begin
try
savedialog1.InitialDir := ExtractFileDir(application.ExeName);
SaveDialog1.FileName := ExtractFileName(nfe_filename);
if savedialog1.Execute then
memo2.Lines.SaveToFile(savedialog1.filename);
except
exit;
end;
showmessage("Arquivo de NFe salvo com sucesso")
end;
Note que não foi preciso ter nenhum conhecimento aprofundado sobre como se dá o processo de assinatura digital, e dessa forma abstrai-se completamente a camada relativa às funções necessárias e tecnologias utilizadas. Com a chamada de uma única função o arquivo desejado já está assinado!
Sobre a assinaturaNFe32dll.dll
A assinaturaNFe32dll.dll é um produto desenvolvido para facilitar e agilizar o processo de assinatura digital de arquivos de Nota Fiscal Eletrônica. O objetivo é disponibilizar uma solução simples e acessível a todos os desenvolvedores onde, através da chamada de uma única função, seja possível se indicar o conteúdo a ser assinado, abstraindo a complexidade desta camada, que envolve conhecimentos aprofundados acerca de funções e tecnologias de certificação.
Sendo assim a dll contém um única função que recebe como parâmetro uma variável TStrings com o conteúdo a ser assinado e retorna o conteúdo devidamente assinada como String. Mais simples que isso, impossível!
Function fncAssinarXML(sXml: TStrings): String; StdCall; external "assinaturaNFe32dll.dll";
O uso da dll permite ao desenvolvedor abstrair completamente a camada de assinatura do arquivo magnético, dispensando o estudo e aprofundamento teórico relativo às ferramentas e funções complexas aplicadas no processo.
O produto é uma solução pioneira no mercado e dá ao desenvolvedor total flexibilidade para implementar recursos de Nota Fiscal Eletrônica em suas aplicações, adequando seus sistemas às obrigações exigidas pelo Fisco.
Maiores informações, bem como o download do demo de uso do produto e da versão de avaliação 100% funcional da assinaturaNFe32dll.dll pode ser feito pelo site http://www.igara.com.br/produto.php?cod_produto=114.
Transmissão de NFe com uso da transmissaoNFe32dll.dll
A transmissão dos arquivos de Nota Fiscal Eletrônica é feita através do uso de Webservices.
WebService é uma tecnologia utilizada para facilitar a comunicação e integração de sistemas distintos, tornando-os compatíveis. O que o WebService propõe é uma integração compreensível, reutilizável e padronizada. Para tanto, utiliza-se, como base de construção, o padrão XML e, para encapsulamento, o protocolo SOAP (Simple Object Access Protocol). Seu transporte normalmente é feito via protocolo HTTP.
O WebService possibilita que dois aplicativos, independente de suas linguagens, utilizem uma padronização para enviar e receber dados de forma transparente.
No projeto em questão, realizamos o envio de arquivos do padrão da NF-e para o sistema servidor da Secretaria da Fazenda que está preparado para responder ao receber um arquivo XML de requisição, formatado num padrão específico, detalhado na documentação disponível no site oficial do Governo.
Para demonstrar como é fácil transmitir uma NFe, utilizaremos a transmissaoNFe32dll.dll e o aplicativo demo que acompanha a, que mesma pode ser obtido a partir do site http://www.igara.com.br/produto.php?cod_produto=114.
Após o download, executamos o aplicativo e clicamos no botão “1. Selecione o arquivo XML a ser transmitido”. Um componente da classe TOpenDialog é utilizado para apresentar ao usuário uma caixa de seleção de arquivos, onde o mesmo indicará o arquivo .XML a ser transmitido. O código do evento OnClick do botão é conforme mostrado a seguir.
procedure TForm1.Button12Click(Sender: TObject);
begin
//Diretório inicial será o diretório onde a aplicação está executando
opendialog1.InitialDir := ExtractFileDir(application.ExeName);
//Abre caixa de seleção de arquivos
if OpenDialog1.Execute then
begin
xml_filename := OpenDialog1.FileName;
//Apresenta XML escolhido em modo browser
WebBrowser1.Navigate(xml_filename);
//Apresenta XML escolhido em modo texto
memo1.Lines.LoadFromFile(xml_filename);
end;
end;
A Figura 03 apresenta o resultado da execução de tal procedimento, onde após a seleção do arquivo .XML, o mesmo é carregado em componentes da classe TMemo e TWebBrowser, conforme mostrado no lado esquerdo da Figura 08.
Figura 08: Aplicativo demo de transmissão de NF-e. Seleção da NF-e a ser transmitida.
Uma vez carregado o arquivo desejado, selecione o tipo de transação que será executada com o servidor. Para cada tipo de transação disponível existe uma opção no componente da classe TRadioGroup. Os Portais das Secretarias de Fazenda Estaduais disponibilizam os seguintes serviços:
· Recepção de NF-e;
o Recepção de Lote;
o Consulta Processamento de Lote;
· Cancelamento de NF-e;
· Inutilização de numeração de NF-e;
· Consulta da situação atual da NF-e;
· Consulta do status do serviço.
Os serviços disponibilizados seguem a seguinte sistemática, conforme descrito na documentação oficial de NF-e:
· Para cada serviço oferecido existe um WebService específico. O fluxo de comunicação é sempre iniciado pelo aplicativo do contribuinte através do envio de uma mensagem ao WebService com a solicitação do serviço desejado.
· O WebService sempre devolve uma mensagem de resposta confirmando o recebimento da solicitação de serviço ao aplicativo do contribuinte na mesma conexão.
· A solicitação de serviço poderá ser atendida na mesma conexão ou ser armazenada em filas de processamento nos serviços mais críticos para um melhor aproveitamento dos recursos de comunicação e de processamento das Secretarias de Fazenda Estaduais.
· Os serviços podem ser síncronos ou assíncronos em função da forma de processamento da solicitação de serviços:
o Serviços síncronos – o processamento da solicitação de serviço é concluído na mesma conexão, com a devolução de uma mensagem com o resultado do processamento do serviço solicitado;
o Serviços assíncronos – o processamento da solicitação de serviço não é concluído na mesma conexão, havendo a devolução de uma mensagem de resposta com um recibo que apenas confirma o recebimento da solicitação de serviço. O aplicativo do contribuinte deverá realizar uma nova conexão para consultar o resultado do processamento do serviço solicitado anteriormente.
Após selecionar o serviço desejado, basta selecionar a UF para onde o arquivo será enviado e clicar no botão “5. Transmitir XML” para dar início ao processo de transmissão. O código executado no evento OnClick do botão é conforme segue.
O procedimento executa uma chamada a uma das funções de transmissão contidas na dll, passando como parâmetro do tipo PChar o conteúdo do arquivo .XML carregado anteriormente. O resultado da chamada da função, contendo o retorno da transmissão, é atribuído a um segundo componente da classe TMemo.
procedure TForm1.Button1Click(Sender: TObject);
var
MyiUF, MyiTipo: Integer;
MysXML: PChar;
begin
try
//Atribue valores das variáveis q serão passadas como parâmetro durante a transmissão
MyiUF := combobox1.ItemIndex;
MyiTipo := combobox2.ItemIndex;
MysXML := PChar(memo1.Lines.Text);
//Realiza a chamada da função da dll de acordo com o tipo de transação escolhida
case radiogroup1.ItemIndex of
0: memo2.Lines.Text := fncNfeRecepcao (MysXML, MyiUF, MyiTipo);
1: memo2.Lines.Text := fncCadConsultaCadastro(MysXML, MyiUF, MyiTipo);
2: memo2.Lines.Text := fncNfeCancelamento (MysXML, MyiUF, MyiTipo);
3: memo2.Lines.Text := fncNfeConsulta (MysXML, MyiUF, MyiTipo);
4: memo2.Lines.Text := fncNfeInutilizacao (MysXML, MyiUF, MyiTipo);
5: memo2.Lines.Text := fncNfeRetRecepcao (MysXML, MyiUF, MyiTipo);
6: memo2.Lines.Text := fncNfeStatusServico (MysXML, MyiUF, MyiTipo);
end;
except
showmessage("ATENÇAO: Erro durante a transmissão");
exit;
end;
MysXML := "";
showmessage("XML transmitido com sucesso. Verifique o retorno para informações de retorno");
end;
No momento da execução do código apresentado, surgirá uma tela para seleção do certificado digital a ser utilizado no processo de assinatura, conforme mostrado na Figura 09. Importante ressaltar que nesta tela é possível verificar as informações contidas no certificado, de forma a diferenciar os certificados entre si, para os casos de mais um certificado disponível em uma mesma máquina.
Figura 09: Seleção de certificado a ser utilizado no processo de assinatura.
Após selecionar o certificado desejado e digitar a senha de acesso ao certificado, o arquivo .XML selecionado anteriormente será transmitido e o retorno do WebService para a transmissão do XML será apresentado conforme demonstrado na Figura 010 a seguir.
Figura 10: Aplicativo demo de transmissão de NF-e. Retorno da transmissão da NF-e.
Agora basta clicar no botão “7. Salvar XML de Retorno” para que o procedimento de OnClick do botão execute a chamada a um componente da classe TSaveDialog, utilizado para apresentar ao usuário uma caixa de seleção de arquivos, onde o mesmo indicará o local em que arquivo .XML de retorno deve ser salvo. O código do evento OnClick do botão é conforme mostrado a seguir:
procedure TForm1.Button2Click(Sender: TObject);
begin
try
//Diretório inicial será o diretório onde a aplicação está executando
savedialog1.InitialDir := ExtractFileDir(application.ExeName);
//Concatena nome para arquivo de retorno
SaveDialog1.FileName := "retorno_" + combobox1.Text + "_" + ExtractFileName(xml_filename);
//Salva arquivo de retorno
if savedialog1.Execute then
begin
memo2.Lines.SaveToFile(savedialog1.filename);
end;
except
showmessage("ATENÇAO: Erro durante o salvamento do retorno");
exit;
end;
showmessage("Arquivo de retorno salvo com sucesso");
end;
Note que não foi preciso ter nenhum conhecimento aprofundado sobre como se dá o processo de transmissão, e dessa forma abstrai-se completamente a camada relativa às funções necessárias e tecnologias utilizadas. Com a chamada de uma única função, o arquivo desejado já está transmitido!
Sobre a transmissaoNFe32dll.dll
A transmissaoNFe32dll.dll é um produto desenvolvido para facilitar e agilizar o processo de transmissão de arquivos de Nota Fiscal Eletrônica. O objetivo é disponibilizar uma solução simples e acessível a todos os desenvolvedores onde, através da chamada de uma única função para cada serviço, seja possível indicar o conteúdo a ser transmitido, abstraindo a complexidade desta camada, que envolve conhecimentos aprofundados acerca de funções e tecnologias de comunicação via WebService.
Sendo assim a dll contém uma função para cada serviço que recebe como parâmetro uma variável PChar com o conteúdo a ser transmitido e retorna a resposta do WebService. Mais simples que isso, impossível!
O uso da dll permite ao desenvolvedor abstrair completamente a camada de transmissão do arquivo magnético, dispensando o estudo e aprofundamento teórico relativo às ferramentas e funções complexas aplicadas no processo.
O produto é uma solução pioneira no mercado e dá ao desenvolvedor total flexibilidade para implementar recursos de Nota Fiscal Eletrônica em suas aplicações, adequando seus sistemas às obrigações exigidas pelo Fisco.
Maiores informações, bem como o download do demo de uso do produto e da versão de avaliação 100% funcional da transmissaoNFe32dll.dll podem ser feitos pelo site http://www.igara.com.br/produto.php?cod_produto=114.
Conclusão
Com este artigo abordamos os conceitos gerais sobre os processos de geração, assinatura digital e transmissão de NF-e, e vimos como é fácil emitir, assinar e transmitir tais documentos. A NF-e já é uma realidade, e muito em breve todos serão obrigados a adotar este novo formato. Mesmo as empresas não obrigadas, estão interessadas em ter seus sistemas atualizados para trabalhar nesta nova modalidade de emissão de documentos fiscais.
De agora em diante, gerar, assinar e transmitir uma Nota Fiscal Eletrônica não é mais um mistério!