#mtoledo2_api
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/1491412652235423768
๐ Have more to share? Add more details, code, screenshots, videos, etc. below.
๐ Hi there! Let me take a look
How are you retrieving the Payment Intent? I see it has latest_charge: "ch_3TIqxEDMNOMDEQIU1CXcJHL4"
Or you mean you didn't see a latest_charge before the payment was successful?
yeah didn't see a latest charge until after success
via API
So we create a payment intent -> use 3ds card -> fail authorization
From there we don't see a latest charge until after we repeat process with success
the only sign that there is a 3ds failure is in latest_payment_error but I would expect a charge to exist with 3ds failure reason
The Charge is created when the Payment Intent is successfully confirmed
When 3DS authentication fails, the Payment Intent is updated with the error, and you also receive an event like payment_intent.payment_failed, e.g. https://dashboard.stripe.com/acct_1NLWhXDMNOMDEQIU/test/events/evt_3TIqxEDMNOMDEQIU13Mb5UEU
Which includes an error code like payment_intent_authentication_failure
A charge would get created as well if the transaction failed for insufficient funds for example
which is why I was expecting the same for 3ds
Ah yeah. I think this is just a quirk of how 3DS works. I believe the Charge you see is only created once the customer has passed 3DS authentication, and then we attempt to Charge their card
Is there a particular reason that you need to look at the Charge object in the case of failures?
so there's no way to know with charge that 3ds failure occurred?
Reason was just uniformity. That's where we'd see the authentication result on a 3ds object on success
Yeah, there's no Charge object when 3DS failure happens. You should be able to get any information you need from the Payment Intent
specifically looking at three_d_secure field with the 3d secure outcome
hmm I don't think you can get that field from the payment intent unless I'm missing something
not obvious in https://docs.stripe.com/api/payment_intents/object
If the payment has not succeeded, there is no 3DS outcome data
Once the Payment Intent has succeeded, you'll be able to see the 3DS details on the associated Charge object: https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card-three_d_secure
But if 3DS failed, there's nothing to see
I see so latest_payment_error is the only thing that can really be shared as far as 3ds failure goes
Yeah, that's right
I see, ok