Skip to main content
Activate or deactivate a subscription product.
POST /v1/actions/subscription-product/update-status
Authentication: API Key

Request Body

FieldTypeRequiredDescription
idstringYesProduct ID (PROD_xxx format)
statusstringYesactive or inactive

Example Request

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).
Statuserrors[0].messageWhat it meansRecommended handling
400Missing header: x-context-merchant-idThe merchant context header was not forwardedFix your SDK configuration
400Missing or invalid header: x-context-environmentEnvironment header is missing or not test / prodSet X-Environment to test or prod
400Missing required field: idRequest body did not include idAdd id, resubmit
400Expected format: PROD_xxx, got "X"id is not a valid Short IDUse a PROD_ prefixed Short ID
400Invalid or missing status (must be 'active' or 'inactive')status is missing or not one of the two allowed valuesUse active or inactive
400Message contains has no versionThe target environment (test or prod) has no version yetCreate a version in this environment first (publish from test, or create in test)
401UnauthorizedAuthentication failedVerify API key, timestamp, and signature
404Product not found / Current version not foundProduct ID does not exist (or current version missing)Verify the product ID
500Internal server errorTransient downstream failureRetry with exponential backoff (start 5s, max 3 attempts)