maio
12
2023

Controle de requisições recebidas pelo InvoiCy

12 de maio de 2023

Índice

-

Buscando melhorar a usabilidade da aplicação por parte dos usuários Parceiros e evitar problemas durante a realização de uma tarefa, seja de consulta, reenvio ou cancelamento de um documento, o InvoiCy conta com um controle das requisições recebidas, em decorrência de consumo indevido do Web Service, caracterizado por um número excessivo de conexões em um curto espaço de tempo.

Esse processo consiste em bloquear uma requisição que se repita mais de ‘N’ vezes dentro de um determinado período de tempo, pois ocorriam situações onde a mesma requisição era enviada várias vezes para o InvoiCy, o que sobrecarregava a aplicação, que não conseguia processar as requisições recebidas em um tempo aceitável.

Nesses casos, normalmente o ERP está em um LOOP realizando uma tarefa (consultando, reenviando, cancelando) referente a algum documento, mas excede um número razoável de conexões em um curto espaço de tempo. O bloqueio é preventivo, para que esse loop não cause lentidão no sistema.

Para que isso não aconteça é preciso revisar/programar a integração considerando as seguintes orientações:

  • Boas Práticas para realização de consultas
    • Módulo NFS-e – Emissão Síncrona:
      • Caso não for retornado um status final no momento do envio, a orientação é realizar uma consulta logo após a emissão. Se o retorno ainda não for um status final (autorizado, rejeitado, inutilizado, denegado ou cancelado), a recomendação é que se realize novas consultas com intervalos de 20 segundos entre elas, até 5 consultas. Após isso, orientamos aumentar o intervalo para 1 minuto, realizando mais 5 consultas.  Se após essas consultas ainda não for possível obter um status final, o intervalo deverá ser aumentado para 30 minutos.
    • Módulo NFS-e – Emissão Assíncrona:
      • No caso de emissão assíncrona, a orientação é que seja utilizado webhook para que o InvoiCy envie uma notificação quando ocorrer alteração no status do documento, visto que a quantidade de documentos enviados irá influenciar no tempo de processamento. Saiba mais sobre como utilizar webhook com o InvoiCy, clique aqui.
    • Para os demais tipos de documentos:
      • Orientamos que as consultas sejam realizadas, havendo a necessidade, somente nos casos de retorno 104 e 105 (em processamento, pendente) e 108 e 109 (entrada em contingência).
  • A implementação desse controle busca evitar que o InvoiCy bloqueie temporariamente as requisições que estiverem em “loop”, o que poderá ocorrer caso as orientações acima não forem seguidas. É importante destacar que o InvoiCy irá bloquear apenas a requisição que foi enviada diversas vezes, e não a empresa. O tempo de bloqueio e a quantidade máxima de requisições será controlado por módulo. Porém, se o usuário não seguir as recomendações acima e mesmo após a requisição ser bloqueada temporariamente continuar enviando várias vezes essa mesma requisição, o InvoiCy irá bloquear a requisição de forma permanente, onde será necessário entrar em contato com nossa equipe de suporte para efetuar o desbloqueio da requisição.