---
title: "Code 128"
url: https://getstell.com/glossary/code-128
description: "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

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](/glossary/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](/glossary/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](/glossary/barcode-identification) sets out the trade.
