{
  "id": "POL-228",
  "slug": "pol-228",
  "title": "The terms, the use case and the samples must promise the same messages",
  "statement": "The message types described in the SMS terms, the registered use case and the sample messages must all agree.",
  "rationale": "Three artifacts describe the same programme and a reviewer compares all three, so the weakest one sets the verdict — samples showing promotions under a transactional use case with terms describing order updates is three different answers to one question. Each is written at a different time by a different person, which is exactly why they drift.",
  "layer": "POLICY_PAGE",
  "layerSlug": "policy-page",
  "object": "SMS terms message types + campaign.usecase + samples",
  "severity": "HIGH",
  "detectability": [
    "AI_FORM"
  ],
  "failureClass": "TERMINAL_POLICY",
  "artifact": "sms_terms",
  "authorities": [
    "Twilio",
    "AWS"
  ],
  "codes": [
    {
      "provider": "Twilio",
      "code": "30893",
      "remediable": true,
      "generation": "gen1"
    }
  ],
  "applicabilityText": "Applies to every 10DLC registration.",
  "universal": true,
  "remediation": "Pick the true description of the programme and make all three match it, widening the use case if the samples need it. Done when the categories in the terms, the use case and the samples are the same set.",
  "example": "Use case MIXED · terms describe offers and order updates · samples show one of each.",
  "notes": "POL-193 compares the terms against the use case alone. This rule adds the samples, which is the surface most likely to reveal a category nobody declared.",
  "phase": "approval",
  "automated": true,
  "url": "https://ekas.io/rules/10dlc/policy-page/pol-228/",
  "markdown": "https://ekas.io/rules/10dlc/policy-page/pol-228.md",
  "registry": "https://ekas.io/rules/10dlc/",
  "updated": "2026-07-25",
  "licence": "CC BY 4.0 — https://creativecommons.org/licenses/by/4.0/"
}
