Skip to main content

Overview

Webhooks deliver platform events (builds going live, purchases, analytics) to your backend via HTTP POST. Your server must respond within 10 seconds.

Create a webhook endpoint

Developer Portal → your game → Webhooks → Add Endpoint

Available events

Any other event name is silently dropped when you save the subscription — check the saved list in the portal to confirm what was accepted.

Verify signatures

Every request carries two headers: Always verify the signature before processing.
Parse the raw body for signature verification — never verify against a pre-parsed JSON object.

Reliability rules

  • Return 200 within 5 seconds. That is the delivery timeout — anything slower is recorded as a failure.
  • There are no retries. A delivery that times out or returns an error is logged and dropped. Treat webhooks as best-effort notifications, not a guaranteed queue. If a piece of state must be correct, reconcile it against the API rather than relying on having received an event.
  • Be idempotent anyway. Respond fast, queue the work, and make replays harmless.
  • Cap your endpoints. A game can have at most 20 webhooks.

Secrets

The signing secret is shown once, when you create the webhook. It cannot be read back afterwards — the portal only shows its last four characters. Store it in your own secret manager at creation time. If you lose it, or if you want to rotate on a schedule, use rotate in the portal. That issues a new secret and shows it once. Deliveries signed with the old secret stop verifying immediately, so update your endpoint in the same window.

Test a webhook

Developer Portal → Webhooks → select endpoint → Send Test Event. Inspect the delivery log for status code, response time, and response body.