curl --request POST \
--url https://api.fanvue.com/v1/creators/{creatorUserUuid}/checkout-links/subscriptions/{uuid}/uncancel \
--header 'Authorization: Bearer <token>' \
--header 'X-Fanvue-API-Version: <x-fanvue-api-version>'import requests
url = "https://api.fanvue.com/v1/creators/{creatorUserUuid}/checkout-links/subscriptions/{uuid}/uncancel"
headers = {
"X-Fanvue-API-Version": "<x-fanvue-api-version>",
"Authorization": "Bearer <token>"
}
response = requests.post(url, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'X-Fanvue-API-Version': '<x-fanvue-api-version>',
Authorization: 'Bearer <token>'
}
};
fetch('https://api.fanvue.com/v1/creators/{creatorUserUuid}/checkout-links/subscriptions/{uuid}/uncancel', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"uuid": "5d4c3b2a-1f0e-4d9c-8b7a-6f5e4d3c2b1a",
"status": "active",
"cancelAtPeriodEnd": false,
"expiresAt": "2026-07-19T08:30:00.000Z"
}{
"error": "<string>",
"message": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}{
"message": "<string>"
}{
"message": "<string>"
}{
"error": "<string>",
"message": "<string>",
"nextVersion": "<string>"
}{
"error": "<string>"
}Reactivate a cancelled checkout-link subscription
Reverse a pending cancel-at-period-end while the paid period is still running, so the subscription renews again at expiresAt. Emits the checkout_link.subscription.cancel_at_period_end_changed webhook with cancel_at_period_end: false. Returns 400 if the subscription is not set to cancel or has already ended (an ended subscription cannot be revived), and 404 if it does not exist or does not belong to this creator.
Only cancellations the creator made themselves (cancelledBy: creator) can be reversed here. If the subscriber cancelled — or Fanvue support did, or the cancellation is older than actor tracking and carries cancelledBy: null — the endpoint returns 409 and the cancellation stands: only the subscriber can restart their own subscription, by purchasing again.
curl --request POST \
--url https://api.fanvue.com/v1/creators/{creatorUserUuid}/checkout-links/subscriptions/{uuid}/uncancel \
--header 'Authorization: Bearer <token>' \
--header 'X-Fanvue-API-Version: <x-fanvue-api-version>'import requests
url = "https://api.fanvue.com/v1/creators/{creatorUserUuid}/checkout-links/subscriptions/{uuid}/uncancel"
headers = {
"X-Fanvue-API-Version": "<x-fanvue-api-version>",
"Authorization": "Bearer <token>"
}
response = requests.post(url, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'X-Fanvue-API-Version': '<x-fanvue-api-version>',
Authorization: 'Bearer <token>'
}
};
fetch('https://api.fanvue.com/v1/creators/{creatorUserUuid}/checkout-links/subscriptions/{uuid}/uncancel', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"uuid": "5d4c3b2a-1f0e-4d9c-8b7a-6f5e4d3c2b1a",
"status": "active",
"cancelAtPeriodEnd": false,
"expiresAt": "2026-07-19T08:30:00.000Z"
}{
"error": "<string>",
"message": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}{
"message": "<string>"
}{
"message": "<string>"
}{
"error": "<string>",
"message": "<string>",
"nextVersion": "<string>"
}{
"error": "<string>"
}write:creator— Modify creator profiles, settings, and creator-specific data.
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"
Path Parameters
Fanvue subscription identifier.
Response
Subscription renewing again
Fanvue's unique subscription identifier.
Access state of the subscription, matching the checkout_link.subscription.* webhooks: active means the fan currently has access (including subscriptions scheduled to cancel at the period end — check cancelAtPeriodEnd), expired means access has ended. Revoke access only on expired.
active, expired True when the subscription is set to end (not renew) at its period end.
End of the current paid period: when access ends, or the next renewal date.
Was this page helpful?