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/products

List all products

Returns a list of your products. The products are returned sorted by creation date, with the most recently created products appearing first.

Request parameters

ParameterLocationTypeDescription
activequerybooleanOnly return products that are active or inactive (e.g., pass `false` to list all inactive products).
createdqueryone of multiple schemasOnly return products that were created during the given date interval.
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.
idsqueryarray of stringOnly return products with the given IDs. Cannot be used with [starting_after](https://api.stripe.com#list_products-starting_after) or [ending_before](https://api.stripe.com#list_products-ending_before).
limitqueryintegerA limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.
shippablequerybooleanOnly return products that can be shipped (i.e., physical, not digital products).
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.
urlquerystringOnly return products with the given url.

object. See the OpenAPI specification for the complete schema.

Responses

HTTP 200: Successful response.
FieldTypeDescription
data requiredarray of productDetails about each object.
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/products

Create a product

Creates a new product object.

Request parameters

FieldTypeDescription
activebooleanWhether the product is currently available for purchase. Defaults to `true`.
default_price_dataobjectData used to generate a new [Price](https://docs.stripe.com/api/prices) object. This Price will be set as the default price for this product.
descriptionstringThe product's description, meant to be displayable to the customer. Use this field to optionally store a long form explanation of the product being sold for your own rendering purposes.
expandarray of stringSpecifies which fields in the response should be expanded.
idstringAn identifier will be randomly generated by Stripe. You can optionally override this ID, but the ID must be unique across all products in your Stripe account.
imagesarray of stringA list of up to 8 URLs of images for this product, meant to be displayable to the customer.
marketing_featuresarray of objectA list of up to 15 marketing features for this product. These are displayed in [pricing tables](https://docs.stripe.com/payments/checkout/pricing-table).
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. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
name requiredstringThe product's name, meant to be displayable to the customer.
package_dimensionsobjectThe dimensions of this product for shipping purposes.
shippablebooleanWhether this product is shipped (i.e., physical goods).
statement_descriptorstringAn arbitrary string to be displayed on your customer's credit card or bank statement. While most banks display this information consistently, some may display it incorrectly or not at all. This may be up to 22 characters. The statement description may not include `<`, `>`, `\`, `"`, `'` characters, and will appear on your customer's statement in capital letters. Non-ASCII characters are automatically stripped. It must contain at least one letter. Only used for subscription payments.
tax_codestringA [tax code](https://docs.stripe.com/tax/tax-categories) ID.
unit_labelstringA label that represents units of this product. When set, this will be included in customers' receipts, invoices, Checkout, and the customer portal.
urlstringA URL of a publicly-accessible webpage for this product.

Responses

HTTP 200: Successful response.
FieldTypeDescription
active requiredbooleanWhether the product is currently available for purchase.
created requiredintegerTime at which the object was created. Measured in seconds since the Unix epoch.
default_priceone of multiple schemasThe ID of the [Price](https://docs.stripe.com/api/prices) object that is the default price for this product.
descriptionstringThe product's description, meant to be displayable to the customer. Use this field to optionally store a long form explanation of the product being sold for your own rendering purposes.
id requiredstringUnique identifier for the object.
images requiredarray of stringA list of up to 8 URLs of images for this product, meant to be displayable to the customer.
livemode requiredbooleanIf the object exists in live mode, the value is `true`. If the object exists in test mode, the value is `false`.
marketing_features requiredarray of product_marketing_featureA list of up to 15 marketing features for this product. These are displayed in [pricing tables](https://docs.stripe.com/payments/checkout/pricing-table).
metadata requiredobjectSet 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.
name requiredstringThe product's name, meant to be displayable to the customer.
object requiredstringString representing the object's type. Objects of the same type share the same value.
package_dimensionsone of multiple schemasThe dimensions of this product for shipping purposes.
shippablebooleanWhether this product is shipped (i.e., physical goods).
statement_descriptorstringExtra information about a product which will appear on your customer's credit card statement. In the case that multiple products are billed at once, the first statement descriptor will be used. Only used for subscription payments.
tax_codeone of multiple schemasA [tax code](https://docs.stripe.com/tax/tax-categories) ID.
unit_labelstringA label that represents units of this product. When set, this will be included in customers' receipts, invoices, Checkout, and the customer portal.
updated requiredintegerTime at which the object was last updated. Measured in seconds since the Unix epoch.
urlstringA URL of a publicly-accessible webpage for this product.
HTTP default: Error response.
FieldTypeDescription
error requiredapi_errors
GET /v1/products/search

Search products

Search for products you’ve previously created using Stripe’s Search Query Language. Don’t use search in read-after-write flows where strict consistency is necessary. Under normal operating conditions, data is searchable in less than a minute. Occasionally, propagation of new or updated data can be up to an hour behind during outages. Search functionality is not available to merchants in India.

Request parameters

ParameterLocationTypeDescription
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.
pagequerystringA cursor for pagination across multiple pages of results. Don't include this parameter on the first call. Use the next_page value returned in a previous response to request subsequent results.
queryquerystringThe search query string. See [search query language](https://docs.stripe.com/search#search-query-language) and the list of supported [query fields for products](https://docs.stripe.com/search#query-fields-for-products).

object. See the OpenAPI specification for the complete schema.

Responses

HTTP 200: Successful response.
FieldTypeDescription
data requiredarray of product
has_more requiredboolean
next_pagestring
object requiredstringString representing the object's type. Objects of the same type share the same value.
total_countintegerThe total number of objects that match the query, only accurate up to 10,000.
url requiredstring
HTTP default: Error response.
FieldTypeDescription
error requiredapi_errors
DELETE /v1/products/{id}

Delete a product

Delete a product. Deleting a product is only possible if it has no prices associated with it. Additionally, deleting a product with type=good is only possible if it has no SKUs associated with it.

Request parameters

ParameterLocationTypeDescription
idpathstring

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/products/{id}

Retrieve a product

Retrieves the details of an existing product. Supply the unique product ID from either a product creation request or the product list, and Stripe will return the corresponding product information.

Request parameters

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

object. See the OpenAPI specification for the complete schema.

Responses

HTTP 200: Successful response.
FieldTypeDescription
active requiredbooleanWhether the product is currently available for purchase.
created requiredintegerTime at which the object was created. Measured in seconds since the Unix epoch.
default_priceone of multiple schemasThe ID of the [Price](https://docs.stripe.com/api/prices) object that is the default price for this product.
descriptionstringThe product's description, meant to be displayable to the customer. Use this field to optionally store a long form explanation of the product being sold for your own rendering purposes.
id requiredstringUnique identifier for the object.
images requiredarray of stringA list of up to 8 URLs of images for this product, meant to be displayable to the customer.
livemode requiredbooleanIf the object exists in live mode, the value is `true`. If the object exists in test mode, the value is `false`.
marketing_features requiredarray of product_marketing_featureA list of up to 15 marketing features for this product. These are displayed in [pricing tables](https://docs.stripe.com/payments/checkout/pricing-table).
metadata requiredobjectSet 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.
name requiredstringThe product's name, meant to be displayable to the customer.
object requiredstringString representing the object's type. Objects of the same type share the same value.
package_dimensionsone of multiple schemasThe dimensions of this product for shipping purposes.
shippablebooleanWhether this product is shipped (i.e., physical goods).
statement_descriptorstringExtra information about a product which will appear on your customer's credit card statement. In the case that multiple products are billed at once, the first statement descriptor will be used. Only used for subscription payments.
tax_codeone of multiple schemasA [tax code](https://docs.stripe.com/tax/tax-categories) ID.
unit_labelstringA label that represents units of this product. When set, this will be included in customers' receipts, invoices, Checkout, and the customer portal.
updated requiredintegerTime at which the object was last updated. Measured in seconds since the Unix epoch.
urlstringA URL of a publicly-accessible webpage for this product.
HTTP default: Error response.
FieldTypeDescription
error requiredapi_errors
POST /v1/products/{id}

Update a product

Updates the specific product by setting the values of the parameters passed. Any parameters not provided will be left unchanged.

Request parameters

ParameterLocationTypeDescription
idpathstring
FieldTypeDescription
activebooleanWhether the product is available for purchase.
default_pricestringThe ID of the [Price](https://docs.stripe.com/api/prices) object that is the default price for this product.
descriptionone of multiple schemasThe product's description, meant to be displayable to the customer. Use this field to optionally store a long form explanation of the product being sold for your own rendering purposes.
expandarray of stringSpecifies which fields in the response should be expanded.
imagesone of multiple schemasA list of up to 8 URLs of images for this product, meant to be displayable to the customer.
marketing_featuresone of multiple schemasA list of up to 15 marketing features for this product. These are displayed in [pricing tables](https://docs.stripe.com/payments/checkout/pricing-table).
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`.
namestringThe product's name, meant to be displayable to the customer.
package_dimensionsone of multiple schemasThe dimensions of this product for shipping purposes.
shippablebooleanWhether this product is shipped (i.e., physical goods).
statement_descriptorstringAn arbitrary string to be displayed on your customer's credit card or bank statement. While most banks display this information consistently, some may display it incorrectly or not at all. This may be up to 22 characters. The statement description may not include `<`, `>`, `\`, `"`, `'` characters, and will appear on your customer's statement in capital letters. Non-ASCII characters are automatically stripped. It must contain at least one letter. May only be set if `type=service`. Only used for subscription payments.
tax_codeone of multiple schemasA [tax code](https://docs.stripe.com/tax/tax-categories) ID.
unit_labelone of multiple schemasA label that represents units of this product. When set, this will be included in customers' receipts, invoices, Checkout, and the customer portal. May only be set if `type=service`.
urlone of multiple schemasA URL of a publicly-accessible webpage for this product.

Responses

HTTP 200: Successful response.
FieldTypeDescription
active requiredbooleanWhether the product is currently available for purchase.
created requiredintegerTime at which the object was created. Measured in seconds since the Unix epoch.
default_priceone of multiple schemasThe ID of the [Price](https://docs.stripe.com/api/prices) object that is the default price for this product.
descriptionstringThe product's description, meant to be displayable to the customer. Use this field to optionally store a long form explanation of the product being sold for your own rendering purposes.
id requiredstringUnique identifier for the object.
images requiredarray of stringA list of up to 8 URLs of images for this product, meant to be displayable to the customer.
livemode requiredbooleanIf the object exists in live mode, the value is `true`. If the object exists in test mode, the value is `false`.
marketing_features requiredarray of product_marketing_featureA list of up to 15 marketing features for this product. These are displayed in [pricing tables](https://docs.stripe.com/payments/checkout/pricing-table).
metadata requiredobjectSet 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.
name requiredstringThe product's name, meant to be displayable to the customer.
object requiredstringString representing the object's type. Objects of the same type share the same value.
package_dimensionsone of multiple schemasThe dimensions of this product for shipping purposes.
shippablebooleanWhether this product is shipped (i.e., physical goods).
statement_descriptorstringExtra information about a product which will appear on your customer's credit card statement. In the case that multiple products are billed at once, the first statement descriptor will be used. Only used for subscription payments.
tax_codeone of multiple schemasA [tax code](https://docs.stripe.com/tax/tax-categories) ID.
unit_labelstringA label that represents units of this product. When set, this will be included in customers' receipts, invoices, Checkout, and the customer portal.
updated requiredintegerTime at which the object was last updated. Measured in seconds since the Unix epoch.
urlstringA URL of a publicly-accessible webpage for this product.
HTTP default: Error response.
FieldTypeDescription
error requiredapi_errors
GET /v1/products/{product}/features

List all features attached to a product

Retrieve a list of features for a product

Request parameters

ParameterLocationTypeDescription
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.
productpathstring
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 product_feature
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/products/{product}/features

Attach a feature to a product

Creates a product_feature, which represents a feature attachment to a product

Request parameters

ParameterLocationTypeDescription
productpathstring
FieldTypeDescription
entitlement_feature requiredstringThe ID of the [Feature](https://docs.stripe.com/api/entitlements/feature) object attached to this product.
expandarray of stringSpecifies which fields in the response should be expanded.

Responses

HTTP 200: Successful response.
FieldTypeDescription
entitlement_feature requiredentitlements.feature
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`.
object requiredstringString representing the object's type. Objects of the same type share the same value.
HTTP default: Error response.
FieldTypeDescription
error requiredapi_errors
DELETE /v1/products/{product}/features/{id}

Remove a feature from a product

Deletes the feature attachment to a product

Request parameters

ParameterLocationTypeDescription
idpathstring
productpathstring

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/products/{product}/features/{id}

Retrieve a product_feature

Retrieves a product_feature, which represents a feature attachment to a product

Request parameters

ParameterLocationTypeDescription
expandqueryarray of stringSpecifies which fields in the response should be expanded.
idpathstringThe ID of the product_feature.
productpathstringThe ID of the product.

object. See the OpenAPI specification for the complete schema.

Responses

HTTP 200: Successful response.
FieldTypeDescription
entitlement_feature requiredentitlements.feature
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`.
object requiredstringString representing the object's type. Objects of the same type share the same value.
HTTP default: Error response.
FieldTypeDescription
error requiredapi_errors