Wikipedia example
- Input
- 49015420323751
- Expected output
- Soma 52, dígito 8: IMEI 490154203237518
The first 14 digits need the 8 to reach 60.
how to validate an IMEI with Luhn
The last digit of the IMEI exists for one purpose: to catch a typing mistake before the number is stored. Here is the whole calculation, worked on a known IMEI, with a second example to check by hand and a list of what it lets through.
The first 14 digits need the 8 to reach 60.
1 is missing to reach 50.
7 are missing to reach 60.
Changing the last digit to anything other than 8 fails.
This is the NN-XXXXXX-ZZZZZZ-A notation used in TS.06.
Per 3GPP TS 23.003, they are 8 digits of TAC, 6 of serial number and 1 Luhn check digit. The first 2 digits of the TAC identify the body that allocated it, and the next 6 identify the model. The serial number is assigned by the manufacturer within the TAC.
No. According to 3GPP TS 23.003, the check digit is not part of the digits sent when the IMEI is checked by the network. It serves manual entry and logistics, such as labels and packaging.
Not necessarily. Luhn only checks the shape. To know whether the IMEI was allocated to a model, you need the GSMA database, which this tool does not query.
No. The IMEISV swaps the check digit for 2 software version digits, and Luhn does not apply to them. From an IMEISV the tool shows the matching 15-digit IMEI.
49-015420-323751-8
The tool does not give the device model: there is no TAC to model table here, on purpose.
| Digit | 4 | 9 | 0 | 1 | 5 | 4 | 2 | 0 | 3 | 2 | 3 | 7 | 5 | 1 | 8 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Double | x2 | x2 | x2 | x2 | x2 | x2 | x2 | ||||||||
| Value | 4 | 9 | 0 | 2 | 5 | 8 | 2 | 0 | 3 | 4 | 3 | 5 | 5 | 2 | 8 |
4 + 9 + 0 + 2 + 5 + 8 + 2 + 0 + 3 + 4 + 3 + 5 + 5 + 2 + 8 = 60
Digits in alternating positions are doubled starting next to the last one, and doubles above 9 lose 9. The total must be a multiple of 10.
Everything runs in your browser. No IMEI you type or generate is sent to a server, and analytics only receives the action and the overall result, never the number.