# CMP-040 — Promotional content anywhere requires MARKETING to be declared

> Where any campaign text describes promotional or marketing content, MARKETING must be a declared use case or sub-use case.

- **Rule ID:** CMP-040
- **Layer:** Campaign (`CAMPAIGN`)
- **Checks:** `campaign.description + message_flow + sample[] ↔ campaign.usecase`
- **Severity:** BLOCKING — Breaking this rule gets the submission rejected outright.
- **When it bites:** Gates approval — get this wrong and registration is refused
- **How it is detected:** AI judgement over the submitted form
- **Fix type:** Fix the field — a better value in the form clears it
- **Required by:** Bandwidth, Infobip, Telnyx
- **Applies:** Applies to every 10DLC registration.
- **Canonical URL:** https://ekas.io/rules/10dlc/campaign/cmp-040/

## Why this rule exists

The use case sets the consent standard the campaign is held to, and promotional content needs express written consent where transactional content does not — so an undeclared marketing programme is being judged against a standard that does not apply to it. Businesses reach this by classifying on intent rather than content: a shipping notification carrying a discount code is filed as a delivery notification because that is what it is for, and it is promotional the moment the code is in it.

## How to fix it

Either declare MARKETING (or MIXED with a marketing sub-use case) and collect promotional-grade consent for everyone on the list, or take the promotional content out of every field until nothing offers, discounts or advertises. Done when the declared use case and the content agree in both directions.

## Example of a compliant value

```text
Samples mention "20% off all espresso blends this weekend" → use case MARKETING, not DELIVERY_NOTIFICATION.
```

## Common mistakes

- Declaring MARKETING is the cheaper half of the fix; the expensive half is that every number on the list now needs express written consent, and re-labelling the campaign does not re-collect it.
- One promotional sentence inside an otherwise transactional message makes the whole message promotional. The reviewer grades the message, not the ratio.

## Provider rejection codes

| Provider | Code | Resubmission allowed |
| --- | --- | --- |
| Bandwidth | `3200` | yes |
| Bandwidth | `2200` | yes |
| Bandwidth | `8200` | yes |

## Notes

One rule for four catalog rows because the assertion and the fix are identical wherever the promotional language turns up — description (CMP-040), CTA (CMP-071), samples (MSG-150) and the published privacy policy (POL-077). The providers issue a different reject code per field, which is why the catalog keeps them apart; a submitter fixing one has to fix all of them, so splitting the rule would report one defect four times.
