# CMP-188 — A non-standard opt-out keyword is honoured by nobody but you

> Opt-out keywords outside the standard monitored set are handled by the sending platform alone and must not be relied on as carrier-enforced.

- **Rule ID:** CMP-188
- **Layer:** Campaign (`CAMPAIGN`)
- **Checks:** `campaign.optout_keywords`
- **Severity:** MEDIUM — Usually survives review, but lowers your trust score or invites manual review.
- **When it bites:** Gates approval — get this wrong and registration is refused
- **How it is detected:** Deterministic (settled in code from the submitted values)
- **Fix type:** Fix the field — a better value in the form clears it
- **Required by:** Azure ACS, AWS
- **Applies:** Applies to every 10DLC registration.
- **Canonical URL:** https://ekas.io/rules/10dlc/campaign/cmp-188/

## Why this rule exists

The standard keywords are intercepted upstream, so they work even when a platform is misconfigured; anything else works only for as long as your own handler does. A programme whose advertised opt-out word is bespoke has a single point of failure between the consumer and their opt-out, and the consumer who used it and kept receiving messages complains to the carrier rather than to you.

## How to fix it

Keep the bespoke keyword if your platform answers it, but add the standard words alongside so the opt-out survives a misconfiguration on your side. Done when every keyword you advertise for opting out is either standard or backed by one that is.

## Example of a compliant value

```text
optout_keywords: STOP, END, CANCEL, UNSUBSCRIBE, QUIT — not STOPMSGS or NOMORE on their own
```

## Notes

Scoped to the opt-out list rather than to every keyword field, which is what the catalog row names. A non-standard HELP keyword costs a recipient an unanswered question; a non-standard opt-out keyword costs them an opt-out that never happened, and only the second is worth a finding. INFO and SUPPORT as help keywords are normal practice and are deliberately not reported here.
