Identification at the till

Code 128

A dense alphanumeric linear barcode supported by both Apple Wallet and Google Wallet, and the usual choice for member numbers on a pass.

Code 128 is a high-density linear barcode that encodes the full ASCII set across three character subsets, switching between them mid-symbol to keep the code as short as possible. Numeric data packs two digits per symbol character, so a numeric member number takes roughly half the width it would in Code 39.

It is the practical default when a program needs a linear barcode rather than a two-dimensional one. Both Apple Wallet and Google Wallet render Code 128 on a pass, so one format covers both wallets, and every modern retail scanner reads it. Letters, prefixes and mixed-case identifiers are all fine, which numeric-only formats such as EAN-13 cannot offer.

A mandatory check character is calculated into every symbol, so misreads are caught rather than passed on to the point of sale. That matters at a busy till, where a wrong member number is worse than a failed scan.

The limit is data volume. Long payloads make a wide barcode that is awkward on a phone screen and needs a careful sweep to read. Where a program encodes more than a member number, or wants a rotating value per visit, a QR code or PDF417 carries it better. QR and barcode identification sets out the trade.

See the platform
Next step

See what this looks like on a pass.

The definition is the short version. The next pages show it on the terminals merchants already run, and the merchants running it.