📖 Complete Guide

How QRAVenta works

A quick, searchable walkthrough for organisers — from creating an event to generating batches of QR tickets and scanning attendees at the door. Attendees don't buy anything here — you create the tickets, print or share them, and admit guests yourself.

01 Overview

QRAVenta is a ticket-creation platform for event organisers. It lets you set up events, define ticket tiers, design the ticket layout, generate batches of QR tickets, hand them out however you like (print, email, WhatsApp, physical delivery), and scan them at the door.

There is no online ticket-selling here — attendees don't buy anything on this site. You generate the tickets you need, download or print them, and distribute them yourself. The platform charges you a small fee for each batch of tickets you generate (set by the system administrator), which is paid through PesaPal.

What you can do

  • Create unlimited events with rich descriptions, images, and multiple sessions.
  • Define ticket types (Regular, VIP, Early Bird) — these are tiers you use to organise your own tickets, not products sold online.
  • Design the physical look of your tickets — template, size, orientation, custom background.
  • Generate batches of QR tickets, pay per batch, and download them.
  • Print as PDF, or download individual QR PNGs + a CSV of ticket numbers.
  • Assign scanner staff to specific events and control who scans what.
  • Watch check-ins in real time from the dashboard.
💡
Tip: Everything in this guide is searchable. Type into the box at the top to filter the sections instantly.

02 Quick start

In a hurry? Here's the whole flow in nine steps. Each one is explained in detail further down.

# Step Where
1Create your organiser accountadmin/register.php
2Create an eventadmin/event.php
3Add ticket types (tiers)admin/ticket_types.php
4Design the ticket lookadmin/event.php → Ticket Designer
5Add scanner staffadmin/event.php → Scanner Staff
6Generate a batch of tickets (this is where you pay)admin/tickets.php
7Download or print the batchadmin/all_tickets.php
8Scan at the dooradmin/scanner.php
9Track attendanceadmin/checked_in.php
⚡
Fastest path: Create event → add one ticket type → generate a batch → download the PDF → print → open the scanner → scan at the door.

03 Create your account

To create events and generate tickets you need an organiser (admin) account. Attendees never need one — they only receive the QR ticket you give them.

What to do

  1. Go to admin/register.php.
  2. Enter your name, email, and a password of at least 8 characters.
  3. Submit the form — you'll be signed in automatically.
  4. You'll land on the admin dashboard.
🔐
Already have an account? Sign in at admin/login.php. If you forget your password, ask a superadmin to reset it for you.

04 Create an event

An event is the container for your ticket types, ticket batches, and scanners. Everything starts here.

What to do

  1. From the dashboard, click Create Event (or go to admin/event.php).
  2. Fill in the Basic Information: event name, description, primary date, start/end time.
  3. Add the venue, city, organiser name, and contact details.
  4. Optionally add a Google Maps embed URL and a hero image.
  5. Add extra sessions if your event runs on multiple days.
  6. Choose visibility: draft, published, or cancelled.
  7. Tick the three organizer acceptance boxes at the bottom.
  8. Click Save Event.
⚖️
Acceptance is required. You must confirm that (a) you have the right to host the event, (b) you own or license any images you upload, and (c) you accept legal responsibility for the event. Events cannot be saved without these.

Free vs ticketed events

Tick Free entry if your event doesn't charge attendees. This hides the event's "ticket sale info" section on the public page and shows a "Free" badge. It does not affect your ability to generate QR tickets — you can still create and distribute QR tickets for a free event.

Online events

If your event is virtual, tick This event is online and fill in the platform name (Zoom, Meet, YouTube Live, etc.) and join URL. An "Online" badge will appear on the event page.

05 Add ticket types

A ticket type is a category you use to organise your own QR tickets — for example Regular, VIP, Student, or Early Bird. Each type has its own label and a quantity that caps how many tickets you can generate for it.

