# Code 49

> Source: https://docs.barcoder.ai/docs/standards/code-49
> research date 2026-06-03 · extracted at 2026-10-03
> Publisher: Barcoder — encyclopedia of QR, barcode and payment-code standards

Specifications:
- [Code 49 — BarTender Barcode Guide (Seagull Scientific)](https://barcodeguide.seagullscientific.com/content/Symbologies/Code_49.htm)
- [Code 49 (USS-49, ANSI/AIM BC6) — Neodynamic](https://www.neodynamic.com/barcodes/Code-49-Barcode.aspx)

## Overview

Code 49 is a continuous, variable-length **stacked** barcode symbology: it packs multiple short linear barcode rows on top of one another so that a large amount of data fits into a small footprint. It encodes the full 128-character ASCII set and was, historically, the first stacked symbology, combining ideas from UPC and Code 39 into one code <sup>[1][1]</sup> <sup>[3][3]</sup> <sup>[6][6]</sup>. It is standardised as **USS-49** / **ANSI/AIM BC6** (AIM-BC6-2000, "Uniform Symbology Specification — Code 49") and is in the public domain <sup>[1][1]</sup> <sup>[2][2]</sup>.

## History

Code 49 was developed in **1987** by **Dr. David Allais of Intermec Corporation** <sup>[1][1]</sup> <sup>[3][3]</sup> <sup>[5][5]</sup>. Allais was one of the most prolific barcode inventors of the era — at Intermec he also created Interleaved 2 of 5 (1972), Code 39 (1974, with Ray Stevens), Code 11 (1977) and Code 93 (1982) <sup>[5][5]</sup>. Code 49 was conceived to solve the problem of scanning **large amounts of data on small objects**, where conventional linear barcodes were too long or too low-capacity <sup>[3][3]</sup> <sup>[5][5]</sup>. It is widely credited as the **first stacked barcode symbology**, and although its own practical adoption was limited, it set the stage for the later, far more successful stacked code PDF417 <sup>[3][3]</sup> <sup>[5][5]</sup> <sup>[6][6]</sup>.

## Technical specification

A Code 49 symbol comprises **two to eight rows** <sup>[1][1]</sup> <sup>[2][2]</sup>. Each row contains four symbol characters that together encode eight ASCII characters, the last of which is a per-row check character; every row is exactly **18 bars and 17 spaces** <sup>[1][1]</sup>. The symbology supports the **full 128-character ASCII set** and operates as a continuous, variable-length code <sup>[1][1]</sup> <sup>[2][2]</sup>.

Error detection/correction is layered: **row check digits** use a modulo-49 algorithm and **symbol check digits** use a modulo-2401 algorithm (2401 = 49²) <sup>[1][1]</sup>. The symbol has a **fixed width of 70 modules (70X)**; each row must be at least 8X tall; the leading quiet zone should be at least 10X and the trailing quiet zone at least 1X <sup>[1][1]</sup>. The name "Code 49" reflects that its row check arithmetic and character architecture are organised around the value 49 <sup>[1][1]</sup> <sup>[6][6]</sup>.

## Use cases

Reported early adopters were data-dense, small-item industrial settings: defense/parts marking (U.S. Department of Defense), healthcare/patient identification, electronics manufacturing and aerospace component tracking, where its high data density was advantageous <sup>[6][6]</sup>. Practical use was limited from the outset and declined through the 1990s–2000s as PDF417 and Data Matrix took over the same niches <sup>[3][3]</sup> <sup>[6][6]</sup>.

## Implementations

- **Zint** (`github.com/zint/zint`) — open-source C encoding library; its symbology appendix and manual confirm Code 49 support <sup>[4][4]</sup> <sup>[7][7]</sup>.
- **BarTender / Seagull Scientific** — commercial label software documents a full Code 49 implementation <sup>[1][1]</sup>.
- **Neodynamic** barcode SDKs — commercial component documents Code 49 (USS-49 / ANSI/AIM BC6) support <sup>[2][2]</sup>.

## Comparison

- **vs. Code 16K** — Code 16K, created by Ted Williams at Laserlight Systems in **1989**, was a direct response to Code 49. Where Code 49 needed large lookup tables and substantial memory for its encoding/decoding algorithms, Code 16K (built on Code 128) offered a simpler approach to printing and decoding stacked rows while avoiding those memory requirements <sup>[3][3]</sup> <sup>[8][8]</sup>. Code 16K allows 2–16 rows (vs Code 49's 2–8) and is standardised as AIM-BC7 <sup>[8][8]</sup>.
- **vs. PDF417** — PDF417 (Symbol Technologies, 1991) is the spiritual successor: also a stacked symbology but with much higher capacity, formal Reed-Solomon error correction, and broad industry/ISO adoption. Code 49 is regularly described as having "set the stage" for PDF417 <sup>[3][3]</sup> <sup>[5][5]</sup>.
- **vs. linear codes (UPC / Code 39)** — Code 49 was explicitly designed as a stacked hybrid drawing on UPC and Code 39, trading the single-line scannability of those linear codes for far higher data density in a small area <sup>[3][3]</sup> <sup>[6][6]</sup>.

## Fun facts

- Code 49 is generally cited as the **first stacked barcode symbology** ever created — the conceptual ancestor of PDF417 and other stacked codes <sup>[3][3]</sup> <sup>[6][6]</sup>.
- Its inventor David Allais later founded **PathGuide Technologies (1989)**, a warehouse-management-systems company, after a 20-year career at Intermec where he served as CEO and chief scientist <sup>[5][5]</sup>.
- Both the symbology's check-character math (modulo 49 and modulo 2401 = 49²) and its name are organised around the number 49 <sup>[1][1]</sup>.

## Status

Niche / legacy. Code 49 is a published, public-domain AIM standard (AIM-BC6) with continuing software support <sup>[1][1]</sup> <sup>[2][2]</sup> <sup>[4][4]</sup>, but in the field it was quickly overtaken by PDF417 and Data Matrix and survives only in a few specialised manufacturing and archival contexts <sup>[6][6]</sup>. Confidence is medium: the technical spec and history are well-corroborated across multiple barcode references, but quantified current-deployment data is not available and several use-case claims come from a single secondary source.

## Sources

[1] [Code 49 — BarTender Barcode Guide](https://barcodeguide.seagullscientific.com/content/Symbologies/Code_49.htm) — Seagull Scientific.
[2] [Code 49 (USS-49, ANSI/AIM BC6)](https://www.neodynamic.com/barcodes/Code-49-Barcode.aspx) — Neodynamic.
[3] [The history of Code 49 barcode](https://free-barcode.com/barcode/barcode-history/history-code-49-barcode.asp) — Free-Barcode.com.
[4] [zint/zint barcode encoding library](https://github.com/zint/zint) — GitHub.
[5] [David Allais](https://en.wikipedia.org/wiki/David_Allais) — Wikipedia.
[6] [What is a Code 49 Barcode?](https://tritonstore.com.au/what-is-code-49-barcode/) — Triton Store.
[7] [Zint Manual — symbology appendix](https://zint.org.uk/manual/appendix/B) — Zint project.
[8] [Code 16K](https://en.wikipedia.org/wiki/Code_16K) — Wikipedia.

[1]: https://barcodeguide.seagullscientific.com/content/Symbologies/Code_49.htm
[2]: https://www.neodynamic.com/barcodes/Code-49-Barcode.aspx
[3]: https://free-barcode.com/barcode/barcode-history/history-code-49-barcode.asp
[4]: https://github.com/zint/zint
[5]: https://en.wikipedia.org/wiki/David_Allais
[6]: https://tritonstore.com.au/what-is-code-49-barcode/
[7]: https://zint.org.uk/manual/appendix/B
[8]: https://en.wikipedia.org/wiki/Code_16K

## Deployments

_No country reports mention this standard by name._

## Regions / aggregations not mapped to a single country

- Universal
