Taking money with a form used to mean a separate checkout page, a spreadsheet to match payments to answers, and someone chasing the people who filled in the form but never paid. With a payment field connected to Stripe, the answers and the payment arrive together.
This guide shows how to build a Stripe payment form without code: the three ways to set the price, how the checkout works, a five-step setup, how to test it, and the mistakes that cost people money.
Three ways to charge
| Pricing | How it works | Good for |
|---|---|---|
| Fixed price | The same amount every time | Tickets, deposits, application fees |
| Calculated total | A total built from the answers, such as tickets × price plus add-ons | Orders, group bookings, quotes |
| Pay what you want | People choose an amount between a minimum and maximum you set | Donations, tips, sliding-scale workshops |
How a payment form works
- They fill in the form and submit. The total is worked out on the server from their answers.
- They pay on Stripe's checkout page. Card details go to Stripe, never into your form.
- The response completes when Stripe confirms. Until then it waits as awaiting payment, so an unpaid order never looks paid.
- The amount is saved with the answers, in your results table and CSV export.
Set it up in Tapzy
Step 1: Connect Stripe
Connect your Stripe account by pasting a secret or restricted key from your Stripe dashboard. Start with a test key. Nothing has to be created in Stripe first: no products and no prices.
Step 2: Add a payment field
Add a Payment field where people should pay, usually at the end, after they've answered everything else.
Step 3: Choose how much to charge
Pick a fixed amount, a total from a calculated field, or a range people choose from, and set the currency with its three-letter code, such as USD, EUR, GBP or INR.
Step 4: Test the checkout
Submit the form yourself and pay on Stripe's checkout page with one of Stripe's test cards. Check the response completes and shows the amount.
Step 5: Switch to live and publish
Replace the test key with a live one, publish the form and share it by link, QR code, embed or your bio page.
Test before going live
- Pay with a test card that succeeds, one that's declined, and abandon one checkout halfway.
- Try the highest and lowest totals your calculated field can produce, including zero add-ons.
- Check the confirmation the person sees, and the email you get, after a successful payment.
- Only then swap in the live key. Test payments never touch real cards or real money.
Mistakes to avoid
Card number, expiry and CVC as text fields in your form.
Let people pay on the payment provider's own checkout page. Card details never belong in form answers.
A total worked out in the browser and sent with the form.
A total worked out on the server from the answers, so nobody can edit the price before paying.
Surprising people with the price on the last screen.
State the price, or how it's calculated, near the top of the form.
One more: don't treat a submitted form as a paid order. Only count it once the payment has succeeded.
Fees
Stripe charges its own processing fee on every payment, which depends on your country and the card. Some form builders add a fee of their own on top. Tapzy adds no fee to form payments; the payment field is part of Tapzy Pro. Issue refunds from your Stripe dashboard, like any other Stripe payment.
What people use payment forms for
- Event and workshop registrations with ticket types and add-ons.
- Course and admission fees.
- Deposits on client projects, from a quote the form works out.
- Pre-orders and catering orders with an order form.
- Donations and pay-what-you-want sessions.
Prefer another provider? Tapzy connects to Dodo Payments the same way. Google Forms, by contrast, has no payment field at all. More on payments in Tapzy.