These are the specific failure types SendPromptly is built for. If the failure pattern is on this page, SendPromptly will detect it. If it is not, you may need a different tool.
Missing credits after payment
Stripe says the invoice was paid, but your app did not add the credits.
Your handler accepted the invoice.paid event. The queue job ran. Somewhere between there and the credit column in your database, nothing happened — or the job crashed silently.
Relevant Stripe event: invoice.paid
Good fit for:
- Usage-credit SaaS
- AI credit products
- API quota systems
- Prepaid usage billing
Missing access after checkout
The customer paid, but the app did not unlock the feature, plan, workspace, or account.
The checkout.session.completed event was delivered. Your webhook returned 200. But the user’s account still shows the free tier. This is the most common post-payment support failure for SaaS teams.
Relevant Stripe event: checkout.session.completed
Good fit for:
- Subscription SaaS
- Gated dashboards and tooling
- Membership apps
- Paid plan upgrades
Subscription-state drift
Stripe and your local app state no longer agree.
A subscription renews, a plan changes, or a failed payment later recovers — but your local database did not follow. The customer has the right Stripe status but the wrong app behavior.
Relevant Stripe events: invoice.paid, customer.subscription.updated, customer.subscription.deleted
Good fit for:
- Renewal-linked feature state
- Plan-level access mappings
- Seat count updates
- Failed-then-recovered payment paths
Failed background jobs after Stripe success
Your webhook accepted the event, but the queued job that applies the business effect failed later.
This is the hardest failure to catch. Your webhook returned 200. Stripe considers the event delivered. Your queue worker picked up the job 40 seconds later — and it failed. Nothing flagged it. No alert fired.
This is why “webhook delivered” is not the same as “effect applied.”
SendPromptly catches this because it waits for your app to report the result — not just the receipt. If the result does not arrive within the configured timeout, or arrives as a failure, an incident opens automatically.
Relevant Stripe events: checkout.session.completed, invoice.paid
When SendPromptly is not the right fit
- You do not use Stripe
- You do not have custom app-side provisioning logic — Stripe Entitlements may be sufficient
- You only need webhook delivery logging or forwarding
- You need a full entitlements or pricing control plane
- You need generic webhook routing across multiple providers
For those needs, Hookdeck or Svix are better fits.
Ready to instrument one Stripe flow?
- Developer quickstart — add two API calls to your webhook handler
- How the recovery workflow works — full workflow walkthrough
- Pricing — Starter at $29/month, 14-day trial