active status (not restricted).points.redeemed webhook event is fired after a successful redemption, containing the customer_uid, points, reward_id, and ledger_id.Idempotency-Key header to prevent duplicate redemptions.curl --location --request POST '/points/redeem' \
--header 'Idempotency-Key: redeem-cust123-20260225-001' \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data-raw '{
"customer_uid": "cust_abc123def456",
"points": 200,
"reward_id": "reward_coffee_free",
"narration": "Redeemed for free coffee"
}'{
"status": true,
"message": "Points redeemed successfully",
"data": {
"id": 1284,
"merchant_id": "merch_xyz789",
"customer_uid": "cust_abc123def456",
"amount": 50,
"transaction_type": "member_points_adjustment_credit",
"reference_id": "credit_a1b2c3d4-e5f6-7890",
"title": "Points Credit",
"narration": "Credited 50 points for purchase #12345",
"balance_after": 1550,
"created_at": "2026-02-20T14:30:00.000Z"
}
}