> ## Documentation Index
> Fetch the complete documentation index at: https://docs.whop.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Webhook

> A webhook endpoint that receives event notifications for a company via HTTP POST.

<ResponseExample>
  ```json Example theme={null}
  {
  	"api_version": "v1",
  	"child_resource_events": true,
  	"created_at": "2023-12-01T05:00:00.401Z",
  	"enabled": true,
  	"events": ["invoice.created"],
  	"id": "hook_xxxxxxxxxxxxx",
  	"resource_id": "<string>",
  	"testable_events": ["invoice.created"],
  	"url": "https://example.com/path"
  }
  ```
</ResponseExample>

<ResponseField name="api_version" type="ApiVersion" required>
  The API version used to format payloads sent to this webhook endpoint.

  Available options: `v1`, `v2`, `v5`
</ResponseField>

<ResponseField name="child_resource_events" type="boolean" required>
  Whether events are sent for child resources. For example, if the webhook is on
  a company, enabling this sends events only from the company's sub-merchants
  (child companies).
</ResponseField>

<ResponseField name="created_at" type="string<date-time>" required>
  The datetime the webhook was created.

  Example: `2023-12-01T05:00:00.401Z`
</ResponseField>

<ResponseField name="enabled" type="boolean" required>
  Whether this webhook endpoint is currently active and receiving events.
</ResponseField>

<ResponseField name="events" type="array<WebhookEvent>" required>
  The list of event types this webhook is subscribed to.

  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`, `setup_intent.requires_action`, `setup_intent.succeeded`, `setup_intent.canceled`, `ledger_account.funds_available`, `withdrawal.created`, `withdrawal.updated`, `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`, `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`
</ResponseField>

<ResponseField name="id" type="string" required>
  The unique identifier for the webhook.

  Example: `hook_xxxxxxxxxxxxx`
</ResponseField>

<ResponseField name="resource_id" type="string" required>
  The ID of the resource (company or product) this webhook is attached to.
</ResponseField>

<ResponseField name="testable_events" type="array<WebhookEvent>" required>
  The subset of subscribed event types that support sending test payloads.

  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`, `setup_intent.requires_action`, `setup_intent.succeeded`, `setup_intent.canceled`, `ledger_account.funds_available`, `withdrawal.created`, `withdrawal.updated`, `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`, `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`
</ResponseField>

<ResponseField name="url" type="string" required>
  The destination URL where webhook payloads are delivered via HTTP POST.

  Example: `https://example.com/path`
</ResponseField>
