Free events need a list of names. Paid ones need a list of names that matches a list of payments, and that's where registration usually falls apart: a form in one place, a payment link in another, and an evening spent working out who paid.
This guide shows how to build an event registration form with payment where the ticket price, quantity and add-ons work out the total on their own, and every registration arrives already paid.
What to ask
| Question | Type | Why |
|---|---|---|
| Full name | Short text | Name badges and the door list |
| Email (with a code if it matters) | Tickets and updates reach a real inbox | |
| Phone | Phone | Day-of changes; optional for small events |
| Ticket type | Multiple choice, each with a price | Sets the price |
| How many tickets | Number | Group bookings in one go |
| Add-ons | Checkboxes, each with a price | Workshop, dinner, merchandise |
| Anything we should know? | Long text | Dietary or access needs |
| Total | Calculated | Works out the price as they answer |
| Payment | Payment | Charges the total |
Ask for each guest's name only if you truly need it at the door. For most events, the buyer's details and a quantity are enough, and every extra field costs registrations.
Ticket types, quantity and add-ons
The trick is to give each option a number. A Multiple choice question for the ticket type has options like Standard worth 25 and VIP worth 60; a Checkboxes question for add-ons has Workshop worth 15 and Dinner worth 40. A Calculated field then does the maths:
Someone choosing two VIP tickets and the dinner pays 60 × 2 + 40 = 160. The payment field charges that total, and because it's worked out on the server from the answers, nobody can edit the price in their browser.
Build it step by step
Step 1: Start from a template
Create a form from the Event RSVP template, or start blank.
Step 2: Add the attendee questions
Name, email and phone, plus anything you need on the day. Switch on an email code if tickets will be emailed.
Step 3: Add ticket types with prices
A Multiple choice question for the ticket type, with each option's price as its number, and a Number question for quantity with a sensible maximum.
Step 4: Add add-ons
A Checkboxes question for extras, each with its price as a number. Leave it out if there are none.
Step 5: Work out the total
Add a Calculated field: ticket type × quantity + add-ons. Show it so people see the price before they pay.
Step 6: Add the payment
Add a Payment field that charges the calculated total through your own Stripe or Dodo Payments account, in your currency. Use test keys first and pay with a test card. The Stripe payment form guide covers testing in detail.
Step 7: Set a closing date and publish
Set the date registrations close, publish, and share the link and its QR code.
Closing registrations
Set a closing date and the form stops accepting registrations on its own; you can also close it by hand at any time. Tapzy doesn't stop at a set number of registrations, so for limited seats, keep an eye on the count and close the form when you're full. Switch on duplicate prevention so the same person can't register twice by accident.
Registrations that haven't been paid wait as awaiting payment and only count once the payment succeeds, so your list always matches the money.
Promote it
- Posters and flyers: print the form's QR code. A dynamic QR code can be pointed at next year's form without reprinting, and counts scans.
- Instagram: put the form on your link-in-bio page.
- Messaging groups and email: share a short link, and add a
?source=tag to each so you know which channel sold the tickets.
After the event
Send a short feedback form while the event is fresh. The event feedback and workshop feedback templates ask the questions that help you plan the next one. For more on running paid workshops and events, see Tapzy for events.