// the find
spatie/laravel-stripe-webhooks
Handle Stripe webhooks in a Laravel application
A thin Laravel wrapper around Spatie's own laravel-webhook-client that handles Stripe signature verification, deduplication, and event routing to jobs or listeners. If you're already using Laravel and need to handle Stripe webhooks without rolling your own signature verification and DB logging, this gets you there in about 15 minutes. It's intentionally narrow — it receives and routes, nothing more.
Signature verification is on by default and has to be explicitly disabled, which is the right default for payment webhooks. Automatic DB logging of every webhook call means you have a retry path when your job handler blows up — dispatch ProcessStripeWebhookJob against any stored WebhookCall id. Stripe Connect multi-secret support via config key suffixes is handled cleanly without requiring separate routes or controllers. The profile abstraction lets you swap in custom shouldProcess logic without forking the package.
The package is a thin facade over laravel-webhook-client, so you're taking on two dependencies when the actual webhook-client layer does the heavy lifting — if that upstream package breaks or changes its API, you feel it here too. Event routing is string-keyed config (`charge_failed` -> job class), which means a typo silently drops events with no warning at startup. No built-in handling for Stripe's event ordering problem — if payment_intent.succeeded arrives before payment_intent.created due to retry timing, your job handlers are on their own. At 523 stars for a package that solves a near-universal Laravel+Stripe problem, adoption is surprisingly low, which probably reflects that most teams just copy-paste the 20 lines of signature verification rather than pull in a dependency.