You can create coupons easily via the coupon management page of the Stripe dashboard. Coupon creation is also accessible via the API if you need to create coupons on the fly.
A coupon has either a percent_
or an amount_
and currency
. If you set an amount_
, that amount will be subtracted from any invoice’s subtotal. For example, an invoice with a subtotal of 100 USD will have a final total of 0 USD if a coupon with an amount_
of 20000 is applied to it and an invoice with a subtotal of 300 USD will have a final total of 100 USD if a coupon with an amount_
of 20000 is applied to it.
Parameters
- amount_
offinteger A positive integer representing the amount to subtract from an invoice total (required if
percent_
is not passed).off - currencyenum
Three-letter ISO code for the currency of the
amount_
parameter (required ifoff amount_
is passed).off - durationenum
Specifies how long the discount will be in effect if used on a subscription. Defaults to
once
.Possible enum valuesforever
Applies to all charges from a subscription with this coupon applied.
once
Applies to the first charge from a subscription with this coupon applied.
repeating
Applies to charges in the first
duration_
months from a subscription with this coupon applied. This value is deprecated and will be replaced in future versions of the API.in_ months - metadatamap
Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to
metadata
. - namestring
Name of the coupon displayed to customers on, for instance invoices, or receipts. By default the
id
is shown ifname
is not set. - percent_
offfloat A positive float larger than 0, and smaller or equal to 100, that represents the discount the coupon will apply (required if
amount_
is not passed).off
More parameters
- applies_
tomap A hash containing directions for what this Coupon will apply discounts to.
- applies_to.
productsarray of strings An array of Product IDs that this Coupon will apply to.
- currency_
optionsmap Coupons defined in each available currency option (only supported if
amount_
is passed). Each key must be a three-letter ISO currency code and a supported currency.off - currency_options.
<currency>. amount_ offintegerRequired A positive integer representing the amount to subtract from an invoice total.
- duration_
in_ monthsintegerDeprecated Required only if
duration
isrepeating
, in which case it must be a positive integer that specifies the number of months the discount will be in effect. - idstring
Unique string of your choice that will be used to identify this coupon when applying it to a customer. If you don’t want to specify a particular code, you can leave the ID blank and we’ll generate a random code for you.
- max_
redemptionsinteger A positive integer specifying the number of times the coupon can be redeemed before it’s no longer valid. For example, you might have a 50% off coupon that the first 20 readers of your blog can use.
- redeem_
bytimestamp Unix timestamp specifying the last time at which the coupon can be redeemed. After the redeem_by date, the coupon can no longer be applied to new customers.
Returns
Returns the coupon object.
{ "id": "jMT0WJUD", "object": "coupon", "amount_off": null, "created": 1678037688, "currency": null, "duration": "forever", "livemode": false, "max_redemptions": null, "metadata": {}, "name": null, "percent_off": 25.5, "redeem_by": null, "times_redeemed": 0, "valid": true}