Create a new pricing plan for a product. The plan defines the billing interval, price, and availability for customers.
Required permissions:
plan:createaccess_pass:basic:readplan:basic:readA company API key, company scoped JWT, app API key, or user OAuth token. You must prepend your key/token with the word 'Bearer', which will look like Bearer ***************************
Parameters for CreatePlan
The unique identifier of the company to create this plan for.
"biz_xxxxxxxxxxxxxx"
The unique identifier of the product to attach this plan to.
"prod_xxxxxxxxxxxxx"
The number of days between recurring charges. For example, 30 for monthly or 365 for yearly.
42
The three-letter ISO currency code for the plan's pricing. Defaults to USD.
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 An array of custom field definitions to collect from customers at checkout.
A text description of the plan displayed to customers on the product page.
The number of days until the membership expires and access is revoked. Used for expiration-based plans.
42
An image displayed on the product page to represent this plan.
The amount charged on the first purchase. For one-time plans, this is the full price. For recurring plans, this is an additional charge on top of the renewal price. Provided in the plan's currency (e.g., 10.43 for $10.43).
6.9
Private notes visible only to the business owner. Not shown to customers.
Whether this plan uses legacy payment method controls.
Override the default tax classification for this specific plan.
inclusive, exclusive, unspecified Explicit payment method configuration for the plan. When not provided, the company's defaults apply.
The billing type of the plan, such as one_time or recurring.
renewal, one_time The method used to sell this plan (e.g., buy_now, waitlist, application).
buy_now, waitlist The amount charged each billing period for recurring plans. Provided in the plan's currency (e.g., 10.43 for $10.43).
6.9
The number of installment payments required before the subscription pauses.
42
The maximum number of units available for purchase. Ignored when unlimited_stock is true.
42
The display name of the plan shown to customers on the product page.
The number of free trial days before the first charge on a recurring plan.
42
Whether the plan has unlimited stock. When true, the stock field is ignored. Defaults to true.
Whether the plan is visible to customers or hidden from public view.
visible, hidden, archived, quick_link A successful response
A plan defines pricing and billing terms for a checkout. Plans can optionally belong to a product, where they represent different pricing options such as one-time payments, recurring subscriptions, or free trials.
The unique identifier for the plan.
"plan_xxxxxxxxxxxxx"
The datetime the plan was created.
"2023-12-01T05:00:00.401Z"
The datetime the plan was last updated.
"2023-12-01T05:00:00.401Z"
Controls whether the plan is visible to customers. When set to 'hidden', the plan is only accessible via direct link.
visible, hidden, archived, quick_link The billing model for this plan: 'renewal' for recurring subscriptions or 'one_time' for single payments.
renewal, one_time The method used to sell this plan: 'buy_now' for immediate purchase or 'waitlist' for waitlist-based access.
buy_now, waitlist The currency used for all prices on this plan (e.g., 'usd', 'eur'). All monetary amounts on the plan are denominated in this 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 The company that sells this plan. Null for standalone invoice plans not linked to a company.
The product that this plan belongs to. Null for standalone one-off purchases not linked to a product.
The invoice this plan was generated for. Null if the plan was not created for a specific invoice.
The number of days between each recurring charge. Null for one-time plans. For example, 30 for monthly or 365 for annual billing.
42
The display name of the plan shown to customers on the product page and at checkout. Maximum 30 characters. Null if no title has been set.
"Pro Monthly"
A text description of the plan visible to customers. Maximum 500 characters. Null if no description is set.
"Monthly access to all premium analytics dashboards and data exports."
The full URL where customers can purchase this plan directly, bypassing the product page.
"https://whop.com/pickaxe-analytics/checkout/plan_abc123"
The number of days until the membership expires (for expiration-based plans). For example, 365 for a one-year access pass.
42
The initial purchase price in the plan's base_currency (e.g., 49.99 for $49.99). For one-time plans, this is the full price. For renewal plans, this is charged on top of the first renewal_price.
6.9
The recurring price charged every billing_period in the plan's base_currency (e.g., 9.99 for $9.99/period). Zero for one-time plans.
6.9
The number of free trial days before the first charge on a renewal plan. Null if no trial is configured or the current user has already used a trial for this plan.
42
The number of users who currently hold an active membership through this plan. Only visible to authorized team members.
42
Private notes visible only to the company owner and team members. Not shown to customers. Null if no notes have been added.
"Black Friday 2024 promo plan - expires Dec 1"
The number of units available for purchase. Only visible to authorized team members. Null if the requester lacks permission.
42
When true, the plan has unlimited stock (stock field is ignored). When false, purchases are limited by the stock field.
The total number of installment payments required before the subscription pauses. Null if split pay is not configured. Must be greater than 1.
42
The explicit payment method configuration specifying which payment methods are enabled or disabled for this plan. Null if the plan uses default settings.
How tax is handled for this plan: 'inclusive' (tax included in price), 'exclusive' (tax added at checkout), or 'unspecified' (tax not configured).
inclusive, exclusive, unspecified Whether tax is collected on purchases of this plan, based on the company's tax configuration.
Custom input fields displayed on the checkout form that collect additional information from the buyer.