A integração via Webhooks no Omie possibilita que sistemas externos recebam notificações de eventos em tempo real.
Para assegurar a integridade e a entrega desses eventos, o Omie adota uma lógica robusta de tentativas e adiamento em caso de falhas na entrega.
Nesse artigo, vamos explorar as características técnicas dos Webhooks no Omie e fornecer recomendações para uso. 🚀
💡 Dica
Se você precisa verificar como utilizar nossos Webhooks, temos um artigo dedicado sobre este tema. Para acessar o artigo, clique no botão abaixo:
Tópicos do Artigo:
Funcionamento e detalhes técnicos
O Omie faz o agrupamento dos eventos para cada endpoint de Webhook e envia solicitações POST para esses destinos. O agrupamento é feito da seguinte forma:
Agrupamento de Eventos. Os eventos são agrupados para cada aplicativo Omie e o endpoint de Webhook;
Processamento Sequencial. Os eventos são processados sequencialmente (FIFO - First In, First Out).
A gestão de fila dos eventos, ocorre considerando o código de resposta HTTP, retornado pelo Endpoint e também, pelo tempo de Timeout, em caso de falhas no processamento.
Código de Resposta HTTP 2XX. Se o endpoint do Webhook retornar um código de resposta HTTP 2XX (como o código 200), o evento é considerado processado com sucesso e removido da fila;
Falha no Processamento. Se o endpoint do Webhook não retornar um código de resposta HTTP 2XX ou ultrapassar o tempo de Timeout, a solicitação POST será refeita em intervalos regulares.
💡 Dica
Os códigos de resposta do protocolo HTTP indicam se uma solicitação HTTP foi concluída com êxito ou se foi retornado algum erro.
Para conferir o status que cada código representa, recomendamos a consulta por este link.
Se as tentativas de entrega de eventos na Fila Principal falharem, eles serão movidos para a DLQ (Dead Letter Qeue).
Na tabela abaixo, você pode conferir os detalhes das operações da Fila Principal e da DLQ:
| Fila Principal | Dead Letter Queue (DLQ) |
Timeout | 7 segundos | Até 20 segundos |
Limite de tentativas | 3 tentativas | Até 5 dias |
Intervalo entre Tentativas | 1 a 4 segundos | 1 tentativa a cada 10 minutos |
É importante destacar que enquanto uma solicitação POST malsucedida estiver sendo refeita, nenhum outro POST do grupo será tentado. Eventos subsequentes serão adiados até que o primeiro evento seja processado com sucesso.
Por isso, orientamos seguir as recomendações de utilização, a fim de evitar o adiamento de eventos.
Recomendações de utilização
Para evitar a perda de notificações por tentativas malsucedidas, é importante definir algumas configurações em seu Endpoint:
Aceite e Armazene os Dados. O endpoint utilizado deve retornar um código de resposta HTTP 2XX o mais rápido possível;
Processamento Posterior. Armazene os dados para processamento posterior, garantindo que os eventos não sejam perdidos mesmo que o processamento imediato não seja possível.
Ao certificar-se de que estas etapas estão devidamente implementadas, você assegura a confiabilidade e a eficiência do seu sistema de notificações via Webhooks.
FAQ - Webhooks
Neste FAQ, reunimos algumas dúvidas comuns que podem surgir durante a utilização dos Webhooks do Omie:
1) Se eu modificar o endpoint de destino para os Webhooks, a fila de dados represados será atualizada?
1) Se eu modificar o endpoint de destino para os Webhooks, a fila de dados represados será atualizada?
Não, somente os novos eventos, criados após a alteração, serão direcionados ao novo endpoint.
Ao alterar o endpoint atual, ou, remover e adicionar um novo endpoint, os eventos antigos sofrerão tentativas de envio, até que seja atingido o limite de tentativas.
2) Se eu remover o Webhook, isso terá algum impacto no sistema Omie?
2) Se eu remover o Webhook, isso terá algum impacto no sistema Omie?
Remover um Webhook não afeta o sistema Omie.ERP.
No entanto, os sistemas integrados, e dependem das notificações via Webhook, perderão a comunicação com seu aplicativo Omie.