Responda com 2xx em até 5 segundos
A entrega dá certo quando o seu endpoint responde com status2xx em até 5 segundos.
Receba o evento, guarde e responda. Faça o processamento pesado depois, fora da requisição. Uma resposta lenta conta como falha, e o evento é enviado de novo.
Quando o evento é enviado de novo
Cada espera conta a partir da tentativa anterior:
São até 7 tentativas, dentro de 23 horas a partir do evento. Depois desse prazo, o evento não é mais enviado.
Se o seu endpoint falha seguidamente, o Omni Z-API pausa os envios para o seu endereço por um tempo e os retoma depois. Os eventos dessa pausa não se perdem: eles seguem as mesmas tentativas, dentro do prazo de 23 horas.
Headers de cada entrega
Deduplique pelo x-webhook-delivery-id
A mesma entrega pode chegar mais de uma vez. Isso acontece, por exemplo, quando o seu endpoint processou o evento, mas demorou mais de 5 segundos para responder.
Guarde os x-webhook-delivery-id já processados por pelo menos 24 horas e descarte os repetidos.
A ordem de chegada não é garantida
Os eventos saem na ordem em que acontecem. Mas um evento que falhou é enviado de novo minutos ou horas depois, enquanto os eventos seguintes continuam sendo entregues. Assim, o status “lido” de uma mensagem pode chegar antes do “entregue” que falhou na primeira tentativa.- Ordene pelo horário do evento, que vem no corpo (no formato padrão, o campo
moment), e não pela hora de chegada. - Para status, só avance: ignore um status mais antigo do que o que você já gravou.