DEV Community

David
David

Posted on

IMEI Numbers Explained: A Developer's Guide

If you build anything that touches mobile devices — MDM systems, telecom apps, device management platforms, repair shop software — you've probably dealt with IMEI numbers.

What Is an IMEI?

IMEI = International Mobile Equipment Identity. A unique 15-digit number assigned to every GSM mobile device. Dial *#06# on any phone to find yours.

The Structure

TAC (8 digits) + Serial (6 digits) + Check digit (1, Luhn algorithm)

TAC — Type Allocation Code

First 8 digits identify device model and manufacturer, assigned by GSMA.

Luhn Algorithm

Same checksum used for credit cards. Catches single-digit and transposition errors.

function luhnCheck(imei) {
  let sum = 0;
  for (let i = 0; i < 14; i++) {
    let digit = parseInt(imei[i]);
    if (i % 2 === 1) { digit *= 2; if (digit > 9) digit -= 9; }
    sum += digit;
  }
  return (10 - (sum % 10)) % 10;
}
Enter fullscreen mode Exit fullscreen mode

Why Developers Need Test IMEIs

MDM platforms, telecom systems, device buyback apps, repair shop software, inventory tracking — all need valid IMEIs for testing. Using real ones = privacy issues.

Generating Valid Test IMEIs

Random IMEI generates Luhn-valid IMEI numbers using realistic TAC prefixes. No signup, no API keys, free.

Quick Reference

Property Value
Length 15 digits
Structure TAC (8) + Serial (6) + Check (1)
Checksum Luhn algorithm
Standard 3GPP TS 23.003

Top comments (0)