{
  "id": "CMP-074",
  "slug": "cmp-074",
  "title": "Message flow must state that rates may apply",
  "statement": "The message-flow / CTA field must state that message and data rates may apply.",
  "rationale": "The consumer may be billed per message by their own carrier, and this is the disclosure that tells them so before they agree. It is also the most mechanically-checked element in the framework — reviewers look for it in the flow text as well as on the surface — so omitting it is a certain finding in exchange for eight saved words.",
  "layer": "CAMPAIGN",
  "layerSlug": "campaign",
  "object": "campaign.message_flow",
  "severity": "BLOCKING",
  "detectability": [
    "AI_FORM"
  ],
  "failureClass": "RETRY_FIELD",
  "authorities": [
    "TCR",
    "Twilio",
    "Bandwidth",
    "AWS"
  ],
  "applicabilityText": "Applies to every 10DLC registration.",
  "universal": true,
  "remediation": "Quote the rates sentence inside the disclosure you reproduce in the flow. Done when the phrase \"Message and data rates may apply\" (or a clear equivalent) appears in the flow text itself. Put it in campaign.message_flow itself — this field is graded on its own text, not on what a reviewer would find by opening your site.",
  "example": "The disclosure beside the box reads \"Message and data rates may apply.\"",
  "notes": "The catalog exempts Free-To-End-User programmes here (CTIA/T-Mobile, see CMP-152). We hold no FTEU fact, so the applicability model cannot express the carve-out and the rule fires universally; an FTEU programme will see a finding it can dismiss.",
  "phase": "approval",
  "automated": true,
  "url": "https://ekas.io/rules/10dlc/campaign/cmp-074/",
  "markdown": "https://ekas.io/rules/10dlc/campaign/cmp-074.md",
  "registry": "https://ekas.io/rules/10dlc/",
  "updated": "2026-07-25",
  "licence": "CC BY 4.0 — https://creativecommons.org/licenses/by/4.0/"
}
