A Membership is the active relationship between a user and a product. It tracks access, billing status, and renewal schedule. You don’t create memberships directly; checkout does that for you. Once a membership exists, you can read it, pause or cancel billing, comp time, or update metadata.Documentation Index
Fetch the complete documentation index at: https://docs.whop.com/llms.txt
Use this file to discover all available pages before exploring further.
Lifecycle at a glance
| Action | Method | What it does |
|---|---|---|
| Pause billing | memberships.pause | Stops future renewals until resumed. Existing access stays. |
| Resume billing | memberships.resume | Reverses a pause. |
| Cancel | memberships.cancel | At period end (default) or immediate. |
| Uncancel | memberships.uncancel | Reverses a pending cancel_at_period_end. |
| Comp time | memberships.addFreeDays | Extends the next renewal date by N days. |
| Update metadata | memberships.update | Patch metadata or other writable fields. |
Retrieve and list
Pause and resume
Pausing stops the next billing cycle. The user keeps their existing access until the current period ends, but the renewal won’t fire.void_payments: true voids any pending charges.
Cancel
Two cancellation modes. Default isat_period_end, which keeps access until the current renewal date and then deactivates.
at_period_end flips cancel_at_period_end to true on the membership. The user keeps access until renewal, then the membership deactivates and membership.deactivated fires.Uncancel
If the user changes their mind before the period ends, undo a pendingat_period_end cancellation. Has no effect if the membership wasn’t scheduled to cancel.
Add free days
Comp the user with extra time on their current period. The next renewal date moves forward byfree_days. Useful for service interruptions, support gestures, or referral rewards.
free_days accepts 1 through 1095 (3 years).
Update metadata
Patch arbitrary metadata or other writable fields on the membership.Listen for lifecycle events
Subscribe via webhooks. These are the events that fire across the lifecycle:| Event | When it fires |
|---|---|
membership.activated | Membership becomes valid (initial purchase or renewal payment succeeds). |
membership.deactivated | Membership goes invalid (failed payment, immediate cancel, period-end cancel landing, or user leaves). |
membership.cancel_at_period_end_changed | The user toggled cancellation on or off (pairs with cancel and uncancel). |
pause / resume / add_free_days, the membership status doesn’t flip, so no activation/deactivation event fires. If you need to confirm the mutation succeeded, retrieve the membership after the call or poll on your own schedule.
Next steps
Accept payments
Where memberships come from. One-time and recurring checkouts.
Save payment methods
On-file cards for future renewals and off-session billing.
Listen to webhooks
React to activation, deactivation, and cancellation toggles.
Memberships API reference
Full resource: fields, statuses, and every endpoint.

