Campaign Rejection 30909

Error 30909: Opt-In Could Not Be Verified

Reviewers could not verify how your customers agree to receive texts. Here is how to describe your opt in so it can be checked.

Campaign rejected with error 30909, opt in not verified, next to a fixed opt in with an unchecked box and terms and privacy links
Message flow details to describe: where customers sign up, exact consent wording, message frequency, data rates notice and policy links
What It Means

Why Message Flow Gets Rejected

Reviewers could not verify the message flow, which is how end users consent to receive your messages.

An offline opt in that is not explained, a web form missing terms, privacy policy, message frequency or the message and data rates disclosure, or an opt in page behind a login.

Describe every opt in path from start to finish, link your terms and privacy policy, include all disclosures, and give a public URL or screenshots of the consent step.

No. Edit it and resubmit. The vetting fee is charged once per campaign, so deleting and recreating costs again.

The Rule

What Does Error 30909 Mean?

Error 30909 means an A2P 10DLC campaign was rejected because its Message Flow, also called the Call to Action, does not give reviewers enough to verify how people agree to receive your texts. On Twilio this is the message_flow field, shown as “How do end-users opt in to receive messages?” in the console. Reviewers need to see the full opt-in path, not a one-line summary.

A good message flow states where people opt in (web form, keyword, paper form, checkout, in person), what they see at that moment, and links to the live page or a screenshot. It should show the business name, what messages they will get, how often, that message and data rates may apply, how to get help and how to opt out, plus links to your Terms and Privacy Policy.

Newer Codes

Which More Specific Codes Can Come With 30909?

Twilio now often returns a more specific code alongside or instead of 30909. Each one names the exact gap in the opt-in flow, which makes the fix faster. These are the related codes Twilio lists for message-flow rejections:

CodeWhat is missing
30543A live opt-in link was not provided.
30544The Call to Action does not state the message purpose.
30545The Call to Action does not state message frequency.
30547The Call to Action is missing opt-out instructions.
30549No Terms of Service link in the opt-in flow.
30550No Privacy Policy link in the opt-in flow.
30551The consent does not specify SMS or text messaging.
30556SMS consent is bundled with other communication channels.
30568The Call to Action is missing the business or brand name.
30569The Call to Action is missing the message and data rates disclosure.
30570The Call to Action is missing customer-support instructions.
30896Opt-in error.
30907Website URL validation issue.
30908A compliant privacy policy is required (see also 30932).
30917Every opt-in method needs a complete workflow description.
Wording

What Opt-In Wording Passes Review?

Opt-in wording that passes names the business, says the messages are texts, states what they are about and how often they come, mentions message and data rates, explains HELP and STOP, and links the Terms and Privacy Policy. The SMS consent box must be separate from email or other consent and must start unchecked.

An illustrative checkbox line looks like this:

  • “I agree to receive [appointment reminders and account updates] by text message from [Business name] at the number provided. Message frequency varies. Message and data rates may apply. Reply HELP for help or STOP to opt out. See our [Terms] and [Privacy Policy].”

Adapt the bracketed parts to your real program. Our SMS opt-in language guide covers keyword and paper opt-in too, and the free opt-in language generator drafts a version for you.

Step by Step

How Do You Fix Error 30909 and Resubmit?

To fix error 30909, rewrite the message flow so it walks a reviewer through every opt-in method, make the opt-in page or a screenshot publicly reachable, add any missing disclosures from the table above, and resubmit the same campaign. Twilio’s own guidance stresses both parts: correct the flow, then resubmit. It does not promise approval.

  1. Read every code on the rejection, including the specific ones above.
  2. List every opt-in method you use and describe each one end to end.
  3. Make the proof reachable: a live public URL for web forms, or a hosted screenshot for forms behind a login, paper or in-person opt-in.
  4. Fix the page itself, not only the description. Reviewers open the link.
  5. Resubmit the existing campaign. See rejected A2P campaigns.

Want it done for you? We document your opt-in flow and resubmit for $50.

Message Flow Checklist

What Reviewers Must See

Make every part publicly verifiable.

Full Opt In Path

Every step from signup to first text.

Terms and Privacy

Linked from the opt in form.

Disclosures

Frequency, rates may apply, STOP and HELP.

Public Access

No login needed to view the opt in.

Done for You

We Document Your Opt In Flow

We describe your consent flow clearly and resubmit the campaign.

Step 1, business details form for A2P 10DLC registration
Step 01

Share Your Details

Send us your business details, website and how you text customers.

Step 2, brand and campaign registration prepared and submitted
Step 02

We Prepare and Submit

We write your brand and campaign and submit them to The Campaign Registry.

Step 3, carrier review timeline for an A2P 10DLC campaign
Step 03

Carrier Review

Carriers review your campaign. Most reviews take a few business days.

Step 4, real email confirming the A2P campaign is approved
Step 04

Get Approved

Link your numbers and start sending compliant texts.

Simple Pricing

Rejection Fixes Included

Complete A2P 10DLC verification, done for you. $50 for one business, $399 for ten.

One business

Single Verification

$50

per verification, paid once

For one business that needs carrier approval to text its customers.

Best for agencies

10 Verification Pack

$399

10 verifications, $39.90 each

For agencies and multi location businesses verifying several brands. Just $39.90 per verification.

Registration and carrier fees are charged separately by your SMS provider.

FAQ

Frequently Asked Questions

Reviewers must be able to see how people opt in. A public URL is simplest. If the form sits behind a login or opt-in happens on paper or in person, describe the method fully and provide a hosted screenshot or image that shows the consent wording.

No. Twilio lists bundled consent as its own rejection reason, error 30556. Use a separate, unchecked SMS consent box or opt-in step that specifically mentions text messages.

Yes. Consent has to be an action the person takes. A pre-checked SMS box does not show that they chose to receive texts, so reviewers treat it as a failed opt-in.

30909 is the general rejection for a message flow or call to action that cannot be verified. 30896 is a related opt-in error code. Read the exact wording on your rejection and fix every point it names before you resubmit.

Rejected for 30909?

Tell us how customers sign up and we fix your message flow.

Scroll to Top