← Back to venwai.com

Blog

Notes on Stripe billing drift, webhook reliability, and reconciliation.

September 3, 2026

A customer just paid you and is staring at a paywall

Checkout redirects the customer back before your webhook has necessarily arrived — and if you granted access purely on the redirect, or purely on a webhook that silently isn’t configured in live mode, the gap between "paid" and "unlocked" is where angry support tickets come from.

September 3, 2026

Ghost customers: when a Stripe subscription goes bad without ever firing subscription.deleted

If your access logic only listens for customer.subscription.deleted, a subscription can sit unpaid for weeks — full access, zero revenue — and you’ll never get the event that was supposed to tell you.

September 3, 2026

Your Stripe webhook returns 200. That doesn’t mean it worked.

A 200 response only tells Stripe the request was received — not that your handler actually did anything with it. Here’s the failure mode, why it survives for months, and how to catch it.