What to do

  1. Open your event: admin/event.php?id=….
  2. Click Ticket Types in the top-right, or go to admin/ticket_types.php?event_id=….
  3. Click Add Ticket Type.
  4. Enter a name (e.g. "VIP"), a price for your internal reference, and the maximum number of tickets.
  5. Save — the type now appears in the list.
  6. Add as many types as you need.
💰
About the price field: this is a label that appears on the ticket design and in reports. It is not something the platform charges attendees. Whatever you collect from attendees is entirely up to you.

06 Design your tickets

The Ticket Designer controls what every printed ticket looks like — the same design is used on the public ticket page, in the PDF download, and in the scanner preview.

What to do

  1. On the event page, scroll to 🎟️ Ticket Designer.
  2. Pick a template: Classic, Modern, Minimal, or Custom.
  3. Choose orientation (portrait / landscape) and size (e.g. A6, A5, or a custom width/height in mm or inches).
  4. Adjust the QR size if needed.
  5. For the Custom template, upload an image or PDF background.
  6. Click Upload — a progress bar confirms the file was saved.
  7. In the live preview, drag the QR block to place it exactly where you want.
  8. Use the snap buttons (Top Left, Center, Bottom Right…) for pixel-perfect alignment.
  9. Click Save Event to keep the design.
🖼️
Backgrounds: JPG, PNG, WEBP, or PDF (first page used). Max 5 MB. Uploaded backgrounds are composited with a soft white fade at the bottom so the QR, ticket number, and footer stay readable.
🎯
Dragging the QR: the position is saved as a percentage of the ticket size, so the QR always lands in the same relative spot regardless of print size.

07 Add scanner staff

Scanner staff are accounts that can only verify and check in tickets for the events you grant them. They can't see other events, ticket generation, or any other admin data.

Two ways to add a scanner

Option A — Invite someone new

  1. On the event page, scroll to 🔐 Scanner Staff for this Event.
  2. Fill in the email, name, and a password (at least 8 characters).
  3. Click Add / Grant Scanner Access.
  4. Share the email and password with the scanner — they sign in at admin/login.php and go straight to the scanner.

Option B — Grant an existing scanner access

  1. Enter only the scanner's email and click Add / Grant Scanner Access.
  2. The system recognises the existing account and adds this event to their list.
  3. No new password needed — they use their existing one.
🔁
Multiple events: a scanner can be granted access to any number of events. Each event appears separately in their scanner scope.
⛔
Revoking access: on the scanner row, click Revoke access to remove them from that event only. The account stays active for other events they're assigned to. The primary scanner of an event can't be revoked — deactivate them instead.

08 Generate a batch

Generating tickets creates the actual ticket rows — each with a unique ticket number, a unique token, and its own QR code. You generate tickets in batches: you choose a ticket type and a quantity, and you pay a batch fee to the platform.

💡
Why a batch fee? The platform charges for each batch you generate, according to pricing rules set by the system administrator. The fee is not paid by attendees — it's a fee you pay as the organiser for using the ticket-generation service.

What to do

  1. From your event, click Generate Tickets, or go to admin/tickets.php?event_id=….
  2. Choose a ticket type.
  3. Enter the quantity (how many tickets in this batch).
  4. Choose where the QR should open — the ticket page or the event page.
  5. Click Pay & Generate. You'll be redirected to PesaPal to pay the batch fee.
  6. After payment, you'll return to the tickets page and your batch will appear.
  7. You can now download or print the tickets.

Pricing rules

Batch pricing is set by the system administrator in tiers (packages). Each tier covers a range of quantities and has a fixed price. The tickets page shows you the current tiers so you can pick the right batch size for your budget.

📦
One batch per ticket type: if you need 100 Regular and 20 VIP tickets, that's two batches — one per type. You can pay for them separately.
💳
Payment completed but no tickets? Don't pay twice. Use the Already Paid? button on the tickets page and enter your QRAVenta payment reference (starts with TKT-). The system will verify the payment with PesaPal and generate the tickets safely. See Troubleshooting.
⚡
Superadmins generate tickets for free — the payment step is skipped. This is only used for internal testing or platform management.

