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
]
}'