Oliver Nassar

I can be reached at onassar@gmail.com.

For my open source work, check out github.com/onassar


Stripe: Failed invoices vs failed charges

View more posts

Another post for me to remember some obscure tech fact:

With Share As Image, we're using monthly recurring plans
We're also using Stripe webhooks for some maintenance around provincial taxation
Stripe sends the following two (among other) event types: invoice.payment_failed and charge.failed

I was a little confused around the two
When a person is subscribed to a monthly recurring plan, and their payment does not go through, both an invoice.payment_failed and charge.failed event webhook is fired
Note that sometimes these events don't go through in the same order
Sometimes the charge.failed is sent first; otherwise second
The time between the two charges seems to be variable too; sometimes upwards of 60 seconds

However I was also seeing charge.failed events being sent to the server, that didn't seem to be tied to an invoice (which is also associated with a plan)
Those can happen when a subscription is initially attempted to be created for a Stripe customer, but the card doesn't go through
For example, the credit card company declines the transaction

Hope that helps
For more info: https://www.petekeen.net/stripe-webhook-event-cheatsheet