30896: Campaign vetting rejection - Opt-in Error
This error means your campaign submission was rejected during review because the opt-in details you provided don't adequately show how end users consent to receive messages. Campaign registration requires a clear message_flow, and website-based opt-in flows must include the website URL, privacy policy, terms of service, and any hosted screenshots needed for review.
- Your
message_flowdoes not clearly explain who is opting in, where opt-in happens, or how consent is collected for this campaign. - You use more than one opt-in method, but you did not list every method in the campaign submission.
- Your website opt-in flow is missing a public website link, a privacy policy link, terms of service, or hosted screenshots for a gated page, paper form, or other flow that a reviewer cannot access directly.
- Your privacy policy does not include the required mobile-number non-sharing statement, message frequency, or a "message and data rates may apply" disclosure.
- You indicate that users can opt in by texting a keyword, but you did not provide
opt_in_keywordsor a compliantopt_in_message. - Your opt-in description suggests consent is shared, transferred, or otherwise not collected specifically for this campaign.
- You rely on verbal or offline opt-in, but the submission does not include enough detail for a reviewer to verify the flow.
- Rewrite the
message_flowso it clearly explains how end users consent to receive messages. Include who is opting in, where the opt-in happens, and how the campaign collects consent. If you support more than one opt-in path, list every method. - If opt-in happens on a website, provide the website URL, a link to the privacy policy, and terms of service. If the opt-in flow is behind a login or collected on paper, provide a hosted screenshot or document that shows the exact opt-in language and form.
- If users can subscribe by texting a keyword, provide
opt_in_keywordsand anopt_in_message. The opt-in response should include the brand name, confirmation of enrollment in a recurring campaign, how to get help, and clear opt-out instructions. - Update your privacy policy so it states that mobile numbers are not shared with third parties or affiliates for marketing or promotional purposes. Include message frequency and the required message and data rates disclosure.
- Make sure your sample messages match the campaign use case and identify the brand in each sample. If possible, include opt-out language in at least one sample message to make review easier.
- If you use verbal opt-in, describe the exact script or flow in enough detail that a reviewer can verify how consent is captured.
- After you update the campaign details, resubmit the campaign for review.
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).message_flowincludes a link to your privacy policy and a link to your terms and conditions.- Your privacy policy states that you don't share mobile numbers 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 isn't public, you have provided a URL with hosted screenshots of the full consent flow.
- If end users opt in by texting a keyword, you populated
opt_in_keywordsandopt_in_message. Theopt_in_messageincludes the brand name, confirmation of enrollment, message frequency, and opt-out instructions. - If you use verbal or offline opt-in, the
message_flowdescribes the exact script or process in enough detail for a reviewer to verify how consent is captured. - If the campaign uses multiple opt-in paths, you describe all paths in the same
message_flowfield. - Sample messages match the declared use case, identify the Brand by name, and include opt-out language.
Warning
The following submission would be rejected:
message_flow: Customers can text us to sign up for alerts.
opt_in_keywords: (empty) | opt_in_message: (empty)
Doesn't name the keyword or number, and omits the required opt_in_keywords and opt_in_message fields entirely.
Info
The following submission would pass review:
message_flow: End users opt in by texting JOIN to (555) 123-4567. They immediately receive a confirmation reply. Message frequency varies. Msg & data rates may apply. Terms: www.acmesandwich.com/terms. Privacy: www.acmesandwich.com/privacy.
opt_in_keywords: JOIN, SUBSCRIBE | opt_in_message: Acme Sandwich Co: You're now subscribed to weekly deals. Msg frequency varies. Msg & data rates may apply. Reply HELP for help, STOP to cancel.
Passes because it names the keyword and number, links to both legal pages, and populates opt_in_keywords and opt_in_message with matching content that includes brand name, frequency, rates, and opt-out instructions.
Warning
The following message_flow would be rejected:
End users opt in on our website by entering their phone number.
Doesn't name the URL, link to a privacy policy or terms page, or describe what disclosures the user sees before submitting consent.
Info
The following message_flow would pass review:
End users visit www.acmesandwich.com/sms-signup and enter their phone number. They check a box agreeing to receive recurring promotional text messages from Acme Sandwich Company. Below the form the page states: message frequency varies, message and data rates may apply. The checkbox label links to www.acmesandwich.com/terms (Terms and Conditions) and www.acmesandwich.com/privacy (Privacy Policy, which states mobile numbers are not shared with third parties or affiliates for marketing purposes).
Passes because it names the URL, describes the consent action, and links to both legal pages with the required non-sharing and rate disclosures. See Acceptable vs unacceptable privacy policy and T&C URLs for additional guidance on URL requirements.
Warning
The following message_flow would be rejected:
We collect consent verbally when customers call our support line.
Doesn't describe the script or provide any publicly accessible evidence a reviewer can use to verify the consent language.
Info
The following message_flow would pass review:
End users opt in verbally when they call Acme Sandwich Co support at (555) 987-6543. The agent reads: "Would you like to receive recurring promotional text messages from Acme Sandwich Company? Message frequency varies. Message and data rates may apply. You can reply STOP at any time to opt out." A copy of the agent script is hosted at www.acmesandwich.com/sms-consent-script.pdf. Privacy Policy: www.acmesandwich.com/privacy. Terms: www.acmesandwich.com/terms.
Passes because it describes the exact consent script with all required disclosures and provides a publicly accessible URL where the reviewer can verify the script.
| Date | Change |
|---|---|
| 2025-04 | Rewrote page with expanded message_flow, opt_in_message, opt_in_keywords, keyword/verbal/offline opt-in paths, and privacy-policy disclosure guidance (PR #6807). |
| 2025-05 | Added pre-submission checklist, fix-by-opt-in-concern examples, and cross-link to collect-business-info acceptable URL guidance. |