Customers & catalog ยท Products
Update product
Changes the fields you send and leaves the others as they are. Every field is optional. A product that doesn't exist or isn't yours returns 404.
Send multipart/form-data or JSON, as for Create product. A new image replaces the old one, new workSamples are added to the existing ones, and categoryIds replaces the product's categories. An empty sku clears it.
Authorization
HeaderSend Authorization: Bearer <accessToken>, the token from Create token.
Path parameters
id string Required
The product's id.Body parameters
title string
The product's name.type enum
PRODUCT or SERVICE. sku and stock apply to PRODUCT only.unitPrice number
Price per unit in the product's currency, e.g. 150 or 49.99. Can't be negative. For a RECURRING product, the price of each interval.status enum
ACTIVE or INACTIVE.visibility enum
PUBLIC or PRIVATE. Only a PUBLIC product can be opened on its public page.description string
A short description.currency enum
USD (default), EUR, GBP, CAD, AUD, AED, SGD, INR, BDT or BRL.chargeType enum
FIXED (default), HOURLY, CUSTOM or RECURRING.interval enum
HOUR, DAY, WEEK, MONTH or YEAR. Required when chargeType is RECURRING.intervalCount integer
1 to 52, default 1. Bills every intervalCount intervals: 3 with MONTH is quarterly.trialDays integer
Free-trial days for a RECURRING product, 0 to 3650.prices array
Several recurring prices, e.g. monthly and yearly, as a JSON array: [{"amount":49,"interval":"MONTH"},{"amount":490,"interval":"YEAR"}]. Each also takes intervalCount, trialDays and nickname. The first is the default price. When sent, it is used instead of unitPrice, intervalCount and trialDays; interval is still required with chargeType RECURRING.taxable boolean
true or false (default).taxRate string
Tax percentage as a number string, e.g. "8.25".sku string
Your stock code, PRODUCT only. It must be unique among your products (409 if not).stock integer
Units in stock, PRODUCT only.categoryIds string[]
Category ids from List categories (GET /merchant/category, see Categories). In multipart, send categoryIds[] once per id; in JSON, an array. In this form, separate them with commas.deliveryTime string
Delivery time shown to buyers, e.g. "5 days".revision string
Revision policy shown to buyers, e.g. "2 revisions included".metadata object
Your own key-value data, returned as you send it. A multipart request stores it as the text you send.