Webhooks
All payment provider webhooks are handled by a single route:POST /api/webhooks/payments
Configure your provider
- Stripe uses the
stripe-signatureheader - Polar uses the
polar-webhook-signatureheader - Lemon Squeezy uses the
x-signatureheader
Local development
When testing locally, point the provider webhook to your local dev URL using a tunneling tool and ensure the correct webhook secret is set.The webhook handler updates
customer, subscription, and payment tables based on the adapter result.