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

# Overview

> Initiate refunds with Cashfree using the Merchant Dashboard or refund APIs, run batch refunds, and configure webhooks for real-time refund status updates.

You can refund payments to customers when necessary, such as for returned items or cancelled orders. Refunds can be initiated from the Merchant Dashboard or through the API.

When you submit a refund request, the system accepts it instantly. However, you receive the outcome of the refund asynchronously through a refund webhook.

<Tip>Install [Cashfree Agent Skills](/tools-ai/cashfree-agent-skills) to bring Cashfree product knowledge into your AI coding assistant (Claude Code, Cursor, VS Code Copilot, Gemini CLI, and more) to answer integration questions and generate accurate code without leaving your editor.</Tip>

## Refund options

You can process the following types of refunds:

* **Full refund**: Refund the entire captured amount.
* **Partial refund**: Refund a portion of the captured amount.
* **Multiple partial refunds**: Process multiple partial refunds for a single payment. The total of all partial refunds can't exceed the captured amount.

<Note>Some payment methods don't support partial refunds.</Note>

After you initiate a refund, it can take 7 to 10 business days for the funds to be returned to the customer's account, depending on the payment method.

## Refund lifecycle

The refund lifecycle shows the different stages of a refund from when it is initiated until the customer receives the funds.

<img src="https://mintcdn.com/cashfreepayments-d00050e9/MlPFXxtpWWqDOzq1/static/payments/manage/refund_state_flow-updated.png?fit=max&auto=format&n=MlPFXxtpWWqDOzq1&q=85&s=95838754d33c4ac57bc6aa696d5040bf" style={{ imageRendering: 'auto', width: '100%' }} width="2120" height="1352" data-path="static/payments/manage/refund_state_flow-updated.png" />

## Refund a payment

Cashfree supports two types of refunds:

