Skip to content
Create account
or
Sign in
The Stripe Docs logo
/
Ask AI
Create account
Sign in
Get started
Payments
Revenue
Platforms and marketplaces
Money management
Developer tools
OverviewExplore all products
Start building
Start developing
Sample projects
About the APIs
    API tour
    Payment Intents API
    Setup Intents API
      How SetupIntents work
    Payment Methods
    Products and prices
    Older APIs
    Release phases
Build with LLMs
Use Stripe without code
Set up Stripe
Create an account
Web Dashboard
Mobile Dashboard
Migrate to Stripe
Manage fraud risk
Understand fraud
Radar fraud protection
Manage disputes
Verify identities
HomeGet startedAbout the APIsSetup Intents API

How SetupIntents work

Learn how SetupIntents work within the payment flow.

Copy page

Asynchronous payment flows can be complex to manage because they depend on customer interactions that happen outside your application. PaymentIntents and SetupIntents simplify management by tracking the status of the flow.

requires_payment_method

When the SetupIntent is created, it has a status of requires_payment_method1 until a payment method is attached.

requires_confirmation
Optional

After the customer provides their payment method information, the SetupIntent is ready to be confirmed.

In most integrations, this state is skipped because payment method information is submitted at the same time that the SetupIntent is confirmed.

requires_action

If the setup requires additional actions, such as authenticating with 3D Secure, the SetupIntent has a status of requires_action1.

processing

After required actions are handled, the SetupIntent moves to processing. Although some payment methods (for example, cards) can process quickly, other payment methods can take up to several days to process.

succeeded

A SetupIntent with a status of succeeded means that the setup is successful.

You can now attach this payment method to a Customer object and use this payment method for future payments.

requires_payment_method

If the setup fails, SetupIntent’s status returns to requires_payment_method.

canceled

You can cancel a SetupIntent at any point before it is processing or succeeded.

1 Versions of the API before 2019-02-11 show requires_source instead of requires_payment_method and requires_source_action instead of requires_action.

Was this page helpful?
YesNo
Need help? Contact Support.
Join our early access programme.
Check out our changelog.
Questions? Contact Sales.
LLM? Read llms.txt.
Powered by Markdoc