Collecting payments with Stripe Terminal requires writing a payment flow in your application. Use the Stripe Terminal SDK to create and update a PaymentIntent, an object representing a single payment session.
Collect payments in Canada
Adding Interac acceptance requires a few changes to the
card_present payment flow for Visa, Mastercard, and American Express.
Error messages for Interac
If an error occurs while processing an Interac card, an error message is returned similar to those received from other card payment types. You can test these errors to make sure your application handles them correctly.
Handling Interac processing failures
Because Interac in-person payments must be refunded while the cardholder is present, you must be especially careful to prevent unintended and duplicate payments in your integration. If a failure or decline occurs while processing Interac, be sure to use the same PaymentIntent that was created at the beginning of the transaction. Do not create a new PaymentIntent, as that can result in duplicate charges for the cardholder.
In case an unintended payment occurs (for example, if the customer decides to cancel the purchase after
processPayment succeeds), your application should allow initiating a refund at the end of the checkout flow.
As a fallback, your application can also allow refunding unintended Interac payments using a different payment method (e.g., store credit or cash).