Stripe integration and SCA
Since 2021 Strong Customer Authentication (SCA) is mandatory for most online payments in the EU. Anyone building a payment form without SCA support sees conversion losses of 20 to 40 percent in the DACH region — the bank simply declines the transaction. Stripe Payment Intents solve this at tool level by automatically triggering 3D-Secure when the bank demands it.
Technically that means: you create a payment intent server-side, pass the client secret to the frontend, where it is confirmed with Stripe.js. The SCA prompt appears as a modal dialog (3D-Secure), the user confirms via app or SMS, then the payment goes through. The whole flow typically takes 10 to 30 seconds extra but is legally unavoidable.
Important: test SCA explicitly with Stripe test cards (4000 0027 6000 3184 forces 3D-Secure). Many teams only discover after going live that their flow breaks under SCA — for example because the modal is swallowed by a popup blocker or the success page redirects too early. Webhook listeners on "payment_intent.succeeded" are the only reliable way to confirm payment status server-side.