EAN / UPC Check Digit Calculator
Compute or verify the check digit of EAN-8, EAN-13, UPC-A, GTIN-14 / ITF-14 and SSCC codes in bulk, and expand a UPC-E to UPC-A — the one GS1 modulo-10 rule.
For each line: the code type, the computed check digit and full code (from a body) or a pass/fail with the correct digit (from a full code), and UPC-E expanded — all offline, in bulk.
Example: 400638133393 gets check digit 1 → 4006381333931; 4006381333932 fails (should be 1); UPC-E 123457 expands to 01234500007 + its check digit; an SSCC of 17 digits gets its 18th.
One rule
for every GS1 number.
The modulo-10 rule, how lengths are read, and the UPC-E expansion.
The rule
Take the digits without the check digit, weight them 3, 1, 3, 1 … starting from the right-most, add them up, and the check digit is what brings the sum to a multiple of 10. The same rule covers EAN-8, UPC-A (GTIN-12), EAN-13 (GTIN-13), GTIN-14 / ITF-14 and the 18-digit SSCC — only the length differs.
Bodies and full codes
7, 11 and 17 digits are read as bodies and get a check digit. 8, 12, 13, 14 and 18 digits are read as full codes and verified; because 12 and 13 digits are ambiguous (a full UPC-A or an EAN-13 body; a full EAN-13 or a GTIN-14 body), the page prefers the full-code reading and offers the alternative when the check fails.
UPC-E
A UPC-E is a zero-suppressed UPC-A: the last of its six data digits says where the zeros were removed (0–2, 3, 4 or 5–9 patterns). The page expands it and checks the result. A correct check digit says the digits are consistent, not that the number is assigned; company prefixes and ownership are GS1 matters. Nothing leaves the browser; the same four anonymous usage counts as the rest of the site apply.
SOURCES
Last reviewed 20 September 2026. How results are checked: How we verify.