What a check digit does
If a barcode is scratched or scanned at an angle, one digit can read wrong. The check digit makes the scanner verify the whole number: if the check does not match, the scan is rejected and re-read. That one digit prevents most mis-scans from ever reaching the checkout or stock system.
How it is calculated
For the EAN/UPC family and ITF-14, the rule is the same: starting from the right, alternate the weights 3 and 1 across the digits, add them up, and the check digit is what brings the total to a multiple of 10. Because the math is fiddly to do by hand and easy to get wrong, barcode generators compute it automatically from the number you enter.
Why you should never type a check digit
If you type 13 digits for an EAN-13, the last one must be the correct check for the first 12 - and a wrong one makes an invalid, non-scannable code. The safe habit is to enter only the real digits (11 for UPC-A, 12 for EAN-13, 13 for ITF-14) and let the generator append the check digit for you.
Which barcodes have check digits
- EAN-13, UPC-A, EAN-8, ITF-14, GS1-128 (GS1 fields): always have a check digit.
- Code 128 and Code 93: include an internal check character, handled automatically.
- Code 39 and Code 32: check optional; Code 32 adds its own check character.
- QR, DataMatrix and other 2D codes: error correction instead of a check digit.
Reference