What GS1-128 is
GS1-128 is Code 128 carrying GS1 Application Identifiers (AIs) such as GTIN, batch/lot, dates, and SSCC, wrapped in parentheses in human-readable text.
Generate it now
Enter your AI data, e.g. (01)09521234543213(3103)000123, for a live GS1-128 preview.
Valid input
Input uses GS1 Application Identifier syntax; bwip-js interprets AI structure and inserts FNC1/computes the underlying Code 128 checksum automatically, regardless of the parse option's value.
Key options
Supported options include includetext and height. parse is also accepted, but it does not control GS1 AI structure interpretation -- that always happens, as above. parse instead controls whether bwip-js decodes its own caret-escape syntax (e.g. ^048 for a raw byte value) inside an AI's value before that value is validated; an ordinary AI value with no such escape text renders identically whether parse is set or not.
Output and printing
Export SVG for logistics labels; keep a clear quiet zone for warehouse and carrier scanning equipment.
Common uses
GS1-128 carries logistics data -- GTIN, lot, date, SSCC -- on shipping and traceability labels across supply chains.
Example
The seeded example, "(01)09521234543213(3103)000123", combines fixed-length AI(01) (GTIN) with fixed-length AI(3103) (net weight in kilograms to three decimal places). No separator is needed between these two fixed-length fields; bwip-js adds separators only where GS1 variable-length field rules require them.
Size guidance
GS1-128 follows Code 128's quiet-zone requirements and GS1's logistics label placement guidance.
Troubleshooting
Malformed AI syntax (missing parentheses or wrong field lengths) is the most common input error; use the GS1 AI format shown in the example.
Related formats
Related formats: GS1 DataMatrix, GS1 QR Code, and SSCC-18.
FAQ
Do I need to type the FNC1 start character?
No -- bwip-js inserts the required FNC1 automatically and unconditionally for GS1-128.