> ## Documentation Index
> Fetch the complete documentation index at: https://docs.guile.app/llms.txt
> Use this file to discover all available pages before exploring further.

# Refunds overview

> Request, approve, or deny refunds for appointment payments

Use the Refunds API when money already captured on an appointment needs to come
back. A customer or barber
[requests a refund](/api-reference/refunds/request-a-refund). A shop owner
[approves](/api-reference/refunds/approve-a-refund-request) or
[denies](/api-reference/refunds/deny-a-refund-request) that request.

## What you do first

1. Confirm the appointment payment is eligible before you ask the caller to retry.
2. [Request a refund](/api-reference/refunds/request-a-refund) (or open the
   existing request) with an [idempotency key](/api-reference/idempotency) on
   money-changing writes.
3. [List refund requests](/api-reference/refunds/list-refund-requests) or
   [get one](/api-reference/refunds/get-a-refund-request) while it waits.
4. Approve or deny it. Approval moves money; denial leaves the capture in place.

## States that matter

| Request state | What it means for the next call                               |
| ------------- | ------------------------------------------------------------- |
| `pending`     | Owner may approve or deny                                     |
| `approved`    | Money move started or recorded; do not approve again          |
| `denied`      | Capture stays; open a new request only if product rules allow |

## When a call fails

Failures come back as problem documents. Open the `type` link for the cause, the
fix, and whether retrying is safe. Some appointments cannot refund yet; the
problem page names the reason and the next call.

## Related paths

* Captures and authorizations live under [Appointments](/api-reference/Appointments/overview).
* Card-present collection lives under [Payments](/api-reference/Payments/overview).
