Rewards
Record a business event and process it inline; payload.units is the award. Idempotency-Key (or type+ref+member) dedupes (scope: rewards:write)
POST
bearerAuthheader
AuthorizationBearer <token>API key as Bearer token
Idempotency-Key?stringRequired. Retries with the same key replay the first response instead of starting a second job (24 h).
Length
length <= 200application/json- body
type*stringValue in
"profile.completed""import.completed""bank.connected""integration.connected""tour.completed""quest.completed""feedback.accepted""bug.confirmed""forum.answer_accepted""referral.converted""referral.first_payment""activity.weekly""cabinet.client_migrated""academy.badge_earned""order.paid""order.refunded""custom"ref*stringYour stable business reference (order id, …).
Length
length <= 200memberRef*stringLength
length <= 200payload?occurredAt?stringFormat
date-timeOK
application/json- response
data*error*nullcurl -X POST "https://example.com/rewards/events" \ -H "Content-Type: application/json" \ -d '{ "type": "profile.completed", "ref": "string", "memberRef": "string" }'{ "data": { "eventId": 0, "duplicate": true, "status": "processed", "reason": "string", "unitsAwarded": 0, "xpAwarded": 0, "levelUp": { "from": 0, "to": 0 }, "badges": [ "string" ] }, "error": null}Reverse the units a refunded or voided business object earned; spent units become debt (scope: rewards:write) POST
Previous Page
Redeem a catalogue item for a member; units are burnt at once, above the auto-approve threshold the redemption waits for your approval. 409 insufficient_units / in_debt (scope: rewards:write) POST
Next Page