Ticket sales and admission with QR codes
Set up ticket sales for an event, either paid directly or as an inquiry, buyers get QR-code PDF tickets by email, staff scan them at the door, with or without a login.
Ticketing lets you sell admission tickets for an event directly through Univents: buyers pay online, automatically receive a PDF ticket with a QR code by email, and your team scans the codes at the door — from a computer, a phone, or a link that needs no login at all.
The video shows how to create a ticket page with price tiers, give out free tickets and scan tickets with the camera at the entrance.
You’ll find the individual steps written out below as well.
Setting up ticket sales
- Open the event and switch to the Tickets tab.
- If no sale is set up yet, click Set up ticket sales.
- In the Ticket sales dialog, four sections define what buyers see and can buy:
- Event overview: cover image and description text for the public sales page. Recommendation for the cover image: landscape 21:9, e.g. 2520 × 1080 pixels as a JPG, with the important part centered.
- Tickets: use Create ticket to define a ticket type with Price (gross), VAT rate, an optional Capacity (empty = unlimited), and a description. Write the price with a comma or a dot — "69,90" and "69.90" give the same amount. A ticket cannot be created without a price; hand out free tickets via complimentary tickets instead. Add multiple ticket types individually (e.g. "Early bird", "Door price").
- Extras: optional add-on products buyers can add to their ticket (e.g. drinks).
- Sales: the sale type — Pay directly or As a request (see Sale type: paying directly or by inquiry) — plus an optional Total capacity across all ticket types and the toggle between live and draft. Once the page is live, this section also shows the public link and Copy embed.
- For further settings (payment methods, questions, customer portal) open the full booking-page editor via Advanced settings. The Page type is greyed out there: as long as ticket sales are active for this page, it always shows the ticket view.
If no payment provider is connected yet, the dialog shows "Payments not set up — tickets can't be sold." with a link to the payment integrations. If you sell the tickets as an inquiry, you need no payment provider at all: the notice disappears.
Once set up, the header shows the status (live/draft), the public link, Open page, Copy embed, Comps, Edit, and the Check-in mode button for the door.
As long as the ticket page is in draft, a note below it explains that the link doesn't open a page yet, and the website calendar shows neither the ticket link nor the price. Both appear only once you switch it live.
Sale type: paying directly or by inquiry
In the Sales section of the ticket sales editor, the sale type decides how your ticket page works:
- Pay directly — as before: the buyer pays online at checkout and gets the tickets with a QR code. This requires a connected payment provider.
- As a request — the buyer picks tickets and extras and sends them off as an inquiry without obligation. Nothing is paid, no payment provider is needed, and no ticket is issued.
How an inquiry travels. The inquiry lands in the Requests inbox on the same event, together with a draft quote. From there you handle it like any other request: review it, send the quote, and the customer accepts it in the customer portal. Details on the inbox are in Managing the requests inbox, and on the next steps in Accepting or rejecting a request.
What a ticket inquiry does not do:
- It reserves no seat. Capacity — both per ticket type and the total — still counts paid tickets only. An inquiry for 50 tickets therefore leaves your remaining seats untouched; sales happen in the order of actual purchases.
- It does not change the event. Whether you accept or reject a ticket inquiry, the ticket page is unaffected — it keeps running, and tickets already sold stay valid.
- It does not rule out other inquiries. Several groups can send an inquiry for the same event at the same time; the inquiries sit side by side in the inbox.
What the buyer sees
The public sales page is a dedicated event page: the cover image on top, the event name, date and venue below it, and a fixed ticket panel next to them with the starting price ("From …"), every ticket category with quantity selection, and the buy button. The event description appears as an expandable Overview; the address (with a Google Maps link) and the organizer sit at the bottom.
Tickets first, then the extras. If you offer add-on products, the selection runs in two steps: the guest first picks their tickets and moves on to the Extras with Continue (a drinks flat rate, say), and only then buys or sends their inquiry. With Back they can return to the tickets at any point. If you offer no extras, it all stays a single step.
On mobile, the buy button lives in a fixed bar at the bottom edge. In As a request mode the button reads Request tickets instead of Buy tickets, with a note underneath that the request is non-binding and a quote will follow. On the checkout page the guest then sends it with Send request.
One guest per ticket. At checkout, Univents asks for one guest per ticket: name (required, it is printed on the ticket), email (optional) and the questions of your ticket page. Every guest answers the page questions and the questions of their ticket type; questions about extras are asked once per order. The first ticket is prefilled with the buyer’s contact details — someone buying a single ticket for themselves does not have to type anything extra. All answers are saved per ticket.
Billing address. Because every paid order gets an invoice, the checkout asks for the address as street, house number, postcode, city and country. It is required when the buyer enters a company or VAT ID or the order exceeds 250 €; otherwise it is optional. If the contact already has different details in your workspace (another company, VAT ID or address), the checkout does not overwrite them. The invoice still goes out right away — to a recipient carrying exactly the details entered: a matching company in your workspace or a new contact (for a company the company, for a private person a contact without an email address). The existing contact stays as it is.
After paying through the connected payment provider, the confirmation page shows the order summary (ticket count, total, reference) and a note naming the email address the tickets go to. If the payment isn’t confirmed yet when the guest returns from the payment page, they first see “Confirming payment” with a note that the tickets will arrive by email and that they should not buy again. The page checks again on its own and switches to the order summary as soon as the confirmation is in. If it takes longer than a minute, it shows “Confirmation is taking longer than usual”: the tickets arrive by email once the payment is confirmed; if no email has arrived after an hour (check the spam folder too), the organiser can help. For an inquiry, that page instead confirms that the inquiry has arrived — with a reference and a note that the business will get back to the guest.
How the tickets arrive
After successful payment, Univents automatically creates one ticket per purchased seat, each with its own QR code and the guest’s name. Shortly after, the system sends an email with two attachments: the ticket PDF (one page per ticket with a QR code and the 8-character ticket code below it) and the invoice as a PDF.
The invoice is created automatically. For every paid ticket order, Univents creates a real invoice: numbered from your invoice number range, linked to the event, addressed to the buyer (with company and VAT ID if entered), with all line items including discounts and the tax rate of the ticket type. It is marked as paid right away and listed in the event’s finance documents; if your workspace has e-invoicing set up, it is also issued as an e-invoice. Because the buyer already paid at checkout, the PDF shows a note such as “The invoice amount of €190.00 was already paid on 2026-10-01.” instead of a request to transfer the money, and the header says “Paid on” instead of “Due date”; the e-invoice also shows the amount as paid (amount due 0.00). Complimentary tickets and 0.00 € orders do not get an invoice. If your workspace is missing details an invoice requires (such as the company address or tax number), the ticket email still goes out on time — with a receipt PDF as before; the invoice stays as a draft in the finance documents until you have added the details, and owners and admins get a notice in the bell. The same applies if the invoice comes to a different amount than was paid. As soon as the invoice is issued and its PDF is ready, Univents sends it to the buyer once in a separate email — also when its PDF was not ready in time for the ticket email (the ticket email waits for it at most 10 minutes). For ticket purchases made before 16 October 2026, Univents does not create invoices automatically. Like any other invoice, the ticket invoice triggers your automations and webhooks that use the “invoice paid” trigger.
Both the ticket PDF and the email state the event's date and venue. The venue comes from the event's linked location or — if none is set — from the address on the event itself; if both are empty, the line is omitted. So enter the address on the event before you open sales. A time is deliberately not printed on the ticket: in Univents an event's start and end time covers the whole period including setup and teardown, so it is not the time guests should arrive. For now, communicate the admission time in the ticket page's description text.
The ticket PDF and email are rendered in the workspace language (Settings → Content language), not the buyer's browser language. The ticket email always goes out: you can adjust the text of the Tickets purchased template in your email templates, but you can't switch it off — without it, a paying buyer would have no ticket.
In the ticket list, the Mail column shows whether the ticket email is queued, sent, bounced, or failed to deliver. Bounced means the email went out, but the recipient's mail server rejected it — usually because of a typo in the address or a mailbox that no longer exists. This feedback usually arrives a few seconds to minutes after sending; the workspace owner also gets a notification that leads straight to the tickets tab. Correct the email address on the buyer's contact and send the tickets again. Resend triggers the email again: straight away for a failed or bounced email, and after a short confirmation for one that was already sent — for example when the buyer says it never arrived or ended up in spam. They then receive their tickets a second time, with the same QR codes.
Admission: scanning tickets at the door
There are two equivalent ways to reach the same scanner for admission:
- In the workspace: Tickets tab → Check-in mode button (also reachable from the mobile admin view).
- Without login, via link: In the Scanner token section on the Tickets tab, use Create token to generate an access link (valid 7 days, reusable, revocable at any time) — share it, for example, with door staff who shouldn't need a workspace login of their own. An invalid or expired link just shows "Link invalid", with no further hints.
The scanner shows a live counter "{{checkedIn}} / {{sold}} checked in", a flashlight toggle, and a Enter code manually option in case scanning itself doesn't work. After each scan, a large result briefly appears:
- green "Valid — checked in", with name/ticket type if available
- amber "Already checked in at HH:MM" on a second scan of the same ticket
- red "Invalid code" for an unknown or wrong code
Enter code manually. If a QR code won't scan (screen too dark, printout crumpled), type the 8-character ticket code printed directly below the QR code on the ticket PDF, for example 2EDCFAC7. Case, spaces and hyphens don't matter. The full 64-character code still works; the field is multi-line, so you can compare it character by character with the ticket. After a check-in by short code, the green or yellow result also says "Checked in via short code".
The short code is only looked up among the tickets of this event. If it happens to match two tickets, the scanner shows "Invalid code" — scan the QR code instead or check the ticket in from the ticket list. Only the entry mode in the workspace (logged in) accepts the short code; via a scanner token link without login, manual entry needs the full 64-character code.
The ticket list
Below the key figures you find the list of all tickets for the event. For each ticket you see:
- Code: the 8-character ticket code that is also printed below the QR code on the ticket PDF — you can type it in at the entrance.
- Guest: the name on the ticket, the guest’s email and, under Answers, what they answered to your questions.
- Buyer: name, company, email address and, if available, the phone number. Clicking the number starts the call, directly on a phone or through your phone app on a computer.
- Product: the ticket type, with the Comp label or the discount code used where applicable.
- Purchased: date and time of payment in your workspace's time zone. For a complimentary ticket, this shows when you issued it.
- Price: what was paid for this exact ticket, after any discount. If someone bought several tickets in one order, each ticket shows its share. A complimentary ticket shows no amount.
- Status, Mail and Actions: whether the ticket has been checked in, whether the ticket email arrived, plus Check in (by hand, if scanning fails) and Return.
With Export CSV you download the whole list as a spreadsheet. The file contains code, status, product, buyer, email, check-in time, discount code, purchase time, price, phone, guest, guest email, the buyer’s company and then one column per question of your ticket page (the fixed column headers in the file are in German). Times use the international format in UTC (for example 2026-10-06T18:30:00Z), prices are numbers with a dot (95.00); for a complimentary ticket the price column stays empty.
Returning and refunding a ticket
In the ticket list on the Tickets tab, every valid ticket has a Return action. The dialog shows how many tickets are affected, which amount would be refunded and to whom, and, if available, the buyer's phone number so you can reach them first.
A whole order at once. At the top of the Tickets tab, View lets you switch between Tickets and Orders. In the Orders view each row summarises one order: buyer, purchase time, how many of its tickets are still valid, the amount and the refund state. Clicking the triangle expands that order's individual tickets.
Invoice per order. Once an order's invoice is ready, its row shows the link Invoice <number>, which opens the PDF in a new tab. Next to it, Send invoice opens a dialog showing the recipient address from the order and, if available, when the invoice was last sent. After you confirm, the invoice is sent to the buyer as a PDF, the order then shows Sent on <date>, and you can resend it at any time. Cancelled invoices are marked cancelled and cannot be sent; a credit note is linked as Credit note <number>. If the PDF is missing, the row says Invoice PDF missing. While the invoice is still being prepared, the row says Invoice is being created. Free tickets and orders without an invoice show nothing there.
The whole order in one click. Return the whole order opens the same return dialog, only with every still valid ticket of that order. The refund is paid out as a separate credit per ticket — the buyer therefore sees several credits instead of one combined credit; the dialog says so beforehand. If a refund stops halfway, the notice tells you, and a second click continues with the next ticket — tickets already refunded stay refunded, nothing is paid out twice.
Only returned when there is nothing left to refund. If an order consists only of complimentary tickets or its full amount has already been refunded, the button returns the tickets without moving money.
The seat frees up immediately. As soon as you confirm, the ticket becomes invalid, can no longer be scanned — and stops counting against your capacity. The public sales page offers the seat again right away.
The refund is optional and runs inside Univents. Refund the amount is pre-selected in the dialog; clear it and the ticket is only returned, with no money moved. The amount follows the returned tickets: return single tickets of an order and their share is refunded; return every open ticket of an order and the full remaining amount goes back.
Returning and refunding are decoupled. The seat is always released immediately, even while the payout is still running. The ticket's status column tells you where the refund stands:
- Refund under way — accepted but not paid out yet (your payment provider may take a few days). Don't promise the guest a completed refund at this point.
- Refunded — the money has left.
- Refund failed — the ticket stays returned, the seat stays free, and the row offers Retry refund. Retrying never pays out twice.
Tickets without an online payment (free or cash tickets) simply have no money section — you can still return them.
Credit note for the invoice. When you refund all tickets of an order, Univents creates the cancellation credit note for the invoice automatically. When a ticket line is fully refunded (for example the only VIP ticket of the order), a credit note for exactly that line is created. If you refund only part of a line (one of four identical tickets), a credit note for exactly that quantity is created; further refunds of the same line each add their own credit note until the line is fully credited. You find the credit note in the event’s finance documents.
Who may do what? Anyone who may edit events can return a ticket. Issuing the refund additionally requires the billing permission. Without it you can still return the ticket — the refund part is hidden.
Did you refund directly in your payment provider? Then the tickets deliberately stay valid — nobody should lose their entry pass without being asked. Instead a notice appears above the ticket list ("A refund was issued in Stripe …") with a Return now button that returns exactly those tickets without moving money a second time. In the Orders view such an order shows Refunded externally; returning it does not refund a second time.
Issuing complimentary tickets
Press, sponsors, your own staff, competition winners: guests who don't pay still get a proper ticket with a QR code.
In the event's Tickets tab, click Comps. In the dialog you pick the ticket type and enter the guests — either one at a time (name, email, quantity) or as a list when there are several:
Maria Example;maria@example.com;2 Tom Sample;tom@example.com
Semicolon, comma and tab all work as separators. Without a quantity, one ticket is issued. An Excel header row is skipped automatically. Before issuing, the dialog shows how many guests it recognised and which line it could not read — the invalid lines don't hold up the rest.
Swapped columns and typos. If a row’s e-mail is invalid, the dialog reports an invalid e-mail address right at the field; the other rows can still be issued. If the name field contains an @, a hint is added that name and e-mail are probably swapped.
After clicking Issue, every guest gets the same email a buyer would, with the same QR-code ticket attached. Instead of an amount, the email says "Invitation". Every ticket carries the name and email from your list; complimentary tickets do not get an invoice.
The e-mails go out with the next delivery run. Univents sends the ticket e-mails every five minutes. Until then the ticket list shows Queued in the Mail column; reloading the list shows the current state. You don’t have to trigger anything.
Complimentary tickets count against the capacity. If your room is set to 200 seats and you issue 20 comps, 180 remain for sale. If you want to sell 200 and give away 20, set the capacity to 220 (in the ticket sale editor or on the ticket type).
If no seat is left, no ticket is issued for that guest and the dialog says "Sold out" — guests already issued from the same list are unaffected.
In the ticket list every complimentary ticket is marked Comp, so you don't mistake it for a sale when reconciling revenue. Cancelling works like any other ticket and frees the seat again. There is no refund for a complimentary ticket — nothing was paid.
Discount codes for tickets
Besides free tickets that you issue yourself, you can create discount codes that buyers type in when purchasing tickets — for example a percentage discount for a campaign, or a free-ticket code ("100%, at most 2 units") for exhibitors. You create codes under Booking pages → Discount codes; in the Tickets tab a note tells you how many codes apply to the page. With a campaign link (?code=…) the code is prefilled when the ticket page opens. If the order comes to €0.00, the tickets are issued without payment — even without a connected payment account. Everything else is in Discount codes for booking pages and tickets.
Capacity and utilization
Each ticket type can have its own capacity; you can additionally set a total capacity across all types. Above the ticket list, the Sold / Checked in / Capacity row always shows the current status.
Ticket inquiries that have come in (sale type As a request) are deliberately not part of that count: it follows paid tickets only, and an inquiry holds no seat.
Change a ticket type afterwards
You can adjust the name, price, tax rate, quota and description of a ticket type at any time: open the event, go to the Tickets tab, click Edit and then the pencil next to the ticket in the Tickets section.
- The quota can't be lowered below the amount already sold or reserved.
- Tickets already sold keep their price. A new price only applies to future purchases.
Splitting a ticket price across several tax rates
If a ticket price is made up of services with different tax rates, for example admission with food (7 %) and drinks (19 %), you split the price in the ticket editor. The guest still pays one price and gets one ticket.
- Open the event, go to the Tickets tab and click the pencil next to the ticket in the Tickets section.
- Switch on Split the price across multiple tax rates. The ticket type's own Tax rate field disappears while the split is active.
- Per line, enter a Tax rate and a Share (%). Two to three lines are possible and must add up to 100 %; the Total line shows the running sum.
- Save. If something is off (shares not adding up to 100 %, a duplicate rate, fewer than two lines), the dialog names the reason and does not save.
As the ticket type's tax rate, Univents keeps the rate with the largest share. Every place that only knows a single rate keeps calculating with it, for example the financial breakdown grouped by tax rate.
What the guest sees. The total on the ticket page shows one line per tax rate (“incl. VAT 7 %” and “incl. VAT 19 %”) with its amount. Everything else stays as before: one line in the cart, one QR code per ticket, the same capacity, the same door check and the same refund per ticket.
What the invoice and the ticket PDF show. The ticket type appears once per tax rate, titled with the ticket name and the share, for example Party ticket (Share 7 % VAT) and Party ticket (Share 19 % VAT), each with the number of tickets bought. The tax block of the document lists every rate with net and tax. The total stays exactly the amount the guest paid, down to the cent; Univents distributes leftover cents so nothing drifts apart.
Returns and credit notes. If you return individual tickets of an order, the credit note carries one line per tax rate with the returned quantity, and together they add up to exactly the refund amount. Returning the whole order credits every share line in full.
Sold tickets no longer change. The split is fixed at the time of purchase. If you change the ticket type's shares later, they apply to new purchases only; the invoice and ticket PDF of a paid order stay as they are. Correcting an old order is only possible via a credit note and a new invoice.
Whether a fixed split is appropriate for your tickets from a tax point of view is a question for your tax adviser. Univents only records what you enter.
Frequently asked questions
Do I need to log in to use the scanner at the door? No. Scanner token generates a link that works without login — useful for door staff who don't have a workspace account of their own.
Can I restore a returned ticket? No, returning is final. If the customer needs a new ticket, create a new order or a new ticket instead — the seat is free again anyway.
Is the seat really back on sale straight away? Yes. The capacity check no longer counts returned tickets, both for a single ticket type's allowance and for a total capacity across all types. A sold-out event becomes bookable again after a return.
What happens to the fees? The guest pays only the ticket price; no fee is added for them. For you, a booking fee of Stripe applies per payment, meaning per order rather than per ticket: 2.5% + €0.25, minimum €0.50, plus VAT. It is withheld at payment; Stripe invoices the withheld fees monthly. The fee Stripe charges for payment processing is charged directly to you by Stripe (according to its price list) — your Stripe account receives the order amount minus our fee. If you connected Stripe before 23 October 2026, the fee agreed at that time continues to apply (1.5% + €0.15, minimum €0.30, VAT included). Example: for an order of €98.00 the booking fee is €3.21 including VAT (€2.70 net plus €0.51 VAT); Stripe additionally charges its fee for an EU card (currently €1.72) directly, so €93.07 arrive on your Stripe account. Complimentary tickets and orders of €0.00 incur no fee. If you return and refund a ticket, the guest gets the full ticket price back; the fees are not refunded. The refunded amount is deducted from your Stripe balance. If your Stripe connection dates from before 23 October 2026 and you have not reconnected it, the amount is taken back from the money of that order; whatever can no longer be covered there (on a complete return, these are the fees) is automatically offset against your next payments. The dialog shows you the exact amount before you confirm.
What happens if someone tries to check in an already-scanned ticket a second time? The scanner shows "Already checked in at HH:MM" instead of confirming it again — double admission with the same code is not possible.
The QR code won't scan at the entrance — what now? In entry mode, tap Enter code manually and type the 8 characters below the QR code. This works in the workspace when logged in; via a scanner token link without login, the full 64-character code is required.
Do I need a payment provider for the ticket page? Only with the Pay directly sale type. If you sell as an inquiry, no payment provider is needed — payment happens later through the quote.
Does a ticket inquiry reserve seats? No. Capacity still counts paid tickets only; an inquiry leaves your available seats untouched.
What happens to the event if I reject a ticket inquiry? Nothing. Accepting or rejecting a ticket inquiry does not change the event itself — the ticket page keeps running independently of it, and several inquiries for the same event don't rule each other out.
I connected Stripe before 23 October 2026 — do I need to do anything? Only if you want to switch: until then, payments continue as before and your fee stays the agreed one. For direct payments, reconnect Stripe via Reconnect Stripe on the Integrations → Payments page; the steps are described in Connecting the Stripe payment integration. As soon as the new account can accept payments, payments go directly to your Stripe account; earlier amounts continue to be paid out by your previous Stripe account.