---
title: "Send a test webhook event"
method: POST
path: "/webhooks/test"
---

# Send a test webhook event

`POST /webhooks/test`

Deliver a synthetic event of the given type to your own subscriptions, so you can build and verify a handler without waiting for a real one to occur.

The delivery is indistinguishable from a genuine event: same envelope, same signature, same retry behaviour. Only the values inside `data` are synthetic, and identifiers are prefixed with `TEST-`.

You must already have an active subscription for the requested event; this endpoint delivers to the URLs you registered and cannot be pointed at any other. Every subscription covering the event receives the delivery, exactly as a real event would. The token must hold the same scope subscribing to that event requires.

## Headers

- `X-Fanvue-API-Version` string, required

## Request body

- object
  - `event` 'checkout_link.payment.pending' | 'checkout_link.payment.succeeded' | 'checkout_link.payment.failed' | 'checkout_link.subscription.activated' | 'checkout_link.subscription.deactivated' | 'checkout_link.subscription.cancel_at_period_end_changed' | 'checkout_link.refund.created' | 'checkout_link.dispute.flagged' | 'checkout_link.dispute.created' | 'checkout_link.installment.paid' | 'checkout_link.installment.failed' | 'checkout_link.plan.completed' | 'payout.paid' | 'payout.failed' | 'creator.payment.succeeded' | 'creator.subscription.activated' | 'creator.subscription.renewed' | 'creator.subscription.deactivated' | 'creator.subscription.cancel_at_period_end_changed' | 'creator.experience_subscription.deactivated' | 'creator.experience_subscription.activated' | 'creator.post.liked' | 'creator.post.commented' | 'creator.message.reaction' | 'creator.message.deleted' | 'creator.refund.created' | 'creator.dispute.flagged' | 'creator.dispute.created' | 'creator.reward.created' | 'creator.reward.reversed' | 'creator.fan.status_changed' | 'creator.fan.presence_changed' | 'creator.follow.created' | 'creator.message.received' | 'creator.message.sent' | 'creator.message.mass_sent' | 'creator.message.read' | 'creator.message.read_by_fan', required — The platform event to deliver. Deprecated flat events cannot be tested.

## Response `202`

Test event accepted for delivery

- object
  - `id` string, uuid, required — ID of the delivered test event. Matches the `id` in the delivered envelope, so you can correlate this response with what arrives at your endpoint.
  - `event` string, required — The platform event that was delivered

## Other responses

- `400` — Bad Request - API version not supported OR validation failed
- `401` — Unauthorized Response
- `403` — Unauthorized Response
- `404` — Not Found Response
- `410` — API version no longer supported (sunset)
- `429` — Too many requests - rate limit exceeded

## Changes

- **2026-08-30** `dce5621fe589` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/fanvue/apis/fanvue-api/changes/webhooks/test/post.md)

---

[API](https://skmtc.dev/fanvue/apis/fanvue-api.md) · [All operations](https://skmtc.dev/fanvue/apis/fanvue-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/fanvue/fanvue-api/revisions/dce5621fe589/schema)
