All posts

SMS Marketing Compliance: What Actually Breaks, and How to Stop It Breaking

August 14, 202615 min read
cpmpilance in sms marketing

The last compliance problem I looked at closely started with a field mapping. A retailer moved CRMs over a weekend. The new schema had an opt-in boolean. It did not have a field for the timestamp, the capture source, or the exact wording the customer had agreed to. Everything kept sending. Delivery rates looked normal. Roughly six weeks later, a complaint arrived that nobody could answer because the evidence that would have answered it got quietly dropped in a migration that nobody had classified as a compliance event.

That is what SMS marketing compliance failure usually looks like. Not a rogue campaign. A field mapping.

Most marketing teams can already recite the basics. TCPA needs prior express written consent for promotional texts. GDPR needs a lawful basis and a real audit trail. CASL treats implied consent much more narrowly than express. TRAI has its own registration regime. None of that is where programs come apart. If you want the statute-level detail organised by market, we keep the country-by-country SMS compliance rules in a separate reference and update it as regimes shift.

This piece is the layer underneath the law: the plumbing that decides whether the rules you already know actually get applied at 9pm on a Friday when someone is pushing a flash sale live.

sms-marketing-complianc

One caveat before we start. I am not a lawyer, and none of this is legal advice. The goal is narrower and more useful: make the legal review you do get worth paying for, instead of spending it re-explaining your own systems.

Where SMS Marketing Compliance Breaks, and Why It Is Almost Never the Law

Compliance incidents cluster in a handful of boring places. A new sign-up form goes live and captures fewer consent fields than the old one, because the person who built it was optimising conversion, not evidence. A support team starts sending shipping updates from the promotional number, and now transactional and marketing consent are tangled in a way nobody designed. An agency gets access to the sending tool for a campaign and uploads a list of unknown provenance. A template gets edited at 6pm and the opt-out line loses its variable.

Notice what these have in common. Nobody made a decision to break the rules. The rules just stopped being enforced by anything other than memory.

There is a second pattern worth naming, and it is the one that costs the most money. Teams treat compliance as a launch task. You do the work once, you get sign-off, and then the program runs for three years while every surrounding system changes around it. Consent language gets rewritten. The ESP gets swapped. A new market is added. Compliance was correct on day one and has been drifting ever since, with no test that would catch it.

Consent is not a flag. It is a record, and the record needs to outlive whatever system it was born in.

consent-record-anatomy-sms-compliance

Three things have to be captured at the moment consent happens, not reconstructed later:

  • The exact language shown to the customer, stored as a versioned snapshot rather than a pointer to your current opt-in copy. Your copy will change. The dispute will be about what they saw in March.

  • Where and how it happened. A web form, a keyword campaign, a POS checkout, an app permission screen. These carry different evidentiary weight, and you will eventually need to segment by source when a specific channel turns out to have been misconfigured.

  • What it covers. Promotional, transactional, or both, tracked as separate flags. A customer who opts out of offers still expects a delivery notification.

Then there is storage, and this is where most programs quietly fail. If your e-commerce platform, your helpdesk, and your marketing automation tool each keep their own opt-in state, they will disagree. Not maybe. Eventually and inevitably, usually during a high-volume week when nobody is watching the reconciliation job. The fix is one system of record that every sender reads from before a message leaves, which is a large part of why teams consolidating messaging behind a single CPaaS stack end up solving a compliance problem they thought was an architecture problem.

Something I would push harder on than most guides do: write down who owns this. Not the policy, the record. Marketing usually owns the campaign, legal owns the interpretation, and engineering owns the schema, which means in practice nobody owns the field that got dropped in the migration. Pick a name.

What SMS Marketing Compliance Requires Inside the Message Body

A meaningful chunk of your exposure lives in 160 characters, and this is where marketing copy and legal requirements pull directly against each other. Every character spent on disclosure is a character not spent on the offer. That tension is real, and I am not going to pretend it resolves neatly.

Sender identification has to be obvious early. "Get 20% off today only" with no brand name in the first clause is a compliance risk in several jurisdictions, not just weak branding. Put the brand in front.

Opt-out instructions belong on promotional messages generally, not only the first in a sequence. Teams often assume consent covers the whole campaign once nobody has objected. The requirement runs closer to the opposite.

Quiet hours and frequency caps vary by market and are the single most common failure in globally scheduled sends. A 9pm local send that is fine in one country breaches quiet-hour rules two time zones over. If your calendar is built centrally against a global list, the scheduler needs to resolve local time per recipient, not per campaign. This is not a policy problem. It is a field in your send job.

Carrier-level requirements sit on top of the legal ones and get forgotten because they are not in any statute. In the US, 10DLC brand and campaign registration, use-case declarations, and CTIA messaging guidance are enforced by the carriers directly, which means the penalty arrives as filtering rather than a lawsuit. Teams evaluating enterprise messaging providers in the US market should be asking who owns registration accuracy when a use case changes, because the answer is frequently "nobody, since launch."

