Stripe subscription expired after 23 hours? Why customers lose access
Ship ItChecked against the official source
Source checked 5 Oct 2026 · Published 23 Oct 2026 · Last reviewed 23 Oct 2026 · By Ctrl+Z Therapy (how we test)
The short answer
For a subscription that charges automatically, the customer has 23 hours to pay the first invoice. Until then the subscription is incomplete, for example when the payment requires customer authentication (3D Secure). If the first invoice is not paid within 23 hours, the subscription transitions to incomplete_expired and the open invoice is voided. So if your app unlocked the plan the moment the subscription was created, that customer loses it about a day later.
What to do
- Unlock the paid plan only when the subscription status is active or trialing, not the moment it's created.
- Stripe's docs: provision access when you receive invoice.paid and the subscription status is active.
- When a subscription changes to canceled or unpaid, revoke access. On past_due, notify the customer and ask them to update their payment details.
Good to know
- Stripe calls incomplete_expired a terminal status. To reactivate the customer's access, you create a new subscription.
Source
Checked on 5 Oct 2026. Prices, limits and settings change, so check the source before you rely on them.