{
  "id": "MSG-049",
  "slug": "msg-049",
  "title": "Opt-out instructions must name a recognised keyword",
  "statement": "Opt-out instructions in message bodies must use a widely accepted keyword, not an invented alternative.",
  "rationale": "Handsets and carrier platforms recognise a fixed keyword set, so an instruction like \"text 2 to opt out\" produces a reply nothing acts on — the consumer believes they have unsubscribed and keeps receiving messages. That is the exact scenario that turns into a complaint.",
  "layer": "MESSAGE_CONTENT",
  "layerSlug": "message-content",
  "object": "campaign.sample[]",
  "severity": "HIGH",
  "detectability": [
    "DETERMINISTIC"
  ],
  "failureClass": "RETRY_FIELD",
  "authorities": [
    "CTIA",
    "FCC",
    "TCR"
  ],
  "applicabilityText": "Applies to every 10DLC registration.",
  "universal": true,
  "remediation": "Use STOP in message bodies. Reserve other keywords for the declared keyword list rather than advertising them as the primary route.",
  "example": "Reply STOP to opt out, HELP for help.",
  "pitfalls": [
    "\"Reply 2 to unsubscribe\" and \"text QUITNOW\" both fail — handsets do not route them."
  ],
  "phase": "approval",
  "automated": true,
  "url": "https://ekas.io/rules/10dlc/message-content/msg-049/",
  "markdown": "https://ekas.io/rules/10dlc/message-content/msg-049.md",
  "registry": "https://ekas.io/rules/10dlc/",
  "updated": "2026-07-25",
  "licence": "CC BY 4.0 — https://creativecommons.org/licenses/by/4.0/"
}
