{
  "id": "CMP-065",
  "slug": "cmp-065",
  "title": "A hosted artifact is required when the opt-in is not publicly crawlable",
  "statement": "Where the opt-in surface is login-gated, unpublished, on paper, verbal, or in-store, a publicly hosted screenshot URL is required in the message flow.",
  "rationale": "A reviewer cannot crawl what is not on the public web, so the artifact becomes the only evidence that exists. This is the rule that makes offline collection registrable at all — without it those campaigns simply fail the website-consent checks for reasons that do not apply to them.",
  "layer": "CAMPAIGN",
  "layerSlug": "campaign",
  "object": "campaign.message_flow + consent artifact",
  "severity": "BLOCKING",
  "detectability": [
    "DETERMINISTIC"
  ],
  "failureClass": "TERMINAL_EVIDENCE",
  "authorities": [
    "TCR",
    "Twilio",
    "Bandwidth",
    "AWS"
  ],
  "applicability": {
    "consentMethods": [
      "verbal_live",
      "verbal_ivr",
      "paper",
      "pos",
      "employer_hr",
      "account_settings"
    ]
  },
  "applicabilityText": "Applies when consent was collected by live verbal, IVR, paper form, point of sale, employer / HR and account settings.",
  "universal": false,
  "remediation": "Host the evidence at a public URL that opens without a login and cite it in the message flow. Confirm it opens in a private browsing window before submitting.",
  "example": "Consent screenshot: https://cdn.acmecoffee.com/compliance/counter-form.pdf",
  "phase": "approval",
  "automated": true,
  "url": "https://ekas.io/rules/10dlc/campaign/cmp-065/",
  "markdown": "https://ekas.io/rules/10dlc/campaign/cmp-065.md",
  "registry": "https://ekas.io/rules/10dlc/",
  "updated": "2026-07-25",
  "licence": "CC BY 4.0 — https://creativecommons.org/licenses/by/4.0/"
}
