GTIN check digit checker
Check a single GTIN
The check digit test catches mistyped and transposed digits before they reach a label. This tool validates one value at a time using the production validator, including its normalization to 14 digits.
A GTIN is assigned by GS1 or your member organization. This page checks syntax only; it cannot tell you whether the number belongs to your product.
What the check digit catches, and what it misses
The last digit of a GTIN is not part of the identifier. It is arithmetic over the digits before it: each digit is multiplied by 3 or 1, alternating from the right, and the check digit is whatever makes the total a multiple of ten.
That arithmetic catches every single mistyped digit. Change one digit anywhere in 4006381333931 and the sum stops landing on a multiple of ten.
Transposed neighbours are the interesting case. Swap the first two digits and the error is caught:
| Value | Result |
|---|---|
4006381333931 | Valid |
0406381333931 | Rejected. The first two digits are swapped |
4006831333931 | Accepted, and wrong. The adjacent 3 and 8 are swapped |
The third row is the blind spot worth knowing about. Swapping two adjacent digits changes the weighted total by twice their difference, so when two neighbours differ by exactly five the total moves by ten and the check digit does not move at all. That is 11% of all adjacent transpositions: the pairs 0 and 5, 1 and 6, 2 and 7, 3 and 8, 4 and 9.
The practical consequence: a GTIN passing this check is well formed, not proven correct. Reconcile against the number your GS1 member organization issued, not against a calculator.
Why a GTIN that used to work stops validating
An invalid GTIN in a catalog file was usually valid when it was assigned and got damaged in transit. The common causes:
- A spreadsheet dropped the leading zeros.
0036000291452is stored as the number 36000291452, and eleven digits is not a valid length. Formatting the column as Text after the damage does not bring them back. - A spreadsheet converted it to scientific notation. A 13-digit value becomes
4.00638E+12and the last digits are gone for good. See what Excel does to GTINs. - Someone retyped it from a printed label. This is where transposition errors come from.
- A UPC-A was padded to the wrong width, or padded on the right instead of the left.
The fix is upstream in every case: re-export the column as text from the system of record, then check again.
Lengths and zero padding
GTIN-8, UPC-A (12), EAN-13, and GTIN-14 are the same identifier at different widths. A shorter one becomes a longer one by adding zeros on the left, and the check digit never changes:
| Format | As entered | As GTIN-14 |
|---|---|---|
| UPC-A | 036000291452 | 00036000291452 |
| EAN-13 | 4006381333931 | 04006381333931 |
This tool normalizes to 14 digits so two systems storing the same product at different widths can be compared. Storing GTIN-14 everywhere is the usual way to stop that mismatch recurring.
What this tool cannot tell you
- Whether the number is yours. A well formed GTIN may belong to another company entirely. Only GS1 records assignment.
- Whether it is in use, or duplicated. One value in isolation says nothing about the rest of a catalog. The free readiness audit checks every row and reports duplicates and collisions.
- Whether the printed symbol scans. That depends on module size, quiet zone, and contrast. Artwork preflight covers those.
Check your own catalog
Run a free check for invalid GTINs, duplicates, and destination problems. An account is not required.
Run the free audit