Barcode Check Digit Validator
Validate or compute the check digit for UPC-A, EAN-13, EAN-8, ISBN-10 and ISBN-13 codes using the standard GS1 mod-10 and ISBN mod-11 algorithms.
Input
Enter the full code (including its check digit) to validate it, or leave off the last digit to have it computed. Spaces and dashes are stripped automatically; ISBN-10 may end with X.
Output
| Format | Digits | Check Digit | Result |
|---|---|---|---|
| No data yet | |||
Guides
Every retail barcode and book ISBN ends in a check digit — a single number computed from the digits before it, whose only job is to catch typos and scanner misreads. This tool validates that check digit for UPC-A, EAN-13, EAN-8, ISBN-10 and ISBN-13 codes, or computes the missing digit if you paste in a code that doesn't have one yet.
How it works
Pick a format, then enter the code in the Barcode / ISBN Digits field. Spaces, dashes and dots are stripped automatically, so you can paste a code exactly as it's printed (e.g. 978-0-306-40615-7). The tool runs the moment you stop typing and shows the format, the digits, the check digit, and whether the code is valid.
- Paste the full code (12 digits for UPC-A, 13 for EAN-13/ISBN-13, 8 for EAN-8, 10 for ISBN-10) to validate it — the result column reports "Valid" or "Invalid (found N)".
- Leave off the last digit (11/12/7/9 digits respectively) to have the tool compute it for you — the result column reports "Computed" and the digits column shows the completed code.
The two algorithms
UPC-A, EAN-13, EAN-8 and ISBN-13 all use the same GS1 "mod 10" weighting, since ISBN-13 is just an EAN-13 with a 978 or 979 prefix. Starting from the rightmost payload digit (the one just before the check digit) and moving left, digits alternate weights of ×3, ×1, ×3, ×1, and so on. Sum every weighted digit, then the check digit is (10 - sum mod 10) mod 10.
ISBN-10 uses a different "mod 11" scheme, predating the GS1 standard. The first 9 digits are weighted 10, 9, 8, ... down to 2, from left to right. Sum the products, then the check value is (11 - sum mod 11) mod 11. When that value is 10, it's written as the letter X rather than two digits — which is why ISBN-10 codes are the only format here that can end in a non-numeric character.
FAQ
Why doesn't my barcode validate even though the store scanner reads it fine? Double-check you selected the right format — an 8-digit EAN-8 and an 8-digit UPC-E use different rules, and this tool only supports the formats listed above. A single mistyped digit will also fail validation; that's exactly the kind of error the check digit exists to catch.
Can I use this for GTIN-14 or UPC-E codes? Not directly. GTIN-14 uses the identical mod-10 algorithm shown above (just over 13 payload digits instead of 11 or 12) if you need to verify one by hand. UPC-E is a compressed 8-digit representation of a UPC-A code and needs to be expanded first — outside the scope of this tool.
Is an ISBN-13 the same as an EAN-13?
Yes, mathematically. Every ISBN-13 is a valid EAN-13 (with a 978 or 979 prefix); this tool applies the exact same mod-10 check either way, so selecting "ISBN-13" vs "EAN-13" only changes the label, not the math.
Privacy
Everything runs locally in your browser — the barcode digits you enter are never sent to a server or logged anywhere.
Use it from code
From 3 credits per callREST API
curl -X POST https://api.iotools.cloud/v1/tool/barcode-check-digit-validator \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"barcodeFormat": "upca",
"digits": "036000291452"
}'Swap in your own key from your account. The tool's fields are the body — no wrapper.
Ask an AI agent
Use the IOTools `barcode-check-digit-validator` tool (Barcode Check Digit Validator) on this input:
YOUR_INPUT_HEREPaste this at any agent connected to the IOTools MCP server, then add your input.