Knox Docs Sign in

API reference

Test mode. Use your secret key on your server; live processing is currently disabled.

https://api.knoxapi.com

Send form-encoded requests with Authorization: Bearer sk_test_....

Complete OpenAPI specification · Integration guide

Operations and schemas are based on the pinned Stripe OpenAPI specification (MIT). Nested object definitions and enums are available in the complete specification.

GET /v1/coupons

List all coupons

Returns a list of your coupons.

Request parameters

ParameterLocationTypeDescription
createdqueryone of multiple schemasA filter on the list, based on the object `created` field. The value can be a string with an integer Unix timestamp, or it can be a dictionary with a number of different query options.
ending_beforequerystringA cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.
expandqueryarray of stringSpecifies which fields in the response should be expanded.
limitqueryintegerA limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.
starting_afterquerystringA cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.

object. See the OpenAPI specification for the complete schema.

Responses

HTTP 200: Successful response.
FieldTypeDescription
data requiredarray of coupon
has_more requiredbooleanTrue if this list has another page of items after this one that can be fetched.
object requiredstringString representing the object's type. Objects of the same type share the same value. Always has the value `list`.
url requiredstringThe URL where this list can be accessed.
HTTP default: Error response.
FieldTypeDescription
error requiredapi_errors
POST /v1/coupons

Create a coupon

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_off or an amount_off and currency. If you set an amount_off, that amount will be subtracted from any invoice’s subtotal. For example, an invoice with a subtotal of 100 will have a final total of 0 if a coupon with an amount_off of 200 is applied to it and an invoice with a subtotal of 300 will have a final total of 100 if a coupon with an amount_off of 200 is applied to it.

Request parameters

