User Rating 0.0 โ˜…โ˜…โ˜…โ˜…โ˜…
Total Usage 0 times
Enter an even number of digits (0โ€“9). Pairs are encoded as Code 128-C symbols.
Presets:
Enter numeric data and click Generate
Is this tool helpful?

Your feedback helps us improve.

โ˜… โ˜… โ˜… โ˜… โ˜…

About

Code 128-C is the numeric-only subset of the Code 128 symbology defined in ISO/IEC 15417. It encodes digit pairs (00 - 99) into single symbols, achieving roughly double the density of Code 128-A or 128-B for purely numeric data. This makes it the mandatory encoding for GS1-128 application identifiers, SSCC-18 shipping labels, and any logistics context where an odd digit count or a misplaced character causes scanner rejection at the packing line. The checksum is a weighted modulo-103 sum. A single transposition in the input will produce a valid-looking but semantically wrong barcode. This tool computes the check digit, renders the barcode to spec, and flags input errors before they reach a printer.

Limitations: Code 128-C accepts even-length numeric strings only. If your data contains letters or an odd digit count, you need Code 128-A/B or a mixed-mode encoder. The quiet zone on each side must be at least 10 modules wide per ISO/IEC 15417 ยง4.3.2.1. This generator enforces that automatically.

code 128-c barcode generator code 128 barcode numeric barcode shipping barcode ean barcode

Formulas

The Code 128-C check digit is computed as a weighted modulo-103 sum over all encoded symbol values:

C = ( vstart + nโˆ‘i=1 i ร— vi ) mod 103

Where vstart = 105 (the fixed Start C symbol value), n is the number of data symbols (digit pairs), i is the 1-based position index, and vi is the numeric value of the i-th digit pair (00 - 99). The resulting C is looked up in the same 103-symbol encoding table and inserted before the Stop pattern.

Total barcode module width: W = 11 ร— ( 1 + n + 1 ) + 13 + 2 ร— Q, where the first 1 is Start C, the second 1 is the check symbol, 13 is the Stop pattern width, and Q โ‰ฅ 10 modules is each quiet zone.

Reference Data

ValueDigit PairBar Pattern (B S B S B S)Module Widths
00021222211
10122212211
20222222111
30312122311
40412132211
50513122211
60612221311
70712231211
80813221211
90922121311
101022131211
202023121211
303011223211
404012213211
505012223111
606011322211
707012312211
808012322111
909022321111
999923121111
103Start C21123211
106Stop233111213

Frequently Asked Questions

Code 128-C encodes data in pairs. Each symbol represents a two-digit value from 00 to 99. An odd-length input leaves one digit unpaired. In production, mixed-mode encoders switch to Code 128-A or 128-B for the trailing digit, but a pure 128-C encoder must reject odd-length input to maintain data integrity.
The check digit uses a positional weighting scheme: each symbol value is multiplied by its 1-based position index before summing modulo 103. This catches single-symbol errors and most transposition errors. A scanner verifies the checksum on decode; if it fails, the barcode is rejected rather than returning corrupted data.
The standard specifies a minimum quiet zone of 10 times the module width (the narrowest bar) on each side of the barcode. This generator automatically adds compliant quiet zones. If you crop the image manually, ensure you preserve at least 10ร— the module width, or scanners may fail to detect the start/stop patterns.
No. Code 128-C is strictly numeric (digit pairs 00 - 99). For alphanumeric data, use Code 128-A (uppercase + control characters) or Code 128-B (full ASCII printable range). GS1-128 labels typically use Code 128-C for the numeric Application Identifier portion and switch subsets for any alpha segments.
ISO/IEC 15417 recommends a minimum X-dimension (module width) of 0.191 mm for open-system applications. For retail and logistics, 0.250 - 0.330 mm is standard. In this generator, module width is controlled by the Scale setting. At scale 2, each module is 2 px, suitable for screen display. For print at 300 DPI, use scale 3 - 4.
Yes. The recommended minimum height is 15% of the barcode width or 6.35 mm, whichever is greater (per GS1 General Specifications). Shorter bars reduce the scanner's vertical capture window, especially for handheld laser scanners that sweep at an angle. This tool defaults to 80 px bar height, which satisfies the ratio for typical data lengths.