Stripe authentication_required / 3D Secure Decline
Quick answer
authentication_required means the issuer wants 3D Secure. With Stripe's front ends the customer usually gets a prompt; for off-session charges you need to bring the customer back on-session.
Most likely fix: Use Stripe's own front ends
How to fix it
Try these in order — the most common fix is first.
1. Use Stripe's own front ends
- With Checkout or Elements, a soft decline from the issuer triggers the authentication flow so the customer can retry
Did this fix it?2. Handle off-session renewals
- Collect and authenticate the card on-session first (SetupIntent)
- If a renewal fails, email the customer a link to complete authentication
Did this fix it?3. Handle authentication_not_handled
- Run the EMV 3DS / SCA flow for the payment; for off-session, prepare authentication on-session first, then fall back to on-session
Did this fix it?4. If it still fails after authentication
- The customer has to contact their issuer; Stripe notes this can happen even with successful authentication
Did this fix it?
Symptoms
Payments fail with authentication_required or authentication_not_handled, often on subscription renewals or European cards.
Why it happens
- Issuer soft decline requiring 3DS or SCA
- Off-session payment (renewal) where the customer is not present
- Your integration does not run the 3DS flow
- Issuer returns the code even after successful authentication
This guide also covers
- stripe authentication_required
- stripe 3d secure declined
- stripe authentication_not_handled
- stripe sca error
Still not working?
If Stripe keeps failing, you're not alone. See every Stripe problem users report or the alternatives people switch to.
Need a custom web app or internal tool? Our small team builds it, on your domain or hosted by us. Price agreed together.
Get a quoteOther Stripe errors
- Stripe Account Under Review: What to Do
- Stripe Payouts Paused or Pending: Why and How to Fix
- Stripe 'Your Card Was Declined' (generic_decline, do_not_honor)
- Stripe Webhook Signature Verification Failed
- Stripe Webhooks Not Firing or Failing (302, 400, 500, Timeout)
- Stripe Dispute Lost: What Happens and Can You Appeal
- Stripe Account Restricted: Verification Information Required
- Stripe Radar Blocking Legitimate Payments