GS1 barcode validation
GTIN Barcode Check Digit Validator
One wrong digit turns a valid EAN into a barcode that Google Merchant Center rejects. Validate the whole barcode column at once — length, GS1 check digit, spreadsheet damage, and duplicates — without pasting codes one by one.
Browser-side scan
Drop a CSV with a barcode column
No CSV selected
Use this bulk GTIN validator before sending products to Google Merchant Center or a marketplace that enforces GS1 identifiers. Upload a Shopify product export or any CSV with a Variant Barcode, GTIN, EAN, or UPC column; every non-empty value is checked for the four valid GTIN lengths (8, 12, 13, 14 digits), the GS1 check digit algorithm, non-numeric characters, and the scientific-notation corruption that spreadsheet exports cause on long numbers. The export is a worksheet with each barcode's detected format, its validation status, and the expected check digit for failing values — the tool verifies structure locally in your browser and never claims a barcode is registered with GS1.
Import blockers
Common causes this scan checks
- Excel converted long barcodes to scientific notation such as 4.00638E+12 during a re-save.
- A digit was dropped or duplicated during manual entry, so the check digit no longer matches.
- Internal product codes were pasted into the barcode column instead of real GTINs.
- Leading zeros were stripped, turning a 13-digit EAN into an 11 or 12 digit value.
Workflow
How to use the cleaned CSV
- Export products from Shopify or prepare any CSV with a barcode column, then upload it.
- Fix corrupted values first: scientific notation means the digits are already lost and need re-export as text.
- Check each failing barcode against the product packaging or the manufacturer's data before editing digits.
- Export the worksheet and re-import the corrected barcode column into Shopify.
Auto-fix policy
What the export can safely change
- Detects the barcode column from Variant Barcode, GTIN, EAN, and UPC header names.
- Classifies each value as EAN-8, UPC-A, EAN-13, or GTIN-14 by digit length after removing spaces and dashes.
- Runs the GS1 modulo-10 check digit calculation and reports the expected digit on mismatches.
- Flags scientific notation, non-numeric characters, invalid lengths, and duplicated barcodes for review.
CSV example
CSV example: bulk GTIN check digit validation
The validator confirms the first EAN-13, catches the barcode Excel destroyed with scientific notation, and shows that the last value fails the GS1 formula with 1 as the expected final digit.
Handle,Variant SKU,Variant Barcode blue-mug,MUG-1,4006381333931 red-mug,MUG-2,4.00638E+12 cap,HAT-1,4006381333932
Handle,Variant SKU,Barcode,Digits,Format,Check digit status,Expected check digit,Review note,Source row blue-mug,MUG-1,4006381333931,13,EAN-13,Valid,,Passes GS1 check digit validation,2 red-mug,MUG-2,4.00638E+12,,,Corrupted,,Spreadsheet scientific notation; re-export the source column as text,3 cap,HAT-1,4006381333932,13,EAN-13,Check digit mismatch,1,Verify against packaging before correcting,4
FAQ
Shopify CSV questions
What is a GTIN check digit?
The last digit of every GTIN is calculated from the other digits with a GS1 modulo-10 formula. If a digit is mistyped, the calculation stops matching, which is how one-character errors are caught.
Can the tool tell me the correct barcode for a product?
No. It can prove a value is structurally invalid and show the expected check digit, but the true GTIN must come from the packaging, the manufacturer, or your GS1 license.
Why did my barcodes turn into values like 4.00638E+12?
Spreadsheets treat long barcodes as numbers and re-save them in scientific notation, destroying digits. Re-export the source file with the barcode column formatted as text and validate again.
Does the CSV leave my browser?
No. Validation runs locally with the File API; no barcode or product data is uploaded anywhere.
Feedback
How is this tool working for you?
Found a bug, a false alarm, or a missing check? Tell me — a human reads every note.