Skip to main content
Webhooks send an HTTP POST to your endpoint when something finishes in Overlay. Add and manage them in Settings → Webhooks.

Events

Fields other than the ids that name the event may be missing when they do not apply. A subscription chooses one or more events.

The request

X-Overlay-Timestamp and createdAt are Unix time in milliseconds.

Verify a delivery

The signature is an HMAC-SHA256 of <timestamp>.<raw body>, keyed with the subscription’s signing secret, hex-encoded and prefixed with sha256=. The secret is shown when you create the webhook, and you can rotate it from the same page.
Verify against the raw request body, before parsing it as JSON. Rejecting old timestamps protects against replayed requests.

Respond and retry

  • Answer with any 2xx within 30 seconds. Do slow work after responding.
  • Any other status, a timeout or a connection error counts as a failed attempt.
  • Overlay tries up to 5 times, waiting about 1 minute, 5 minutes, 30 minutes, 2 hours and 12 hours between attempts.
  • The same event can arrive more than once. Use X-Overlay-Event-Id to ignore duplicates. A delivery you send again by hand gets a new id ending in :redrive:<uuid>.
Recent deliveries and their responses are listed under each webhook in Settings, where a failed delivery can be sent again.