TicketMagic

TicketMagic — User Manual

Version: v26.5 · This manual is for organizers, their team members (manager, salesperson, door staff, ticket issuer, promoter) and the platform operator (SuperAdmin). It describes every feature: what it is for, where to find it, how to configure it and what to watch out for.

Note: the admin interface is in Hungarian. Menu names are given here in English with the Hungarian label in brackets, e.g. Events (Események). The ? button in the top right of every admin page opens a short help for that page.

1. Key concepts

  • Organization — your company / promoter account. It can have many events and team members.
  • Event — a show, party, festival or performance. Single date, multiple dates or an ongoing programme.
  • Ticket type — a kind of ticket within an event (Early Bird, Standard, VIP…) with its own price, quantity and rules.
  • Order — one purchase. An order can contain several tickets, add-ons (extras) and a table booking.
  • Ticket — one admission with a unique QR code. The first scan wins.
  • Handling fee — an extra fee per ticket paid by the buyer (set per ticket type). Its VAT rate always equals the ticket's VAT rate. It can also be built into the ticket price per ticket type (chapter 5).
  • Platform fee — TicketMagic's per-ticket fee: 1.9% + HUF 69 for online and seated tickets (up to a HUF 2,000 ticket price only 1.9%, no fixed part), 0.9% + HUF 29 at the on-site box office, HUF 0 for free tickets. The fee is VAT-exempt. Details: chapter 32.
  • Door app — the installable app at /belepteto for the entrance, the bar and the on-site box office. Works without internet.

Roles

RoleAccess
OwnerEverything: settings, Stripe, finances, team, all events.
ManagerEverything except the platform fee. Can add team members.
SalespersonOnly the orders, coupons and ticket sending pages (no settings, finances or team).
Door staff (Beléptető)Only the door app (entry, bar, list, box office) — opening the admin redirects there.
Ticket issuer (Jegykiküldő)Can only send tickets by email; sees nothing else.
PromoterOwn promoter panel: own sales, commissions and guest lists.
SuperAdminPlatform operator: all organizations, platform fees, platform invoices, users.

2. Getting started as an organizer

  1. Sign up: ticketmagic.hu/szervezoknek/regisztracio — name, email, password, organization name. You become the owner.
  2. Confirm your email with the link you receive. Events cannot go live until it is confirmed (you can resend it from the dashboard).
  3. Fill in Settings (Admin → Settings / Beállítások) — see chapter 3. Required for going live:
    • at least one payment method (Stripe card payments and/or bank transfer details),
    • an invoicing provider (Billingo, Számlázz.hu or bizonylat.hu),
    • a confirmed email address.
  4. Create your first event (Events → New event), add ticket types, set status to Published.
  5. Invite your team (Team / Csapattagok) — e.g. door staff.
  6. Recommended: enable two-factor login (shield icon, bottom left).

Admin layout and appearance

  • Top left — active organization: the ticket-shaped label shows which organization you are working in (initials, name, your role). Everything you create (events, ticket types, coupons, invites, team members etc.) goes into this organization. The same name is shown at the top right of every page; click either to switch or create an organization (see chapter 30).
  • Menu: grouped — Events, Sales, Marketing, Finance, Organization, with the Manual at the bottom (plus the platform items for SuperAdmins).
  • Appearance: use the Appearance switch at the bottom left to choose a light, dark or system theme (system follows your phone / computer setting, e.g. dark in the evening). The browser remembers it and it also applies to the public site, where the moon / sun icon in the header toggles it.
  • Bottom left: next to your name, the shield icon opens two-factor login, the person icon your profile, the exit icon logs you out.

The dashboard's to-do list always shows what is still missing (Stripe information requests, missing invoices, email confirmation).

Overview: figures cover only open events (not yet over, not cancelled) by default; the "Including past" switch adds all past events.

SuperAdmin: the organization switcher lists only your own organizations, and you always start in your own after login. To manage another organizer, use "Enter to manage" in SuperAdmin › Organizations; a yellow bar shows while you are there, with a button to go back.

3. Settings (Admin → Settings)

Brand name (Brand / Collection page, optional but recommended): when set, it replaces the company name on TicketMagic pages — event page, collection page, follow box, follower and buyer emails, ticket PDF. Invoices, payment providers and legal texts always show the official company name.

3.1 Company and contact details, public page address

Public contact for buyers: email (required) and phone (optional), shown on your organizer page, event pages ("Questions? Contact the organizer"), order page and in buyer email footers. Your internal contact details stay separate. Public page address: your organizer page URL (ticketmagic.hu/szervezo/<address>) can be changed in Settings if the address is free (checked live while typing). The old address redirects permanently to the new one and can't be taken by others. System words (admin, esemeny…) are reserved.

Email, phone, website, registered address, tax number, company registration number. These appear on invoices issued to your buyers (as seller), on the ticket PDF stub and in emails. Your terms and privacy links are shown to buyers.

