Guia de emissão em contingência

Na versão 2021/01 da MDFeLibrary, introduzimos novos recursos para facilitar a emissão do MDF-e em contingência. A seguir daremos mais detalhes sobre a emissão em contingência.

Processo em contingência

Nos casos de problemas técnicos, que impeçam a empresa de obter a autorização do MDF-e junto a SEFAZ, a mesma poderá decidir por utilizar o processo em contingência. Não é necessário autorização prévia do Fisco para entrada em contingência, porém conforme trecho do MOC 3.00a que segue abaixo, esta modalidade deve ser utilizada somente quando for realmente necessário:

"Todavia, alertamos que os MDF-e devem ser autorizadas (sic), preferencialmente, em tempo real ou previstos em legislação, e que as alternativas de contingência somente devem ser acionadas em situações extremas, que interfiram de forma significativa na atividade operacional do estabelecimento."

Para utilizar o processo em contingência, a empresa deve:

  • gerar o XML do MDF-e informando 2 para a tag tpEmis;
  • imprimir a DAMDFE em papel comum, identificando que o documento foi impresso em contingência com a seguinte informação “EMISSÂO EM CONTINGÊNCIA”, sendo obrigatório informar a chave de acesso dos documentos que agregam o MDF-e;
  • O MDF-e deve ser transmitido à SEFAZ assim que possível, tendo como prazo limite 168 horas a partir da emissão do documento.

Mais informações sobre o processo em contingência, podem ser encontradas no Manual de Orientações do Contribuinte do MDF-e, versão 3.00a

Implementando a emissão em contingência 

Atenção: importante ressaltar que se o XML for gerado para emissão em contingência, você deve garantir que seu sistema não permitará alterar as informações após a emissão.

Abaixo descrevemos como implementar e utilizar a geração e o envio posterior em contingência. Na tela "MDF-e - Manifesto do Documento Fiscal Eletrônico" da workspace de exemplo, você poderá encontrar as funcionalidades implementadas.

Usando como premissa que você já tenha um sistema com a MDFeLibrary implementada, e com a versão 2021/01 ou superior, criaremos dois botões, um para a geração e outro para o envio conforme imagem abaixo.

MDFeUlilizacaoContingencia1

No botão de geração, pode ser executada a função MDFeRecepcao que já está sendo utilizada na sua aplicação para a geração e envio em modo normal, porém é necessário atentar-se para o novo parâmetro {bNaoEnviar}. Este novo parâmetro deve ser informado como True, caso contrário, a função MDFeRecepcao irá gerar e enviar o XML para a SEFAZ.

Abaixo segue trecho com a implementação do novo parâmetro {bNaoEnviar}:

MDFeUlilizacaoContingencia2

Além do parâmetro {bNaoEnviar}, é necessário que a tag "tpEmis" seja igual a 2 para que o webservice da SEFAZ identifique que é um processo em contingência, conforme ilustrado abaixo.

 MDFeUlilizacaoContingencia4

Após a geração do XML no local indicado pelo parâmetro {sArquivoXML}, ele poderá ser impresso.

A partir do momento que o XML foi gerado, é muito importante que o sistema garanta que as informações não sejam mais alteradas, pois elas serão utilizadas quando o XML for enviado para a SEFAZ.

Para realizar o envio para a SEFAZ, devemos utilizar a função MDFeEnviarXML, informando os seguintes campos do parâmetro vParams:

  • {sArquivoEnviar}”: é o caminho completo incluindo o nome do arquivo XML que será enviado;
  • {sArquivoXMLAutorizado}”: é o caminho completo do arquivo ou o caminho do diretório onde será salvo o arquivo XML autorizado, quando enviado com sucesso no modo síncrono. Quando for informado apenas o diretório, será utilizado como padrão o nome do arquivo utilizado no parâmetro {sArquivoEnviar}. Se o envio for feito de forma assíncrona, este parâmetro pode ser deixado em branco;
  • {bAssincrono}”: parâmetro opcional, que indica se o envio será realizado em modo assíncrono (True) ou síncrono (False), sendo que (False) é o valor padrão.

Consulte a documentação completa da função MDFeEnviarXML clicando aqui.

O retorno desta função é um inteiro, que quando for igual a 0 (zero), indica que o envio foi realizado com sucesso. Caso ocorra algum problema, o retorno será um número negativo.

Abaixo segue um trecho da implementação desta função. O código completo pode ser encontrado na workspace de exemplo da MDFeLibrary.

MDFeUlilizacaoContingencia3