Skip to main content
Reference for every event Grantiva can deliver to your webhook endpoints. For setup, retries, and signature verification, see Webhooks.

Delivery format

Every delivery is an HTTP POST with these headers: The body is always the same envelope. All values in data are strings:
Respond with a 2xx status within the timeout. Non-2xx responses and timeouts are retried up to 3 times (after 1, 5, and 30 minutes).
Webhooks fire on paid tiers only (Pro, Business, Enterprise).

Device events

device.new

First attestation from a new device.

device.attested.first

Fires exactly once per app, when the first device ever attests for it — your activation moment.

device.high_risk

A device’s risk score exceeded your configured threshold (default 50).

device.attestation_failed

A device failed Apple attestation validation.

attestation.anomaly

Unusual attestation patterns detected for a device. anomalies is a comma-separated list.

Flag events

flag.created

flag.updated

Fires when a flag is toggled or its configuration changes.

flag.deleted

Subscription events

All three subscription events share the same data shape — see Subscription Claims and the handling notes (dedupe on event_id, treat as a cache-bust nudge).
  • subscription.changed — fires whenever an entitlement materially changes (tier, status, interval, expiry, auto-renew, or product). Identical redeliveries from Apple/Stripe do not re-fire it.
  • subscription.expired — additionally fires when status becomes expired or revoked.
  • subscription.refunded — additionally fires on refunds.

Event summary