Skip to main content
POST
Creates a new product.

Authorizations

x-api-key
string
header
required

API key for authentication. You can find your API key in the Creem dashboard under Settings > API Keys.

Headers

Idempotency-Key
string

Optional key that makes retries return the originally created product instead of creating a duplicate.

Body

application/json

Product creation payload

name
string
required

Name of the product

description
string
required

Description of the product

price
integer
required

The price of the product in cents. Must be 0 (free product) or at least 100 (one whole unit of the currency).

Example:

400

currency
enum<string>
required

Three-letter uppercase ISO 4217 currency code. Must be one of Creem's supported currencies.

Available options:
EUR,
USD
Example:

"USD"

billing_type
enum<string>
required

Billing method for the product: recurring subscription or onetime payment.

Available options:
recurring,
onetime
Example:

"recurring"

image_url
string

URL of the product image

Example:

"https://picsum.photos/200/300"

image_urls
string[]

Ordered list of product image URLs (max 8). The first entry is the cover image; when provided it takes precedence over image_url.

Example:
billing_period
enum<string>

Billing interval. Required when billing_type is recurring.

Available options:
once,
every-day,
every-month,
every-three-months,
every-six-months,
every-year
Example:

"every-month"

tax_mode
enum<string>

Specifies the tax calculation mode for the transaction. If set to "inclusive," the tax is included in the price. If set to "exclusive," the tax is added on top of the price.

Available options:
inclusive,
exclusive
Example:

"inclusive"

tax_category
enum<string>

Categorizes the type of product or service for tax purposes. This helps determine the applicable tax rules based on the nature of the item or service.

Available options:
saas,
digital-goods-service,
ebooks
Example:

"saas"

pay_what_you_want
boolean

Enable pay-what-you-want pricing: the customer chooses the amount at checkout. The price field acts as the minimum the customer must pay. Only supported for one-time payment products.

Example:

false

suggested_price
integer

Suggested amount in cents, pre-filled at checkout when pay_what_you_want is enabled. Must be greater than or equal to price (the minimum). Ignored when pay_what_you_want is disabled.

Example:

1500

default_success_url
string

The URL to which the user will be redirected after successfull payment.

Example:

"https://example.com/?status=successful"

custom_fields
object[]

Collect additional information from your customer using custom fields during checkout. Up to 3 fields are supported.

custom_field
object[]
deprecated

DEPRECATED: Use custom_fields instead. Collect additional information from your customer using custom fields during checkout. Up to 3 fields are supported.

abandoned_cart_recovery_enabled
boolean
default:false

Enable abandoned cart recovery for this product

Response

Successfully created a product

id
string
required

Unique identifier for the object.

mode
enum<string>
required

String representing the environment.

Available options:
test,
prod,
sandbox
object
string
required

String representing the object's type. Objects of the same type share the same value.

name
string
required

The name of the product

description
string
required

A brief description of the product

Example:

"This is a sample product description."

price
number
required

The price of the product in cents. 1000 = $10.00

Example:

400

currency
string
required

Three-letter ISO currency code, in uppercase. Must be a supported currency.

Example:

"USD"

billing_type
enum<string>
required

Indicates the billing method for the customer. It can either be a recurring billing cycle or a onetime payment.

Available options:
recurring,
onetime
Example:

"recurring"

billing_period
enum<string>
required

Billing period

Available options:
every-month,
every-three-months,
every-six-months,
every-year,
every-day,
once
Example:

"every-month"

status
enum<string>
required

Lifecycle status of the product: active or archived.

Available options:
active,
archived
Example:

"active"

tax_mode
enum<string>
required

Specifies the tax calculation mode for the transaction. If set to "inclusive," the tax is included in the price. If set to "exclusive," the tax is added on top of the price.

Available options:
inclusive,
exclusive
Example:

"inclusive"

tax_category
enum<string>
required

Categorizes the type of product or service for tax purposes. This helps determine the applicable tax rules based on the nature of the item or service.

Available options:
saas,
digital-goods-service,
ebooks
Example:

"saas"

created_at
string<date-time>
required

Creation date of the product

Example:

"2023-01-01T00:00:00Z"

updated_at
string<date-time>
required

Last updated date of the product

Example:

"2023-01-01T00:00:00Z"

image_url
string

URL of the product image. Only png as jpg are supported

Example:

"https://example.com/image.jpg"

image_urls
string[]

Ordered list of product image URLs. The first entry is the cover image (mirrored in image_url).

Example:
features
object[]

Features of the product.

product_url
string

The product page you can redirect your customers to for express checkout.

Example:

"https://creem.io/product/prod_123123123123"

default_success_url
string | null

The URL to which the user will be redirected after successfull payment.

Example:

"https://example.com/?status=successful"

custom_fields
object[] | null

Custom fields configured for the product. Collect additional information from your customer during checkout.