ISBN-10 check digit validator
Multiply each of the first 9 digits by its position weight (10 down to 2), add the check digit (weight 1, and the only position allowed to be 'X' meaning 10), and require the total to be a multiple of 11.
0306406157 fails the ISBN-10 checksum, and 3 different single-character fixes would each satisfy it — checksum arithmetic alone cannot narrow this down further.
3 equally valid single-character fixes — checksum arithmetic alone cannot narrow this down to one digit:
- 0360406157 (transposition, swap the characters at positions 3 and 4)
- 0306460157 (transposition, swap the characters at positions 6 and 7)
- 0306401657 (transposition, swap the characters at positions 7 and 8)
A passing checksum only proves the number is arithmetically self-consistent. It does not prove an IBAN names an open account, an ISBN is assigned to a real book, or a card is active, unstolen, or has funds. Those require asking the bank, the ISBN registry, or the card network.
Try it: a valid example · a broken example
curl 'https://check-digit.gumballtools.com/api/v1/run?input=0-306-40615-2&format=isbn10'