Skip to main content
GET
JavaScript

Authorizations

Authorization
string
header
required

An Account API key, account-scoped JWT, App API key, or user OAuth token. Prepend the key or token with Bearer, for example Bearer ***************************.

Headers

Api-Version-Date
string

Pins the request to a dated API version.

Example:

"2026-08-05-1"

Path Parameters

id
string
required

Webhook ID, prefixed hook_.

Response

legacy webhook testable events use dot-form names

api_version
enum<string>
required

The API version used to format payloads sent to this webhook endpoint.

Available options:
v1,
v2,
v5
Example:

"v1"

api_version_date
string | null
required

The dated API version (Api-Version-Date) that v1 payloads for this endpoint are pinned to: events serialize exactly like a REST read at this version (the native serializer where the resource has one). Null when unpinned — legacy (v2/v5) webhooks, and v1 webhooks on the legacy payload shape.

child_resource_events
boolean
required

Whether events are sent for child resources. For example, if the webhook is on an account, enabling this sends events only from its connected accounts.

consecutive_failures
integer
required

Number of consecutive deliveries whose first attempt to this endpoint failed since it last accepted one. Later retries of the same delivery do not increment it. Resets to 0 when a delivery succeeds or the webhook is re-enabled.

created_at
string
required

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

disabled_at
string | null
required

When Whop automatically disabled this webhook, as an ISO 8601 timestamp. null unless the webhook was disabled by Whop; a webhook you disabled yourself has enabled: false and a null disabled_at.

disabled_reason
enum<string> | null
required

Why Whop disabled this webhook. delivery_failures means every delivery failed for 3 days straight. null when disabled_at is null.

Available options:
delivery_failures,
null
Example:

"delivery_failures"

enabled
boolean
required

Whether this webhook endpoint is currently active and receiving events.

events
enum<string>[]
required

Event types this webhook is subscribed to, in dot form (for example payment.succeeded).

Available options:
invoice.created,
invoice.marked_uncollectible,
invoice.paid,
invoice.past_due,
invoice.voided,
membership.activated,
membership.deactivated,
membership.trial_ending_soon,
entry.created,
entry.approved,
entry.denied,
entry.deleted,
export.completed,
export.failed,
setup_intent.requires_action,
setup_intent.succeeded,
setup_intent.canceled,
ledger_account.funds_available,
swap.completed,
deposit.succeeded,
transfer.created,
transfer.completed,
withdrawal.created,
withdrawal.updated,
card_transaction.created,
card_transaction.updated,
card_transaction.completed,
card_transaction.declined,
card_transaction.reversed,
card.created,
card.updated,
card.frozen,
card.canceled,
card_application.created,
card_application.updated,
card_application.approved,
card_application.denied,
course_lesson_interaction.completed,
payout_method.created,
verification.succeeded,
identity_profile.approved,
identity_profile.rejected,
identity_profile.needs_action,
identity_profile.updated,
payout_account.status_updated,
resolution_center_case.created,
resolution_center_case.updated,
resolution_center_case.decided,
product.created,
product.updated,
product.deleted,
product.published,
product.unpublished,
plan.created,
plan.updated,
plan.deleted,
shipment.created,
shipment.updated,
member.created,
chat.message.created,
chat.reaction.created,
payment.created,
payment.succeeded,
payment.failed,
payment.pending,
dispute.created,
dispute.updated,
refund.created,
refund.updated,
dispute_alert.created,
membership.cancel_at_period_end_changed,
membership.went_valid,
membership.went_invalid,
membership.metadata_updated,
resolution.created,
resolution.updated,
resolution.decided,
payment.affiliate_reward_created,
membership.experience_claimed,
app_membership.went_valid,
app_membership.went_invalid,
app_payment.created,
app_payment.succeeded,
app_payment.failed,
app_payment.pending,
app_membership.cancel_at_period_end_changed
failing_since
string | null
required

When the current failure streak began, as an ISO 8601 timestamp. Unlike last_failure_at, this is set on the streak's first failed attempt, so it shows an endpoint that is failing right now. null when the endpoint is healthy.

id
string
required

Webhook ID, prefixed hook_.

last_failure_at
string | null
required

When a delivery to this endpoint most recently failed after exhausting retries, as an ISO 8601 timestamp. null if no delivery has ever failed.

resource_id
string
required

ID of the resource (account or app) this webhook is attached to.

testable_events
enum<string>[]
required

The subset of subscribed event types that support sending test payloads, in dot form.

Available options:
invoice.created,
invoice.marked_uncollectible,
invoice.paid,
invoice.past_due,
invoice.voided,
membership.activated,
membership.deactivated,
membership.trial_ending_soon,
entry.created,
entry.approved,
entry.denied,
entry.deleted,
export.completed,
export.failed,
setup_intent.requires_action,
setup_intent.succeeded,
setup_intent.canceled,
ledger_account.funds_available,
swap.completed,
deposit.succeeded,
transfer.created,
transfer.completed,
withdrawal.created,
withdrawal.updated,
card_transaction.created,
card_transaction.updated,
card_transaction.completed,
card_transaction.declined,
card_transaction.reversed,
card.created,
card.updated,
card.frozen,
card.canceled,
card_application.created,
card_application.updated,
card_application.approved,
card_application.denied,
course_lesson_interaction.completed,
payout_method.created,
verification.succeeded,
identity_profile.approved,
identity_profile.rejected,
identity_profile.needs_action,
identity_profile.updated,
payout_account.status_updated,
resolution_center_case.created,
resolution_center_case.updated,
resolution_center_case.decided,
product.created,
product.updated,
product.deleted,
product.published,
product.unpublished,
plan.created,
plan.updated,
plan.deleted,
shipment.created,
shipment.updated,
member.created,
chat.message.created,
chat.reaction.created,
payment.created,
payment.succeeded,
payment.failed,
payment.pending,
dispute.created,
dispute.updated,
refund.created,
refund.updated,
dispute_alert.created,
membership.cancel_at_period_end_changed,
membership.went_valid,
membership.went_invalid,
membership.metadata_updated,
resolution.created,
resolution.updated,
resolution.decided,
payment.affiliate_reward_created,
membership.experience_claimed,
app_membership.went_valid,
app_membership.went_invalid,
app_payment.created,
app_payment.succeeded,
app_payment.failed,
app_payment.pending,
app_membership.cancel_at_period_end_changed
url
string
required

Destination URL where webhook payloads are delivered via HTTP POST.

webhook_secret
string | null
required

Secret key used to sign webhook payloads for verification. Include this in your HMAC validation logic. Returned on the create response and to interactive dashboard sessions; null for API-key and OAuth callers on later reads.