The last number of the IMEI is a check digit, calculated using the Luhn algorithm, as defined in the IMEI Allocation and Approval Guidelines:
The Check Digit shall be calculated according to Luhn formula (ISO/IEC 7812). (See GSM 02.16 / 3GPP 22.016). The Check Digit is a function of all other digits in the IMEI. The Software Version Number (SVN) of a mobile is not included in the calculation.
The purpose of the Check Digit is to help guard against the possibility of incorrect entries to the CEIR and EIR equipment.
The presentation of the Check Digit both electronically and in printed form on the label and packaging is very important. Logistics (using bar-code reader) and EIR/CEIR administration cannot use the Check Digit unless it is printed outside of the packaging, and on the ME IMEI/Type Accreditation label.
The check digit is not transmitted over the radio interface, nor is it stored in the EIR database at any point. Therefore, all references to the last three or six digits of an IMEI refer to the actual IMEI number, to which the check digit does not belong.
The check digit is validated in three steps:
- Starting from the right, double every other digit (e.g., 7 → 14).
- Sum the digits (e.g., 14 → 1 + 4).
- Check if the sum is divisible by 10.
Conversely, one can calculate the IMEI by choosing the check digit that would give a sum divisible by 10. For the example IMEI 49015420323751?,
|Double every other||4||18||0||2||5||8||2||0||3||4||3||14||5||2||x|
|Sum digits||4 + (1 + 8) + 0 + 2 + 5 + 8 + 2 + 0 + 3 + 4 + 3 + (1 + 4) + 5 + 2 + x = 52 + x|
To make the sum divisible by 10, we set x = 8, so the complete IMEI become 490154203237518