curl --request POST \
--url https://api.fanvue.com/v1/webhooks/test \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'X-Fanvue-API-Version: <x-fanvue-api-version>' \
--data '{}'import requests
url = "https://api.fanvue.com/v1/webhooks/test"
payload = {}
headers = {
"X-Fanvue-API-Version": "<x-fanvue-api-version>",
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'X-Fanvue-API-Version': '<x-fanvue-api-version>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({})
};
fetch('https://api.fanvue.com/v1/webhooks/test', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"id": "4f6c1f8a-2b9d-4c3e-9f1a-7d8e5c2b4a10",
"event": "checkout_link.payment.succeeded"
}{
"error": "<string>",
"message": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}{
"message": "<string>"
}{
"error": "<string>",
"message": "<string>",
"nextVersion": "<string>"
}{
"error": "<string>"
}Send a test webhook event
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.
curl --request POST \
--url https://api.fanvue.com/v1/webhooks/test \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'X-Fanvue-API-Version: <x-fanvue-api-version>' \
--data '{}'import requests
url = "https://api.fanvue.com/v1/webhooks/test"
payload = {}
headers = {
"X-Fanvue-API-Version": "<x-fanvue-api-version>",
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'X-Fanvue-API-Version': '<x-fanvue-api-version>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({})
};
fetch('https://api.fanvue.com/v1/webhooks/test', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"id": "4f6c1f8a-2b9d-4c3e-9f1a-7d8e5c2b4a10",
"event": "checkout_link.payment.succeeded"
}{
"error": "<string>",
"message": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}{
"message": "<string>"
}{
"error": "<string>",
"message": "<string>",
"nextVersion": "<string>"
}{
"error": "<string>"
}read:self— Access your own user profile information, including basic account details and settings.
Authorizations
OAuth 2.0 access token, presented as a JWT bearer token in the Authorization header. Obtain a token via the authorization-code flow; the scopes granted to the token determine which operations it may call.
Headers
API version to use for the request
"2025-06-26"
Body
The platform event to deliver. Deprecated flat events cannot be tested.
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 Was this page helpful?