* **Merchant-initiated refunds**: Refunds that you initiate from your dashboard or API.
* **Auto refunds**: Funds that are reversed to the customer when the payment TTL is breached. For more information, view [Transaction time limit (TTL)](/payments/online/resources/payment-lifecycle#transaction-time-limit-ttl).

<Tabs>
  <Tab title="Dashboard">
    ### Single refund

    You can initiate a refund for individual transactions directly from the dashboard. Use this option to process refunds for specific payments that require customer service or order corrections.

    To initiate a single refund:

    1. Log in to the [Merchant Dashboard](https://merchant.cashfree.com/auth/login).
    2. Go to **Payment Gateway > Transactions > Payments**.
    3. Search for the transaction that you want to refund.
    4. Select the **Refund** option, enter the refund amount (full or partial), and click **Initiate Refund**.

    <Note>The refund option is only visible for successful transactions that have been settled. Voided or failed transactions will not display the refund option.</Note>

    ### Batch refunds

    Use the Batch Refunds feature to initiate refunds for a large number of payments at a time. Add all the required refund details in a single file as per the required format and upload the file.

    To initiate a batch refund:

    1. Log in to the [Merchant Dashboard](https://merchant.cashfree.com/auth/login).
    2. Go to **Payment Gateway > Transactions > Refunds > Batch Refunds > Upload File**.
    3. Download the sample file to know the refund details required in the batch file.
    4. Read the upload instructions before you upload the file.
    5. If the file is not in the suggested format, it will not be uploaded. Resolve any errors in the uploaded file and reupload it.

    ### Auto refunds

    You can track and view all automatic refunds initiated by Cashfree directly from the dashboard. Use this option to monitor refunds triggered for failed payment attempts or other automated scenarios.

    To view auto refunds:

    1. Log in to the [Merchant Dashboard](https://merchant.cashfree.com/auth/login).
    2. Go to **Payment Gateway > Transactions > Refunds**.
    3. Select the **Auto Refunds** tab.
  </Tab>

  <Tab title="API">
    ### Prerequisites

    Before you use the refund APIs, ensure that you have the following:

    * A valid Cashfree account.
    * API keys generated from the [Merchant Dashboard](https://merchant.cashfree.com/auth/login).
    * The order ID for the refund that you want to process.

    ### Refund APIs

    Use the following APIs to manage refunds:

    * **Create a refund**: Initiate a refund for a successful payment. You can refund the full amount or a partial amount.
    * **Get refund status**: Retrieve the current status and details of a refund.

    | API endpoint                                | Method | Documentation link                                                 |
    | ------------------------------------------- | ------ | ------------------------------------------------------------------ |
    | `/pg/orders/{order_id}/refunds`             | POST   | [Create Refund API](/api-reference/payments/latest/refunds/create) |
    | `/pg/orders/{order_id}/refunds/{refund_id}` | GET    | [Get Refund API](/api-reference/payments/latest/refunds/get)       |

    ### Refund webhook

    Configure refund webhooks to receive real-time notifications for refund status updates. This enables you to build systems to update refund statuses and send customer communications.

    To set up refund webhooks:

    1. Log in to the [Merchant Dashboard](https://merchant.cashfree.com/auth/login).
    2. Go to **Payment Gateway > Developers > Webhooks**.
    3. Add the webhook address and select refund-related events.
    4. Save the webhook configuration.

    For more information, view [Refund webhooks](https://docs.cashfree.com/docs/api-reference/payments/latest/refunds/webhooks).
  </Tab>
</Tabs>

## Auto refunds

Auto refunds are refunds triggered automatically for unsuccessful payments, disputes, duplicate payments, or instances where payments are received directly to your VPA, regardless of whether an order has been generated.

Auto refunds usually occur when customers:

1. Make a payment after the order has reached a terminal state.
2. Make a direct payment to the UPI ID.

Auto refunds differ from standard refunds because they handle refunds that occur automatically (such as failed payment attempts) rather than manual refunds tied to specific orders. Since these automatic refunds may occur before an order is created, they don't contain the usual order-related data fields that are mandatory in standard refund webhooks. For more information, view [Auto-refund webhooks](/api-reference/payments/latest/refunds/webhooks#auto-refund-webhook-payload).

## Refund communication

Customers are kept informed about their refund status and stay up to date on every stage of the process. Refunds, as reversals, involve multiple stages: initiation, processing, cancellation, and potential delays that are essential to monitor. With refund communication, customers receive timely notifications, helping build trust and satisfaction. Customers can also use Cashfree Customer Hub to track these refunds better.

## Refund wallet

<Tip>A refund wallet is a dedicated balance pool for processing customer refunds, separate from your main settlement account. This separation streamlines refund management and improves cash flow control.</Tip>

Refund wallets offer a streamlined and efficient solution for managing your refund process. The following table provides more information:

| Scenario                              | Without refund wallet                                                                          | With refund wallet                                                                                    | Advantages                |
| ------------------------------------- | ---------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------- | ------------------------- |
| You want to initiate a refund of ₹500 | Current balance = 0<br /><br />Refund goes on hold                                             | Current balance = 0<br /><br />Refund wallet balance = ₹5000<br /><br />Refund successfully processed | Refunds without delays    |
| Receive your settlements in full      | Current balance = ₹5000<br /><br />Refund adjustments = ₹4300<br /><br />Settled amount = ₹700 | Current balance = ₹5000<br /><br />Settled amount = ₹5000                                             | Effortless reconciliation |

<div class="hidden" data-table-of-contents="bottom">
  <p class="mt-4 font-medium flex items-center gap-2 related-docs-heading">
    <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" class="w-4 h-4">
      <path d="M3 4h7a2 2 0 0 1 2 2v13a2 2 0 0 0-2-2H3z" />

      <path d="M21 4h-7a2 2 0 0 0-2 2v13a2 2 0 0 1 2-2h7z" />
    </svg>

    <span>Related topics</span>
  </p>

  <ul>
    <li><a href="/docs/api-reference/payments/latest/refunds/create">Create Refund API</a></li>
    <li><a href="/docs/api-reference/payments/latest/refunds/get">Get Refund API</a></li>
    <li><a href="/docs/help/end-customer/refunds">FAQs</a></li>
  </ul>
</div>
