Skip to main content
WEBHOOK
membership.deactivated
{
  "id": "msg_xxxxxxxxxxxxxxxxxxxxxxxx",
  "api_version": "v1",
  "timestamp": "2025-01-01T00:00:00.000Z",
  "type": "membership.deactivated",
  "data": {
    "id": "mem_xxxxxxxxxxxxxx",
    "status": "trialing",
    "created_at": "2023-12-01T05:00:00.401Z",
    "joined_at": "2023-12-01T05:00:00.401Z",
    "updated_at": "2023-12-01T05:00:00.401Z",
    "manage_url": "https://whop.com/billing/manage/mem_abc123",
    "member": {
      "id": "mber_xxxxxxxxxxxxx"
    },
    "user": {
      "id": "user_xxxxxxxxxxxxx",
      "username": "johndoe42",
      "name": "John Doe",
      "email": "john.doe@example.com"
    },
    "renewal_period_start": "2023-12-01T05:00:00.401Z",
    "renewal_period_end": "2023-12-01T05:00:00.401Z",
    "cancel_at_period_end": true,
    "cancel_option": "too_expensive",
    "cancellation_reason": "I found a better alternative.",
    "canceled_at": "2023-12-01T05:00:00.401Z",
    "currency": "usd",
    "company": {
      "id": "biz_xxxxxxxxxxxxxx",
      "title": "Pickaxe"
    },
    "plan": {
      "id": "plan_xxxxxxxxxxxxx"
    },
    "promo_code": {
      "id": "promo_xxxxxxxxxxxx"
    },
    "product": {
      "id": "prod_xxxxxxxxxxxxx",
      "title": "Pickaxe Analytics"
    },
    "license_key": "A1B2C3-D4E5F6-G7H8I9",
    "metadata": {},
    "payment_collection_paused": true,
    "custom_field_responses": [
      {
        "id": "cfrp_xxxxxxxxxxxxx",
        "question": "<string>",
        "answer": "<string>"
      }
    ]
  },
  "company_id": "biz_xxxxxxxxxxxxxx"
}

Headers

webhook-id
string
required

A unique identifier for this webhook request

Example:

"msg_xxxxxxxxxxxxxxxxxxxxxxxx"

webhook-signature
string
required

The signature of the webhook request with the webhook version prepended

Example:

"v1,BASE64ENCODEDSIGNATURE"

webhook-timestamp
string
required

The timestamp in seconds since the Unix epoch that the webhook was sent at on the server

Example:

"1727606400"

Body

application/json
id
string
required

A unique ID for every single webhook request

Example:

"msg_xxxxxxxxxxxxxxxxxxxxxxxx"

api_version
string
required

The API version for this webhook

Allowed value: "v1"
Example:

"v1"

timestamp
string<date-time>
required

The timestamp in ISO 8601 format that the webhook was sent at on the server

Example:

"2025-01-01T00:00:00.000Z"

type
string
required

The webhook event type

Allowed value: "membership.deactivated"
Example:

"membership.deactivated"

data
object
required

A membership represents an active relationship between a user and a product. It tracks the user's access, billing status, and renewal schedule.

company_id
string | null

The company ID that this webhook event is associated with

Example:

"biz_xxxxxxxxxxxxxx"

Response

200

Return a 200 status to indicate that the data was received successfully