Skip to main content
Stripe · Status

Stripe Status requires_action: Requires Action

The payment requires additional customer action to proceed, such as 3D Secure authentication, a bank redirect, or providing a one-time code. The next_action field on the PaymentIntent describes what the customer must do. Merchants must handle this client-side.

What it means

The requires_action status indicates that a Stripe PaymentIntent or SetupIntent is incomplete and cannot proceed until the customer completes an additional step. This is most commonly triggered by Strong Customer Authentication (SCA) requirements, such as 3D Secure, or alternative payment methods that require a bank redirect. The specific steps required are detailed in the object's next_action field.

Classification & retryability

softRetryable: conditional

Do not blindly retry the authorization server-side. Instead, resume the flow by presenting the required action (e.g., 3D Secure challenge) to the customer client-side. Once completed, the PaymentIntent can be re-confirmed.

Common causes

  • The transaction requires Strong Customer Authentication (SCA) via 3D Secure to comply with regional regulations or issuer risk rules.
  • An off-session payment attempt requires the customer to come back on-session to authenticate the charge.
  • The customer selected an alternative payment method that mandates a redirect to a bank portal or requires displaying a QR code.
  • A SetupIntent requires customer authentication to securely save a card for future off-session payments.

How to resolve it

Inspect the next_action field on the PaymentIntent to determine the required flow. Pass this information to your client application and use Stripe SDK methods (such as stripe.handleCardAction or redirect URLs) to present the authentication challenge to the customer. Once the customer successfully authenticates, the status will update to requires_confirmation, at which point your server must explicitly re-confirm the PaymentIntent to finalize the authorization.

For merchants

Configure your checkout flow to handle client-side authentication steps rather than treating this status as a final decline. Remove any logic that blindly retries on requires_action without customer involvement, and ensure off-session payment scripts gracefully handle SCA fallbacks by notifying the customer to come back on-session to authenticate.

For customers

Complete the authentication prompt provided on the checkout screen, which may involve entering a one-time passcode sent by your bank, logging into your banking app, or verifying the purchase in a secure 3D Secure popup.

Sources