Boas práticas no uso de webhooks
Siga estas recomendações ao trabalhar com webhooks. Responda rapidamente
Responda à request com 202 Accepted em até dois segundos. O tempo limite da request é de cinco segundos. Use uma fila para armazenar o evento e processe depois. Isso evita falhas por timeout e garante resiliência a grandes volumes.Valide o header usando o byte array do body
Valide a assinatura usando o byte array do body, sem transformações. Não altere ou faça parse antes de validar. Use o buffer bruto da request para evitar inconsistências.Gerencie atrasos
Pode haver atrasos na entrega de eventos. Se um evento antigo causa problemas, compare o timestamp do evento com a hora atual.Ignorar eventos duplicados
Você pode receber o mesmo evento mais de uma vez. Implemente operações idempotentes. Identifique duplicidades pelo campo id
do evento.Rastreie falhas
Monitore códigos de resposta e métricas de entrega. Corrija falhas antes que impactem seus usuários.Busque eventos descartados e rotinas de reconciliação
Se sua aplicação ficar offline, recupere eventos das últimas 8h pelo endpoint de polling. Use polling com frequência menor como fallback, por exemplo, a cada 30 minutos.Permita os IPs do iFood no firewall
Garanta que os IPs abaixo estejam liberados no firewall para receber requests dos webhooks:- 34.202.11.230
- 34.228.183.194
- 44.207.41.97
- 44.208.105.236
- 54.85.55.192
Podemos alterar esses IPs sem aviso prévio. Sempre consulte a documentação para obter a lista atualizada.
Para maior segurança, permita apenas os IPs necessários, evitando liberar todos os IPs externos.