{
  "id": "MSG-SHAFT-TOBACCO",
  "slug": "msg-shaft-tobacco",
  "title": "No tobacco, vape, or nicotine product content",
  "statement": "Campaign content must not promote tobacco, vaping, or nicotine products.",
  "rationale": "The T in SHAFT, and the letter that splits in two. Twilio permits tobacco on short code behind an age gate and never on long code or toll-free — which is to say never on 10DLC — while vape, e-cigarettes and e-liquid are refused on every channel including the one that carries tobacco. Retailers who sell both read the tobacco allowance and assume it covers the vape wall, and that assumption is what the rejection is usually about.",
  "layer": "MESSAGE_CONTENT",
  "layerSlug": "message-content",
  "object": "campaign.description + campaign.sample[] + campaign.message_flow",
  "severity": "BLOCKING",
  "detectability": [
    "AI_FORM"
  ],
  "failureClass": "HARD_STOP",
  "authorities": [
    "Twilio",
    "TCR",
    "T-Mobile",
    "AT&T",
    "CTIA"
  ],
  "codes": [
    {
      "provider": "Twilio",
      "code": "30958",
      "remediable": false,
      "generation": "gen2"
    },
    {
      "provider": "Twilio",
      "code": "30458",
      "remediable": false
    },
    {
      "provider": "Bandwidth",
      "code": "707",
      "remediable": true
    },
    {
      "provider": "Telnyx",
      "code": "707",
      "remediable": true
    }
  ],
  "applicabilityText": "Applies to every 10DLC registration.",
  "universal": true,
  "remediation": "Take the product out of the 10DLC campaign. The age gate that rescues alcohol reaches tobacco only on short code, which is a different registration on a different number type — and it does not reach vape, e-cigarettes, e-liquid or pods on any channel at all, so separating the vape lines out is the first thing to check. Cessation and nicotine-replacement programmes are a distinct category and stay registrable when the copy is about quitting rather than about the product.",
  "pitfalls": [
    "Splitting the vape products into a second campaign does not help — the vape ban is by channel, not by campaign, so the second campaign is refused on the same code."
  ],
  "notes": "Bandwidth (\"Alcohol and Tobacco can be supported with robust age-gating and proper opt-in\" on 10DLC), Telnyx 707 and Bird 707 all accept tobacco behind a date-of-birth gate, so this is a genuine divergence rather than a strictness difference. Strictest reading kept; the vape half is uniform across every source.",
  "catalogIds": [
    "MSG-180"
  ],
  "phase": "approval",
  "automated": true,
  "url": "https://ekas.io/rules/10dlc/message-content/msg-shaft-tobacco/",
  "markdown": "https://ekas.io/rules/10dlc/message-content/msg-shaft-tobacco.md",
  "registry": "https://ekas.io/rules/10dlc/",
  "updated": "2026-07-25",
  "licence": "CC BY 4.0 — https://creativecommons.org/licenses/by/4.0/"
}
