Stripe requires customer bank account details to process the refund. In some cases, Stripe receives the customer’s bank account details when performing the transfer. Stripe emails the customer to let them know that the refund is in process.
When we can’t determine the destination bank account automatically due to unavailable or ambiguous customer bank account information, Stripe requests it by contacting the customer at the email address in the customer object you created. If you didn’t include an email address when you created the customer object, creating a refund results in an error. Update the customer object with a valid email address for the customer, and try creating the refund again. You can specify a new email address when you create a refund.
In some cases, Stripe performs additional checks before processing a refund or asking your customers for bank account information. Stripe contacts you if we require more information before finalizing the refund.
Customers have 45 days from receipt of the request to submit bank account details. After 45 days without a valid response, Stripe cancels the refund and returns the funds to the customer’s account cash balance. We recommend you then contact your customer to discuss alternative ways of returning the funds.
You can refund a payment up to 180 days after it was created.
Creating a payment refund using the Dashboard
- To refund a payment made with a bank transfer, navigate to the payment page and click Refund.
- In the following dialog, enter the amount you want to refund, if different than the full payment amount, and any other details about the refund. Then click Refund.
Creating a payment refund using the API
Refunds are sent to the customer’s bank account, and the customer receives a notification at their default email address. If you want to override the default email address used to contact the customer, specify the new email address using the
The refund’s status transitions as follows:
|Refund is created|
|Customer submits bank account details, and Stripe begins processing the refund|
|Refund is expected to arrive in customer’s bank|
|Customer’s bank returns the funds back to Stripe|
|Refund is in |
requires_action 45 days after creation
|Refund is canceled from a |
If the customer’s bank can’t successfully complete the transfer, the funds are returned to Stripe and the refund transitions to
requires_action. This can happen if the account holder’s name doesn’t match what the recipient bank has on file or if the provided bank account number has a typo. In these cases, Stripe emails the customer to inform them of the failure and to request that they resubmit their bank account details.
If your customer does not provide their bank account details within 45 days, the refund’s status transitions to
failed and the charge.refund.updated event is sent. This means that Stripe is unable to process the refund, and you must return the funds to your customer outside of Stripe.
The instructions_email field on the refund is the email that the refund was sent to. While a refund is waiting for a response from the customer, details of the email sent to the customer can also be found under the next_action.display_details.email_sent field on the refund.
Each individual refund (including each partial refund) may incur a fee. Please reach out to your point of contact at Stripe to learn more about this.