---
title: "Cancel a reward"
method: POST
path: "/v2/rewards/{reward_id}/cancel"
tags: ["Rewards"]
---

# Cancel a reward

`POST /v2/rewards/{reward_id}/cancel`

Cancels the specified reward, preventing fulfilment. Returns the updated reward record.

## Path parameters

- `reward_id` string, required

## Request body

- CancelRewardRequest
  - `message` string, nullable, required — Optional human-readable reason for the cancellation, stored for audit purposes.

## Response `200`

Successful response

- RewardResponse
  - `action_id` string, required — Extole action id associated with this reward.
  - `campaign_id` string, required — Extole campaign id associated with this reward.
  - `cause_event_id` string, required — Id of the direct cause event that triggered this reward.
  - `container` string, required — Campaign container the reward belongs to.
  - `created_at` string, required — [RFC 3339](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6) or [RFC 9557](https://datatracker.ietf.org/doc/html/rfc9557#section-4) date-time with a numeric [UTC offset](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6) and an optional [IANA time-zone](https://datatracker.ietf.org/doc/html/rfc9557#section-4) suffix in square brackets. Precision up to milliseconds.
  - `data` object, required — Named data parameters attached to this reward.
  - `email` string, nullable, required — Email address of the reward recipient. Null if not available.
  - `expires_at` string, required — [RFC 3339](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6) or [RFC 9557](https://datatracker.ietf.org/doc/html/rfc9557#section-4) date-time with a numeric [UTC offset](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6) and an optional [IANA time-zone](https://datatracker.ietf.org/doc/html/rfc9557#section-4) suffix in square brackets. Precision up to milliseconds.
  - `face_value` number, required — Monetary or point face value of the reward.
  - `face_value_type` 'AUD' | 'BRL' | 'CAD' | 'CNY' | 'EUR' | 'GBP' | 'HKD' | 'INR' | 'JPY' | 'KRW' | 'MONTH' | 'MXN' | 'NZD' | 'PERCENT_OFF' | 'POINTS' | 'TRY' | 'TWD' | 'USD', required — Unit type of the face value (e.g. `CASH`, `POINTS`, `PERCENT`).
  - `journey_key` JourneyKey, required
    - `name` string
    - `value` string
  - `journey_name` string, required — Name of the journey associated with this reward.
  - `partner_reward_id` string, nullable, required — Partner-assigned identifier for this reward. Null if not yet assigned.
  - `partner_reward_key_type` 'COUPON' | 'ID' | 'LINK', required — Type of key used to identify the reward at the partner's system.
  - `partner_reward_supplier_id` string, nullable, required — Partner-assigned identifier for the reward supplier. Null if not provided.
  - `partner_user_id` string, nullable, required — Partner's identifier for the person. Null if not provided.
  - `person_id` string, required — Extole person id of the reward recipient.
  - `reward_id` string, required — Extole-assigned unique identifier for this reward.
  - `reward_supplier_id` string, required — Extole reward supplier id that issued this reward.
  - `root_event_id` string, required — Id of the root event that initiated the chain leading to this reward.
  - `sandbox` string, required — Sandbox identifier for this reward.
  - `state` 'CANCELED' | 'EARNED' | 'FAILED' | 'FULFILLED' | 'REDEEMED' | 'REVOKED' | 'SENT', required — Current lifecycle state of the reward.

## Other responses

- `400` — Bad Request
- `401` — Unauthorized
- `402` — Payment Required
- `403` — Forbidden
- `415` — Unsupported Media Type
- `429` — Too Many Requests

---

[API](https://skmtc.net/extole/apis/integration-api-server-to-extole.md) · [All operations](https://skmtc.net/extole/apis/integration-api-server-to-extole/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/extole/integration-api-server-to-extole/versions/c16e62e66755/schema)
