If your webhook endpoint returns anything other than a 2xx within 10 seconds, Message retries up to six times with exponential backoff (1m, 5m, 15m, 1h, 6h, 24h).
Make your endpoint idempotent
Every webhook event carries an X-Message-Event-Id header. Store the last 24 hours of event IDs you have processed. If the same ID arrives twice, return 200 without re-processing.
Dead-letter queue
After six failures, the event lands in the dead-letter queue. Settings > Webhooks > Dead letters. Replay individual events with one click after fixing the endpoint.