| [ Web Proxy ] |
| Viewing: https://docs.stripe.com/terminal/features/refunds | [Back] [Original] |
Stripe Terminal supports both automatic and manual capture.
When the SDK returns a confirmed PaymentIntent to your app, the payment is authorized but not captured. You can cancel payments that are authorized and not captured. If the PaymentIntent has already been captured, you must refund the underlying charge created by the PaymentIntent, using the refunds API or Dashboard.
We recommend reconciling payments on your backend after a days activity to prevent unintended authorizations and uncollected funds.
Canceling payments is available on Visa, Mastercard, American Express, Discover, and girocard. For single-message payment methods like Interac and eftpos, PaymentIntents are automatically captured. In lieu of canceling PaymentIntents, make sure your application can allow initiating a refund at the end of the checkout flow.
Online refunds are available on all card networks except for Interac.
In-person refunds are only available on Interac.
You can cancel a card_present PaymentIntent at any time before it has been captured. Canceling a PaymentIntent releases all uncaptured funds, and a canceled PaymentIntent can no longer be used to perform charges.
Use this when, for example, your customer decides to use a different payment method or pay with cash after the payment has been processed. In your applications UI, consider allowing your customer to cancel after they confirm the payment, and before you finalize it and notify your backend to capture.
Cancel a PaymentIntent from your client using the iOS, Android, or React Native SDK:
Client-side PaymentIntent cancellation is possible with the iOS, Android, and React Native SDKs. If youre using a server-driven integration, cancel the PaymentIntent server-side.
The JavaScript SDK and server-driven integration require you to cancel the PaymentIntent on your server. For the other client SDKs, you can cancel the PaymentIntent on your server if the information required to start a payment isnt readily available in your app.
When you use a PaymentIntent to collect payment from a customer, Stripe creates a charge behind the scenes. To refund the customers payment after the PaymentIntent has succeeded, create a refund by passing in the PaymentIntent ID or the charge ID. You can also optionally refund part of a payment by specifying an amount.
You can perform refunds with the API or through the Dashboard. For Interac transactions in Canada, you can provide in-person refunds on the BBPOS WisePad 3, BBPOS WisePOS E, Stripe Reader S700/S710, Tap to Pay on iPhone, or Tap to Pay on Android.
Online refunds dont require a cardholder to present their card again at the point of sale. The following example shows how to create a full refund by passing in the PaymentIntent ID.
To refund part of a PaymentIntent, provide an amount parameter, as an integer in cents (or the charge currencys smallest currency unit):
| Web Proxy Viewer | New URL | Original Page |