#davide_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/1366417502476701726
đ Have more to share? Add more details, code, screenshots, videos, etc. below.
Below are links to other discussions we've had with you in the past week in case you want to review that information. If your question is related to one of these previous discussions, please provide a comprehensive summary of the current state and what you need help with now. We help many users simultaneously, so a summary allows us to resolve your issue as soon as possible.
- davide_api, 32 minutes ago, 5 messages
Hi, that payment failed, pi_3RInQ5G0HkO3ZPnp07UMi4H8 so there is not a charge object, you shoudl see latest_charge: null,
For this reason, you need to listen to the event I suggested earlier and look at the error code
ok, but 1) shouldn't i see a charge even if the payment failed? I expect to have a charge with status "failed";
2) the error code "payment_intent_authentication_failure" is more vague than three_d_secure "failed".
I mean "payment_intent_authentication_failure" can have different meaning. for example there are at least 2 different messages associated to that code. And, moreover, i want specific information about the three_d_secure
That error code is pretty clear code: "payment_intent_authentication_failure", no? What do you mean by '2 different messages'?
to that code I see in the "message" field both "The latest payment attempt of this PaymentIntent has failed or been canceled, and the attached payment method has been removed..." and "The provided PaymentMethod has failed authentication. You can provide payment_method_data or a new PaymentMethod to attempt to fulfill this..."
so how do i know which one refers to a 3ds related failure?
also regarding 1) so why am i not seeing all charges, if some can be failed?
I see this: message: "The provided PaymentMethod has failed authentication. You can provide payment_method_data or a new PaymentMethod to attempt to fulfill this PaymentIntent again.", where are you looking ?
In general, I am looking at the crosstable of all possible "code" and all possible "messages".
You can look at the error code listed here: https://docs.stripe.com/error-codes#payment-intent-authentication-failure to better understand what they mean/ map that way.
ok, then why am i not seeing all charges then?
for some customers i am able to see even the failed ones
I can update you on what my desiderata would be.
I'd like to see all charges for each customer together with the full details on the three_d_secure.result and result_reason values.
and I see from the Charges documentation that i should be able to see even values like "exempted", "failed", "not_supported" (in the result field, f.e.)
but in our charges collection we never see those values.
So the way 3ds works with Payment Intents, a Charge isn't created until 3ds passes
So if 3ds fails authentication, then charge isn't created
You'll need to listen to the event my colleague mentioned
then why do you allow for a "failed" value in charge.payment_method_details.card.three_d_secure.result?
This is very misleading
Charges don't support 3ds authentication. Payment Intents do
So if you create a Charge directly with a card that needed 3ds (a legacy integration path), then it will fail
Complete reference documentation for the Stripe API. Includes code snippets and examples for our Python, Java, PHP, Node.js, Go, Ruby, and .NET libraries.
And you'll get the result there
I've taken this payment_method_details.card.three_d_secure.result from the charge object, not from payment_intent
yes, I'm going to take a screenshot
This is from the stripe Api documentation for the charge object
you see: there are fields related to three_d_secure in the charge object
not in the payment_intent object
I'm aware of that
That's due to what I said earlier
That would be populated if you create a charge directly with a card that requires 3ds
so what is the point of not creating a charge object if the 3ds is failed if in the charge object there's a field regarding the failure of 3ds?
Not if you create a payment intent
Because you get notified on that in the payment intent
I also didn't design this api
So I can't speak to specifics
ok so what is the correct way to identify 3ds failures? if i see "payment_intent_authentication_failure", am I sure that it's because of 3ds failure?