The terms must describe every opt-in method actually used
The requirementstatement
The SMS terms must describe every way people join the programme, consistently with the registered message flow.
- 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
- SMS terms body vs campaign.message_flow
- Where it liveslayer
- Policy pagesPOLICY_PAGE
- How Ekas settles itdetectability
- AI · formAI_FORM
- A semantic question about what you wrote: whether a description matches a use case, whether a name looks like a filed entity. Judged by a model against written criteria.
- What the fix involvesfailureClass
- Fix the policyTERMINAL_POLICY
- The fix lives in your privacy policy or SMS terms. Ekas can generate the missing clauses.
- Who requires itauthorities
- TwilioCTIAVonage
- When it appliesapplicabilityText
- Applies to every 10DLC registration.
Why this rule existsrationale
How to fix itremediation
List every entry point in the terms — the checkout box, the keyword, the paper form, the phone call — and keep the list the same as the message flow. Done when the two documents name the same set.
A compliant exampleexample
You can join Acme Coffee Rewards by ticking the box at checkout on acmecoffee.com, or by texting JOIN to 55512.
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 | 30909 | Yes |
Notesnotes
Rules you will hit next
Other policy pages rules at the same severity. A registration is judged as a whole, not rule by rule.
POL-181 is one of 157 policy pages rules in the 915-rule 10DLC registry. Free to cite under CC BY 4.0.