{
  "id": "OPS-062",
  "slug": "ops-062",
  "title": "An opted-out consumer must be able to come back",
  "statement": "The programme must leave a published route back for a consumer who opted out and later wants the messages again.",
  "rationale": "Opting out is not meant to be permanent exile, and a consumer who wants their order alerts back should not have to phone somebody. The route matters more than it sounds: where none exists, the consumer either goes without or is re-added by staff without a fresh opt-in, which converts a support request into an unconsented enrolment. Programmes lose the route by accident, when the signup page starts checking the suppression list and silently drops the resubmission.",
  "layer": "OPERATIONAL",
  "layerSlug": "operational",
  "object": "campaign.message_flow + campaign.optin_keywords",
  "severity": "MEDIUM",
  "detectability": [
    "AI_FORM"
  ],
  "failureClass": "RETRY_FIELD",
  "authorities": [
    "T-Mobile",
    "Bird",
    "CTIA"
  ],
  "applicabilityText": "Applies to every 10DLC registration.",
  "universal": true,
  "remediation": "Keep the published call-to-action open to previously-opted-out numbers, and support START (or UNSTOP) where the campaign accepts keyword opt-in, so the consumer can rejoin from the handset. Say which route exists in the message flow. Done when a number that texted STOP can rejoin without an agent touching the record.",
  "example": "A consumer who opted out can rejoin at any time by texting START, or by opting in again at acmecoffee.com/signup; each rejoin is recorded as a new consent.",
  "notes": "Registration-side twin: whether START is honoured is runtime behaviour. What is decidable now is whether a route back was designed at all, and whether the flow says re-enrolment is treated as fresh consent rather than as reactivating an old record.",
  "phase": "approval",
  "automated": true,
  "url": "https://ekas.io/rules/10dlc/operational/ops-062/",
  "markdown": "https://ekas.io/rules/10dlc/operational/ops-062.md",
  "registry": "https://ekas.io/rules/10dlc/",
  "updated": "2026-07-25",
  "licence": "CC BY 4.0 — https://creativecommons.org/licenses/by/4.0/"
}
