Where the platform has no upload field, proof must be a URL in the flow text
The requirementstatement
On a platform offering no evidence upload, every artifact must be reachable from a public URL written into the message-flow text.
- Severityseverity
- BlockingBLOCKINGBreaking this rule gets the submission rejected. There is no partial credit.
- When it bitesphase
- Gates approvalapprovalGet this wrong and the brand or campaign is refused at registration.
- What is checkedobject
- campaign.message_flow + hosted evidence URLs
- Where it liveslayer
- CampaignCAMPAIGN
- How Ekas settles itdetectability
- DeterministicDETERMINISTIC
- Settled in code from the values you submitted. No model involved, no judgement call, same answer every time.
- What the fix involvesfailureClass
- Fix the fieldRETRY_FIELD
- A better value in the form fixes it. Ekas can rewrite it and re-check.
- Who requires itauthorities
- Twilio
- When it appliesapplicabilityText
- Applies to every 10DLC registration.
Why this rule existsrationale
How to fix itremediation
Host each artifact at a URL that opens without a login and paste those URLs into the message-flow text itself, labelled with what each one shows. Done when the flow text alone would let a reviewer reach every piece of evidence.
A compliant exampleexample
Screenshot of the checkout consent box: https://cdn.acmecoffee.com/compliance/optin.png · Verbal script: https://cdn.acmecoffee.com/compliance/script.pdf
Provider rejection codescodes
The code you get back when this rule is what failed, and whether that provider lets you resubmit.
| Provider | Code | Resubmit |
|---|---|---|
| Twilio | 30909 | Yes |
| Twilio | 30921 | Yes |
Notesnotes
Rules you will hit next
Other campaign rules at the same severity. A registration is judged as a whole, not rule by rule.
CMP-132 is one of 94 campaign rules in the 915-rule 10DLC registry. Free to cite under CC BY 4.0.