v8

OpenAPI 3.1.02026-08-033623795.0 MB
Plans

Retrieve Plan

Retrieves the details of an existing plan.

get/plans/{id}

Response

plan retrieved

accountobject nullable required

Account that sells this plan; null for standalone invoice plans.

adaptive_pricing_enabledboolean required

Whether adaptive pricing is enabled for this plan. Raw setting — does not check processor compatibility or feature flags.

billing_periodnumber nullable required

Number of days between recurring charges, such as 30 for monthly or 365 for annual. null for one-time plans.

cancel_discount_intervalsnumber nullable required

Billing intervals the cancellation discount applies to (0 forever, 1 first payment, or a month count). null when none is offered or the actor lacks the plan:basic:read scope.

cancel_discount_percentagenumber nullable required

Cancellation discount as a whole-number percentage. null when none is offered or the actor lacks the plan:basic:read scope.

checkout_stylingobject nullable required

Plan-level checkout styling (background_color, button_color, font_family, border_style); null inherits the account default.

collect_taxboolean required

Whether tax is collected on purchases of this plan, based on the account's tax configuration.

created_atstring required

When the plan was created, as an ISO 8601 timestamp.

currency'usd' | 'sgd' | 'inr' | 'aud' | 'brl' | 'cad' | 'dkk' | 'eur' | 'nok' | 'gbp' | 'sek' | 'chf' | 'hkd' | 'huf' | 'jpy' | 'mxn' | 'myr' | 'pln' | 'czk' | 'nzd' | 'aed' | 'eth' | 'ape' | 'cop' | 'ron' | 'thb' | 'bgn' | 'idr' | 'dop' | 'php' | 'try' | 'krw' | 'twd' | 'vnd' | 'pkr' | 'clp' | 'uyu' | 'ars' | 'zar' | 'dzd' | 'tnd' | 'mad' | 'kes' | 'kwd' | 'jod' | 'all' | 'xcd' | 'amd' | 'bsd' | 'bhd' | 'bob' | 'bam' | 'khr' | 'crc' | 'xof' | 'egp' | 'etb' | 'gmd' | 'ghs' | 'gtq' | 'gyd' | 'ils' | 'jmd' | 'mop' | 'mga' | 'mur' | 'mdl' | 'mnt' | 'nad' | 'ngn' | 'mkd' | 'omr' | 'pyg' | 'pen' | 'qar' | 'rwf' | 'sar' | 'rsd' | 'lkr' | 'tzs' | 'ttd' | 'uzs' | 'rub' | 'btc' | 'cny' | 'usdt' | 'kzt' | 'awg' | 'whop_usd' | 'xau' required

Three-letter ISO currency code for this plan's prices.

deletableboolean nullable required

Whether the plan can be deleted (it has no memberships or waitlist entries). null unless the actor has the plan:basic:read scope on the plan's account.

descriptionstring nullable required

Customer-visible plan description. Maximum 1000 characters. null if no description is set.

expiration_daysnumber nullable required

Access duration in days for expiration-based plans, such as 365 for a one-year pass. null for plans without an expiration.

formatted_pricestring required

Human-readable price for display (currency + interval), e.g. "$10 / month".

idstring required

Plan ID, prefixed plan_.

imageobject nullable required

Pricing-tier image (url, blurhash) shown on the product page; null when no image is set.

initial_pricenumber required

Initial purchase price in plan currency.

internal_notesstring nullable required

Private notes not shown to customers. null unless the actor has the plan:basic:read scope on the plan's account.

invoiceobject nullable required

Invoice this plan was generated for; null unless created for an invoice.

member_countnumber nullable required

Active memberships through this plan. null unless the actor has the plan:basic:read scope on the plan's account.

metadataobject nullable required

Custom key-value pairs stored on the plan. Included in webhook payloads for payment and membership events. Maximum 50 keys, 100 characters per key, 500 characters per value.

offer_cancel_discountboolean nullable required

Whether a cancellation discount is offered. null unless the actor has the plan:basic:read scope on the plan's account.

payment_method_configurationobject nullable required

Payment method configuration (enabled, disabled, include_platform_defaults); null when plan uses default settings.

plan_type'renewal' | 'one_time' required

Billing model for this plan.

productobject nullable required

Product this plan belongs to; null for standalone plans.

purchase_urlstring required

URL where customers can purchase this plan directly.

release_method'buy_now' | 'waitlist' required

Sales method for this plan.

renewal_pricenumber required

Recurring price charged every billing period.

split_pay_required_paymentsnumber nullable required

Installment payments required before the subscription pauses. Must be greater than 1. null if split pay is not configured.

stocknumber nullable required

Units available for purchase. null unless the actor has the plan:basic:read scope on the plan's account.

strike_through_initial_pricenumber nullable required

Original initial price shown with a strikethrough, in the plan's currency. null when no strikethrough is set.

strike_through_renewal_pricenumber nullable required

Original renewal price shown with a strikethrough, in the plan's currency. null when no strikethrough is set.

tax_type'inclusive' | 'exclusive' | 'unspecified' required

How tax is handled for this plan, including whether tax is included in the price, added at checkout, or not configured.

three_ds_level'mandate_challenge' | 'frictionless' | 'null' nullable required

3D Secure behavior for this plan; null inherits the account default.

titlestring nullable required

Plan display name shown to customers. Maximum 30 characters. null if no title has been set.

trial_period_daysnumber nullable required

Free trial days before the first renewal charge. null if no trial is configured or the user has already used a trial for this plan.

unlimited_stockboolean required

Whether the plan has unlimited stock. When true, the stock field is ignored; waitlist plans always report true.

updated_atstring required

When the plan was last updated, as an ISO 8601 timestamp.

visibility'visible' | 'hidden' | 'archived' | 'quick_link' required

Controls where this plan can be seen. When hidden, the plan is reachable only by its direct link.

Example response

{
  "currency": "usd",
  "custom_fields": [
    {
      "field_type": "text"
    }
  ],
  "plan_type": "renewal",
  "release_method": "buy_now",
  "tax_type": "inclusive",
  "three_ds_level": "mandate_challenge",
  "visibility": "visible"
}