Memberships

Uncancel membership

Reverse a pending cancellation for a membership that was scheduled to cancel at period end.

Required permissions:

  • member:manage
  • member:email:read
  • member:basic:read
post/memberships/{id}/uncancel

Path parameters

idstring required
Example:mem_xxxxxxxxxxxxxx

The unique identifier of the membership to uncancel.

Response

A successful response

cancel_at_period_endboolean required

Whether the membership is set to cancel when the current billing period ends. Only meaningful for recurring plans.

created_atstring required

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

current_period_endstring nullable required

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.

idstring required

Membership ID, prefixed mem_.

license_keystring nullable required

The software license key for this membership. Only present when the product includes a software licensing experience.

metadataobject required

Custom key-value pairs stored on the membership, commonly used for software licensing.

phone_numberstring nullable required

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.

plan_idstring required

The plan the buyer purchased, prefixed plan_.

product_idstring required

The product this membership grants access to, prefixed prod_.

status'trialing' | 'active' | 'past_due' | 'completed' | 'canceled' | 'expired' | 'unresolved' required

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.

user_idstring nullable required

The buyer, prefixed user_. null when the buyer is another business or the membership is unclaimed.

Example response

{
  "account": {
    "id": "biz_xxxxxxxxxxxxxx",
    "logo_url": "https://whop-assets-example.s3.amazonaws.com/uploads/image/2026-01-01/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
    "route": "shine-time-auto-detailing",
    "title": "Shine Time Auto Detailing"
  },
  "created_at": "2026-01-01T12:00:00.000Z",
  "current_period_end": "2026-01-01T12:00:00.000Z",
  "id": "mem_xxxxxxxxxxxxxx",
  "license_key": "WHOP-XXXX-XXXX-XXXX",
  "member": {
    "access_level": "customer",
    "last_accessed_at": "2026-01-01T12:00:00.000Z",
    "position": 1767268800000
  },
  "metadata": {},
  "phone_number": "+xxxxxxxxxxx",
  "plan_id": "plan_xxxxxxxxxxxxxx",
  "product_id": "prod_xxxxxxxxxxxxxx",
  "status": "active",
  "user_id": "user_xxxxxxxxxxxxxx"
}

Changes

Changed in 2 of the 41 revisions of this API.218

    • added the required property phone_number to the response with the 200 status

      response-required-property-added

    This revision also has 2 changes that name no endpoint, such as unreferenced schemas being removed. See the revision's changelog

  • 60bbb4a6ffbc217See the full diff
    • added MembershipMember subschema #2 to the member response property oneOf list for the response status 200

      response-property-one-of-added

    • the created_at response's property type/format changed from string/date-time to string/ for status 200

      response-property-type-changed

    • the member response's property type/format changed from object null/ to / for status 200

      response-property-type-changed

    • removed the required property cancel_option from the response with the 200 status

      response-required-property-removed

    • removed the required property canceled_at from the response with the 200 status

      response-required-property-removed

    • removed the required property cancellation_reason from the response with the 200 status

      response-required-property-removed

    • removed the required property checkout_configuration_id from the response with the 200 status

      response-required-property-removed

    • removed the required property company from the response with the 200 status

      response-required-property-removed

    • removed the required property currency from the response with the 200 status

      response-required-property-removed

    • removed the required property custom_field_responses from the response with the 200 status

      response-required-property-removed

    • removed the required property joined_at from the response with the 200 status

      response-required-property-removed

    • removed the required property manage_url from the response with the 200 status

      response-required-property-removed

    • removed the required property member/id from the response with the 200 status

      response-required-property-removed

    • removed the required property payment_collection_paused from the response with the 200 status

      response-required-property-removed

    • removed the required property plan from the response with the 200 status

      response-required-property-removed

    • removed the required property product from the response with the 200 status

      response-required-property-removed

    • removed the required property promo_code from the response with the 200 status

      response-required-property-removed

    • removed the required property renewal_period_end from the response with the 200 status

      response-required-property-removed

    • removed the required property renewal_period_start from the response with the 200 status

      response-required-property-removed

    • removed the required property updated_at from the response with the 200 status

      response-required-property-removed

    • removed the required property user from the response with the 200 status

      response-required-property-removed

    • removed the canceling enum value from the status response property for the response status 200

      response-property-enum-value-removed

    • removed the drafted enum value from the status response property for the response status 200

      response-property-enum-value-removed

    • added the required property account to the response with the 200 status

      response-required-property-added

    • added the required property current_period_end to the response with the 200 status

      response-required-property-added

    • added the required property plan_id to the response with the 200 status

      response-required-property-added

    • added the required property product_id to the response with the 200 status

      response-required-property-added

    • added the required property user_id to the response with the 200 status

      response-required-property-added

    This revision also has 1 change that name no endpoint, such as unreferenced schemas being removed. See the revision's changelog