Check-in & Scanning

Scanning tickets at the door

Open the scanner in a phone browser, point it at a ticket QR code, and admit the guest.

4 min readUpdated 2026-07-29

Door check-in on BrightStar runs entirely in a phone's web browser. There is no app to install, no store account to create, and nothing for a volunteer to set up beyond opening a link and allowing the camera. That matters at the door of a kirtan, or at a retreat check-in table where the last thing anyone wants is a queue building while someone hunts for a password or waits on an app store download to finish. The scanner opens on the event you picked, shows how many of your active tickets have already come through, and starts reading QR codes right away.

Decoding happens on the phone itself. Each frame the camera captures is read locally, and only the ticket reference it contains is sent on to BrightStar to be validated — nothing else about the image ever leaves the device. That local decoding step is what keeps the loop fast enough to hold a line together, since the phone is never waiting on a full image upload before it knows whether to admit someone.

What happens when you scan a code

Every scan runs through the same fixed sequence, and stops at the first thing that fails. Knowing the order helps explain why a particular scan comes back the way it does.

  1. 1The camera frame is read on the device and the ticket reference is extracted.
  2. 2The reference is sent to BrightStar together with the event you are scanning for.
  3. 3BrightStar confirms you are allowed to scan that event, and refuses the request outright if not.
  4. 4A rotating QR code is checked against the codes on issue: an unknown one is rejected, one already used is rejected, and an expired one comes back asking the attendee to refresh their ticket.
  5. 5The ticket itself is then checked: it must exist, it must belong to this event and not another, and it must still be active rather than refunded or voided.
  6. 6If the ticket already carries a check-in time, it comes back as already checked in, along with the time of the first scan.
  7. 7Only if every check passes does BrightStar stamp the check-in time onto that individual ticket, and the guest's name and ticket type come back to the screen.

Why do rejected scans show a reason instead of a blank error

A refusal at the door is never a blank error. The scanner shows the specific reason — already checked in, ticket is for a different event, ticket is refunded, QR code expired — so the person at the table knows what to say to the guest rather than having to flag down an organizer mid-line. That distinction matters most at a festival gate or a multi-session retreat, where a handful of different refusal reasons could otherwise look identical and leave a volunteer guessing what to do next.

The result card can clear itself after three seconds, after five seconds, or wait to be dismissed by hand, whichever suits the pace of your line. A quiet kirtan door might want the card to linger long enough for a volunteer to read a name aloud, while a fast festival gate wants it gone before the next guest arrives. A short buzz on a valid scan and a different pattern on a rejection means the operator can keep their eyes on the guest instead of the screen. Where the phone supports it, the torch can be switched on from inside the scanner for a dim entrance after sunset, and the front and rear cameras can be swapped mid-event.

How do you check someone in without a working code

Some guests arrive with a dead battery, a printed page that will not read, or a ticket sitting in someone else's inbox because a friend bought it for them. None of that should mean turning someone away at a retreat check-in table they traveled hours to reach. The attendee list inside the scanner is searchable, and tapping a guest's name checks them in directly, without a code ever being read.

A manual check-in is recorded as manual rather than as a scan, so afterwards you can see how many people came through the camera and how many were let in by hand — useful if you're trying to understand where a door slowed down. The checks applied are the same ones the camera path runs: a ticket for a different event or a ticket that is not active is refused here too, and a guest who is already checked in simply comes back with the time they were first admitted, rather than being let through twice.

What information does a check-in record

On the ticket Check-in time: stamped on the individual purchased ticket, which is the authoritative record Method: whether it was a camera scan or a manual check-in Device: which scanner made the check-in

Counts Source: the number of active tickets carrying a check-in time, per event Scope: refunded and voided tickets are excluded from both the total and the scanned count

Event list Shown: the events the signed-in user or paired device is allowed to scan Hidden: events that ended more than 24 hours ago

Have each door person open the scanner and grant camera access before the first guest arrives, not as the queue forms. The permission prompt is the only slow moment in the whole flow, and it only happens once per device.

