Understanding Barcode Numbers: What the Data Means
How to read and interpret barcode numbers. Understand GS1 country prefixes, manufacturer codes, product identifiers, and check digits.

Barcode numbers are structured product identifiers managed by GS1, a global standards organization operating in 116 countries with over 2 million member companies. Each section of a barcode number carries specific meaning: a GS1 country prefix (where the product was registered), a manufacturer code (which company), a product code (which item), and a check digit (for error detection). The GS1 system assigns over 1 billion unique product identifiers worldwide. Understanding this structure helps you verify products, detect counterfeits, and make sense of supply chain data.
Retail Barcode Numbers: UPC-A and EAN-13
The barcodes on products you buy in stores follow the GS1 numbering system, a global standard managed by GS1, a non-profit with member organizations in over 110 countries.
UPC-A Structure (12 Digits)
Every UPC-A barcode on a North American product breaks down as:
0 36000 29145 2
│ │ │ │
│ │ │ └─ Check digit (mathematically calculated)
│ │ └──────── Product code (assigned by manufacturer)
│ └─────────────── Manufacturer code (GS1 company prefix)
└────────────────── Number system digit (product type)
Number system digit: The first digit indicates the type of product or numbering scheme:
- 0, 1, 6, 7, 8: Standard retail products
- 2: Variable-weight items (meat, produce priced by weight)
- 3: Pharmaceutical products (National Drug Code)
- 4: In-store use (loyalty cards, store-specific codes)
- 5: Coupons
Manufacturer code (Company Prefix): Assigned by GS1 US, this uniquely identifies the company. Larger prefixes (fewer digits) go to large companies needing many product codes; smaller prefixes go to companies with fewer products.
Product code: Assigned by the manufacturer to identify each specific product. Different sizes, flavors, and variants each get their own code.
Check digit: Calculated using the modulo 10 algorithm. This single digit validates the entire barcode. If even one other digit is misread, the check digit won't match and the scanner rejects the read.
EAN-13 Structure (13 Digits)
EAN-13 barcodes used internationally follow the same logic with one addition: a country prefix.
590 1234 12345 7
│ │ │ │
│ │ │ └─ Check digit
│ │ └──────── Product code
│ └───────────── Company prefix
└────────────────── GS1 country prefix (Poland in this example)
The first 2-3 digits identify the GS1 member organization that issued the barcode. This is the GS1 prefix — and it's one of the most commonly misunderstood aspects of barcodes.
GS1 Country Prefixes
The GS1 prefix tells you where the product was registered, not where it was manufactured. A product with prefix 00-13 (United States) could be manufactured in China, Vietnam, or anywhere else. The prefix only means the company registered the barcode through GS1 US.
Common GS1 Prefixes
| Prefix | Country/Region |
|---|---|
| 00-13 | United States and Canada |
| 30-37 | France |
| 40-44 | Germany |
| 45, 49 | Japan |
| 46 | Russia |
| 471 | Taiwan |
| 480 | Philippines |
| 489 | Hong Kong |
| 50 | United Kingdom |
| 54 | Belgium and Luxembourg |
| 57 | Denmark |
| 590 | Poland |
| 64 | Finland |
| 690-699 | China |
| 729 | Israel |
| 73 | Sweden |
| 76 | Switzerland |
| 80-83 | Italy |
| 84 | Spain |
| 880 | South Korea |
| 885 | Thailand |
| 888 | Singapore |
| 890 | India |
| 893 | Vietnam |
| 899 | Indonesia |
| 90-91 | Austria |
| 94 | New Zealand |
| 93 | Australia |
When you scan a product with our free barcode scanner, the decoded results include the GS1 prefix and the corresponding country of registration.
Special Prefixes
Some prefixes serve specific purposes rather than identifying countries:
- 020-029: In-store use (retailer-specific product codes)
- 040-049: In-store use
- 200-299: In-store use (variable weight items)
- 977: Serial publications (ISSN)
- 978-979: Books (ISBN)
- 980: Refund receipts
- 981-984: Common currency coupons
If a product's barcode starts with 978 or 979, it's a book — the remaining digits encode the ISBN.
The Check Digit: How Barcode Validation Works
Every UPC and EAN barcode ends with a check digit calculated from the preceding digits. This mathematical safeguard catches errors from damaged barcodes, poor printing, or manual data entry mistakes.
Modulo 10 Algorithm (UPC-A and EAN-13)
Here's how to verify a barcode's check digit yourself:
Example: EAN-13 barcode 5901234123457
-
Starting from the right (excluding the check digit), alternate between multiplying each digit by 3 and 1:
- Position values (right to left, before check digit): 5, 4, 3, 2, 1, 4, 3, 2, 1, 0, 9, 5
- Multipliers (alternating from right): 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1
-
Calculate: (5×1) + (4×3) + (3×1) + (2×3) + (1×1) + (4×3) + (3×1) + (2×3) + (1×1) + (0×3) + (9×1) + (5×3) = 5+12+3+6+1+12+3+6+1+0+9+15 = 73
-
Subtract from next multiple of 10: 80 - 73 = 7 ✓
The check digit is 7, matching the barcode. If any digit were changed (by a printing error or counterfeiting), the check digit calculation would fail.
Our barcode generators (EAN-13, UPC-A) calculate check digits automatically. Enter your digits and the generator appends the correct check digit.
Understanding Supply Chain Barcode Numbers
Beyond retail barcodes, supply chain barcodes encode structured data using GS1 Application Identifiers (AIs). These two- to four-digit prefixes identify what type of data follows.
GS1-128 and GS1 Data Matrix Data Structure
When you scan a GS1-128 or GS1 Data Matrix barcode, the decoded data might look like:
(01)09520123456788(17)261231(10)ABC123(21)SN-98765
Each parenthesized number is an Application Identifier:
| AI | Meaning | Data in This Example |
|---|---|---|
| (01) | GTIN (product identifier) | 09520123456788 |
| (17) | Expiry date (YYMMDD) | December 31, 2026 |
| (10) | Batch/lot number | ABC123 |
| (21) | Serial number | SN-98765 |
Common Application Identifiers
| AI | Data Field | Format |
|---|---|---|
| (00) | Serial Shipping Container Code (SSCC) | 18 digits |
| (01) | Global Trade Item Number (GTIN) | 14 digits |
| (02) | GTIN of contained trade items | 14 digits |
| (10) | Batch/lot number | Up to 20 characters |
| (11) | Production date | YYMMDD |
| (13) | Packaging date | YYMMDD |
| (15) | Best before date | YYMMDD |
| (17) | Expiry date | YYMMDD |
| (20) | Product variant | 2 digits |
| (21) | Serial number | Up to 20 characters |
| (30) | Variable count | Up to 8 digits |
| (37) | Count of trade items in container | Up to 8 digits |
| (310X) | Net weight in kg | 6 digits (X = decimal position) |
| (400) | Customer purchase order number | Up to 30 characters |
This system allows automated parsing. Any scanning system that understands GS1 standards can pull the product ID, expiry date, batch number, and serial number from any manufacturer's barcode without custom programming.
Reading QR Code Data
QR codes are more flexible. They don't follow a fixed data structure, and the content depends on what the creator encoded:
URLs: The most common QR code content. Scanning opens the URL in your browser.
Contact cards (vCard): Structured text containing name, phone, email, and address. Scanning offers to add the contact to your phone.
Wi-Fi credentials: Network name, password, and encryption type. Scanning offers to connect to the network.
Plain text: Any text at all, from product descriptions to instructions to messages.
GS1 Digital Link: A special URL format that embeds GS1 product identifiers in the URL path. Used by GS1 QR Codes for retail applications where both POS scanners and consumers need to read the same barcode.
When you scan a QR code with our barcode scanner, the results display the content type, the raw data, and any structured fields that can be parsed.
What Barcode Numbers Can (and Can't) Tell You
What barcode numbers reveal:
- Which company registered the product (manufacturer code / GS1 prefix)
- Where the product was registered (GS1 country prefix)
- Whether the barcode is valid (check digit verification)
- Product identity (connects to databases with name, price, description)
- Supply chain data (batch, expiry, serial via Application Identifiers)
What barcode numbers don't reveal:
- Where the product was manufactured (only where it was registered)
- Product ingredients or composition (stored in databases, not in the barcode)
- Price (determined by the retailer, not encoded in the barcode)
- Whether the product is genuine (counterfeiters can copy valid barcode numbers)
Barcodes are identifiers, not databases. The barcode number is a key that unlocks information stored in external databases. The barcode itself only guarantees that the identifier is properly formatted and the check digit is valid.
Verifying Product Authenticity
While a barcode alone can't guarantee a product is genuine, it provides useful verification signals:
- Check digit validation: An invalid check digit means the barcode was improperly created. Legitimate manufacturers don't make this mistake
- GS1 prefix verification: If a product claims to be from a German company but carries a Chinese GS1 prefix, that's a red flag (though not conclusive, since companies operate globally)
- Database lookup: Search the GTIN in GS1's GEPIR database or retailer databases. If the product isn't registered, or the registered product doesn't match what you're holding, investigate further
- Serialization check: Products with unique serial numbers (pharmaceuticals, luxury goods) can be verified against the manufacturer's authentication database
Scan any barcode with our free scanner to see the full decoded data, including format identification, GS1 prefix, and check digit validation.