Loading Barcode Mint…

Barcode Mint

Free Online Barcode & QR Code Generator

Linear Barcode

Code 128 C Generator

Code 128 subset C squeezes two digits into every symbol character, making it the most compact way to barcode a long numeric-only string.

Open the generator ↓
Preview
100%

01

Symbology

Code 128
All 106 →
02

Data

03

Properties

Properties

2
100
18
10
04

Bulk & batch generate

🔒 Pro

Turn a CSV — or a numbered sequence — into hundreds of barcodes at once, exported as a ZIP of images or a print-ready PDF sheet. Launching with Pro.

Launching soon

Pricing — join the early list

The browser generator stays free forever. Paid plans are for teams who need bulk output and developers who need the REST API at scale — commercial license included. Tell us what you'd use; early-list members get first access and launch pricing.

For the generator

Free $0/forever

What you're using right now

  • 100+ barcode & QR symbologies
  • Live preview & customization
  • PNG & SVG export, no login
  • Copy to clipboard
Available now ✓

For developers — REST API

Priced by requests. Commercial license and self-serve keys included; usage dashboard at launch.

Small $19/mo$190/yr 500 req / mo
Large $499/mo$4,990/yr 50K req / mo
Enterprise Custom Contact us

Get early access + launch pricing

Which features would you actually use? (optional — it helps us decide what to build first)

No spam — one email when it launches. The free tool isn't going anywhere.

What Is a Code 128 C Barcode?

Code 128 C is the character-set-C variant of Code 128, and it works differently from subsets A and B: instead of mapping one character to one symbol, it maps a pair of digits (00 through 99) to a single symbol character. That means a 12-digit string that would take 12 symbol characters in subset B takes only 6 in subset C — roughly halving the physical length of the barcode for the same data. The tradeoff is strict: subset C can only encode digit pairs, so it cannot represent letters, symbols, or an odd-length numeric string without padding.

This makes Code 128 C the go-to choice specifically for long, purely numeric identifiers — order numbers, GTINs, tracking numbers — where minimizing barcode width matters more than encoding mixed content.

How Subset C Encoding Works

Where subsets A and B each dedicate one symbol character to one input character, subset C consumes input two digits at a time. The digit pair "00" through "99" each has a unique symbol value, giving 100 possible pairs mapped into the same 11-module bar/space pattern used throughout Code 128. Because of this pairing requirement:

This digit-pair mechanism is exactly what underlies GS1-128 application identifiers for things like weight, quantity, and date fields, where compactness on a shipping label is critical and the data is guaranteed numeric.

Where Code 128 C Is Used

Subset C shows up wherever a long numeric ID needs to fit in minimal label space:

Code 128 C Technical Specifications

Code 128 C falls under the same ISO/IEC 15417 standard as subsets A and B, but its 106 symbol values map to digit pairs "00" through "99" rather than individual characters. Each symbol still occupies 11 modules across 3 bars and 3 spaces, identical to the other subsets, which is exactly why subset C achieves double the numeric density — the same physical footprint per character now represents two digits instead of one. Data length must be even, since digits are consumed two at a time; Barcode Mint will flag or pad odd-length numeric input as needed. As with all Code 128 variants, a mandatory modulo-103 check digit is calculated over the encoded values and appended automatically.

How to Create a Code 128 C Barcode in Barcode Mint

Choose Code 128 C from the symbology list in Barcode Mint when you know your data is purely numeric with an even digit count. Enter the digits into the data field — if the count is odd, pad with a leading zero first, since subset C can't encode a lone unpaired digit. The live preview will show the compact result immediately. From there:

For sequential numeric IDs, use the batch/sequence tool to generate an incrementing series automatically. For larger numeric datasets, the bulk CSV → ZIP/PDF uploader turns a spreadsheet column into a full set of barcodes in one pass — just make sure every value has an even digit count first. Developers can call the REST API directly with /barcode?type=code128c&data=YOURDATA to automate generation from numeric datasets.

Print and Scan Best Practices

Because subset C barcodes are narrower for the same data length, a few things matter more here than with A or B:

Code 128 C vs. Related Codes

Against Code 128 A and B, subset C is roughly twice as dense for numeric data but can't encode a single letter or symbol — the moment your data isn't purely even-length digits, you need to switch. Against Interleaved 2 of 5 (ITF), another digit-pair symbology, Code 128 C carries a mandatory check digit that ITF's base form lacks, making it the more error-resistant choice for numeric IDs where misreads are costly. Against ITF-14 specifically, Code 128 C is flexible-length and general-purpose, while ITF-14 is a fixed 14-digit GS1 standard purpose-built for shipping cases — use ITF-14 when GS1 case-coding compliance is required, and Code 128 C for other long numeric identifiers.

Common uses

Frequently asked questions

What does a code 128 c generator do differently?
A code 128 c generator encodes digits in pairs rather than one at a time, producing a barcode roughly half the length of subset A or B for the same numeric data — ideal for long numeric IDs on small labels.
Can Code 128 C encode letters?
No. Subset C only encodes digit pairs (00–99). If your data includes any letters or symbols, use Code 128 B or auto Code 128 instead.
What happens if my numeric string has an odd number of digits?

Subset C requires an even digit count since it encodes two digits per symbol. Pad an odd-length string with a leading zero, or let auto Code 128 handle the mixed encoding for you.

Is Code 128 C the same as ITF-14?

No, though both are compact numeric symbologies. ITF-14 is a distinct barcode standard fixed at 14 digits for shipping cartons, while Code 128 C is a flexible-length subset of Code 128 usable for any even-length numeric string.

Can I batch-generate Code 128 C barcodes from a spreadsheet?

Yes — upload a CSV of even-length numeric values to Barcode Mint's bulk tool to generate a ZIP of barcode images or a single print-ready PDF.

Related barcode types

Browse all 106 barcode & QR types →