Pricing: fixed vs buyer-priced
Each product in your catalog is either fixed (the price you set is what gets charged) or buyer-priced (the buyer or the embedded HTML picks the amount). The choice is per product, not per project, so a single project can run a catalog of fixed-price downloads next to a tip jar and a "name your own price" donation page on the same site, with one webhook URL and one set of provider credentials.
We never accept a payment for a product that isn't listed in your catalog. There is no project-level "trust anything" escape hatch; every checkout must reference a product you configured.
Why this matters
If the worker trusted the amount attribute on every buy button, a buyer could open their browser's developer tools, edit amount="29.99" to amount="0.01", click Buy, and pay one cent for a $30 product. Fixed-mode products make that impossible.
Fixed mode (the safe default)
New products are created in fixed mode. You set the price in your dashboard's Products tab; the buy element on your site references the product by id. The worker reads the price from your catalog and ignores any amount or currency the buy element might have on it.
<coin-moebius-buy
project-id="proj_YOUR_ID"
product-id="t-shirt-medium"
label="Buy a t-shirt">
</coin-moebius-buy>A buyer editing the HTML cannot change the price. The catalog wins, every time.
Buyer-priced mode (for tip jars, donations, and pay-what-you-want)
Some products only make sense if the buyer picks the amount: donation widgets, tip jars, name-your-own-price pages. For those, set the product's Pricing to Buyer-priced in the product form. The dashboard shows a safety dialog first because it's a real change in behavior: anyone with browser developer tools can edit the amount before paying. The price you set on the product becomes the suggested default the buy element pre-fills.
<coin-moebius-buy
project-id="proj_YOUR_ID"
product-id="tip-jar"
amount="5.00"
currency="USD"
label="Leave a tip">
</coin-moebius-buy>The dashboard's per-product snippet generator outputs the right shape automatically, with the suggested amount filled in.
Switching a product between modes
Fixed and buyer-priced are toggled per product, in the product's form. Switching to buyer-priced opens a one-time safety dialog because it's the destructive direction; switching back to fixed is immediate. New checkouts use the new mode straight away; already-completed transactions are unaffected.