# OPS-026 — The universal opt-out keyword set must be declared

> STOP, END, CANCEL, UNSUBSCRIBE and QUIT must all appear in the declared opt-out keyword set.

- **Rule ID:** OPS-026
- **Layer:** Operational (`OPERATIONAL`)
- **Checks:** `campaign.optout_keywords`
- **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:** Deterministic (settled in code from the submitted values)
- **Fix type:** Fix the field — a better value in the form clears it
- **Required by:** CTIA, FCC, TCR
- **Applies:** Applies to every 10DLC registration.
- **Canonical URL:** https://ekas.io/rules/10dlc/operational/ops-026/

## Why this rule exists

This five-word set is honoured at handset and carrier level regardless of what you configure, so a consumer using any of them has effectively opted out whether your platform noticed or not. Declaring them aligns your suppression list with what has already happened.

## How to fix it

Declare at least the universal five, and preferably the full seven-word FCC per-se set including REVOKE and OPTOUT.

## Example of a compliant value

```text
STOP, QUIT, END, REVOKE, OPTOUT, CANCEL, UNSUBSCRIBE
```

## Notes

Discharges catalog CMP-184 ("optoutKeywords is populated and retains STOP") together with OPS-027, which owns the empty-list case. The split is deliberate: this rule returns UNCLEAR rather than FAIL on an empty list so that a campaign with no keywords yet is reported once, by OPS-027, instead of twice.
