webhookUrl configured in your campaign. They are the main channel for knowing what happened — always verify the signature before processing.
Envelope structure
All events share the same envelope:Headers you receive
Verify the signature
Always verify the signature. If you don’t, anyone can send fake webhooks to your endpoint.Available events
spin.completed
Fires when a spin completes (manual or automatic).outcome === 'won_points' and claimRequired === false, credit gift.pointsValue to the user.
claim.completed
Fires when the user claims a prize that required confirmation.spin_auto_unlocked
Fires whentrack() evaluated the rules and unlocked an automatic spin, just before spinning.
grant_points_awarded
Fires when a rule withaction: 'grant_points' was activated and points were credited directly.
data.pointsValue to the user in your system.
Retries
If your endpoint returns any status code other than2xx, Nippy retries delivery automatically:
After the fourth failed attempt, the webhook is marked as
failed. You can check it in the webhook log.
Idempotency
The envelopeid field is unique per delivery. If you receive the same id twice (network retry), process it only once by storing already-processed IDs in your database.
