The short version: by the end of 2027, retail point-of-sale systems worldwide are expected to accept 2D barcodes — GS1 DataMatrix and QR Codes carrying GS1 Digital Link URIs — alongside the familiar EAN/UPC stripes. GS1 calls this milestone Sunrise 2027. If you build label software, packaging workflows, inventory, traceability, or e-commerce product systems, this transition lands in your codebase.
A traditional EAN/UPC barcode carries one thing: the GTIN. A 2D symbol carries the GTIN plus batch/lot, serial number, expiry date, weight and more — which enables expiry-aware checkout (stores can automatically block the sale of recalled or expired goods), precise recalls, better traceability, and less packaging clutter. And when the 2D symbol is a QR Code with a Digital Link URI, the same symbol scans at the till and in a consumer's phone camera, resolving to a product page you control.
| Format | Content syntax | Use when |
|---|---|---|
| GS1 DataMatrix | Element strings — (01)04006381333931(17)271231(10)L1 with FNC1 | Regulated/healthcare labeling, logistics, tight print space |
| QR + GS1 Digital Link | A web URI — https://id.gs1.org/01/04006381333931/10/L1?17=271231 | Consumer packs — phone-scannable, links to your product page, POS-ready |
A Digital Link URI encodes GS1 Application Identifiers into a standardized path: primary key first (/01/ = GTIN), then qualifiers in mandated order (/22/ CPV, /10/ lot, /21/ serial), with remaining AIs as query parameters. You can host it on id.gs1.org or your own resolver domain.
]d2-style symbology identifiers, or Digital Link URIs — your system needs the AIs back out, validated.You can implement the GS1 General Specifications yourself (the AI table alone runs to hundreds of entries), or call an API that already did:
# Build + validate a Digital Link from product data
curl -X POST https://gs1kit-digital-link-2d-barcodes.p.rapidapi.com/gs1/link \
-H "content-type: application/json" -H "X-RapidAPI-Key: $KEY" \
-H "X-RapidAPI-Host: gs1kit-digital-link-2d-barcodes.p.rapidapi.com" \
-d '{"gtin":"4006381333931","lot":"L1","expiry":"2027-12-31"}'
# → { "uri": "https://id.gs1.org/01/04006381333931/10/L1?17=271231",
# "elementString": "(01)04006381333931(17)271231(10)L1", "ais": [...] }
# Render the Sunrise 2027 symbol (gs1datamatrix | qr | gs1-128)
curl -X POST .../gs1/barcode -d '{"gtin":"4006381333931","lot":"L1",
"expiry":"2027-12-31","symbology":"gs1datamatrix","format":"svg"}'
Invalid data (a wrong check digit, month 13, an over-long lot) returns a clear 400 listing each failing AI — not a scannable-but-wrong label.
The free GS1 Digital Link & 2D barcode generator runs on the GS1Kit API: GTIN in, validated DataMatrix / Digital Link QR out. When you're ready to automate, plans start at $5/mo.
Get an API key →