Paste the webhook URL you saved in Lemon Squeezy. We test whether Lemon Squeezy can actually reach it, and whether a stranger could fake an order. Built for apps made with Lovable, Bolt, Cursor, Replit and Claude Code.
Redirects, 404s, login walls (Vercel protection, Supabase JWT, auth middleware) and Cloudflare bot blocks drop every real event. Lemon Squeezy only counts an HTTP 200 as delivered and retries three more times before giving up.
We send one unsigned request and one with a forged signature. The check checks X-Signature (hex HMAC-SHA256 of the raw body). If either gets a 2xx, anyone with the URL may be able to unlock your product.
Each issue comes with a copy-paste Lemon Squeezy prompt for your stack. Re-check in one click.
Lemon Squeezy webhook signature invalid? Fix X-Signature in 5 steps
Lemon Squeezy dashboard → Settings → Webhooks → copy the Callback URL. Test mode and live mode have separate webhooks; check the one your customers hit.
We send at most 3 requests: two POSTs with a made-up event name (webhookproof_probe / webhookproof.probe), one without a signature and one with an all-zero signature, plus one GET. A correctly built endpoint rejects both POSTs. Nothing we send can create an order, a charge or a customer in Lemon Squeezy.
Also checks Stripe · Paddle · Polar. WebhookProof is not affiliated with Lemon Squeezy.