#eoghanobrien_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/1288613518827982890
đ Have more to share? Add more details, code, screenshots, videos, etc. below.
Hi there
Both of these events above were triggered by a failed payment tied to a subscription update: https://dashboard.stripe.com/logs/req_AblT6DzntyhntC
Correct
I'm wondering if I can always rely on the charge.failed being triggered
or can I always rely on the payment_intent.canceled being triggered
or do I have to listen for both?
I've seen that I can get payment_intent.canceled in test mode without charge.failed
but I don't know if that's the same in live
If your goal is to be notified whenever any charge fails, listening to charge.failed is appropriate. This will always be triggered for any failed payment.
payment_intent.canceled will be emitted anytime a PaymentIntent is canceled. This may happen automatically for a failed invoice payment or if you explicitly cancel a PaymentIntent: https://docs.stripe.com/api/payment_intents/cancel
Okay, that's very helpful, one issue I have in test mode is when a payment intent is canceled as part of an subscription price change then I don't get charge.failed at all and I don't understand why not
Can you share the PaymentIntent ID for this payment?
Ah, I see. The reason there is no charge.failed event in this case is because a charge wasn't attemped at all
got it, that makes sense
The Customer tied to this Subscription doesn't have a default payment method
ah yeah, that I can handle via another webhook