NewNo plan feeNo plan fee. Just 2.9% + $0.30 per card sale, and signing up is free.Try now →

Stripe · Decline codes

What does the Stripe authentication_not_handled decline code mean?

Checked

Stripe's authentication_not_handled decline code is a follow-up to authentication_required. The card's bank asked for the cardholder to verify the payment, the payment went ahead without that verification, and the bank declined it again. The fix is to run the 3D Secure (strong customer authentication) step and let the shopper complete it. For payments taken while the customer is away, Stripe advises preparing authentication while the customer is present and falling back to an on-session payment if needed.

Type
Authentication needed (soft decline)
Who declined
The card's bank
Retry
Only with the verification step completed
Shopper action
Pay again and finish the bank's verification screen
Merchant action
Make sure checkout runs 3D Secure; bring off-session customers back to confirm

What PlatformDTC does

PlatformDTC's checkout routing treats authentication_not_handled as a 3D Secure case: the payment stays on the same processor for verification and is never offered to a backup processor. On renewals, on the fixed schedule or with Smart retry, it is not retried blindly: the subscription is held past due and the customer gets an "action required" email asking them to confirm the payment with their bank.

Why it happens

It usually means an integration or flow let the payment continue without showing the bank's challenge, or a saved card was charged without the customer present when the bank wanted them to verify.

What the shopper can do

Go back to checkout and pay again, and complete the verification window or banking-app prompt when it appears.

What the store can do

If you see this often, your checkout is skipping verification the bank asked for. For subscriptions, collect and authenticate the card while the customer is present (when they first subscribe), and email them a confirmation link when a later charge asks for verification again.

For developers

Stripe's guidance: run the EMV 3D Secure or SCA flow; for off-session payments, collect and prepare authentication on-session first, then fall back to on-session if needed. The value is in last_payment_error.decline_code.

Frequently asked questions

What is the difference between authentication_required and authentication_not_handled?
authentication_required is the bank asking for verification. authentication_not_handled means the payment continued without that verification, so the bank declined again.
Will retrying the same payment work?
Not without verification. The bank wants the cardholder to approve the payment, so the retry has to include the 3D Secure step.

Sources

Related

Payments library