SaaSFlow
DevelopersAPIReferenceproducts

Update product

Update a product. Only the fields you send change. Renaming is safe for reporting: subscription events reference the product by id, so past revenue follows…

Authentication

Checking whether you're signed in…
PUT
/companies/{companyId}/products/{productId}

Authorization

headerAuthorization<token>

A SaaSFlow API key (format sf_…) or an OAuth bearer token. Paste only the key — the proxy adds the Bearer prefix. Create an API key in Settings → Company settings → API keys — see API keys.

Path Parameters

companyId*string
Length1 <= length
productId*string
Length1 <= length

Request Body

application/json
  1. body
name?string
Length1 <= length
productGroupId?string|null
order?number

Response Body

Updated product

application/json
  1. response
id*string
Formatuuid
companyId*string
Formatuuid
name*string

The name of the product.

nameManuallyEdited*boolean

Whether the name is protected from integration updates after a manual rename.

productGroupId*|

The ID of the product group this product belongs to. Null if ungrouped.

Formatuuid
order*number

A number used for ordering products within their group in the UI.

Range-8388608 <= value <= 8388607
createdTime*|
Formatdate-time
createdUserId*string|null
lastUpdatedTime*|
Formatdate-time
lastUpdatedUserId*string|null
externalIds*array<string>

External IDs (URNs) linked to this product (e.g., Stripe, HubSpot).

curl -X PUT "https://example.com/companies/string/products/string" \  -H "Content-Type: application/json" \  -d '{}'
{  "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",  "companyId": "8bb73d03-06b4-47c7-80c7-59301f770eda",  "name": "string",  "nameManuallyEdited": true,  "productGroupId": "c416ccc2-c7d5-4733-9136-58a3b93937ed",  "order": -8388608,  "createdTime": "2019-08-24T14:15:22Z",  "createdUserId": "string",  "lastUpdatedTime": "2019-08-24T14:15:22Z",  "lastUpdatedUserId": "string",  "externalIds": [    "string"  ]}