Delivery format
Every delivery is an HTTP POST with these headers:
The body is always the same envelope. All values in
data are strings:
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 samedata 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 becomesexpiredorrevoked.subscription.refunded— additionally fires on refunds.