Skip to content
barcoder

Standards/channel-code

Channel Code

Type1D Linear
Completeness76%high

Overview

Channel Code is a linear, continuous, self-checking, bidirectional 1D barcode symbology designed to encode short numeric strings — between two and seven digits — in the shortest possible space [1][2]. It supports only the numeric digits 0–9 [2] and requires no separate check character because it is self-correcting [2]. Its design goal is maximum compactness for tiny print areas [1][2].

History

Channel Code was invented by Ted Williams and Andy Longacre in 1992 [2]. It is standardized as AIM BC12 — Uniform Symbology Specification: Channel Code (also referenced as ANSI/AIM BC12-1998 / USS Channel Code) [2][1].

Technical specification

  • Character set: numeric digits 0–9 only [2].

  • Compactness principle: rather than assigning each digit its own pattern, Channel Code encodes the entire numeric value as a single combinatorial arrangement within a fixed number of "channels," allowing very short symbols [2].

  • Channels 3–8: six symbol sizes are defined, called channels 3 through 8. The channel number equals one more than the number of digits encoded (e.g. channel 5 encodes four digits) [2][1]. Each channel has a fixed value range:

    Channel Digits Value range
    3 2 0–26
    4 3 0–292
    5 4 0–3,493
    6 5 0–44,072
    7 6 0–576,688
    8 7 0–7,742,862

    [2][1]

  • Self-checking: the symbology is self-checking/self-correcting and needs no extra check character [2]. (An optional check bar suffix is available in some implementations via an includecheck option [5].)

  • Scanner attunement: a scanner must be set ("attuned") to the specific channel of the symbol it is reading; it is recommended to fix the channel so all relevant scanners use a matching setting [2][1].

  • Dimensions: the minimum bar height is 5.0 mm or 15 percent of the symbol length, whichever is greater [1].

Use cases

Channel Code is intended for situations demanding the smallest possible symbol footprint for a short numeric value — i.e. very small or constrained print areas where a conventional numeric barcode would not fit [1][2]. Its self-checking, no-check-character design and tight value ranges make it suited to compact serial/sequence numbering rather than general-purpose labelling.

Implementations

  • BWIPP (postscriptbarcode) — PostScript, active 2026. Implements Channel Code via the channelcode encoder with options shortfinder (shortened finder pattern) and includecheck (optional check-bar suffix), plus includetext for human-readable output [5].
  • zint — C, ~771 stars, active 2026. Lists Channel Code among its 50+ supported symbologies [3].
  • bwip-js — JavaScript port of BWIPP, ~2.4k stars, active 2026; also supports Channel Code [3].

Comparison

  • Channel Code vs. other compact numeric codes: unlike Interleaved 2 of 5 or MSI, which add width per additional digit at a roughly constant rate, Channel Code packs a whole bounded numeric value into a single fixed-size channel symbol, achieving shorter symbols for small values [2][1].
  • Self-checking without a check digit: whereas MSI is not self-checking and Code 11 relies on appended C/K check digits, Channel Code is inherently self-correcting and requires no check character [2].
  • Trade-off: the gain in density comes at the cost of scanner channel-attunement requirements and strict per-channel value ceilings, limiting it to short, bounded numeric data [2][1].

Status

Channel Code is a specialized, niche symbology — uncommon in mainstream use but standardized (AIM BC12) and supported by current barcode-generation libraries (BWIPP, zint, bwip-js). It survives as the compact-numeric option of choice for very small print areas rather than as a general-purpose code [1][2][5].

Sources

1 Channel Code — Seagull Scientific Barcode Guide, accessed 2026. 2 Channel Code Barcode (ANSI/AIM BC12-1998) — Neodynamic, accessed 2026. 3 zint — A barcode encoding library — GitHub (zint/zint), accessed 2026. 4 Channel Code — Seagull Scientific (BarTender) help, accessed 2026. 5 Channel Code — BWIPP (postscriptbarcode) wiki, accessed 2026.

Deployments

No country reports mention this standard by name.

Regions / aggregations not mapped to a single country

  • Universal
source · docs/standards/channel-code/index.md