LogicTrail
  • Trails
  • Check my app
  • Pricing
  • Sign in
  1. Trails
  2. /
  3. Don't trust the browser
  4. · 4 minutes · Free

The $1 Pro plan

Your Pro plan costs $49 a year. shows three new Pro customers this morning who each paid $1.

This answers: Can users change the price at checkout? No coding needed. 3 quick decisions.

  • Payments and webhooks
  • Who may see what

Step 1 of 3

This creates the checkout. Click the line that let them choose their own price.

app/api/checkout/route.ts

Click the line that causes it.

Pick one. You will see what really happens, and why.

Can users change the price at checkout?

Yes, if your server takes the amount or price ID from the browser. Anything the browser sends can be edited, so a visitor can create a checkout at any price. Send only which plan the visitor wants, and have the server look up the allowed price from its own list before creating the checkout.

Trail of the bug
  1. Browser
  2. Your server
  3. Stripe

Breaks at Your server: Server charged the price the browser sent

Why AI tools write this bug

Generated checkout code often passes the price shown on the page straight to the server, because the page already knows it.

How to fix it

  1. Remove amount and price ID from the request body.
  2. Send only a plan or product name.
  3. Look up the price on the server from an allow-list.
  4. Grant access in the only for the expected price.

Check your own app

Paste this into Lovable, Cursor or Claude Code:

Without changing anything, find every place this project creates a Stripe checkout, payment or subscription. For each, tell me where the price, amount, quantity and discount come from: the request body (the browser), or a list on the server. Flag anything the browser can change.

Common questions

Is a Stripe price ID safe to send from the browser?
Not by itself. The visitor can send any price ID in your account, including cheaper or test prices. The server should choose the price.

Related scenarios

  • One field, a million creditsPro · 4 min
  • Invoice 105Free · 4 min
  • Removed, but still insideFree · 4 min

More on this trail

Don't trust the browser: Prices, webhooks, uploads, form limits and coupons: what visitors can change, and what your server must decide.

Want someone to look?

We check AI-built apps for this and three other common leaks, in plain English.

Check my app
Sign in