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

# Refunds

> Refund captured payments, fully or partially.

<Info>
  Slash Payment Processing is in beta and not enabled for all accounts. Contact
  [support@joinslash.com](mailto:support@joinslash.com) to get access.
</Info>

A refund returns some or all of a captured payment to the buyer. Refunds
are created against a payment intent and are processed asynchronously: a refund
starts as `pending`, moves to `processing`, and ends in a terminal `succeeded`
or `failed` state.

## Creating refunds

`POST /refund` requires the `paymentIntentId` to refund and the `amount` in
cents. You can refund all or part of a payment by setting `amount` to the desired
value. You can create multiple partial refunds against the same payment; the
total across all refunds can never exceed the captured amount.

You can optionally include an `X-Idempotency-Key` header. Retrying a request
with the same key returns the original refund instead of creating a duplicate,
so requests with an idempotency key are safe to retry on timeouts. Reusing a key
with a different request body returns a `409`.

## Tracking refund state

Poll `GET /refund/{refundId}`, or list refunds with `GET /refund` filtered by
`filter:paymentIntentId` or `filter:status`.

Webhooks are the push-based alternative: subscribe to `payments.refund.created`
and `payments.refund.updated` events to be notified when a refund is created and
on every status change.
