Choosing the Right Primary ID for IoT Lines: Why MSISDN Is a Trap
- Akira Oyama
- Jan 14
- 5 min read

In a traditional mobile account, it's easy to identify a line: you just use the phone number. For smartphones, that works fine as a unique service ID in your inventory and billing systems.
With IoT lines, it's not that simple.
IoT services often don't behave like phones. Many don't use voice at all. Some don't even truly "use" the phone number that the carrier assigns. Yet the same account may contain multiple identifiers:
ICCID
MSISDN
IMSI
If you pick the wrong one as your primary key, your inventory, billing audit, and optimization processes will eventually break in subtle and painful ways.
Let's unpack the options first.
The Three Main IDs on an IoT Line
ICCID - SIM card identifier: ICCID (Integrated Circuit Card Identifier) is the unique ID of the SIM card itself. It's printed on the SIM, stored on the card, and stays tied to that physical (or eSIM) profile.
One ICCID = one SIM profile
Used at the card/profile level
Changes only when you swap or reprovision the SIM
For IoT, the SIM is often the real asset that matters: it's embedded, soldered, or associated with a device that might never expose a "phone number" to anyone.
MSISDN - the phone number
MSISDN is essentially the telephone number assigned to the line.
What humans dial
What most people think of as "the line" on a smartphone
For IoT, often present but not functionally used
On some IoT platforms (like Jasper-type environments), you'll still see MSISDN values, but they can be:
Dummy or placeholder numbers
Assigned after the fact
Recycled across different devices over time
In other words: familiar, but not reliable.
IMSI - subscriber identify
IMSI (International Mobile Subscriber Identify) identifies the subscription on the network.
Used by the carrier's core network for authentication
Tied to the SIM profile and operator
Very technical, rarely used as a business-facing key
It's important for network operations, but less friendly for finance, TEM, or inventory users.
Why MSISDN Is a Bad Primary Key for IoT
If you're used to smartphones, your instinct is to grab the phone number (MSISDN) as the unique ID. That's what many enterprise customers and even TEM providers have done by habit.
For IoT, that can be a serious mistake.
Reasons MSISDN is problematic in IoT:
IoT devices are not phones - Many of IoT endpoints never use voice. They send data (and maybe SMS), and the phone number is just a technical artifact in the carrier system.
MSISDN can be recycled - Carriers may reuse phone numbers. If a line is disconnected and later a new IoT device is assigned that same MSISDN, your TEM or inventory stem may think the old device came bac to life, or one device has magically transformed into another.
MSISDN may be assigned "just because" - On some IoT platforms, MSISDN is created for compatibility with legacy billing or provisioning systems, not because it's used operationally. It might change, get repurposed, or be meaningless in the real-world IoT deployment.
Cross-system mismatches - If your TEM, carrier portal, and internal asset system don't all agree on which ID is the "truth," recycled or changed MSISDN values will cause:
Broken joins
Orphaned records
Optimization results that no longer match live inventory
This may work most of the time until it doesn't. When it breaks, you end up fixing it manually, line by line, under time pressure.
When Is ICCID a Better Primary ID?
For IoT, ICCID is usually the best candidate for a primary service ID, especially for billing and inventory integration.
ICCID works well when:
You care about the SIM/profile as the primary asset
Devices are deployed in the field and not touched for years
Voice is not the core service (data and SMS are)
The SIM is what you ship, track and reclaim when devices retire
Benefits of using ICCID as the primary key:
Stability - ICCID does not typically get recycled in the same way MSISDN can. It stays associated with that SIM until you physically or logically replace it.
Clear mapping to hardware - In IoT deployments, the SIM is often tied to a specific device or module. If you know the ICCID, you can map directly to that unit in the field.
Better alignment with IoT platforms - Many IoT management portals (Jasper-type systems, carrier IoT portals, etc.) treat ICCID as the central identifier, even if they still show MSISDN for legacy reasons.
Clear joins across systems - When ICCID is your primary key, your:
carrier billing feeds,
IoT portal exports, and
internal asset/inventory all have a common stable ID to join on.
You can still store MSISDN and IMSI as secondary attributes, but the "truth" of the line should be anchored to ICCID.
Operational Risk of Picking the Wrong Primary ID
Choosing the wrong identifier doesn't always fail immediately. It fails later, and usually at the worst possible time.
If your primary key is MSISDN and the carrier recycles numbers:
Your inventory and billing won't match
Optimization tools may:
apply changes to the wrong device,
miss savings because history looks broken, or
double-count usage if the same MSISDN appears with two different physical devices.
I've seen TEM providers default to MSISDN because it feels familiar and "works fine" early on. Then, months or years later, when recycling or large migrations happen, they're forced to untangle everything in production under pressure from the customer.
It's avoidable pain.
Practical Advice Before You Lock In a Primary Key
Before you simply choose what looks familiar:
Ask the carrier/platform
Which ID is considered stable for IoT?
Is MSISDN ever recycled or reassigned?
Look at real data behavior
Do you see the same MSISDN tied to different ICCIDs across time?
Are there IoT lines with ICCID but no meaningful MSISDN usage?
Design your TEM/inventory model for IoT explicitly
Use ICCID as primary key for IoT (in most cases).
Keep MSISDN and IMSI as secondary attributes for troubleshooting and correlation.
Document the choice - Make sure your internal teams and external partners (TEM, MSP, carrier) know:
Which ID is your "source of truth"
How to map across systems
Closing Thoughts
IoT may live inside a wireless account, but it is not just "phones without people." Treating IoT like traditional mobility and using MSISDN as your primary identifier is comfortable but risky.
Choosing ICCID as the primary ID for IoT services:
Reduces reconciliation issues
keeps optimization tools aligned with reality
Avoids nasty surprises when numbers are recycled or reassigned
When in doubt, resist the instinct to use the phone number just because that's what you've always done. IoT is a different category of mobile service and your identifiers should reflect that.





Comments