Launch Playbook

Add Stripe to a Fabricate App in 30 Minutes

Launch Playbook · Take payments today.

Most paid apps stall at one step: hooking up payments. This playbook takes you from a built app to your first payment in about 30 minutes. Set up Stripe creates and connects a test account in one click, Fabricate builds the checkout, and Stripe's hosted page takes the card. No backend code, no DevOps, no webhooks.

Author
By Fabricate Team
Last updated
Updated October 25, 2026
Reading time
6 min read
Key takeaways
  • Start with Set up Stripe under More > Payments: it creates and connects a test account in one click, without an existing account or a key to paste. Add checkout, test it, then activate real payments separately.
  • Card details only ever reach Stripe's hosted Checkout page, and the money goes straight to your own Stripe account.
  • Test in the preview with a Stripe test key and card 4242 4242 4242 4242. A live key reaches only the published app, from its next publish.
  • Connecting Stripe needs Pro or Max. Fabricate checks each key with Stripe and keeps it as an encrypted secret on the app's server.
Table of contents

What you'll ship

A "Buy" button on your Fabricate app that opens Stripe's hosted checkout page and takes a card. Your app keeps an orders table, marks an order paid only after its server has asked Stripe whether the payment went through, and shows the buyer a confirmation. The same checkout covers a one-time purchase, a paid download, a deposit, tickets or a donation.

Monthly memberships use the same checkout in subscription mode. That is the next playbook in this series.

Before you start

You need a Fabricate app on Pro or Max: connecting Stripe is a paid-plan feature. You can test the whole checkout in the studio preview with a Stripe test key. Real payments happen on the published app.

Note

If you don't have a Fabricate app yet, start with the prompt: "Build a one-page paid digital download site with email capture." That gives you exactly what you need to plug Stripe into.

Step 1 · Create a test account

In your app, open More > Payments and click Set up Stripe. Fabricate creates and connects a Stripe test account. No existing Stripe account or pasted key is needed.

If you already have a Stripe account, you can instead connect its test secret key on the same Payments page. You do not need a publishable key for hosted Checkout.

Ready to build?

Describe your app in a few sentences and Fabricate builds it. Free to start.

Start building free

Step 2 · Check the connection

Wait for Payments to show that the test account is connected. One-click setup saves its test key automatically as an encrypted secret of this app. If you used an existing key, Fabricate checks it with Stripe before saving it.

The test key reaches the app's server in both the preview and the published app. It never reaches the browser, the code or the chat.

Important

Never paste a secret key into a chat message or into a file. More > Payments is the only place it belongs.

Step 3 · Ask Fabricate for the checkout (5 min)

In your Fabricate chat, paste the prompt below with your own product and price. The app looks prices up on its server, so a buyer can't change them in the browser.

Prompt to send to Fabricate
Add a Buy button to the homepage that charges $19 USD for "Indie Founder Toolkit" (one-time purchase). After payment, show a confirmation page with what was bought, and list orders with their status on an owner-only page.
Fabricate adds a checkout route that creates a Stripe Checkout session with your key, a status route that asks Stripe whether an order was paid, the Buy button, the confirmation page and the orders list.

Step 4 · Test it in the preview (5 min)

Open the preview and click Buy. Stripe's page can't open inside the studio's frame, so it opens in a new tab while the app shows "Finish paying in the new tab". Use one of these test cards:

• 4242 4242 4242 4242 — succeeds

• 4000 0000 0000 0002 — declines (good for testing the failure path)

• 4000 0027 6000 3184 — requires 3D Secure auth

Any future expiry date and any CVC works. Back in the app, the order shows as paid once the server has confirmed it with Stripe, and the payment appears in the Stripe dashboard under Payments. While a test key is in use, the app shows a small "Test mode" label by the button.

Tip

If the button says "Payments are not set up yet", the app has no Stripe key. Check More > Payments (Step 2).

Ready to build?

Describe your app in a few sentences and Fabricate builds it. Free to start.

Start building free

Step 5 · Go live (10 min)

Claim the test account through its Stripe link on More > Payments, then complete Stripe verification and business details. You need an eligible Stripe account before accepting real payments.

Add your live secret key under More > Payments. Follow its live status: publish again if it says the key is waiting for publishing. Live keys only reach the published app; the preview keeps its test key.

Run one real purchase on the published app with your own card, and refund it from the Stripe dashboard if you don't want to keep the charge. Done: you can take payments.

When things break

Three common failures:

1. The button says "Payments are not set up yet". → The app has no Stripe key. Add one under More > Payments; for a live key, publish again afterwards.

2. Nothing opens when you click Buy in the preview. → The checkout opens in a new tab. If your browser blocked it, allow pop-ups for fabricate.build and click again.

3. A buyer paid, but the order still says pending. → They likely closed the tab before coming back. On the owner's orders page, press "Check payment": the app asks Stripe again and records the payment.

Tip

If Fabricate ever "breaks" something while wiring Stripe, hit Restore in the project sidebar to go back to the last working version.

What's next

You now have a paid app. Three obvious next moves:

• Add a monthly membership: the same checkout in subscription mode, covered in "Add Stripe Subscriptions to a Fabricate App" (next in this playbook series).

• Add an upsell on the confirmation page — "Buy another for 50% off" usually lifts cart value 10–20%.

• Take a deposit for bookings instead of the full price. Prompt: "Take a $20 deposit when someone books, and keep the booking pending until it is paid."

Ready to build?

Describe your app in a few sentences and Fabricate builds it. Free to start.

Start building free

Frequently Asked Questions

Do I need a Stripe account or keys before testing?
No. Set up Stripe under More > Payments creates and connects a Stripe test account in one click. Test checkout in the preview with a test card. An activated Stripe account and live key are needed only when you move to real payments.
Do I need to write any code?
No. Start with one-click test setup under More > Payments and a prompt in Fabricate. Live activation includes claiming the account, Stripe verification and connecting a live key. Fabricate writes the checkout and status routes, the Buy button, the confirmation page and the orders list for you.
Can I do this on the Free plan?
No. Connecting Stripe needs Pro or Max. On Free you can still build the app and try it in the preview. Current plans are on the pricing page at fabricate.build/pricing.
Where do my Stripe keys live? Are they safe?
Fabricate checks each key with Stripe, then keeps it as an encrypted secret of that app, on the server only. The test key reaches the preview and the published app; a live key reaches only the published app. Keys never appear in the browser, in the code or in chat. You can roll a key in the Stripe dashboard at any time and paste the new one under More > Payments.
What about EU VAT, sales tax, or receipts?
Stripe Tax can work out VAT and US sales tax on Checkout: switch it on and set it up in the Stripe dashboard, then ask Fabricate to turn on automatic tax for the checkout. Stripe can also email buyers a receipt: switch on successful-payment emails in the Stripe dashboard's customer email settings. Fabricate apps don't send invoices themselves.
Will Fabricate let me export the Stripe code?
Yes, on any paid plan. Push the project to GitHub or download as a ZIP. The payments code is one small TypeScript file with no dependencies, and you own all of it.