POST
/
v2
/
memberships
/
{id}
/
validate_license
curl --request POST \
  --url https://api.whop.com/api/v2/memberships/{id}/validate_license \
  --header 'Content-Type: application/json' \
  --data '{
  "metadata": {}
}'
{
  "id": "<string>",
  "product": "<string>",
  "user": "<string>",
  "plan": "<string>",
  "promo_code": "<string>",
  "email": "<string>",
  "stripe_subscription_id": "<string>",
  "stripe_customer_id": "<string>",
  "status": "trialing",
  "valid": true,
  "cancel_at_period_end": true,
  "payment_processor": "free",
  "license_key": "<string>",
  "metadata": {},
  "quantity": 123,
  "wallet_address": "<string>",
  "custom_fields_responses": {},
  "custom_fields_responses_v2": {},
  "discord": {
    "id": "<string>",
    "username": "<string>",
    "image_url": "<string>"
  },
  "nft_tokens": {
    "token_id": "<string>",
    "current_holder": "<string>",
    "smart_contract": {
      "contract_address": "<string>",
      "contract_name": "<string>"
    },
    "balance": 123,
    "metadata": {}
  },
  "expires_at": 123,
  "renewal_period_start": 123,
  "renewal_period_end": 123,
  "created_at": 123,
  "manage_url": "<string>",
  "affiliate_page_url": "<string>",
  "checkout_session": "<string>",
  "access_pass": "<string>",
  "deliveries": {},
  "telegram_account_id": "<string>"
}

Headers

Authorization
string

Your API key, which can be found on the Whop Business Dashboard. You must prepend your key with the word 'Bearer', which will look like Bearer ***************************

Path Parameters

id
string
required

The ID of the Membership, which will look like mem_*************, or the license key of the membership.

Query Parameters

expand
enum<string>[]

Whether or not to expand the User, Plan, Product, or Promo Code on the returned Membership(s). Pass an array with each object(s) you want to expand, e.g. [product, plan, user, promo_code]

Available options:
product,
user,
plan,
promo_code

Body

application/json
metadata
object
required

A polymorphic object containing information that can be user defined

Response

201 - application/json
id
string

The ID of the Membership, which will look like mem_*************

product
string

The Product attached to this Membership. By default this will just be the ID of the Product, but you can expand it to get more information about the Product by passing [product] in the expand parameter.

user
string

The User that owns this Membership. By default this will just be the ID of the User, but you can expand it to get more information about the User by passing [user] in the expand parameter.

plan
string

The Plan attached to this Membership. By default this will just be the ID of the Plan, but you can expand it to get more information about the Plan by passing [plan] in the expand parameter.

promo_code
string

The Promo Code used to purchase this Membership. By default this will just be the ID of the Promo Code, but you can expand it to get more information about the Promo Code by passing [promo_code] in the expand parameter.

email
string

The email of the User attached to this Membership

stripe_subscription_id
string

The Stripe Subscription ID attached to this Membership if it was checked out using Stripe

stripe_customer_id
string

The Stripe Customer ID attached to this Membership if it was checked out using Stripe

status
enum<string>

The status of the Membership

Available options:
trialing,
active,
past_due,
completed,
canceled,
expired,
unresolved
valid
boolean

Whether or not the Membership has a valid status

cancel_at_period_end
boolean

Whether or not this membership is scheduled to cancel at the end of the renewal period.

payment_processor
enum<string>

The payment processor used to pay for the Membership.

Available options:
free,
stripe,
coinbase,
crypto,
paypal
license_key
string

The license key of the Membership

metadata
object

The metadata of the Membership

quantity
integer

The amount of items included in the Membership

wallet_address
string

The crypto wallet address used to pay for the Membership (if paid through the one-time ETH or renewal WETH Whop contracts)

custom_fields_responses
object

Questions and answers collected from the User at checkout

custom_fields_responses_v2
object

Questions and answers collected from the User at checkout

discord
object

The Discord account attached to this Membership

nft_tokens
object

Nft tokens attached to this Membership

expires_at
integer

The time of when the Membership is set to go expired

renewal_period_start
integer

The UTC timestamp of when the Membership will begin

renewal_period_end
integer

The UTC timestamp of when the Membership will end

created_at
integer

The time at which the Membership was created. Measured in seconds since the Unix epoch.

manage_url
string

The URL to manage the Membership (top-up, cancel, etc.)

affiliate_page_url
string

Gives the url of the page with the user's affiliate code appended. Does not guarantee the user can affiliate anything on the page.

checkout_session
string

The ID of the checkout session (like ch_***************) used to purchase this membership, if any.

access_pass
string

Access Pass has been deprecated for Product. Please use product instead and do not use access_pass.

deliveries
object

A hash of deliveries for this membership, as a series of key value pairs of the experience id to the delivery id. Ex. { 'exp_': 'dlv_' }

telegram_account_id
string

The Whop ID of their connected Telegram account, if any.