09 Distribute tickets

Once a batch exists, you can print the tickets yourself, share the QR codes digitally, or export the batch as a PDF for a printing house.

Ways to share

  • Print PDF: download a print-ready PDF where each page is one ticket.
  • QR + CSV: download a ZIP with one PNG per QR plus a CSV listing ticket numbers.
  • Public ticket link: every ticket has a public URL — ticket.php?token=… — you can send via email, WhatsApp, or SMS.
  • Screenshot the preview: the ticket page renders identically to the print version.
📦
Bulk selection: in All Tickets, tick the checkboxes next to the tickets you want. Then use Selected (PDF) or QR Codes + CSV to export just those.
🎨
Automation tip (InDesign / professional printing): the CSV in the QR Codes + CSV download carries the ticket numbers, ticket URLs, and the QR file name for every ticket. You can convert it to a tab-delimited text file and use it as a data-merge source in Adobe InDesign, Illustrator, or any variable-data workflow to generate fully branded physical tickets outside the platform. The QR PNGs sit alongside the CSV in the same ZIP and are named to match.

10 Scan at the door

The scanner uses the device camera to read the QR on each ticket, verifies it with the server, and (if valid) lets you admit the guest with one tap.

What to do

  1. Sign in as a scanner (or admin) and go to admin/scanner.php.
  2. Tap 📷 Start Scanner and allow camera access when asked.
  3. Point the camera at the ticket's QR code.
  4. The result appears below the camera:
    • ✅ Valid ticket — ready to check in. Tap ✓ Check In to admit.
    • ⏳ Already checked in — shows who scanned it and when.
    • ✕ Cancelled — the ticket is void.
    • 📅 Event has already ended — the exact end date is shown.
    • ⛔ Not assigned to this event — you can't scan tickets for events you're not granted.
  5. The camera stays pinned at the top, so you can scan the next ticket immediately.
🔊
Sound & vibration: successful scans play a short chime and vibrate twice; failures buzz and vibrate three times. Tap 🔊 Sound On to mute or unmute any time. Your choice is remembered on the device.
🔒
Camera access requires HTTPS. If your site isn't served over HTTPS, the browser will refuse to open the camera.
🔦
Torch: on phones that support it, a Torch button appears next to the camera selector — handy for dim doorways.

11 Track attendance

The dashboard and the Checked-In Log show live attendance as it happens.

What you can see

  • Dashboard: total events, tickets issued, checked in, and attendance rate.
  • All Tickets: filter by event, status, or search across ticket number, event, and type.
  • Checked-In Log: every admission with the exact time and who scanned it.
  • Ticket View: click any ticket to see its full history — issued, checked in, scanner, and time.
  • Scanner page: live "My Admissions Today" and "My Total Admissions" counters.
🕒
Local time: check-in times are stored in the scanner's local timezone, so the times you see match the device clock at the door.

12 Ticket statuses

Every ticket is always in one of three states.

Status Meaning Colour
Issued The ticket exists, is valid, and hasn't been scanned yet. Blue
Checked In The ticket has been scanned and the guest admitted. Green
Cancelled The ticket has been voided — it can't be scanned. Red
🔁
Can I reuse a checked-in ticket? No. Each ticket can only be admitted once. If it's scanned again, the scanner shows "Already checked in" along with the original time and scanner name.

13 Downloads (PDF & CSV)

You can export tickets in three different formats, depending on what you need.

