---
title: "Update Reward"
method: PATCH
path: "/api/v1/rewards/{id}"
tags: ["Rewards"]
---

# Update Reward

`PATCH /api/v1/rewards/{id}`

## Request

- Base URL: `https://merchant-api.accruesavings.com`
- URL: `https://merchant-api.accruesavings.com/api/v1/rewards/{id}`
- Auth: none declared. Required headers: `Client-ID`, `Authorization`
- TypeScript: <https://skmtc.dev/byaccrue/apis/accrue-merchant-api/docs/api/v1/rewards/:id/patch.ts> (a function with typed inputs; its response is checked against the schema)

Update a reward when `canUpdate` is `true` (pre-issued rewards in `Created` status). At least one attribute must be provided. Returns the updated unified `Reward` resource.

## Path parameters

- `id` string, uuid, required: Reward ID.

## Headers

- `Client-ID` string, uuid, required: The unique identifier of the client making the request. This header is required to retrieve the client-specific configuration and ensure that the response is tailored to the client's settings and permissions.
- `Authorization` string, uuid, required: Secure secret to access privileged endpoints.

## Request body

- object
  - `data` UpdateRewardRequest, required: Request to update a reward when `canUpdate` is `true` (pre-issued rewards in `Created` status). At least one attribute must be provided.
    - `type` 'UpdateReward', required
    - `attributes` object, required
      - `amount` integer: Updated reward amount in cents.
      - `message` string: Updated message shown to the recipient.
      - `reasonCode` string: Updated reason code.
      - `costCenter` string: Updated cost center.
      - `notificationEmail` string, email: Updated notification email.

## Response `200`

Reward updated successfully

- UpdateRewardResponse
  - `data` RewardResponse, required: Unified reward resource for both immediate wallet credits and pre-issued rewards awaiting claim.
    - `id` string, uuid, required: Unique identifier for the object.
    - `type` 'Reward', required
    - `attributes` object, required
      - `kind` 'immediate' | 'preIssued', required: Informational discriminator only. Use `canUpdate` and `canCancel` to decide which operations are allowed — do not branch behavior on `kind` alone.
      - `amount` integer, required: Reward amount in cents.
      - `walletId` string, uuid, nullable, required: Wallet that received the reward. Set for immediate credits; `null` for pre-issued rewards awaiting claim.
      - `status` 'Credited' | 'Created' | 'Claimed' | 'Expired' | 'Cancelled', required: Unified lifecycle status. Immediate wallet credits are `Credited`; pre-issued rewards use `Created`, `Claimed`, `Expired`, or `Cancelled`.
      - `canUpdate` boolean, required: Whether `PATCH /api/v1/rewards/{id}` is allowed for this reward.
      - `canCancel` boolean, required: Whether `DELETE /api/v1/rewards/{id}` is allowed for this reward.
      - `claimExpiresAt` string, date-time, nullable, required: When a pre-issued reward must be claimed before it expires. `null` for immediate wallet credits.
      - `message` string, nullable, required: Optional message attached to the reward.
      - `reasonCode` string, nullable, required: Partner-defined reason code for reporting and reconciliation.
      - `costCenter` string, nullable, required: Partner-defined cost center for reporting.
      - `notificationEmail` string, email, nullable, required: Email address to notify when a pre-issued reward is claimed.

## Other responses

- `400`: Validation error
- `404`: Reward not found
- `409`: Reward cannot be modified in its current state
- `500`: Internal Server Error

---

[API](https://skmtc.dev/byaccrue/apis/accrue-merchant-api.md) - [All operations](https://skmtc.dev/byaccrue/apis/accrue-merchant-api/llms.txt) - [OpenAPI document](https://skmtc.dev/byaccrue/apis/accrue-merchant-api/revisions/3e2d97ef2e6e?raw)
