If you've started shipping to a grocery chain, a regional distributor, or a club store, odds are someone has already handed you a vendor compliance document with "GS1-128 barcode required" somewhere in the fine print. Maybe you've Googled it, landed on a page full of acronyms, and closed the tab.

This guide is the one you actually keep open. We'll cover what a GS1-128 barcode is, every piece that goes inside it, and — critically — exactly how to register with GS1, get your company's numbers, and assign them to your products correctly. No fluff, no upsells. Just the process.


What Is a GS1-128 Barcode?

A GS1-128 is a type of linear (1D) barcode — the kind a scanner reads in a single sweep — that carries structured data using a system of Application Identifiers (AIs). Application Identifiers are 2- to 4-digit codes that tell the scanner what kind of data follows. AI (01) means "here comes a product number." AI (10) means "here comes a lot number." And so on.

For produce case labels — specifically those that follow the Produce Traceability Initiative (PTI) standards — the GS1-128 barcode is the machine-readable backbone. It's what lets a distribution center scan your case and instantly know what's in it, which lot it came from, and when it was packed.


Step 1: Register with GS1 US and Get Your Company Prefix

Before you can build a single barcode, you should be registered with GS1 US — the US branch of GS1, the global standards organization that manages product identification numbers. If you are supplying mainstream retailers or PTI trading partners, you should use GS1-issued identifiers assigned through your own licensed GS1 Company Prefix rather than trying to construct unauthorized numbers.

Where to register

Go to gs1us.org and click "Get a GS1 Company Prefix" or "License a GTIN."

What you're choosing between

Option A — GS1 Company Prefix

This is the right choice for most produce grower-packers. A Company Prefix is a unique string of digits (6–10 digits long) that is permanently linked to your company in the global GS1 database. You use it as the foundation for building all your own product numbers (GTINs), location numbers (GLNs), and pallet serial numbers (SSCCs).

Pricing is based on capacity — how many unique products you need to number:

Capacity (# of unique products) Approximate Initial Fee
10 products ~$250
100 products ~$750
10,000 products ~$2,500
10,000 products ~$6,500
100,000 products ~$10,500

Fees are approximate and subject to change. Annual renewal fees apply. Check gs1us.org for current pricing.

Keep your GS1 prefix current. It's yours permanently and appears in every barcode you will ever create.

Option B — Individual GTINs

If you only need one or two product codes and don't anticipate growing your product line, GS1 US offers individual GTINs for a one-time fee of $30 each, with no annual renewal fee. However, individual GTINs cannot be used to create location numbers (GLNs) or pallet serial codes (SSCCs), which you will eventually need for full PTI compliance. A Company Prefix is the better long-term investment for most shippers.

Avoid Generic Prefixes

Do not use the IFPA "generic company prefix" (033383) for your own product identification. That prefix is for generic pre-packed consumer items only and does not link your products to your company in the supply chain. You need your own prefix.

The registration process

  1. Go to gs1us.org
  2. Select "Get a GS1 Company Prefix" (or individual GTIN if applicable)
  3. Use the capacity estimator to select your tier — count the number of unique commodity/variety/pack size combinations you ship
  4. Complete the online application with your legal business name, address, and contact details
  5. Pay the initial licensing fee
  6. You'll receive your GS1 Company Prefix — typically within minutes for online purchases
  7. GS1 US will give you access to GS1 US Data Hub, an online tool for creating and managing your GTINs

Once you have your prefix, keep it safe. It's yours permanently and appears in every barcode you will ever create.


Step 2: Build Your GTINs

A GTIN (Global Trade Item Number) is a 14-digit number that uniquely identifies a specific product — in produce, that means a specific commodity, variety, pack size, and packaging configuration. Every distinct product your farm ships needs its own GTIN.

What counts as a separate product?

Each unique combination of the following needs its own GTIN:

  • Commodity (e.g., romaine lettuce vs. butterhead lettuce)
  • Pack size or count (e.g., 24-count carton vs. 18-count carton)
  • Net weight (e.g., 10 lb. bag vs. 5 lb. bag)
  • Packaging type (e.g., clamshell vs. bulk carton)

A 24-count romaine carton and an 18-count romaine carton are two different GTINs. Plan your GTIN list before you start assigning numbers.

How to build a GTIN-14 from your Company Prefix

A GTIN-14 has this structure:

[ Indicator Digit ] [ GS1 Company Prefix ] [ Item Reference ] [ Check Digit ]
  • Indicator Digit (1 digit): For case-level trade items, this is typically 1–8. Use "0" for items sold at the consumer level.
  • GS1 Company Prefix (6–10 digits): Your unique company number from GS1 US.
  • Item Reference (variable): The digits you assign to uniquely identify this product within your prefix.
  • Check Digit (1 digit): A calculated value based on the preceding 13 digits. GS1 US Data Hub calculates this automatically.

In practice, you don't manually build this number digit by digit — GS1 US Data Hub walks you through it and generates the GTIN for you. The important thing is to record every GTIN you create in a product register (a simple spreadsheet listing each GTIN alongside its commodity, variety, and pack configuration). Avoid reusing or reassigning GTINs to different products; GS1 maintains strict GTIN non-reuse standards and timelines to ensure long-term global data integrity.

Saving Your Setup — Do It Once, Use It Every Harvest

Once your GTINs are assigned, the next question is: where do you store them so your label workflow isn't interrupted every time someone in the pack shed needs to look something up?

In farmlabel.app, this is handled through a dedicated Setup tab in your Google Sheet. You fill it in once — and it becomes the permanent reference your harvest tracker pulls from automatically every time you generate labels.

The setup captures everything that rarely changes between harvests:

  • Farm name, farm initials, and farm unique initials — used to build lot codes and populate the human-readable grower field on your label
  • Planting numbers — linking each harvest row back to a specific field or block
  • Crew names and initials — for internal traceability and lot code construction
  • Product descriptions — the commodity and pack configuration (e.g., "Baby Dill 24 count," "Cilantro 60 count, Box")
  • Case Level UPC — your 14-digit GTIN for each case-level product
  • Unit UPC — the consumer-unit barcode for each product (if applicable)
  • PLU — the 4- or 5-digit PLU code used in retail produce departments

The result is that when your crew logs a harvest, they're selecting from a pre-validated product list with the correct GTINs already attached. There's no manual GTIN entry at the point of label printing — and no risk of a typo in a 14-digit number finding its way onto a case going to a major retailer. It also means your GTIN register lives in the same place as your label workflow. One source of truth.


Step 3: Understand What Goes Inside the GS1-128 Barcode

Now that you have a GTIN, you can build your GS1-128. The barcode is structured as a series of Application Identifier (AI) + data pairs, concatenated in a specific order.

Commonly expected fields on a PTI-aligned case label

Per PTI best practices and common retail receiver guidelines, the primary standard content encoded in the GS1-128 barcode on a produce case label includes:

AI Field Format Notes
(01) GTIN 14 digits Fixed length. Always first.
(10) Batch/Lot Number Variable Up to 20 characters. PTI implementations commonly recommend uppercase alphanumeric lot codes to reduce scanning and transcription errors.

Depending on buyer specifications, other date-related AIs may also be encoded:

AI Field Format Notes
(13) Packaging Date YYMMDD The date the product was packed into the case.
(11) Production Date YYMMDD The harvest/production date, if different from pack date.
(15) Best Before Date YYMMDD "Best if used by" date when applicable.
(17) Use By / Expiry Date YYMMDD Hard expiration date, if applicable.
(37) Count of Trade Items Variable Number of individual units in the case.

For pallet-level labels, you also need:

AI Field Format Notes
(00) SSCC 18 digits Serial Shipping Container Code. Uniquely identifies each pallet.

A note on AIs in human-readable text

On the physical label, Application Identifiers are shown in parentheses in the human-readable text printed above or below the barcode — for example: (01) 10312345678906 (10) LOT2024A. The parentheses are only for human reading; they are not encoded in the barcode itself.


Step 4: The PTI Voice Pick Code

The Voice Pick Code is a short numeric verification code that often appears in the bottom-right corner of a case label, usually represented as two distinct numeric segments (a small 2-digit code and a larger 2-digit code). It is designed to support voice-directed warehouse picking systems, allowing a picker to confirm a product verbally without needing to scan it directly.

The code is derived from a CRC16 checksum calculation applied to the combined string of the GTIN, Lot Number, and packaging date. Most modern labeling software (including farmlabel.app) calculates this value automatically based on your daily run data.

While voice-directed picking requirements can vary by buyer, understanding how the Voice Pick Code is generated helps you address technical compliance reviews with your trading partners.


Step 5: What Else Belongs on the Label (Human-Readable Text)

Beyond the barcode, standard industry templates and buyer specifications typically expect a range of human-readable text elements on the case label. While specific requirements vary by trading partner, a standard layout generally includes:

  • Commodity (e.g., "Romaine Lettuce")
  • Variety or Pack Style (to assist with manual sorting)
  • Pack size / count (e.g., "24 Count")
  • Net weight (where required by legal packaging standards)
  • Grower/shipper name and address
  • Country of Origin (to satisfy regulatory labeling compliance)
  • Lot number (which must match the data encoded in the barcode)
  • Pack date
  • PTI Voice Pick Code (where requested by voice-directed receivers)
  • GTIN in clear human-readable form alongside the barcode

Step 6: Print Quality and Verification

A GS1-128 barcode that can't be scanned is a major liability — it can hold up your shipment at the receiving dock and damage your relationship with the buyer.

PTI specifications recommend a minimum print quality grade of 1.5 as defined by the ISO/IEC 15416 standard. In practical terms:

  • Use a thermal transfer or direct thermal label printer with adequate DPI (203 DPI minimum; 300 DPI preferred for sharp barcodes)
  • Avoid inkjet printing on plain paper for barcode labels — it smears easily and frequently fails compliance checks
  • Verify, don't just scan: While test-scanning with a handheld scanner or smartphone confirms basic readability, large buyers may require formal barcode verification against ISO/IEC standards using a certified barcode verifier.
  • If a label reprints mid-shift due to a printer jam, verify the reprint alignment and print quality before applying it to a case.

The Full Registration Checklist

  • Register at gs1us.org — choose a Company Prefix or individual GTINs based on your product count
  • Record your GS1 Company Prefix — store it somewhere permanent; you'll use it forever
  • Build your product list — list every commodity/variety/pack size you ship and assign each a unique GTIN in GS1 US Data Hub
  • Save your setup once — enter your farm details, crew, products, Case Level GTINs, Unit UPCs, and PLUs into your harvest tracker setup tab so they're always ready at label time
  • Set up your lot code format — decide how you'll structure your harvest lot codes (e.g., field + date: FIELD1-20250815). Keep them consistent, uppercase, no special characters
  • Build your label template — make sure it includes AI (01) GTIN, AI (10) Lot, pack date, human-readable fields, and Voice Pick Code at minimum
  • Test print and scan — verify your label scans cleanly before the first real shipment
  • Register your location (GLN) — if your buyers require a Global Location Number for your packing facility, this is also created through GS1 US Data Hub using your Company Prefix

One Last Thing: Keep Your GS1 Membership Current

Your GS1 Company Prefix requires an annual renewal fee to remain active. If your GS1 license lapses for an extended period, your identifiers may eventually become inactive or lose their authorized status in global registry databases, causing automated retail check-in systems to flag your shipments. Set a calendar reminder well before your renewal date. It's a key step to preventing an unexpected compliance issue at a major retail account.

Simplify Your GS1-128 Barcode Generation

farmlabel.app generates PTI-compliant GS1-128 barcode labels—including GTIN, lot number, pack date, and Voice Pick Code—directly from a Google Sheets harvest log.

Learn more about our Label Packs