FieldTypeDescription
amount_offintegerA positive integer representing the amount to subtract from an invoice total (required if `percent_off` is not passed).
applies_toobjectA hash containing directions for what this Coupon will apply discounts to.
currencystringThree-letter [ISO code for the currency](https://stripe.com/docs/currencies) of the `amount_off` parameter (required if `amount_off` is passed).
currency_optionsobjectCoupons defined in each available currency option (only supported if `amount_off` is passed). Each key must be a three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html) and a [supported currency](https://stripe.com/docs/currencies).
durationstringSpecifies how long the discount will be in effect if used on a subscription. Defaults to `once`.
duration_in_monthsintegerRequired only if `duration` is `repeating`, in which case it must be a positive integer that specifies the number of months the discount will be in effect.
expandarray of stringSpecifies which fields in the response should be expanded.
idstringUnique 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_redemptionsintegerA 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.
metadataone of multiple schemasSet of [key-value pairs](https://docs.stripe.com/api/metadata) 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`.
namestringName of the coupon displayed to customers on, for instance invoices, or receipts. By default the `id` is shown if `name` is not set.
percent_offnumberA positive float larger than 0, and smaller or equal to 100, that represents the discount the coupon will apply (required if `amount_off` is not passed).
redeem_byintegerUnix timestamp specifying the last time at which the coupon can be redeemed (cannot be set to more than 5 years in the future). After the redeem_by date, the coupon can no longer be applied to new customers.

Responses

HTTP 200: Successful response.
FieldTypeDescription
amount_offintegerAmount (in the `currency` specified) that will be taken off the subtotal of any invoices for this customer.
applies_tocoupon_applies_to
created requiredintegerTime at which the object was created. Measured in seconds since the Unix epoch.
currencystringIf `amount_off` has been set, the three-letter [ISO code for the currency](https://stripe.com/docs/currencies) of the amount to take off.
currency_optionsobjectCoupons defined in each available currency option. Each key must be a three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html) and a [supported currency](https://stripe.com/docs/currencies).
duration requiredstringOne of `forever`, `once`, or `repeating`. Describes how long a customer who applies this coupon will get the discount.
duration_in_monthsintegerIf `duration` is `repeating`, the number of months the coupon applies. Null if coupon `duration` is `forever` or `once`.
id requiredstringUnique identifier for the object.
livemode requiredbooleanIf the object exists in live mode, the value is `true`. If the object exists in test mode, the value is `false`.
max_redemptionsintegerMaximum number of times this coupon can be redeemed, in total, across all customers, before it is no longer valid.
metadataobjectSet of [key-value pairs](https://docs.stripe.com/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
namestringName of the coupon displayed to customers on for instance invoices or receipts.
object requiredstringString representing the object's type. Objects of the same type share the same value.
percent_offnumberPercent that will be taken off the subtotal of any invoices for this customer for the duration of the coupon. For example, a coupon with percent_off of 50 will make a $ (or local equivalent)100 invoice $ (or local equivalent)50 instead.
redeem_byintegerDate after which the coupon can no longer be redeemed.
times_redeemed requiredintegerNumber of times this coupon has been applied to a customer.
valid requiredbooleanTaking account of the above properties, whether this coupon can still be applied to a customer.
HTTP default: Error response.
FieldTypeDescription
error requiredapi_errors
DELETE /v1/coupons/{coupon}

Delete a coupon

You can delete coupons via the coupon management page of the Stripe dashboard. However, deleting a coupon does not affect any customers who have already applied the coupon; it means that new customers can’t redeem the coupon. You can also delete coupons via the API.

Request parameters

ParameterLocationTypeDescription
couponpathstring

object. See the OpenAPI specification for the complete schema.

Responses

HTTP 200: Successful response.
FieldTypeDescription
deleted requiredbooleanAlways true for a deleted object
id requiredstringUnique identifier for the object.
object requiredstringString representing the object's type. Objects of the same type share the same value.
HTTP default: Error response.
FieldTypeDescription
error requiredapi_errors
GET /v1/coupons/{coupon}

Retrieve a coupon

Retrieves the coupon with the given ID.

Request parameters

ParameterLocationTypeDescription
couponpathstring
expandqueryarray of stringSpecifies which fields in the response should be expanded.

object. See the OpenAPI specification for the complete schema.

Responses

HTTP 200: Successful response.
FieldTypeDescription
amount_offintegerAmount (in the `currency` specified) that will be taken off the subtotal of any invoices for this customer.
applies_tocoupon_applies_to
created requiredintegerTime at which the object was created. Measured in seconds since the Unix epoch.
currencystringIf `amount_off` has been set, the three-letter [ISO code for the currency](https://stripe.com/docs/currencies) of the amount to take off.
currency_optionsobjectCoupons defined in each available currency option. Each key must be a three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html) and a [supported currency](https://stripe.com/docs/currencies).
duration requiredstringOne of `forever`, `once`, or `repeating`. Describes how long a customer who applies this coupon will get the discount.
duration_in_monthsintegerIf `duration` is `repeating`, the number of months the coupon applies. Null if coupon `duration` is `forever` or `once`.
id requiredstringUnique identifier for the object.
livemode requiredbooleanIf the object exists in live mode, the value is `true`. If the object exists in test mode, the value is `false`.
max_redemptionsintegerMaximum number of times this coupon can be redeemed, in total, across all customers, before it is no longer valid.
metadataobjectSet of [key-value pairs](https://docs.stripe.com/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
namestringName of the coupon displayed to customers on for instance invoices or receipts.
object requiredstringString representing the object's type. Objects of the same type share the same value.
percent_offnumberPercent that will be taken off the subtotal of any invoices for this customer for the duration of the coupon. For example, a coupon with percent_off of 50 will make a $ (or local equivalent)100 invoice $ (or local equivalent)50 instead.
redeem_byintegerDate after which the coupon can no longer be redeemed.
times_redeemed requiredintegerNumber of times this coupon has been applied to a customer.
valid requiredbooleanTaking account of the above properties, whether this coupon can still be applied to a customer.
HTTP default: Error response.
FieldTypeDescription
error requiredapi_errors
POST /v1/coupons/{coupon}

Update a coupon

Updates the metadata of a coupon. Other coupon details (currency, duration, amount_off) are, by design, not editable.

Request parameters

ParameterLocationTypeDescription
couponpathstring
FieldTypeDescription
currency_optionsobjectCoupons defined in each available currency option (only supported if the coupon is amount-based). Each key must be a three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html) and a [supported currency](https://stripe.com/docs/currencies).
expandarray of stringSpecifies which fields in the response should be expanded.
metadataone of multiple schemasSet of [key-value pairs](https://docs.stripe.com/api/metadata) 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`.
namestringName of the coupon displayed to customers on, for instance invoices, or receipts. By default the `id` is shown if `name` is not set.

Responses

HTTP 200: Successful response.
FieldTypeDescription
amount_offintegerAmount (in the `currency` specified) that will be taken off the subtotal of any invoices for this customer.
applies_tocoupon_applies_to
created requiredintegerTime at which the object was created. Measured in seconds since the Unix epoch.
currencystringIf `amount_off` has been set, the three-letter [ISO code for the currency](https://stripe.com/docs/currencies) of the amount to take off.
currency_optionsobjectCoupons defined in each available currency option. Each key must be a three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html) and a [supported currency](https://stripe.com/docs/currencies).
duration requiredstringOne of `forever`, `once`, or `repeating`. Describes how long a customer who applies this coupon will get the discount.
duration_in_monthsintegerIf `duration` is `repeating`, the number of months the coupon applies. Null if coupon `duration` is `forever` or `once`.
id requiredstringUnique identifier for the object.
livemode requiredbooleanIf the object exists in live mode, the value is `true`. If the object exists in test mode, the value is `false`.
max_redemptionsintegerMaximum number of times this coupon can be redeemed, in total, across all customers, before it is no longer valid.
metadataobjectSet of [key-value pairs](https://docs.stripe.com/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
namestringName of the coupon displayed to customers on for instance invoices or receipts.
object requiredstringString representing the object's type. Objects of the same type share the same value.
percent_offnumberPercent that will be taken off the subtotal of any invoices for this customer for the duration of the coupon. For example, a coupon with percent_off of 50 will make a $ (or local equivalent)100 invoice $ (or local equivalent)50 instead.
redeem_byintegerDate after which the coupon can no longer be redeemed.
times_redeemed requiredintegerNumber of times this coupon has been applied to a customer.
valid requiredbooleanTaking account of the above properties, whether this coupon can still be applied to a customer.
HTTP default: Error response.
FieldTypeDescription
error requiredapi_errors