Update Promotion Code
Update an existing promotion code in your store. This endpoint uses PATCH semantics, meaning only the fields you include in the request body will be updated.
Only active, name, and price_uuids can be changed; the discount terms,
currency, duration, expiry, redemption cap, and restrictions are frozen — see
Most fields are immutable after
create. Setting active: false
is a reversible deactivation; for a permanent end-of-life, archive the
code instead — see
Deactivate vs. archive.
Request
PATCH /promotion-codes/{id}
Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
id | string | Yes | Promotion code UUID |
Request Body
All fields are optional. Only include the fields you want to update.
| Parameter | Type | Description |
|---|---|---|
active | boolean | Reversibly toggles the code on (true) or off (false). |
name | string | Internal name shown in dashboards, max 40 characters. Pass null to clear. |
price_uuids | array | Variant UUIDs the code applies to. Pass null or [] to widen back to "all prices of the product" (only meaningful for product-scoped codes). |
Example Request — temporarily deactivate
curl -X PATCH "https://cart.easy.tools/api/v1/promotion-codes/550e8400-e29b-41d4-a716-446655440030" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"active": false
}'
Example Request — rename
curl -X PATCH "https://cart.easy.tools/api/v1/promotion-codes/550e8400-e29b-41d4-a716-446655440030" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "Black Friday 2026 — extended"
}'
Example Request — re-scope to a different set of variants
curl -X PATCH "https://cart.easy.tools/api/v1/promotion-codes/550e8400-e29b-41d4-a716-446655440030" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"price_uuids": [
"550e8400-e29b-41d4-a716-446655440001",
"550e8400-e29b-41d4-a716-446655440002"
]
}'
Response
Success Response (200)
Returns the updated promotion code.
{
"id": "550e8400-e29b-41d4-a716-446655440030",
"code": "BLACKFRIDAY20",
"name": "Black Friday 2026 — extended",
"discount_type": "percent_off",
"amount_off": null,
"percent_off": 20,
"currency": null,
"duration": "once",
"duration_in_months": null,
"max_redemptions": 100,
"times_redeemed": 14,
"expires_at": "2026-12-31T23:59:59+00:00",
"first_time_transaction": false,
"minimum_amount": null,
"minimum_amount_currency": null,
"scope": {
"type": "global"
},
"status": "active",
"created_at": "2026-05-27T10:16:00+00:00",
"updated_at": "2026-05-28T11:00:00+00:00"
}
See the Get Promotion Codes reference for a full description of each field.
Error Responses
Bad Request (400)
{
"message": "Invalid promotion code ID"
}
Promotion Code Not Found (404)
{
"message": "Promotion code with ID 550e8400-e29b-41d4-a716-446655440030 not found"
}
Validation Error (422 Unprocessable Entity)
{
"message": "The given data was invalid.",
"errors": {
"name": [
"The name field must not be greater than 40 characters."
]
}
}
Unauthorized (401)
{
"message": "Unauthenticated."
}