If your team is reading carrier documentation and hitting unfamiliar terminology, the SMS, SMPP, and OTP terminology reference covers the vocabulary those specs assume you already have.

Send-Time Enforcement Turns SMS Marketing Compliance Into a System

Here is the test I would apply to any SMS program. If the person who knows the compliance rules goes on holiday for two weeks, does anything change?

If the answer is yes, you do not have compliance. You have a person.

Enforcement has to sit in the send pipeline as a blocking check. Suppression list, consent state, quiet-hour resolution, frequency cap, template validation. All of it is evaluated automatically at dispatch, all of it is capable of failing the send rather than warning about it. Warnings get dismissed during launch week. That is what launch weeks are for.

Where this check lives matters. A pre-send audit inside your marketing tool covers messages that originate in your marketing tool. It does nothing for the transactional traffic your product team fires directly, or the one-off sends someone runs from a spreadsheet, or the agency campaign that bypasses your workflow entirely. Which is why campaign management platforms that enforce suppression at dispatch are necessary but not sufficient. The check ideally sits closer to the messaging layer than the marketing layer, so every path to a subscriber passes through it.

There is also a propagation question that people underestimate. When someone texts STOP, how long until every sending system knows? If your keyword handling terminates at a gateway and syncs back on a schedule, you have a window during which a compliant system sends a non-compliant message. Measure that window. Regulators and carriers both care about it, and it is one of the details that changes depending on how A2P routing decisions get made once a message leaves your platform.

Industry Checkpoints That Change Your SMS Compliance Obligations

The baseline applies everywhere. Each sector then adds a layer that generic advice skips.

Retail and e-commerce run the highest volume and the messiest consent bases, mostly because abandoned-cart flows, loyalty programs, flash sales, and order updates end up sharing one number. The answer is not more consent collection. It is separating promotional and transactional flags properly so a promotional opt-out does not kill shipping notifications, and so a promotional complaint does not poison the sender your order confirmations depend on.

Healthcare adds HIPAA in the US on top of general consent law. Practical rule: keep protected health information out of the body entirely. "Your appointment is confirmed" is fine. Naming a condition, a medication, or a specialty department in plain text is not, and the fact that the patient consented to SMS does not change that.

Financial services messaging usually falls under GLBA alongside TCPA, and fraud alerts complicate things further because they are time-critical and often exempt from marketing rules while being subject to stricter content rules. No account numbers, no balances, no identifying details in plain text. Link to an authenticated portal. Institutions comparing gateway options built for banks and fintech senders tend to weight audit logging and route transparency far above throughput, which is the right instinct.

Number Hygiene Is the Compliance Risk Nobody Owns

This is the gap I see most often, and it barely appears in compliance content at all.

Phone numbers get reassigned. A customer who validly consented in 2023 gives up that number, a carrier recycles it, and a new person starts receiving your campaigns. Your consent record is intact. Your send is still a problem, and in the US it is a well-established litigation vector precisely because the sender's paperwork looks fine.

Consent hygiene and list hygiene are the same job. A quarterly pass to check whether numbers are still active, still on the same network, and still reachable does more for your risk profile than another policy document. That is what number intelligence checks are for, and there is a decent argument that running validation before a send rather than after a failure should be a standing pre-flight step for any list older than a few months.

Worth understanding what these lookups actually tell you, since they are not interchangeable. The distinction between HLR and MNP lookups matters when a number has ported: one tells you reachability and current network status, the other tells you which operator now holds it, and routing against the wrong answer produces failures that look like deliverability noise. The cost case for cleaning lists before sending usually pays for the exercise on its own, which is a convenient way to get budget for something the compliance argument alone rarely funds.

Why SMS Marketing Compliance Failures Surface as Delivery Problems First

Almost nobody connects these two things, and they should.

compliance-signals-sms-delivery-rate (1)

Carriers and filtering systems increasingly treat compliance signals as deliverability inputs. High complaint rates, opt-out-then-resend patterns, content that reads as unsolicited, sudden volume spikes from an unregistered use case: these get handled the same way traffic moving over grey routes gets handled. Filtered, throttled, or dropped, usually without notification.

Which means the first symptom of a compliance problem is rarely a legal letter. It is a number going down. If you are diagnosing why A2P delivery rates start dropping, and the routing, template, and volume all look unchanged, consent hygiene deserves a look before you blame the carrier. Knowing your own normal delivery rate baselines is what makes that diagnosis possible at all, because you cannot detect a five-point drop you never measured.

Route quality interacts with this too. Compliant traffic on a poor route still underperforms, and the difference between tier 1 and tier 2 carrier connections shows up in exactly the metrics you would otherwise read as a compliance signal. Untangling the two takes route-level visibility that most marketing dashboards do not provide.

Two more pieces, and then I will stop connecting things. Operators are watching the same traffic you are sending, from the other side, and the fraud patterns they filter for overlap heavily with what a sloppy marketing program produces. Meanwhile, the network-side view of this is straightforwardly commercial: the revenue protection case for A2P traffic explains why carriers invest in the filtering that catches you, which is useful context if you have ever wondered why appeals go slowly.

