#valerii-setupintent-3ds

1 messages ยท Page 1 of 1 (latest)

delicate locustBOT
tribal agate
#

๐Ÿ‘‹ Please bear with me, the server is extremely busy and I'm helping 15 other people already, I'll come back to you as soon as I can

gritty niche
#

Hi ๐Ÿ‘‹

#
  1. Stripe does support collecting 3DS authentication when using Setup Intents. You can use custom Radar rules to trigger 3DS authentication.
#
  1. I cannot speak to that, however your integration should be prepared to bring the customer back on-session to authenticate a payment if required.
tribal agate
#

valerii-setupintent-3ds

hollow fossil
#

Hello @gritty niche ! Thanks for your response. I would like to clarify few things:

  1. My problem is not with triggering the 3DS explicitly. I mean, if I use SetupIntent approach (as I described) and even after customer successfully passed 3DS authentication on the front-end side and saved card as a payment method - I cannot capture PaymentIntent on the back-end side (using saved payment method) because Stripe returns requires_action status code. In case Stripe actually supports SetupIntent in combination with 3DS cards - what is recommended approach to implement it (assuming our current approach is not correct)?

  2. What is recommended approach to handle such situations (assuming that I am trying to charge customer's card in a background)? Should I require customer to pass 3DS authentication per each transaction? I think, in that case usage of the SetupIntent does not bring any benefits, but maybe I am missing something

tribal agate
#

Can you give an example PaymentIntent id pi_123 for #1?

#

Overall though, it's just how banks/3DS work really. You can collect card details and do 3DS upfront with a SetupIntent, there's no guarantee that the bank won't require 3DS again for a future payment or just decline. In that case you get your customer back "on session" on your app

hollow fossil
hollow fossil
tribal agate
#

there's no specific recommendation, that part is completely up to you. Maybe you email them or text them, we don't really know the relationship you have with your own customers

#

And yeah looking at that PaymentIntent, it looks like it's really just the bank requiring 3DS again in that case.

#

But you're missing 2 things here

#

1/ You never passed off_session: true when you created/confirmed the PaymentIntent.

#

2/ There's no reason for an integration to collect card details via a SetupIntent, and a few minutes later immediately charge the card

#

Why are you using SetupIntent if you are going to charge their card right after anyways? Why don't you use PaymentIntent upfront?

hollow fossil
#
  1. I use the following code to create PaymentIntent (Java)
PaymentIntentCreateParams.builder()
.setSetupFutureUsage(PaymentIntentCreateParams.SetupFutureUsage.OFF_SESSION) ```

Is it not the same as setting off_session to true explicitly?

2) basically, we need to charge customer immediately and we need to save the customer's payment details for future payments. I thought that usage of the SetupIntent makes sense in that case. Which approach is better for my use case?
tribal agate
#

1/ no that's totally different and unrelated. This is only useful when collecting new payment method details and irrelevant here

#

2/ yeah no, this is sadly quite wrong

#

If you charge someone immediately you should never use SetupIntents at all

#

So really I think what you want is to remove the SetupIntent step entirely here and always use PaymentIntent

#

in that case having setup_future_usage is the right approach

hollow fossil
#

ok, I will try that approach, thanks a lot for your help!