Skip to main content

Coupons

The coupons API allows you to create, view, update, and delete individual, or a batch, of coupon codes.

Coupon properties

AttributeTypeDescription
idintegerUnique identifier for the object. READ-ONLY
codestringCoupon code. MANDATORY
amountstringThe amount of discount. Should always be numeric, even if setting a percentage.
date_createddate-timeThe date the coupon was created, in the site's timezone. READ-ONLY
date_created_gmtdate-timeThe date the coupon was created, as GMT. READ-ONLY
date_modifieddate-timeThe date the coupon was last modified, in the site's timezone. READ-ONLY
date_modified_gmtdate-timeThe date the coupon was last modified, as GMT. READ-ONLY
discount_typestringDetermines the type of discount that will be applied. Options: percent, fixed_cart and fixed_product. Default is fixed_cart.
descriptionstringCoupon description.
date_expiresstringThe date the coupon expires, in the site's timezone.
date_expires_gmtstringThe date the coupon expires, as GMT.
usage_countintegerNumber of times the coupon has been used already. READ-ONLY
individual_usebooleanIf true, the coupon can only be used individually. Other applied coupons will be removed from the cart. Default is false.
product_idsarrayList of product IDs the coupon can be used on.
excluded_product_idsarrayList of product IDs the coupon cannot be used on.
usage_limitintegerHow many times the coupon can be used in total.
usage_limit_per_userintegerHow many times the coupon can be used per customer.
limit_usage_to_x_itemsintegerMax number of items in the cart the coupon can be applied to.
free_shippingbooleanIf true and if the free shipping method requires a coupon, this coupon will enable free shipping. Default is false.
product_categoriesarrayList of category IDs the coupon applies to.
excluded_product_categoriesarrayList of category IDs the coupon does not apply to.
exclude_sale_itemsbooleanIf true, this coupon will not be applied to items that have sale prices. Default is false.
minimum_amountstringMinimum order amount that needs to be in the cart before coupon applies.
maximum_amountstringMaximum order amount allowed when using the coupon.
email_restrictionsarrayList of email addresses that can use this coupon.
used_byarrayList of user IDs (or guest email addresses) that have used the coupon. READ-ONLY
meta_dataarrayMeta data. See Coupon - Meta data properties

Coupon - Meta data properties

AttributeTypeDescription
idintegerMeta ID. READ-ONLY
keystringMeta key.
valuestringMeta value.

Create a coupon

This API helps you to create a new coupon.

POST /wp-json/wc/v2/coupons
curl -X POST https://example.com/wp-json/wc/v2/coupons \
-u consumer_key:consumer_secret \
-H "Content-Type: application/json" \
-d '{
"code": "10off",
"discount_type": "percent",
"amount": "10",
"individual_use": true,
"exclude_sale_items": true,
"minimum_amount": "100.00"
}'

Retrieve a coupon

This API lets you retrieve and view a specific coupon by ID.

GET /wp-json/wc/v2/coupons/<id>
curl https://example.com/wp-json/wc/v2/coupons/719 \
-u consumer_key:consumer_secret

List all coupons

This API helps you to list all the coupons that have been created.

GET /wp-json/wc/v2/coupons
curl https://example.com/wp-json/wc/v2/coupons \
-u consumer_key:consumer_secret

Available parameters

ParameterTypeDescription
contextstringScope under which the request is made; determines fields present in response. Options: view and edit. Default is view.
pageintegerCurrent page of the collection. Default is 1.
per_pageintegerMaximum number of items to be returned in result set. Default is 10.
searchstringLimit results to those matching a string.
afterstringLimit response to resources published after a given ISO8601 compliant date.
beforestringLimit response to resources published before a given ISO8601 compliant date.
dates_are_gmtbooleanInterpret after and before as UTC dates when true.
excludearrayEnsure result set excludes specific IDs.
includearrayLimit result set to specific ids.
offsetintegerOffset the result set by a specific number of items.
orderstringOrder sort attribute ascending or descending. Options: asc and desc. Default is desc.
orderbystringSort collection by object attribute. Options: date, id, include, title and slug. Default is date.
codestringLimit result set to resources with a specific code.

Update a coupon

This API lets you make changes to a coupon.

PUT /wp-json/wc/v2/coupons/<id>
curl -X PUT https://example.com/wp-json/wc/v2/coupons/719 \
-u consumer_key:consumer_secret \
-H "Content-Type: application/json" \
-d '{
"amount": "5"
}'

Delete a coupon

This API helps you delete a coupon.

DELETE /wp-json/wc/v2/coupons/<id>
curl -X DELETE https://example.com/wp-json/wc/v2/coupons/719?force=true \
-u consumer_key:consumer_secret

Available parameters

ParameterTypeDescription
forcebooleanUse true to permanently delete the coupon. Default is false.

Batch update coupons

This API helps you to batch create, update and delete multiple coupons.

note

Note: By default it's limited to up to 100 objects to be created, updated or deleted.

POST /wp-json/wc/v2/coupons/batch
curl -X POST https://example.com/wp-json/wc/v2/coupons/batch \
-u consumer_key:consumer_secret \
-H "Content-Type: application/json" \
-d '{
"create": [
{
"code": "20off",
"discount_type": "percent",
"amount": "20",
"individual_use": true,
"exclude_sale_items": true,
"minimum_amount": "100.00"
},
{
"code": "30off",
"discount_type": "percent",
"amount": "30",
"individual_use": true,
"exclude_sale_items": true,
"minimum_amount": "100.00"
}
],
"update": [
{
"id": 719,
"minimum_amount": "50.00"
}
],
"delete": [
720
]
}'