Common questions

Do my volunteers need to install an app to scan tickets at my BrightStar event?

No. The BrightStar scanner runs in the phone's web browser. A volunteer opens the scanner link, allows camera access once, and can start scanning. There is no app store download, no separate account to create and nothing to configure on the device.

Read more

The QR decoding runs on the phone itself. The scanner asks the browser for the camera at an ideal 1280 by 720, defaults to the rear-facing lens, and then reads each video frame locally to pull out the ticket reference. Only that reference and the event being scanned are sent to BrightStar, so no camera image ever leaves the device. Where the hardware allows it the torch can be turned on from within the scanner for a dark doorway, and the camera can be flipped between front and rear without restarting.

What stops the same ticket being used twice at a BrightStar event?

The check-in time is stamped onto the individual ticket, and BrightStar checks for it before admitting anyone. A second scan of the same ticket comes back as already checked in, and includes the time of the original scan so the door staff can see when that person first came through.

Read more

There are two independent guards. The rotating QR code an attendee shows is marked as used the moment it is redeemed and carries an expiry, so a screenshot passed to a friend fails on its own. Underneath that, the ticket itself carries a single check-in timestamp, so even a valid fresh code for an already-admitted ticket is refused. Because every scanning device writes to that same timestamp, a ticket used at one door is already spent at every other door, with no synchronisation step in between.

Who is allowed to scan tickets for my BrightStar event?

The event's host, anyone added to the event as a collaborator whose role carries the scan permission — door staff, coordinators and co-managers — and members of the account team who have been granted that permission. A paired scanning device can also scan, but only for the specific events it was paired to. Anyone else is refused before a ticket is even looked up.

Read more

Authorisation is resolved per event rather than granted once for the whole account. Every scan request names the event it is for, and BrightStar checks that particular pairing before touching the ticket: a paired device carries an explicit list of event IDs and a request for an event outside that list is rejected, and a signed-in user is checked in three ways in turn — are they the host, are they a collaborator on this event with scan permission, are they an account team member with it. Only after one of those passes does the ticket lookup happen.

What if a guest's phone is dead or their QR code will not scan?

Use the attendee list in the BrightStar scanner. It is searchable by name, and tapping a guest checks them in directly without a code. The check-in is recorded as manual rather than as a scan, so your reporting still shows how each person was admitted.

Read more

A manual check-in is not a shortcut around the rules. BrightStar applies the same validations as the camera path: the ticket has to belong to this event, it has to still be active rather than refunded or voided, and if it already carries a check-in time the request simply returns that original time rather than admitting the person twice. What differs is only what gets written — the check-in is stamped with a manual method and the device that made it, so afterwards you can separate scanned entries from hand-admitted ones.

Are the check-in numbers on the BrightStar scanner live?

Yes. The scanned count is not a separate tally that could drift — it is the number of active tickets that currently carry a check-in time, counted directly. The total it is measured against excludes refunded and voided tickets, so it reflects the people who can actually walk in.

Read more

Because the count is derived from the tickets themselves rather than from a running counter, it cannot fall out of step with reality. Every device writing a check-in is writing to the same source that the count reads from, so several doors scanning at once converge without anyone reconciling anything afterwards. The event list door staff see is filtered the same way: events that ended more than 24 hours ago drop off, so a phone handed between events does not present a stale list.

Can I scan tickets for more than one event from the same phone?

Yes. The BrightStar scanner asks which event you are working before you start, and you can switch events from within the scanner. Every scan is checked against the event you have selected, so a ticket for another event is refused with that specific reason rather than being quietly admitted.

Read more

The event picker only offers events you are actually authorised for, and the selection is carried on every validation request rather than being a display-only setting. This matters at multi-day or multi-room gatherings, where the same door team works several listings: a ticket presented at the wrong session comes back as being for a different event, naming the mismatch, so the person on the door can redirect the guest instead of guessing.

Ready to get started?

Create your first event on EveryEvent Bangkok — it’s free.