{
  "id": "MSG-182",
  "slug": "msg-182",
  "title": "No explosives, fireworks or pyrotechnics content",
  "statement": "Campaign content must not promote explosives, fireworks or pyrotechnics.",
  "rationale": "Twilio files explosives under the same code as firearms and toll-free verification extends the SHAFT \"F\" to fireworks explicitly, which surprises seasonal retailers who reason — correctly, in their own state — that they hold every licence the law asks for. The prohibition is about the channel rather than the licence: a text is forwarded, screenshotted and read by people the seller never sold to, and carriers will not carry the promotion of something that injures thousands of people a year across a medium with no controls on who sees it.",
  "layer": "MESSAGE_CONTENT",
  "layerSlug": "message-content",
  "object": "campaign.description + campaign.sample[] + campaign.message_flow",
  "severity": "BLOCKING",
  "detectability": [
    "AI_FORM"
  ],
  "failureClass": "HARD_STOP",
  "authorities": [
    "Twilio",
    "Bandwidth",
    "AT&T"
  ],
  "codes": [
    {
      "provider": "Twilio",
      "code": "30957",
      "remediable": false,
      "generation": "gen2"
    },
    {
      "provider": "Twilio",
      "code": "30469",
      "remediable": false
    }
  ],
  "applicabilityText": "Applies to every 10DLC registration.",
  "universal": true,
  "remediation": "Remove the product from the campaign entirely — the age gate that works for alcohol has no equivalent here, and no provider publishes a licensed-retailer exemption. Where the programme is genuinely operational rather than promotional, say so in the description: crew scheduling, safety notices and public event information carry no product offer and are a different campaign.",
  "notes": "The allowances above are the reframings that remove the product-promotion element, not documented exemptions — no source publishes a carve-out for public-display announcements. Treat them as the shape worth attempting, and expect the description to have to make the absence of a sale explicit.",
  "phase": "approval",
  "automated": true,
  "url": "https://ekas.io/rules/10dlc/message-content/msg-182/",
  "markdown": "https://ekas.io/rules/10dlc/message-content/msg-182.md",
  "registry": "https://ekas.io/rules/10dlc/",
  "updated": "2026-07-25",
  "licence": "CC BY 4.0 — https://creativecommons.org/licenses/by/4.0/"
}
