Stripe | Financial Infrastructure to Grow Your Revenue

Stripe | Financial Infrastructure to Grow Your Revenue

4466 articles

Confirm Payment


Confirm a payment stripe.confirmPayment(options: object) Use stripe.confirmPayment to confirm a PaymentIntent using data collected by the Payment Element, or with manually provided data via confirmParams. When called, stripe.confirmPayment will attempt to complete any required actions, such as authenticating your user by displaying a 3DS dialog or redirecting them to a bank authorization page. Your user will be redirected to the return_url you pass once the confirmation is complete. > The stripe.confirmPayment might take several seconds to complete. > During that time, disable your form from being resubmitted and show a waiting indicator, such as a spinner. If you receive an error result, show this error to the user, re-enable the form, and hide the waiting indicator. - options - elements The Elements instance used to create the Payment Element. Required if you collect payment details before creating an Intent. It's always required if you don't provide a clientSecret. - clientSecret The PaymentIntent's client secret. Required if you collect payment details before creating an Intent. It's always required if you don't provide an elements instance containing a client secret. - confirmParams Parameters that will be passed on to the Stripe API. You can also use the parameters from the Payment Intents API, except for setup_future_usage. - return_url The URL that Stripe redirects your customer to after they complete the payment. You can use the following query parameters, payment_intent (the PaymentIntent's ID) or payment_intent_client_secret (the PaymentIntent's client secret), to retrieve the PaymentIntent's status. When Stripe redirects your customer, the resulting URL has these query parameters appended. You can also append your own query parameters to the return_url, which persist through the redirect process. If you don't want to redirect for card payments after payment completion, set redirect to if_required. - shipping The shipping details for the payment, if collected. Note: When the Address Element in shipping mode is being used, shipping address details are collected from the Address Element and passed to the PaymentIntents confirm endpoint as the shipping parameter. You can also include additional shipping fields, which will be merged with the data collected from the Element. Values passed here will override details collected by Elements. - confirmation_token If collected previously, the ID of the ConfirmationToken to use to confirm this PaymentIntent. This is mutually exclusive with the elements parameter. - payment_method If collected previously, the ID of the payment method to attach to this PaymentIntent. This is mutually exclusive with the elements parameter. - payment_method_data When you call stripe.confirmPayment, payment details are collected from the Element and passed to the PaymentIntents confirm endpoint as the payment_method_data parameter. You can also include additional payment_method_data fields, which will be merged with the data collected from the Element. - billing_details The customer's billing_details. Details collected by Elements will override values passed here. Billing fields that are omitted in the Payment Element via the fields option required. Note: When the Address Element in billing mode is being used, billing address details are collected from the Address Element and passed to the PaymentIntents confirm endpoint as the billing_details parameter. The values collected from the Address Element will take precedence. - allow_redisplay Indicates whether the payment method can be displayed to the customer in subsequent checkout flows. The value passed here will override the [allow_redisplay](the relevant part of the product#payment_method_object-allow_redisplay) determined by the provided elements parameter. - expand An array of pass through PaymentIntent expansion parameters (learn more). - redirect By default, stripe.confirmPayment will always redirect to your return_url after a successful confirmation. If you set redirect: "if_required", then stripe.confirmPayment will only redirect if your user chooses a redirect-based payment method. Note: Setting if_required requires that you handle successful confirmations for redirect-based and non-redirect based payment methods separately. When a non-redirect based payment method is successfully confirmed, stripe.confirmPayment will resolve with a {paymentIntent} object. ### Example title Confirm a payment intent

Last verified 2026-09-24

Is this helpful?