{
  "id": "CMP-139",
  "slug": "cmp-139",
  "title": "Each declared sub-use case needs its own sample message",
  "statement": "A campaign declaring sub-use cases must carry at least one sample message for each of them.",
  "rationale": "A MIXED campaign is several programmes sharing one registration, and a reviewer approves each of them on the strength of a sample. Declaring five sub-use cases and supplying two samples asks them to approve three programmes they have not seen, so they refuse — and the rejection names the sample count, which sends the submitter to add generic samples rather than to the sub-use case that had nothing behind it.",
  "layer": "CAMPAIGN",
  "layerSlug": "campaign",
  "object": "campaign.sample[] + campaign.sub_use_cases[]",
  "severity": "BLOCKING",
  "detectability": [
    "DETERMINISTIC"
  ],
  "failureClass": "RETRY_FIELD",
  "authorities": [
    "Bandwidth",
    "Telnyx",
    "AWS",
    "Sinch",
    "Bird",
    "Vonage"
  ],
  "codes": [
    {
      "provider": "TCR",
      "code": "8102",
      "remediable": true
    }
  ],
  "applicabilityText": "Applies to every 10DLC registration.",
  "universal": true,
  "remediation": "Write one sample per declared sub-use case, each showing that sub-use case and nothing else. Done when you can point at the sample that justifies every sub-use case you ticked — and if you cannot write one, untick it.",
  "example": "Sub-use cases MARKETING + DELIVERY_NOTIFICATION → sample1 \"Acme Coffee: 20% off all beans this weekend. Reply STOP to opt out.\" and sample2 \"Acme Coffee: your order #4471 ships today. Reply STOP to opt out.\"",
  "pitfalls": [
    "Reusing one promotional sample for two promotional sub-use cases does not satisfy this — the reviewer is counting distinct programmes, not distinct wordings."
  ],
  "phase": "approval",
  "automated": true,
  "url": "https://ekas.io/rules/10dlc/campaign/cmp-139/",
  "markdown": "https://ekas.io/rules/10dlc/campaign/cmp-139.md",
  "registry": "https://ekas.io/rules/10dlc/",
  "updated": "2026-07-25",
  "licence": "CC BY 4.0 — https://creativecommons.org/licenses/by/4.0/"
}
