Skip to main content
POST
/
v1
/
products
Creates a new product.
curl --request POST \
  --url https://api.creem.io/v1/products \
  --header 'Content-Type: application/json' \
  --header 'x-api-key: <api-key>' \
  --data '
{
  "name": "<string>",
  "price": 400,
  "currency": "USD",
  "billing_type": "recurring",
  "description": "<string>",
  "image_url": "https://picsum.photos/200/300",
  "billing_period": "every-month",
  "tax_mode": "inclusive",
  "tax_category": [
    "saas",
    "digital-goods-service",
    "ebooks"
  ],
  "default_success_url": "https://example.com/?status=successful",
  "custom_fields": [
    {
      "type": "text",
      "key": "companyName",
      "label": "Company Name",
      "optional": true,
      "text": {
        "max_length": 200,
        "min_length": 1
      },
      "checkbox": {
        "label": "I agree to the [terms and conditions](https://example.com/terms)"
      }
    }
  ],
  "custom_field": [
    {
      "type": "text",
      "key": "companyName",
      "label": "Company Name",
      "optional": true,
      "text": {
        "max_length": 200,
        "min_length": 1
      },
      "checkbox": {
        "label": "I agree to the [terms and conditions](https://example.com/terms)"
      }
    }
  ],
  "abandoned_cart_recovery_enabled": false
}
'
{
  "id": "<string>",
  "mode": "test",
  "object": "<string>",
  "name": "<string>",
  "description": "This is a sample product description.",
  "price": 400,
  "currency": "USD",
  "billing_type": "recurring",
  "billing_period": "every-month",
  "status": "<string>",
  "tax_mode": "inclusive",
  "tax_category": [
    "saas",
    "digital-goods-service",
    "ebooks"
  ],
  "created_at": "2023-01-01T00:00:00Z",
  "updated_at": "2023-01-01T00:00:00Z",
  "image_url": "https://example.com/image.jpg",
  "features": [
    {
      "id": "feat_abc123",
      "type": "licenseKey",
      "description": "Access to premium course materials."
    }
  ],
  "product_url": "https://creem.io/product/prod_123123123123",
  "default_success_url": "https://example.com/?status=successful"
}

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.

Body

application/json

Product creation payload

name
string
required

Name of the product

price
integer
required

The price of the product in cents

Required range: x >= 100
Example:

400

currency
string
required

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

Example:

"USD"

billing_type
string
required

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

Example:

"recurring"

description
string

Description of the product

image_url
string

URL of the product image

Example:

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

billing_period
string

Billing period, required if billing_type is recurring

Example:

"every-month"

tax_mode
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.

Example:

"inclusive"

tax_category
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.

Example:
["saas", "digital-goods-service", "ebooks"]
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
string
required

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

Example:

"recurring"

billing_period
string
required

Billing period

Example:

"every-month"

status
string
required

Status of the product

tax_mode
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.

Example:

"inclusive"

tax_category
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.

Example:
["saas", "digital-goods-service", "ebooks"]
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"

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"