Two people scanning codes on their phones at a table
All articles

QR codes & scanning

What happens in the moment a code is scanned

Between holding up a phone and the door turning green, a lot happens in well under a second. A plain-language look at the scan itself.

The CheckInHub team 6 min read

Photo by Marielle Ursua on Unsplash

A guest holds up their phone, a camera catches it, and the screen turns green. From the outside it is one smooth motion that takes less time than a handshake. Inside that fraction of a second, though, a surprising amount has to go right: a pattern has to be read, a code decoded, a signature verified, a guest found, and a decision made and shown. Understanding what actually happens in that moment is the difference between a door that feels instant and one that feels uncertain, because every place this sequence can stall is a place a queue can form.

Reading the pattern

It starts with optics. A QR code is just a grid of black and white squares arranged so that a camera can find and orient it from almost any angle. Those three large squares in the corners are position markers, and they are the reason you can wave a code at a scanner sideways and still get a read. The camera locks onto them, works out the orientation, and reads the grid.

This is also where most real-world scanning problems live, and they are stubbornly physical rather than technical. A code that is too small, displayed at low brightness, behind a cracked screen protector, or printed on a glossy badge that catches the light will refuse to read cleanly no matter how good the software is. Half the work of a fast scan happens before any code reaches the camera, in designing a ticket people can actually scan.

Decoding and verifying

Once the grid is read, it becomes a string of data. That string is not the guest's name or a pretty number. On a well-built pass it is a compact, signed token, a short piece of text accompanied by a cryptographic signature that proves it was issued by you and has not been altered.

This verification step is the one most people never think about and the one that matters most for security. A scanner that simply reads a code and waves the guest through is trusting that nobody has copied or forged it. A scanner that verifies a signature is checking that the pass is genuine before it does anything else, which is precisely why a signed QR pass beats a screenshot. A screenshot of someone else's code is trivially easy to share; a forged signature is not.

The scan that feels instant is doing its most important work where you cannot see it.

Finding the guest and deciding

With a verified token in hand, the system looks up the guest it belongs to. This is a lookup, not a search, because the token points directly at a record, which is why it is so fast. In the same instant it checks the things that turn a raw match into a real decision:

  1. Does this pass belong to a guest on the list for this event.
  2. Has this pass already been used, which might mean a duplicate or a passback.
  3. Is this guest allowed through this particular door, at this time.
  4. Is there anything the door crew needs to know, a VIP note or an access flag.

Only after all of that does the screen change. The whole sequence, from camera to decision, happens in well under a second on a decent connection, which is why a good door averages around an eight-second check-in once you include the human parts, the greeting and the step forward.

Showing the result clearly

The final stage is the one guests actually experience: the result on the screen. This sounds trivial and is not. A clear, unambiguous outcome is what keeps the door moving, because the person operating it should never have to interpret anything. Green and a name means go. A distinct, calm warning state means stop and talk. Anything in between, a vague message or an ambiguous colour, creates a pause, and pauses are where queues are born.

Good scanning software resolves every scan into one of a small number of plain outcomes, so the door crew reacts on instinct rather than reading. The guest sees a name and a tick and walks in. The crew member sees the same thing and is already greeting the next person. The decision was complex; the display has to be simple.

When the moment goes wrong

Knowing the sequence makes troubleshooting calm rather than frantic, because each failure has a known home. The symptom tells you which stage broke, and the stage tells you what to check.

SymptomStage that failedFirst thing to check
Code will not read at allOpticsBrightness, code size, screen damage, glare
Reads but is rejectedDataWrong event, already used, expired pass
Scan hangs or spinsConnectionWifi dropped, mobile backup not active
Reads but crew unsureDisplayOutcome state unclear, not the scan

Matching the symptom to the stage tells the door crew exactly what to check, instead of leaving them poking at the device hoping. A code that will not read is almost always physical, brightness or glare or a cracked screen, and is fixed by the guest rather than the software. A scan that hangs is rarely the code at all; it is the connection, which is why a mobile data backup belongs in every door kit.

CheckInHub runs this entire sequence, optics to outcome, in the time it takes a guest to look up and smile, and it verifies a signature on every pass rather than trusting the picture. The result is the quiet competence guests never notice: hold up the phone, the screen goes green, walk in. All the genuinely clever work stays invisible, which is exactly where it belongs.

Keep reading

More from the CheckInHub team