Stripe starter module
Webhooks
Verifies signed Stripe events and routes each delivery once.
- Files
- 10
- Lines
- 395
- Languages
- TypeScript
Included files
This page lists paths and purposes, not source contents.
src/webhooks/handlers/charge-dispute-created.ts
Records a new charge dispute and immediately suspends the related paid access.
TypeScript
41 lines
src/webhooks/handlers/checkout-session-completed.ts
Validates a completed one-time Checkout Session before granting access.
TypeScript
75 lines
src/webhooks/handlers/customer-subscription-created.ts
Stores a new Stripe subscription without granting paid access early.
TypeScript
13 lines
src/webhooks/handlers/customer-subscription-deleted.ts
Removes recurring access after Stripe deletes the customer's current subscription.
TypeScript
13 lines
src/webhooks/handlers/customer-subscription-updated.ts
Synchronizes plan, status, and scheduled cancellation changes from Stripe.
TypeScript
13 lines
src/webhooks/handlers/invoice-payment-action-required.ts
Records when a subscription payment needs customer authentication.
TypeScript
24 lines
src/webhooks/handlers/invoice-payment-failed.ts
Records a failed subscription invoice and Stripe's next retry time.
TypeScript
26 lines
src/webhooks/handlers/invoice-payment-succeeded.ts
Records a paid invoice and activates recurring access after a positive payment.
TypeScript
11 lines
src/webhooks/handlers/payment-intent-payment-failed.ts
Records a failed standalone PaymentIntent without granting or removing access.
TypeScript
31 lines
src/webhooks/route.ts
Verifies Stripe webhook signatures and routes each event to its handler.
TypeScript
148 lines
Questions about webhooks
Does it include a Stripe webhook handler example?
Yes. The webhook module covers signed event handling, repeat deliveries, and the handoff into fulfillment. Public pages list each file and its purpose, while the source stays available to license holders.
How do I verify Stripe webhook signatures in Next.js?
The pack includes the pattern that runs on your server: read the unmodified request body, pair it with Stripe's signature header, and verify both with your webhook secret before processing the event.