# GS1 Composite

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

Specifications:
- [ISO/IEC 24723:2010 — GS1 Composite bar code symbology specification](https://www.iso.org/standard/51425.html)
- [GS1 Composite Symbols — BWIPP wiki](https://github.com/bwipp/postscriptbarcode/wiki/GS1-Composite-Symbols)
- [GS1 DataBar Composite Barcode FAQ — BarcodeFAQ.com](https://www.barcodefaq.com/1d/gs1-databar/gs1-composite/)

## Overview

GS1 Composite symbology is a specialized barcode format that combines a linear (1D) component with a multi-row two-dimensional (2D) component into a single integrated symbol, enabling high data capacity in a small footprint <sup>[1][1]</sup>. The linear component carries the primary product identification so it remains readable by all scanning technologies, while the stacked 2D component above it carries supplementary GS1-formatted data for compatibility with linear and 2D imagers and with linear and rastering laser scanners <sup>[4][4]</sup>. It is defined by ISO/IEC 24723:2010 <sup>[2][2]</sup>. There are three composite-component variants: CC-A, CC-B, and CC-C <sup>[1][1]</sup>.

## History

GS1 Composite symbology was developed to extend existing linear GS1 barcodes (such as EAN/UPC and the GS1 DataBar family) with a 2D layer for additional structured data, while preserving backward-compatible scanning of the primary identifier through the linear component <sup>[4][4]</sup>. The symbology was standardized internationally as ISO/IEC 24723, with the current edition being ISO/IEC 24723:2010, which specifies the symbology characteristics, data-character encodation, symbol formats, dimensions, print-quality requirements, error-correction rules, and reference decoding algorithms <sup>[2][2]</sup>.

## Technical specification

A GS1 Composite symbol always consists of a primary linear component beneath a 2D component, the two joined by a separator pattern <sup>[5][5]</sup>. The permitted linear components are EAN-13, EAN-8, UPC-A, UPC-E, GS1-128, and any member of the GS1 DataBar family — Omnidirectional, Stacked Omnidirectional, Expanded, Expanded Stacked, Truncated, Stacked, and Limited <sup>[5][5]</sup>.

The three composite-component (CC) variants differ in their 2D layer <sup>[1][1]</sup><sup>[5][5]</sup>:

- **CC-A** — a space-saving variant of MicroPDF417 used as the 2D component, paired with an EAN/UPC or GS1 DataBar linear component. It encodes up to about 56 numeric characters (fewer if alphanumeric/punctuation data is used) and is widely used in retail <sup>[1][1]</sup><sup>[3][3]</sup>.
- **CC-B** — a full MicroPDF417 2D component, paired with EAN/UPC, GS1 DataBar, or GS1-128 linear components. It encodes up to about 338 alphanumeric characters and is common in healthcare/pharmaceutical labeling <sup>[1][1]</sup>.
- **CC-C** — a PDF417 2D component, used only with a GS1-128 linear component (GS1-128 Composite). It offers the largest capacity, approximately 800 characters <sup>[1][1]</sup><sup>[3][3]</sup>.

Encoders select the variant automatically by data size: CC-A is chosen first if the data fits, otherwise CC-B; for GS1-128 Composite a CC-C component is used when the data exceeds CC-A/CC-B capacity <sup>[5][5]</sup>. The supplementary data follows the GS1 Application Identifier (AI) format, and FNC1 characters that delimit AIs are inserted automatically by the encoder where required rather than being supplied manually <sup>[5][5]</sup>.

## Use cases

GS1 Composite symbols are used where a primary GTIN-bearing linear code must carry additional supply-chain data in the same label space <sup>[6][6]</sup>. In healthcare and pharmaceuticals they encode batch/lot numbers and expiration dates alongside the product identifier to support traceability, patient safety, and regulatory compliance <sup>[6][6]</sup>. In fresh food and variable-measure retail they carry weight, expiry date, and lot information <sup>[6][6]</sup>. They are also used for coupons and loyalty-program tracking, and for general food traceability and logistics where end-to-end product tracking and data compliance are required <sup>[6][6]</sup>.

## Implementations

- **Zint** ([github.com/zint/zint](https://github.com/zint/zint)) — C; open-source library that explicitly supports "GS1 Composite (EAN/UPC/DataBar/GS1-128)" as well as PDF417 and MicroPDF417; ~771 stars; actively maintained <sup>[7][7]</sup>.
- **BWIPP (Barcode Writer in Pure PostScript)** ([github.com/bwipp/postscriptbarcode](https://github.com/bwipp/postscriptbarcode)) — PostScript; provides a GS1 Composite Symbols module with automatic CC-A/CC-B/CC-C selection and automatic FNC1 insertion <sup>[5][5]</sup>.

## Comparison

Against a plain linear barcode, a GS1 Composite symbol adds a 2D component that multiplies data capacity (from a single GTIN up to hundreds of characters for CC-C) without sacrificing the broad scanner compatibility of the linear primary <sup>[1][1]</sup><sup>[4][4]</sup>. Within the family, CC-A (MicroPDF417-based, ~56 numeric) is the most compact, CC-B (full MicroPDF417, ~338 alphanumeric) is the mid-tier, and CC-C (PDF417-based, ~800 characters, GS1-128 only) is the highest capacity <sup>[1][1]</sup><sup>[3][3]</sup>. Some vendors now recommend single-symbol alternatives — GS1 DataBar Expanded, GS1 Data Matrix, or GS1 QR Code — over composite data in many new deployments <sup>[3][3]</sup>.

## Status

GS1 Composite symbology is an active ISO/IEC standard (ISO/IEC 24723:2010) and remains in production use across healthcare, fresh food, coupons, and logistics <sup>[2][2]</sup><sup>[6][6]</sup>. At the same time, some implementers are migrating toward single 2D GS1 symbols (GS1 Data Matrix / GS1 QR Code) for new applications <sup>[3][3]</sup>.

## Sources

[1]: https://www.scandit.com/products/barcode-scanning/symbologies/gs1-composite-codes/
[2]: https://www.iso.org/standard/51425.html
[3]: https://www.barcodefaq.com/1d/gs1-databar/gs1-composite/
[4]: https://docs.scandit.com/composite-codes.html
[5]: https://github.com/bwipp/postscriptbarcode/wiki/GS1-Composite-Symbols
[6]: https://cybra.com/gs1-composite-codes/
[7]: https://github.com/zint/zint

1. [GS1 Composite Codes](https://www.scandit.com/products/barcode-scanning/symbologies/gs1-composite-codes/) — Scandit
2. [ISO/IEC 24723:2010 — GS1 Composite bar code symbology specification](https://www.iso.org/standard/51425.html) — ISO, 2010
3. [GS1 DataBar Composite Barcode FAQ](https://www.barcodefaq.com/1d/gs1-databar/gs1-composite/) — BarcodeFAQ.com / IDAutomation
4. [Scan composite codes](https://docs.scandit.com/composite-codes.html) — Scandit Docs
5. [GS1 Composite Symbols](https://github.com/bwipp/postscriptbarcode/wiki/GS1-Composite-Symbols) — BWIPP wiki
6. [GS1 Composite Codes](https://cybra.com/gs1-composite-codes/) — CYBRA
7. [zint/zint](https://github.com/zint/zint) — GitHub, accessed 2026

## Deployments

_No country reports mention this standard by name._

## Regions / aggregations not mapped to a single country

- Universal
