curl --request GET \
--url https://api.fanvue.com/v1/creators/{creatorUserUuid}/checkout-links/refund-requests \
--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/refund-requests"
headers = {
"X-Fanvue-API-Version": "<x-fanvue-api-version>",
"Authorization": "Bearer <token>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {
'X-Fanvue-API-Version': '<x-fanvue-api-version>',
Authorization: 'Bearer <token>'
}
};
fetch('https://api.fanvue.com/v1/creators/{creatorUserUuid}/checkout-links/refund-requests', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"data": [
{
"uuid": "3f2b1a09-8c7d-4e6f-9a0b-1c2d3e4f5a6b",
"paymentId": "FVE-20260619-1234",
"status": "pending",
"reason": "requested_by_customer",
"note": "Fan bought the wrong tier",
"reviewNote": null,
"createdAt": "2026-06-20T09:00:00.000Z",
"resolvedAt": null
}
],
"nextCursor": null
}{
"error": "<string>",
"message": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>",
"message": "<string>",
"nextVersion": "<string>"
}{
"error": "<string>"
}List a creator's checkout-link refund requests
List the specified creator’s refund requests, most recent first, with cursor-based pagination. Filter by status to poll open requests, or by invoiceNumber to see the history for one payment. The payments endpoints carry the same outcome per payment as refundStatus.
The checkout_link.refund.requested and checkout_link.refund.created webhook events announce new requests and completed refunds. Rejected, failed, withdrawn and chargebacked outcomes do not emit an event yet, so keep polling this endpoint by status to observe those.
curl --request GET \
--url https://api.fanvue.com/v1/creators/{creatorUserUuid}/checkout-links/refund-requests \
--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/refund-requests"
headers = {
"X-Fanvue-API-Version": "<x-fanvue-api-version>",
"Authorization": "Bearer <token>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {
'X-Fanvue-API-Version': '<x-fanvue-api-version>',
Authorization: 'Bearer <token>'
}
};
fetch('https://api.fanvue.com/v1/creators/{creatorUserUuid}/checkout-links/refund-requests', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"data": [
{
"uuid": "3f2b1a09-8c7d-4e6f-9a0b-1c2d3e4f5a6b",
"paymentId": "FVE-20260619-1234",
"status": "pending",
"reason": "requested_by_customer",
"note": "Fan bought the wrong tier",
"reviewNote": null,
"createdAt": "2026-06-20T09:00:00.000Z",
"resolvedAt": null
}
],
"nextCursor": null
}{
"error": "<string>",
"message": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>",
"message": "<string>",
"nextVersion": "<string>"
}{
"error": "<string>"
}read:creator— Access creator profiles, content, and creator-specific information.
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
Query Parameters
Number of results to return (default 20, max 100).
x <= 100Cursor for pagination, as returned in a previous page's nextCursor.
Filter to requests in this status.
pending, approved, failed, refunded, rejected, withdrawn, chargebacked Filter to requests against this exact payment invoice number.
Was this page helpful?