Update plan

Update an existing plan.

Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…

Overview

Update an existing plan. All fields are optional — only provided fields are changed.

Image upload

The image field accepts a file upload (not a URL). Use multipart/form-data content type when uploading an image.

Renewal trigger

renewal_trigger decides what closes a billing cycle.

ValueCycle ends
date (default)On the subscription's renewal date, as it always has.
shipments_exhaustedAs soon as every shipment the cycle paid for has been delivered, whatever the calendar says.

shipments_exhausted requires recognized_revenue_type to be shipments and a shipments_per_interval to be set; the request is rejected otherwise.

Subscriptions on a shipments_exhausted plan behave differently in three ways:

  • Their renews_at and expires_at move to the moment the last issue was delivered once the cycle's invoice runs out of shipments. Those dates are derived, so they cannot be set directly.
  • They cannot be renewed ahead of time. Renew subscription returns 422 for them, because renewing early would extend the cycle by a date the plan does not bill on. Adjust the subscription's remaining shipments instead.
  • They never generate an advance invoice, since there is no future period to invoice for.

Revenue is recognized against the invoice that paid for each shipment rather than against the calendar period, so a fulfilment approved after the cycle closed is still recognized.

Path Params
int32
required

Plan ID.

Query Params
int32
required

The unique identifier of the site associated with your account.

Body Params
string
length ≤ 255

Plan display name visible to customers.

string
length ≤ 255

Internal reference name (not visible to customers).

boolean

If true, the plan appears on your website for direct subscription.

number
≥ 0

Plan price (e.g. 15.00 for $15.00). Set to 0 for a free plan.

boolean

If true, subscriptions on this plan can be refunded.

string
enum

How revenue is recognized: by time period or by shipments delivered.

Allowed:
integer
0 to 730

Number of free trial days (0 for no trial). Maximum 730 days.

string

Plan description displayed to customers.

entitlements
array

Access permissions granted by this plan. See Authorization for details.

entitlements
integer
1 to 1000

Number of physical shipments per billing interval.

integer
1 to 365

Days after invoice due date before auto-marking as uncollectible.

string
enum

Renewal behavior strategy.

Allowed:
string
enum
Defaults to date

What closes a billing cycle. "date" ends the cycle on its renewal date. "shipments_exhausted" ends it as soon as every shipment the cycle paid for has been delivered, which is what print subscriptions billed by issue count need. "shipments_exhausted" requires recognized_revenue_type=shipments and a shipments_per_interval, and a plan using it cannot be renewed ahead of time and never generates an advance invoice. Defaults to date.

Allowed:
date

Plan expiration date (YYYY-MM-DD). Must be tomorrow or later.

ip_addresses
array of strings

IP addresses (CIDR notation) for IP-based auto-subscription. See Plans for details.

ip_addresses
domains
array of strings

Email domains for domain-based auto-subscription. See Plans for details.

domains
string

Description shown when the plan is gifted. See Plans for details.

string
length ≤ 100

Apple App Store product ID. See Plans for details.

countries
array of strings

ISO country codes to restrict plan availability.

countries
integer

Parent plan ID for group/family plans. See Plans for details.

number

Original price before discount (stored in metadata).

number

Discount percentage from original price (stored in metadata).

boolean

If true, customers can subscribe via invoice (check/wire payment).

boolean

If true, this plan is a donation (no content access).

boolean

If true, the plan is hidden from public display.

integer
≥ 1

Maximum member seats for membership plans.

string
length ≤ 191

External plan ID from a previous provider.

boolean

Whether the plan was imported from an external system.

integer
≥ 1

Days before renewal to send upcoming invoice notification.

Responses

Language
Credentials
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json