2015
Testes de entrada em contingência – Integração via Web Service
23 de fevereiro de 2015Última atualização em: 31 de março, 2016
No módulo NFC-e da Plataforma InvoiCy é disponibilizada uma opção para que o usuário simule o ambiente de contingência para testar a sua aplicação. Esta opção deverá ser configurada por empresa, e é importante destacar que a mesma estará disponível apenas para o ambiente de homologação.
Para configurar os parâmetros e simular a entrada da contingência basta acessar o Painel de controle – Módulo NFC-e – Configurações para emissão, como demonstra a imagem a seguir.
Na tela do módulo NFC-e estará disponível o campo “Simular contingência”, representado na imagem abaixo, onde o usuário poderá configurar a simulação do ambiente de contingência, com as opções “Simular timeout SEFAZ” que retorna o código 108, “Simular SEFAZ fora do ar” que retorna o código 109 e “Emissão normal” que retorna o código 100 após o documento ser autorizado na SEFAZ.
Ao ativar a simulação da contingência os documentos emitidos nesse tempo não serão enviados para a SEFAZ, somente após a empresa voltar para a opção “Emissão normal”.
Através desta opção é possível que o usuário simule várias situações que podem acontecer durante a emissão em contingência, que pode ser por EPEC ou contingência Offline.
Antes de optar pela opção EPEC, em primeiro lugar o emissor deverá tratar na integração o código de retorno 136, de forma que seu ERP consiga interpretar o mesmo, pois quando uma NFC-e for emitida em EPEC será retornado o código 109 no status da comunicação e o código 136 no status do documento, sem o arquivo xml, mas com o DANFENFC em base 64 (para mais informações sobre base64 acesse o artigo). Nesse caso, o documento foi emitido porém ainda não está autorizado na SEFAZ, então o emissor deverá consultar o documento posteriormente para ter o xml completo autorizado.
Da mesma forma, ao receber um retorno de código 136 o emissor não deve reenviar o documento, somente consultar o seu status. Tratando o código 136 na integração poderá evitar problemas maiores, como sua empresa ser bloqueada para emissão de documentos em EPEC. Mas em caso de bloqueio da empresa, o artigo Desbloqueio de EPEC explica como proceder nessa situação.
A seguir iremos explicar essas possíveis situações e como o usuário deve proceder em cada uma delas.
Para exemplificar usaremos os termos Emissor 1, Emissor 2, Plataforma InvoiCy e Aplicação parceiro, de forma a facilitar a compreensão por parte do usuário.
Caso 1:
Se o Emissor 1 estiver emitindo em modo Normal com tpEmis 1, porém a opção selecionada for “Simular timeout SEFAZ” a Plataforma InvoiCy irá entrar em modo contingência, este documento enviado irá detectar a entrada em contingência e ficará com status “Necessita interação”, retornando para o Emissor 1 o código 108.
O correto a fazer neste caso de retorno 108, é emitir uma cópia do documento anterior e avançar a numeração. Esta cópia terá um avanço na numeração e deverá referenciar o documento emitido anteriormente. Recomendamos a leitura do artigo Referenciando documento emitido anteriormente para compreender o funcionamento desse processo.
O InvoiCy está preparado para que mesmo na opção “Simular timeout SEFAZ”, se receber um xml com tpEmis 9, retornar o código 109. Após o envio desse novo documento com tpEmis 9 o InvoiCy deverá cancelar ou inutilizar o documento anterior que está referenciado. Este processo não roda automaticamente no servidor de testes.
Ao alterar a opção no InvoiCy para “Simular SEFAZ fora do ar” os próximos documentos enviados irão retornar para o Emissor 1 o código 109 como status da comunicação e do documento, se forem emitidos em contingência Offline. Porém, se forem emitidos em EPEC o retorno do status de comunicação será 109, e o retorno do status do documento será 136.
Ainda pode acontecer a situação de nenhuma contingência configurada estar disponível, então o documento ficará como pendente no InvoiCy e não será emitido. O emissor receberá como retorno de status da comunicação o código 109, e como retorno de status do documento o código 105. Isso indica que não poderá mais emitir temporariamente, e deverá então realizar uma consulta antes de fazer o envio da próxima NFC-e.
É importante salientar que o emissor deve sempre estar atento para o código de retorno do status do documento, e não apenas para o código de retorno da comunicação. Para auxiliar na identificação de ambos, o código de status da comunicação pode ser observado no cabeçalho de retorno do SOAP. Já o código do status do documento pode ser visualizado dentro do arquivo xml do documento.
Caso 2:
Pode acontecer uma situação onde o InvoiCy está configurado para emissão em contingência e um Emissor 2 do mesmo estado do Emissor 1, que desconhece que o InvoiCy está em modo contingência, envia um documento com tpEmis 1. Neste caso, o Emissor 2 irá receber como retorno o código 108 e seguirá o fluxo da mesma forma que o Emissor 1 quando também recebeu o retorno 108.
Caso 3:
Também pode acontecer uma situação onde o Emissor 1 recebeu o retorno 108 no primeiro documento, indicando que este documento identificou a entrada em contingência. Se durante este processo de referenciar o documento anterior e enviar novamente o novo documento, o InvoiCy saiu do modo contingência por ter conseguido autorizar outro documento do Emissor 2, ao receber este documento do Emissor 1 com tpEmis 9 ou 4, e ao enviar para a SEFAZ detectar novamente a contingência, o Emissor 1 irá receber o retorno 109 e o documento ficará armazenado no InvoiCy com status Contingência Offline, ou EPEC autorizado.
Para cancelar a simulação do ambiente de contingência a empresa deve selecionar a opção “Emissão normal”. Após a empresa sair do modo contingência no InvoiCy, então os documentos serão enviados para a SEFAZ e terão seu devido retorno.
É importante destacar ainda que sempre que o Emissor receber como retorno o código 108 deverá avançar a numeração e enviar um novo documento referenciando o anterior.
Não é aconselhável que o Emissor simule situações para receber o código 109 quando estiver enviando com tpEmis 1, pois no processo do ambiente de produção este retorno não irá ocorrer, nesse caso sempre irá retornar primeiro o código 108.
O InvoiCy só irá retornar o código 109 quando estiver em contingência e receber um documento com tpEmis 9, ou se está em modo normal e receber um documento com tpEmis 9 e este identificar a contingência na SEFAZ.
Para facilitar o entendimento do emissor, elaboramos um fluxo abrangendo todas essas situações de emissão em contingência comentadas no artigo, bem como o retorno de cada situação.
Durante o processo de envio, ainda podem acontecer situações como o Aplicativo Comercial ou ERP não possuir conexão com a internet, ou a conexão com o InvoiCy ser perdida durante o processo de emissão e não dar nenhum retorno do documento.
Na primeira situação o documento não será enviado para o InvoiCy, sendo responsabilidade do emissor ajustar a sua infraestrutura para permitir a comunicação com o InvoiCy. Já na segunda situação, o emissor deverá consultar o status do documento para verificar se o mesmo já não foi emitido, ou se será necessário enviá-lo novamente.