Phone numbers, messaging and voice
04
Key concepts
13 min read · Chapter 4 of 10
01
Entity and identity
What is the unit of record, and how do we know it is the same one?
People mix up the number (an E.164 address, the international format of country code plus national number, allocated to a carrier and reaching you through resale), the sender (whatever the recipient sees) and the business (the legal entity a gatekeeper has checked) all the time.
| Sender | Unit of identity | What proves it |
|---|---|---|
| 10DLC | Brand → campaign → numbers (one campaign per number) | TCR matches legal name, EIN and address to official records; Auth+ emails a named representative (public companies, since Aug 2025); optional vet score |
| Toll-free | Each number | Verification, with a business registration number required for new submissions since early 2026 |
| Short code | Each program, per carrier | Registry vetting (name, tax ID, legal history), then each carrier's review |
| Alpha abroad | Sender ID × country × carrier | Proof of the brand link: India registers entity, header, template and consent; Spain wants a trademark, trade name or domain |
| RCS | Agent, owned by the platform as Google's partner | The brand's contact answers Google's verification email, once per agent |
| Portfolio → WABA → number → display name | Meta business verification, display name review | |
| Voice | The number on the call | The signing provider's STIR/SHAKEN attestation |
A 10DLC sole proprietor is a person or business without an EIN (an LLC with one isn't), verified by a one-time code to a US or Canadian mobile; providers say it gets one campaign and one number. And Auth+, today required only of public companies, will extend to new brands of every type except sole proprietors from January 21, 2027, according to providers.
In every case someone else issues and checks the identity, at a different level for each sender type, so I'd model brand, campaign, sender and number as separate records, each with its own history.
02
State and lifecycle
What states exist, and what moves an entity between them?
A number has one lifecycle; a sender has several running side by side, and the bugs tend to show up where they disagree.
The NANP number lifecycle, from the platform's side: spare → allocated to a carrier block → in your inventory → reserved → active → porting out or released → aging → spare again. Aging is set by law: a disconnected number must age at least 45 days, and at most 90 days for residential and 365 for business numbers. Toll-free runs its own clocks for reserved, assigned and disconnected numbers.
On top of the number, every sender layer keeps its own state:
| Object | States that matter | Who moves it |
|---|---|---|
| 10DLC brand | Unverified, verified, Auth+ pending or passed, vetted | TCR and vetting firms |
| 10DLC campaign | Pending review, rejected, approved, registered at each carrier, suspended | The DCA (direct connect aggregator, which reviews campaigns before carriers see them), then each carrier |
| Toll-free number | Text-enabled, pending verification, verified, rejected | Somos registry, the verification reviewer |
| Short code | Leased, approved per carrier, live, suspended, lapsed | CTIA's registry, each carrier |
| RCS agent | Per carrier: pending, launched, rejected, suspended, unlaunched | Google or the carrier |
| Number connected; display name approved or declined; templates pending, approved, paused, disabled | Meta | |
| 911 record | Validated, provisioned, stale | Platform and its 911 provider |
Abroad, add degraded states: delivered but labelled "Likely-SCAM" (Singapore) or "Unverified" (Australia), or delivered with your sender overwritten.
Take the same clinic chain. Its appointment-reminder campaign clears the DCA on Monday; it can be live at T-Mobile by Tuesday and still pending at AT&T on Thursday, so some patients get their reminders and others don't.
"Approved" in one system rarely means live everywhere, so show customers the state per carrier. Port-out and release should also clean up the campaign link, any hosted SMS route (texting on a number whose voice stays with another carrier) and the 911 record.
03
System of record and ledger
Who owns the truth, and how do systems reconcile?
Your inventory database is a copy. Nearly every fact a customer cares about is owned by someone else.
| Fact | System of record | Run by |
|---|---|---|
| Which carrier holds a number block | LERG (the national routing guide) | iconectiv |
| Where a ported number routes | NPAC | iconectiv, porting administrator since May 2018 |
| Number assignments, reassigned numbers | NANPA, Pooling Administrator, Reassigned Numbers Database | SomosGov (current contract option runs to Nov 30, 2026) |
| Toll-free ownership and text-enablement | TFNRegistry, TSS Registry | Somos |
| Text-enablement of hosted long codes | NetNumber's registry (per providers) | NetNumber |
| 10DLC brands, campaigns, vet scores | TCR, plus each carrier's provisioning | TCR, DCAs, carriers |
| Short code leases | US Short Code Registry; txt.ca in Canada | CTIA; Canadian Telecommunications Association |
| Provider robocall certifications | Robocall Mitigation Database (RMD) | FCC |
| 911 caller location | ALI or, in NG911, LIS (the databases 911 centers query) | 911 service providers |
| WhatsApp assets, limits, charges | WhatsApp Manager, webhooks, pricing analytics | Meta |
| RCS agents, launch state, billable events | Google's console and daily billing reports | |
| Alpha senders abroad | India's DLT ledgers, Singapore's SMS Sender ID Registry (SSIR), ACMA's register, CNMC's alias registry | Operators or regulators |
The one record that's yours is consent. It's the sender's own system of record, and in a lawsuit or a carrier audit it's the only defence you have. CTIA's short code handbook expects consent records kept six months after an opt-out. The reassigned-number safe harbor only protects callers who can prove they checked the Reassigned Numbers Database, so keep those query logs too.
04
Rules and policy
What logic decides outcomes, and who can change it?
Most rules that decide outcomes here are written by carriers and industry bodies, and they change by memo.
The US baseline is CTIA's Messaging Principles and Best Practices (May 2023, still the latest):
- Consent scales with content: implied for conversational, express for informational, express written for promotional messages.
- One opt-in per campaign, not transferable; no rented or bought lists.
- Opt-out works in plain language, not only STOP, with one confirmation message.
- No public URL shorteners and no snowshoeing (spreading traffic across many numbers to dodge filters).
CTIA's short code handbook adds HELP and STOP wording and the SHAFT rules (sex, hate, alcohol, firearms, tobacco): legal SHAFT content needs an age gate.
Carriers set throughput by rule, from the vet score. A retailer's campaign with a vet score of 40 gets 240 texts a minute at AT&T, so a 100,000-text flash sale takes about seven hours to go out; with a score above 75 it would take under half an hour.
| Carrier | How 10DLC throughput is set |
|---|---|
| AT&T | Per campaign per minute, by vet score: 4,500 SMS (75-100), 2,400 (50-74), 240 (1-49); 75 for low-volume mixed; 15 for sole proprietors |
| T-Mobile | Per brand per day, shared by all its campaigns: 200,000 (75-100), 40,000 (50-74), 10,000 (25-49), 2,000 (1-24); 1,000 for sole proprietors |
| Verizon | No published numbers; relies on filtering |
Carriers don't publish these tiers; I took them from provider documentation in October 2026. What moves you up a tier is the vet score, and a standard vet costs around $40 at TCR.
Rich channels have their own rulebooks. Since April 9, 2025, Meta approves a WhatsApp "utility" template that reads like marketing as marketing. One line like "upgrade your seat for $29" at the end of an airline's boarding-pass template can turn a cheap utility message into a marketing one. Google holds each RCS agent to the use case declared at launch: OTP, transactional, promotional or multi-use. Abroad, countries add content categories and quiet hours: India's P/S/T/G header suffixes, the UAE's "AD-" prefix with no promotions from 21:00 to 07:00 (according to provider guides), and Colombia's advertising window of weekdays 07:00-19:00 and Saturdays 08:00-15:00 under Ley 2300.
Anything an outside party can change belongs in configuration with an effective date.
05
Effective dating
Which version of the rule applied at that moment?
The price of a message depends on the day it was sent, and sometimes on which carrier memo you read.
| Change | Effective | Status (Oct 2026) |
|---|---|---|
| T-Mobile 10DLC SMS fee up by about half, to just under half a cent | January 2026 (sources cite the 15th, 19th and 29th) | Live |
| AT&T SMS fee up to about a third of a cent, both directions; MMS (picture message) to about a cent | April 1, 2026 | Live |
| Verizon SMS fee of just under half a cent, sent messages only | May 1, 2026 | Live |
| Verizon 10DLC and toll-free SMS fee raised again, to about half a cent | October 1, 2026 | Reported by one aggregator; Twilio's October 2026 list shows it |
| WhatsApp charges for service replies and in-window utility templates | October 1, 2026 | Live |
| FCC "revoke-all" opt-out rule | Waived to January 31, 2027 | Rewrite scheduled for an FCC vote on Sept 30, 2026; outcome unconfirmed |
| Auth+ for all brands except sole proprietors | January 21, 2027 | Reported by providers |
Meta runs a cleaner calendar: WhatsApp prices change only on January 1, April 1, July 1 or October 1, with at least a month's notice for a rate change and six for a change of pricing model. A template is charged at whatever category it holds when sent.
The FCC splits dates in two. A rule can be "effective" while compliance waits for OMB (the White House office that approves paperwork burdens) and a Federal Register notice, as the SIM-swap and NG911 rules did. The date to track is the compliance notice.
Picture a logistics company sending 50,000 delivery texts a month, mostly to T-Mobile users. The January 2026 change added a fraction of a cent to each, which is roughly $75 a month on a contract nobody reopened. Multiply that across every customer and every carrier, and you need to know which fee applied to which message.
I'd store two dates on every approval and every fee: when it took effect and when you learned about it. Finance and carriers will both ask what applied when a given message went out.
06
Interfaces and standards
What format and protocol do counterparties speak?
The standards are old, every provider speaks its own dialect, and the signal you want is often missing.
- Numbers. E.164, and in the NANP the NPA-NXX-XXXX format (area code, exchange, line). Mobile and landline numbers share area codes, so you need a lookup to know the line type.
- Messaging. Platforms reach aggregators over SMPP (the SMS industry's binding protocol) or HTTP. Billing counts segments (the parts a long SMS gets split into), and every provider has its own error codes.
- Porting. An LSR (local service request) goes to the losing carrier, an FOC (firm order commitment, the agreed date) comes back, and the NPAC record flips. A simple port may be validated on just four fields: number, account number, ZIP code and passcode.
- Caller identity. STIR/SHAKEN (ATIS-1000074) signs each call. "A" means the signer knows the customer and checked its right to the number; "B", it knows the customer but not the number; "C", it's passing on traffic it didn't originate. Since September 18, 2025 a provider must sign with its own SPC token (the credential iconectiv issues to eligible providers). Since March 25, 2026 a terminating provider that blocks on analytics has to say so with SIP code 603+.
- 911. NG911 carries calls over SIP, with location inside the signaling as PIDF-LO (a standard location object).
- RCS. GSMA's Universal Profile (4.0 finalized March 2026). Google's API returns 404 when it can't reach a user; fallback is your job.
- WhatsApp. Cloud API only, since the On-Premises API ended October 23, 2025. Webhooks carry business-scoped user IDs, which you've had to support since April 2026. Embedded Signup v2 is deprecated on October 15, 2026.
An A attestation only tells you who signed the call and what they know about the caller; it says nothing about whether the call is wanted or legal.
07
Networks and counterparties
Who sits between us and the outcome, and what do they want?
A US business text passes through at least four companies before it reaches a phone, and any of them can stop it.
The chain: brand → platform (registered at TCR as the CSP, campaign service provider) → DCA or aggregator → carrier → handset. Alongside sit TCR, the vetting firms Aegis and WMC (whose scores set throughput), and Campaign Verify for political senders (providers say it's required on toll-free and short codes too since February 17, 2026).
| Party | What they control |
|---|---|
| Carriers | Filtering, throughput, fees, fines, suspension of any brand, number or provider |
| DCAs | Whether a campaign reaches the carriers at all |
| TCR | Brand identity checks and fees; it does not approve campaigns |
| Somos and RespOrgs | Toll-free numbers and text-enablement (a RespOrg, the number's managing company, can reject an enablement it didn't authorize) |
| iconectiv | Porting data, routing data and SHAKEN token administration |
| Analytics engines (Hiya, TNS, First Orion) | The call labels behind the major US wireless carriers |
| Meta | Everything on WhatsApp |
| RCS partner admission and Google-managed launches, which need a carrier-managed launch in that country first | |
| Apple | Whether iPhones render business RCS (iOS 18 or later, with its own user toggle) |
Abroad, the mobile carrier is the gatekeeper and sets the termination price (what it charges to deliver to its subscriber). Colombia requires a registered integrator for short codes, Nigeria routes international A2P through a single licensed gateway, and Brazil plans a central directory that binds short code brokers by contract (announced January 2026; I haven't confirmed it's live).
Then there are counterparties nobody signs with: grey routes (traffic pushed through consumer SIMs in "SIM boxes" to dodge termination fees) and SMS pumpers. A lot of the rules in this guide exist because of them.
08
Regulatory layering
Jurisdiction × activity × entity type: is it a license or a certification?
I keep these layers apart because each has a different enforcer and a different penalty.
Law
- US and Canada
- TCPA (the US consent law for calls and texts); state laws (Texas treats texts as telephone solicitation since Sept 2025); CASL (Canada's anti-spam law); Kari's Law and RAY BAUM'S Act for 911
- Elsewhere
- Spain's Orden TDF/149/2025; Colombia's Ley 2300
- Enforced by
- Courts, plaintiffs, regulators
Regulator rule
- US and Canada
- FCC rules: 47 CFR Part 9 (911), Part 52 (numbering), Part 64 (consent, robocalls); CRTC decisions
- Elsewhere
- India's TCCCPR, ACMA's register, CNMC's alias registry, CRC resolutions
- Enforced by
- FCC, CRTC, national regulators
Industry guideline
- US and Canada
- CTIA principles and handbook; Canadian short code guidelines; token policy from STI-GA (the industry board that governs SHAKEN)
- Elsewhere
- MEF's SenderID registry (UK)
- Enforced by
- Audits, contracts, token revocation
Carrier policy
- US and Canada
- Codes of conduct, filtering, fines, throughput tiers
- Elsewhere
- Allowlists, per-carrier ID approval
- Enforced by
- Blocking and fines
Platform-owner policy
- US and Canada
- Meta's Business Messaging Policy; Google's RCS acceptable use policy
- Elsewhere
- Same
- Enforced by
- Rejections, pauses, bans
Your policy
- US and Canada
- Acceptable use, KYC
- Elsewhere
- Same
- Enforced by
- You
Carrier policy is routinely stricter than the law. The 11th Circuit threw out the FCC's one-to-one consent rule on January 24, 2025, and the FCC later deleted it. Yet providers say toll-free and campaign reviewers still reject consent that lead generators gathered for unnamed "partners". The FCC allows up to 10 business days to honor an opt-out; carriers expect STOP to work immediately.
Canada is the useful contrast. CASL requires consent, sender identification and a working unsubscribe, with penalties up to CAD 10M for a business, but the part that would let people sue directly has been suspended since 2017. Providers say there's no 10DLC-style registry for texts within Canada, but Canadian numbers texting the US must register with TCR. Toll-free reaches both countries. Canadian short codes must answer STOP, ARRET, HELP, AIDE and INFO in English and French.
09
Exceptions and reversals
What goes wrong, and how is it undone?
Most of this team's operational load lives in exception paths, and nearly all of them run on someone else's clock.
| Exception | The way back | Clock and cost |
|---|---|---|
| 10DLC brand fails the identity check | Resubmit exact legal data, or appeal | A few dollars per resubmit, about $10 per appeal (TCR) |
| Campaign rejected by the DCA | Fix description, samples, opt-in proof; resubmit | Days per round; providers report $10-20 per review |
| Toll-free verification rejected | Fix and resubmit | Days to weeks |
| WhatsApp template rejected or recategorized | Appeal (decided within 24 hours) or request category review within 60 days | Hours |
| WhatsApp enforcement | Appeal, answered in 24 to 48 hours; some spam violations can't be appealed | Blocks of 1 to 30 days meanwhile |
| RCS agent suspended | The carrier can reinstate; the partner can request launch again | The carrier's timeline |
| Port rejected | Fix the mismatch and supplement the existing order (a "SUP"), don't start a new one | 1 business day (simple) or 4 (non-simple) once clean |
| Port-out fraud on a mobile | Wireless carriers must authenticate port-outs, notify customers and offer a free lock (FCC rules adopted Nov 2023) | Hours matter |
| Improper SHAKEN attestation | STI-GA can revoke the provider's token | No token, no A or B attestation |
| Consumer opts out | Only the consumer can opt back in (START, UNSTOP) | FCC ceiling 10 business days; carriers expect immediate |
Regulators reverse themselves too. Brazil made the 0303 telemarketing prefix optional in August 2025, and federal prosecutors asked for it back in January 2026.
Say a dental group moves its main line to your platform, and the port form uses the practice's trading name while the losing carrier's record has the legal name. The port comes back rejected. The fix is a supplement to the same order, and a support team that doesn't know that starts over and loses days.
I'd design the rejection path before the happy path, since that's where your customer's launch slips and where they decide whether your platform earns its markup.
10
Liability allocation
When it fails, who pays?
The default answer to "who pays?" is the sender, then whoever has a contract with the sender.
| Failure | Who pays | Mechanism |
|---|---|---|
| Message blocked or filtered | Sender | Blocked messages can still be billed (stated explicitly for unverified toll-free) |
| Non-compliant content | Carrier fines the provider, which passes it down by contract | T-Mobile's Sev-0 fines are reported at $500 to $2,000 per violation since 2024 |
| SMS pumping | Sender, for every message | Fraudsters split termination revenue with a complicit operator; customers who switch off a provider's geographic protections carry the loss explicitly |
| TCPA violation | Sender | Class actions; the reassigned-number safe harbor covers only a caller who proves it checked |
| Miscategorized WhatsApp template | Business | Charged at the category Meta applied at send time |
| RCS replies and fallback | Platform as RCS partner | Owes carriers for billable events, including US replies and STOP taps; fallback SMS is its own cost |
| False attestation or RMD filing | Signing provider | Token revocation, RMD removal, a $10,000 base forfeiture for false RMD information |
| 911 failure | Shared | The NET 911 Act gives VoIP providers liability protection no less than local phone companies get; notice duties stay with the provider; terms push address accuracy onto customers |
| Port-out fraud on mobiles | Wireless carrier | Authentication, notification and lock duties |
Take a fintech whose sign-up page texts a code to any number typed in. Overnight a bot enters 100,000 numbers in a few small countries, each text costs several cents, and the carriers there split that revenue with the fraudster. The fintech gets a bill of several thousand dollars for sign-ups that never existed, and it'll ask whether you should have stopped it.
Every setting that relaxes a protection (geographic permissions, rate limits, consent checks) is also a decision about who absorbs the loss, so write the answer into the spec and the contract.