v2

latestOpenAPI 3.0.0Commercial2026-07-2649110209.4 KB
Products

Creates a new product.

Create a new product for one-time payments, including free products with a 0 price, or subscriptions. Configure pricing, billing cycles, and features.

post/v1/products

Headers

Idempotency-Keystring

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

Request body

namestring required

Name of the product

descriptionstring required

Description of the product

image_urlstring

URL of the product image

image_urlsstring[]

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

priceinteger required

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

currency'EUR' | 'USD' required

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

billing_type'recurring' | 'onetime' required

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

billing_period'once' | 'every-day' | 'every-month' | 'every-three-months' | 'every-six-months' | 'every-year'

Billing interval. Required when billing_type is recurring.

tax_mode'inclusive' | 'exclusive'

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.

tax_category'saas' | 'digital-goods-service' | 'ebooks'

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.

pay_what_you_wantboolean

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.

suggested_priceinteger

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.

default_success_urlstring

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

abandoned_cart_recovery_enabledboolean

Enable abandoned cart recovery for this product

Example request

{
  "image_url": "https://picsum.photos/200/300",
  "image_urls": [
    "https://picsum.photos/200/300",
    "https://picsum.photos/200/301"
  ],
  "price": 400,
  "suggested_price": 1500,
  "default_success_url": "https://example.com/?status=successful",
  "custom_fields": [
    {
      "key": "companyName",
      "label": "Company Name",
      "text": {
        "max_length": 200,
        "min_length": 1
      },
      "checkbox": {
        "label": "I agree to the [terms and conditions](https://example.com/terms)"
      }
    }
  ],
  "custom_field": [
    {
      "key": "companyName",
      "label": "Company Name",
      "text": {
        "max_length": 200,
        "min_length": 1
      },
      "checkbox": {
        "label": "I agree to the [terms and conditions](https://example.com/terms)"
      }
    }
  ]
}

Response

Successfully created a product

idstring required

Unique identifier for the object.

mode'test' | 'prod' | 'sandbox' required

String representing the environment.

objectstring required

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

namestring required

The name of the product

descriptionstring required

A brief description of the product

image_urlstring

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

image_urlsstring[]

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

pricenumber required

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

currencystring required

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

billing_type'recurring' | 'onetime' required

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

billing_period'every-month' | 'every-three-months' | 'every-six-months' | 'every-year' | 'every-day' | 'once' required

Billing period

status'active' | 'archived' required

Lifecycle status of the product: active or archived.

tax_mode'inclusive' | 'exclusive' 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.

tax_category'saas' | 'digital-goods-service' | 'ebooks' 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.

product_urlstring

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

default_success_urlstring nullable

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

created_atstring date-time required

Creation date of the product

updated_atstring date-time required

Last updated date of the product

Example response

{
  "description": "This is a sample product description.",
  "image_url": "https://example.com/image.jpg",
  "image_urls": [
    "https://example.com/image.jpg"
  ],
  "features": [
    {
      "id": "feat_abc123",
      "description": "Access to premium course materials."
    }
  ],
  "price": 400,
  "currency": "USD",
  "product_url": "https://creem.io/product/prod_123123123123",
  "default_success_url": "https://example.com/?status=successful",
  "created_at": "2023-01-01T00:00:00Z",
  "updated_at": "2023-01-01T00:00:00Z"
}