Lemon Squeezy Webhook Not Working

Share
Workaround available API Updated November 13, 2026Based on 4 user reportsHow we research

Quick answer

Most Lemon Squeezy webhook failures are an invalid signature from hashing a parsed body instead of the raw bytes, a wrong signing secret, or an endpoint that errors.

Most likely fix: Fix signature verification

How to fix it

Try these in order — the most common fix is first.

  1. 1. Fix signature verification

    1. Read the raw request body before JSON parsing
    2. Compute HMAC-SHA256 with your signing secret, hex digest
    3. Compare with the X-Signature header using a constant-time check after checking equal length
    Did this fix it?
  2. 2. Check webhook config

    1. Settings > Webhooks: confirm the HTTPS URL, secret and selected events
    2. Use test mode webhooks separately from live mode
    Did this fix it?
  3. 3. Debug delivery

    1. Return 200 quickly and process asynchronously
    2. Use a tunnel or a relay like Hookdeck for local testing
    3. Retries are limited, so reconcile missed events via the API
    Did this fix it?

Symptoms

Events never arrive, or your handler returns 'invalid signature'.

Why it happens

  • HMAC computed over re-serialized JSON, not the raw body
  • Signing secret has extra spaces or does not match
  • Comparing buffers of different length
  • Endpoint returns non-2xx so retries are exhausted
  • Local URL not public HTTPS

This guide also covers

  • lemon squeezy webhook not working
  • lemon squeezy webhook invalid signature
  • lemon squeezy webhook not firing

Still not working?

If Lemon Squeezy keeps failing, you're not alone. See every Lemon Squeezy problem users report or the alternatives people switch to.

Done fighting Lemon Squeezy? Our small team builds your own Lemon Squeezy alternative, or any software you need: web, mobile, games, desktop. Price agreed together.

Talk to us
Fixed it? Share this guide

Other Lemon Squeezy errors

All 12 Lemon Squeezy errors and fixes →