{
  "id": "OPS-045",
  "slug": "ops-045",
  "title": "Sending stops on receipt, including on a political programme",
  "statement": "No message may be sent to a number after a valid opt-out is received, whatever the campaign type.",
  "rationale": "This is the obligation every other opt-out rule exists to make achievable, and the way it is breached is almost never a decision: a send was already queued, a scheduled blast was built from a list exported yesterday, or the suppression check happens at list-build time rather than at send time. Political programmes get their own line in the carrier rules because operators assume the exemptions that cover consent also cover revocation. They do not.",
  "layer": "OPERATIONAL",
  "layerSlug": "operational",
  "object": "send-time suppression check",
  "severity": "BLOCKING",
  "detectability": [
    "UNDETECTABLE_PRE_SUBMISSION"
  ],
  "failureClass": "HARD_STOP",
  "authorities": [
    "FCC",
    "CTIA",
    "T-Mobile"
  ],
  "applicabilityText": "Applies to every 10DLC registration.",
  "universal": true,
  "remediation": "Check the suppression list at send time, not at list-build time, and re-check anything that has been queued for more than a few minutes. Purge suppressed numbers from scheduled sends when the schedule fires rather than when it is created.",
  "pitfalls": [
    "A CSV exported for a blast is a snapshot of consent at export time; every opt-out between export and send is invisible to it unless the platform re-checks."
  ],
  "notes": "Absorbs OPS-069 and MSG-268, which restate it for political programmes where the carriers call it out specifically. Undecidable before traffic. What the user has to verify is where in their send pipeline the suppression check sits — build time is the common answer and it is the wrong one.",
  "catalogIds": [
    "MSG-268",
    "OPS-069"
  ],
  "phase": "post",
  "automated": false,
  "attestation": {
    "question": "Where in your send pipeline does the suppression check run — at list-build time, or at send time?",
    "howToCheck": [
      "Trace one scheduled send from list construction to dispatch and find the check. Build time is the common answer and it is the wrong one.",
      "Confirm anything queued for more than a few minutes is re-checked before it goes.",
      "Political programmes are not exempt: the exemptions that cover consent do not cover revocation."
    ],
    "failureLooksLike": "A blast built from yesterday's export goes out this morning to someone who opted out overnight. Nobody decided to send it, and the recipient cannot tell the difference."
  },
  "url": "https://ekas.io/rules/10dlc/operational/ops-045/",
  "markdown": "https://ekas.io/rules/10dlc/operational/ops-045.md",
  "registry": "https://ekas.io/rules/10dlc/",
  "updated": "2026-07-25",
  "licence": "CC BY 4.0 — https://creativecommons.org/licenses/by/4.0/"
}
