quinta-feira, 9 de abril de 2009

Iniciando Nota Fiscal Eletrônica (NFe)

Quando comecei a desenvolver a NFe estava muito perdido. É por isto que escrevo este pequeno artigo para tentar ajudar quem está perdido. A linguagem que desenvolvi foi em Visual FoxPro. Mas o meu propósito não é ensinar a como fazer e sim os passos que seguir.

Antes de começarem a ler este tópico, entrem no portal da NFe para saber exato o que é a NFe.
http://www.nfe.fazenda.gov.br

Bom, irei descrever os passos que segui para que meu ERP pudesse gerar a NFe.

A primeira coisa a fazer, é adquirir um certificado digital. Ele garantirá a autencidade da nota fiscal enviada por sua empresa. Adquirimos o certificado A3 (Token) da Prodemge.
http://www.prodemge.gov.br/cdigital/
O único problema que tive com ele, foram os programas que vieram no cd. Não instalem os programas do cd, entrem no site da Prodemge e baixem as versões atuais.

A segundo passo é entrar com o pedido para sua empresa iniciar o uso da NFe. Inicialmente ela estará liberada somente para testes (Homologaçã0). Nesta fase pode-se fazer diversos testes para certificar que o sistema está enviando e recebendo a NFe normalmente, cancelamento de nota e inutilização dos números. Quando todos os testes forem feitos, entra com o pedido de "Produção". Neste modo já é pra valer. Mas se quiserem fazer testes mesmo estando em ambiente de produção, não tem problema. No XML da nota gerada existe uma opção que vai falando que a empresa está em modo de Homologação ou Produção. Quando lerem o modelo do xml, vão ver a tag que informa.

Bom feito o pedido, agora é hora de gerar o xml. Consegui seguir um caminho muito mais curto devido um software chamado UniNfe. Este software é simplesmente fantástico e é Open Source.
http://www.unimake.com.br/uninfe/. Ele é responsável por assinar a nota e enviar ao Sefaz. Ele contém manual de funcionamento. Tudo muito bem explicado. Em resumo, ele funciona da seguinte maneira: ele fica rodando em segundo plano esperando que alguma nota seja gerada e enviada para ele. Quando copia o XML da nota gerada para a pasta dele, ele automaticamente ja pega esta nota, assina e transmite e retorna se tudo deu certo.

Então para que o UniNfe comece suas tarefas, precisamos gerar os dados nota em formato XML.
O Sefaz tem o manual de quais campos gerar e o que deve conter cada campo. O manual pode ser baixado em http://www.nfe.fazenda.gov.br/PORTAL/docs/Manual_de_Integracao_Contribuinte_v3.00-2009-03-16.pdf
Leiam ele todo, para entender como funciona a transação dos XML. Mas a parte que nos interessa (devido ao UniNfe fazer muita coisa) é a partir da página 91. É a partir desta página que está explicado quais os dados precisa gerar. Para se ter uma ideia de como o xml deve ficar, acesse este link, http://www.unimake.com.br/uninfe/download.php?id=45c48cce2e2d7fbdea1afc51c7c6ad26, va em modelos de envio, e procure o arquivo. 51080612345678901234550010000001041671821888-nfe.xml. Este número grande que tem no arquivo é chamado de ID da NFe. Para saber como gerar este ID veja no manual de integração na página 71, ítem 5.4. Para saber como gerar e onde colocar o arquivo gerado, leiam o manual do UniNfe. Depois de enviar o arquivo deve ainda esperar o retorno para saber a nota foi efetivada com sucesso. Este processo é descrito muito bem explicado no manual do UniNfe.

Pessoal, é isto. Espero ter clareado algumas coisas e agradecer claro ao pessoal UniMake, por este software (UniNfe) ter ajudado eu e muita gente.
Grande abraço.