reward_granted
Sent once for each coupon given out. coupon.ref and coupon.name are
your own reference and name for the coupon, from when you added it, so
you can match it in your own system. They are null for a coupon added
without them. The code itself is sent, as coupon.code, only to an
endpoint with includeCouponCodes turned on.
source says how the coupon was given, and decides which fields are
present:
rule: the player met a prize’s rule at the end of a play. CarriesgrantId,participantRef,sessionIdandexpiresAt.draw: the player won a draw. CarriesgrantId,participantRef,expiresAt,runIdandwinnerId.manual: given by hand through the API or dashboard. CarriesgrantId,participantRefandexpiresAt.
Signed and retried as described under session_completed.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Header Parameters
Section titled “Header Parameters”t=<unix seconds>,v1=<hex HMAC-SHA256 of "<t>.<raw body>">, keyed with the endpoint secret.
Example
t=1760277802,v1=5f2b7c0e9a1d4b3c8e6f0a2d4c6b8e0f1a3c5e7092b4d6f8a0c2e4b6d8f0a1c3The event type, the same as type in the body.
Unique per delivery, and the same on every retry of it.
Request Bodyrequired
Section titled “Request Bodyrequired”object
object
object
The channel the campaign runs on.
The prize this coupon was for.
object
Your own reference and name for the coupon, from when you added
it. code is present only for an endpoint with
includeCouponCodes turned on.
object
The coupon code. Only for endpoints that opted in.
How the coupon was given.
rule: the player met a prize’s rule at the end of a play.draw: the player won a draw.manual: given by hand.
The grant. Look it up in GET .../reward-grants.
Present for rule.
When the coupon stops being valid. Null means no expiry.
Present for draw.
Present for draw.
Example
{ "type": "reward_granted", "createdAt": "2026-10-12T14:03:22.000Z", "data": { "gameInstanceId": "0192f3a1-0000-7000-8000-0000000ca001", "channelId": "0192f3a1-0000-7000-8000-0000000cb001", "grantId": "0192f3a1-0000-7000-8000-000000073001", "participantRef": "user_48213", "source": "rule", "sessionId": "0192f3a1-0000-7000-8000-000000050001", "tierId": "0192f3a1-0000-7000-8000-000000071001", "prize": { "title": "Free coffee" }, "coupon": { "ref": "CRM-00417", "name": "Free coffee" }, "expiresAt": "2026-11-11T14:03:22.000Z" }}Responses
Section titled “Responses”Any 2xx tells Keliplay the delivery arrived.