#jared_3ds-card-deferred
1 messages ยท Page 1 of 1 (latest)
๐ Welcome to your new thread!
โฒ๏ธ We'll be here soon! Typically we respond in a few minutes, but sometimes we might take a bit longer if the server is busy or if you have a particularly tricky question.
โฑ๏ธ We close idle threads, which makes them read-only. Once a thread is closed it won't be reopened, but you can always start a new thread if you have another question.
๐ This thread will always be available, even after it's closed. You can find it again using Discord's search, or you can save this link: https://discord.com/channels/841573134531821608/1222213337928962211
๐ Have more to share? Add more details, code, screenshots, videos, etc. below.
Hi ๐
The issuing bank can request 3DS at any time, even if you have gone through 3DS with the card previously. Let me take a look at how this was created
It's up to the issuing bank whether or not the request it.
But it looks to me like you created with card using the deferred intents flow, correct? In this request https://dashboard.stripe.com/logs/req_DpkSpb2RX8pAQl
I'm not sure about deferred intents
We use the Ruby SDK to create PaymentIntents whether we are attempting to charge or auth the card
So it looks like PaymentIntent.create(....)
Does the deferred intents flow refer to authorizing the card now and charging it later? If so then yes that is what we are trying to do here
Right so in this case we are trying to create the payment intent without charging the card and then charge the card at a later date
You creat the payment intent with setup_future_usage. That implies to us that you have the user on-session and you will be creating a payment method
Since there is already a payment method attached, that is incorrect
In this request https://dashboard.stripe.com/logs/req_1lmxWk04m1GPMe
I think you mean to pass off_session=true instead: https://docs.stripe.com/api/payment_intents/create#create_payment_intent-off_session
This will indicate to the API that the customer is not interacting with your system at that time and we will automatically request an exemption from 3DS
Okay interesting so "setup_future_usage": "off_session" is not the same as "off_sesion=true"
Not at all
setup_future_usage is used when you are creating a Payment Method as part of the Intent confirmation. That informs the API that the payment method it will create should be set up for future usage
It implies the customer is on-session and able to authenticate
and that we should try to collect authentication from them so the payment method is configured properly
So it's doing the opposite of what you are trying to achieve
Okay I think I understand. In the case where we want to charge the customer later we need to set offsesion = true and we don't want to add setup_future_usage
Correct
Thank you that is really helpful. Do you know if there's a way to simulate this in a test environment? It seems like we can't reproduce it unless the authorization expires
Unfortunately you cannot simulate this exact situation. All our test payment methods either succeed or fail with specific failures.
You could use the card number here https://docs.stripe.com/testing#authentication-and-setup that ends in 3155. This will require additional authentication unless you set it up properly for 3DS
That would allow you to test your flow to be sure the payment methods you create a properly configured.
You would still need to create the Payment Intents with the correct parameters though and we don't have a way to automatically trigger another auth request in that scenario
I see okay
I feel like that answers our questions. Thank you so much for all your help here
I'm happy I was able to help ๐