Em alguns momentos, o envio de um Documento Fiscal Eletrônico (DF-e) para a SEFAZ, pode apresentar alguns obstáculos, que nos dificultam saber se o documento foi de fato autorizado ou rejeitado, ou até mesmo se chegou a ser recepcionado pela SEFAZ.
Pensando nisso, o SaaS possui um fluxo que contorna essas situações, utilizando duas rotas: Consulta e Resolve. Sempre que realizar o envio de um DF-e e não consegui obter um retorno que indique exatamente qual a situação do documento, deve-se implementar o fluxo descrito abaixo.
Este fluxo também funciona e também deve ser implementado para clientes que utilizam o Manager Neverstop.
Passo a passo do Fluxo
- Os envios para o SaaS são sempre assíncronos, portanto, se o retorno de um envio de nota, for qualquer coisa diferente de AUTORIZADA ou REJEITADA, deve-se disparar a rota CONSULTA*
- Em seguida, após a consulta, teremos dois cenários possíveis.
- Caso o retorno seja AUTORIZADA ou CANCELADA o processo está encerrado e pode ser chamado o Download do PDF e XML.
- Caso o retorno seja igual REJEITADA, o processo é encerrado, sendo necessária a correção do arquivo de envio e submetendo ele a um novo envio.
- Caso o retorno seja ENVIADA ou RECEBIDA ou REGISTRADA, deverá ser aplicado o RESOLVE na nota. Esta rota dispara uma consulta por chave na SEFAZ ou realiza um reenvio da nota, depende da situação que ela estiver no banco de dados do SaaS.
- Caso o retorno seja diferente de qualquer um citado acima, deve reiniciar o processo de CONSULTA e RESOLVE, iniciando do passo 2 novamente.**
Obs: Para o documento MDF-e, também pode retornar a situação ENCERRADO, após uma consulta ou resolve. Este também é considerado uma situação final e deve encerrar o processo com download de PDF e XML.
Observações importantes
O fluxo em questão, se inicia quando não há um retorno devido para o documento fiscal emitido. Desse modo, o sistema iniciará enviando uma requisição para a rota de Consulta, de modo a utilizar como os parâmetros a seguir:
*Filtros da consulta:
- Código Numérico* codNF (NFe/NFCe), codMDF (MDFe),codct (CTe),
- Série do documento.
*Campos de retorno:
- Situação e ou outros*
Os outros campos, poderão ser quaisquer um dos contidos na documentação de consulta do documento em que está sendo emitido, mas terá de conter na requisição o campo situação, para que consiga validar qual é o status do documento. - Exemplo:
Filtro=codnf=1 and serie=1&Campos=situacao,chave,nnf,cstat.
**Orientações sobre o fluxo:
Recomendamos que o fluxo como um todo, tenha um tratamento de timeout e quantidade de tentativas. Uma recomendação, é que tenha de 3 a 5 tentativas, com timeout de 10 segundos entre elas ou um incremental de tempo a cada tentativa. Isso porque este cenário pode ocorrer por instabilidade da SEFAZ e ao longo do tempo, pode reconectar e resolver a nota.
Após as tentativas, deve analisar o terceiro parâmetro da resposta, pois nele vai contar o motivo do erro, que pode exigir intervenção manual
Exemplo:
"Palavra Exception", "Classe da Exception", "Mensagem de Exception"
EXCEPTION, EspdManNFeAssinarException, Problema ao assinar Nota(s). Exception: Falha ao Validar Lote para Envio. Erro: EspdSchemaValidationException O arquivo contém 1 ou mais erros no de validação de esquema '3.00' viola a restrição pattern de '3\.10'. Falha da analise do atributo 'versao' com valor '3.00'
Rotas de cada documento
Rotas de consulta: NF-e, NFS-e, NFC-e, CT-e e MDF-e
Rotas de resolve: NF-e, NFS-e, NFC-e, CT-e e MDF-e
Comentários
0 comentário
Por favor, entre para comentar.