{
  "id": "POL-230",
  "slug": "pol-230",
  "title": "Keywords in the SMS terms must match the keywords declared on the campaign",
  "statement": "The opt-out keywords listed in the published SMS terms must be the same set declared on the campaign registration.",
  "rationale": "A consumer relies on the terms, a reviewer relies on the registration, and the platform honours whatever it was configured with. When those three disagree, someone texts a keyword that is published but not honoured — which is a Severity-0 style failure dressed up as a documentation inconsistency.",
  "layer": "POLICY_PAGE",
  "layerSlug": "policy-page",
  "object": "terms body + campaign.optout_keywords",
  "severity": "HIGH",
  "detectability": [
    "DETERMINISTIC"
  ],
  "failureClass": "TERMINAL_POLICY",
  "artifact": "sms_terms",
  "authorities": [
    "CTIA",
    "TCR"
  ],
  "applicabilityText": "Applies to every 10DLC registration.",
  "universal": true,
  "remediation": "Make the published keyword list and the declared keyword list identical, and confirm your platform honours every keyword in it.",
  "example": "Both list: STOP, QUIT, END, REVOKE, OPTOUT, CANCEL, UNSUBSCRIBE.",
  "phase": "approval",
  "automated": true,
  "url": "https://ekas.io/rules/10dlc/policy-page/pol-230/",
  "markdown": "https://ekas.io/rules/10dlc/policy-page/pol-230.md",
  "registry": "https://ekas.io/rules/10dlc/",
  "updated": "2026-07-25",
  "licence": "CC BY 4.0 — https://creativecommons.org/licenses/by/4.0/"
}
