---
title: "Update Coupon"
method: PUT
path: "/v1/shops/{shopId}/coupons/{couponId}/update"
tags: ["Coupons"]
---

# Update Coupon

`PUT /v1/shops/{shopId}/coupons/{couponId}/update`

## Request

- Base URL: `https://api.sellauth.com`
- URL: `https://api.sellauth.com/v1/shops/{shopId}/coupons/{couponId}/update`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/sellauth/apis/sellauth-api/docs/v1/shops/:shopId/coupons/:couponId/update/put.ts> (a function with typed inputs; its response is checked against the schema)

Updates a specific coupon.

## Request body

- object
  - `code` string, required
  - `global` boolean, required
  - `discount` number, required: Must be at least -999999. Must not be greater than 999999.
  - `type` 'percentage' | 'fixed', required
  - `max_uses` number, nullable: Must be at least 1. Must not be greater than 999999.
  - `max_uses_per_customer` number, nullable: Must be at least 1. Must not be greater than 999999.
  - `min_invoice_price` number, nullable: Must be at least 0. Must not be greater than 999999.
  - `start_date` string, nullable: Must be a valid date. Must be a date before <code>2038-01-19</code>.
  - `expiration_date` string, nullable: Must be a valid date. Must be a date after <code>today</code>. Must be a date before <code>2038-01-19</code>.
  - `allowed_emails` string[]: Must be a valid email address.
  - `payment_method_ids` string[]: Must match an existing stored value.
  - `uses_count_mode` 'pending' | 'paid', nullable
  - `applies_to_renewals` boolean, nullable
  - `items` object[]: This field is required when <code>global</code> is <code>false</code>.
    - `product_id` string, required: Must match an existing stored value.
    - `variant_ids` string[]
  - `disable_if_volume_discount` boolean, nullable
  - `disable_if_quantity_deal` boolean, nullable
  - `disable_if_bundle_offer` boolean, nullable
  - `disable_if_gateway_discount` boolean, nullable
  - `disable_if_affiliate_discount` boolean, nullable
  - `disable_if_reseller_discount` boolean, nullable

## Response `200`

## Changes

- **2026-11-02** `ff0d59c98d7a`: 2 breaking, 15 info
  - added the new required request property `items/items/product_id`
  - the `items/items/` request property type changed from `string` to `object`
  - added the new optional request property `items/items/variant_ids`
  - the request property `applies_to_renewals` became nullable
  - …13 more
- **2026-10-13** `5cbdf10d05ab`: 1 info
  - added the new optional request property `disable_if_reseller_discount`

[Operation history](https://skmtc.dev/sellauth/apis/sellauth-api/changes/v1/shops/:shopId/coupons/:couponId/update/put.md)

---

[API](https://skmtc.dev/sellauth/apis/sellauth-api.md) - [All operations](https://skmtc.dev/sellauth/apis/sellauth-api/llms.txt) - [OpenAPI document](https://skmtc.dev/sellauth/apis/sellauth-api/revisions/156a9aef5e98?raw)
