---
title: "Create or update products"
method: POST
path: "/products"
tags: ["Products"]
---

# Create or update products

`POST /products`

Creates products or updates existing products.

If you are creating products in bulk, you can add up to 300 at a time.

## Request body

- CreateoneormorenewproductsRequest
  - `products` object[], required
    - `product` string, required — The product path ID.
    - `display` object, required — Display information for the product in different languages.
      - `en` string — The product's name in English.
    - `pricing` object, required — Pricing details for the product.
      - `price` object, required — The price for the product in different currencies.
        - `USD` number, required — Price in USD.
        - `EUR` number — Price in EUR.
      - `trial` integer — The trial period for the product, in days. Only needed if you are creating a subscription.
      - `interval` 'week' | 'month' | 'year' — The billing interval for the product.
      - `intervalLength` integer — Length of the billing interval.
      - `quantityBehavior` 'allow' | 'lock' | 'hide' — Defines the quantity behavior for the product.
      - `quantityDefault` integer — The default quantity for the product.
      - `paymentCollected` boolean — Whether payment is collected upfront.
      - `paidTrial` boolean — Whether the trial is paid.
      - `trialPrice` object — Trial pricing in different currencies. Required if `paidTrial` is true.
        - `USD` number — Trial price in USD.
        - `EUR` number — Trial price in EUR.
      - `quantityDiscounts` object — Defines the discount applied when a minimum order quantity is reached.
      - `discountReason` object — Reason for the discount in various languages.
        - `en` string — Discount reason in English.
      - `discountDuration` integer — Duration (in billing intervals) that the discount applies.
      - `reminderNotification` object — Configuration for reminder notifications sent before a charge.
        - `enabled` boolean — Whether reminder notifications are enabled.
        - `interval` 'day' | 'week' | 'month' | 'year' — Unit of time used for the reminder interval.
        - `intervalLength` integer — The number of interval units before the charge when the reminder is sent.
      - `overdueNotification` object — Configuration for overdue notifications sent after a failed payment attempt.
        - `enabled` boolean — Whether overdue notifications are enabled.
        - `interval` 'day' | 'week' | 'month' | 'year' — Unit of time used for the overdue notification interval.
        - `intervalLength` integer — Number of interval units before the overdue notification is sent.
        - `amount` number — Amount included in the overdue notification (for example, a past-due amount).
      - `cancellation` object — Defines the cancellation grace period before the subscription is cancelled. **Note:** Changes to the `cancellation` object update the same **Deactivation Settings** shown in the FastSpring app. If you set this value in the API, it overrides the UI configuration for the product.
        - `interval` 'day' | 'week' | 'month' — Unit of time used for the cancellation window.
        - `intervalLength` integer — Number of interval units before cancellation takes effect.

## Response `200`

OK

- union
  - CreateProductsResponse
    - `products` object[]
      - `product` string — The product identifier.
      - `action` string — The action performed on the product.
      - `created.id` string — The unique identifier for the created product.
      - `result` string — The result of the action (e.g., success or error).
  - UpdateProductsResponse
    - `products` object[] — List of products with their update status.
      - `product` string — The product identifier.
      - `action` string — The action performed on the product.
      - `updated.id` string — The unique identifier for the updated product.
      - `result` string — The result of the action (e.g., success or error).

---

[API](https://skmtc.dev/fastspring/apis/fastspring-api-accounts.md) · [All operations](https://skmtc.dev/fastspring/apis/fastspring-api-accounts/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/fastspring/fastspring-api-accounts/revisions/ae2f0b97db3e/schema)
