#shaun-subscription-3ds

1 messages · Page 1 of 1 (latest)

round spade
#

hey there, this is supported, yes (setting up a PM for future use with a setup intent then using it with a subscription)

#

can you share the subscription id you're having issues with?

sonic copper
#

sub_1JkE5WARBDr9i9DALFYDElMV

#

it was incomplete for some reason when it was created

#

we use the payment method inside of the setup intent when creating the subscription

sonic copper
#

any ideas?

round spade
#

just a sec!

#

if you want to test the expected flow with auth on setup then future payments not requiring auth, you should use that first test card 4000002500003155

#

when set up (as you did here) the subscription wouldnt then be required to auth again

sonic copper
#

we're trying to test the flow with 3ds auth

#

oh gotcha

#

so that card will never work

round spade
#

ok if you want to have it auth each time thats fine, but then you need to confirm the payment intent returned after subscription creation (and future payments will hit this too with the 3184 card)

#

every payment needs authentication with the 3184 card

#

it doesnt matter if you set it up

#

the 3155 card is the one that works with setup for future usage and authentication up front

sonic copper
#

in that one i am using 3155 card

#

and still seeing the same issue

round spade
#

Ah, alright thanks. My colleague @strange hinge is going to take over to give you a hand -- i need to step away

strange hinge
#

Hello! Taking a look now, hang on...

sonic copper
#

correct

strange hinge
#

The documentation for the 3155 card is here: https://stripe.com/docs/testing#regulatory-cards

This card requires authentication for one-time payments. However, if you set up this card and use the saved card for subsequent off-session payments, no further authentication is needed.

#

The Subscription is incomplete because authentication hasn't been performed yet.

#

Does that make sense?

sonic copper
#

but if the setup intent was confirmed then wouldn't the authentication have been performed?

strange hinge
#

It was performed during the Setup Intent, yes, but that doesn't mean it won't be performed again. The 3155 card requires authentication for all on-session payments.

#

Setting it up with a Setup Intent or Payment Intent with setup_future_usage will only impact off-session payments.

#

Taking a step back, what are you trying to build exactly?

#

If I know more about your overall goals I can probably give you more helpful guidance.

sonic copper
#

we're trying to build out a flow where we collect payment in advance and don't actually create the subscription until they perform some separate verification flow (within our backend)

strange hinge
#

Will the customer be on-session when the Subscription starts after the verification is finished?

sonic copper
#

what does on-session mean?

strange hinge
#

They're still there... using your website, using your app, you can still prompt them and they'll take action.

sonic copper
#

they won't be

strange hinge
#

Okay, so you need to set off_session when creating the Subscription to let us know they're not there anymore. That way if authentication is required for the Subscription payment we will treat it like a decline instead of waiting for them to perform the required next action.

sonic copper
#

so in the example i sent above, was there a next action?

strange hinge
#

One point I want to make clear: card issuers/banks can require authentication for any transaction, even if the card has been set up/authenticated previously. Using a Setup Intent greatly reduces the chance that later off-session payments will require authentication, but it does not eliminate the possibility (nothing can eliminate the possibility).

#

Yes, in the example above the Payment Intent associated with the Invoice for the Subscription payment has a status of requires_action.

#

We treated that the way we did because you did not specify off_session when creating the Subscription.

#

We thought the customer was still there and could handle authentication through your integration.

#

So we put the Payment Intent in next_action status, set the Subscription to incomplete, and waited for your integration to present the authentication challenge to the customer so they could complete it.

#

Happy to help further if you have more questions! It's important to understand these details to build a solid integration. 🙂

sonic copper
#

ok, i'll try specifying off_session then

#

let's say it wasn't off-session, the setup intent is being passed from the client to our backend

#

and we create the subscription from our backend

#

what would be the next steps for us in that scenario?

strange hinge
#

If the customer is still on-session and the payment for the Subscription required authentication your integration should take note of that and prompt the customer to confirm the payment client-side (but if the customer is on-session you should confirm the payment client-side to begin with rather than doing it from your server first).

#

Can you tell me more about why you want to collect payment information prior to the verification and Subscription creation steps?

#

Is it literally that you just want to collect the payment info, or do you also want to verify it up front as well?

sonic copper
#

we want to collect payment info and have a decent amount of confidence that it will succeed. The reasoning is we need to verify that they have a special email before applying the subscription to their account.

#

So they'll go through a separate email verification flow and when they click the verify link from their email we want to create the subscription

#

they won't be logged in, so we wouldn't have their stripe account to link it to