# CON-063 — Labelling the consent control "optional" pre-empts the gating rejection

> The messaging consent control should be labelled optional where the form around it collects anything required.

- **Rule ID:** CON-063
- **Layer:** Consent flow (`CONSENT_FLOW`)
- **Checks:** `consent checkbox label`
- **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:** AI judgement over the crawled website or policy page
- **Fix type:** Fix the website — no form edit clears it
- **Required by:** Twilio
- **Applies:** Applies when consent was collected by web form, checkout, account settings, third party and point of sale.
- **Canonical URL:** https://ekas.io/rules/10dlc/consent-flow/con-063/

## Why this rule exists

Reviewers decide whether a control is required by looking at it, not by submitting the form, so a consent box that sits in a column of asterisked fields reads as required even when it is not. The word "optional" is what Twilio itself offers as the fix for that rejection, which makes it the cheapest way to avoid an argument you would otherwise win slowly.

## How to fix it

Add "(optional)" to the consent control's label, and remove any asterisk or required marker near it. Done when the label says optional in words rather than relying on the absence of an asterisk.

## Example of a compliant value

```text
☐ Text me Acme Coffee offers and rewards updates (optional).
```

## Provider rejection codes

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

## Notes

Twilio documents this as a solution to error 30923 rather than as an independent requirement, so it is graded MEDIUM and worded as a recommendation. The requirement it protects — that consent is genuinely not required — is CON-NOT-GATED.
