[{"data":1,"prerenderedAt":184},["ShallowReactive",2],{"marketing-blog-blog\u002Fhow-qr-code-tickets-actually-work":3,"marketing-blog-related-blog\u002Fhow-qr-code-tickets-actually-work":166},{"id":4,"title":5,"author":6,"body":7,"category":145,"date":146,"description":147,"draft":148,"extension":149,"image":150,"imageAlt":151,"imageCredit":152,"imageCreditUrl":153,"meta":154,"navigation":155,"path":156,"readTime":157,"seo":158,"stem":159,"tags":160,"__hash__":165},"blog\u002Fblog\u002Fhow-qr-code-tickets-actually-work.md","How QR code tickets actually work","The CheckInHub team",{"type":8,"value":9,"toc":136},"minimark",[10,14,19,22,31,37,41,44,79,87,91,94,97,101,104,116,123,127,130,133],[11,12,13],"p",{},"A QR code looks like magic to a delegate and like a black box to most organisers. It is neither. It is a printed string of text, dressed up as a pattern of squares so a camera can read it quickly. Understanding what is actually in that string, and what happens in the moment it is scanned, makes you far better at running a door, because you stop trusting the squares and start trusting the system behind them.",[15,16,18],"h2",{"id":17},"what-is-inside-the-squares","What is inside the squares",[11,20,21],{},"A QR code is just a way of encoding text in a form a camera reads reliably, even at an angle or slightly damaged. The pattern carries error correction, which is why a code with a coffee ring on it still scans. But the squares themselves are not the ticket. They are a container for a string of characters, and what matters is what that string says.",[11,23,24,25,30],{},"A naive ticket might encode something like a plain attendee number. That works, and it is also trivial to forge: change the number, regenerate the squares, and you have a different \"valid\" ticket. A well-built ticket encodes a reference plus a cryptographic signature — a stretch of characters that proves the reference was issued by you and has not been altered. Anyone can copy the squares. Nobody without your signing key can produce a new pass that validates. We go deeper on this in ",[26,27,29],"a",{"href":28},"\u002Fblog\u002Fwhy-a-signed-qr-pass-beats-a-screenshot","why a signed QR pass beats a screenshot",".",[32,33,34],"blockquote",{},[11,35,36],{},"The squares are just a container. The security lives in what the string says and whether your system can prove it issued it.",[15,38,40],{"id":39},"what-happens-in-the-moment-of-a-scan","What happens in the moment of a scan",[11,42,43],{},"The scan itself is the fast, visible part, but a sequence of checks runs behind it in a fraction of a second. Roughly, this is the order.",[45,46,47,55,61,67,73],"ol",{},[48,49,50,54],"li",{},[51,52,53],"strong",{},"Decode."," The camera reads the pattern and recovers the text string.",[48,56,57,60],{},[51,58,59],{},"Verify the signature."," The system checks that the signature matches the reference, proving the pass is genuine and unaltered.",[48,62,63,66],{},[51,64,65],{},"Look up the pass."," The reference is matched against the guest list to find who this is and what they are entitled to.",[48,68,69,72],{},[51,70,71],{},"Check the state."," Is this pass valid for today, for this entrance, and has it already been used.",[48,74,75,78],{},[51,76,77],{},"Record and respond."," The result is logged and the scanner shows a clear accept or reject so the crew knows whether to wave the person through.",[11,80,81,82,86],{},"All of that is what sits behind the eight seconds a check-in takes. The delegate sees a green tick; the system has just done five things. We pull this apart in detail in ",[26,83,85],{"href":84},"\u002Fblog\u002Fwhat-happens-in-the-moment-a-code-is-scanned","what happens in the moment a code is scanned",", but the shape above is enough to reason about most door problems.",[15,88,90],{"id":89},"why-duplicates-do-not-get-in","Why duplicates do not get in",[11,92,93],{},"The question every organiser eventually asks is what stops two people using the same screenshot. The answer is the state check in step four. The first time a pass is scanned, it is marked as used. The second time the same code appears, the system sees it has already been admitted and flags it. The crew see \"already checked in\" rather than a clean accept, and they handle it as the exception it is.",[11,95,96],{},"This is why a screenshot forwarded to a friend does not quietly let two people in. The pass is valid, but it is one pass, and the system tracks that. The signature stops forgery; the state check stops sharing. Between them, the common ways people try to game a door are closed without anyone at the desk needing to think about it.",[15,98,100],{"id":99},"phones-paper-and-dedicated-scanners","Phones, paper and dedicated scanners",[11,102,103],{},"A QR ticket does not care how it reaches the scanner. The same signed string works whether it arrives as:",[105,106,107,110,113],"ul",{},[48,108,109],{},"a code on a delegate's phone screen,",[48,111,112],{},"a code printed on a paper ticket or at the bottom of a confirmation email,",[48,114,115],{},"a code on a badge or lanyard the delegate is wearing.",[11,117,118,119,30],{},"And the scanner can be almost anything: a phone camera, a tablet, or a dedicated wedge scanner that reads the code and behaves like a very fast keyboard. The flexibility matters on the day, because it means you are not locked into one kind of hardware or one kind of delegate. Someone whose phone has died can be admitted from the printed code in their inbox. We cover the hardware side in ",[26,120,122],{"href":121},"\u002Fblog\u002Freading-any-code-phones-tablets-and-wedge-scanners","reading any code: phones, tablets and wedge scanners",[15,124,126],{"id":125},"what-this-means-for-running-a-door","What this means for running a door",[11,128,129],{},"Knowing the mechanics changes how you handle the awkward moments. When a code will not scan, you can reason about why: a damaged or very dim screen affects the decode step, while a code that decodes but rejects is a state or signature issue, not a camera problem. When someone insists their ticket is valid but the scanner disagrees, you know the system has either seen it before or cannot verify it, and you route them to the exceptions desk rather than arguing at the main lane.",[11,131,132],{},"You also stop fearing the offline case. Because verification is a signature check rather than a live database call for every scan, a scanner that has the guest list downloaded can validate passes even when the venue wifi drops, then reconcile when the connection returns. Nobody waits at the door for a network to come back.",[11,134,135],{},"A QR ticket, then, is not magic and not a black box. It is a signed reference, wrapped in a pattern a camera reads fast, checked against a list and a set of rules in the moment it is scanned. Understand that and you understand most of what can go right and wrong at a modern door. CheckInHub issues signed passes and runs every one of those checks in the background, so the only thing your crew sees is a green tick and a name.",{"title":137,"searchDepth":138,"depth":138,"links":139},"",2,[140,141,142,143,144],{"id":17,"depth":138,"text":18},{"id":39,"depth":138,"text":40},{"id":89,"depth":138,"text":90},{"id":99,"depth":138,"text":100},{"id":125,"depth":138,"text":126},"QR codes & scanning","2025-07-11","What is really inside a QR ticket, how a scan validates it, and why a signed pass is harder to forge than the screenshot in someone's photos.",false,"md","https:\u002F\u002Fimages.unsplash.com\u002Fphoto-1595079676339-1534801ad6cf?ixlib=rb-4.1.0&w=1600&q=80&auto=format&fit=crop","A smartphone displaying a QR code","Markus Winkler","https:\u002F\u002Funsplash.com\u002F@markuswinkler?utm_source=checkinhub&utm_medium=referral",{},true,"\u002Fblog\u002Fhow-qr-code-tickets-actually-work",6,{"title":5,"description":147},"blog\u002Fhow-qr-code-tickets-actually-work",[161,162,163,164],"qr codes","barcodes","scanning","tickets","HTkwh7tXGXokE0UjzBtJ7KW4JkyAYgGJROV6MqJjwro",[167,173,178],{"to":168,"title":169,"description":170,"date":171,"category":145,"image":172,"readTime":157},"\u002Fblog\u002Fthe-eight-second-check-in-explained","The eight-second check-in, explained","What actually happens in the eight seconds a guest spends at the door, step by step, and why most of that time has nothing to do with scanning.","2026-06-19","https:\u002F\u002Fimages.unsplash.com\u002Fphoto-1662383729882-e03ce8e00887?ixlib=rb-4.1.0&w=1600&q=80&auto=format&fit=crop",{"to":84,"title":174,"description":175,"date":176,"category":145,"image":177,"readTime":157},"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.","2026-02-20","https:\u002F\u002Fimages.unsplash.com\u002Fphoto-1706759755782-62bc9a0b32e1?ixlib=rb-4.1.0&w=1600&q=80&auto=format&fit=crop",{"to":121,"title":179,"description":180,"date":181,"category":145,"image":182,"readTime":183},"Reading any code: phones, tablets and wedge scanners","The device that reads the code matters as much as the code itself. Phones, tablets and wedge scanners each suit a different door.","2025-10-24","https:\u002F\u002Fimages.unsplash.com\u002Fphoto-1595079834934-b78552e04b10?ixlib=rb-4.1.0&w=1600&q=80&auto=format&fit=crop",5,1782495584896]