Guia prático de utilização pacote NFeDLL
Projeto integração NF-e
Pré-requisitos:
Framework 4.5.2: http://download.microsoft.com/download/E/2/1/E21644B5-2DF2-47C2-91BD-63C560427900/NDP452-KB2901907-x86-x64-AllOS-ENU.exe
Instalação do certificado:
Para efeitos de testes, pode-se utilizar os certificados da pasta “cert-teste”, este tipo de certificado servirá apenas para testes de assinatura digital do arquivo xml, não servirá para comunicação com os servidores da SEFAZ, neste caso, precisará de certificado válido: A1 ou A3.
Pacote NFeDLL/Delphi: Execução do bat ‘registraDLL.bat’
Pacote NFeDLL/VB6: Siga os passos do documento Pré-configuração-vb6
Execute o aplicativo que acompanha o pacote e siga as orientações a seguir
NFeDLL/Delphi: ProjetoTesteNFE.exe
NFeDLL/C#: TesteFuncionalidades.exe
NFeDLL/VB6: Teste funcionalidades.exe
NFeDLL/VBNET: TesteFuncionalidadesVB.exe
1. Configurando parâmetros no Regedit
Importe a chave fornecida junto ao pacote: ..nfe-appnfe-parametros.reg
Acesse o regedit, chave [nfe]
Informe os dados correspondentes:
- CNPJ: Informe o CNPJ da empresa emissora de NFe, apenas números.
- Para o parâmetro NoSerieCertificado com valor xxx irá chamar sempre um formulário de consulta de certificados digitais disponíveis no repositório do Windows. Caso o operador informe o número de série, este formulário não será exibido.
- TipoDanfe: Poderá ter o valor 1 (Retrato) ou 2 (Paisagem).
- TotalizadorCfop: Serve para no DANFE na parte dos itens o sistema agrupar e totalizar por cfop. Ativo = 1, Inativo = 0.
- Ambiente: 1 = Produção; 2 = Homologação (Testes).
O parâmetro nfce\IdentificadorItem default ‘cEAN’ para definir o identificador do item na impressão. Pode ser usado estas opções: cProd, cEAN, NCM, CFOP e nFCI.
O parâmetro MostrarMensagensEmTela, tem valores 0 | 1 e serve para mostrar uma mensagem popup em algumas ocasiões de erro, alertas e advertências.
Já o TipoDanfe serve para a tag tpImp na geração do XML.
O parâmetro ModeloImpressora é utilizado para indicar qual o equipamento de impressão utilizado.
URL para os WebServices:
Os parâmetros iniciados pelo prefixo ‘NFe’ fazem parte das url’s do WebService. Consulte o link abaixo para preencher corretamente de acordo com seu estado. As versões mais recentes do pacote já compreendem a utilização dos novos webservices 2.0 liberados pela SEFAZ, ainda é possível utilizar os webservices anteriores, bastando informar um ou outro. A função de forma automatizada já entende qual o modelo de arquitetura para o link correspondente, não precisando fazer nada com relação a isso.
URL’s de Homologação (Ambiente = 2)
http://hom.nfe.fazenda.gov.br/portal/WebServices.aspx
URL’s de Produção (Ambiente =1)
http://www.nfe.fazenda.gov.br/portal/WebServices.aspx
Chave de Validação de Licença (val.ass): Esta chave é fornecida com o pacote e deve estar junto com a DLL. Ela serve para exibir o texto para divulgação do software house. Este texto fica na parte inferior do DANFE e pode ser personalizado conforme solicitado à ASS Componentes.
2.Gerando a primeira NF-e
Execute o aplicativo de Testes de Funcionalidades.
Na aba ‘Gerar NF-e’¹, preencha com os dados correspondentes a empresa que está liberada junto à SEFAZ². Isto é necessário pois senão haverá uma rejeição da transmissão, ex: Rejeição: IE do destinatário não cadastrada.
O campo ‘Quant. de Itens’ serve para testar a estabilidade da DLL, ou seja, você pode aumentar para 1000 se quiser, para efeitos de testes. P.S: Uma NF-e não pode ser transmitida com arquivo maior que 500kb. Portanto, se aumentar ou diminuir não conseguirá autorização da NF-e, pois isso irá gerar divergência no valor total da nota.
O checkbox ‘Assinar NF-e’, permite que a nota seja assinada imediatamente após ser gerada. Disponível nos pacotes NFeDLL/C#; NFeDLL/Delphi; NFeDLL/Vbnet.
Todos os arquivos gerados serão inseridos na pasta ..nfe-app nfearquivos. Caso utilize o checkbox ‘Assinar NF-e’, o arquivo é movido para a pasta ..nfe-app nfearquivosgerados e gerado um novo “assinado” para a pasta ..nfe-app nfearquivosassinado.
[1] Para o caso do pacote VB6, não é aba e sim um botão.
[2] Este preenchimento de dados para o pacote VB6 deverá ser feito em tempo de projeto, devendo ser compilado nova versão com os dados do emitente correspondente.
3. Assinando a NF-e
Depois de ter gerado a(s) NF-e, vá à aba ‘Assinar Arquivo’ e clique na opção ‘Procurar’. Localize uma NF-e gerada (sem estar assinada) ..nfe-appnfearquivos *.xml. Depois clique em processar, (Caso esteja usando um dos pacotes que contém o checkbox ‘Assinar NF-e’ esta operação poderá ser realizada em um único método).
- Aplicativo de testes de funcionalidades pacote NFeDLL/Delphi
Caso no regedit, parâmetro ‘NoSerieCertificado’ esteja preenchido o número de série do certificado, o sistema irá solicitar a autenticação do certificado digital, caso o tenha (Autenticação é apenas para certificados do tipo A3).
4-Validando arquivos XML
Podemos agora validar a NF-e, a fim de identificar minimamente algum eventual problema de formatação. A validação deve ser feita após a assinatura do mesmo, caso contrário o sistema retornará um erro de formatação:
—————————
Validação de NF-e
—————————
O elemento ‘NFe’ no espaço para nome ‘http://www.portalfiscal.inf.br/nfe’ apresenta conteúdo incompleto. Lista de possíveis elementos esperados: ‘http://www.w3.org/2000/09/xmldsig#:Signature’.
Posição: 4
Linha: 6321
—————————
OK
—————————
- O campo Schema serve para definir o layout de validação, ou seja:
- nfe_v2.00.xsd: É para NF-e;
- enviNFe_v2.00.xsd: Serve para o arquivo de lote;
Os Schemas estão na pasta ..nfe-appnfeschemas. No último pacote, o schema é o PL_006d.zip de 13/03/2010.
É importante ter o Notepad++ instalado na máquina para identificar eventuais problemas no arquivo XML, principalmente nesta fase inicial de implementação do projeto. O notepad do Windows, quebra a linha do arquivo XML assinado digitalmente, dificultando a localização da coluna correspondente ao erro de validação, ex:
'http://www.portalfiscal.inf.br/nfe:cMunFG'element has
an invalid value according to its data type.
Posicao: 377
Linha: 1
Neste caso, basta localizar a posição 377 e identificar o problema, consultando o valor que deverá obrigatoriamente ter, através do Manual do Contribuinte que acompanha o pacote.
5- Gerar Lote
No pacote NFeDLL/Delphi, temos temos 2 opções importantes para o critério de geração de lote, na aba ‘Gerar Lote’.
Selecionar NF-e: Será exibido um formulário com todas as NF-e pendentes, ou seja, que foram geradas, assinadas, mas não foi gerado o arquivo de lote, veja:
Gerar Lote de Todas as NF-e Assinadas: Com esta opção o sistema não exibe o formulário acima, fazendo de conta que o operador marcou neste caso, as duas NF-e pendentes.
Para os demais pacotes, a geração de lote dar-se-à através do envio do path da nf-e correspondente. Caso queira gerar lote com mais de uma nf-e, basta informar os paths separados por “;”.
O arquivo de lote é gerado na pasta ..nfe-appnfelotes com a seguinte nomenclatura: 000000000573-env-lot.xml
6- Verificar Status do Serviço
Na aba ‘WS – Status do Serviço’, clique no botão ‘Status do Serviço’. O sistema solicitará a autenticação do certificado digital e retornará a mensagem ‘Serviço em Operação’.
Se o sistema retornar a mensagem “Serviço em Operação” significa que o serviço está pronto, configurado e preparado para a recepção de notas ficais eletrônicas.
Neste método, caso o certificado esteja para expirar, será exibido uma mensagem de advertência, com contagem regressiva, iniciando por 30 dias.
7- Transmitir Notas Fiscais eletrônicas
Na aba ‘WS – Recepção’, clique no botão ‘NFe Recepção’, neste momento o sistema irá solicitar o arquivo de lote que está na pasta ..nfe-appnfelotes.
Caso já se tenha digitado o PIN do certificado digital (apenas para certificados A3) o sistema salva esta informação e não pedirá novamente.
Se tudo ocorrer corretamente o sistema retornará esta mensagem: Lote recebido com sucesso#350090003127063. Isto não significa que a NF-e foi aceita pelos servidores. O número destacado em negrito trata-se do número de recibo, ele deve ser gravado no banco de dados da automação para posteriores consultas.
8- Consulta de situação da NF-e
Verifique se a NF-e foi realmente aceita pelos servidores da SEFAZ através desta opção, disponível na aba ‘WS – Consultar Situação.
Utilize a chave da NF-e, retornada na função de geração do XML (passo 2), e consulte a situação da NF-e, exemplo de retorno:
Autorizado uso da NF-e#0123456789012345
9- Arquivo de distribuição
ATENCÃO! Este método já é executado automaticamente pela DLL caso o retorno da função de Consulta Situação seja: Autorização de Uso (código 100).
Antes de executar o método, obrigatoriamente você deverá consultar a situação da NF-e do lote (NfeConsulta), pois através deste método é gerado o arquivo auxiliar necessário para geração do arquivo de distribuição.
Execute o método ArquivoDistribuicaoNFe, passando como parâmetro a chave da NF-e (44 caracteres numéricos).
O retorno do método é o path do arquivo de distribuição.
Será criado o arquivo na pasta correspondente, ex: ..arquivoprocNfe42033222208506002344550010000011110000000991-procNFe.xml
10- Emissão do DANFE
O DANFE poderá ser emitido de 3 formas:
- Preview em Tela (parâmetro 3);
- Em PDF (parâmetro 2);
- Direto para impressora DEFAULT (parâmetro 1);
Para emitir o DANFE, escolha o arquivo de Distribuição, localizado na pasta ..nfearquivosprocNFe.
No caso da necessidade do DANFE em Formulário de Segurança, você precisará emiti-lo através do arquivo assinado, que fica na pasta ..nfearquivosassinado, informando no parâmetro da chamada de função true (formSeguranca), ex:
[delphi]: ImprimeDanfe(
‘c:nfe-appnfearquivosprocNFeMinhaNFe.xml’,//path do XML
’’,//este parâmetro serve para informar o path do PDF a ser gravado
3,//tipo de emissão, neste caso preview em tela
true) //Emissão em formulário de segurança
Para NFeDLL/vb6 e NFeDLL/c# segue-se a mesma lógica.
11. Envio de e-mail
De acordo com o manual de Integração do Contribuinte, o emitente e o destinatário deverão manter em arquivo digital as Notas Fiscais eletrônicas pelo prazo estabelecido na legislação tributária para a guarda dos documentos fiscais, devendo ser apresentadas à administração tributária, quando solicitado.
O emissor da Nota Fiscal Eletrônica deve enviar o arquivo digital da NF-e para o destinatário, seja de forma eletrônica ou por qualquer outro meio que possibilite o destinatário ter acesso ao arquivo digital. O DANFE não substitui o arquivo da Nota Fiscal Eletrônica em nenhuma hipótese.
Com o nosso projeto de integração NF-eDLL é possível transmitir os arquivos digitais via e-mail, para tanto basta seguir os passos na utilização do método:
Configure na chave de parâmetros nfe, no Regedit, os dados da conta do emissor:
- Proxy
No aplicativo de testes de funcionalidades, método enviar e-mail, informe os dados nos campos:
- Destinatário
- Assunto
- Path Anexo
Com esses passos é possível enviar arquivo digital da NF-e para o destinatário.
Para mais informações sobre nossos serviços você pode consultar o tópico Solicitando Suporte
Nos procure para qualquer informação adicional em um dos canais de atendimento disponível em nosso site.
chat | helpdesk | e-mail | whatsapp
Equipe ASX COMPONENTES