Identification

GTIN Formats — Four Lengths, One Standard

GTIN-14 anatomy: indicator digit, GS1 company prefix, item reference, and check digit. Two rows — case-level indicator-1 example (10614140000010) and padded GTIN-12 indicator-0 example (00614140000099).
Format Digits Barcode type Primary use
GTIN-8 8 EAN-8 Small items, outside North America
GTIN-12 12 UPC-A Consumer units in North America — the everyday "UPC"
GTIN-13 13 EAN-13 Consumer units outside North America — the everyday "EAN"
GTIN-14 14 ITF-14 / GS1-128 Cases, inner packs, groupings — never scanned at consumer POS

Terminology cleanup: "UPC" and "barcode" are colloquial terms for GTIN-12 in North America. "EAN" means GTIN-13. "GTIN" is the umbrella standard that covers all four formats. The GS1 system uses GTIN everywhere; your retailer forms may say "UPC" but mean GTIN-12.

GTIN-14 Anatomy — Indicator Digit

A GTIN-14 is built from a GTIN-12 or GTIN-13 with one digit prepended — the indicator digit — and a recalculated check digit.

Indicator digit Meaning
1 – 8Different packaging levels (inner pack, case, display shipper, pallet, etc.). GS1 assigns no fixed meaning per digit — each brand assigns these to its own hierarchy levels. One company's "1" may be an inner pack; another's may be a full case.
9Variable-measure item — weight or quantity varies at point of sale (bulk, catch-weight)
0Not a valid true indicator digit. A 14-digit string starting with 0 is a padded GTIN-12 or GTIN-13, not a GTIN-14. Adding filler zeros to a shorter GTIN does not create a new identifier.

Source: GS1 US — An Introduction to the Global Trade Item Number (GTIN), Release 2.1

Check Digit Algorithm

Every GTIN ends in a single check digit calculated the same way, regardless of length.

Algorithm (works for GTIN-8, -12, -13, and -14):

Step 1: Write out all digits except the check digit.
Step 2: From the rightmost digit, assign alternating weights: ×3, ×1, ×3, ×1 … moving left.
Step 3: Multiply each digit by its weight. Sum all products.
Step 4: Check digit = nearest multiple of 10 at or above the sum, minus the sum.
          Equivalently: (10 − (sum mod 10)) mod 10

Worked example (GTIN-13 without check digit: 629104150021):

Position 629104 150021 Check
Weight ×1×3×1×3×1×3 ×1×3×1×3×1×3
Product 6693012 1150023 = 57

Next multiple of 10 above 57 = 60  →  check digit = 60 − 57 = 3

Full GTIN-13: 6291041500213

Source: GS1 US — Check Digit Calculator (official document)

Packaging Hierarchy — Which GTIN Goes Where

Pack level GTIN format Where it appears
Each (consumer unit)GTIN-12 or GTIN-13POS barcode on the retail package; every retailer item-setup form
Inner packGTIN-14 (indicator 1–8)Wholesale/distributor ordering; some retailer forms require it
Case (master carton)GTIN-14 (indicator 1–8)Warehouse receiving, EDI 856 ASN, warehouse management systems
Pallet (SSCC)SSCC — 18 digits, not a GTINShipping labels (GS1-128), EDI 856; identifies a specific shipment, not a product

SSCC vs GTIN-14

Both are 14-digit-ish numbers on shipping labels and both involve cases — this is the most common source of confusion.

