{
  "id": "OPS-039",
  "slug": "ops-039",
  "title": "A revocation on any channel must reach the SMS suppression list",
  "statement": "Revocations captured by an IVR key-press, a live agent, a designated website or number, an email or a voicemail must all be written into the same suppression list as a texted STOP.",
  "rationale": "The consumer does not know your systems are separate. They tell the agent on the phone, or reply to the marketing email, and consider it done — and the FCC agrees with them: a revocation received at any address or number the brand holds out is presumed effective. What actually happens is that the CRM records a preference nobody syncs, the shared inbox is read by a team with no access to the messaging platform, and the texts continue for weeks.",
  "layer": "OPERATIONAL",
  "layerSlug": "operational",
  "object": "suppression list ingestion across channels",
  "severity": "BLOCKING",
  "detectability": [
    "UNDETECTABLE_PRE_SUBMISSION"
  ],
  "failureClass": "TERMINAL_EXTERNAL",
  "authorities": [
    "FCC",
    "CTIA"
  ],
  "applicabilityText": "Applies to every 10DLC registration.",
  "universal": true,
  "remediation": "Give every intake channel one write path into the suppression list — an API call, a shared field the messaging platform reads, or a queue somebody works daily — and record the channel on each record. Done when a revocation left on voicemail suppresses the number without anyone re-keying it.",
  "example": "Agent marks \"SMS opt-out\" in the CRM → nightly job (or webhook) writes the number to the messaging platform suppression list with channel=phone.",
  "pitfalls": [
    "A one-way sync from the messaging platform into the CRM is the common build and it is backwards — the revocations that need moving are the ones that arrive outside the messaging platform."
  ],
  "notes": "Absorbs OPS-040 and OPS-041, which name the designated-channel and email or voicemail cases of the same routing duty. Nothing here is visible at registration. The user has to list every place a customer could plausibly say stop — agents, shop staff, the support inbox, social messages — and show that each one reaches the list. OPS-038 is the registration-side twin: the published instructions must not name one exclusive method.",
  "catalogIds": [
    "OPS-040",
    "OPS-041"
  ],
  "phase": "post",
  "automated": false,
  "attestation": {
    "question": "Can you name every place a customer could say stop — agents, shop staff, the support inbox, social messages, voicemail — and show that each one reaches the suppression list?",
    "howToCheck": [
      "List the intake channels, then trace one revocation through each to the list.",
      "Check the direction of any existing CRM sync: the common build is one-way out of the messaging platform, which is backwards.",
      "Test the hardest one — leave a revocation on voicemail and see whether the number is suppressed without anyone re-keying it."
    ],
    "failureLooksLike": "The CRM records a preference nobody syncs, the shared inbox is read by a team with no access to the messaging platform, and the texts continue for weeks. The consumer considered it done, and so does the FCC."
  },
  "url": "https://ekas.io/rules/10dlc/operational/ops-039/",
  "markdown": "https://ekas.io/rules/10dlc/operational/ops-039.md",
  "registry": "https://ekas.io/rules/10dlc/",
  "updated": "2026-07-25",
  "licence": "CC BY 4.0 — https://creativecommons.org/licenses/by/4.0/"
}
