GS1-128 (formerly UCC/EAN-128) Barcode
This Symbology is also known as EAN-128, UCC-128, USS-128, GS1 128, UCC.EAN-128, GTIN-128, UCC-12, EAN/UCC-13, EAN/UCC-14
This Barcode Symbology is supported by the following Neodynamic products:- Barcode Professional SDK for .NET Projects
- Barcode Professional for Windows Forms
- BarcodePro Web API for Docker
- Barcode Professional for WPF
- Barcode Professional for XAML WinRT Windows Store
- Barcode Professional for ASP.NET (Web Forms, MVC Razor, AJAX)
- Barcode Professional for Silverlight LOB
- Barcode Professional for Reporting Services (CRI & DLL for SSRS (RDL))
- Barcode Professional for .NET STANDARD
- Barcode Professional for Blazor
- ThermalLabel SDK for .NET
- Barcode Professional for Windows Phone
Overview
The GS1-128 (formerly UCC/EAN-128) Symbology is a subset of the more general Code 128 Symbology. By agreement among AIM, Inc., GS1 (EAN International and the UCC), use of the Function 1 Character (FNC1) in Code 128 Symbols in the first symbol character position following the Start Character has been reserved exclusively for the GS1 System.
GS1-128 was developed to provide a worldwide format and standard for exchanging common data between companies. While other barcodes simply encode data with no respect for what the data represents, GS1-128 encodes data and encodes what that data represents.
The encodable character used by GS1-128 Symbology is as defined by the International ISO/IEC 646 Standard.
GS1-128 encodes the so called Element Strings which are composed of an Application Identifier (AI) plus a data field. GS1-128 has a list of predefined Application Identifiers (AI) which identifies the meaning and format of the data following it. The AI is a 2, 3, or 4-digit number and it is enclosed in parentheses when printed below the barcode (the parentheses are only for visual clarity, and are not encoded in the barcode!).
Sample of a GS1-128 Barcode
How to encode GS1-128 values using Barcode Professional for
Introduction
GS1-128 encodes the so called Element Strings which are composed of an Application Identifier (AI) plus a data field. Each AI identifies the meaning and format of the data following it. The GS1 System provides more than one hundred Element Strings which can be found on the GS1 General Specification and is summarized in the following table.Show GS1-128 Application Identifiers
| AI | Data Content | Format | FNC1 required | Data title |
|---|---|---|---|---|
| 00 | Serial Shipping Container Code (SSCC) | N2+N18 | SSCC | |
| 01 | Global Trade Item Number (GTIN) | N2+N14 | GTIN | |
| 02 | GTIN of contained trade items | N2+N14 | CONTENT | |
| 10 | Batch or lot number | N2+X..20 | (FNC1) | BATCH/LOT |
| 11 | Production date (YYMMDD) | N2+N6 | PROD DATE | |
| 12 | Due date (YYMMDD) | N2+N6 | DUE DATE | |
| 13 | Packaging date (YYMMDD) | N2+N6 | PACK DATE | |
| 15 | Best before date (YYMMDD) | N2+N6 | BEST BEFORE or BEST BY | |
| 16 | Sell by date (YYMMDD) | N2+N6 | SELL BY | |
| 17 | Expiration date (YYMMDD) | N2+N6 | USE BY OR EXPIRY | |
| 20 | Variant number | N2+N2 | VARIANT | |
| 21 | Serial number | N2+X..20 | (FNC1) | SERIAL |
| 240 | Additional item identification | N3+X..30 | (FNC1) | ADDITIONAL ID |
| 241 | Customer part number | N3+X..30 | (FNC1) | CUST. PART NO. |
| 242 | Made-to-Order variation number | N3+N..6 | (FNC1) | MTO VARIANT |
| 243 | Packaging component number | N3+X..20 | (FNC1) | PCN |
| 250 | Secondary serial number | N3+X..30 | (FNC1) | SECONDARY SERIAL |
| 251 | Reference to source entity | N3+X..30 | (FNC1) | REF. TO SOURCE |
| 253 | Global Document Type Identifier (GDTI) | N3+N13+X..17 | (FNC1) | GDTI |
| 254 | GLN extension component | N3+X..20 | (FNC1) | GLN EXTENSION COMPONENT |
| 255 | Global Coupon Number (GCN) | N3+N13+N..12 | (FNC1) | GCN |
| 30 | Count of items (variable measure trade item) | N2+N..8 | (FNC1) | VAR. COUNT |
| 310n | Net weight, kilograms (variable measure trade item) | N4+N6 | NET WEIGHT (kg) | |
| 311n | Length or first dimension, metres (variable measure trade item) | N4+N6 | LENGTH (m) | |
| 312n | Width, diameter, or second dimension, metres (variable measure trade item) | N4+N6 | WIDTH (m) | |
| 313n | Depth, thickness, height, or third dimension, metres (variable measure trade item) | N4+N6 | HEIGHT (m) | |
| 314n | Area, square metres (variable measure trade item) | N4+N6 | AREA (m2) | |
| 315n | Net volume, litres (variable measure trade item) | N4+N6 | NET VOLUME (l) | |
| 316n | Net volume, cubic metres (variable measure trade item) | N4+N6 | NET VOLUME (m3) | |
| 320n | Net weight, pounds (variable measure trade item) | N4+N6 | NET WEIGHT (lb) | |
| 321n | Length or first dimension, inches (variable measure trade item) | N4+N6 | LENGTH (i) | |
| 322n | Length or first dimension, feet (variable measure trade item) | N4+N6 | LENGTH (f) | |
| 323n | Length or first dimension, yards (variable measure trade item) | N4+N6 | LENGTH (y) | |
| 324n | Width, diameter, or second dimension, inches (variable measure trade item) | N4+N6 | WIDTH (i) | |
| 325n | Width, diameter, or second dimension, feet (variable measure trade item) | N4+N6 | WIDTH (f) | |
| 326n | Width, diameter, or second dimension, yards (variable measure trade item) | N4+N6 | WIDTH (y) | |
| 327n | Depth, thickness, height, or third dimension, inches (variable measure trade item) | N4+N6 | HEIGHT (i) | |
| 328n | Depth, thickness, height, or third dimension, feet (variable measure trade item) | N4+N6 | HEIGHT (f) | |
| 329n | Depth, thickness, height, or third dimension, yards (variable measure trade item) | N4+N6 | HEIGHT (y) | |
| 330n | Logistic weight, kilograms | N4+N6 | GROSS WEIGHT (kg) | |
| 331n | Length or first dimension, metres | N4+N6 | LENGTH (m), log | |
| 332n | Width, diameter, or second dimension, metres | N4+N6 | WIDTH (m), log | |
| 333n | Depth, thickness, height, or third dimension, metres | N4+N6 | HEIGHT (m), log | |
| 334n | Area, square metres | N4+N6 | AREA (m2), log | |
| 335n | Logistic volume, litres | N4+N6 | VOLUME (l), log | |
| 336n | Logistic volume, cubic metres | N4+N6 | VOLUME (m3), log | |
| 337n | Kilograms per square metre | N4+N6 | KG PER m² | |
| 340n | Logistic weight, pounds | N4+N6 | GROSS WEIGHT (lb) | |
| 341n | Length or first dimension, inches | N4+N6 | LENGTH (i), log | |
| 342n | Length or first dimension, feet | N4+N6 | LENGTH (f), log | |
| 343n | Length or first dimension, yards | N4+N6 | LENGTH (y), log | |
| 344n | Width, diameter, or second dimension, inches | N4+N6 | WIDTH (i), log | |
| 345n | Width, diameter, or second dimension, feet | N4+N6 | WIDTH (f), log | |
| 346n | Width, diameter, or second dimension, yard | N4+N6 | WIDTH (y), log | |
| 347n | Depth, thickness, height, or third dimension, inches | N4+N6 | HEIGHT (i), log | |
| 348n | Depth, thickness, height, or third dimension, feet | N4+N6 | HEIGHT (f), log | |
| 349n | Depth, thickness, height, or third dimension, yards | N4+N6 | HEIGHT (y), log | |
| 350n | Area, square inches (variable measure trade item) | N4+N6 | AREA (i2) | |
| 351n | Area, square feet (variable measure trade item) | N4+N6 | AREA (f2) | |
| 352n | Area, square yards (variable measure trade item) | N4+N6 | AREA (y2) | |
| 353n | Area, square inches | N4+N6 | AREA (i2), log | |
| 354n | Area, square feet | N4+N6 | AREA (f2), log | |
| 355n | Area, square yards | N4+N6 | AREA (y2), log | |
| 356n | Net weight, troy ounces (variable measure trade item) | N4+N6 | NET WEIGHT (t) | |
| 357n | Net weight (or volume), ounces (variable measure trade item) | N4+N6 | NET VOLUME (oz) | |
| 360n | Net volume, quarts (variable measure trade item) | N4+N6 | NET VOLUME (q) | |
| 361n | Net volume, gallons U.S. (variable measure trade item) | N4+N6 | NET VOLUME (g) | |
| 362n | Logistic volume, quarts | N4+N6 | VOLUME (q), log | |
| 363n | Logistic volume, gallons U.S. | N4+N6 | VOLUME (g), log | |
| 364n | Net volume, cubic inches (variable measure trade item) | N4+N6 | VOLUME (i3) | |
| 365n | Net volume, cubic feet (variable measure trade item) | N4+N6 | VOLUME (f3) | |
| 366n | Net volume, cubic yards (variable measure trade item) | N4+N6 | VOLUME (y3) | |
| 367n | Logistic volume, cubic inches | N4+N6 | VOLUME (i3), log | |
| 368n | Logistic volume, cubic feet | N4+N6 | VOLUME (f3), log | |
| 369n | Logistic volume, cubic yards | N4+N6 | VOLUME (y3), log | |
| 37 | Count of trade items | N2+N..8 | (FNC1) | COUNT |
| 390n | Applicable amount payable or Coupon value, local currency | N4+N..15 | (FNC1) | AMOUNT |
| 391n | Applicable amount payable with ISO currency code | N4+N3+N..15 | (FNC1) | AMOUNT |
| 392n | Applicable amount payable, single monetary area (variable measure trade item) | N4+N..15 | (FNC1) | PRICE |
| 393n | Applicable amount payable with ISO currency code (variable measure trade item) | N4+N3+N..15 | (FNC1) | PRICE |
| 394n | Percentage discount of a coupon | N4+N4 | (FNC1) | PRCNT OFF |
| 400 | Customer's purchase order number | N3+X..30 | (FNC1) | ORDER NUMBER |
| 401 | Global Identification Number for Consignment (GINC) | N3+X..30 | (FNC1) | GINC |
| 402 | Global Shipment Identification Number (GSIN) | N3+N17 | (FNC1) | GSIN |
| 403 | Routing code | N3+X..30 | (FNC1) | ROUTE |
| 410 | Ship to - Deliver to Global Location Number | N3+N13 | SHIP TO LOC | |
| 411 | Bill to - Invoice to Global Location Number | N3+N13 | BILL TO | |
| 412 | Purchased from Global Location Number | N3+N13 | PURCHASE FROM | |
| 413 | Ship for - Deliver for - Forward to Global Location Number | N3+N13 | SHIP FOR LOC | |
| 414 | Identification of a physical location - Global Location Number | N3+N13 | LOC No | |
| 415 | Global Location Number of the invoicing party | N3+N13 | PAY TO | |
| 416 | GLN of the production or service location | N3+N13 | PROD/SERV LOC | |
| 420 | Ship to - Deliver to postal code within a single postal authority | N3+X..20 | (FNC1) | SHIP TO POST |
| 421 | Ship to - Deliver to postal code with ISO country code | N3+N3+X..9 | (FNC1) | SHIP TO POST |
| 422 | Country of origin of a trade item | N3+N3 | (FNC1) | ORIGIN |
| 423 | Country of initial processing | N3+N3+N..12 | (FNC1) | COUNTRY - INITIAL PROCESS. |
| 424 | Country of processing | N3+N3 | (FNC1) | COUNTRY - PROCESS. |
| 425 | Country of disassembly | N3+N3+N..12 | (FNC1) | COUNTRY - DISASSEMBLY |
| 426 | Country covering full process chain | N3+N3 | (FNC1) | COUNTRY – FULL PROCESS |
| 427 | Country subdivision Of origin | N3+X..3 | (FNC1) | ORIGIN SUBDIVISION |
| 7001 | NATO Stock Number (NSN) | N4+N13 | (FNC1) | NSN |
| 7002 | UN/ECE meat carcasses and cuts classification | N4+X..30 | (FNC1) | MEAT CUT |
| 7003 | Expiration date and time | N4+N10 | (FNC1) | EXPIRY TIME |
| 7004 | Active potency | N4+N..4 | (FNC1) | ACTIVE POTENCY |
| 7005 | Catch area | N4+X..12 | (FNC1) | CATCH AREA |
| 7006 | First freeze date | N4+N6 | (FNC1) | FIRST FREEZE DATE |
| 7007 | Harvest date | N4+N6..12 | (FNC1) | HARVEST DATE |
| 7008 | Species for fishery purposes | N4+X..3 | (FNC1) | AQUATIC SPECIES |
| 7009 | Fishing gear type | N4+X..10 | (FNC1) | FISHING GEAR TYPE |
| 7010 | Production method | N4+X..2 | (FNC1) | PROD METHOD |
| 7020 | Refurbishment lot ID | N4+X..20 | (FNC1) | REFURB LOT |
| 7021 | Functional status | N4+X..20 | (FNC1) | FUNC STAT |
| 7022 | Revision status | N4+X..20 | (FNC1) | REV STAT |
| 7023 | Global Individual Asset Identifier (GIAI) of an assembly | N4+X..30 | (FNC1) | GIAI – ASSEMBLY |
| 703s | Number of processor with ISO Country Code | N4+N3+X..27 | (FNC1) | PROCESSOR # s |
| 710 | National Healthcare Reimbursement Number (NHRN) – Germany PZN | N3+X..20 | (FNC1) | NHRN PZN |
| 711 | National Healthcare Reimbursement Number (NHRN) – France CIP | N3+X..20 | (FNC1) | NHRN CIP |
| 712 | National Healthcare Reimbursement Number (NHRN) – Spain CN | N3+X..20 | (FNC1) | NHRN CN |
| 713 | National Healthcare Reimbursement Number (NHRN) – Brasil DRN | N3+X..20 | (FNC1) | NHRN DRN |
| 8001 | Roll products (width, length, core diameter, direction, splices) | N4+N14 | (FNC1) | DIMENSIONS |
| 8002 | Cellular mobile telephone identifier | N4+X..20 | (FNC1) | CMT No |
| 8003 | Global Returnable Asset Identifier (GRAI) | N4+N14+X..16 | (FNC1) | GRAI |
| 8004 | Global Individual Asset Identifier (GIAI) | N4+X..30 | (FNC1) | GIAI |
| 8005 | Price per unit of measure | N4+N6 | (FNC1) | PRICE PER UNIT |
| 8006 | Identification of the components of a trade item | N4+N14+N2+N2 | (FNC1) | GCTIN |
| 8007 | International Bank Account Number (IBAN) | N4+X..34 | (FNC1) | IBAN |
| 8008 | Date and time of production | N4+N8+N..4 | (FNC1) | PROD TIME |
| 8010 | Component / Part Identifier (CPID) | N4 + X..30 | (FNC1) | CPID |
| 8011 | Component / Part Identifier serial number (CPID SERIAL) | N4 + N..12 | (FNC1) | CPID SERIAL |
| 8012 | Software version | N4 + X..20 | (FNC1) | VERSION |
| 8017 | Global Service Relation Number to identify the relationship between an organisation offering services and the provider of services | N4+N18 | (FNC1) | GSRN - PROVIDER |
| 8018 | Global Service Relation Number to identify the relationship between an organisation offering services and the recipient of services | N4+N18 | (FNC1) | GSRN - RECIPIENT |
| 8019 | Service Relation Instance Number (SRIN) | N4+N..10 | (FNC1) | SRIN |
| 8020 | Payment slip reference number | N4+X..25 | (FNC1) | REF No |
| 8110 | Coupon code identification for use in North America | N4+X..70 | (FNC1) | - |
| 8111 | Loyalty points of a coupon | N4+N4 | (FNC1) | POINTS |
| 8112 | Paperless coupon code identification for use in North America (AI 8112) | N4+X..70 | (FNC1) | - |
| 8200 | Extended Packaging URL | N4+X..70 | (FNC1) | PRODUCT URL |
| 90 | Information mutually agreed between trading partners | N2+X..30 | (FNC1) | INTERNAL |
| 91 to 99 | Company internal information | N2+X..30 | (FNC1) | INTERNAL |
When encoding those element strings into a GS1-128 barcode, the FNC1 function character starts it and is automatically encoded by the Barcode Professional. Also notice that the AI has parentheses around it in the human readable text of a GS1-128 barcode, but the parentheses are not encoded in the barcode itself.
Encoding Single GS1-128 AIs
To encode a single element string like the Global Trade Item Number (GTIN) which AI is (01), you just need to specify the AI + Data Field to the Code property. For example, to encode GTIN 95012345678903 you should:
- Set the Symbology property to GS1128
- Setting up dimensions and quiet zones:
All values for barcode dimensions are expressed in INCHES by default. However, Barcode Professional supports other unit of measurement such as Millimeter, Centimeter, and Mils. For modifying the unit of measurement for barcoding, please set up the BarcodeUnit property as needed.
- Set the BarWidth and BarHeight properties based on your requirements (Values are expressed in Inches)
- Set the QuietZone property to 10 times the BarWidth value or based on your requirements (Value is expressed in Inches)
- Set the Code property with the value to encode. For example, Code = "(01)95012345678903" or Code = "0195012345678903" (NOTE: if you do not specify the parenthesis, then they will be automatically added by Barcode Professional in the Human Readable Text below the barcode)
- Setting up the Bearer Bars if needed:
- Set the BearerBarStyle property to Frame, or HorizontalRules
- Set the BearerBarWidth property (Value is expressed in Inches)
GS1-128 allows several Element Strings to be encoded in one barcode, a process called concatenation. Concatenation is advantageous because it means that the symbology elements are only needed once, and the space required for the symbol is smaller than when separate barcodes are used to encode each Element String. It also improves scanning accuracy, allowing for single scanning rather than multiple scanning. The various Element Strings can be transmitted from the bar code reader as a single full string.
When concatenating AIs, the FNC1 function character is used for marking the end of an AI. The AIs which require the usage of FNC1 are listed in the table above
If you specify the AIs between parentheses, then the Barcode Professional takes care of the FNC1 character and will automatically add FNC1 for those AIs requiring it based on the list above. For example, to concatenate AI 8005 Price per Unit of Measure (365 currency units) and AI 10 Batch Numbers (123456), you should:
- Set the Symbology property to GS1128
- Setting up dimensions and quiet zones:
All values for barcode dimensions are expressed in INCHES by default. However, Barcode Professional supports other unit of measurement such as Millimeter, Centimeter, and Mils. For modifying the unit of measurement for barcoding, please set up the BarcodeUnit property as needed.
- Set the BarWidth and BarHeight properties based on your requirements (Values are expressed in Inches)
- Set the QuietZone property to 10 times the BarWidth value or based on your requirements (Value is expressed in Inches)
- Set the Code property with the value to encode. For example, Code = "(8005)000365(10)123456" or Code = "8005000365È10123456" (NOTE: if you do not specify the parenthesis, then you will have to add an FNC1 character È (ASCII 200) for marking the end of the AIs which require an FNC1)
- Setting up the Bearer Bars if needed:
- Set the BearerBarStyle property to Frame, or HorizontalRules
- Set the BearerBarWidth property (Value is expressed in Inches)
NOTES:
The code FNC1 (Function 1 Character) is generally used to concatenate two or more data fields in a unique barcode image.
FNC1 does not have an ASCII representation, but Barcode Professional uses the following character to encode the code FNC1. Note: Barcode Professional will automatically add FNC1 character when necessary.
- È (ASCII 200 / Alt+0200) - The code FNC1
By default, Barcode Professional tries to optimize the value to encode to generate the shortest barcode image by automatically switching between Code 128 char sets. However, you can handle how the data must be encoded specifying some special chars that represent each Code 128 Char Set. The special chars that tell to Barcode Professional what Code Set must be used to encode the data that follows it are these:
- Ò (ASCII 210 / Alt+0210) which indicates that the Char Set to use must be A
- Ó (ASCII 211 / Alt+0211) which indicates that the Char Set to use must be B
- Ô (ASCII 212 / Alt+0212) which indicates that the Char Set to use must be C (Note: When you specify that the data must be encoded using Char Set C, then the number of chars after it must be even!)
IMPORTANT: When using this manual encoding, the FNC1 char must be also explicitly specified as part of the value to encode by using ASCII 200