Modulo-10 method
Check digit = (10 − (weighted sum mod 10)) mod 10- Remove the existing check digit when validating.
- From the rightmost body digit, multiply alternately by 3 and 1.
- Add the products.
- Choose the digit that completes the next multiple of ten.
Worked example: GTIN-13
For body 400638133393, weighted products sum to 89. The amount required to reach 90 is 1, so the complete GTIN-13 is 4006381333931.
Supported lengths
| Identifier | Body digits | Complete digits |
|---|---|---|
| GTIN-8 | 7 | 8 |
| UPC-A / GTIN-12 | 11 | 12 |
| GTIN-13 | 12 | 13 |
| GTIN-14 | 13 | 14 |
| SSCC-18 | 17 | 18 |
What validation does not prove
The result does not confirm that a company prefix was licensed, an item reference was assigned correctly, or an Application Identifier is valid. Use current GS1 documentation and the responsible GS1 Member Organisation for allocation questions.
Frequently asked questions
Can incorrect data pass the checksum?
Yes. It detects many common errors, not every alteration. It is error detection, not authentication.
Does a valid result mean the GTIN belongs to my product?
No. Ownership and assignment require separate verification through the appropriate GS1 process.
Run the calculation
Use your own measurements in the browser-based calculator. Inputs are processed locally and are not uploaded to LabelOps Lab.
Open the GS1 Check Digit CalculatorRelated guides
Last reviewed: