Update Membership
Updates a membership’s metadata, scheduled cancellation, renewal payment method, or renewal cadence.
Authorizations
An Account API key, an App API key, an account access token, an account-scoped user token, or a user OAuth token. Prepend the key or token with Bearer, for example Bearer ***************************. See Auth & API keys for how to get each one.
Headers
Pins the request to a dated API version.
"2026-10-13"
Path Parameters
Membership ID (mem_ tag), or a software license key.
Body
Number of days between recurring charges. Sets the current period end to the current period start plus this value and applies to every recurring variant, so future renewals use the same cadence. The new period end must remain in the future. Only for active, trialing, or past-due memberships billed automatically by Whop; invoice, externally billed, and canceling memberships are not supported. Existing non-daily memberships cannot be changed to daily billing. Cannot be combined with other fields.
1 <= x <= 36545
true cancels at the end of the current billing period (the customer keeps access until then); false reverses a pending cancellation.
true
Key-value pairs to merge into the membership's metadata. Pass an empty object to clear it.
The ID of a payment method the customer has saved with your account. Future renewals charge it, and an open past-due payment is retried on it right away. Requires the member:payment_methods:manage permission.
"payt_xxxxxxxxxxxxx"
Response
membership updated
The account (seller) this membership belongs to.
The membership's affiliate commission. null without an affiliate, without affiliate:basic:read on the account, and always in webhooks.
Number of days between recurring charges. null for non-renewing memberships or memberships with multiple renewal schedules.
30
Whether the membership is set to cancel when the current billing period ends. Only meaningful for recurring variants.
false
When cancellation was requested, or when the membership was canceled if no request time is recorded, as an ISO 8601 timestamp. null when neither is recorded.
"2026-01-01T12:00:00.000Z"
Free-text explanation provided when canceling. null when no reason was provided.
"Too expensive"
How renewals are collected. charge_automatically charges the saved payment method each period; send_invoice emails the buyer an invoice each period. null when not set.
charge_automatically, send_invoice, null "send_invoice"
When the membership was created, as an ISO 8601 timestamp.
"2026-01-01T12:00:00.000Z"
When the current billing period renews, or when a non-renewing membership expires, as an ISO 8601 timestamp. null for one-time purchases with no expiration.
"2026-01-01T12:00:00.000Z"
When the current billing period started, as an ISO 8601 timestamp. null when no billing period is recorded.
"2026-01-01T12:00:00.000Z"
When access ends for a membership with a fixed expiration, as an ISO 8601 timestamp. null when the membership has no expiration, such as a renewing membership.
"2026-01-01T12:00:00.000Z"
Membership ID, prefixed mem_.
"mem_xxxxxxxxxxxxxx"
The variant's current up-front price, in the variant's currency. A list price, not necessarily what the buyer paid. amount is "0.00" when the first charge is free.
The software license key for this membership. Only present when the product includes a software licensing experience.
"WHOP-XXXX-XXXX-XXXX"
URL where the buyer can sign in to manage billing. null without a member record or unless the caller is the buyer or has member:manage on the account.
"https://whop.com/billing/manage/mber_xxxxxxxxxxxxxx"
The caller's member row on the account. Present only when the membership belongs to the caller; null on seller-side reads.
The buyer's member record on the account, prefixed mber_. null when the membership has no member record, such as an unclaimed membership.
"mber_xxxxxxxxxxxxxx"
Custom key-value pairs stored on the membership, commonly used for software licensing.
The membership's latest lifecycle event, such as renewing_on or canceled_on. Pair it with most_recent_action_at. null when none is recorded.
canceled_on, finished_split_pay_at, canceling_on, ending_on, renewing_on, past_due, next_payment_attempt, paused_at, trial_ends_at, unresolved_at, trial_canceling_on, null "renewing_on"
When most_recent_action happened or is scheduled to happen, as an ISO 8601 timestamp. A future time for upcoming events such as renewing_on. null when no action is recorded.
"2026-01-01T12:00:00.000Z"
The buyer's phone number recorded for this membership, or null. The number collected (or verified) at checkout when the seller's phone collection is on; falls back to the buyer's account number when they have shared one with this seller.
"+xxxxxxxxxxx"
The variant the buyer purchased, prefixed plan_.
"plan_xxxxxxxxxxxxxx"
The product this membership grants access to.
The product this membership grants access to, prefixed prod_.
"prod_xxxxxxxxxxxxxx"
The promo code discounting this membership, prefixed promo_. null when none is applied. Set at checkout or by Apply Promo Code to Membership.
"promo_xxxxxxxxxxxxxx"
What the next renewal charges, after any promo code that still applies. null for non-renewing memberships.
Paid installments counted so far on a split pay membership. null when the membership is not on split pay, or before its first installment is counted.
null
Installment payments required before the membership stops billing. null when the membership is not on split pay.
null
Billing state of the membership. active/trialing memberships grant access; past_due is the grace period after a failed payment; completed one-time purchases keep access; canceled/expired do not.
trialing, active, past_due, completed, canceled, expired, unresolved "active"
When the membership was last changed, as an ISO 8601 timestamp. Reflects the most recent change to the membership itself, so you can reconcile against webhook retries, replays, and backfills.
"2026-01-01T12:00:00.000Z"
The buyer, prefixed user_. null when the buyer is another business or the membership is unclaimed.
"user_xxxxxxxxxxxxxx"

