On this page
A SIM swap moves a phone number to a new SIM, so every SMS code for that number goes to whoever holds the new SIM. Direct SIM-change data comes only from operators and covers some countries. Where you can't get it, combine device, account and number signals, and step up to a factor that doesn't depend on the phone network.
What is a SIM swap, and why does it break SMS codes?
A SIM swap is the transfer of a phone number from one SIM card or eSIM profile to another. Operators do it every day for customers who lose or replace a phone. In SIM swap fraud, a criminal gets the operator to move the victim's number to a SIM the criminal controls. Our SIM swap glossary entry has the short definition.
The FBI describes three ways criminals do it: social engineering (impersonating the victim to the carrier), paying off an insider, and phishing carrier employees to plant malware. "Once the SIM is swapped, the victim's calls, texts, and other data are diverted to the criminal's device," the FBI wrote, and the criminal can then request password resets that arrive by SMS (FBI IC3, 2022).
That is why a swap defeats SMS one-time passcodes. The code is delivered correctly. It just arrives on the wrong phone. Nothing in the message, the delivery receipt or the code itself tells your app that the recipient changed.
How is a SIM swap different from a port-out?
Both attacks move the number away from the victim. They differ in where it goes, and that decides which data can spot them.
| SIM swap | Port-out | |
|---|---|---|
| What changes | The SIM or eSIM behind the number | The operator that serves the number |
| Carrier reported by a lookup | Unchanged | Changes to the new operator |
| Who can see it | The operator (SIM-change records) | Anyone with current porting data |
| Typical attacker route | Carrier store or support desk | A porting request to another operator |
| Signal you can buy widely | SIM-change date, only where operators expose it | Current carrier and porting status |
In the US, the FCC adopted rules in November 2023 that require wireless providers to use secure methods to authenticate a customer before moving their number to a new device or provider, and to notify customers of SIM-change and port-out requests (FCC, 2023). The rules took effect in January 2024, with some parts delayed. Check the FCC's current status before relying on a specific requirement. Carrier-side protections reduce the risk. They don't remove it, so your own flow still needs defences.
How big is the problem?
Public figures are few, and the best-known ones are dated. The FBI's Internet Crime Complaint Center received 320 SIM-swapping complaints with adjusted losses of about $12 million from January 2018 to December 2020. In 2021 alone it received 1,611 complaints with adjusted losses of more than $68 million (FBI IC3, 2022). Those are reported US cases only.
In Europe, ENISA published a study in December 2021 on how SIM-swapping attacks work and which measures operators can take against them (ENISA, 2021).
Standards bodies treat the risk as structural. NIST's current authentication guidance classes one-time codes over the phone network as a restricted authenticator. It says verifiers "SHOULD consider risk indicators (e.g., device swap, SIM change, number porting, other abnormal behavior) before using the PSTN to deliver an out-of-band authentication secret" (NIST, 2025). The rest of this guide is about gathering those indicators.
Which SIM-swap data exists, and who can get it?
SIM-change data lives with the operator. Getting it means going through an API that the operator exposes, directly or through a partner.
The main open specification is CAMARA SimSwap, maintained under the Linux Foundation and used by GSMA Open Gateway operators. Its latest public release, r3.3 (December 2025), defines two operations: check, which says whether the SIM was swapped within a period you give (maxAge, between 1 and 2,400 hours in the spec), and retrieve-date, which returns the latest SIM change. The spec also lets operators return null when local rules stop them keeping the date that long, optionally with the period they do monitor (CAMARA, 2025).
| Source | What it tells you | Coverage | Practical limits |
|---|---|---|---|
| Operator APIs following CAMARA SimSwap | Swapped within N hours, or the latest change date | Operators and countries that have launched it | Contracts per operator or aggregator; monitoring windows vary with local rules |
| Communications platforms that resell operator data | The same facts through one API | Usually a short list of countries, sometimes in beta | Check each country and the consent model |
| Your own records | A new device, a new number on the account, a reset request | Every user | Doesn't see what happens at the operator |
| Number intelligence (carrier, porting, line type) | Carrier and porting changes, line-type changes | Wide | Can't see a SIM change within the same operator |
The honest summary: if your users sit in countries where operators expose SIM-change data, buy it for your high-risk flows. Everywhere else, you are combining indirect signals.
Does MobileValidate sell SIM-swap data?
No. We don't offer SIM-change dates, and we don't claim that any of our checks detects a SIM swap. Here is what we do provide and what each one can and can't tell you:
| Check (alias) | What it tells you | Helps against | Doesn't tell you |
|---|---|---|---|
Carrier lookup (carrier) | line_type, current carrier, country, and original_carrier when it differs | Port-outs (compare with your last snapshot); VoIP or unexpected line types | A SIM change at the same operator |
Messenger checks (whatsapp, telegram, viber) | Whether the number has an account | Choosing a non-SMS code channel the user already has | Whether the SIM changed; accounts usually survive a swap |
Spam reputation (spam) | Report-based risk level, US, CA and DE, limited access | Numbers with regulator actions or fraud reports | Anything about the SIM |
Live network status (hlr) | Reachable, ported, roaming (true or false) | Port detection from the network itself | Coming soon. It will never return the IMSI or other SIM identifiers |
That last line matters. SIM-change detection at the network level relies on subscriber identifiers such as the IMSI. We never expose them, by design. See the account security use case for how these checks fit a login and recovery flow.
Which signals should you combine when SIM-swap data is missing?
Score the moment, not the number alone. Most attacks show several of these at once:
| Signal | Where it comes from | Why it matters |
|---|---|---|
| New or unknown device | Your session data | A swap is usually followed by a login from the attacker's device |
| Password or recovery reset requested by SMS | Your auth logs | The typical first move after a swap |
| Phone number changed on the account recently | Your account history | Attackers swap the number, then the recovery settings |
| Carrier differs from your last stored snapshot | Carrier lookup vs your records | Points to a port-out since the last check |
original_carrier differs from carrier | Carrier lookup | The number was ported at some point. Normal on its own |
Line type changed to voip | Carrier lookup | The number moved to an internet service |
| Country of the IP differs from the number and the account | Your session data plus country | Weak alone, strong combined |
| Large transfer, payout or contact change right after login | Your transaction data | The attacker's goal |
The strongest pattern is timing: an SMS-based reset, a new device and a high-value action within a short window. Each alone is common among real users.
How do you compare carrier snapshots in code?
Store the carrier facts when the user first verifies the number, then compare before a sensitive action. A test-mode request:
curl https://api.mobilevalidate.com/v1/lookup \
-H "Authorization: Bearer $MOBILEVALIDATE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"numbers": ["+447700900001"], "checks": ["carrier", "whatsapp"], "max_age": 3600, "wait": 5}'Response (excerpt of results[0].checks, test mode):
{
"network.carrier": {"status": "completed", "registered": true,
"attributes": {"line_type": "mobile", "carrier": "Test Carrier", "country": "GB"},
"checked_at": "2026-09-25T19:03:29.021Z", "billed": false, "reason": null},
"whatsapp.registered": {"status": "completed", "registered": true, "billed": false, "reason": null}
}max_age: 3600 accepts a cached answer up to an hour old, which is free. Then a small function turns the comparison into a signal:
// stored = what you saved at enrolment; r = results[0] from the lookup.
function numberChangeSignals(stored, r) {
const c = r.checks?.["network.carrier"];
if (c?.status !== "completed") return []; // unknown or pending: no evidence either way
const a = c.attributes;
const out = [];
if (stored.carrier && a.carrier && a.carrier !== stored.carrier) out.push("carrier_changed");
if (a.original_carrier && a.original_carrier !== a.carrier) out.push("ported_at_some_point");
if (stored.line_type === "mobile" && a.line_type === "voip") out.push("now_voip");
return out;
}A carrier change is evidence of a port since your last snapshot, not proof of fraud. People switch operators all the time. Feed the result into the same score as your device and session signals.
What should a step-up look like?
Decide in advance what each risk level triggers, so support staff can explain it to a real customer:
| Situation | Suggested action |
|---|---|
| No risk signals | Send the SMS code as usual |
| One weak signal (new device only) | Send the code; notify the user by e-mail or push |
| SMS reset + new device | Require a second factor that isn't SMS: passkey, authenticator app or e-mail link |
| SMS reset + carrier changed since the last snapshot | Step up, and hold payouts or contact changes for a cooling-off period |
| Any of the above + high-value action | Manual review or a verified call-back to a number you had before the change |
Carrier data unknown | Treat as no evidence. Use your other signals |
NIST also requires services that accept a restricted authenticator to offer at least one alternative that isn't restricted (NIST, 2025). Offering passkeys or an authenticator app to every user is the most durable fix, because it takes the phone network out of the login path.
What else should you tell users?
Part of the defence sits with the customer and their operator. The FBI advises people not to post their phone number or financial assets online, to "be aware of any changes in SMS-based connectivity", and to use strong factors such as physical security tokens or standalone authentication apps. It asks carriers to set strict protocols for verifying customers before moving a number to a new device (FBI IC3, 2022). Useful prompts in your product:
- Suggest a passkey or authenticator app at the second login.
- Explain that many operators offer account PINs or port-out protection, and link to your help page on it.
- Tell users that sudden loss of mobile signal, with no explanation, is a reason to contact their operator straight away.
Keep the lookups proportional. Check the numbers of your own users, for the security purpose you told them about, and store only the facts you compare against. The acceptable use policy applies, and people can object through the opt-out form.
What are the key takeaways?
- A SIM swap moves a number to a new SIM, so SMS codes reach the attacker without any visible error.
- SIM-change data comes from operators (for example through CAMARA SimSwap) and covers only some countries. Buy it where it exists for your high-risk flows.
- MobileValidate doesn't sell SIM-swap data. Our carrier lookup shows porting hints and line type, and the HLR lookup is coming soon. Neither sees a SIM change at the same operator.
- Where SIM-swap data is missing, combine device, account-history and number signals, and weight their timing.
- Step up to passkeys, authenticator apps or e-mail when signals line up, and offer non-SMS factors to everyone.
For the number facts behind porting, read why carrier lookups can be wrong after porting. The pre-send checks for every code are in OTP fraud prevention: checks to run before sending a code.
Sources
- Criminals Increasing SIM Swap Schemes to Steal Millions of Dollars from US Public (I-020822-PSA) — FBI Internet Crime Complaint Center, 2022
- Protecting Consumers From SIM-Swap and Port-Out Fraud (Report and Order) — Federal Communications Commission, Federal Register, 2023
- Countering SIM-Swapping — ENISA, 2021
- CAMARA SimSwap API (release r3.3) — CAMARA Project (Linux Foundation), 2025
- NIST SP 800-63B-4: Digital Identity Guidelines — Authentication and Authenticator Management — NIST, 2025
Frequently asked questions
Does MobileValidate offer a SIM swap check?
No. We don't sell SIM-change dates. We provide related signals: line type, current and original carrier (a porting hint), messenger presence and, in limited access for US, Canadian and German numbers, spam reputation. A live network status check (HLR) is coming soon.
What is the difference between a SIM swap and a port-out?
A SIM swap moves the number to a new SIM or eSIM at the same operator. A port-out moves the number to a different operator. Both hand the number to whoever controls the new SIM, but only a port-out changes the carrier a lookup reports.
Can a messenger check detect a SIM swap?
No. A messenger account usually stays registered to the number after a swap, so presence neither confirms nor rules out a swap. It is useful for other things, such as offering a code channel the user already has.
What should we do when no SIM-swap API covers a country?
Combine what you do know: device and session changes, a recent number change on the account, a carrier or porting change compared with your last snapshot, and the value of the action. Step up to a factor that doesn't depend on the phone network when several signals line up.
Related services and guides
More from the blog
All articlesGuides
Mobile number portability: why carrier lookups can be wrong
A number's prefix shows the network its range was given to, not the one serving it today. How porting works, where lookups fail and how to handle it.
7 min read
Fraud prevention
IRSF: international revenue share fraud, explained
How international revenue share fraud turns your calls and texts into someone else's income, how it differs from SMS pumping, and how to cap your exposure.
7 min read
Fraud prevention
OTP fraud prevention: the checks to run before you send a code
A practical pre-send pipeline for one-time passcodes: normalize, check line type, messenger presence and reputation in one request, then decide.
8 min read


