Free tool · No sign-up

Check a barcode.

Verify the check digit of an EAN, GTIN or SSCC — or split a complete GS1 element string into its application identifiers and have every field checked for length, data type and date validity. The check runs in your browser; the code never leaves your device.

A GS1 element string with brackets, raw scanner output, or simply an EAN/GTIN/SSCC number.

Examples:
01 Scope

What gets checked

The same rules the barValid app applies to every scan.

Check digit

GS1 modulo-10 for EAN-8, UPC-A, EAN-13, GTIN-14 and SSCC. If the last digit is wrong, you immediately see which one was expected.

AI structure

Every application identifier is broken out and checked against the GS1 rules: fixed or variable length, minimum length, missing separator.

Data type and date

Numeric fields may only contain digits, date fields must be a valid YYMMDD date — including leap years and the GS1 rule “day 00 = end of month”.

02 Background

How the check digit works

The check digit is not a running number but the result of a small calculation over all preceding digits. From right to left they are multiplied alternately by 3 and 1 and added up; the check digit is the difference to the next multiple of ten.

The point of it: a single transposed or mistyped digit shows up straight away, because the calculation no longer works out. Which is exactly why it pays to check a number before it enters a system — rather than once the goods cannot be found.

EXAMPLE · EAN-13
4006381333931
Sum with weights 3 and 189
Next multiple of ten90
Check digit90 − 89 = 1
From tool to app

Scan instead of type

This page checks one code you type in. In daily work, though, you are standing in front of a pallet rather than a keyboard. The barValid app does the same with the camera — and goes further: your own target structures, content checks on individual fields and a PDF report per scan.

  • Detects GS1-128, GS1 DataMatrix and GS1 QR Code automatically
  • Validates against your own code structure
  • Works offline — the AI database is embedded
FAQ

Frequently asked questions

What is a check digit?
The last digit of an EAN, GTIN or SSCC. It is calculated from the remaining digits and works as a control: mistype one digit and the check digit no longer fits. GS1 uses the modulo-10 method with weights 3 and 1.
Which number lengths can I check?
8 digits (EAN-8), 12 (UPC-A), 13 (EAN-13), 14 (GTIN-14 / ITF-14) and 18 (SSCC). Any other length has no GS1 check digit.
What is a GS1 element string?
The content of a GS1-128 or GS1 DataMatrix code. It consists of several fields, each starting with an application identifier number — for example (01) for the GTIN, (17) for the expiry date, (10) for the batch.
My scanner returns the data without brackets — does that work too?
Yes. Just paste the raw content exactly as the scanner delivers it. The brackets are only a reading aid for humans; inside the code there is a separator character (FNC1) instead. If the pasted text contains that character, it is evaluated correctly.
Is my data sent anywhere?
No. The check runs entirely in your browser. The code you enter never leaves your device and is not stored anywhere.
Can I scan instead of typing?
Yes — that is what the barValid app is for. It does the same as this page, only with the camera: it reads the code, splits it into its application identifiers, validates every field and can produce the result as a PDF report.

You can look up every application identifier in the GS1 AI database.