The newer Stripe Elements (like PaymentElement) support 3DS out of the box. Since you're using server-side confirmation though, you could follow the instructions in this doc - https://docs.stripe.com/payments/3d-secure/authentication-flow#manual-three-ds to handle 3DS auth using either confirmCardPayment
or handleCardAction
functions from Stripe.js