There are three ways to accept payments on Stripe today:
A prebuilt payment page that you can redirect your customer to for simple purchases and subscriptions. It provides many features, such as Apple Pay, Google Pay, internationalization, and form validation.
The Charges and Payment Intents APIs let you build custom payment flows and experiences.
We designed the Payment Intents API to be the unifying API for all Stripe products and payment methods. While we are not deprecating Charges, we plan to focus product development on Payment Intents to make it the foundational Stripe API.
Use the Setup Intents API to set up a payment method for future payments. Similar to a payment, but no charge is created.
The goal is to have payment credentials saved and optimized for future payments, meaning the payment method is configured correctly for any scenario. When setting up a card, for example, it may be necessary to authenticate the customer or check the card’s validity with the customer’s bank. Stripe updates the SetupIntent object throughout that process.