Activate or deactivate a subscription product.
POST /v1/actions/subscription-product/update-status
Authentication: API Key
Request Body
Field Type Required Description idstring Yes Product ID (PROD_xxx format) statusstring Yes active or inactive
Example Request
SDK
TypeScript (fetch)
Java
Python
Go
Rust
C
C++
cURL
wget
import { ProductVersionStatus } from "@waffo/pancake-ts" ;
await client . subscriptionProducts . updateStatus ({
id: "PROD_3F7H2J5L8N1Q4S6U" ,
status: ProductVersionStatus . Inactive ,
});
Success Response (200)
{
"data" : {
"product" : {
"id" : "PROD_3F7H2J5L8N1Q4S6U" ,
"storeId" : "STO_2D5F8G3H1K4M6N9P" ,
"name" : "Pro Plan" ,
"description" : "Full access to all Pro features." ,
"billingPeriod" : "monthly" ,
"prices" : {
"USD" : { "amount" : "29.00" , "taxCategory" : "saas" },
"EUR" : { "amount" : "27.00" , "taxCategory" : "saas" }
},
"media" : [],
"successUrl" : "https://example.com/welcome" ,
"metadata" : { "trialDays" : 14 },
"status" : "inactive" ,
"createdAt" : "2026-03-30T10:30:00.000Z" ,
"updatedAt" : "2026-03-30T13:00:00.000Z"
}
}
}
Response Fields
Same as Create Subscription Product response .
Deactivating a subscription product prevents new signups but does not cancel existing active subscriptions. Subscribers continue their current billing cycle unaffected.
Errors
Retry policy: Never retry 4xx — fix the request and resubmit. Retry 5xx with exponential backoff (start 5s, max 3 attempts).
Status errors[0].messageWhat it means Recommended handling 400 Missing header: x-context-merchant-idThe merchant context header was not forwarded Fix your SDK configuration 400 Missing or invalid header: x-context-environmentEnvironment header is missing or not test / prod Set X-Environment to test or prod 400 Missing required field: idRequest body did not include id Add id, resubmit 400 Expected format: PROD_xxx, got "X"id is not a valid Short IDUse a PROD_ prefixed Short ID 400 Invalid or missing status (must be 'active' or 'inactive')status is missing or not one of the two allowed valuesUse active or inactive 400 Message contains has no version The target environment (test or prod) has no version yet Create a version in this environment first (publish from test, or create in test) 401 UnauthorizedAuthentication failed Verify API key, timestamp, and signature 404 Product not found / Current version not foundProduct ID does not exist (or current version missing) Verify the product ID 500 Internal server errorTransient downstream failure Retry with exponential backoff (start 5s, max 3 attempts)