At the infrastructure level, an SMS firewall sitting at the network edge is what catches spoofed, malformed, or unregistered traffic before it reaches a subscriber. Enterprises do not run these. Operators do. But understanding what they screen for tells you a great deal about why your perfectly legal campaign got throttled anyway.

Building an SMS Marketing Compliance Audit Trail You Can Hand Over

At some point somebody external asks you to prove something. A regulator, a carrier during a suspension appeal, an enterprise customer's procurement team, an acquirer's diligence process.

What they want is narrow and specific: for this number, on this date, show me the consent, the language, the source, the send, and the suppression state at the time. If assembling that answer requires three teams and a week, you do not have an audit trail. You have logs.

The practical version is boring. Immutable consent events rather than a mutable current-state flag. Message-level records that persist beyond your ESP's retention window, because your ESP's retention window is set for billing, not for statutes of limitations. Version history on templates and opt-in copy. Retention long enough to cover the longest limitation period in your operating markets, and four years is the number I hear most often as a floor, though sectors differ and some keep considerably longer.

Test it before someone else does. Pick a random number from last quarter and try to produce the full chain. The exercise takes an afternoon and tells you more than any checklist.

A First 90 Days for Closing SMS Marketing Compliance Gaps

If this reads like a lot, it is, and doing it in order helps. Weeks one and two: inventory every system that can send a message to a customer number. Everyone. The marketing platform, the product's transactional service, the helpdesk, the loyalty tool, the agency's account, the analytics tool with an SMS webhook nobody remembers enabling. This list is always longer than expected, and it is the whole foundation.

Weeks three through six: pick the single source of truth for consent and make every sender on that list read from it before dispatch. Nothing else on this page matters if two systems can disagree about the opt-in state.

Weeks seven through ten: move the checks into the pipeline. Suppression, quiet hours resolved per recipient, frequency caps, template validation with a failing test rather than a warning.

Weeks eleven and twelve: run the audit-trail drill and a list-hygiene pass, then write down the owner for each. Teams without in-house telecom capacity often hand the monitoring layer to a managed messaging operation at this point, mostly because the alerting is continuous and nobody's marketing calendar has room for it.

You will not finish in 90 days. You will get the failure modes that cause actual incidents out of the way, and that is a different thing from being done.

Something genuinely different is happening in the rich channels, and I think it will change the shape of this work within a few years.

RCS business messaging folds sender verification and richer consent disclosure into the protocol itself rather than leaving them to marketer discipline. Verified sender badges, brand identity at the platform level, capability negotiation before a send. The compliance posture shifts from policy you follow to protocol you are built on, which removes a category of human error while introducing a new dependency on whoever controls the verification process.

I am not fully sure how that trade lands. Fewer ways to accidentally misrepresent yourself, more gatekeeping over who gets to send at all. Worth tracking if a meaningful share of your audience is on RCS-capable handsets, and worth ignoring for now if they are not.

SMS Marketing Compliance Questions We Get Asked Most

Who should own SMS marketing compliance internally?
One named person, with legal as a consultant rather than an owner. In practice the role sits best with whoever controls the send pipeline, because compliance is enforced by configuration, not by policy documents. Split ownership between marketing, legal, and engineering is how fields get dropped in migrations.

Does using a compliant provider transfer our liability?
No. Providers can give you the tooling, the audit logs, and route-level filtering, and a good one will refuse traffic that looks unsolicited. The consent obligation stays with the sender in essentially every regime. Read your contract's responsibility split before you assume otherwise.

How quickly do opt-outs need to take effect?
Fast, and faster than most stacks manage. Regulatory guidance generally expects near-immediate handling rather than a next-cycle batch, so the operational question is how long your suppression takes to propagate to every sending system. Measure it in minutes, not in "it syncs nightly."

Does SMS consent expire?
Most regimes do not set a hard expiry. Practice tends to treat consent as stale after 12 to 18 months of no engagement and re-confirm before resuming. The stronger reason is not legal anyway: dormant numbers are disproportionately likely to have been reassigned to someone who never agreed to anything.

Do transactional messages need the same opt-out language as promotional ones?
Usually not. Order confirmations, OTPs, and fraud alerts are typically outside marketing opt-out requirements. The line moves the moment promotional content appears in a transactional thread, and it moves retroactively, so a single "while you're here, 15% off" can reclassify the whole stream.

What is the first thing to do when a sender ID gets suspended?
Stop sending on it, including transactional traffic, before you start appealing. Then pull complaint rates, recent consent sources, and any registration changes from the preceding fortnight. Suspensions are almost always preceded by a signal that was visible if anybody had been looking at it.

Can one sender ID carry both marketing and transactional messages?
Technically, yes, and at volume, I would not. Mixing types makes consent segmentation harder and means a promotional complaint can degrade delivery for the OTPs your login flow depends on. Separate senders cost more and are worth it.

Share this post