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 day’s activity to prevent unintended authorizations and uncollected funds.
Interac is a single-message network;
interac_present PaymentIntents are automatically captured. In lieu of canceling PaymentIntents, your application should allow initiating an in-person refund at the end of the checkout flow.
Cancel payments Client-sideServer-side
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.
This can be useful if, for example, your customer decides to use a different payment method or pay with cash after the payment has been processed. In your application’s UI, consider allowing the user to cancel after processing the payment, before finalizing the payment and notifying your backend to capture.
PaymentIntent from your client using the iOS, Android, or React Native SDK:
PaymentIntent on your server. For iOS, Android, or React Native, you can cancel the
PaymentIntent on your server if the information required to start a payment isn’t readily available in your app.
Perform refunds Client-sideServer-side
When you use a PaymentIntent to collect payment from a customer, Stripe creates a charge behind the scenes. To refund the customer’s 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, the BBPOS WisePOS E reader supports in-person refunds instead.
Online refunds don’t 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 currency’s smallest currency unit):