Restricted & in-store barcodes: why they scan at your till but get rejected

LabelCraft - barcode labels for Shopify that print at exactly the size you set.

EN · FR · DE · ES
The guarantees behind every label
Exact to ±0.1 mm

Every label prints at the size you set - measured, not approximate.

Never a silent failure

Overflow or a missing barcode always raises a visible warning before you print.

Whole-dot barcodes

Modules snap to your printer's dots, so codes stay crisp and scan first time.

Your barcodes, untouched

We never overwrite or reassign a product's existing barcode.

If you reused an old store code, a shelf-edge number or a PLU as a product barcode, it probably scans perfectly at your own register - and then gets rejected the moment you list on Amazon, eBay or Google Shopping. That is because those numbers are restricted distribution codes, not globally-unique GTINs. This guide explains which leading digits are restricted, why they fail outside your store, and how LabelCraft's Barcode audit flags them before a bad listing costs you a sale.

What restricted and in-store barcodes are

GS1 reserves certain leading-digit ranges for restricted circulation numbers (RCN) - barcodes a shop assigns to itself for internal use, such as loose produce, in-store packing, or items that never had a manufacturer code. They are valid EAN-13 / UPC-A numbers with a correct check digit, so a scanner reads them happily. The catch is that they are not unique outside your own system: every other shop is free to use the same number for something completely different. They were designed to stay inside one store, never to travel to a marketplace.

Why they scan at your till but fail at marketplaces

A marketplace matches a barcode to a single product in a global catalogue, so it only accepts a globally-unique GTIN backed by a real GS1 company prefix. When you submit a restricted code, the marketplace either rejects it outright ("invalid UPC/EAN", "GTIN not recognised") or, worse, matches it to a different company's product that happens to share the number. Your own till never noticed because it only checks its own database. The fix is not a bigger label or a clearer print - it is replacing the number with a real GTIN.

Restricted prefix reference

These are the leading-digit ranges that are NOT globally-unique retail codes. The table is generated straight from the same prefix data LabelCraft's Barcode audit uses, so it cannot drift from what the app flags:

In a 13-digit barcode the in-store ranges show up as a code beginning 02 (020-029) or 2 (200-299); 40-49 are company-internal codes; 977 / 978-979 are ISSN / ISBN (periodicals and books); and the coupon / receipt ranges are point-of-sale tokens, never product codes. Every genuine member-organisation prefix - for example 690-699 (GS1 China) or 400-440 (GS1 Germany) - stays valid. See the GS1 prefix guide for what each country range means.

How to tell if your Shopify codes are restricted

LabelCraft's Barcode audit reads every barcode in your catalogue and labels each one: a real GTIN, a wrong check digit, a custom Code 128, or a restricted code in one of the ranges above. A restricted finding tells you the exact number that scans at your till but will collide elsewhere, so you can fix it before you push the product to a marketplace channel. It is the same data this table is built from, so what you read here is what the app reports.

How to fix a restricted barcode

Replace the in-store number with a genuine GTIN. If your products need real, globally-unique barcodes, where to get barcodes explains your options (a GS1 company prefix, or single GTINs for a small range). For internal-only items that never leave your store, a non-numeric Code 128 SKU is honest and clearly not a retail GTIN. The difference between a real GTIN and an internal number is covered in the GS1 barcodes guide.

Want LabelCraft to flag your restricted codes and print clean, scannable labels at the exact size your printer needs? Install it from the Shopify App Store, or contact LabelCraft support if a code looks wrong.

Install free - 200 labels per month →

Related guides