Skip to content

Update Plan

Update fields on a pricing plan. Only include fields you want to change.

PATCH /v1/products/:id/plans/:planId

Path Parameters

ParameterDescription
idProduct ID
planIdPlan ID

Request Body

FieldTypeDescription
namestringPlan name
slugstringURL slug
billingCyclestringe.g. monthly, yearly, lifetime
pricenumberPlan price
currencystringISO currency code
siteLimitnumberActivation seats per license
shortDescriptionstringOne-liner for pricing cards
descriptionstringLonger description
isPublicbooleanShow on public pricing
originalPricenumberStrike-through compare-at price
badgestringMarketing badge
polarProductIdstringManual override of the linked Polar product
stripePriceIdstringManual override of the linked Stripe price
statusstringPlan status

Response

json
{
  "data": {
    "message": "Plan updated"
  }
}

Example

bash
curl -X PATCH "https://api.packedge.dev/v1/products/prd_xxx/plans/plan_xxx" \
  -H "Authorization: Bearer pk_your_api_key" \
  -H "Content-Type: application/json" \
  -d '{
    "price": 129,
    "badge": "Best value"
  }'

Notes

  • When a Stripe/Polar account is connected, price / currency / cycle changes automatically re-create the linked provider products (the old Polar products are archived), while name / description changes patch them in place
  • A polarProductId / stripePriceId you pass explicitly wins over the auto-sync
  • The public pricing cache is invalidated on every change