#davide_api

1 messages ¡ Page 1 of 1 (latest)

pulsar zealotBOT
#

👋 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.

molten plume
#

Hi, that payment failed, pi_3RInQ5G0HkO3ZPnp07UMi4H8 so there is not a charge object, you shoudl see latest_charge: null,

pulsar zealotBOT
molten plume
#

For this reason, you need to listen to the event I suggested earlier and look at the error code

quartz rampart
#

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

molten plume
#

That error code is pretty clear code: "payment_intent_authentication_failure", no? What do you mean by '2 different messages'?

quartz rampart
#

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?

molten plume
#

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 ?

quartz rampart
#

In general, I am looking at the crosstable of all possible "code" and all possible "messages".

molten plume
quartz rampart
#

ok, then why am i not seeing all charges then?

#

for some customers i am able to see even the failed ones

prisma raft
#

Hi taking over here as pgskc has to step away

#

Give me a bit to catch up

quartz rampart
#

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.

prisma raft
#

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

quartz rampart
#

then why do you allow for a "failed" value in charge.payment_method_details.card.three_d_secure.result?

#

This is very misleading

prisma raft
#

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

quartz rampart
prisma raft
#

And you'll get the result there

quartz rampart
#

I've taken this payment_method_details.card.three_d_secure.result from the charge object, not from payment_intent

prisma raft
#

What do you mean

#

When

#

Can you share an example

quartz rampart
#

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

prisma raft
#

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

quartz rampart
#

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?

prisma raft
#

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

quartz rampart
#

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?