Paste one GTIN or a whole list and instantly verify each one’s GS1 check digit and detect its type (GTIN-8, UPC-12, EAN-13, or GTIN-14). It runs entirely in your browser.
Checking GTINs across a whole product feed? Use the feed validator →
🔒 Checked entirely in your browser — nothing is sent to a server.
Validate GTINs across your whole catalogue
FeedArc checks every product’s GTIN check digit, leading zeros, and required attributes the moment you import — and fixes recurring issues with feed rules — so invalid identifiers never become Merchant Center disapprovals.
A GTIN (Global Trade Item Number) is the number behind a product barcode — UPC-A in North America, EAN-13 in Europe, plus GTIN-8 for small packages and GTIN-14 for cases. The final digit is a GS1 check digit derived from the others, so a single mistyped or transposed digit makes the whole number fail validation. This tool recomputes that digit, tells you the expected value when it’s wrong, and flags the classic leading-zero problem that spreadsheets introduce.
Invalid GTINs are one of the biggest causes of Google Merchant Center disapprovals. For the wider definition and how identifiers work in a feed, see the GTIN glossary entry.
The check digit is the final digit of a GTIN, computed from the other digits with the GS1 mod-10 algorithm (each digit is weighted by 3 or 1, alternating from the right, summed, and subtracted from the next multiple of 10). It lets any system detect the most common data-entry mistakes — a transposed or mistyped digit — without a database lookup. This tool recomputes it and tells you the expected value when it doesn’t match.
All four standard lengths: GTIN-8 (EAN-8), GTIN-12 (UPC-A), GTIN-13 (EAN-13), and GTIN-14 (ITF-14 / case codes). Paste one per line to check a whole list at once. Spaces and hyphens are ignored, so you can paste straight from a barcode label.
Almost always it is a 12-digit UPC-A that lost its leading zero — spreadsheets strip leading zeros from number-formatted cells. Re-add the leading zero to make it 12 digits and re-check. The same thing causes a 13-digit EAN to appear as 12. Store GTINs as text, not numbers, to prevent it.
No. A passing check digit only proves the number is internally consistent — not that GS1 actually assigned it to your product. Google and other marketplaces cross-check GTIN ownership against the GS1 registry and treat fabricated-but-valid GTINs as misrepresentation. Only use a GTIN issued for your product, or set identifier_exists=no if it genuinely has none.
Not here — this is a validator, not a lookup. It checks the number’s format and GS1 check digit; it does not reveal the product behind the code. To look up the company that owns a GTIN, use GS1’s free GEPIR registry (gepir.gs1.org), the authoritative source for GTIN ownership. The usual workflow is to validate the format first, then confirm ownership in GEPIR — a GTIN can be mathematically valid yet assigned to no one.
For a quick batch, paste a column of GTINs above and check them all at once. To validate GTINs in the context of a full XML, CSV, or TSV feed — alongside the other Merchant Center rules — use the free Google Shopping Feed Validator. For an ongoing catalogue, FeedArc re-validates every product’s GTIN at import and flags failures before the feed reaches Google.