Switched Stripe to live mode and checkout broke? Test products don't carry over
Ship ItChecked against the official source
Source checked 10 Oct 2026 · Published 23 Oct 2026 · Last reviewed 23 Oct 2026 · By Ctrl+Z Therapy (how we test)
The short answer
Stripe's sandbox and live mode each have their own API keys, and "objects in one mode aren't accessible to the other". The go-live checklist says Stripe objects created in a sandbox, such as plans, coupons, products, and SKUs, "aren't usable in live mode". So an app that still points at test price or product IDs breaks with live keys. Webhooks too: your account can have both test and live webhook endpoints, so you need a live one.
What to do
- Copy your products from the testing environment to live mode in the Stripe Dashboard. Each copy creates a separate live product.
- Set up a live webhook endpoint. Put the live IDs, live keys and the live endpoint's webhook secret in your production environment variables.
- Test one real purchase.
- Ask your AI tool: "List every Stripe ID and key this app uses (price IDs, product IDs, webhook secret, API keys) and show which are test values. Move them to production environment variables so I can paste the live ones."
Good to know
- Later edits in your sandbox aren't reflected in the live copy.
- Stripe's docs don't say whether a copied price keeps the same ID, so check the live IDs.
Source
Checked on 10 Oct 2026. Prices, limits and settings change, so check the source before you rely on them.