Export Contains Best for
All Tickets (PDF) Every ticket for the selected event, one per page. Sending the whole batch to a printing house.
Selected (PDF) Only the tickets whose checkboxes you ticked. Printing a small number, or reprinting lost tickets.
QR Codes + CSV A ZIP with one PNG per QR + a CSV of ticket numbers, types, statuses, tokens, and ticket URLs. Custom printing, mailing lists, or spreadsheet analysis.
📥
Where to find them: on All Tickets or inside the event summary modal on the dashboard. The download happens in a background frame so the page never reloads.
🎨
Using the CSV with InDesign: the CSV is a plain comma-separated file with columns for Ticket Number, Event, Ticket Type, Status, Token, Ticket URL, and QR File. Convert it to a tab-delimited text file and use it as a data-merge source in InDesign to compose fully branded tickets. The QR PNGs in the same ZIP are named to match, so linking them is trivial.

14 Pricing & paying

Using the platform costs nothing to set up — creating events, adding ticket types, designing templates, and adding scanner staff are all free. You only pay when you generate a batch of tickets.

How the batch fee works

  • The system administrator defines pricing tiers — for example, 1–50 tickets = one fee, 51–200 tickets = another, etc.
  • Each tier has a fixed price and a valid currency.
  • When you generate a batch, the tier that matches your chosen quantity determines the fee.
  • You pay the fee through PesaPal, directly to the platform.
  • After payment, the tickets are generated immediately and appear in your event.
💡
You are not selling tickets online. Attendees don't pay through this platform. The batch fee is your cost for using the ticket-generation service — whatever you collect from attendees (cash at the door, mobile money, bank transfer, etc.) is entirely separate and handled by you.

How the price tiers are shown

The Generate Tickets page for your event displays the current tiers on the left. Pick a ticket type and quantity that fits the tier you want to pay for.

🔁
Combine batches to save: larger tiers usually offer a better price per ticket. If you know roughly how many tickets you need, generating them in one larger batch is typically cheaper than several small batches.

What happens after you click Pay & Generate

  1. You're redirected to the PesaPal payment page.
  2. You complete the payment with your preferred method (card, mobile money, etc.).
  3. PesaPal redirects you back to the platform.
  4. The system verifies the payment with PesaPal and generates your tickets.
  5. The batch appears in All Tickets, ready to download or print.
⚠️
If something goes wrong during payment — for example the browser closes, the network drops, or you see an error — do not pay again. Use the Already Paid? recovery option on the tickets page with your QRAVenta reference (starts with TKT-). The system will verify the payment with PesaPal and generate the tickets safely. See Troubleshooting for details.

15 Free tier

You can try the ticket generation without creating an account — the public pages let you generate a small number of QR codes for free.

Feature Limit
Public QR codes per visitor 10
Public "Create an event" tier 1 event, up to 5 tickets
🎉
No account required. The public QR generator uses an anonymous cookie plus an IP hash so nobody can abuse the free tier. When you're ready for more, create an organiser account.

16 FAQ

Answers to the questions we get most often. All searchable above.

Are attendees supposed to buy tickets through this site?

No. This platform is for creating tickets, not selling them online. You generate the tickets you need, then distribute them yourself — print them, send the QR links by email or WhatsApp, hand them out physically, or use any other method you prefer.

What exactly am I paying for?

You pay the platform a batch fee each time you generate a batch of tickets. The fee is set by the system administrator through pricing tiers. It covers the cost of generating the ticket rows, the QR codes, and the associated storage and processing.

Do I need my own Pesapal account?

No. All payments go through the platform's own Pesapal integration. You just choose a quantity, click Pay & Generate, and pay on the Pesapal page like any other online checkout.

Can I reprint a lost ticket?

Yes. Open All Tickets, find the ticket number, click the row to preview it, then use Download PDF or the print button. The QR stays the same, so the original is still valid.

What happens if the same ticket is scanned twice?

The second scan shows Already checked in along with the original timestamp and the name of the scanner who first admitted it. No second admission is recorded.

Can a scanner scan tickets for more than one event?

Yes. From the event page, enter their email in the Scanner Staff section and click Add / Grant Scanner Access. They'll then see both events in their scanner scope.

