Products

Update a product

Update a product. Only supplied fields change; a price change mints a new default price.

patch/v1/products/{id}

Path parameters

idstring required

The product ID

Request body

namestring

Name of the product

descriptionstring

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. An empty list — or an explicit null — removes all images. Omit to leave the gallery unchanged.

default_success_urlstring

Redirect URL after successful payment.

priceinteger

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'

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

billing_type'recurring' | 'onetime'

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' | 'custom'

Billing interval. Required when billing_type is recurring. Use a preset for the common cadences, or custom together with recurring_interval + recurring_interval_count for anything else (e.g. weekly).

recurring_interval'day' | 'week' | 'month' | 'year'

Unit of a custom billing period. Required when billing_period is custom; must be omitted for preset billing periods.

recurring_interval_countinteger

Number of recurring_interval units per billing cycle. Required when billing_period is custom. Bounds: day 1–365, week 1–52, month 1–24, year 1–3.

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.

pay_what_you_wantboolean

Enable pay-what-you-want pricing (one-time only).

suggested_priceinteger

Suggested amount in cents when pay_what_you_want is enabled. Omit to leave unchanged; send null to clear it.

Response

Successfully updated the 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' | 'custom' required

Billing period

recurring_intervalobject nullable

The unit of the recurring billing interval (day, week, month, or year). Together with recurring_interval_count this is authoritative for renewal timing — a billing_period of custom cannot be interpreted without it. For presets it is derived from the cadence (e.g. every-three-monthsmonth). null for one-time products.

recurring_interval_countobject nullable

The number of recurring_interval units per billing cycle (e.g. 3 with a month interval bills every three months). Together with recurring_interval this is authoritative for renewal timing. For presets it is derived from the cadence. null for one-time products.

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"
}

Changes

Changed in 2 of the 4 revisions of this API.16

  • 098b518de5cd15See the full diff
    • added the new custom enum value to the billing_period response property for the response status 200

      response-property-enum-value-added

    • added the new optional request property recurring_interval

      new-optional-request-property

    • added the new optional request property recurring_interval_count

      new-optional-request-property

    • added the new custom enum value to the request property billing_period

      request-property-enum-value-added

    • added the optional property recurring_interval to the response with the 200 status

      response-optional-property-added

    • added the optional property recurring_interval_count to the response with the 200 status

      response-optional-property-added

    • endpoint added

      endpoint-added