The Platform PM

Key concepts

Field Guide

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.

SenderUnit of identityWhat proves it
10DLCBrand → 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-freeEach numberVerification, with a business registration number required for new submissions since early 2026
Short codeEach program, per carrierRegistry vetting (name, tax ID, legal history), then each carrier's review
Alpha abroadSender ID × country × carrierProof of the brand link: India registers entity, header, template and consent; Spain wants a trademark, trade name or domain
RCSAgent, owned by the platform as Google's partnerThe brand's contact answers Google's verification email, once per agent
WhatsAppPortfolio → WABA → number → display nameMeta business verification, display name review
VoiceThe number on the callThe 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.

More on Entity and identity →

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:

ObjectStates that matterWho moves it
10DLC brandUnverified, verified, Auth+ pending or passed, vettedTCR and vetting firms
10DLC campaignPending review, rejected, approved, registered at each carrier, suspendedThe DCA (direct connect aggregator, which reviews campaigns before carriers see them), then each carrier
Toll-free numberText-enabled, pending verification, verified, rejectedSomos registry, the verification reviewer
Short codeLeased, approved per carrier, live, suspended, lapsedCTIA's registry, each carrier
RCS agentPer carrier: pending, launched, rejected, suspended, unlaunchedGoogle or the carrier
WhatsAppNumber connected; display name approved or declined; templates pending, approved, paused, disabledMeta
911 recordValidated, provisioned, stalePlatform 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.

More on State and lifecycle →

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.

FactSystem of recordRun by
Which carrier holds a number blockLERG (the national routing guide)iconectiv
Where a ported number routesNPACiconectiv, porting administrator since May 2018
Number assignments, reassigned numbersNANPA, Pooling Administrator, Reassigned Numbers DatabaseSomosGov (current contract option runs to Nov 30, 2026)
Toll-free ownership and text-enablementTFNRegistry, TSS RegistrySomos
Text-enablement of hosted long codesNetNumber's registry (per providers)NetNumber
10DLC brands, campaigns, vet scoresTCR, plus each carrier's provisioningTCR, DCAs, carriers
Short code leasesUS Short Code Registry; txt.ca in CanadaCTIA; Canadian Telecommunications Association
Provider robocall certificationsRobocall Mitigation Database (RMD)FCC
911 caller locationALI or, in NG911, LIS (the databases 911 centers query)911 service providers
WhatsApp assets, limits, chargesWhatsApp Manager, webhooks, pricing analyticsMeta
RCS agents, launch state, billable eventsGoogle's console and daily billing reportsGoogle
Alpha senders abroadIndia's DLT ledgers, Singapore's SMS Sender ID Registry (SSIR), ACMA's register, CNMC's alias registryOperators 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.

More on System of record and ledger →

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.

CarrierHow 10DLC throughput is set
AT&TPer 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-MobilePer 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
VerizonNo 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.

More on Rules and policy →

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.

ChangeEffectiveStatus (Oct 2026)
T-Mobile 10DLC SMS fee up by about half, to just under half a centJanuary 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 centApril 1, 2026Live
Verizon SMS fee of just under half a cent, sent messages onlyMay 1, 2026Live
Verizon 10DLC and toll-free SMS fee raised again, to about half a centOctober 1, 2026Reported by one aggregator; Twilio's October 2026 list shows it
WhatsApp charges for service replies and in-window utility templatesOctober 1, 2026Live
FCC "revoke-all" opt-out ruleWaived to January 31, 2027Rewrite scheduled for an FCC vote on Sept 30, 2026; outcome unconfirmed
Auth+ for all brands except sole proprietorsJanuary 21, 2027Reported 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.

More on Effective dating →

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.

More on Interfaces and standards →

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).

PartyWhat they control
CarriersFiltering, throughput, fees, fines, suspension of any brand, number or provider
DCAsWhether a campaign reaches the carriers at all
TCRBrand identity checks and fees; it does not approve campaigns
Somos and RespOrgsToll-free numbers and text-enablement (a RespOrg, the number's managing company, can reject an enablement it didn't authorize)
iconectivPorting data, routing data and SHAKEN token administration
Analytics engines (Hiya, TNS, First Orion)The call labels behind the major US wireless carriers
MetaEverything on WhatsApp
GoogleRCS partner admission and Google-managed launches, which need a carrier-managed launch in that country first
AppleWhether 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.

More on Networks and counterparties →

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.

More on Regulatory layering →

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.

ExceptionThe way backClock and cost
10DLC brand fails the identity checkResubmit exact legal data, or appealA few dollars per resubmit, about $10 per appeal (TCR)
Campaign rejected by the DCAFix description, samples, opt-in proof; resubmitDays per round; providers report $10-20 per review
Toll-free verification rejectedFix and resubmitDays to weeks
WhatsApp template rejected or recategorizedAppeal (decided within 24 hours) or request category review within 60 daysHours
WhatsApp enforcementAppeal, answered in 24 to 48 hours; some spam violations can't be appealedBlocks of 1 to 30 days meanwhile
RCS agent suspendedThe carrier can reinstate; the partner can request launch againThe carrier's timeline
Port rejectedFix the mismatch and supplement the existing order (a "SUP"), don't start a new one1 business day (simple) or 4 (non-simple) once clean
Port-out fraud on a mobileWireless carriers must authenticate port-outs, notify customers and offer a free lock (FCC rules adopted Nov 2023)Hours matter
Improper SHAKEN attestationSTI-GA can revoke the provider's tokenNo token, no A or B attestation
Consumer opts outOnly 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.

More on Exceptions and reversals →

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.

FailureWho paysMechanism
Message blocked or filteredSenderBlocked messages can still be billed (stated explicitly for unverified toll-free)
Non-compliant contentCarrier fines the provider, which passes it down by contractT-Mobile's Sev-0 fines are reported at $500 to $2,000 per violation since 2024
SMS pumpingSender, for every messageFraudsters split termination revenue with a complicit operator; customers who switch off a provider's geographic protections carry the loss explicitly
TCPA violationSenderClass actions; the reassigned-number safe harbor covers only a caller who proves it checked
Miscategorized WhatsApp templateBusinessCharged at the category Meta applied at send time
RCS replies and fallbackPlatform as RCS partnerOwes carriers for billable events, including US replies and STOP taps; fallback SMS is its own cost
False attestation or RMD filingSigning providerToken revocation, RMD removal, a $10,000 base forfeiture for false RMD information
911 failureSharedThe 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 mobilesWireless carrierAuthentication, 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.

More on Liability allocation →