- The refund rules at a glance
- How to refund in the Dashboard
- Expired cards and bank debits
- Why a refund fails
- Refunds that need the customer's bank details
- Reversals, references and tracing a refund
- Cancelling a refund
- Connect platforms and refund events
- My verdict on Stripe refunds
- Frequently asked questions
To refund a Stripe payment, find it on the Payments page, choose Refund payment from the overflow menu, and keep the full amount or enter a partial one. Refunds come out of your available Stripe balance, go back only to the original payment method, and usually show up for the customer 5 to 10 business days later.
Here's the catch. Stripe's processing fees from the original transaction aren't returned when you refund, and the refund itself might incur a fee. Cancelling a payment before it completes costs nothing. That's why Stripe suggests manual authorization and capture if you refund a lot of orders soon after purchase: you can cancel or capture less, instead of refunding.
The refund rules at a glance
| Rule | What Stripe says, as of October 2026 |
|---|---|
| Where funds come from | Your available balance, not pending amounts |
| Balance too low | Card refunds wait as pending; refunds on other methods fail |
| How much | Several refunds per charge are fine, but never more than the original amount |
| Where it goes | Only the original payment method, never a different card or account |
| Bulk refunds | Full refunds only; partial refunds one at a time |
| Customer email | Sent only if the charge was on a customer with a stored email and Email customers for refunds is on |
How to refund in the Dashboard
- Open the Payments page and find the payment.
- Click the overflow menu to the right of it and select Refund payment.
- Keep the full amount, or enter a smaller one for a partial refund.
- Choose a reason. If you pick Other, add a note explaining it.
- Click Refund.
For several full refunds at once, tick the box beside each payment, even across pages, then click Refund and choose a reason. You can also refund through the Refunds API.
Expired cards and bank debits
Refunds to expired or cancelled cards are handled by the card issuer and usually land on the replacement card. If there isn't one, the issuer typically finds another way, such as a cheque or bank deposit. For ACH, iDEAL and similar methods, handling varies by bank, and a closed account can send the refund back to Stripe as failed.
Bank debit payments carry a risk you might not expect. With SEPA, Bacs, ACH, ACSS, AU BECS or NZ bank debits, if you refund while the customer's bank also opens a dispute, the customer could be credited twice. Check each method's refund guidelines before refunding a disputed debit.
Why a refund fails
A refund fails when the customer's bank or card issuer can't process it, for example because the account's closed. The funds return to Stripe and go back into your balance, which can take up to 30 days. Stripe sends a refund.failed event, and it's then on you to find another way to repay the customer.
| Failure reason | What it means |
|---|---|
| charge_for_pending_refund_disputed | The customer disputed while the refund was pending; Stripe suggests handling the dispute instead |
| declined | Stripe's financial partners declined it |
| expired_or_canceled_card | The payment method was cancelled or expired |
| insufficient_funds | It sat pending for lack of balance past the expiry window |
| lost_or_stolen_card | The original card was reported lost or stolen |
| merchant_request | It failed at the business's request |
Refunds that need the customer's bank details
Some methods have no built-in refund route, including Konbini, PromptPay, Boleto and bank transfers. Stripe emails the customer for their bank details, and the refund sits in requires_action until they reply. If they don't respond before the deadline, it fails. If their bank rejects the transfer because of a typo or name mismatch, it goes back to requires_action and Stripe asks them again. You can cancel it at that stage if you'd rather repay another way.
Reversals, references and tracing a refund
A refund issued shortly after the charge may go through as a reversal. The original charge simply drops off the customer's statement and no separate credit appears, which is why some customers say they never saw a refund. You can check on the payment's Timeline under View Details.
When a customer chases you, give them a reference to take to their bank. For cards that's usually an Acquirer Reference Number, or a STAN or RRN where the network doesn't use ARNs. The ARN can take up to 7 business days to arrive from banking partners, and there isn't one for a reversal.
Cancelling a refund
Some card refunds can be cancelled for a short time, from the Dashboard only, as long as they haven't gone through as a reversal. Open the payment, choose Cancel refund from the overflow menu, pick the right refund if there are several partials, and confirm with Yes, cancel refund. Refunds waiting on bank details can be cancelled by API or Dashboard.
Want AI doing the heavy lifting in your marketing?
I build the systems that handle the boring 80 percent, so you get your week back. Done properly, with the human kept in.
Connect platforms and refund events
On Connect, direct charge refunds debit the connected account, while destination charge and separate charge and transfer refunds debit your platform, so reverse the transfers to recover the funds. Whatever your set-up, Stripe recommends listening for at least the refund.created event and building your own logic to tell customers or your team where a refund stands.
My verdict on Stripe refunds
I'd turn on Email customers for refunds today, and save the ARN for any customer who chases, because most refund complaints are a customer who can't see it yet. If you refund often right after purchase, look at manual capture, since cancelling is free and refunding isn't. Keep enough available balance to cover refunds, and read how Stripe payout timing works so you know when that balance fills up. For the full picture of what each charge costs you, here's a breakdown of Stripe's fees by country.
Refunds are a workflow, not a button, and the businesses that handle them calmly usually have the steps automated. I run AI training and workshops for teams, and help businesses with AI enablement, AI automation and workflow set-up, so the tools you already pay for do more of the work. Most of that work is with SaaS marketing teams and small businesses. Here's how we can work together.
Frequently asked questions
Does Stripe return fees when you refund?
No. Stripe's processing fees from the original transaction aren't returned, and the refund might incur a fee. Cancelling a payment before it completes is free.
How long do Stripe refunds take to reach the customer?
Customers usually see the credit about 5 to 10 business days after you issue it, depending on their bank.
Can I refund to a different card in Stripe?
No. Refunds can only go back to the original payment method used for the charge.
What happens if my Stripe balance can't cover a refund?
Card refunds stay pending until your balance is sufficient. Refunds for other payment methods fail.
Can I issue partial refunds in bulk in Stripe?
No. The Dashboard's bulk refund option only handles full refunds. Partial refunds must be issued one at a time.


