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
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?
- 1Send all four variants to your own programme after launch, from a real handset.
- 2Confirm each one lands in the suppression list — not just the bare keyword.
- 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
Rules you will hit next
Other operational rules at the same severity. A registration is judged as a whole, not rule by rule.
OPS-029 is one of 139 operational rules in the 915-rule 10DLC registry. Free to cite under CC BY 4.0.