The decline path must be as usable as the accept path
The requirementstatement
The control that lets a consumer skip or decline messaging must not be disabled, greyed out, or hidden.
- Severityseverity
- HighHIGHRejected by at least one carrier or provider, and a common cause of failure at the rest.
- When it bitesphase
- Gates approvalapprovalGet this wrong and the brand or campaign is refused at registration.
- What is checkedobject
- decline/skip control rendering
- Where it liveslayer
- Consent flowCONSENT_FLOW
- How Ekas settles itdetectability
- AI · visionVISION
- Needs the pixels: a screenshot of the opt-in surface, a scanned paper form, an MMS attachment.
- What the fix involvesfailureClass
- Fix the websiteTERMINAL_WEBSITE
- The fix lives on your site. No amount of rewording the form clears it.
- Who requires itauthorities
- TwilioFCC
- When it appliesapplicabilityText
- Applies when consent was NOT collected by live verbal, IVR, text-to-join keyword, QR code and imported list.
Why this rule existsrationale
How to fix itremediation
Render the decline control enabled, at a legible contrast, and in the same visual weight class as the accept control. Keep it in the same place on the screen — a "No thanks" moved below the fold is hidden even when it is styled correctly.
Common mistakespitfalls
- Making the decline control a plain text link beside a large button is the usual compromise, and it is normally accepted; making it grey-on-grey or 10px is not.
Provider rejection codescodes
The code you get back when this rule is what failed, and whether that provider lets you resubmit.
| Provider | Code | Resubmit |
|---|---|---|
| Twiliogen2 | 30931 | Yes |
Notesnotes
Rules you will hit next
Other consent flow rules at the same severity. A registration is judged as a whole, not rule by rule.
CON-071 is one of 101 consent flow rules in the 915-rule 10DLC registry. Free to cite under CC BY 4.0.