Quick tip: Stripe attempts to pay invoices up to 4 times, not 3.

When payments fail, Stripe will retry them up to 3 times, based on the settings in your Stripe account. It’s not obvious, but that actually means that there are 4 attempts to pay each invoice. Here’s how it works:

Let’s say that these are the subscription settings in our Stripe account.

Ember Library Mediator

Given these settings, what happens when Stripe tries to charge a customer for their subscription and the charge keeps failing?

  • The first time that the charge fails:
    They send out a charge_failed webhook and an invoice.payment_failed webhook to let us know about the failed payment. The invoice.payment_failed webhook contains an attempt_count equal to 1.
  • They wait 3 days and retry the failed payment. It fails again.
    They send out a charge_failed webhook and an invoice.payment_failed webhook to let us know about the failed payment. The invoice.payment_failed webhook contains an attempt_count equal to 2.
  • They wait 5 days and retry the failed payment. It fails again.
    They send out a charge_failed webhook and an invoice.payment_failed webhook to let us know about the failed payment. The invoice.payment_failed webhook contains an attempt_count equal to 3.
  • They wait 5 days and retry the failed payment. It fails again.
    They send out a charge_failed webhook and an invoice.payment_failed webhook to let us know about the failed payment. The invoice.payment_failed webhook contains an attempt_count equal to 4.
    They cancel the customer’s subscription and send us a customer.subscription.deleted webhook.