{
  "id": "MSG-CHARITY-SOLICIT",
  "slug": "msg-charity-solicit",
  "title": "Charitable solicitation requires the charity use case and real status",
  "statement": "Campaign content must not promote charitable donation solicitation outside the charity use case.",
  "rationale": "Donation solicitation gets favourable treatment and correspondingly stricter eligibility, including verified 501(c)(3) status. Soliciting donations under a marketing use case bypasses that check and is rejected on the mismatch rather than on the content.",
  "layer": "MESSAGE_CONTENT",
  "layerSlug": "message-content",
  "object": "campaign.description + campaign.sample[] + campaign.message_flow",
  "severity": "BLOCKING",
  "detectability": [
    "AI_FORM"
  ],
  "failureClass": "RETRY_FIELD",
  "authorities": [
    "Twilio",
    "TCR",
    "T-Mobile",
    "AT&T",
    "CTIA"
  ],
  "applicabilityText": "Applies to every 10DLC registration.",
  "universal": true,
  "remediation": "Register under the CHARITY use case with your 501(c)(3) EIN and tax-exempt status declared on the brand, or remove the donation ask from the campaign content.",
  "example": "Entity type: NON_PROFIT · Tax exempt status: 501(c)(3) · Use case: CHARITY — or drop the ask: \"Riverside Shelter: our winter programme opened today. Details: https://riversideshelter.org/winter Reply STOP to opt out.\"",
  "phase": "approval",
  "automated": true,
  "url": "https://ekas.io/rules/10dlc/message-content/msg-charity-solicit/",
  "markdown": "https://ekas.io/rules/10dlc/message-content/msg-charity-solicit.md",
  "registry": "https://ekas.io/rules/10dlc/",
  "updated": "2026-07-25",
  "licence": "CC BY 4.0 — https://creativecommons.org/licenses/by/4.0/"
}
