Why This Rejection Happens
This code indicates that the vetting team was unable to verify your Call-to-Action (CTA) based on the information provided. The description, image, or URL you submitted did not match what the agent found, or the explanation was too vague to prove compliance.
- The screenshot uploaded was blurry or unreadable.
- The "Opt-in Flow" description contradicted the image (e.g., description says "web form" but image shows a flyer).
- The CTA was missing key compliance elements (Brand Name, Frequency, Fees).
Root Cause Analysis
Primary Triggers
- Evidence Quality: A low-resolution screenshot where the disclaimer text cannot be read will always be rejected. The agent cannot verify what they cannot read.
- Narrative Conflict: If you say "Users text START," but your screenshot shows a web form, the agent marks "Verification Failed" due to inconsistency.
Step-by-Step Remediation
Re-Capture Proof
Take a high-resolution screenshot of your opt-in mechanism. Ensure the entire disclaimer text is legible.
Sync Description
Rewrite your "Opt-in Flow" text to match the image exactly.
Pre-Resubmission Checklist
- The screenshot is clear and readable.
- My description matches the screenshot content.
Fix It Faster
Validate your CTA proof.
Make It Clear
Ambiguity is the enemy of approval. Be specific.
What reviewers check for code 30909
The call to action (CTA) is every place a consumer is invited to opt in: web forms, keyword ads, signage, receipts, QR codes and checkout pages. Reviewers check that each CTA is publicly accessible and contains the full CTIA disclosure set in close proximity to the opt-in action. A CTA that is behind a login, only described in words, or missing any single disclosure fails vetting.
For code 30909 (Call-to-Action Verification Issue), the missing piece is the full disclosure set. Every opt-in point needs the complete disclosure set in one place: the brand name, a description of the messages, message frequency, "Msg & data rates may apply", HELP instructions, STOP instructions, and links to the privacy policy and SMS terms. Missing any one of these, or spreading them across separate pages, fails review.
Where code 30909 comes from
Code 30909 is one of the brand and campaign registration errors Twilio returns in its 30xxx error range when vetting fails. Other CSPs report the same underlying problem under their own reason codes, so the remediation below applies on any platform. It has a documented fix that usually needs one targeted correction and a resubmission.
Example: call to action for a restaurant group
The example below uses a fictional restaurant group, Saltbox Kitchen, to show the difference between a submission that triggers code 30909 and one that passes.
Rejected:
Text SALTBOX to (555) 349-5521 for updates!
Approved:
Text SALTBOX to (555) 349-5521 to get reservation confirmations and weekly specials from Saltbox Kitchen. Up to 4 msgs/month. Msg & data rates may apply. Reply HELP for help. Reply STOP to opt out. Privacy Policy: saltboxkitchen.com/privacy | SMS Terms: saltboxkitchen.com/sms-terms
Fix and verify before resubmitting
- List every CTA location in the campaign and provide a public URL or screenshot for each.
- Add the full disclosure set where code 30909 flagged it, using the approved wording for Saltbox Kitchen's program shown above.
- Confirm each CTA shows the full disclosure set, not only the primary website form.
- For printed or in-store CTAs, upload a photo or proof that shows the disclosure text legibly.
- Remove pre-checked boxes and any language making consent a condition of purchase.
- Re-test links from the CTA to the privacy policy and SMS terms.
- Resubmit with a note that references code 30909 and quotes the corrected full disclosure set.
Sample resubmission note
Many CSPs let you add a note for the reviewer when you resubmit. A short, specific note shows what changed and speeds up the second review. Example for Saltbox Kitchen:
Saltbox Kitchen corrected the deficiency reported as code 30909 (Call-to-Action Verification Issue). Changes made: list every CTA location in the campaign and provide a public URL or screenshot for each; add the full disclosure set where code 30909 flagged it, using the approved wording for Saltbox Kitchen's program shown above; confirm each CTA shows the full disclosure set, not only the primary website form. All URLs, keywords and auto-replies were re-tested from an external network before this resubmission, and the campaign text now matches the live opt-in exactly.
Common mistakes that keep code 30909 coming back
- Showing some disclosures on the form and the rest only in the terms page.
- Describing the opt-in in the campaign but providing no public page or attachment that shows it.
- Using different wording in the campaign than on the live opt-in.
- Fixing the main web form but leaving signage, receipts or keyword ads unchanged.
Related rejection codes
- Code 803: Website Missing Opt-in Language
- Code 30893: Invalid Sample Messages
- Code 2132: Opt-in Instructions Insufficient
- Code 2125: Webpage Missing Opt-in Form
- Code 3009A: CTA Missing Phone Number
- Code 852: Terms and Privacy Links Missing
- Code 3011A: CTA URL Missing or Inaccessible
- Code 3010A: CTA Missing Age Gate
Frequently asked questions about code 30909
Does code 30909 mean the whole campaign is non-compliant?
No. Code 30909 points to one gap: the full disclosure set in your call to action. Fix that gap, check the rest of the submission against the same checklist, and resubmit. Reviewers often list only the first deficiency they find, so a full self-check prevents a second rejection.
Where exactly should the full disclosure set appear?
Keep the disclosure in the same visual block as the opt-in button, keyword or checkbox. Every opt-in point needs the complete disclosure set in one place: the brand name, a description of the messages, message frequency, "Msg & data rates may apply", HELP instructions, STOP instructions, and links to the privacy policy and SMS terms.
Do I fix my live call to action or only the campaign text?
Every live call-to-action location, plus the campaign's description of them. A single non-compliant CTA is enough to fail.
Legal Disclaimer: Code 30909 ensures that the vetting team can audit your compliance claims. Accurate documentation is required.
© 2025 MyTCRPlus. All rights reserved.