Skip to main content
Brands & ManufacturersPrinter Partners
GCC / EN:UAE/KSA/QA/KW/OM/BH
AIQR LogoFree GS1 QR codes

Retail, marketplaces & consumers

How Retailers Can Use GTIN, Batch, Serial and Expiry

2D barcodes can carry batch, expiry and serial data with the GTIN. See what that could let retailers do for rotation, recalls, markdowns, returns and waste.

Updated 5 min readintermediate

The short answer

A linear barcode tells a retailer only which product it is. A 2D barcode can also say which batch it came from, when it expires and, if the brand serializes, which individual unit it is. Retailers that capture this data could block expired or recalled items at the till, mark down short-dated stock, rotate stock more accurately and check returns. These are capabilities 2D enables, not things every retailer does today.

  • The GTIN says what the product is; batch, expiry and serial add which run, how fresh and which unit.
  • The industry minimum for 2D at the checkout is reading the GTIN. Using batch, expiry or serial is each retailer's own choice.
  • The most practical early uses are expiry checks, batch-level recalls and short-date markdowns.
  • Brands make these uses possible by printing accurate data in an approved 2D carrier; retailers decide whether to use it.

For decades, the checkout has known only one thing about a product: its GTIN. That is enough to charge the right price, but not to tell one pot of yoghurt from another made three weeks later. 2D barcodes change what the retailer can know at the moment of sale. Whether a given retailer uses that is a separate question, and this article is about what becomes possible.

The identifier ladder

  1. GTIN“What product?”The product type — every bottle of the same 100 ml fragrance shares it.
  2. Batch / lot“Which production run?”Units made together, usually sharing a production date and expiry.
  3. Serial“Which exact unit?”Combined with the GTIN, one individual bottle.
  4. SSCC“Which logistic unit?”A specific carton or pallet as it moves through the supply chain.
  5. GLN“Which party or place?”A company, factory, warehouse, store or dock door.
Each identifier answers a different question. They are used together, not instead of each other: a GTIN with a batch says which product and run; adding a serial pins down a single unit; an SSCC identifies the box it travels in; a GLN says where it is.

Four pieces of data, four different questions

A 2D barcode on a retail pack can carry several GS1 data elements, each introduced by an Application Identifier (AI):

DataAIAnswers the question
GTIN(01)What product is this?
Batch or lot(10)Which production run did it come from?
Expiry date(17)Until when is it good?
Serial number(21)Which individual unit is it?

A linear EAN/UPC barcode carries only the first. A 2D barcode — a GS1 DataMatrix, or a QR code or Data Matrix carrying a GS1 Digital Link — can carry all four. In a Digital Link, batch and serial appear in the path of the web address and expiry in the query string, but the scanner turns them into the same data elements. How these identifiers relate is set out in GTIN, batch, serial, SSCC and GLN explained.

What the checkout must do, and what it may do

The retail industry's 2D goal, Ambition 2027 (also called Sunrise 2027), is about the point of sale (POS) being able to read and process the GTIN from 2D as well as linear barcodes. That is the floor. GS1 describes scanner modes ranging from sending the first GTIN read, through preferring the 2D code, to reading all compliant barcodes. Capturing and acting on batch, expiry or serial goes beyond the minimum.

So a 2D code on your pack does not mean a retailer is using its extra data. It means the retailer could. The basic checkout flow is explained in what happens when a product is scanned at the checkout.

What retailers could do with the extra data

Stop expired items at the till

With the expiry date in the code, the till can compare it with today's date and stop the sale, or warn the cashier. This protects shoppers from out-of-date food or cosmetics that slipped past shelf checks, and it works at self-checkouts where no member of staff looks at the pack.

Recall one batch, not the whole product

When a fault affects a single production run, a retailer with only the GTIN must often pull every unit of that product. If the till reads the batch, the retailer could block just the affected batch at the checkout and leave good stock on sale. Recording batch at sale also tells the retailer how many affected units were already sold, and where.

Mark down short-dated stock

Many retailers already reduce prices on items near their date, usually with printed stickers. With expiry in the code, the price reduction could be calculated at the till from the date itself, reducing manual labelling and mistakes.

Rotate stock and measure waste more accurately

Stock rotation means selling the oldest stock first. Today, many stores manage this by eye. With batch and expiry captured at receipt and at sale, a retailer could see how much of each date is in a store and whether older stock is selling first. Waste reports could then show which batches and dates were thrown away, not just which products.

Check returns

Where a brand serializes its products, a serial number captured at sale could later help a retailer confirm that a returned item is the one it sold. Most retail products are not serialized, so this matters mainly for higher-value goods. Whether a product needs a serial at all is discussed in do all products need serialization?

A worked example

Surya Fresh, a fictional juice brand, prints a QR code carrying a GS1 Digital Link with the GTIN, batch and expiry next to its existing barcode.

  • A small grocer with laser scanners reads the linear barcode. It gets the GTIN and the price, nothing more. Surya Fresh's juice sells exactly as before.
  • A regional supermarket upgrades to imaging scanners that capture all the data. At self-checkout, a carton dated yesterday is flagged and stopped.
  • Two weeks later, Surya Fresh finds a labelling error on one batch. The supermarket blocks that batch at its tills and checks its sales records to see which stores sold it. Other batches stay on the shelf.

The pack was the same for both shops. The difference was what each retailer chose to do with the data.

Choosing the right level

Batch and expiry suit most perishable and dated goods: one value per production run, printed in a 2D code. Serial numbers identify each unit and need a more demanding packaging line. The trade-off is set out in batch-level vs unit-level identification.

What this asks of brands

  • Print the right data, accurately. A wrong expiry in the code is worse than none, because systems will trust it.
  • Keep values consistent. GS1 rules require the linear barcode and the 2D code to carry the same GTIN, and any shared values to match.
  • Use an approved retail carrier and, for Digital Link, the uncompressed form.
  • Ask your retail customers which data they plan to capture. It shapes what is worth printing.

Frequently asked questions

Do I have to put batch and expiry in my 2D code?

The retail 2D goal is built around reading the GTIN. Adding batch, expiry or serial is generally your choice, unless a regulation or a retail customer requires it. It is worthwhile if your customers plan to use the data, or if you want it for your own recalls and consumer pages.

What if the expiry in the 2D code differs from the date printed on the pack?

That is a real risk if they are printed by different systems. GS1 rules require values shared between barcodes on the same pack to match, and the human-readable date should agree too. Generating both from one source on the line is the safest approach.

Does capturing batch data at the till slow the checkout down?

The scanner reads the whole 2D code in one go, so the extra data does not add a scan. Whether the retailer's software does anything extra with it, such as a date check, is a design choice for the retailer.

Can a retailer trace exactly which customer bought a recalled batch?

Only where it already links sales to customers, for example through a loyalty account, and has recorded the batch at the sale. Batch capture at the till makes that link possible; it does not create it on its own.

Sources and further reading

Standards references last reviewed 1 October 2026.