Change a product, or retire it
Change the fields you send and leave the rest. To retire a product so it can no longer be sold, send active set to false. A field that is not on a product answers 400 unknown_field.
https://app.softsolz.uk/api/v1/services/catalog/catalog/products/{id}Recent Requests
Kept only in this browserPath Params
idstringrequiredHeaders
AuthorizationstringrequiredBearer token: Bearer sk_live_... (or sk_test_... for sandbox). A login token will not work here.
Idempotency-KeystringOptional idempotency key for safe retries.
Body Params
namestringProduct name.
kindstringSold once, or billed again every interval.
billing_intervalstringHow often a subscription bills.
unit_price_centsintegerPrice of one unit in minor units.
currencystringThree-letter currency code, stored in capitals (gbp becomes GBP).
tax_rate_percentnumberTax rate from 0 to 100.
trial_daysintegerFree days before a subscription first bills, 0 to 365.
skustring | nullYour stock code. It must be unique in the workspace.
descriptionstring | nullLonger description.
activebooleanSend false to retire the product, or true to put it back on sale.
Response
Response Body
idstringProduct id.namestringProduct name.skustring | nullYour stock code, unique in the workspace when set.descriptionstring | nullLonger description.kindstringSold once, or billed again every interval.currencystringThree-letter currency code, always stored in capitals (gbp becomes GBP).unit_price_centsintegerPrice of one unit in minor units.tax_rate_percentnumberTax rate, 0 to 100.billing_intervalstring | nullHow often a subscription bills. Null for a one-off product.trial_daysintegerFree days before a subscription first bills.activebooleanWhether the product can still be sold. A retired product is false.created_atstringWhen the product was added.updated_atstringWhen the product last changed.Request
curl --request PATCH \ --url https://app.softsolz.uk/api/v1/services/catalog/catalog/products/{id} \ --header 'Authorization: Bearer sk_live_your_key' \ --header 'Content-Type: application/json' \ --data '{ "name": "Pro plan", "kind": "subscription", "billing_interval": "month", "unit_price_cents": 2900, "currency": "GBP", "tax_rate_percent": 20, "trial_days": 14, "sku": "PRO-MONTHLY", "description": "Everything in Basic plus priority support.", "active": false}'Credentials
Sent as a Bearer token and used in the samples above and in Try it. Kept only in this browser tab until you close it. Use an sk_test_ key to stay in your sandbox.
Response · 200
{ "data": { "id": "17", "name": "Pro plan", "sku": "PRO-MONTHLY", "description": "Everything in Basic plus priority support.", "kind": "subscription", "currency": "GBP", "unit_price_cents": 2900, "tax_rate_percent": 20, "billing_interval": "month", "trial_days": 14, "active": true, "created_at": "2026-10-01T09:00:00.000Z", "updated_at": "2026-10-01T09:00:00.000Z" }}