Barcodes

Choosing a barcode type, deciding what it encodes - the pass ID, your own reference, or a custom value - and making sure your scanner can actually read it.

Updated 7/26/2026

Most passes carry a barcode so someone at a door, a till or a turnstile can scan it. You choose two things: what type of barcode, and what it encodes.

Both are set under Features in the template builder.

Choosing a type

TypeLooks likeUse it when
QRSquare gridThe default. Almost every scanner and every phone camera reads it.
AztecSquare with a bullseye centreCommon in transport ticketing. Choose it if your existing scanners expect it.
PDF417Wide stack of barsUsed on some ID and boarding documents. Holds more data.
Code 128Classic single-row barcodeChoose it when you're scanning into an older system that only handles linear barcodes.

If you have no constraint, use QR. The only good reason to pick something else is that the equipment on the other end demands it.

Check with whoever operates the scanner before you decide. A pass with the wrong barcode type is invisible to their hardware, and you'll only find out at the door. If you're unsure, test with a real scanner and a real pass first.

Choosing what it encodes

Three options:

Pass ID - the identifier PocketPass generates. Unique, unguessable and always present. Use this when the scanner will look the value up through PocketPass or just needs something unique.

Ext ID - your own reference for the pass: a membership number, a booking reference, an order id. Use this when the scanner belongs to a system that already knows your references and needs to match on them. This is usually the right answer if you're scanning into an existing till or door system. See External IDs and idempotency.

Custom - a fixed value you set. Use it when every pass from this template should carry the same code - a shared voucher code, for instance.

If you choose Ext ID and issue a pass without one, that pass has nothing to encode. Either always supply an Ext ID for templates that use it, or use the Pass ID instead.

Showing the value as text

There's an option to print the encoded value underneath the barcode as readable text.

Turn it on when a human might need to read it out or type it in - a member number someone quotes on the phone, a booking reference for a manual lookup. Leave it off when the value is a long identifier that means nothing to a person, since it just adds clutter.

Turning the barcode off

Not every pass needs one. A loyalty card that's purely a status symbol, or a pass whose only job is to carry information and notifications, is cleaner without.

Untick enable under Features and the pass renders without a barcode area at all.

Testing it properly

    1. Issue a pass to yourself and add it to your phone.
    2. Open the pass and turn the screen brightness up.
    3. Scan it with whatever equipment will be used in practice - not just a phone camera.
    4. Check the scanned value is what you expected, in the format the receiving system wants.

That third step is the one people skip. A phone camera reading a QR proves the barcode is valid; it doesn't prove your door system can read it or knows what to do with the value.

Screen brightness affects scanning more than anything else. If a pass scans reliably in testing but intermittently in practice, low brightness or a dim screen on auto is usually why. It's worth telling customers to brighten their screen at the door.

Where to go next

More in Pass templates