Use SetupIntents to collect card details without charging the card. Saving cards with Stripe Terminal using SetupIntents requires you to:
- Create or retrieve a Customer object.
- Create a SetupIntent object to track the process.
- Collect a payment method after collecting the customer’s consent.
- Submit the payment method details to Stripe.
You’re responsible for your compliance with all applicable laws, regulations, and network rules when saving a customer’s payment details. For instance, if you save a customer’s payment method for future use, you need their agreement. Getting that agreement up front allows you to save the customer’s payment details, and potentially even charge the customer when they’re not actively using your website or app, placing a MOTO order, or in your store.
Add terms to your checkout flow that state how you plan to save a customer’s payment method details and let the customer opt in. If you plan to charge the customer while they’re offline, then at a minimum, make sure that your terms also cover the following:
- The customer’s agreement to your initiating a payment or a series of payments on their behalf for specified transactions.
- The anticipated timing and frequency of payments (for instance, whether charges are for scheduled installment or subscription payments, or for unscheduled top-ups).
- How the payment amount is determined.
- Your cancellation policy, if you’re setting up the payment method for a subscription service.
Make sure you keep a record of your customer’s written agreement to these terms.
You can use SetupIntents to collect card details on Visa, Mastercard, American Express, Discover, and co-branded eftpos cards. Interac cards, single-branded eftpos cards, and mobile wallets (for example, Apple Pay or Google Pay) aren’t supported.
If you’re integrating with the Terminal iOS or Android SDK, your applications must be on version 2.x of the SDK to use SetupIntents.
The SetupIntents API is compatible with all BBPOS readers, the M2, Tap to Pay on iPhone, and Tap to Pay on Android. It’s not compatible with the Verifone P400. The server-driven-based SetupIntents API is compatible with BBPOS WisePOS E and Stripe Reader S700.