Emitir NF-e com JavaScript não é algo tão simples, mas esse processo pode ficar mais fácil, rápido e prático. Quer saber como? Vem ver!
Quando seus clientes buscam a sua software house, eles chegam com algumas dores e aos poucos você vai descobrindo que existem muitas outras, não é mesmo? A emissão da Nota Fiscal Eletrônica costuma ser uma dessas dores, então por que não incorporar essa feature ao seu software?
Se você trabalha com a linguagem JavaScript e quer entender melhor como funcionam as notas fiscais nesses casos, você está no lugar certo. Vamos te mostrar o passo a passo de como emitir NF-e com JavaScript e, como um bônus, apresentaremos uma solução que torna esse processo mais fácil. Vamos lá?
Entenda a linguagem JavaScript
O JavaScript (que não deve ser confundido com o Java) é uma linguagem que nasceu há quase 30 anos e, ao longo de todo esse tempo, ela se tornou uma das mais utilizadas por programadores e desenvolvedores. O JavaScript foi projetado para rodar no navegador do usuário.
Ao contrário de outras linguagens, ele roda programas localmente, não remotamente em servidores. Isso torna a linguagem mais dinâmica e entrega aos usuários maior possibilidade de personalização.
Desafios da Linguagem JavaScript
A linguagem JavaScript é popular no mundo todo, isso é verdade. Mas toda essa popularidade não significa que a linguagem não tenha limitações.
A segurança é a principal questão do JavaScript. Fraudadores e hackers gostam dessa linguagem porque ela pode ser usada para acessar dados do usuário sem sua permissão.
Outra limitação é a compatibilidade com alguns sistemas e navegadores. O JavaScript não funciona em todos os navegadores, o que pode representar uma dor de cabeça para o desenvolvedor, que precisará fazer mais testes e encontrar outras soluções.
Aprenda a emitir NF-e com JavaScript
Antes de qualquer coisa, recomendamos que você leia o Manual de Orientação do Contribuinte (MOC) para ficar por dentro de todas as minúcias desse processo. Clicando na primeira opção “Manual de Orientação ao Contribuinte – MOC – versão 7.0 – NF-e e NFC-e”, você terá acesso a todas essas minúcias.
Como o documento é bastante longo e a linguagem é puramente técnica, o nosso conselho é que alguém da sua equipe busque estudar sobre legislação fiscal para ter mais intimidade com todas essas siglas e regras.
Então, vamos ao passo a passo para emitir a NF-e usando a linguagem JavaScript?
-
Criação do XML
O XML é o padrão de documentos especificado pelo MOC, mas existem alguns critérios que precisam ser seguidos para que você consiga gerar o XML de forma tranquila, diminuindo a probabilidade de erros.
Segundo o MOC, o padrão que deve ser seguido é o W3C para XML 1.0 e a codificação dos caracteres é UTF-8. Todos os documentos XML devem começar dessa forma:
<?xml version=”1.0″ encoding=”UTF-8″?>
-
Assinatura com Certificado Digital
Gerou o XML? Agora é a hora de assiná-lo com um Certificado Digital da SEFAZ. O Certificado Digital é indispensável porque ele também será utilizado no momento da transmissão.
De acordo com as orientações do MOC, esse Certificado Digital deve ser emitido por uma Autoridade Certificadora credenciada pela ICP-Brasil, do tipo A1 ou A3. O documento deve conter o CNPJ no campo OtherName OID =2.16.76.1.3.3 ou o CPF no campo OtherName OID=2.16.76.1.3.1.
-
Implementação do cliente
O MOC também diz que o padrão de comunicação para a implementação é baseado em Web Services, que são disponibilizados pelo Sistema de Recepção de NF-e.
Existem duas formas de implementação: a síncrona ou a assíncrona. No caso da síncrona, elas são processadas de forma imediata a partir de uma única conexão. Já a assíncrona acontece quando são processadas de forma distribuída por mais de um processo, sendo necessária uma segunda conexão.
Para entender melhor sobre isso, veja esse trecho do MOC:
- 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;
- 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.
-
Envio e Retorno dos Web Services
A NFe deve ser enviada pelos Web Services. O próximo passo é aguardar um retorno positivo, que deve acontecer em cerca de 5 minutos.
Pode ser que o retorno seja negativo, o que demandará uma revisão de todo esse processo, a fim de analisar qual foi o erro.
Quer entender de forma mais profunda, com base em código? Separamos um material exclusivo no nosso fórum.
Cuidados para emitir NF-e com JavaScript
As regras dos documentos fiscais mudam a todo momento para dar conta da velocidade dos acontecimentos, já que as mudanças na legislação e até mesmo as tentativas de fraudes são bastante comuns.
Ser um desenvolvedor e ainda dar conta de acompanhar essas mudanças não é nada fácil, não é mesmo? Mas se você trabalha com módulos fiscais, é preciso estar antenado a essas questões para não correr o risco de fazer algo que não esteja de acordo com as normas técnicas.
Como emitir NF-e em JavaScript em poucos minutos
Achou esse passo a passo muito complicado? Realmente, ele não é tão prático assim e pode representar um super atraso nos seus projetos. Isso ninguém quer.
Pensando nesses fatores limitadores, nós da TecnoSpeed desenvolvemos uma solução que vai facilitar a sua vida. A API para emissão de notas fiscais pode ser integrada ao seu software de forma rápida e prática, através de uma requisição HTTP enviando um arquivo JSON.
Não importa em qual linguagem seu software seja desenvolvido, já que a nossa API é compatível com todas elas – inclusive a JavaScript.
Sabe aquela questão sobre estar por dentro das normas técnicas que mudam a todo momento? Não precisa mais se preocupar, já que o PlugNotas, a nossa biblioteca para emissão de NFe, é constantemente atualizado pelo nosso time de especialistas em documentos fiscais.
Nós estamos em constante contato com as software houses e sabemos de suas dificuldades com os documentos fiscais e eletrônicos, por isso trabalhamos em soluções atualizadas e funcionais para ajudar na rotina dessas empresas.
Quer saber mais sobre a NFe? Então veja o nosso artigo sobre o DANFE, um documento auxiliar das Notas Fiscais Eletrônicas.