Developers
V1RewardsCampaignsIdRedeem

Confirm points cost and issue a voucher valid for exactly seven days

The confirmed cost must match the published offer. Voucher issuance and points debit are atomic. Reuse claimId on retry; the same claimId returns the same voucher, and each paid use is debited separately. Unused expired vouchers return their points on the next balance refresh. No health data or earning rule is enabled by this operation.

POST
/v1/rewards/campaigns/{id}/redeem
AuthorizationBearer <token>

In: header

Path Parameters

id*string
Match^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
Formatuuid

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

curl -X POST "https://example.com/v1/rewards/campaigns/497f6eca-6276-4993-bfeb-53cbbbba6f08/redeem" \  -H "Content-Type: application/json" \  -d '{    "claimId": "88057929-7728-4a26-8396-f965dcc8b947",    "acceptRules": true,    "expectedPointsCost": 0,    "validityDays": 7  }'
{  "claim": {    "pointsSpent": 0,    "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",    "campaignId": "13f8bf6d-dc27-4a04-bffe-6e5b13c19ddf",    "deliveryKind": "physical_gift",    "status": "reserved",    "reservedAt": "2019-08-24T14:15:22Z",    "expiresAt": "2019-08-24T14:15:22Z",    "redeemedAt": "2019-08-24T14:15:22Z"  },  "availablePoints": 0}