O SanNFe é a aplicação responsável pela comunicação com os serviços disponibilizados pela Receita Estadual e Federal para emissão de "Nota Fiscal Eletrônica" (NF-e) e da "Nota Fiscal de Serviços Eletrônica (NFS-e)".
Todo serviço que é consumido pela aplicação, deve antes passar por uma validação; essa validação é executada pelo SanNFe antes da execução do serviço.
NF-e
Entende-se por Nota Fiscal Eletrônica um documento de existência exclusivamente digital, emitido e armazenado eletronicamente, com intuito de documentar uma operação de circulação de mercadoria, ocorrida entre as partes, cuja validade jurídica é garantida pela assinatura digital do emitente e recepção, pelo fisco, antes da ocorrência do fato gerador.
NFS-e
A Nota Fiscal de Serviços Eletrônica (NFS-e) é um documento de existência digital, gerado e armazenado eletronicamente em Ambiente Nacional pela RFB, pela prefeitura ou por outra entidade conveniada, para documentar as operações de prestação de serviços.
O projeto de Nota Fiscal de Serviços Eletrônica (NFS-e) é desenvolvido de forma integrada, pela Receita Federal do Brasil (RFB) e Associação Brasileira das Secretarias de Finanças das Capitais (Abrasf), atendendo o Protocolo de Cooperação ENAT nº 02, de 7 de dezembro de 2007, que atribuiu a coordenação e a responsabilidade pelo desenvolvimento e implantação do Projeto da NFS-e.
A Nota Fiscal de Serviços Eletrônica (NFS-e) é habilitada pelo opcional: Nota Fiscal de Serviço Eletrônica (NFS-e).
Possíveis cenários de instalação do SanNFe:
Quando o sistema precisa emitir NF-e ou NFS-e, ele precisa obrigatoriamente que o SanNFe seja instalado.
Empresas onde se emitem apenas NFe
•Somente pela linha gráfica (Mitra/G1, etc)
•Somente pela linha /W
•Misto (pode-se usar linha /W ou gráfica)
Empresas onde se emitem apenas NFSe
•Somente pela linha /W
•Misto (pode-se usar linha /W ou gráfica)
Empresas onde se emitem tanto NFe quanto NFSe
•Somente pela linha gráfica (Mitra/G1, etc)
•Somente pela linha /W
•Misto (pode-se usar linha /W ou gráfica)
O SanNFe deve estar instalado no servidor de aplicações que roda o Sankhya-W, na pasta de usuário do sistema operacional que executa a aplicação. Essa pasta irá variar dependendo da versão do sistema operacional. No Linux a pasta é “home/mgeweb”, no Windows sugerimos utilizar a pasta “X:\SanNFe“, onde “X” será o drive a ser utilizado.
Instalação do SanNFe - Linux
O arquivo de "Instalação" do SanNFe deve ser transferido para o servidor por algum aplicativo como Winscp, FTP, SCP ou qualquer outro aplicativo de transferência de arquivo.
Para atualizar/instalar o SanNFe será preciso ter acesso ao servidor Linux, pelo console ou por algum cliente de SSH, como o Putty.
Caso o servidor não tenha o serviço SSH em execução, a atualização/instalação deve ser realizada na própria máquina.
No exemplo anterior o programa utilizado para acessar o servidor foi o Putty, e a instalação/atualização do SanNFe foi transferido, para o servidor "serverjava".
Vejamos:
O comando "ls" listará os arquivos (pastas) do diretório corrente, veja imagens a seguir:
No caso de uma atualização, antes de fazer o backup da instalação atual, o SanNFe deve ser finalizado através do comando "./sannfe-service stop", como pode-se visualizar na imagem a seguir:
O Backup da versão atual, neste exemplo de atualização, será o "SanNFe-ant3", pois pode-se visualizar as pastas "SanNFe-ant" e "SanNFe-ant2" de versões anteriores.
O comando "tar -xzvf SanNFe_unix_2_0b38.tar.gz" será utilizado pra descompactar a Instalação/Atualização. Esse comando criará a pasta "SanNFe" com a nova versão.
Na atualização, depois de descompactada a instalação, os arquivos de "Configurações" e "Certificados" relacionados aos registros da versão anterior deverão ser copiados para a nova versão.
Os "url-webservices" de uma versão para outra não devem ser copiados.
Como Inicializar o Serviço no Linux
Após a instalação do SanNFe-Linux, dentro do diretório do SanNFe, o serviço será inicializado pelo comando: ./sannfe-service start como pode-se visualizar na imagem abaixo:
Instalação SanNFe – Windows
Essa instalação deve ser feita no diretório onde foi instalado o SankhyaW (JBoss).
O SanNFe é disponibilizado em arquivo compactado, então, bastará descompactá-lo. No Windows sugerimos utilizar a pasta “X:\Users\Nome do Usuário\SanNFe“, onde “X” será o drive a ser utilizado.
Exemplo: “C:\Users\Joao\SanNFe“.
Como Inicializar o Serviço no Windows
Após a instalação do SanNFe – Windows, o serviço poderá ser inicializado de três formas:
1)Sannfe-console.exe = esta opção é mais utilizada para teste e abrirá uma janela de console no DOS, onde o usuário poderá verificar possíveis erros. O ícone do SanNFe será exibido na Barra de Ferramentas.
2)SanNFe-Win.exe = esta opção de inicialização é semelhante a anterior, contudo, nenhum console é apresentado ao usuário e o ícone do SanNFe será exibido diretamente na Barra de Ferramentas.
3)SanNFe-service.exe = esta forma de inicialização do serviço poderá ser utilizada quando se realizar a instalação do SanNFe, ao invés de utilizar o arquivo de instalação compactado. É a forma de inicialização mais utilizada pelos usuários. Através desta opção o SanNFe será inicializado como um serviço do Windows, e poderá ser inicializado automaticamente juntamente ao Windows, se devidamente configurado como mostram as imagens abaixo:
Importação do Certificado da Empresa
Para a "Instalação" tanto no Linux quanto no Windows, o usuário deverá importar o "Certificado da Empresa". Isto será feito pelo menu Comercial > Configuração > Console NFe. Para acessar o Console o usuário deverá digitar na barra de endereços do browser o endereço contendo o IP da máquina (servidor SanNFe) e a Porta seguidos de NFE.html, conforme exemplo: http://IPdoServidorSannfe:porta/NFE.html.
Importante:
Com a finalidade de aumentar a segurança e evitar a utilização de certificados digitais em ambientes de produção, existe no exportador de registro de certificados do sannfe a opção para definir em qual ambiente (1-Produção; 2-Homologação e 3-Ambos) os certificados exportados poderão ser utilizados.
Também há uma opção para definir uma data de validade para o registro do certificado exportado. A configuração de ambiente e data de validade é única para todos os registros exportados. É importante comentar que essa data de validade do registro de certificados exportados não tem relação e não é a mesma da data de expiração do certificado digital, é somente a data de validade de utilização do certificado digital no SanNFe.
Exemplo: Cliente X no dia 15/03/2015 exporta o certificado para realização de testes na Sankhya-W. O cliente então configura na exportação que o certificado poderá ser usado apenas em ambiente de homologação e no máximo até o dia 18/03/2015.
Na Exportação
superior a “Maior Data de Validade” calculada para o certificado(s) selecionado(s). O cálculo de “Maior Data de Validade” é efetuado da seguinte forma:
1 - Certificados com somente data de expiração: Será utilizada a maior data de expiração do(s) certificado(s) selecionado(s). Exemplo de certificados que podem ser encontrados nesta situação: Certificados que foram adicionados no SanNFe e que não passaram pelo processo de importação/exportação.
2 - Certificados com data de expiração e data de validade: Será utilizada a maior data de validade do(s) certificado(s) selecionado(s), ignorando a data de expiração.
No caso em que os certificados escolhidos já passaram pelo processo de exportação e importação utilizando uma data de validade e ambiente, a data a ser verificada no processo de exportação será a data de validade e não a data de expiração do(s) certificado(s). A finalidade para esse comportamento é de evitar que certificados sejam repassados aumentando os direitos recebidos (importados). O mesmo é valido para ambiente que somente poderá ser alterado para certificado(s) com ambiente 3 (1-Produção;2-Homologação;3-Ambos).
Validações:
1) Consta no SanNFe um certificado com data de expiração 01/01/2015, data de validade 20/08/2014 e ambiente = Homologação. Neste caso, quando o usuário for exportá-lo novamente, o sistema levará em consideração para validação a data de validade existente, ignorando assim, a data de expiração. OBS: Não é permitido informar uma data de validade superior a já existente.
2) Constam no SanNFe cinco certificados com datas de expiração diversas e as seguintes datas de validade: 01/05/2015, 25/05/2015, 22/06/2015, 15/09/2015 e 10/12/2015. Quando o usuário selecionar os certificados e solicitar a exportação, a data a ser informada não poderá ser superior a maior data de validade dentre os certificados selecionados, que no caso é 10/12/2015. Se o usuário informar, por exemplo, uma data de validade superior a esta, será alertado com a seguinte mensagem: A data de validade xx/xx/xxxx 00:00 não pode ser superior a maior data de expiração/validade do(s) certificado(s) selecionados 10/12/2015. OBS: Na própria tela já é apresentada a maior data limite seguindo as validações dos exemplos 1 e 2.
3) Caso o usuário tente exportar como PRODUÇÃO (por exemplo, pois a mesma validação também é válida para Homologação) um certificado que já tenha sido importado para uso somente em ambiente de Homologação, o mesmo conseguirá exportá-lo e importá-lo normalmente, mas ao tentar utilizá-lo como PRODUÇÃO, o sistema não permitirá e emitirá a seguinte mensagem: O certificado digital referente ao CNPJ: xxxxxxxxxxx não pode ser utilizado nesse ambiente: 1-Produção.
3.1: A finalidade para esse comportamento é de evitar que certificados sejam repassados aumentando os direitos recebidos (importados), ou seja, se o usuário recebeu um certificado o qual pode utilizá-lo somente em ambiente de Homologação, não faz sentido ele conseguir exportar e utilizar este mesmo certificado em ambiente de produção, por isso ele consegue exportá-lo, mas não consegue utilizá-lo.
3.2: Se o usuário possui um certificado o qual havia sido exportado como AMBOS, isso significa que o mesmo conseguirá utilizá-lo em ambiente de homologação e em ambiente de produção. Caso seja necessário exportar este certificado novamente, o usuário terá a opção de exportá-lo em PRODUÇÃO, HOMOLOGAÇÃO E AMBOS, mas se exportar somente em produção, ou somente em homologação, conseguirá utilizá-lo somente no ambiente exportado.
4) Caso o usuário tente exportar um certificado (independente do ambiente) com uma data de validade para uso no SanNFe inferior a data atual, será alertado com a seguinte mensagem: A data de validade não pode ser inferior a data atual.
Na Importação
•O sistema não irá permitir a importação de certificados que já estejam com a sua data de validade expirada. Exemplo: O usuário exportou um certificado com data de validade até 20/03/2012 e tentou importá-lo no dia 25/03/2012. Ao tentar realizar esta operação o sistema emitirá uma mensagem de erro.
•Na utilização do certificado importado, será feita validação em relação à data de validade de utilização do certificado no SanNFe.
Na tela Console NFe o usuário deverá informar:
Aba Registro de Certificados
Certificado: o SanNFe suporta apenas certificado tipo A1 (PKCS nº 12, *.pfx). O do tipo A3 não é suportado.
O Certificado do tipo A1 é gerado e armazenado em um computador pessoal através do navegador de Internet, dispensando o uso de cartões inteligentes ou tokens. Para maior segurança, no momento da emissão do certificado, deve-se optar por protegê-lo com uma senha de acesso. Adicionalmente, recomenda-se que um único computador armazene seu Certificado Digital e que seja criada apenas uma cópia de segurança. Este certificado digital, geralmente, possui validade de um ano. Essa cópia de segurança do certificado será utilizada usuário para inseri-lo no SanNFe.
Para realizar essa Exportação do Certificado, o usuário deverá seguir os passos abaixo, usando, por exemplo, o navegador Internet Explorer:
1 – Abrir o Microsoft Internet Explorer;
2 – Clicar no menu "Ferramentas" (Tools), localizado na parte superior da janela do Internet Explorer. Em seguida clicar no item "Opções da Internet" (Internet Options);
3 – Na janela "Opções da Internet" (Internet Options) clicar na guia "Conteúdo" (Content). Esta guia fica localizada na parte superior da janela.
4 – Na guia "Conteúdo" (Content) clicar no botão "Certificados" (Certificates). Este botão fica localizado no meio da janela.
5 – Será exibido o "Gerenciador de certificados" (Manager Certificates) do Internet Explorer. O usuário deverá verificar se o seu certificado é exibido na guia "Pessoal" (Personal).
6 – Ao clicar no botão "Exportar" (Export) será exibido um assistente conforme a imagem abaixo. Clique no botão "Avançar" (Next).
7 – Na etapa seguinte selecionar a opção "Sim, exportar a chave particular" (Yes, export the private key) e clicar no botão "Avançar" (Next).
8 – Na etapa abaixo, é aconselhável que o usuário exporte todos os certificados pertencentes à cadeia de certificação. Para isto, selecionar a opção "Incluir todos os certificados no caminho de certificação". Clicar no botão "Avançar".
9 – Na janela "Senha de proteção para chaves particulares" digitar uma senha para a cópia de segurança. Após digitar as senhas, confirmá-las no campo "Confirmar senha" (Confirm Password).
10 – Na janela "Nome do arquivo de exportação" clicar no botão "Procurar" (Browser). Desta forma, será possível escolher o local onde a cópia de segurança será salva assim como digitar um nome para o arquivo.
11 – Na janela "Salvar como" (Save as) escolher o local onde será salva a cópia de segurança e também o nome para o arquivo. Após definir ambos, clicar no botão "Salvar" (Save).
12 – A última etapa do "Assistente para exportação de certificados", exibe as configurações selecionadas pelo usuário. Clica-se no botão "Concluir" (Finish) para finalizar.
13 – Será exibido o alerta "Um aplicativo está solicitando o acesso a um item protegido". Clicar no botão "Ok".
14 – Por fim, clica-se no botão "Ok" conforme a imagem abaixo.
Voltando à tela "Console NFe > aba Registro de Certificados", informar:
CNPJ/e-CPF: Informa-se o CNPJ da empresa; o e-CPF é utilizado em algumas situações para envio de Nota Fiscal de Serviço Eletrônica, NFS-e. Exemplo: A prefeitura da cidade de Aparecida exige e-CPF (CPF digital). Já as demais prefeituras homologadas para emitir NFS-e exigem o e-CNPJ (CNPJ digital).
Nota: o e-CPF não pode ser utilizado para a NF-e; já o e-CNPJ pode, no entanto, não é o mais indicado. O ideal é utilizar um e-CNPJ, a ser emitido especificamente para o processo de assinatura de NF-e.
Estado: UF da empresa.
Senha: Fornecida pela certificadora.
Informações do Certificado
Após preencher os campos obrigatórios clicar em "Salvar o Registro".
Aba Status do Serviço
Para testar se o serviço esta funcionando corretamente para o CNPJ/Certificado cadastrado, deve-se acessar esta aba, selecionar o CNPJ da Empresa previamente cadastrada conforme as instruções anteriores, informar sua UF, escolher o ambiente do certificado (Produção ou Homologação), definir o ambiente de envio e clicar-se no botão "Testar"; o sistema efetuará uma consulta sobre a disponibilidade do serviço junto ao ambiente de envio escolhido, apresentando uma mensagem de retorno no campo "Log", caso a operação esteja "Ok" ou não.
Vale ressaltar que esta mensagem é apenas do Servidor de NF-e onde serão cadastradas as Empresas/CNPJ e seus certificados, sendo que para o perfeito funcionamento da integração entre o Sistema e a SEFAZ, todas as configurações dos campos citados no manual da Nota Fiscal Eletrônica referente ao Sistema, deverão estar devidamente configurados/cadastrados.
A partir da versão 2.3b30, além da validação sobre a execução do serviço, ao acionar o botão "Testar" nesta tela, será apresentado o status e descrição da informação retornada pela SEFAZ, como nota-se a seguir:
Senha do SanNFE
Atualmente o sistema conta com um mecanismo que ao ser efetuada a atualização do SanNFe, não será necessário a criação de uma nova senha.
Ao ser executado o arquivo "SanNFe.win" (em destaque na imagem acima), rodando-se a aplicação o sistema irá verificar se existe na pasta home da máquina do usuário, uma outra pasta denominada ".sannfe_conf" e dentro dela, o arquivo "senha_sannfe.txt". Caso exista, o sistema irá considerar a senha salva nesse arquivo para acessar o SanNFe.
Se o arquivo especificado não existir, para acessar o SanNFe o usuário precisará informar a senha que está salva no arquivo "../conf/san-nfe.conf"; vale salientar que a senha fica salva nesse arquivo de forma criptografada, conforme exemplo abaixo:
senha.admin=8O1ID3DuNlU=
O trecho "senha.admin" não faz parte da senha. É uma propriedade que o SanNFe utiliza para uso interno.
Na inicialização do SanNFe, se o arquivo não existia, ele será criado com a mesma senha salva no arquivo "../conf/san-nfe.conf" do SanNFe.
Vejamos um Caso de Uso como exemplo:
O cliente não possui o arquivo "senha_sannfe.txt" na pasta ".sannfe_conf" localizado de sua pasta home. Depois que ele executar o SanNFe, (com este novo comportamento) esse arquivo será criado com a senha que está definida no arquivo "../conf/san-nfe.conf". Supondo que essa senha seja 123456, quando usuário precisar atualizar o SanNFe, esse diretório não será excluído. Ao trocar seu SanNFe e tentar o acesso pela primeira vez, a senha salva no arquivo "../conf/san-nfe.conf" será a senha padrão "admin", contudo na inicialização o sistema irá identificar que o arquivo "sannfe_conf" existe e a senha que estará salva é a utilizada anteriormente, "123456", portanto para obter acesso, o usuário precisará informar a senha 123456.
Lembrando que neste exemplo acima citado, quando usuário acessar o sistema com a senha 123456, o arquivo "../conf/san-nfe.conf" do SanNFe não será alterado. Ele ainda estará salvo com a senha "admin". Esse arquivo só será modificado, caso o usuário altere a senha pelo console; deste modo, tanto esse arquivo quanto o arquivo "sannfe_conf.txt" serão alterados.
Instalação para Nota Fiscal Eletrônica de Serviços
A Nota Fiscal Eletrônica de Serviço, está disponível a partir da versão 2.3.0 do Sankhya-W, a instalação do aplicativo responsável pela comunicação com os serviços disponibilizados para emissão de "Nota Fiscal Eletrônica de Serviços" (NFS-e) consiste resumidamente, em dois passos:
1. Instalação do aplicativo (Nota Fiscal Eletrônica de Serviço) na pasta do Usuário
Instalação do SanNFe
Instalação do Console para NFS-e.
A inclusão do SanNFe deve ser feita no diretório do usuário que manipula o Sankhya-W.
O SanNFe é disponibilizado em arquivo compactado, então, bastará descompactar no diretório do usuário.
No Linux utiliza-se o usuário padrão mgeweb, portanto, o diretório no qual seria descompactada a aplicação, seria o "/home/mgeweb".
Já no Windows seria "c:\Documents and Settings\UsuarioQueAdministraOSankhyaW".
O arquivo compactado da versão Linux, é distribuído no formato tar.gz e para a descompactação, após ter copiado o arquivo para a pasta "/home/mgeweb", bastará utilizar o comando "tar", com os devidos parâmetros para descompactação: x = extrair; z = gzip; v = exibe informações, f = arquivo (próximo parâmetro).
Exemplo:
A versão para Windows é disponibilizada em formato "zip". Bastará ao usuário utilizar o descompactador de sua preferência, e executar a extração diretamente para a pasta onde foi instalado o Sankhya-W.
2. Instalação do Sankhya-W para utilização do console NFS-e
O console da NFS-e está contido dentro do Sankhya-W, portanto, bastará solicitar a atualização do Sankhya-W para a versão 2.3.0 ou superior.
Vale ressaltar que o pacote de atualização é gerado conforme o(s) contrato(s) do cliente e os produtos contidos no(s) contrato(s).
2.1 O Cliente NÃO possui o Sankhya-W em contrato
Quando o cliente adquire o console NFS-e, mas não o Sankhya-W, é feita então uma instalação personalizada do Sankhya-W, para atender a NFSe.
Essa atualização usa um pacote de bibliotecas e recursos minimizados, contendo apenas o necessário para o Console NFSe, visando otimizar a performance no servidor de aplicações JBoss.
Observação:
O Jboss utilizado nessa instalação "mínima" é um JBoss versão 4.0.5, customizado pela Sankhya.
NÃO DEVE SER UTILIZADO OUTRO PARA ESTE TIPO DE INSTALAÇÃO.
Apesar do pacote (arquivo.pkg) e o JBoss serem específicos para essa instalação, o processo é o mesmo contido no manual de Instalação/Atualização do SankhyaW, que está disponível na área restrita do site da Sankhya.
Configurações
Existem algumas configurações para melhorar o desempenho de envio de Notas Fiscais Eletrônicas. Abaixo, algumas dessas configurações que devem ser realizadas no arquivo "san-nfe.conf" localizado na pasta "conf" do diretório onde foi instalado o SanNFe:
Quando o parâmetro "Pasta de instalação do SanNFe - SANNFEINSTDIR" estiver configurado com algum diretório e neste não tiver um sannfe instalado ou se estiver instalado e for inválido (ou seja, o sannfe não possui as pastas "conf", "certificado", "schemas") o sistema emitirá a seguinte mensagem:
"Problemas na instalação do SanNFe. Diretório 'C:\' informado no parâmetro SANNFEINSTDIR não é uma instalação válida do SanNFe."
Em um primeiro cenário:
tempo.max.execucoes.webservice=30000 (30 segundos)
numero.tentativas.execucoes.webservice=2
tempo.espera.execucoes.webservice=500 (não pode ser menor que 500) 1/2 segundo
As configurações são:
tempo.max.execucoes.webservice
empo máximo para execução do webservice
padrão = 30000 (30 segundos)
numero.tentativas.execucoes.webservice
número máximo de tentativas de execuções do webservices
valor padrão = 2
tempo.espera.execucoes.webservice
tempo de espera entre execuções do webservice
padrão = 500 (metade de um segundo)
Essas 3 parametrizações poderão ser utilizadas em conjunto:
Como exemplo, considere os seguintes valores:
tempo.max.execucoes.webservice=30000
numero.tentativas.execucoes.webservice=2
tempo.espera.execucoes.webservice=500
No caso acima se a execução de algum serviço falhar, o SanNFe tentará executar o mesmo serviço 2 vezes, considerando o tempo máximo de 30 segundos. Entre cada tentativa aguardará 0,5 segundo.
Exemplo de caso considerando os valores configurados anteriormente:
O SanNFe executou o serviço de envio de lote de uma NF-e, e ao executar esse serviço ocorreu um erro qualquer. O tempo gasto até ocorrer o erro, foi de 10 segundos. Nesse caso, ele vai entrar em espera por aproximadamente 0,5 segundo. Total de espera, 10 + 0,5. Como 10,5 segundos são menores que 30 segundos e esta é a primeira execução, o serviço foi executado novamente.
Na segunda execução ocorreu o erro novamente em menos de 5 segundos, totalizando 15,5 segundos (somando com a execução anterior), esse valor ainda esta abaixo dos 30 segundos que é o máximo. Contudo, já se chegou ao máximo de tentativas que é de 2 (duas). Dessa forma não será mais executado nenhum serviço.
Segundo cenário:
tempo.max.execucoes.webservice=40000
numero.tentativas.execucoes.webservice=5
tempo.espera.execucoes.webservice=500
Levando em consideração que cada execução leva 10 segundos até ocorrer o erro. O SanNFe vai tentar executar o serviço aproximadamente 3 vezes.
Conexão com Internet
O SanNFe necessita de conexão com a internet para consumir os serviços da Receita Estadual ou Federal. Por esse motivo devem-se realizar testes de conectividade para evitar problemas na execução dos serviços.
A lista de URL's informada no "Console" tem por objetivo validar se a máquina na qual o SanNFe está instalado, possui conexão com a Internet.
Na instalação do SanNFe, essa lista de URL's vem vazia, nesse caso o SanNFe não executa a validação da conexão, antes de executar algum serviço. Por isso, quando a máquina não tem conexão com a Internet, irá ocorrer falha ao executar o serviço, ou seja, na emissão da Nota pelo MGE, Mitra, Jiva ou Sankhya-W.
Quando não configurado o teste, se ocorrer o erro na execução, o SanNFe fará o teste de conectividade, a fim de facilitar a detecção de problemas, utilizando para isto a URL: http://www.receita.fazenda.gov.br. Quando não há conexão, será incluso na mensagem de erro, que a possível causa pode ser a falta de conexão.
Quando é informada alguma URL da lista, o SanNFe passa a validar a conexão por meio dessa URL. O teste de conexão consiste num acesso bem sucedido ao site endereçado pela URL. Em caso de falha, não será permitido à execução de nenhum serviço. Caso exista mais de uma URL na lista, a aplicação considera o teste bem sucedido para primeira URL acessada.
Configurações de Proxy
O SanNFe apresenta suporte a utilização do "Proxy". Para utilizá-lo é necessário efetuar sua configuração em: Comercial > Configuração > Console NFe > Aba Administração.
Habilitar uso do Proxy: Marcando-se este campo, indica-se que a empresa utiliza "Proxy" no acesso a Internet.
Endereço: Deve-se informar o "IP" ou endereço do "Servidor Proxy".
Porta: Preenche-se aqui, a porta utilizada no "Servidor Proxy".
Não utilizar Proxy para os endereços: Informar os endereços que não serão considerados na utilização do "Proxy".
Os campos da configuração do "Proxy" somente serão salvos, quando acionado o botão "Salvar".
As informações de configuração de "Proxy" são salvas no arquivo de configuração do SanNFe por meio das seguintes propriedades (seguindo a mesma ordem dos campos apresentados na imagem acima):
• proxy.habilitado
• proxy.endereco
• proxy.porta
• sem.proxy.para
A configuração de "Proxy" tem impacto em toda a parte de comunicação externa do SanNFe, por isso, uma configuração incorreta do "Proxy", como "porta" ou "endereço", fará com que o SanNFe pare de funcionar, não sendo possível executar nenhum serviço da "SEFAZ/Prefeitura" bem como qualquer teste de "Conexão com a Internet" configurado na aba "Status do Serviço".
Para saber se as configurações estão corretas, deve-se ir à Aba "Status do Serviço", na opção de "Configuração e teste de conectividade com a Internet" e informar endereços para análise.
Vejamos a seguir algumas configurações e dados que são técnicos, e devem ser analisadas pelo pessoal da área de "TI" da empresa:
Detalhes de Configuração do Proxy
1. Proxy sem autenticação - com liberação para acesso por rede; essa configuração permite que qualquer máquina que esteja na mesma rede do servidor "Proxy", tenha acesso ao mesmo.
Juntamente com a instalação do squid, é disponibilizado um arquivo padrão de configuração /etc/squid/squid.conf. As configurações devem ser realizadas tendo por base esse arquivo. Para incluir a configuração de rede inclui-se a ACL: acl localnet src 192.168.56.0/24; essa ACL permite acesso a qualquer máquina que pertença a rede 192.168.56.x
Em seguida é necessário atribuir acesso a acl localnet com a seguinte linha: http_access allow localnet.
Observação: para que sejam permitidas conexões HTTPS pelo "Proxy", é necessário existir a linha: http_access deny CONNECT !SSL_ports. Essa linha vem por padrão no arquivo de instalação do Squid.
2. Proxy com autenticação – quando o "Proxy" é configurado para solicitar a autenticação de usuários, é necessário liberar as URL's utilizadas pelo SanNFe, para que não sejam solicitadas autenticações para as mesmas. Para isso, é necessário criar uma ACL e atribuir acesso a esta antes da instrução de autenticação do usuário no arquivo de configuração.
Com o "Proxy" configurado para solicitar a autenticação do usuário, inclui-se a ACL: acl govBr dstdomain .gov.br no arquivo de configuração. Antes da linha que libera o acesso para usuários autenticados, deve ser incluída a linha: http_access allow govBr.
Essa configuração permite que seja acessado qualquer URL que tenha como final no seu domínio gov.br . Essa regra fará com que todos os serviços de NF-e sejam executados.
Essa mesma regra deve ser considerada para as URL's de NFS-e que não tem o mesmo padrão das URL's de NF-e.
Para obter a lista completa de URL's que devem ser liberadas para o SanNFe, basta editar os arquivos: conf/url-webservices.xml e conf/provedores-nfse.xml.
Características do painel de testes
Para adicionar uma URL na lista, na aba Status do Seviço, informa-se um endereço válido. Por exemplo, http://www.sankhya.com.br.
Em seguida, seleciona-se o botão "Adicionar" (+) para incluí-la na lista;
Depois de adicionadas as URL's, é necessário acionar o botão "Salvar Lista"; esse botão irá salvar a lista de URL's no arquivo de configuração do SanNFe (conf/san-nfe.conf);
O botão "Testar" efetua o teste de conexão para todas as URL's incluídas na lista, um teste bem sucedido marca a URL com o ícone na cor verde, caso contrário, um ícone na cor vermelha é apresentado.
A lista de URL é armazenada no arquivo de configuração do SanNFe por meio da propriedade: internet.test.urls=<lista de URLs>, onde cada URL é separada por vírgula.
Por exemplo:
internet.test.urls=http://www.sankhya.com.br,http://www.jiva.com.br
As URL's para execução de serviços Web (webServices) executados pelo SanNFe diferem de estado para estado. Para que o usuário não tenha que liberar acesso completo da máquina, basta liberar por meio de NAT (Network Address Translation), os endereços referentes ao estado (UF) que será emitido a NFe para a porta 443 (HTTPS).
Como exemplo as URLs dos webservices para o estado de MG são:
https://nfe.fazenda.mg.gov.br/nfe/services/NfeRecepcao
https://nfe.fazenda.mg.gov.br/nfe/services/NfeRetRecepcao
https://nfe.fazenda.mg.gov.br/nfe/services/NfeCancelamento
https://nfe.fazenda.mg.gov.br/nfe/services/NfeInutilizacao
https://nfe.fazenda.mg.gov.br/nfe/services/NfeConsulta
https://nfe.fazenda.mg.gov.br/nfe/services/NfeStatusServico
O endereço a liberar deve ser: nfe.fazenda.mg.gov.br para a porta 443.
A lista dos endereços para os outros estados podem ser encontradas no arquivo de urls conf/url-webservices.xml ou no site da Receita Federal http://www.nfe.fazenda.gov.br/portal/Default.aspx.
Nota: o SanNFe conta com as URL's da NF-e e NFC-e 4.0 (homologação e produção) para os estados do Ceará e Pernambuco.
Atualização de URLs
A atualização de URLs será realizada a cada 24 horas ou quando houver algum erro durante a requisição para um webservice. Ocorrendo algum erro, verifica-se se a última tentativa de atualização possui menos do que 30 minutos; caso possua, não será feita uma nova tentativa de atualização.
Observação: sempre que for efetuada a atualização de URLs, as que já haviam sido carregadas anteriormente serão removidas e será realizado o carregamento das novas no SanNFe.
Nota: esta atualização também poderá ser realizada na tela Console NFe por meio do botão "Atualizar URL's" localizado no alto da tela.
Observação: durante o processo de atualização de URLs de NFSe, serão recarregados os schemas. Desta forma, se no arquivo de URLs de NFSe existir um novo schema que não encontra-se no pacote embarcado do SanNFe, ocorrerá um erro durante o recarregamento de URLs e será necessário atualizar o pacote do Sankhya-W para que estas funcionem de forma correta.
Schemas
no SanNFe
A troca de mensagens entre o SanNFe e a SEFAZ, é realizada por meio de arquivos XML's, portanto a validação é aplicada a esses arquivos, por meio de definições contidas em arquivos do tipo XSD, denominados de schemas. Os shemas são disponibilizados e versionados pela Receita Federal.
O SanNFe permite que os schemas disponibilizados pela SEFAZ possam ser configurados sem que hajam alterações na aplicação, sendo assim, a tarefa de manter a aplicação com os schemas atualizados, fica sob responsabilidade da empresa ou monitores.
A seguir são apresentados os passos para atualizar os schemas para o SanNFe:
1- Realizar download do arquivo compactado referente à versão que se deseja atualizar no site da Receita Federal: http://www.nfe.fazenda.gov.br/portal/Default.aspx
Selecionar a opção do menu: Legislação e Documentos > Schemas XML;
Serão apresentadas várias versões, onde baixa-se a versão desejada.
2- Descompactar o arquivo baixado no passo 1, no diretório schemas do SanNFe ([diretório de instalação do SanNFe]\schemas);
3- Alterar o arquivo de configuração para que seja utilizado o novo schema; o arquivo de configuração esta localizado na pasta conf ([diretório de instalação do SanNFe]\conf); alterar a propriedade: versao.schemas= para o nome do diretório do novo schema;
4- Reinicializar o SanNFe;
4.1 – No Sankhya-W:
4.1.1 – Selecionar a opção de menu Comercial > Configuração > Console NFe;
4.1.2 – Selecionar a opção "Forçar reinicialização"
4.2 – MGE/Mitra/Jiva
4.2.1 – É necessário parar o SanNFe e iniciá-lo novamente;
Como exemplo, a seguir, serão seguidos os passos apresentados acima, com exemplos de atualização do schema PL_005f:
1- Acessado o site foi baixado o arquivo: PL_005f.zip
2- Depois de descompactado foi criado a pasta PL_005f; essa pasta foi copiada para dentro da pasta schemas do sannfe;
3- A propriedade no arquivo de configuração ficou da seguinte forma: versão.schemas=PL_005f
4- Feito isso, reinicia-se o SanNFe, e ao acessar o console de gerenciamento aba Administração será apresentada a versão do schema utilizada pelo SanNFe.
Observação: deve-se estar atendo ao baixar e configurar uma nova versão dos schemas no SanNFe. Ao baixar uma nova versão o usuário deve observar se esta não se trata apenas de um release do schema, pois a SEFAZ não inclui todos os arquivos, em um release, mas somente os que tiveram correções. Arquivos de schemas apenas de release fazem com que ocorram erros no SanNFe, pois o mesmo os considera incompletos.
Os schemas relacionados a NFS-e (Nota Fiscal Eletrônica de Serviço) são definidos por outra forma, por isso, ao atualizar os schemas da NFe descritos neste documento, não as funcionalidades da NFS-e não serão afetadas.
Envio de Eventos
O SanNFe permite o envio de eventos, como a "Carta de Correção Eletrônica", por exemplo.
A implementação desse envio segue o mesmo padrão dos serviços já disponibilizado pela SEFAZ, sendo necessário um novo diretório de schemas, e a inclusão de uma nova entrada no arquivo de configuração de urls-webservices.xml.
A versão de desenvolvimento do SanNFe que deverá ser disponibilizada, junto com a versão 2.9.0 do Sankhya-W é a 2.6. O SanNFe 2.6 já possui em sua instalação o diretório Cce_v1.00a, que é a versão vigente do schemas.
A versão do schemas de "Carta de Correção Eletrônica" pode ser configurado no arquivo san-nfe.conf no diretório conf na instalação do SanNFe. A propriedade é:
diretorio.schemas.carta.correcao=<diretório>
Quando não informado a opção acima, o valor padrão será setado na inicialização do SanNFe.
O arquivo de configuração de URLs dos webservices também foi alterado para incluir o endereço do serviço de recepção de eventos.
As seguintes linhas foram incluídas para os serviços do estado de Santa Catarina:
<url webService="NfeRecepcaoEvento"
producao=""
homologacao="https://homologacao.nfe.sefazvirtual.rs.gov.br/ws/recepcaoevento/recepcaoevento.asmx" />
Atenção Consultores e Monitores: Por ser um serviço que ainda não entrou em produção até a data dessa implementação (17/08/2011), não foi disponibilizado o endereço de produção, por isso, fica na responsabilidade do cliente/monitor/consultor incluir esse endereço de produção quando divulgado pela Receita Estadual.
O envio de ‘Carta de Correção’ foi implementado seguindo os mesmos critérios pela Sefaz para a NFe, por isso, a mesma implementação efetuada e testada para o ambiente virtual, também pode ser utilizado para os outros estados.
Os endereços para os outros estados também devem ser incluídos pelo cliente/monitor/consultor.
(Veja detalhes da "Carta de Correção Eletrônica" no manual da NF-e Sankhya-W)
Validação da Versão do SanNFe
O sistema está apto a realizar a validação das versões do SanNFe, comparando-a com a versão do SanNFe embarcado no Sankhya-W. Esta validação irá ocorrer quando existir uma solicitação de qualquer serviço do SanNFe.
Quando o parâmetro "Ativa sannfe embarcado - ATVSANNFEEMB" estiver habilitado, será ativado o sanNFe embarcado. Caso seja necessário utilizar o sannfe já instalado na máquina, este parâmetro deverá encontrar-se desabilitado.
Nota: habilitando a chave de parâmetro ATVSANNFEEMB bem como seus respectivos certificados estiverem configurados, o sistema irá desconsiderar o parâmetro "Pasta de instalação do SanNFe - SANNFEINSTDIR". Por outro lado, se o parâmetro ATVSANNFEEMB encontrar-se desabilitado, o sistema buscará as informações do sannfe por meio da chave de parâmetro SANNFEINSTDIR.
Se a versão do SanNFe instalado na máquina, for menor que a versão do SanNFe embarcado no Sankhya-W, será apresentada a seguinte mensagem:
•"A versão do SanNFe instalada não é compatível com a versão do SanNFe do sistema. A versão esperada é 2.19 ou superior"
Esta mensagem será exibida no seguinte exemplo:
SanNFe Instalado >> SanNFe embarcado
2.16 2.17
2.18 2.19
O valor 2.19 da mensagem, se refere a versão que está embarcada no sistema, que pode ser também 2.18 ou 2.17; este trecho da mensagem será alterado de acordo com esse valor.
Nos casos em que a versão embarcada no Sankhya-W, for menor ou igual a do SanNFe instalado na máquina, nenhuma mensagem será exibida, e os serviços do SanNFe poderão ser utilizados normalmente.
Emulador
Caso necessário, os documentos fiscais eletrônicos correspondentes a NF-e 4.00 podem ser emitidos através do emulador. Para cada tipo de documento, o emulador é capaz de simular:
•Consulta Status Serviço;
•Consulta Situação Atual da Nota;
•Inutilização de numeração;
•Emissão Normal;
•Carta de Correção;
•Emissão em EPEC;
•Cancelamento.
Comentários
2 comentários
Numa instalação no CentOS 8, a liberação somente da porta do serviço, no caso 9090 não foi suficiente para que o serviço funcione 100%, é possível acessar via navegadoro servidor e efetuar todas as configurações, mas dentro da aplicação, no caso o MGE Comercial/Armazens ao tentar verificar o status do serviço, diz que este não está ativo, funcionando somente DESABILITANDO o firewall. Quais portas devem ser liberadas para que o mesmo funcione 100%?
Boa tarde Alber, tudo bem?
A comunicação do SanNFE é somente pelas portas 9090 e 2020, mais para evitar o bloqueio do Firewall é necessário realizar a liberação da raiz de todos os webservices Estaduais e Nacional encontradas no SanNFe\conf\url-webservices.xml (caso necessário)
Atenciosamente
Tiago Barbosa
Por favor, entre para comentar.