Payment Intent Status

    Learn about the status and lifecycle of a PaymentIntent.

    Asynchronous payment flows are complex to manage because they depend on customer interactions that happen outside of your application. The Payment Intents API simplifies this by keeping track of the status of the payment in a PaymentIntent object, which acts as the single source of truth in the payment lifecycle.

    The goal of a PaymentIntent is to have a status of succeeded, which requires these steps:

    • Create the PaymentIntent
    • Attach a valid payment method
    • Confirm the PaymentIntent

    The PaymentIntent may require additional steps of authentication or a new payment method in case of insufficient funds or incorrect payment details. This state is reflected in the status of the PaymentIntent. You can check the status of a PaymentIntent in the Dashboard. There are seven possible values for status:

    PaymentIntent status Description
    requires_payment_method status icon requires_payment_method When you create a PaymentIntent it has a status of requires_payment_method until you attach a payment method.
    requires_confirmation status icon requires_confirmation A PaymentIntent with a payment method is ready to be confirmed.
    requires_action status icon requires_action When you confirm a PaymentIntent, Stripe will take advantage of any available optimizations (such as SCA exemptions) to complete the payment without making the customer take additional actions. If the payment method requires additional actions, such as authenticating with 3D Secure, the PaymentIntent will have a status of requires_action.
    processing status icon processing Once required actions are handled, a PaymentIntent moves to processing.
    requires_capture status icon requires_capture If you want to separate authorize and capture to place a hold on a card, set capture_method to manual when creating the PaymentIntent. Then call confirm to authorize the card and capture when you're ready to capture the funds.
    canceled status icon canceled You can cancel a PaymentIntent at any point before succeeded.
    succeeded status icon succeeded A PaymentIntent with a status of succeeded means that the payment is complete and funds are in your account. After the PaymentIntent succeeds, use the Refunds API if you need to refund the customer.

    The flexibility of this design means that the Payment Intents API can support a wide range of payment flows with a unified integration. Take a look at some example use cases to find a relevant flow for your application.

    Next steps

    Questions?

    We're always happy to help with code or other questions you might have. Search our documentation, contact support, or connect with our sales team. You can also chat live with other developers in #stripe on freenode.

    Was this page helpful? Yes No

    Send

    Thank you for helping improve Stripe's documentation. If you need help or have any questions, please consider contacting support.

    On this page