# CON-NOT-GATED — Declining messages must not block the primary action

> The consumer must be able to decline SMS and still complete the purchase, signup, or account creation.

- **Rule ID:** CON-NOT-GATED
- **Layer:** Consent flow (`CONSENT_FLOW`)
- **Checks:** `consent surface`
- **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 crawled website or policy page; AI vision over a consent artifact (screenshot, scan, MMS media)
- **Fix type:** Fix the website — no form edit clears it
- **Required by:** FCC, TCR, Twilio, AWS
- **Applies:** Applies when the use case is NOT TWO_FACTOR_AUTH, SECURITY_ALERT and FRAUD_ALERT.
- **Canonical URL:** https://ekas.io/rules/10dlc/consent-flow/con-not-gated/

## Why this rule exists

Consent that is the price of checkout is coerced, and coerced consent is not consent — the FCC treats it as void and carriers treat it as a blocking defect. It is also self-defeating commercially: a list built this way has the opt-out and complaint rates of a purchased list.

## How to fix it

Remove any required-field validation on the consent control and test the form end to end with the box unchecked. Remove asterisks or "required" markers from the messaging opt-in, and offer email or voice as an alternative channel where a contact method is genuinely needed.

## Common mistakes

- A 2FA or fraud-alert program legitimately requires the number — those use cases are excluded from this rule rather than exempted by argument.

## Provider rejection codes

| Provider | Code | Resubmission allowed |
| --- | --- | --- |
| Twilio (gen2) | `30923` | yes |
| Twilio (gen2) | `30931` | yes |