A GTIN-14 identifies a product (what's in the box — 12-count case of SKU X). It's permanent and reusable across every shipment of that case configuration.

An SSCC (Serial Shipping Container Code) identifies a specific physical pallet or container in a specific shipment. It's 18 digits, generated per shipment, and appears on the GS1-128 pallet label. Two pallets of the same product have different SSCCs.

Syndication

How GDSN works

GDSN data flow: supplier publishes to source pool, routed to target pool, delivered to retailer. CIC response returns Received, Synchronized, or Review/Rejected.

Product data travels through GDSN along a fixed path: a brand publishes a record to a certified data pool, the pool validates and routes it to every subscribed recipient, and each recipient's system sends back a Catalogue Item Confirmation (CIC). GS1 International sets the standards — GTIN formats, GLN registrations, GPC classification codes, mandatory attribute lists — that the pool enforces. Pool operators (Syndigo, Salsify, and others) run the routing infrastructure; the rules inside the pipe come from GS1, not from any pool operator.

GDSN does not carry pricing, terms, or retailer-specific promotional fields. Those attributes live in separate portal uploads (Supplier One, SVHarbor, KeHE CONNECT) alongside the GDSN-synced record.

2D barcodes add GTIN, batch/lot, expiration date, and a GS1 Digital Link URL to your packaging — all fed from the same product master that populates GDSN. See Part 4 — Compliance Horizon and the dedicated GS1 Sunrise 2027 guide for the packaging implications.

Data pool providers

A GDSN data pool is the GS1-certified intermediary that validates your item record and routes it to retail and distributor recipients. Kroger's Item API (KIA) requires brands to choose from three named providers; other retailers accept any GS1-certified pool.

Provider GDSN pool Retailer mandates Pricing model
Syndigo
Acquired 1WorldSync, September 2025
GS1-certified; dominant US pool post-acquisition — 97% of US GLNs, covers 90% of top 20 US retailers. Pre-merger legacy pool publication success rates ran ~70%; Syndigo claims 90%. Kroger Our Brands and Harris Teeter suppliers must use Syndigo. No other retailer-specific mandates publicly documented. Varies — structured as revenue-based, SKU-count, or per-recipient tiers depending on contract. Precise pricing not publicly available.
Salsify GS1-certified data pool; operates independently from Syndigo; interoperable with other GDSN pools. Part of Salsify’s broader PIM and product experience management platform, with AI-powered GDSN feedback troubleshooting (FeedbackIQ). Kroger: one of three KIA certified providers. No other retailer-specific mandates publicly documented. Not publicly available.
1WorldSync
Now Syndigo
Absorbed by Syndigo, September 2025. Migration described as "phased — no public dates." Existing 1WorldSync contracts honored per Syndigo's stated commitments. Still listed as a separate Kroger KIA certified provider in the April 2025 FAQ. Kroger had not publicly updated the FAQ to reflect the consolidation as of June 2026. Not applicable post-acquisition. Renewal conversations now happen with Syndigo.

Sources: Syndigo acquisition and pool stats — syndigo.com/news/syndigo-acquires-1worldsync/; syndigo.com/blog/legacy-gdsn-challenges/ · Salsify GDSN pool — salsify.com/pxm/gdsn (accessed June 2026) · Pricing model shape — SPS Commerce (spscommerce.com/community/articles/gdsn-data-synchronization) · Kroger certified providers — KIA FAQ (thekrogerco.com, April 3, 2025) · Harris Teeter mandate — thekrogerco.com/vendor-suppliers/vendors/retail-vendors/ (June 2026; see acquisition context) · 1WorldSync integration timeline — syndigo.com/1worldsync/syndigo-1worldsync-integration-faq/

The rejection attributes that matter

GDSN validates format and presence — not accuracy. The errors below either block publication immediately (visible, fixable before any product ships) or pass validation but generate chargebacks once the item is in distribution (silent, cumulative). The silent errors cost more. See the full GDSN rejection attribute breakdown for worked examples and cost context.

Attribute What triggers rejection Food-brand note
Brand name Doesn’t match the recipient’s approved brand list exactly — legal suffix, capitalization, and spacing all matter. “Meridian Foods LLC” and “Meridian Foods” are different strings. Check the retailer’s brand registration, not your own records. If the brand isn’t registered with the recipient, the publication stalls regardless of what the GDSN record says.
GLN (three required) Manufacturer GLN, information provider GLN, or brand owner GLN missing. All three must be populated. Many brands populate one and leave the other two blank. Register GLNs via GS1 Company Database (GEPIR). The same company may need multiple GLNs if it holds multiple roles — e.g., acting as its own information provider.
GTIN hierarchy Wrong parent-child link, or a case GTIN not yet registered in GS1 Global Registry. Common when a new pack configuration is added and linked to the wrong unit level. Adding a 12-count club-store case alongside an existing 6-count? The new case GTIN must be registered in GS1 Global Registry before publication; linking it to the wrong unit level blocks the entire record.
Barcode type gs1TradeItemIdentificationKeyValue doesn’t match the recipient’s expected barcode type. A UPC-A submitted where the retailer expects EAN-13 fails even though the underlying number is valid. US food brands almost always publish UPC-A (GTIN-12). Confirm the recipient’s expected type before first publication — mismatches don’t always produce a clear error message.
Measurement units Dimensions or weights stored in one unit in the ERP, converted to another in the GDSN record. Rounding after conversion introduces a mismatch that passes validation but causes dimension chargebacks at receiving. Store and publish in one unit system. Conversion at publication time is the source of the error — the retailer portal often stores values in a different unit than the GDSN record.
Allergen declarations Missing or incomplete for food categories. A record declaring “Contains: milk” but omitting soy passes GDSN validation — the gap surfaces at UNFI or KeHE downstream, not at publication. A missing allergen field is the attribute most likely to be escalated beyond standard rejection. Both UNFI and KeHE apply their own allergen validation rules on top of GDSN’s. See UNFI vs. KeHE item data comparison.
Net content Missing or misformatted. Required for all food items. Format must match the recipient’s expected unit (oz vs. g). Net content and net weight are different fields. Populating one and leaving the other blank is a common source of rejection for products with both volume and weight measurements.
Packaging material type Value not accepted by the recipient, or field left blank. Accepted values are enumerated (CERAMIC, CLOTH_OR_FABRIC, COMPOSITE, GLASS, etc.); free-text entries fail. Sustainability reporting requirements are driving more recipients to enforce this field. Brands that left it optional before 2024 are increasingly seeing rejections in 2025–2026.
Country of origin Missing or wrong. Required in most food categories under US regulations. Multi-ingredient products with components from different countries typically require the country of the final manufacturing step, not the country of each ingredient.
Effective date Not advanced when republishing an update to an existing record. The effective date must be later than the previous publication date — an overlooked field causes rejection that has nothing to do with the data itself. A packaging redesign or formula change flowing through GDSN requires an updated effective date. Build this into the change process before the first update, not after the first rejection.
Description fields Short description, functional name, or additional item description missing, truncated, or containing invalid characters. Character limits and prohibited characters vary by recipient. Em dashes, curly quotes, and non-ASCII characters in product names are common culprits. The rejection message names the field but not the specific character — compare character-by-character against the recipient’s spec.
The silent errors cost more. Case dimensions that are wrong but correctly formatted, or allergen declarations that are populated but incomplete, pass the data pool without a flag. Each generates the same OTIF penalties as any other data mismatch — on every affected shipment, until someone reconciles the records. See 12 Master Data Fields That Cause Most CPG Chargebacks for the full cost analysis.

Sources: Brand name, GLN, barcode type, packaging material, country of origin, effective date, description fields — syndigo.com/blog/top-gdsn-data-errors/ (primary, accessed June 2026) · Allergen declarations, net content, GTIN hierarchy, measurement units — lailarallc.com/blog/gdsn-attribute-errors-retailer-rejection (corroborated secondary; food-specific detail added) · UNFI / KeHE allergen validation — lailarallc.com/blog/unfi-vs-kehe-item-data-requirements-comparison

Publication states

A GDSN record moves through two supplier-side workflow states and receives one of four CIC response statuses from each recipient.

Draft
Record is in the data pool but has not been published to any recipient. Editable freely — nothing is visible to retailers or distributors.
Published
Record has been submitted to one or more recipients. The pool has validated and routed it. A Catalogue Item Confirmation (CIC) is expected back from each recipient.
CIC: Received
Recipient’s system has the record; pool-level validation passed; the retailer’s internal audit is in progress. Not yet loaded into the item file.
CIC: Synchronized
Recipient accepted the record and loaded it into their system. The item is live. This is the terminal success state — no further action required.
CIC: Review / Rejected
Record failed the recipient’s validation or internal audit. A CIC999 message specifies the failed field. Correct the record, advance the effective date, and republish.
CIC: Received is not success — it is the waiting state. A record that stays in “Received” for more than a few business days without advancing to Synchronized or Review should be followed up with the recipient’s vendor support. Silence is not acceptance.

Sources: CIC status definitions — 1WorldSync Dot Foods GDSN FAQ (1worldsync.com, 2023); SPS Commerce (spscommerce.com/community/articles/gdsn-data-synchronization)

Retailer Quick-Reference

Required hierarchy, portal name, and the one thing that trips up new vendors — per retailer.

Retailer Portal / system Required hierarchy Keyed unit Notorious gotcha
Walmart Supplier One (supplierone.walmart.com)
Replaced Item 360, September 2024
Each → Inner/Warehouse Pack → Case → Pallet; unique GTIN per level Consumer unit (each) Once an item is created in Walmart's catalog, its trade item hierarchy is permanent — an incorrect configuration can't be edited, only rebuilt as a new item, and changing the sellable quantity in a case requires acquiring a brand-new GTIN. Once GDSN-synced, dimensions also lock; corrections must flow through the data pool. (Dimension & Weight Integrity →)
Costco Vendor Hub (hub.costco.com) Item UPC + Case GTIN Consumer unit (member-facing pack) Costco's item setup is buyer-driven and barely publicly documented — its notorious data landmines (ASN lot codes, quantity mismatches at ~$10/carton) surface at receiving, not at setup. [EDI-vendor documentation, not Costco primary]
Whole Foods Market Vendor Internet Portal / VIP (vip.wholefoods.com) for cost file maintenance; new item setup via Amazon Grocery Central (grocerycentral.amazon.com) Consumer unit; 13-digit barcode required for all packaged products Consumer unit (each) Whole Foods gates US item-setup documentation behind supplier login — verify requirements directly in the portal; no publicly verifiable gotcha is listed here by design.
UNFI SVHarbor (svharbor.unfi.com) Consumer unit published via GDSN to GLN 0041130079153 ("UNFI Corporate"); Item Proposal in SVHarbor required to activate Consumer unit (each) Publishing to GLN 0041130079153 does not process the item — a separate Item Proposal must be submitted in SVHarbor, or the product sits inactive with no rejection notice.
KeHE KeHE CONNECT® (connectsupplier.kehe.com) Each + Sellable Case Pack + Warehouse Receiving Pack — every level requires its own unique GTIN-14 (ITF-14) Case (ordering unit) KeHE requires a unique GTIN-14 at every packaging level — creating it is solely the supplier's responsibility. The consumer unit UPC (GTIN-12) cannot serve as the case GTIN; errors surface at warehouse receiving, not at setup time.
Kroger Kroger Item API (KIA)
Certified providers: Syndigo, Salsify, 1WorldSync · legacy VIP mid-phase-out
Consumer unit GTIN via certified provider syndication (Syndigo / Salsify / 1WorldSync) Consumer unit (each) Kroger no longer has one front door — new items now syndicate through one of three certified providers (Syndigo, Salsify, 1WorldSync) via the Kroger Item API, the legacy VIP portal is mid-phase-out, and Our Brands / Harris Teeter items can only go through Syndigo.

Retailer systems verified June 2026 — these get renamed; check before relying.

Sources: Walmart — Supplier One HelpDocs (supplierone.helpdocs.io, confirmed via search-result text, June 2026) · Costco — Vendor Hub (hub.costco.com) · Whole Foods Market — vip.wholefoods.com; grocerycentral.amazon.com (US portals confirmed; content login-gated) · UNFI — 1WorldSync UNFI GDSN FAQ (updated 2024-02-19) · KeHE — KeHE AOM & GTIN Requirements, corroborated via Presence Marketing (pmidpi.com), 2025 · Kroger — KIA FAQ (thekrogerco.com, April 3, 2025); thekrogerco.com/vendor-suppliers/vendors/retail-vendors/ (June 2026)

Compliance Horizon

GS1 Sunrise 2027 — 2D Barcodes

Sunrise 2027 is an industry readiness milestone, not a government mandate. GS1 is a voluntary standards body with no enforcement authority. The goal: all retail POS systems capable of reading GS1-compliant 2D barcodes by end of 2027. UPC linear barcodes remain valid at retail after the 2027 date.

The commercial stakes are real: over 60 major retailers — including Walmart, Target, and Kroger — have publicly committed to POS readiness by the deadline. Non-readiness creates delist risk and reduced shelf placement, not a regulatory fine.

What counts as a compliant 2D barcode. Two approved formats: (1) a QR code with GS1 Digital Link URI syntax encoding your GTIN; (2) a GS1 DataMatrix with GS1 Application Identifiers. A marketing QR code pointing to a website URL without GS1 structure cannot be parsed at POS and does not satisfy the requirement.

Dual-marking requirement. Any product carrying a 2D barcode on-pack must also carry a traditional linear barcode until 90% of POS scanning solutions can read GS1-compliant 2D barcodes and capture the GTIN. As of mid-2026, that threshold has not been declared met.

Bottom line for food brands: If you add a QR code to packaging before 2027, keep the UPC. Ensure on-pack QR codes use GS1 Digital Link structure so they encode your GTIN, not just a website URL.

FSMA 204 — Food Traceability Rule

Section 204 of FSMA requires additional lot-level recordkeeping for foods on the FDA's Food Traceability List (FTL). Covered foods include fresh produce, shell eggs, nut butters, finfish, crustaceans, and certain ready-to-eat deli items. The rule requires tracking Key Data Elements (KDEs) at each Critical Tracking Event (CTE) — harvesting, cooling, initial packing, shipping, receiving.

Enforcement date: July 20, 2028. The original compliance date of January 20, 2026 was extended 30 months by Congressional directive. FDA is directed not to enforce the rule prior to July 20, 2028.

Most published sources still cite the original January 2026 date. The correct enforcement date is July 20, 2028 — per Federal Register notice dated August 7, 2025 (Docket No. 2025-14967).

Logistics Numbers

NMFC Freight Class

LTL freight class runs from 50 (densest, cheapest to ship per hundredweight) to 500 (lightest or most difficult, most expensive). Four factors determine class: density, handling, stowability, and liability. For most packaged food, density is the determining factor.

Step 1 — Calculate density:

Volume (ft³) = L × W × H (inches) ÷ 1,728
Density (PCF) = Weight (lbs) ÷ Volume (ft³)

Example: 30 lb case, 18″ × 14″ × 10″ → volume = 1.46 ft³ → density = 20.5 PCF → Class 70

Step 2 — Look up the class:

July 2025 overhaul: NMFC Docket 2025-1 (effective July 19, 2025) replaced the old 11-tier scale with a new 13-tier scale, adding Classes 50 and 55 for the densest freight. Any freight quote tool or reference guide dated before July 19, 2025 shows incorrect class boundaries.
Density (lbs/ft³) NMFC Class
50 or greater50
35 – <5055
30 – <3560
22.5 – <3065
15 – <22.570
12 – <1585
10 – <1292.5
8 – <10100
6 – <8125
4 – <6175
2 – <4250
1 – <2300
Less than 1400

Source: NMFTA Docket 2025-1, effective July 19, 2025 · nmfta.org

DIM Weight Divisors

Parcel carriers charge the greater of actual weight or dimensional weight (DIM weight) — the space a package occupies expressed as pounds. The formula:

DIM Weight (lbs) = L × W × H (inches) ÷ divisor
Billable weight = MAX(actual weight, DIM weight)
Carrier / Service Divisor Notes
UPS (account / daily rates) 139 Ground, 2nd Day Air, Next Day Air
UPS (retail / walk-in rates) 166 UPS Store or counter rates without a contract; high-volume shippers can negotiate 139
FedEx (domestic) 139 Ground, Home Delivery, Express
USPS 166 Priority Mail and Priority Mail Express confirmed; threshold >1 ft³ (1,728 in³). USPS Ground Advantage rule varies — verify at usps.com before relying on this row.
LTL freight N/A LTL uses density → freight class, not a DIM divisor — see NMFC table above

UPS and FedEx divisors: corroborated secondary (packcalc.com March 2026, packizon.com) — ups.com timed out; fedex.com returned 403 during verification. USPS threshold (>1 ft³) confirmed primary via pe.usps.com/text/dmm300/Notice123.htm. Divisors verified June 11, 2026 · carriers revise in annual rate updates (Dec–Jan cycle) — reverify after June 2027.

August 2025 change (UPS & FedEx): Effective August 18, 2025, both carriers round every fractional inch up before calculating DIM weight — 9.1″ becomes 10″, 5.01″ becomes 6″. Any packaging sized around fractional-inch clearances now bills at a higher cubic volume. (Supply Chain Dive, citing UPS direct statement, August 2025)

TiHi

Ti is the number of cases per layer on a pallet. Hi is the number of layers stacked high. Together they define the pallet configuration a retailer expects on inbound shipments.

Total cases per pallet = Ti × Hi

Example: Ti 12, Hi 8 → 96 cases per pallet

Retailers specify TiHi on purchase orders. Warehouse systems validate the configuration at receiving, not just the case count — shipping Ti 14, Hi 5 when the order called for Ti 12, Hi 6 can trigger a chargeback even when the total case count is identical.

Case Cube

Case cube is the volume of a master carton in cubic feet, used for warehouse slotting, pallet-build planning, and TiHi calculation.

Case Cube (ft³) = L × W × H (inches) ÷ 1,728

Example: 18″ × 14″ × 10″ → 2,520 ÷ 1,728 = 1.46 ft³

1,728 = 12 × 12 × 12 — one cubic foot in cubic inches