#nuke_webhooks
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/1267563915886465056
📝 Have more to share? Add more details, code, screenshots, videos, etc. below.
Here is the related pi_3PgzslEpVF9IEchn18kU80kt. Eventually it was refunded
Hi, can you add way more details here?
What do you expected to happen vs what exactly happened?
I expect that after a succesful terminal payment for a
terminal.reader.action_succeeded event on the payment intent. Which should trigger a webhook I have set in place. However, it did not trigger even though the payment intent had succeeded
Can you share another payment intent id where you saw both of the events as you expected?
pi_3PhJe2EpVF9IEchn1pELilRG
payment_intent.succeeded and then 1 second later there was a terminal.reader.action_succeeded
The terminal.reader.action_succeeded: evt_1PhJeAEpVF9IEchnAt4KhnoJ has my webhook sent successfully
This payment pi_3PhJe2EpVF9IEchn1pELilRG see both 'terminal.reader.action_succeeded' and 'payment_intent.succeeded' events as your Terminal request succeeded: https://dashboard.stripe.com/logs/req_peelEi1T9cUAdG. Meanwhile, this pi_3PgzslEpVF9IEchn18kU80kt did not see 'terminal.reader.action_succeeded' due to this request, https://dashboard.stripe.com/logs/req_13eOU569XvAchK failing from a busy reader. We send this event when 'Occurs whenever an action sent to a Terminal reader was successful', https://docs.stripe.com/api/events/types#event_types-terminal.reader.action_succeeded. Since the request did not succeed we did not send that that event.
Why wasnt there an action failed evt?
yeah, that is what I'm further investigating too
Can a payment intent succeed without a terminal.reader.action_succeeded evt though?
I'm checking on that as well, give me some time to dig here
Here is another example of it happening if you need more data: pi_3Pgxr4EpVF9IEchn1XVDVHDq
Yea, I talked to two other engineers on my team and can confirm it can happen and we document this here: https://docs.stripe.com/terminal/payments/collect-card-payment?terminal-sdk-platform=server-driven#reader-timeout:~:text=On rare occasions%2C a terminal,due to temporary networking failures
These are false negatives and as long as you see this event, 'payment_intent.succeeded' you can know that the payment succeeded.
So its recommended to use the 'payment_intent.succeeded' webhook when using server driven terminal?
I figured the terminal_reader_timeout happens when trying to send the payment to the terminal
These do not happen often but to cover your basis when these happen, you can rely on both: https://docs.stripe.com/terminal/payments/collect-card-payment?terminal-sdk-platform=server-driven#payment-failures.
but i didnt get any terminal.reader.action_failed events
That is right, in rare cases this can happen ' False negatives happen when Stripe sends a message to the reader, but doesn’t receive an acknowledgement back from the reader due to temporary networking failures.'.
Wouldn't that mean that its a failure?
I just want to make sure I update my application UI correctly and have the terminal in a state where the user can use it for the next transaction.
That is not a failure in this case as the payment succeeded in the back end.
So Stripe doesn't retry communication with the device?
Not here, that is correct.
I see so just to confirm its best to listen for 'payment_intent.succeeded' to remove these false negatives. This will ensure we don't run into issues where payment goes through even though the terminal.reader.action_succeeded didnt fire?
In the event when you do not see payment_intent.succeeded or payment_intent.failed events, yes.
I have another question kind of related to this should I open a new ticket or can i ask it here?
you can ask here
pi_3PgztDEpVF9IEchn0U051GM5 This PI has a
terminal.reader.action_succeeded but the PI is not successful
Seems like a false positive instead of false negative. It seems like terminal.reader.action_succeeded is not reliable when network conditions are not ideal
But, here the payment intent never succeeded so it does not sound like it's that
No but its attempting to send me a webhook that it did
Stripe is trying to send that event, evt_1PgzuOEpVF9IEchn6Wbiiwmi but that is failing
I know but why is the terminal.reader.action_succeeded evt triggered when the payment intent has not succeeded?
pi_3PgztDEpVF9IEchn0U051GM5 is Incomplete
Asking a teammate who knows a bit more about Terminal, thank you for your patience.
Thank you
👋 Stepping in for my teammate. Could you share what you saw on the reader in this particular case?
In this case, we expect terminal.reader.action_succeeded after a payment method has been presented so agree that this looks odd
I can try to ask them again but I'm not sure if they will even remember what they saw on the terminal reader. Is there any other information i can provide?
I'm looking at the logs to put together a timeline of what happened in this particular case
Still digging into this, thanks for waiting!
Can i turn this into email since i'm leaving for the day in a few mins
Yep, can do! I see we have an ongoing case about terminal.reader.action_succeeded events so we can continue to chat there