Paste the webhook URL you saved in Paddle. We test whether Paddle 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. Paddle needs an HTTP 200 within five seconds, or it retries and eventually marks the notification failed.
We send one unsigned request and one with a forged signature. The check checks Paddle-Signature: ts=…;h1=…. If either gets a 2xx, anyone with the URL may be able to unlock your product.
Each issue comes with a copy-paste Paddle prompt for your stack. Re-check in one click.
Paddle webhook signature verification failed? Check these 6 things
Paddle > Events > Notifications → your notification destination → copy the URL. Sandbox and live are separate accounts with separate destinations.
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 Paddle.
Also checks Stripe · Lemon Squeezy · Polar. WebhookProof is not affiliated with Paddle.