SoftSolzSoftSolz
HomeAPI GuideAPI ReferenceWidget Tester

Add a product

Add a product to the catalogue. A price is required (use 0 for a free product). A subscription product needs a billing interval. A field that is not on a product answers 400 unknown_field, and a value that is too long or out of range is refused rather than changed. A SKU already used in the workspace answers 409 sku_exists.

POSThttps://app.softsolz.uk/api/v1/services/catalog/catalog/products

Recent Requests

Kept only in this browser
TimeStatusTook
Send a request with Try it to see it here.

Headers

Authorizationstringrequired

Bearer token: Bearer sk_live_... (or sk_test_... for sandbox). A login token will not work here.

Idempotency-Keystring

Optional idempotency key for safe retries.

Body Params

namestringrequired

Product name.

kindstring

Sold once, or billed again every interval. Defaults to one_off.

billing_intervalstring

How often a subscription bills. Required when kind is subscription, ignored otherwise.

unit_price_centsintegerrequired

Price of one unit in minor units (pence or cents). Required. Use 0 for a free product.

currencystring

Three-letter currency code, for example GBP. It is stored in capitals, so gbp becomes GBP. Defaults to GBP.

tax_rate_percentnumber

Tax rate from 0 to 100. Defaults to 0.

trial_daysinteger

Free days before a subscription first bills, a whole number from 0 to 365. Defaults to 0.

skustring | null

Your stock code. It must be unique in the workspace.

descriptionstring | null

Longer description.

activeboolean

Whether the product can be sold. Defaults to true.

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 POST \
--url https://app.softsolz.uk/api/v1/services/catalog/catalog/products \
--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,
"description": "Everything in Basic plus priority support."
}'

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 · 201

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