A revocation must survive punctuation, case and surrounding words

The requirementstatement

Opt-out keywords must be matched case-insensitively, tolerantly of punctuation, and when the keyword is surrounded by other text in the same message.

Severityseverity
BlockingBLOCKINGBreaking this rule gets the submission rejected. There is no partial credit.
When it bitesphase
After you are livepostFalls due once you are sending: STOP handling, quiet hours, suppression, record retention.
What is checkedobject
inbound message normalisation
Where it liveslayer
OperationalOPERATIONAL
How Ekas settles itdetectability
Post-submissionUNDETECTABLE_PRE_SUBMISSION
The subject does not exist yet at submission time: a reply window, an expiring PIN, a queue position. Reported with its deadline.
What the fix involvesfailureClass
Wait on someone elseTERMINAL_EXTERNAL
Needs an external system or a waiting period, such as IRS propagation, a vetting result, or a carrier queue.
Who requires itauthorities
FCCCTIAT-MobileAerialink
When it appliesapplicabilityText
Applies to every 10DLC registration.

Why this rule existsrationale

Consumers do not send bare keywords. They send "Stop.", "STOP!!", "stop texting me" and "you have the wrong number, stop" — and an exact-match handler treats every one of those as an ordinary reply, so the messages keep arriving from someone who plainly asked them not to. The FCC treats de minimis variance as a revocation regardless of what the handler did, which means the gap between the two is not a bug in the product, it is a violation already in progress.

How to fix itremediation

Normalise the inbound body before matching: upper-case it, strip punctuation and whitespace, then look for any declared keyword as a whole word anywhere in the message rather than as the entire message. Done when "Stop.", "please STOP" and "wrong number, stop" all suppress the number in a test send.

A compliant exampleexample

Inbound "Please stop texting me!" → normalised "PLEASE STOP TEXTING ME" → matches STOP → suppressed.

Common mistakespitfalls

  • Matching a keyword as a substring rather than as a whole word turns "stopwatch giveaway" into an opt-out; match on word boundaries.

Check this yourselfattestation

No tool can settle this one for you. Here is the check, and what wrong looks like.

Do "Stop.", "STOP!!", "please STOP" and "wrong number, stop" each suppress your own number in a live test?

  1. 1Send all four variants to your own programme after launch, from a real handset.
  2. 2Confirm each one lands in the suppression list — not just the bare keyword.
  3. 3Check the matcher uses word boundaries, so "stopwatch giveaway" is not read as an opt-out.

What wrong looks like: An exact-match handler files every one of those as an ordinary reply and the messages keep arriving. The FCC treats de minimis variance as a revocation regardless, so the gap is a violation already in progress.

Notesnotes

Nothing at registration time can settle this — the handler is code on the sending platform. What the user has to do is test it: send those four variants to their own number after launch and confirm each one lands in the suppression list. OPS-026 and OPS-027 check the declared keyword set, which is a different question from how the set is matched.

Rules you will hit next

Other operational rules at the same severity. A registration is judged as a whole, not rule by rule.

All operational rules

OPS-029 is one of 139 operational rules in the 915-rule 10DLC registry. Free to cite under CC BY 4.0.

Reading the rules is the easy part.

Ekas runs every rule that gates approval, 823 of these 915, against your registration before it reaches the carrier. It reads your site, your policy pages and your opt-in the way a reviewer would, and hands you the fix, not just the verdict.