---
title: "List a creator's checkout-link refund requests"
method: GET
path: "/creators/{creatorUserUuid}/checkout-links/refund-requests"
---

# List a creator's checkout-link refund requests

`GET /creators/{creatorUserUuid}/checkout-links/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`.

<Info>
  The `checkout_link.refund.requested` and `checkout_link.refund.created` [webhook events](https://api.fanvue.com/docs/checkout/refunds) 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.
</Info>

## Path parameters

- `creatorUserUuid` string, uuid, required

## Query parameters

- `limit` integer — Number of results to return (default 20, max 100).
- `cursor` string — Cursor for pagination, as returned in a previous page's `nextCursor`.
- `status` 'pending' | 'approved' | 'failed' | 'refunded' | 'rejected' | 'withdrawn' | 'chargebacked' — Filter to requests in this status.
- `invoiceNumber` string — Filter to requests against this exact payment invoice number.

## Headers

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

## Response `200`

List of refund requests

- object
  - `data` object[], required
    - `uuid` string, required — Fanvue's unique refund-request identifier.
    - `paymentId` string, required — Invoice number of the payment this request is against (`invoiceNumber`).
    - `status` 'pending' | 'approved' | 'failed' | 'refunded' | 'rejected' | 'withdrawn' | 'chargebacked', required — Where the request stands. `pending` is awaiting review; `approved` means Fanvue accepted it and is reversing the payment; `failed` means a reversal attempt did not go through and Fanvue is still working it (not a decision against the request); `refunded` is the money back with the fan, and also fires `checkout_link.refund.created`; `rejected` is refused, with the reason in `reviewNote`; `withdrawn` is the creator taking their own request back; `chargebacked` means the fan disputed the payment with their bank before the request was settled, so the money went back through the dispute instead (see the `checkout_link.dispute.*` events). The Fanvue dashboard shows `approved` and `failed` together as "processing".
    - `reason` 'duplicate' | 'fraudulent' | 'requested_by_customer' | 'other', required — Why the creator is asking for the payment to be refunded.
    - `note` string, nullable, required — The note the creator sent with the request.
    - `reviewNote` string, nullable, required — Fanvue's reason for the decision; populated when `status` is `rejected`.
    - `createdAt` string, date-time, required — When the request was opened.
    - `resolvedAt` string, date-time, nullable, required — When the request reached a final state, or null while it is still open.
  - `nextCursor` string, nullable, required — Cursor for the next page, or null if none.

## Other responses

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

## Changes

- **2026-09-10** `4d08f36ad6c8` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/fanvue/apis/fanvue-api/changes/creators/:creatorUserUuid/checkout-links/refund-requests/get.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.dev/fanvue/apis/fanvue-api/revisions/431868e8a264?raw)
