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

# Refund payments

> Refund a Fintoc Collect payment on the legacy v2023-11-15 Payment Intent API, including partial and full refunds and how to track status by webhook.

You can partially or fully refund any successful payment. Refunds use your available Fintoc balance, which doesn’t include pending funds. If your available balance doesn’t cover the refund amount, Fintoc retries the refund for 5 business days before it expires.

Fintoc doesn’t refund the processing fees from the original payment.

<Warning>
  **Refunds for e-commerce plugins**

  You can issue refunds directly from VTEX or Shopify. However, **you can’t cancel these refunds from the platform’s dashboard**.

  To cancel one of these refunds, use the cancel refund endpoint or contact Fintoc support. **The cancellation won’t appear in your VTEX or Shopify dashboard.**
</Warning>

# Refund destinations

Refunds can only be sent back to the original bank account used for the payment. You can’t send a refund to a different destination, such as another bank account.

If your customer has closed their bank account, the refund transitions to `failed`.

If you plan to issue refunds, include `customer_email` when creating the checkout session. Fintoc uses this address to notify your customer about the refund’s progress.

# Refund lifecycle

### Chile 🇨🇱

You can create refunds at any time. Refunds take at most 1 business day to execute.

1. A new refund starts with the `pending` status.
2. At 15:00 on business days, Fintoc processes refunds created before 14:00. The refunds transition to `in_progress`. You can’t cancel an `in_progress` refund.
3. The execution date depends on when you created the refund. After processing finishes, the refund transitions to `succeeded`. Successful refunds appear on your customer’s bank statement in real time.
   1. Fintoc executes refunds created before 14:00 on a business day before 19:00 that day.
   2. Fintoc executes refunds created after 14:00 on a business day before 19:00 on the next business day.
4. If your Fintoc balance has insufficient funds, Fintoc retries the refund for 5 business days. After 5 unsuccessful business days, the refund transitions to `failed`. Other transfer failures also change the refund status to `failed`. Fintoc includes the refund amount in your next payout.

### Mexico 🇲🇽

You can create refunds at any time. Refunds take 1 to 2 business days to execute.

1. A new refund starts with the `pending` status.
2. At 18:00 on business days, Fintoc processes refunds created before 14:00. The refunds transition to `in_progress`. You can’t cancel an `in_progress` refund.
3. The creation time determines whether processing takes 1 or 2 business days. After processing finishes, the refund transitions to `succeeded`. Successful refunds appear on your customer’s bank statement in real time.
   1. Refunds created before 14:00 on a business day finish processing before 14:00 on the next business day.
   2. Refunds created after 14:00 on a business day finish processing before 14:00 within the next 2 business days.
4. If your Fintoc balance has insufficient funds, Fintoc retries the refund for 5 business days. After 5 unsuccessful business days, the refund transitions to `failed`. Other transfer failures also change the refund status to `failed`. Fintoc includes the refund amount in your next payout.

# Issue refunds

You can issue refunds through the Refunds API. Successful refunds appear on your customer’s bank statement in 1 to 2 business days. You can issue multiple refunds for a payment, but their total can’t exceed the original payment amount.

## Issue refund using the API

To refund a payment through the API, create a refund with the payment ID and set `resource_type` to `payment_intent`. You receive the payment ID in the `checkout_session.finished` webhook event. You can also retrieve the payment ID from the [dashboard](https://dashboard.fintoc.com).

```bash theme={null}
curl --request POST "https://api.fintoc.com/v1/refunds" \
--header 'Authorization: YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data-raw '{
  "resource_id": "pi_ja12Nqa3Lb4s",
  "resource_type": "payment_intent"
}'
```

To partially refund a payment, provide `amount` as an [integer in the smallest currency unit](/v2023-11-15/guides/home/currencies).

```bash theme={null}
curl --request POST "https://api.fintoc.com/v1/refunds" \
--header 'Authorization: YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data-raw '{
  "resource_id": "pi_ja12Nqa3Lb4s",
  "resource_type": "payment_intent",
  "amount": 1000
}'
```

# Cancel a refund

You can cancel a refund while its status is `pending`.

## Cancel a refund using the API

To cancel a refund through the API, call the cancel refund endpoint with the refund ID.

```bash theme={null}
curl --request POST "https://api.fintoc.com/v1/refunds/REFUND_ID/cancel" \
--header 'Authorization: YOUR_API_KEY' \
--header 'Content-Type: application/json'
```

# Refund status updates

Fintoc sends [webhook](/v2023-11-15/guides/resources/webhooks-walkthrough) events to your server when a refund’s status changes. Use these events to notify your customer about the refund’s progress.

We recommend handling the following events when refunding a payment:

| Event                | Description                                                                                                                                     | Action                                                                                                |
| :------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------- |
| `refund.in_progress` | Fintoc sends this event when refund processing starts.                                                                                          | Notify your customer that the refund should appear in their bank account within 1 or 2 business days. |
| `refund.succeeded`   | Fintoc sends this event after processing the refund successfully.                                                                               | Notify your customer that the money is in their bank account.                                         |
| `refund.failed`      | Fintoc sends this event when the refund fails. For example, the bank couldn’t process the refund or your Fintoc balance had insufficient funds. | Notify your customer that there was a problem with the refund.                                        |

# Refund vouchers

Fintoc provides refund vouchers as confirmation of successful refunds to your customer’s bank account. Download a voucher through the Retrieve Refund Voucher endpoint. You must start the download within 5 minutes.

# Refund notifications

When creating a checkout session, you can include `customer_email` for notifications. Fintoc uses a valid email address to notify your customer when a refund is created, succeeds, or fails.

# Refund fees

Fintoc deducts refund fees from your payout. If a refund fails, Fintoc reimburses the fee in your next payout.
