Stripe pre-launch checklist
Defaults referenced come from Stripe's documentation, verified 2026-09-21, on the Stripe hub.
Secrets and keys
- CriticalNEXT_PUBLIC_ prefix on a secret
In your hosting dashboard (Vercel: Project, Settings, Environment Variables) or your
.envfiles, list every variable whose name starts withNEXT_PUBLIC_. - CriticalSecrets committed to the code repository
Open your project on GitHub (or the code view in your builder) and look at the file list for
.env,.env.local,.env.production,serviceAccountKey.jsonorfirebase-adminsdkfiles. - HighThird-party API key in the JavaScript bundle
Open your live app in Chrome, right-click, choose Inspect, then open the Sources tab.
- HighSecrets and internals in error messages and logs
Open your live app, right-click, choose Inspect, then the Network tab. Trigger an error on purpose: submit a form with a field left blank, or visit an address like
/api/anything-made-up.
Payments
- CriticalStripe webhook accepted without signature verification
In the Stripe Dashboard, open Developers, then Webhooks, and copy the endpoint URL your app uses. It usually ends in something like /api/stripe/webhook or /functions/v1/stripe-webhook.
- HighNo idempotency on payment handlers
In the Stripe Dashboard, open Developers, then Webhooks, select your endpoint and open a recent invoice.paid or checkout.session.completed event for a test account.
- HighPrice or plan taken from the client
Open your app's pricing page in Chrome, press F12 to open developer tools (the browser's built-in inspector), and select the Network tab.
- HighSubscription state trusted from local storage
Sign in to your app with a free account, press F12 to open developer tools, select the Application tab, then Local Storage on the left.
- HighStripe test keys in production
Open your live app's checkout, press F12, select the Network tab, and start a checkout. Look for requests to stripe.com or js.stripe.com and read their URLs and payloads for a key beginning
pk_test_or a session ID beginningcs_test_.
Deploy and config
- CriticalAI agent with production credentials
Open the folder the agent works in and look for .env, .env.local or similar files; note whether any value starts with sk_live_, contains the word prod, or is a service-role or admin key.
Mobile
- CriticalSecrets in the mobile app bundle
Open the project's .env files and app.json or app.config.js; list every variable whose name starts with EXPO_PUBLIC_ or that sits under extra.
Reliability
- MediumRetries with no pause and no cap
Open your app in Chrome, press F12 and choose the Network tab.
Questions
stripe security checklist
The list above: 12 checks across 5 categories, most severe first. Each links to a page with what the issue looks like, a self-check and a fix direction. Download the Markdown file to tick items off in your own notes.
can i use this checklist without buying anything
Yes. That is the point of publishing it. If you run every self-check and fix what you find, you have done most of what the security sweep does. What our test adds is a second account, scripts that enumerate everything, and a written report you can show someone.
Prefer someone else to run it: the security sweep covers the critical items in 24 hours; the pre-launch check covers the full list. Or run the self-check tool.