Recentemente, algumas Software Houses e Contribuintes têm recebido notificações do sistema de retaguarda da Secretaria da Fazenda (Sefaz) indicando que os cupons fiscais estão sendo enviados mais de uma vez. Esse problema geralmente ocorre devido a falhas de comunicação com o módulo (timeout), levando a aplicação a reenviar automaticamente o cupom fiscal ou até mesmo o reenvio manual. Este procedimento pode resultar em sérios problemas para os contribuintes, como duplicidade de registros e inconsistências fiscais.
Para evitar esses transtornos, a Sefaz recomenda a utilização de dois comandos essenciais:
ConsultarNumeroSessao : O equipamento retornará exatamente o valor da sessão consultada, esse comando geralmente é utilizado quando não se obteve resultado do processamento da requisição da sessão. O equipamento só retornará a ultima sessão consultada, caso haja outros comandos enviados entre a sessão e a consulta, será retornado 11003 (sessão não existe).
ConsultarUltimaSessaoFiscal: O Aplicativo Fiscal poderá solicitar a última sessão fiscal processada pelo Módulo Fiscal. O equipamento retornará exatamente o resultado da ultima sessão processada. (uma única vez).
Passos Recomendados
Implementação do Controle de Sessão: Certifique-se que a sua aplicação armazena o número da sessão de todos os cupons enviados.
Consulta Módulo Disponível: Outro comando importante é ConsultarSAT antes de iniciar um processo de venda, devemos consultar se a situação do módulo é igual 8000 | SAT em operação, pois o módulo pode estar ocupado com outro comando, caso ocupado não deve-se enviar o comando de venda no momento.
Implementação dos Comandos de Consulta: Certifique-se de que sua aplicação utilize os comandos ConsultarNumeroSessao e ConsultarUltimaSessaoFiscal para verificar o status das sessões e evitar reenvios desnecessários.
Gestão de Timeout: Revise a configuração de timeout e a lógica de reenvio da aplicação para garantir que, em caso de falha de comunicação, o sistema não crie novas sessões indiscriminadamente.
Monitoramento e Auditoria: Estabeleça processos de monitoramento e auditoria para identificar e corrigir rapidamente qualquer problema relacionado ao envio de cupons fiscais.
Orientações para Correção do Problema
1. Armazenamento do Número da Sessão
É fundamental que a aplicação, ao enviar um cupom fiscal, armazene o número da sessão correspondente. Este número é crucial para o controle e gerenciamento adequado dos cupons fiscais emitidos.
2. Reutilização do Número da Sessão
No caso de necessidade de reenvio do cupom fiscal, a aplicação deve tentar utilizar o mesmo número de sessão. Isso evita a criação de novos números de sessão a cada envio, o que pode gerar duplicidade e confusão nos registros.
no ACBrMonitor:
SAT.SetNumeroSessao(1234)
na ACBrLIB:
SAT_SetNumeroSessao(1234);
no componente:
<ACBrSAT>.OnGetNumeroSessao <<<< é necessário programar o evento
procedure TfmPrincipal.ACBrSAT1GetNumeroSessao(var NumeroSessao: Integer);
begin
NumeroSessao := 1234; // Random(999999);
end;
o valor 1234 é apenas um valor simbólico;
Caso deseje controlar a sessão : O Aplicativo Comercial deverá gerar um número de sessão aleatório de 6 dígitos que se não repita nas últimas 100 comunicações.
É crucial que Software Houses e Contribuintes estejam atentos às diretrizes da Sefaz para a correta emissão e reenvio de cupons fiscais. Utilizando adequadamente os comandos de consulta de sessão e gerenciando eficientemente os números de sessão, é possível evitar duplicidades e garantir a integridade dos registros fiscais.
Para mais informações e suporte, entre em contato com a Secretaria da Fazenda ou consulte a documentação oficial disponível no site da Sefaz.