Validate and generate check digits using various algorithms. Support for Luhn, Verhoeff, Damm, ISBN, Modulus 10/11, and more.
A check digit is a form of redundancy check used for error detection in identification numbers. It's calculated from the other digits in the number and appended to verify the authenticity and accuracy of the number. Check digits help prevent data entry errors, detect transposition errors, and validate identification numbers.
This tool supports the most common check digit algorithms used in various industries:
| Algorithm | Error Detection | Common Uses | Example |
|---|---|---|---|
| Luhn | Single-digit errors, Most transpositions | Credit cards, IMEI, Canadian SIN | 4532015112830366 |
| Verhoeff | All single-digit errors, All transpositions | German tax IDs, Some healthcare IDs | 1428570 |
| Damm | All single-digit errors, All transpositions | More robust than Luhn | 5724 |
| ISBN-10 | Single-digit errors, Some transpositions | Books published before 2007 | 0-306-40615-2 |
| ISBN-13 | Single-digit errors, Most transpositions | Books published after 2007 | 978-0-306-40615-7 |
| EAN-13 | Single-digit errors, Most transpositions | Product barcodes worldwide | 5901234123457 |
| UPC-A | Single-digit errors, Most transpositions | Product barcodes (North America) | 012345678905 |
| Modulus 10 | Single-digit errors | Custom applications | Varies |
| Modulus 11 | Single-digit errors, Some transpositions | Norwegian IDs, ISBNs | Varies |
| Feature | Luhn | Verhoeff | Damm | Modulus 10 | Modulus 11 |
|---|---|---|---|---|---|
| Single-digit errors | ✓ | ✓ | ✓ | ✓ | ✓ |
| Adjacent transpositions | ~90% | ✓ | ✓ | Partial | Partial |
| Jump transpositions | ✗ | ✓ | ✓ | ✗ | ✗ |
| Twin errors (aa → bb) | ✗ | ✓ | ✓ | ✗ | ✗ |
| Phonetic errors | ✗ | ✓ | ✓ | ✗ | ✗ |
| Complexity | Low | Medium | Low | Low | Low |
| Performance | Fast | Medium | Fast | Fast | Fast |
Credit card validation uses the Luhn algorithm to detect typing errors when entering card numbers. IBAN (International Bank Account Number) uses Modulus 97 for validation, ensuring accurate international bank transfers.
Product barcodes (EAN-13, UPC-A) use check digits to ensure accurate scanning at point-of-sale systems. Shipping labels and tracking numbers incorporate check digits to prevent misrouting.
ISBN-10 and ISBN-13 identify books uniquely worldwide, with check digits preventing cataloging errors. Library systems rely on these for accurate book management.
Social Security Numbers, Tax IDs, and National ID numbers often include check digits for validation. Healthcare identifiers use Verhoeff or similar algorithms for maximum accuracy.
The Luhn algorithm, also known as modulus 10, is widely used for credit cards:
Example: 7992739871X
The Verhoeff algorithm is more robust, detecting all single-digit errors and transpositions:
The Damm algorithm uses a quasigroup operation:
ISBN-10 uses Modulus 11 with weights from 10 to 1:
ISBN-13 and EAN-13 use alternating weights of 1 and 3: