Docs
Payments
Your app can take payments today with a payment link from your own Stripe account. Your coding agent adds the button, no key goes into your app, into Tofu or into a chat, and the money goes to your Stripe account.
What works today: a payment link
A payment link is a payment page Stripe hosts for your own Stripe account — a product with its price, one-time or recurring, or an amount your customers choose — behind one address. Your app only links to it, so it works for every app Tofu hosts, a static site on the Free plan included.
Tofu is not part of the sale. It never sees a card, holds no money and keeps no payment key: your buyers pay through Stripe, into your Stripe account.
Add a payment link
Four steps: you make the link in your Stripe account, in a sandbox first and then live, and your coding agent puts it in your app.
Make the link in your Stripe account
In the Stripe Dashboard, open Payment Links and choose New. Pick a product or add one with its price, or choose Customers choose what to pay for a tip or a donation, then Create link. Start in a sandbox, where no money moves. If your coding agent is already signed in to Stripe's own tools, it can make the link there instead, once you agree to what is sold and for how much.
Give your agent the link, and only the link
It is an address, not a secret. Adding a payment link takes no Stripe key, password or code, so your agent has no reason to ask for one.
Your agent adds the button and deploys
A plain link or button to that address. In an app where people sign in, your agent can add the signed-in person's id to the address as
client_reference_id, so each payment's record in Stripe carries who it was for.Test it, then go live
A sandbox link takes Stripe's test card
4242 4242 4242 4242, with any future date and any CVC, and moves no money. When it works, make the same link in live mode and have your agent swap it in. Never test a live link with a real card: Stripe's terms do not allow it.
<a href="https://buy.stripe.com/…">Pay the deposit</a>What a link cannot do yet
Stripe records every payment in your account, but your app is not told who paid, so nothing in the app unlocks by itself. A link suits a deposit, a tip, a single item, a booking fee, or anything you hand over yourself — Frank's Kitchen taking a deposit for a table, say.
Paid features or credits that unlock on their own need your app to hear from Stripe about each purchase. That is what connecting Stripe to Tofu is for: see What comes next. A membership also needs to hear about each renewal and cancellation: a recurring link can bill your members, but your app will not know who is one.
An app with its own Stripe code — a checkout its server starts, a webhook it checks — can find out who paid today, on the Pro plan. That code needs your Stripe secret key and webhook signing secret: you type them in Keys & settings with Hide this value after saving on, never in a chat, as for any secret (Environment variables).
Never unlock anything on the page buyers return to after paying: anyone can open that address without paying.
What stays in your Stripe account
Refunds, disputes and payouts.
You handle them in your Stripe account. No Tofu tool touches them.
Receipts.
Stripe emails buyers a receipt once you turn on Settings → Business → Customer emails → Successful payments. A sandbox payment sends none by itself.
Tax.
Yours to handle, unless you sell something digital through Stripe’s Managed Payments, which takes on sales tax, disputes and buyer support for eligible businesses and products. You turn it on in Stripe and choose it when you make a link; an existing link cannot take it on.
Your buyers’ details.
With a payment link, they stay in Stripe: Tofu receives none of them.
What comes next: connecting Stripe
Next is connecting your Stripe account to Tofu, approved on Stripe's own page, so your coding agent can set up prices and links for you, and your app can hear about each purchase and unlock what was bought. It is not available yet: the dashboard's Payments page is marked Soon until it is.
Limits
What Tofu does not do with payments
Take part in the sale. Payments go from your buyer to your Stripe account. Tofu never sees a card and holds no money.
Ask for a payment key. A payment link needs none. A key your own server code needs is a secret you type in Keys & settings.
Refund, dispute or pay out. Those stay in your Stripe account, and no Tofu tool does them.
Tell your app who paid. Not with a link alone: until connecting Stripe is here, only your app’s own Stripe code can, on the Pro plan.
The ship-it layer for vibe-coded apps. Your agent wrote it — Tofu ships it.
Works in all coding agents
© 2026 Tofu
trytofu.ai