30924: Campaign rejected: Missing or non-compliant consent agreement language in opt-in flow
Your A2P 10DLC campaign was rejected because the opt-in flow you provided doesn't contain compliant consent agreement language. Carriers require that consumers are clearly informed about what types of messages they will receive, the frequency of messages, and how to opt out before they provide consent. Your submitted opt-in evidence is either missing this language entirely or the language present does not meet TCPA and CTIA compliance requirements.
- Missing consent disclosure: The opt-in flow does not include language informing the consumer about the nature of the messages they will receive.
- No frequency disclosure: The opt-in does not state the expected message frequency (for example, "Up to 5 messages per month").
- Missing opt-out instructions: The consent language does not include instructions on how to stop receiving messages (for example, "Reply STOP to unsubscribe").
- No "message and data rates may apply" disclosure: The opt-in is missing the standard rate disclosure language.
- Complete
message_flow: Describe how the consent language at each point of opt-in identifies your brand and states the types of messages users agree to receive. - Add compliant consent language to your opt-in flow that includes: (1) your brand name, (2) the type of messages the consumer will receive, (3) message frequency, (4) "Message and data rates may apply," (5) opt-out instructions such as "Reply STOP to unsubscribe," and (6) customer-support instructions such as "Reply HELP for help."
- Review CTIA guidelines for short code and messaging compliance to ensure your consent language meets industry standards.
- Provide a screenshot or URL showing the complete consent language as it appears to the consumer at the point of opt-in.
- Consult the registration guide: A2P 10DLC Campaign Registration Best Practices
- Contact support if you believe this rejection is incorrect: Twilio Support.
Run through this list before submitting or resubmitting your campaign:
message_flownames every opt-in method used for this campaign (website, keyword, paper form, verbal, QR code, or other mechanism).- At each point of opt-in, the consent language identifies the brand and states the message type.
message_flowdescribes that consent language. - In the Legacy Console and the Twilio Console at
1console.twilio.com,message_flowincludes a link to your privacy policy and a link to your terms and conditions. If you use the API, set theprivacy_policy_urlandterms_and_conditions_urlfields. - Your privacy policy states that mobile numbers are not shared with third parties, includes message frequency, and includes a "message and data rates may apply" disclosure.
- If opt-in happens on a website, the URL is publicly accessible. If it is not public, you have provided a URL with hosted screenshots of the full consent flow.
- If end users opt in by texting a keyword,
opt_in_keywordsandopt_in_messageare populated. Theopt_in_messageincludes the brand name, confirmation of enrollment, message frequency, and opt-out instructions. - If the campaign uses multiple opt-in paths, all paths are described in the same
message_flowfield. - Sample messages match the declared use case, identify the brand by name, and include opt-out language.
- The consent language includes customer-support instructions such as "Reply HELP for help."
- The consent language appears at or immediately adjacent to the consent control (checkbox, button) — not buried in a linked document.
- You have provided a public URL or hosted screenshot showing the complete consent language as it appears to the consumer.
Warning
The following opt-in flow would be rejected:
Checkbox label: I agree to the Terms of Service.
No mention of SMS messaging, frequency, rates, or how to opt out. General Terms of Service acceptance does not constitute messaging consent.
Info
The following example includes the consent details described above:
Checkbox label: I agree to receive recurring promotional text messages from Acme Co. Message frequency varies. Message and data rates may apply. Reply STOP to unsubscribe. Reply HELP for help. Terms: www.acme.com/terms. Privacy: www.acme.com/privacy.
The consent language at the checkbox covers message type, frequency, rates, and opt-out, and it is visible before the consumer takes action. This example does not guarantee approval.
Warning
The following consent language would be rejected:
By checking this box you agree to receive text messages from Acme Co. Reply STOP to cancel.
Has opt-out instructions but is missing message frequency and the "message and data rates may apply" disclosure.
Info
The following example includes the consent details described above:
By checking this box you agree to receive recurring text messages from Acme Co. Message frequency varies. Message and data rates may apply. Reply STOP to cancel. Reply HELP for help.
It includes message type (recurring text messages), frequency, rates, and opt-out. This example does not guarantee approval.
Edit the rejected campaign rather than deleting and recreating it. Resubmitting triggers a fresh review by The Campaign Registry (TCR).
- Vetting fee: A vetting fee is assessed only once per campaign. Resubmitting the same campaign does not incur a new fee.
- Timeline: Sole Proprietor campaigns are typically approved or rejected within hours to days. Standard campaigns go through several layers of vetting, which takes up to 5 business days for standard use cases.
- Check status: In the Legacy Console, go to Messaging > Regulatory Compliance > Campaigns. In the Twilio Console at
1console.twilio.com, open A2P 10DLC Campaigns. You can also fetch the UsAppToPerson resource and check thecampaign_statusfield.
To resubmit in the Legacy Console, go to Messaging > Regulatory Compliance > Campaigns, click the failed campaign, then click Edit Campaign to correct the fields and resubmit. API-based campaign updates require access to the relevant Private Beta. Without access, API customers can delete and recreate the campaign, but the replacement campaign incurs a new vetting fee. See Troubleshooting and rectifying A2P Campaigns for detailed instructions.