Do I need internet to scan?

Yes. The scanner needs to verify each ticket with the server, so an active connection is required. Consider a mobile hotspot at the door.

What does "not assigned to this event" mean?

The scanner account is trying to scan a ticket for an event they haven't been granted access to. Ask an admin to grant access from the event's Scanner Staff section.

Can I cancel a ticket after it's issued?

Yes. Open All Tickets, locate the ticket, and set its status to cancelled. From then on, scanning shows "This ticket has been cancelled" and the ticket can't be admitted.

I paid but the tickets never appeared. What do I do?

Open the tickets page for the event and click Already Paid? Enter the QRAVenta payment reference (the one starting with TKT-). The system verifies the payment directly with PesaPal and generates the tickets. Do not pay again.

Does the ticket design affect the print size?

Yes — the designer's width/height (in mm or inches) determines the physical size of every page in the PDF export. The preview shows the exact aspect ratio.

Can I upload a PDF as a ticket background?

Yes. In the designer's Custom template, choose a PDF file. The first page is rasterised at high DPI and used as the background. Only the first page is used.

How are check-in times recorded?

In the scanner's local timezone — the offset is sent with every check-in. That means the times you see match what was showing on the scanner's device clock.

Can I export attendance to a spreadsheet?

The QR Codes + CSV download includes a CSV with ticket number, event, type, status, token, URL, and QR filename. Open it in Excel, Sheets, or any spreadsheet app.

Can I use the CSV with Adobe InDesign?

Yes. The CSV is a plain comma-separated file. Convert it to a tab-delimited text file and use it as a data-merge source in InDesign. The QR PNGs in the same ZIP are named to match the rows.

17 Troubleshooting

Common issues and what to do about them.

I paid but no tickets were generated

Don't pay again. On the tickets page, click Already Paid? and paste your QRAVenta reference — the one beginning with TKT- that appeared when you started the payment.

The system will:

  • Look up the local order for that reference.
  • Confirm the payment with PesaPal.
  • Verify the amount and currency.
  • Generate the tickets if the payment is complete.

If PesaPal reports the payment as pending, wait a moment and try again. If it reports failed, cancelled, or reversed, no tickets will be generated.

Where do I find my QRAVenta payment reference?

It begins with TKT- followed by 12 characters (letters and numbers). You'll see it:

  • On the PesaPal payment page just before you pay.
  • In the payment confirmation from PesaPal (if you received one).
  • In the platform's activity log for your account.

If you can't find it, contact the system administrator with the email you used and the approximate time of the payment.

The camera won't start on the scanner page

Camera access requires HTTPS. If your site uses plain HTTP, the browser blocks the camera entirely.

Also confirm you granted the permission prompt — some browsers require you to reset site permissions and try again.

The scanner can't read a QR code

Try: hold the ticket 15–20 cm from the camera, avoid glare, increase screen brightness if scanning from another screen, and use the Torch button if available. Very creased paper can confuse the reader.

An event says "no tickets generated"

You need to generate tickets for that event from admin/tickets.php. Pick the ticket type and quantity, then complete the batch payment.

I can't save my event

The three organizer acceptance boxes must be ticked. If any is unchecked, the event won't save — both the browser and the server enforce this.

The PDF download is blank or slow

Large batches (hundreds of pages) can take a few seconds. Blank pages usually mean the ticket background image failed to load — verify the file is still in uploads/tickets/.

My recovery says "This payment belongs to a different event"

The payment reference you entered was made for a different event. Open the correct event's tickets page and use Already Paid? there — the recovery option is scoped to the event you started the payment from.

My recovery says "This payment has already been completed"

Good news — the tickets from that payment have already been generated. Open All Tickets for the event, filter by the ticket type you paid for, and you'll find them.

🔍

No matches found

Try a different keyword, or browse the table of contents.

Ready to create your first event?

Sign up for an organiser account, or jump straight to the dashboard if you already have one.