A plan is your way to gain access to an Access Pass. You use a Plan to obtain an Access Pass, which gives birth to a Membership! A plan is super versatile. Let's break it down.

Release Methods

Plans can have three release methods:

  • Buy now
    - A buy now plan means you can get access to it immeditatly, assuming it is in stock. They can be free or paid.
    - stock represents how many can be purchased via this plan. It deducts with each purchase, unless unlimited_stock is set to true, in which the stock will not be touched.
  • Waitlist
    - A waitlist plan means users will have to create a waitlist entry. If you choose to accept a waitlist entry, a membership will be created for this plan and the user who joined the waitlist (entry.user)
    - stock is not relevant for waitlist. It does not matter what its value is.
  • Raffle
    - A raffle plan is just like a waitlist whereas it creates entries when users join it. Unlike waitlists though, the entries are accepted at random.
    - stock represents the amount of raffle entries that will be chosen at the time of the random drawing.
    - With raffles, you can set the max_entries and expires_at (when it will end) under release_method_settings

Pricing Options

Plans can have two pricing options:

  • Renewal
    - The user will be charged on a recurring basis every billing_period days.
  • One Time
    - The user will be charged once upon purchase. You can optionally choose to set an expiration_days which will expire the resulting membership after a certain length of time.

Requirements

Plans have super powerful tools to lock down your plans to users who meet a certain subset of requirements. Below are the different requirements you can set. Here is an example of what the JSON should look like to set them correctly.

  • minimum_discord_account_age
  • twitter_handles
  • custom_password
  • ownership_of_access_passes
  • whitelisted_discord_guild_ids
  • blacklisted_discord_guild_ids
  • ownership_of_smart_contracts
  • whitelisted_discord_account_ids
  • ownership_of_wallet
  • whitelisted_discord_role_ids
{
    "id": "plan_**************",
  "access_pass": "pass_**************",
  "plan_type": "renewal",
  "release_method": "buy_now",
  "visibility": "quick_link",
  "billing_period": 30,
  "internal_notes": "$30 / Month",
  "metadata": {},
  "direct_link": "http://whop.com/checkout/plan_**************?d2c=true&password=SecretPassword",
  "renewal_price": "30.0",
  "initial_price": "0.0",
  "base_currency": "usd",
  "created_at": "2022-12-14T07:40:15.187+02:00",
  "requirements": {
    "custom_password": "SecretPassword"
   },
   "release_method_settings": {
    "max_entries": null,
   "nft_weighted_entries": false
   },
   "card_payments": true,
   "stock": 1,
   "unlimited_stock": false
},