Guides · Free check · $9 fix pack

Guides

Using the test webhook secret in production

Everything worked in test. You switched to live keys, real customers pay, and nothing unlocks. Check the webhook secret.

Why it happens

Stripe signs each endpoint with its own secret, and "if you use the same endpoint for both test and live API keys, the secret is different for each one" (Stripe docs). Swapping sk_test_ for sk_live_ isn't enough: you also need the live endpoint's whsec_. Test and live keys are separate sets of credentials (Stripe docs: API keys).

A second variant: the local stripe listen secret (Stripe CLI docs) left in production config.

How to tell

Go-live checklist

  1. Create (or open) the live-mode endpoint in the Dashboard with the production URL.
  2. Subscribe it to the same events as your test endpoint.
  3. Copy its signing secret into production config, separate from the test one.
  4. Ignore events whose livemode doesn't match the environment.
  5. Make a real purchase, confirm access unlocks, then refund it.
Check yours in 10 seconds (free).

Paste your webhook URL. WebhookProof sends 3 harmless test requests and tells you whether Stripe can reach it and whether it rejects unsigned events.

Run the free check

FAQ

Is the Stripe webhook secret different in live mode?

Yes. Stripe says the secret is different for test and live, even for the same URL, and each endpoint has its own secret.

Why does my webhook work in test mode but fail in production?

The most common reason is that production still uses the test (or Stripe CLI) signing secret, so every live event fails signature verification.

Can I use the Stripe CLI secret in production?

No. The secret printed by stripe listen only verifies events forwarded by the CLI.

More guides

Stripe webhook not working? Check these 7 things in order · A customer paid but didn't get access. What went wrong? · Stripe webhook signature verification failed · Stripe webhook getting a 307 or 308 redirect

Last reviewed 2026-10-18. WebhookProof is an independent tool, not affiliated with Stripe, Inc. Quotes are from the linked documentation.