3.2 Stripe — card payments

  • Connect: the "Connect Stripe" button opens Stripe's own onboarding where you enter company and bank details. Prefill: TicketMagic passes the data already entered in Settings to Stripe (company name, business type, tax number, registration number, address, email, phone, website, support email/phone, the bank account converted to IBAN, plus from the Representative / owner card the representative's name, date of birth, email, phone, home address, title and ownership share), so you don't have to retype them. Without a registration number the account is created as a sole trader with the representative's data. Data already provided/verified at Stripe is never overwritten. Stripe always collects the identity document itself.
  • Business form (Settings → Company details, required): sole trader / sole company / private person with tax number, business company (Kft., Bt., Zrt. …) or non-profit. Data is passed to Stripe accordingly: sole traders as an individual (with the representative's data, bank account in their name), companies as a company (name, tax number, registration number, address, representative), non-profits as a non-profit. For sole traders and non-profits no ID numbers are sent — Stripe asks for them in its own, form-appropriate fields. The bank account number is required (Hungarian format or IBAN) and is passed to Stripe as IBAN. Stripe connect opens in a new browser tab, TicketMagic stays open.
  • Representative / owner (Settings): the company's managing director, or yourself as a sole trader — every field is required (0% if no ownership). Not public; used only to prefill Stripe. Company details (email, phone, address, tax number, registration number) are required too; while any is missing, no new event can be published (ongoing sales are not stopped).
  • If Stripe connect fails to start: the error message shows Stripe's exact reply (e.g. invalid website URL, or Connect not yet enabled on the platform's Stripe account), and it is also written to the audit log. Buyers' money goes directly to your Stripe account; the platform fee is deducted automatically at payment.
  • Your own Stripe account: connecting creates your own (standard) Stripe account, managed at dashboard.stripe.com (bank account, payouts, documents); Stripe schedules payouts automatically and bears fraud losses.
  • Status: shown in Settings and in the top banner when Stripe requests information (with deadline). Green = OK; yellow = pending/under review; red = restricted. "Details and fix" takes you straight to the missing items. You also get an email when the status changes.
  • Payouts: money lands in your own Stripe account and Stripe pays it out automatically every day to your bank account (after Stripe's usual few-day processing) — nothing is held until the event ends. My payouts shows the balance, the payouts and a per-event settlement. Refunds are taken from your Stripe balance.

3.2b SimplePay, Barion, Viva Payments

Besides (or instead of) Stripe you can connect your own SimplePay, Barion or Viva Payments account — setup and step-by-step guides: chapter 40.

3.3 Bank transfer

Bank name, account number, SWIFT/IBAN. If set, buyers can choose bank transfer: the order stays pending, the buyer receives payment details by email, and the tickets are activated when you mark the order as paid. Transfers go directly to you; their platform fee appears on the monthly payable platform invoice.

3.4 Invoicing (Billingo / Számlázz.hu / bizonylat.hu)

  • Choose the provider and enter the API key (Billingo: API key + invoice block ID; Számlázz.hu: Agent key; bizonylat.hu: bz_live_… key from its API menu), optional invoice prefix (for bizonylat.hu it sets the invoice block, e.g. TM → TM-2026-000001).
  • Every paid order is invoiced automatically — whichever payment method was used (Stripe, SimplePay, Barion, Viva Payments, transfer): invoicing starts when the payment is confirmed. bizonylat.hu testing: create a "Tesztcég (NAV tesztkörnyezet)" company there and use its key.
  • Invoices are emailed to the buyer, itemizing tickets, handling fees, extras and table deposits.
  • If issuing fails (e.g. wrong key), the error is shown on the order, the system retries every 15 minutes, and the "Missing invoice" filter in Orders lists them; you can retry one by one.
  • No invoice is issued for 0 HUF orders and box-office sales.
  • Who do you sell to? Individuals and companies (buyers can request an invoice with a tax number at checkout), or individuals only (e.g. KATA): then checkout offers no company option and no tax-number invoice is ever issued. Overridable per event (Event → Checkout).

3.5 Branding and page design

Brand colour, short description, logo and header image (shown on your organizer page ticketmagic.hu/szervezo/<slug>). The colour and logo are also used in emails, ticket PDFs and Wallet passes.

Custom design — on your organizer page, event pages, series and checkout pages: accent colour, background colour, background image (dimmed for readability), theme (visitor's choice / always light / always dark — with a background colour the theme follows its brightness), heading font and corners (sharp / rounded). Per event override: Event → Custom design for this event (colour, background, event cover as background, theme).

3.5b Checkout: payment methods and notes

  • Which payment methods are offered? Settings → Checkout: choose which connected providers (Stripe, SimplePay, Barion, Viva Payments, transfer) to offer — one or several (buyers choose) — and their order (first = default). Newly connected providers are appended automatically.
  • Per event: Event → Checkout for this event narrows the list.
  • One-line note per payment method, and a note above the "Order" button (overridable per event).
  • Notes under tickets: the ticket type's Short description appears under the ticket on the event page.
  • With co-organizers, the checkout settings of the invoicing company active at purchase apply.

3.6 Tracking codes and ad measurement

GA4, Google Tag Manager, Google Ads (conversion ID + label), Meta Pixel, TikTok Pixel and a Meta Conversions API token (plus test event code). Your codes run on your organizer page and your event pages (overridable per event), never on other TicketMagic pages, and load only after the visitor accepts cookies. Details: chapter 36.

VAT exemption code: if you sell tickets at 0% VAT, choose the reason (AAM — subjective exemption, TAM — objective exemption); it is printed on the invoice. Your platform fee is shown here read-only.

3.7 Waiting room

For high-demand on-sales: only the set number of visitors can be in checkout at once; others get a queue position and are admitted automatically. This is the default; it can be toggled per event.

3.8 Ticket transfer and resale

  • Transfer (on by default): buyers can give their ticket to someone else for free.
  • Official resale (off by default): buyers can list their ticket on the event page for at most the original price +10%.
  • Organization default; can be overridden per event (Enabled / Disabled / Use organization setting). See chapter 18.

3.9 Security

Require two-factor login for the team — every team member must set up 2FA before using any other page. See chapter 22.

4. Events

4.1 New event

Events → New event. Quick start: "Start from a template" — a saved template copies the settings, cover image and ticket types; a previous event copies only the settings. Just enter the name and date.

Event templates: on an existing event, use the "Save as template" box on the right. A template with the same name is overwritten. Delete a template on the New event page after selecting it.

Tabs: the event editor is split into Basics · Ticket types · Ticket settings · Visibility & email · SEO & tracking · Tools. The Tools tab groups the extra features by topic (sales, seating, guests, communication, administration). Save stores all tabs at once. The new ticket type form is split into steps too: Price & quantity → Sales → Entry → Description & image — Save works from any step.

Handling fee: four modes. Suggested is the default: it covers your platform fee and the estimated card fee, rounded up to the next 10 Ft (e.g. 68 → 70 Ft), so nothing is lost from the ticket price. Others: fixed Ft, % of price, or fixed + %.

Ticket order and sections: on the Ticket types tab, drag tickets by the ⠿ handle or move them with ▲▼. "+ Section" adds headings (e.g. Entry tickets, Passes, VIP). A ticket belongs to the section above it, and buyers see them grouped the same way.

Cover image: it uploads and saves as soon as you choose it, no extra button. Replace it the same way, or remove it with "Delete".

Basics

  • Name (Hungarian required, English recommended), description in both languages — English-speaking visitors see the English text (or Hungarian if empty).
  • Category — for filtering on the home page.
  • Date type: Single (start and optional end) · Multiple dates (each with a label, managed in the "Dates" box) · Ongoing (free text, e.g. "Every Friday from 8 pm").
  • Venue: name, capacity, postcode, city, street. A map is shown on the event page.
  • Status: Draft (hidden) / Published (visible, on sale). On publishing, the system checks that the organization is ready (payment method, invoicing, confirmed email); if not, it stays a draft and shows what is missing.
  • Visibility: Public (listed) or Unlisted (link only).
  • Cover image — Facebook event cover ratio (1.91:1, e.g. 1920×1005 or 1200×628 px); your Facebook event cover works as is. Shown full width at the top of the event page, on the event cards and on the ticket PDF (unless the ticket type has its own image). Other ratios are centre-cropped.

SEO and tracking — meta description, event-specific GA4/GTM/Pixel codes.

Ticket settings (checkboxes)

  • Allow name change — buyers can edit the name on their ticket in their account.
  • Venue capacity (door alert) — the door app warns at 90% and 100%.
  • Ask for phone number / year of birth at checkout (automatic for age-restricted tickets).
  • Pre-registration — while no ticket is on sale, visitors can sign up and are notified when sales start (chapter 15).
  • Table booking with interactive map (chapter 8).
  • Numbered seating (chapter 9).
  • On-site sales in the door app's Box office tab (chapter 20).
  • "Who's going?" — the event page shows how many tickets were sold and the first names of buyers who opted in at checkout.
  • Transfer and Resale — per-event override.

Visibility and rules — event rules link (buyers must accept it at checkout), event-specific privacy notice link.

Confirmation message — your own text in the confirmation email and in the "Important information" box of the ticket PDF (doors, parking, dress code), in Hungarian and English.

4.2 The event page in admin

After saving, the right-hand boxes show: public link, Dates (multi-date), Event team, Statistics, and shortcuts: extras, guest lists, tables, seating, box-office report, transfers, sales target, pre-registrations, check-in log, performers, timed prices and group discounts, buyer emails, external sales import.

  • Performers — name, genre, performance time, order, short bio; shown on the event page.
  • Statistics — daily sales and views (30 days), ticket type utilization.
  • Embed — ticketmagic.hu/embed/<event-slug> is a ticket box you can embed in any website.

5. Ticket types

On the event edit page: + New ticket type; edit with ✏️.

FieldMeaning
Name (+ English)Shown to buyers.
Price (HUF)0 = free ticket (registration).
Original priceShown struck through ("sale" effect).
Handling feePer ticket type: fixed HUF, % of price, or both (fixed + %, e.g. HUF 100 + 2.5%); added to the ticket price and itemized on the invoice. The "Suggested fee" button calculates the amount that covers the platform and card fees.
Build fee into ticket priceWhen on, buyers see one all-inclusive price with no fee added on top. The fee is still a separate line on the invoice.
QuantityTotal available (empty = unlimited). When sold out, buyers can join the waiting list.
VAT rate0 / 5 / 18 / 27% — declared by you. The handling fee always uses the same rate. At 0% the exemption code from Settings (AAM/TAM) goes on the invoice.
Sales start / endNot purchasable outside this window.
Chaining"Start when this ticket sells out / closes" — e.g. Early Bird → Round 1 → Round 2 open automatically.
⏰ Arrival deadline + late surchargeAfter the deadline the door app asks for the surcharge; door staff collect it (cash/card) and record it.
Door pricePrice in the Box office tab (empty = current online price).
Sellable in Box officeShow it in the on-site box office.
Check-in from / untilEntry time window (e.g. day ticket valid only that day).
Min. / max. per order
Minimum ageYear of birth is asked and checked at checkout.
VisibilityVisible; Hidden (only with a personal invitation link — chapter 13); Hidden until on sale.
Short / long description (+ English)Shown under the ticket on the event page.
Ticket imagePrinted on the PDF ticket (else the event image).
Named ticketA holder name is required for each ticket at checkout.
ScannableOff = not an admission ticket (parking, donation…).

Timed prices (Event → Timed prices and group discounts)

Give a ticket type a different price for a period — cheaper (early bird) or higher (e.g. the last week). Add any number of periods and edit or delete them later (click the row). Outside the periods the ticket type's default price applies. If two periods overlap, the lower price wins. The default price is shown struck through on the event page only when the timed price is lower.

Group discounts

On the same page. Applied automatically in the cart, no code needed, for one ticket type or all tickets of the event:

  • Percentage: e.g. 10% off from 4 tickets.
  • Free ticket: e.g. "pay for 4, get 5". The invoice lists the 4 paid tickets at full price and the 5th as a separate HUF 0 line; the buyer receives all 5 tickets (PDF, Wallet). No platform fee on the free ticket.

If several rules apply, the best one for the buyer wins. Buyers see the offer in the cart and on the event page. Rules can be switched on/off and deleted.

6. Series and season passes (Admin → Series & passes)

A series groups related events (e.g. a club night series). It has its own public page (/sorozat/<slug>) and event pages show a "Part of the series" bar.

Season pass: a ticket type valid for every date of the series (one entry per date). Fields: name, price, handling fee, quantity, max per order, VAT, which event page sells it (it also appears on the others), description. "Apply to all dates" links all events to the series in one click.

7. Add-ons / extras (Admin → Add-ons)

Drink packages, parking, cloakroom, merch — anything sold alongside tickets.

  • Fields: name, price, VAT, short description, stock, max per order, redeemable until (e.g. 23:00 — encourages early arrival), sort order.
  • Buyers can add them on the event page, in the cart, or later (the "Buy extras" link in the confirmation email and on the order page — upsell).
  • Redemption: at the bar, scan the guest's ticket QR in the door app's Bar tab and press "Give 1" (works offline). Unredeemed extras are also printed on the ticket PDF.

8. Table booking

Event → Tables (enable it in the event settings first).

  • Floor plan: drag tables into place; upload a floor-plan image.
  • New table(s): name/number, zone, capacity, shape (round/square), online deposit (paid by the buyer, credited against consumption), minimum spend, quantity (creates numbered tables at once).
  • Manual booking: phone / regular-guest bookings on a free table.
  • Buyers pick a table on the event page, enter the number of guests and pay the deposit. The table is held during payment.
  • Arrival: in the door app's List tab, search by name / table → "Arrived".

9. Numbered seating

For theatre performances and galas. Event → Numbered seating (enabled by the event checkbox; the first generation turns it on automatically).

Generate (form on the right)

  • Section name (e.g. Stalls, Balcony left) — optional.
  • Rows: A-J, 1-15 or a list A,B,C.
  • First and last seat number per row.
  • Price category — the ticket type these seats belong to (its price applies).
  • Horizontal / vertical offset — block position on the map (empty: placed below the previous block).
  • Aisle every x seats — e.g. 6 → aisle after every 6th seat.
  • Number right to left.

Editing: click seats (or a row letter for the whole row), then: Block (not for sale, e.g. technical seats), Unblock, Price category (move to another ticket type), Delete (sold seats cannot be deleted). Set category colours with the colour picker.

Buyers pick seats on the seating map; the seats are held for 15 minutes, extended during payment. Seated ticket types can only be bought via the map. The seat appears on the PDF, the Wallet pass and in the door app. Seats of expired / cancelled / refunded orders are released automatically.

Make sure the ticket type quantity is not lower than the number of seats. The box office cannot assign seats.

10. Guest lists (Admin → Guest lists)

  • New list: event, name, promoter (if theirs), entry type (Free or Discounted — price paid at the door), max guests, max plus-ones per guest, list closing time, valid until (e.g. 23:30 — afterwards a normal ticket is needed).
  • Add guests: one by one or in bulk (one name per line, optional email/phone, plus-ones).
  • Self sign-up link: shareable link where guests add themselves (they get a confirmation email).
  • Export: CSV.
  • Check-in: door app List tab — search by name, phone or email, choose how many people enter. For discounted lists the app shows the amount to collect.

11. Promoters and commissions (Admin → Promoters, Commissions)

  • New promoter: name, unique code (part of the link: …/esemeny/xy?ref=CODE), email, phone, commission type (% of face value or fixed HUF per ticket), value, team leader (earns an extra % of the team's sales), password for the promoter panel.
  • Buyers arriving via the link are attributed to the promoter for 30 days; paid orders generate commission.
  • Commissions: filter by promoter / event; Approve selected, Reject, Mark selected as paid. Refunds adjust commissions automatically.
  • Promoter panel (promoter's own login): sales per event, commissions, team, own guest lists.

12. Coupons (Admin → Coupons)

  • New coupon: event, code, type (fixed HUF or %), value, max uses (empty = unlimited), validity.
  • Bulk import: Excel (.xlsx) or CSV — a template can be downloaded.
  • Coupons apply to ticket prices only (not extras or table deposits) and are validated instantly at checkout.

13. Personal invitations (Admin → Private invites)

Send personal links for a hidden ticket type (VIP, sponsor, presale).

  • Event, hidden ticket type, recipient emails (one per line), max uses per recipient, expiry, custom message.
  • Each recipient gets an individual link by email; only with it can they see and buy the hidden ticket. Uses count only on successful payment. The list shows usage, and a QR code can be downloaded for each link.

14. Ticket issuing (Admin → Ticket sending)

Send complimentary / prize / partner tickets: event, ticket type, recipient name and email, quantity, note (internal). The recipient gets PDF tickets; it appears as a 0 HUF order. Ticket issuer team members see only this page.

15. Waiting list and pre-registration

  • Waiting list: when a ticket type sells out, buyers can leave their email. When tickets become available (expired / cancelled orders, refunds), they are notified automatically.
  • Pre-registration: while no ticket is on sale, the event page shows a sign-up box. When the first ticket type goes on sale, everyone is emailed automatically. List: Event → Pre-registrations (exportable).

16. Custom questions (Admin → Custom questions)

Your own checkout questions (T-shirt size, dietary needs). Question text, scope (one event / all events / a ticket type), field type (text, number, date, dropdown, yes/no), options, required. Answers appear in the order details and exports.

17. Email templates (Admin → Email templates)

All emails are HTML with your logo and brand colour, plus a plain-text version. Every template is editable in Hungarian and English; buyers receive the language they bought in.

TemplateSent when
Order confirmationPaid order — PDF tickets attached, "Download tickets" button, Wallet link.
Bank transfer orderTransfer chosen — bank details and reference.
Waiting listA ticket became available.
Pre-registrationSales started.
Abandoned cartSee below.
Ticket transferTo the new owner, with the ticket.
Resale — soldTo the seller, with payout details.
Guest listSelf sign-up confirmation.
Personal invitationSending the invitation link.

Editor: subject + body. Formatting: # Heading, ## Subheading, bold, italic, link text, - list, --- divider, [[Button label|url]] button, !image. Variables (e.g. {{buyer_name}}, {{event_name}}, {{pdf_url}}) are inserted with buttons and replaced with real data. Live preview on the right, and you can send a test email to yourself. "Reset" restores the default text.

Abandoned cart reminder

  • Enable at the top of the template (off by default).
  • Send after: 30 minutes – 1 day.
  • Coupon code (optional): shown as {{coupon_code}} and applied automatically when the cart is restored. Create the coupon in Coupons first.
  • How it works: if a buyer enters their email at checkout but doesn't complete the purchase (and doesn't buy later), they receive one email after the delay, with a link that restores their cart. At most one email per event per 7 days; unsubscribed addresses are skipped. Buyers see a notice about this at checkout.
  • Statistics (90 days): carts saved, reminders sent, returned, recovered revenue.

18. Ticket transfer and official resale

Organizer setup

  • Organization default: Settings → Ticket transfer and resale.
  • Per-event override in the event settings.

Transfer (gift)

  1. On the order page (linked from the confirmation email) the buyer clicks Transfer next to a ticket → recipient name + email.
  2. The ticket gets a new QR code; the old one is invalid immediately (the door app rejects it).
  3. The recipient receives the ticket by email (PDF + own order page) and can transfer it further.
  4. Only active, unused tickets, and only before the event starts.
  5. The original order's finances are unchanged; a full refund of the original order also voids tickets transferred from it.

Official resale

  1. On the order page: Sell → price (at most the original ticket price +10%), plus bank details if needed.
  2. The ticket appears in the "Official resale" box on the event page. While listed it cannot be used for entry (the seller can withdraw any time).
  3. The buyer pays the resale price + the ticket type's handling fee; the platform fee is deducted as usual. Card payment (Stripe) only. The ticket is held for the buyer during payment (30 minutes).
  4. After payment the ticket is reissued to the buyer with a new QR code; the buyer gets the ticket and an invoice, the seller is notified.
  5. Seller payout:
    • If they originally paid by card: up to the original ticket price is refunded automatically to their card (from your Stripe balance — covered by the buyer's payment). The original handling fee is not refunded.
    • Any markup, or the full price if they didn't pay by card originally, must be transferred by you to the seller's bank account.
  6. Admin → Event → Transfers and resale: "To pay to sellers" list (name, IBAN, reference, amount) — mark Paid after transferring. Also listing statuses and the full transfer log.

19. Orders (Admin → Orders)

  • Filters: event, status, search (name, email, order number), "Missing invoice".
  • Statuses: Pending (card payment in progress — expires after 30 minutes and releases stock; or awaiting bank transfer), Paid, Cancelled, Refunded.
  • Order details: buyer, items, tickets with QR and status, payment method (online card / transfer / on-site cash / on-site card / free), source (online / box office / resale / transfer), invoice, custom answers.
  • Actions:
    • Mark as paid (transfers) → tickets activated, email + invoice sent.
    • Refund / cancel the whole order or per ticket: card payments are actually refunded via Stripe (platform fee proportionally too); transfer / on-site payments must be refunded manually. Tickets are voided, stock and seats released, waiting lists notified.
    • Undo check-in per ticket or for the whole order.
    • Download PDF, resend confirmation, retry invoice.
Credit notes for refunds are not automatic — issue them in your invoicing provider.
  • Refunds (whole order or per ticket) — only the owner and managers, with a mandatory reason (logged). The buyer gets back the full amount paid (ticket price + handling fee; add-ons too for a whole order). Online payments (Stripe, SimplePay, Barion, Viva Payments — the latter needs Merchant ID and API Key) are refunded automatically; transfers / on-site payments must be returned manually. The TicketMagic platform fee is not refunded. Delete without refund if the money was settled otherwise.
  • Invoices: on refund / deletion a storno (cancelling) invoice is issued automatically with the configured invoicing service (Billingo, Számlázz.hu, bizonylat.hu) and sent to the buyer. For partial refunds the old invoice is cancelled and a new invoice is issued for the remaining items. If the service fails, a red notice appears and it is retried automatically (or "Issue storno now"). The order shows the invoice history.
  • Cancelled event — bulk refund (Edit event → The event is cancelled): reason + message to buyers + confirmation (type the event name). Sales stop immediately, the event page shows "This event is cancelled", unpaid orders are deleted, paid orders are refunded in the background (~15 per minute), each with a storno invoice and an email to the buyer with your message. The page shows queued / refunded / failed (retry) and the orders you must refund manually (transfer, on-site).

20. Door app (/belepteto)

20.1 Install and log in

  • Open ticketmagic.hu/belepto on the phone → browser menu → Add to Home Screen. It then starts like an app, even offline.
  • Log in with a team member's email and password (owner, manager, door staff). If the account has 2FA, the 6-digit code is required too. The login is valid for 7 days.
  • Choose event: current published events (not older than 3 days), each showing whether offline data is downloaded. After login the app downloads all your events' data in the background.

20.2 Live connection and automatic offline mode

  • The header indicator shows Live · hh:mm:ss (last sync) or Offline · local data. The yellow number is the count of operations not yet uploaded.
  • While online: scans are decided by the server (so two gates can never admit the same ticket); the app checks the connection every 5 seconds and syncs continuously: every 10 seconds (and immediately on any change) it downloads other devices' check-ins, new online purchases, guest list and table changes.
  • When the connection drops: the app switches to offline mode by itself (with a notice) and admits from the downloaded data using the same rules: paid, cancelled/transferred, other event, time window, season pass, late surcharge, already used. Every operation is stored on the phone (survives restarts and a dead battery).
  • When the connection returns: the app automatically uploads offline check-ins, sales and redeemed extras, downloads what changed meanwhile, and returns to live mode ("Synced — live connection restored").
  • Conflicts: if two devices admitted the same ticket offline, it is reported as a conflict after sync (in the app and in the box-office report).
  • Forced offline mode (Connection sheet): for patchy Wi-Fi — always decides from local data (fast); background sync keeps running.
  • Connection & data sheet (tap the indicator): downloaded data, pending operations, last sync, Refresh data, Sync now, statistics (inside / total / still outside, guest list, capacity), sync conflicts, log out.

20.3 Entry tab

  • Camera QR scanning (torch toggle), manual entry, or a Bluetooth/USB barcode scanner (no setup needed).
  • Results: Entry allowed (ticket type, name, seat, extras at the bar) · Already used (when) · Invalid (unknown code, unpaid, cancelled, other event, not scannable, outside time window, listed for resale) · Late arrival — surcharge: collect it, record Cash or Card, and the guest enters.
  • Season pass: one entry per series date.
  • Capacity alert: red banner and vibration at 90% and 100%.
  • Sound and vibration indicate the result.

20.4 Bar tab

Scan the guest's ticket to see their extras (drink package etc.) with remaining quantity and deadline; press Give 1. Works offline.

20.5 List tab

Search by name, phone, email or table. For guest-list guests choose the number of people entering; for discounted lists the amount to collect is shown. For tables press Arrived. Works offline. Undo is admin-only.

20.6 Box office tab — on-site ticket sales

  • Ticket types available on site, with door price and remaining quota.
  • + / − quantity → Total → Cash (enter the amount received to calculate change) or Card (paid on your own POS terminal; the app only records it once successful).
  • Admit now (on by default): tickets are checked in immediately. Off: the app shows QR codes for the buyer to photograph (e.g. buying for a friend).
  • Buyer details (optional): name and email — with an email, PDF tickets are sent too.
  • Works offline — the device generates the QR codes and the server creates the same tickets on sync.
  • My shift: cash / card totals sold on this device; online also the server totals (yours and the whole event).

20.7 Admin: check-in log

Event → Check-in log: every scan (success, already used, invalid), who and when; check-ins can be undone from here.

20.8 Embedding in a mobile app (developers)

The door app can be embedded in a WebView (?api=…, ?scanner=native), with a JavaScript bridge (window.TM.scan(code), setOffline, sync, state), events posted to the native app and a REST API with Bearer tokens. See docs/BELEPTETO_API.md.

20.9 TicketMagic Gate app and data protection (v42)

  • The TicketMagic Gate app (iPhone, iPad, Android) ships the door app inside the app: it starts without internet and switches between online and offline on its own.
  • The downloaded ticket list is protected: only fingerprints of the QR codes are stored, guest names are shortened, and there are no order numbers, emails or phone numbers. All local data is encrypted with a key that cannot be read out.
  • Local data is wiped on logout, when the organizer revokes the device, and 48 hours after the event.
  • Appearance: same fonts and colours as the rest of TicketMagic; follows the phone's light / dark setting, and can be switched manually at the bottom of the event list.
  • Results show as a full-screen green / yellow / red flash, with vibration and sound.

20.9.1 Who can use what in the door app

  • On the Team page, tick per door staff member what they can use: Check-in, Bar, List, Box office — for door-role members in the table, for door permissions in their row (and when granting).
  • Default: Check-in + List. Box office (cash) and Bar need an explicit permission. Owners and managers see everything.
  • Staff only see the allowed tabs; the server also rejects forbidden actions during offline sync.

20.10 Live gates and shift report (Event → Tools)

  • Live gates: people inside, entry rate per minute, last 15 / 60 minutes, per-minute chart, and per gate (device): online state, battery, operations waiting to sync, recent rejections. Refreshes every 10 seconds.
  • Shift report per gate staff: first / last scan, admitted (of which offline), already inside, invalid, rejection rate, people per hour, undone check-ins. Downloadable as CSV.
  • Door devices (Admin): signed-in phones; revoke a lost phone here — the app wipes its data at the next connection.

20.11 Resale: TicketSwap SecureSwap

  • Tickets are resold only on TicketSwap (TicketMagic has no own resale or gifting). The buyer uploads the ticket on TicketSwap; when sold, the old code becomes invalid and the new owner gets a new ticket in their name. TicketMagic never handles the money.
  • Applies to every event. Tickets obtained for 0 HUF (free complimentary tickets, 100% coupons) cannot be resold; paid tickets can, whatever their type.
  • Delay: Event → Ticket settings → "Resale on TicketSwap allowed from"; can be overridden per ticket type (Sales step). Empty: resale allowed right away. Buyers see the date on their order page and in the confirmation email.
  • Swaps stop 1 hour after the event starts.
  • While a ticket is listed on TicketSwap, its QR code is hidden (order page, PDF, Wallet), it cannot be refunded and the gate rejects it. Withdrawing the listing restores everything; locks are released automatically after the event.
  • The gate shows "This ticket was resold on TicketSwap" for an old code.
  • Operator: SuperAdmin → TicketSwap (connection details, token, test kit, manual unlock, log).

21. Box-office report (Event → Box-office report)

  • Cash in the till (sales + cash surcharges), Card (terminal), Total, number of on-site tickets and sales.
  • Per door staff member (first–last sale) — click a name to filter (shift settlement).
  • Per ticket type by payment method, late-arrival surcharges, discounted guest-list entries (informational).
  • Offline sync conflicts (double entries, rejected operations).
  • Sales list linking to the orders.
  • Printable version with signature lines (handed over / received) and CSV export.
  • Platform fees of on-site sales appear on the monthly payable platform invoice. Receipts/invoices for on-site sales come from your on-site cash register.

22. Security

Two-factor login (2FA)

  • Shield icon (bottom left) → scan the QR code with an authenticator app (Google Authenticator, Microsoft Authenticator, 1Password, Authy…) → enter the 6-digit code → 8 backup codes are shown: save / print them (single use, shown only once).
  • At login the code (or a backup code) is asked after the password. The door app asks for it too.
  • New backup codes can be generated with a current code. Disabling requires password + code (not possible if your organization requires 2FA).
  • Lost phone: the SuperAdmin can reset 2FA in Users ("2FA ✕"); then set it up again.

Password

Forgotten password: "Forgot your password?" on the login page → emailed link (valid for 1 hour). Your own details and password: Profile.

Activity log (Admin → Activity log)

All important actions are logged: who, when, what (cancellations, refunds, settings, check-ins, transfers, box-office sales, 2FA…).

Built-in protection

Login attempt limits, disabled team members are logged out within 5 minutes, session protection, verified Stripe webhooks. Every form and state-changing request is protected by a CSRF token (no other site can act on your behalf), public forms (checkout, coupon check, waiting list, sign-up, follow, feedback) are rate-limited, uploaded images are verified by content, and security headers protect pages (e.g. against framing). Role permissions are enforced on the server for every request.

23. Reports and finances

  • Reports: sales target (revenue and tickets) and pace (where you stand vs. the target, projected outcome — email alert if behind), capacity per ticket type, revenue and tickets per day, "When do people buy?" by hour, event comparison, CSV export.
  • Finances: daily / weekly / monthly / yearly breakdown, per event (gross, refunds, platform fee, Stripe fee, net), recent transactions, and your TicketMagic invoices (platform fee).
  • Revenue by channel and campaign (Reports): where buyers came from — direct, Google, Facebook/Instagram, TikTok, newsletter, promoter, box office, import — with orders, tickets and revenue; the campaign table groups by UTM parameters (utm_source, utm_medium, utm_campaign). Tip: add UTM parameters to your ad links, e.g. ?utm_source=facebook&utm_medium=paid&utm_campaign=summer.
  • My payouts: Stripe balance (available / pending), automatic payouts to your bank account and a per-event settlement (gross, refunds, platform fee, card fee, your share).
  • Platform fee invoices (monthly, for the closed month): settled by deduction (card orders — already deducted by Stripe) and payable (bank transfer and on-site sales — 8-day payment term).

24. Guests (CRM) and campaigns

  • Guests: all buyers in one list: orders, spend, last purchase, attendance, tags, newsletter consent. Segment filters: tag, event, min. orders, min. spend, "bought in the last … days". Export.
  • Campaigns: email to the selected segment. Formatted text (as in email templates), insert image (upload), live preview, test email. Only newsletter subscribers (not unsubscribed) receive it; every email contains an unsubscribe link. Sending runs in the background, a few emails per minute (hosting-friendly).

25. The buyer side — what buyers see

  • Home and event page: cover, date, venue, map, description, performers, tickets (price, handling fee, stock hints, sale start, chained rounds), season passes, extras, table map, seating map, resale tickets, "Who's going?", add to calendar (Apple/Outlook .ics, Google Calendar), share (native share sheet on phones, Facebook, WhatsApp). HU/EN language switch.
  • Cart and checkout: name, email, phone (if requested), billing address (country + address), tax number for company purchases, year of birth (if needed), holder names for named tickets, custom questions, coupon, rules acceptance, newsletter and "Who's going?" opt-in, payment method (card / transfer).
  • Payment: secure card payment (Stripe, in the organizer's colours; Apple Pay / Google Pay where available).
  • Confirmation and order page: tickets (with status and seat), PDF download, Apple Wallet (per ticket), Google Wallet, calendar, share, resend confirmation, buy extras later, transfer, resale, list of transferred tickets.
  • My account (optional registration): past orders, tickets, name change (if allowed), details, password.
  • Waiting room: during high demand, queued visitors see their position and are admitted automatically.
  • Follow the organizer, cookie banner, group offers: buyers can follow an organizer (chapter 34), choose cookie consent (chapter 36), and see group offers like "5 for the price of 4" next to the tickets.

26. Automatic background jobs

JobFrequency
Expire pending card orders (release stock, seats, tables, resale holds; rescue late-paid orders)every 5 min
Pre-registration notifications, abandoned cart remindersevery 5 min
Waiting list notifications, Stripe fee backfill, sales target alerts, invoice retriesevery 15 min
Campaign emails, scheduled buyer emails, follower notifications about new events, Meta Conversions API events, waiting room cleanupevery minute
Pending SimplePay / Barion / Viva Payments orders checked with the provider (after 45 minutes), then expiredevery 5 minutes
Stripe account status checkevery 6 hours
Old data cleanupdaily
One cron entry is needed on the server: * * * * * php /…/cron/scheduler.php (see INSTALL.md).

28. FAQ and troubleshooting

I can't publish the event. — The save message lists what is missing: payment method, invoicing provider, email confirmation. The dashboard to-do list shows it too.

Stripe asks for information. — Settings → Stripe → "Details and fix". While Stripe restricts the account, card payments or payouts may be paused.

An invoice wasn't issued. — Orders → "Missing invoice": the error shows the reason (e.g. wrong API key). After fixing, "Retry invoice", or wait for the automatic retry every 15 minutes.

A buyer didn't get their tickets. — Order → "Resend confirmation", or the buyer can resend from their order page. Check the spam folder.

No internet at the gate. — Nothing to do: the app switches to offline mode automatically, provided it downloaded the event data once while online. Recommended: open the event on every device while online before doors open.

Two gates admitted the same ticket offline. — It shows up as a conflict after sync (app → Connection sheet, admin → Box-office report); details in the check-in log.

Lost phone with 2FA. — Log in with a backup code, or ask the SuperAdmin to reset 2FA.

A wrong ticket was scanned. — Admin → Order → ticket → "Undo check-in", or from the check-in log.

How can buyers resell without a black market? — Enable official resale: max +10% markup, a new QR code for the buyer, the old code becomes invalid.

29. Installation and updates (operators)

New installation on cPanel hosting

  1. A domain or subdomain for TicketMagic (it must run in the domain root, not a subfolder), with SSL enabled (AutoSSL).
  2. cPanel → Select PHP Version: PHP 8.1+ (8.3 recommended), extensions: pdo_mysql, mbstring, openssl, curl, json, zip, gd.
  3. cPanel → MySQL Databases: a new database and user, with the user added to the database with all privileges. No SQL import is needed.
  4. Upload and extract the ZIP into the domain's root folder (File Manager → Upload → Extract). The hidden .htaccess file must be uploaded too.
  5. Open the domain: the installation wizard starts automatically (/install/):
    1. checks system requirements (red = must be fixed),
    2. database details — with a "Test connection" button — and the site URL,
    3. SMTP email and Stripe platform keys (optional; can be added later in config.php),
    4. SuperAdmin account (password at least 10 characters).
  6. At the end the wizard shows the cron command (cPanel → Cron Jobs → "Once Per Minute") and the Stripe webhook URL (https://domain/webhook/stripe), then locks itself.
  7. Log in: SuperAdmin → Settings, Pages (terms, privacy, imprint), two-factor login.

Updates: upload the new files (keep config.php and the storage/ folder). The database is updated automatically on the first page load; no SQL needed. Before migrating, the system makes an automatic database backup in storage/backups/ (the last 5 are kept; the folder is not web-accessible) that can be restored with phpMyAdmin if needed.

Settings in config.php: Stripe keys and webhook secrets, SMTP, sender name/email, timezone, campaign emails per minute (campaign_per_minute).

30. Multiple organizations (companies) in one account

One user account can belong to several organizations — e.g. an agency, an organizer running several companies, or door staff working for several promoters. The role can differ per organization (owner in one, door staff in another).

  • Nothing can be created without an organization: if your account has no organization yet (or, as SuperAdmin, you have not picked one), the admin takes you to the Choose an organization page: your organizations appear as ticket-shaped cards (with your role and number of events), and you can create the first one there. Until an organization is selected, no event, ticket or anything else can be created.
  • Switching: click the organization name in the top-left corner (or the organization button at the top right) to open the organization switcher; you see and manage the selected organization's data. The last used one is remembered. If you open an event or order of another of your organizations from a link (e.g. an email), it switches automatically.
  • Create a new organization: type the name in the New organization (company, organizer) field at the bottom of the switcher → Create. You become its owner; then fill in Settings (company details, Stripe, invoicing) — every organization has its own Stripe account, invoicing, branding, events and team.
  • Add an existing user: Team → New member → enter their email. If they already have a TicketMagic account, it is added to your organization with the chosen role (their password does not change) and the organization appears in their switcher.
  • SuperAdmin: on the Users page any user can be assigned to any organization (even as owner), roles changed or memberships removed (an organization's only owner cannot be removed). The SuperAdmin can switch to any organization in the switcher.
  • Door app: door staff belonging to several organizations see, with one login, the events of every organization where they are owner, manager or door staff (the organization name is shown in the event list).
  • API keys always belong to one organization — after switching you manage that organization's keys.

31. API and webhooks (Admin → API & webhooks)

API key pairs (v40): New key pair gives a key ID (tmk_…) and a secret (tms_…, shown only once, with a Copy button). Access level: full, read only, check-in only (no buyer contact data) or custom permissions; optional allowed IP addresses (CIDR too) and expiry date (email warning 7 days before). The Log page shows an API activity summary per key (30 days, writes, errors, recent failed requests). Developer docs: /fejlesztoknek (?lang=en).

The organizer API lets your own systems (website, CRM, accounting, gate system, mobile app, Zapier/Make) access your events, ticket types, orders, tickets, customers, coupons and guest lists. Full reference with examples: /api/dokumentacio?lang=en.

API keys (owner / manager only)

  • New key: name + scope — read only (queries) or read + write (create/update events and ticket types, issue tickets, check-in, coupons, guest lists).
  • The key (tm_live_…) is shown only once — copy it and store it securely (server-side). The list shows when and from where it was last used and how many requests it made.
  • Revoke: invalid immediately. At most 20 active keys per organization.
  • Limit: 120 requests / minute / key.

What the API (v1) can do

  • Events: list, details, create (as draft), update, publish, statistics.
  • Ticket types: list, create, update (price, quota, sales window, activation…).
  • Orders: list with filters (event, status, email, source, updated_since for syncing), details with tickets, resend confirmation.
  • Tickets: list, look up by QR code, check-in and undo (for your own gate system or wristband reader), issue tickets (complimentary, partner, external sales).
  • Customers: aggregated by email (orders, spend, newsletter consent).
  • Coupons: list, create, deactivate. Guest lists: lists, guests, add a guest.

Webhooks — real-time notifications to your system

  • Add webhook: receiving URL (public http/https) + events: order.paid, order.refunded, order.cancelled, ticket.checked_in, ticket.transferred, guest.checked_in.
  • On creation you get a signing secret (whsec_…) to verify that a message really comes from us (X-TicketMagic-Signature header — code samples in the docs).
  • Delivered in the background (every minute); on failure retried after 1 min, 5 min, 30 min, 2 h, 6 h, 12 h. After 50 consecutive failures the endpoint is disabled and you are emailed.
  • Test sends a ping immediately. Disable / Enable, Delete. The 30 most recent deliveries are listed at the bottom (delivered / pending / failed, HTTP code).

32. Fees and VAT

TicketMagic platform fee (per ticket, based on the price the buyer pays):

ChannelFee
Online and seated tickets, up to HUF 2,0001.9% (no fixed part)
Online and seated tickets, above HUF 2,0001.9% + HUF 69
On-site box office (door app)0.9% + HUF 29
Free tickets, guest list, complimentary, imported ticketsHUF 0
  • The platform fee is VAT-exempt (subjective exemption) and is invoiced that way monthly.
  • For card payments Stripe deducts the fee automatically at payment; Stripe's own card fee is separate.
  • On refunds the platform fee of the refunded tickets is returned too.
  • Who pays it? Your choice: pass it to the buyer with the ticket type's handling fee (the "Suggested fee" button calculates it), build it into the price (Build fee into ticket price), or absorb it.
  • Fee calculator: on /szervezoknek you can see what you keep for any ticket price.

VAT

  • You declare the ticket VAT rate (0 / 5 / 18 / 27%) per ticket type; the handling fee always uses the same rate.
  • At 0% the exemption code chosen in Settings (AAM / TAM) goes on the invoice.
  • Invoice lines: tickets, handling fee, free (HUF 0) tickets, extras, and coupon discounts split proportionally by VAT rate.

33. Scheduled emails to buyers and feedback (Event → Emails)

Send your own emails to the event's buyers on your own schedule — they go out automatically.

  • Templates: Reminder (by default 1 day before the start: time, venue, directions, ticket link), Feedback survey (after the event, to checked-in guests), Custom email. All fully editable.
  • Variables: in the body and subject {{nev}} (name), {{esemeny}} (event), {{datum}} (date), {{helyszin}} (venue), {{cim}} (address), {{terkep_link}} (map), {{jegyek_link}} (tickets), {{pdf_link}}, {{naptar_link}} (calendar), {{rendelesszam}} (order no.), {{jegyek_szama}} (ticket count), {{szervezo}} (organizer), {{kerdoiv_link}} (survey), {{esemeny_link}} (event page) — replaced with each recipient's data. Insert them with one click in the editor.
  • Formatting: bold, - list, text, images, and a button on its own line: [[Label|{{jegyek_link}}]].
  • Timing: X days/hours/minutes before the start, X after the end, or at an exact time. A before-start reminder is never sent after the event started.
  • Recipients: all buyers, only checked-in, or only not checked-in; optionally limited to ticket types. Paid orders only; not guest-list or imported orders. Each address gets a given email only once, even with several orders.
  • Preview and test: live preview with the latest buyer's data; "Send test to me".
  • Status: Scheduled → Sending → Sent (with count). Scheduled emails can be paused, edited and deleted; sent ones are read-only.
  • Feedback: the survey ({{kerdoiv_link}}) is a simple page with 1–5 stars and a comment, one per order (resubmitting overwrites). Results on the same admin page: average, distribution, comments.

34. Follow the organizer (Admin → Followers)

  • Buyer pages (organizer page, event page, order confirmation) show a "Follow <organizer>" box. The visitor enters an email and confirms via email (double opt-in). From their own order page, with the order's email, following is instant.
  • When you publish a new public event, followers get an automatic email within minutes (cover image, date, venue, "Details and tickets" button). Not for hidden events, drafts or past events; once per event.
  • One-click unsubscribe in every email.
  • Admin → Followers: active, pending and unsubscribed counts, last 30 days, notifications sent, follower list and CSV export.

35. External sales import (Event → Import)

If you also sold tickets elsewhere (another ticketing system, paper tickets, a partner), upload the codes as CSV: the door app scans and validates them like TicketMagic tickets — online and offline.

  • Format: semicolon or comma separated, first row is the header. The kod (code) column is required (barcode/QR content); optional: nev (name), email, jegytipus (ticket type name). Example:
  kod;nev;email;jegytipus
  AB12345;Anna Kiss;anna@example.com;Normál
  • Choose the default ticket type, a label (e.g. the partner's name) and whether to count against the ticket type's stock.
  • Existing codes are skipped, so uploading the same file twice creates no duplicates. An import can be removed as a whole.
  • Imported tickets carry no platform fee, get no invoice and no emails; they appear as a separate "Import" channel in reports.
  • Whose codes? An organizer's codes (Settings → Tracking codes) run on that organizer's page and events; TicketMagic's own codes (set by the SuperAdmin) only on general pages. Everyone measures their own ads and data never mixes.
  • Tracked events: page view, event view (ViewContent), checkout start (InitiateCheckout / begin_checkout), purchase (Purchase with value and order ID) — for Meta, Google (GA4 and Ads conversion) and TikTok.
  • Cookie consent: on the first visit a cookie banner appears ("Accept" / "Necessary only"). Tracking codes load only after consent. The choice can be changed anytime via "Cookie settings" in the footer.
  • Meta Conversions API: with a token, purchases are also sent server-side to Meta (with the same event ID as the browser pixel, so they are deduplicated). Only for orders where the buyer consented; email and phone are hashed (SHA-256). For testing, enter the test event code from Meta Events Manager.
  • UTM and source: the system remembers where the buyer came from (UTM parameters, Facebook/Google/TikTok click IDs, referrer) and stores it with the order — this feeds the channel and campaign report (chapter 23).

37. Search- and AI-friendly pages, sharing

  • Sharing (Facebook, Messenger, WhatsApp, LinkedIn): the preview image is the event cover (1.91:1, ideally 1200×628 or larger), the title is the event name and date, the description is the event description.
  • Google: every event page carries structured data (schema.org Event: dates, venue, prices, availability, performers, organizer) so Google can show rich results and list it in event search. Organizer pages carry Organization, the home page an event list. Automatic sitemap: /sitemap.xml.
  • AI search (ChatGPT, Gemini, Claude, Perplexity etc.): robots.txt explicitly allows them and /llms.txt summarizes the site structure and upcoming events.
  • Hidden (link-only) events are kept out of search engines and the sitemap.
  • Organizer landing page: /szervezoknek — introduction, fees, fee calculator, steps, FAQ, sign-up.

38. Time-slot tickets (Event → Time slots)

For exhibitions, experiences, guided tours, spas: add time slots to a ticket type and buyers pick a slot with their ticket.

  • Create a series: ticket type, first slot start, last slot end, start interval (minutes), slot length (minutes), capacity per slot, label. E.g. 10:00–18:00, hourly, 1 hour, 30 people → 8 slots. Single slots can be added too.
  • Edit: start, end, capacity, label, "Buyable" on/off. Capacity can't go below tickets sold. Deleting a slot with tickets only disables it (existing tickets stay valid). Notify buyers of time changes with Emails to buyers.
  • Buying: a slot picker next to the ticket on the event page (full slots disabled, "N left" when low). One slot per ticket type per order. Capacity is enforced even under concurrent purchases; expired/cancelled orders free their places automatically. The ticket type's overall capacity still applies.
  • On the ticket: the slot appears on the PDF, Apple / Google Wallet, confirmation email and order page.
  • Check-in: a slot ticket is admitted only during its slot, with a configurable grace period before / after (default 15 minutes before, 0 after) — online and offline.
  • Slots can be chosen when issuing complimentary tickets. Seated ticket types can't have slots. Box-office tickets have no slot (immediate entry).

39. Co-organizers and switching the invoicing company (Event → Co-organizers)

If several companies organize an event together, set from which moment which company is the active invoicing company.

  • How it works: the event's own organization is active from the start; each co-organizer from its "active from" time. The company active at the moment of purchase receives the money (its Stripe / SimplePay / Barion / Viva Payments account or bank account), issues the invoice, its platform fee applies, and buyers choose from its payment methods. The order stores its company at purchase, so later switches never affect earlier sales. Box-office sales go to the company active at the time of sale.
  • Invite: enter the other organization's TicketMagic ID (from its organizer page URL /szervezo/<id>) or tax number, and the switch time. Its owner gets an email and accepts on Admin → As co-organizer (only with payment and invoicing set up). Until accepted, invoicing does not switch.
  • Change the time: anytime; existing orders are unaffected. A company that already has orders can't be removed.
  • Reports: each company's Overview, Finances, Payouts, Reports and platform invoices show only its own sales. The event total (all companies) with a per-company breakdown is visible on the Co-organizers page and on the co-organizer's event page.
  • Co-organizer view (Admin → As co-organizer): accept / decline invitations, own sales and the event total, list of orders invoiced by them (openable, refundable).
  • The event itself (ticket types, settings) is still managed by the event's own organization.

40. Payment providers: Stripe, SimplePay, Barion, Viva Payments (Settings → Payment methods)

Every organizer connects their own merchant account — buyers' money goes straight to them. At checkout buyers choose from the enabled methods (Stripe, SimplePay, Barion, Viva Payments, bank transfer). For SimplePay / Barion / Viva Payments orders the platform fee — like for bank transfer — appears on the monthly payable platform invoice.

  • Secret keys are stored encrypted; leave a field empty to keep the old value, enter "-" to delete it.
  • Test (sandbox) mode: use it while testing — the provider's test system is used, no real charges. Turn it off before going live.
  • Flow: the buyer is sent to the provider's secure payment page, then back to their order page. Payment and amount are always verified directly with the provider. If the buyer abandons, the "Pay" button on the order page restarts it; after 45 minutes the system checks once more with the provider and expires unpaid orders.
  • Refunds: from the order page as with card payments (whole order or per ticket) — started at the provider.
  • All provider messages are logged for troubleshooting.

SimplePay guide

  1. Sign a contract with OTP Mobil (simplepay.hu → for web shops). Shop URL: https://ticketmagic.hu/szervezo/<your-id>.
  2. In the SimplePay merchant admin find your HUF account: MERCHANT ID and SECRET KEY.
  3. Set the IPN URL: https://ticketmagic.hu/webhook/simplepay.
  4. TicketMagic → Settings → Payment methods → SimplePay: Enabled + Test mode, enter both values, Save.
  5. Test with the SimplePay sandbox test card; after SimplePay's go-live check, turn Test mode off.
  6. When SimplePay is chosen, checkout shows the mandatory data transfer declaration (with your company name and address from Settings), and after returning the buyer sees the SimplePay transaction ID — both required by SimplePay.

Barion guide

  1. Register a business Barion account (barion.com) and create a shop; after approval you get its POSKey.
  2. Payee: your Barion account email (money arrives there).
  3. Barion Pixel is mandatory: enter your pixel ID (BP-…); TicketMagic embeds it (basic mode) on your event pages and checkout.
  4. TicketMagic → Settings → Payment methods → Barion: Enabled + Test mode, POSKey, email, Pixel ID, Save. Testing requires a separate test account and POSKey on test.barion.com.
  5. Redirect and callback URLs are passed automatically with every payment — nothing to configure in Barion.

Viva Payments guide

  1. Open a Viva Payments business account in HUF.
  2. Viva Payments → Settings → API Access: Merchant ID and API Key, plus Client ID and Client Secret under Smart Checkout Credentials.
  3. Sales → Online payments → Websites/Apps: create a payment source: Success URL https://ticketmagic.hu/fizetes/visszahivas/viva, Failure URL https://ticketmagic.hu/fizetes/visszahivas/viva-hiba. Its 4-digit code is the Source Code.
  4. TicketMagic → Settings → Payment methods → Viva Payments: Enabled + Test mode, Client ID, Client Secret, Source Code, Merchant ID, API Key, Save.
  5. Settings → API Access → Webhooks: new webhook with URL https://ticketmagic.hu/webhook/viva/<your organization number> (exact URL shown in Settings), event Transaction Payment Created. Viva Payments verifies the URL on save — TicketMagic answers automatically.
  6. Testing requires the Viva Payments demo account (demo.vivapayments.com); turn Test mode off before going live.

41. NTAK data collection (Settings → NTAK, Event → NTAK data)

If your events fall under Hungarian NTAK reporting (ticketed attraction / event above the statutory revenue threshold), turn on data collection. Automatic submission needs an MTÜ certificate — coming later; until then TicketMagic collects the data and makes it downloadable.

  • Settings → NTAK data collection: switch on and enter your NTAK registration number. NTAK fields then appear on events and ticket types.
  • Event → NTAK data fields: program ID (must be the same across all sellers of the same event; empty = automatic), program type, main and sub category (per the official NTAK dictionary), frequency.
  • Ticket type: NTAK ticket category (e.g. full price, reduced, student, family) and how many people a ticket covers.
  • Collected: program (name, venue, start, end, categories), transactions (time, payment method and amount, channel — online / on-site, buyer postal code or country, non-ticket items), tickets sold (ID, name, category, gross price, VAT rate, discount, persons, validity — the slot for slot tickets), cancellations, entries. Free and imported tickets are excluded.
  • Event → NTAK data: missing-data checklist, summary and download as JSON (NTAK-style structure) or CSV (one row per ticket).

42. Promoter and sales portals (/promoter, /sales)

Two separate, simple portals for people who don't manage the organization but sell or promote tickets. They see nothing else.

  • Granting access (Team → Promoters and sales staff): email, role (Promoter or Sales), event (all current events of the organizer or one specific event), permissions (sell paid tickets, issue complimentary tickets — with a per-event quota), and the commission for promoters. Can be given to anyone: an organizer account, a buyer-only account (they log in with the same password), or a new email (we send an invitation to set a password). Revoke in one click. Only owners / managers can grant.
  • SuperAdmin (Users): can assign any email to any company — with an organization role (can manage the company) or a promoter / sales permission, choosing the organizer and event. Search also lists buyer-only accounts.
  • /promoter: promoter code and link per event (with copy button), clicks, tickets sold, pending / approved / paid commission, their team (if team lead), itemized commissions and guest lists. If permitted, they can also sell or issue complimentary tickets — counted towards their commission.
  • Door permission: with the "Door (ticket check)" permission anyone (organizer or buyer account) can check people in at /belepteto — for all current events of the organizer or a single event. After login they only see the events they may scan; QR reading with a laptop webcam or phone camera, offline capable.
  • Mobile app: the mobile-app/ folder is a ready Capacitor shell (Android / iOS) that loads /belepteto full-screen; build and release steps in its README. It also works without installing: /belepteto is a PWA ("Add to home screen").
  • /sales: the permitted events (for an organizer-wide permission, all current events of the organizer). Pick an event: ticket types and quantity (with time slot if any), buyer / ticket holder (name, email, phone, country, billing address, company invoice with tax number, birth year if required, per-ticket holder names), the event's custom questions, then the payment method:
    • Cash / Card (terminal): paid immediately, tickets valid; for on-site sales buyer details are optional (tickets can be printed from the order page). Also suitable as a box office.
    • Bank transfer: the buyer receives the transfer details; tickets activate when the payment arrives.
    • Payment link (online): the buyer gets a payment link by email; tickets are held for the chosen time (2 hours to 7 days).
    • Complimentary (0 Ft): no invoice or platform fee, sent immediately, within the quota.
  • My sales: own sales list, cash summary by payment method, tickets per order, and resending the tickets / payment link (even to a different email).
  • One account for everything: organizers can log in on the buyer site with the same email and password (the buyer account is created automatically) and buy tickets like anyone else. Conversely, buyer accounts can receive promoter / sales access or company management.

v34 — Refund transparency, check-in, security

Refund log

Orders → Refunds lists every refund: amount, payment method, status (Accepted by provider, Awaiting manual transfer, Transferred back, Failed), provider reference, who started it and why, and when the buyer was notified. The same appears on the order page.

  • Online payments (Stripe, SimplePay, Barion, Viva Payments): money goes back automatically (5–10 business days for the buyer).
  • Bank transfer, cash, card terminal: you transfer the money, then click ✓ Transferred back — the buyer gets an email.
  • Resend notice sends the email again.

What the buyer sees

An email listing the cancelled tickets, the amount and how it is refunded (for cancelled events with your message). On the order page tickets show "Void — refunded" and the refund status. Templates are editable under Email templates.

Payments that arrive after an order expired (or a failed resale purchase) are refunded automatically.

Entries per ticket

Set on the ticket type how many times a ticket can be scanned in (default 1). At least 2 minutes must pass between entries. The door app shows "2/3 entry".

Undoing check-ins

Only owners and managers can undo a check-in, with a mandatory reason (logged). The door app has no undo.

Security

  • Only owners / managers can confirm a bank transfer.
  • An existing organizer email cannot be registered again; guest accounts can be claimed only after email verification.
  • Accounts lock for 15 minutes after too many wrong passwords.
  • Limited coupons cannot be overused with parallel purchases.

v35 — Existing Stripe account, tax number / company registration number

Already have a Stripe account? Use "I already have a Stripe account — connect" in Settings: log in to Stripe, approve, and you don't need a new account or a new identity check. When a new account is opened, Stripe always verifies the representative's identity (anti-money-laundering rules); this can be postponed with "Skip for now" but is needed for payouts.

Tax number and company registration number: if entered the wrong way round, the system detects and fixes it, and Stripe receives the correct values.

v36 — Simplified Stripe account and delayed payouts

Connecting: "Connect Stripe account" takes you to a short, simplified Stripe page (company details, bank account, identity check). After that you hardly need Stripe: sales, refunds and payouts are visible in TicketMagic. Money goes to your own Stripe account; TicketMagic only receives the platform fee.

Open my Stripe account: in Settings → Stripe, view payouts and change your bank account.

Payouts: by default Stripe pays out regularly. If the platform enabled delayed payouts, card revenue is paid out the set number of days after the event ends; until then it stays in your own Stripe account. Settings always shows which rule applies to you.

Already have your own Stripe account? Use "I already have a Stripe account".