GS1-128 and SSCC label generator
Enter an element string such as "(00)106141411234567897(10)LOT42". Preview the Code 128 barcode (with set C/B switching, FNC1 and checksum), validate the check digit and download it as SVG.
Each field starts with a parenthesised application identifier: (00) SSCC, (01) GTIN, (02) contained GTIN, (10) batch, (15)/(17) date, (21) serial number, (37) count. An FNC1 separator is added automatically after variable-length fields.
Print dimensions
Encoding runs in your browser; the data you enter is not sent anywhere.
Check digits, field lengths and characters are valid.
Preview
- Human-readable line
- (00)106141411234567897
- Symbol count
- 14
- Checksum (mod 103)
- 34
- Width (quiet zones included)
- 176 modules
- Print width
- 87.1 mm
- Encoding sequence
- START C · FNC1 · 00 · 10 · 61 · 41 · 41 · 12 · 34 · 56 · 78 · 97 · CHK 34 · STOP
Checksum = (start value + Σ position × symbol value) mod 103 · symbol = 11 modules, stop = 13 modules · quiet zone ≥ 10 modules
This tool is a helper for calculation and drawing; barcode quality (ISO/IEC 15416 grade), label layout and compliance with your trading partner's requirements must be verified separately. It is not legal or technical advice.
Let's design your label, printer and camera flow together: SSCC generation, unique number allocation and case–pallet aggregation.
Request a conversation01
How to use it
A
Type the element string as "(00)…(10)…" or load an example.
B
Read the warnings and the check digit result; set the X-dimension and bar height for your print.
C
Check the preview, download the SVG or copy its code into your label template.
02
What are GS1-128 and SSCC?
GS1-128 carries GS1 application identifiers (AIs) in a Code 128 barcode. The most common content on logistic labels is the SSCC (AI 00): an 18-digit number that is a globally unique identity for a pallet or case. Next to it the label can carry fields such as the GTIN of the contents (02), count (37), batch (10) or the ship-to location.
An FNC1 symbol right after the start code marks the barcode as GS1-128. The reader sends this as the ]C1 prefix, and the system then splits the raw string into identifiers.
03
How the encoding works: set C, set B, FNC1 and checksum
In Code 128, set C packs two digits into one symbol, so long digit strings (SSCC, GTIN, dates) come out short and dense. For fields with letters and signs (batch, serial number) the code switches to set B. The tool picks the C/B switches itself so that the symbol count is as low as possible.
No separator is needed after fixed-length fields (SSCC, GTIN, dates). If another field follows a variable-length field (for example a batch), an FNC1 is inserted between them; none follows the last field.
The check symbol is the remainder, divided by 103, of the start value plus each symbol multiplied by its position. A reader rejects the data if this sum does not match. Numbers such as SSCC, GTIN and GLN have their own mod-10 check digit, which is checked separately.
04
Points to watch when printing
The X-dimension is the width of the narrowest bar and should be a whole multiple of the print resolution; on a 300 dpi printer one dot is about 0.085 mm. Leave at least 10 modules of quiet zone on both sides of the barcode.
The GS1 General Specifications limit the number of data characters and the symbol length including quiet zones; the tool warns when these are exceeded. Before production, test the real print with a barcode verifier or at least with the readers on your line. This tool gives no quality grade.
FAQ
- How do I calculate the check digit of an SSCC?
- The first 17 digits of the SSCC are multiplied from right to left by 3 and 1 alternately, the sum is rounded up to the next ten, and the difference is the 18th digit. The tool uses this calculation when it validates the (00) field you enter.
- When is an FNC1 separator needed?
- When another field follows a variable-length field (such as batch or serial number). It is not needed after fixed-length fields such as SSCC, GTIN and dates. The tool adds it for you.
- Why use GS1 DataMatrix instead of GS1-128?
- Both carry the same identifiers. Code 128 is linear, takes a lot of width and is common on logistic labels; DataMatrix saves space on small product surfaces and holds more data. Which one you need depends on your trading partner's and sector's rules.
- Can I print the SVG directly?
- The SVG is vector and its size is written in mm; you can place it in your label software or a PDF and print it without scaling. If the X-dimension is not a whole multiple of dots at your printer resolution the bars can distort; test the real print.
- Is the data I enter sent anywhere?
- No. Encoding and drawing run in your browser; the page does not transmit the string you enter to a server.
Let's build the label and number flow together
We handle SSCC generation, printer and camera integration, unique number allocation and case–pallet aggregation end to end.