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

# Refund a Payment

> Issue full or partial refunds for captured payments.

Issue a refund to return money to a customer. There are two types:

* **Full refund** – Returns the entire payment amount; can only be done once.
* **Partial refund** – Returns part of the payment; can be done multiple times, up to the original amount.

## Request

Find the API documentation for the request [here](/products/commerce/v2/api-reference/payments_modifications/refund).

```text theme={null}
POST /payments/{payment_id}/refund
```

Commerce supports multiple refunds for a payment. Each request needs the following payload:

```json theme={null}
{
  "amount": 500,
  "currency_code": "EUR",
  "reference": "Refund order #12345"
}
```

The amount available for refund is the captured amount minus the total of all refunds already successfully processed.

## Response

Commerce will process the refund asynchronously, such that the response will return a refund in `processing` state, which the ultimately will finish in `completed` or `failed` state.

The `amount` on the payment will be updated and reflects the total amount of refunds on the payment:

```json theme={null}
{
  ...,
  "amount": {
    "requested": 1000,
    "authorized": 1000,
    "captured": 800,
    "refunded": 500
  }
}
```
