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

# Refunds

> How to issue refunds from your dashboard.

Refunds can be issued directly from your dashboard on any successful payment. There is no time limit, you can refund a transaction at any point after it was processed.

Both **full** and **partial** refunds are supported. You can refund a smaller amount than the original charge, and repeat partial refunds on the same payment until the full captured amount has been returned.

<Note>
  Refunds apply to **card (fiat) payments** only. Crypto payments settle directly on-chain and cannot be refunded from Suby.
</Note>

## How to Issue a Refund

Refunds are accessible from two places in your dashboard.

**From Payments**

<Steps>
  <Step title="Go to Payments">
    Navigate to **Payments** in your dashboard.
  </Step>

  <Step title="Find the transaction">
    Locate the payment you want to refund.
  </Step>

  <Step title="Refund">
    Click on it, select **Refund**, and confirm. The refund is processed immediately.
  </Step>
</Steps>

**From Transactions**

<Steps>
  <Step title="Go to Transactions">
    Navigate to **Transactions** in your dashboard.
  </Step>

  <Step title="Find the transaction">
    Locate the transaction with status `succeeded`.
  </Step>

  <Step title="Refund">
    Click on it, select **Refund**, and confirm. The refund is processed immediately.
  </Step>
</Steps>

## What Happens After a Refund

<CardGroup cols={2}>
  <Card title="Customer refunded" icon="rotate-left">
    The customer receives their money back via the original payment method.
  </Card>

  <Card title="Status updated" icon="arrow-right-arrow-left">
    The transaction status updates to `refunded` in your dashboard.
  </Card>

  <Card title="Subscription cancelled" icon="ban">
    If the refund is on a subscription payment, the subscription is cancelled and access is revoked.
  </Card>

  <Card title="Payout adjusted" icon="circle-minus">
    The refunded amount is deducted from your next payout.
  </Card>
</CardGroup>

## Partial Refunds

You can refund only part of a payment by specifying an amount instead of refunding the full charge.

* Refund any amount up to the captured total, in the payment's currency.
* Call the refund repeatedly — as long as the cumulative refunded amount stays within the captured total.
* While a residual amount remains, the payment status is **`PARTIALLY_REFUNDED`**. Once the cumulative refunds reach the full captured amount, it flips to **`REFUNDED`**.
* The running total is exposed as `refundedAmountCents` on the payment, and each API call returns the `remainingRefundableCents` still available.

<Note>
  A **subscription** payment is cancelled and access revoked only when it is **fully** refunded. A partial refund on a subscription payment leaves access intact.
</Note>

## Webhooks

Refunds emit signed payment webhooks so your systems stay in sync:

| Event              | When                                                                                                                              |
| ------------------ | --------------------------------------------------------------------------------------------------------------------------------- |
| `PARTIAL_REFUNDED` | A partial refund was issued and a residual amount still remains. `data.payment.refundedAmountCents` carries the cumulative total. |
| `PAYMENT_REFUNDED` | The payment was fully refunded (a plain full refund, or the partial refund that completes the captured total).                    |

## Via API

<Card title="Full API Reference" icon="code" href="/v2/api-reference/payments/refund">
  Endpoints, parameters, and response objects for Refunds — including the optional `amountInCents` for partial refunds.
</Card>
