You can actually leverage https://docs.stripe.com/payments/accept-a-payment-deferred to start by collecting/validating the PaymentMethod (using elements.submit
) and then create the order and the PaymentIntent at the same time and finally confirming the PI on the client side