10dlc campaign rejected

10DLC campaign rejected? What each error means and how to fix it (2026)

Why A2P 10DLC campaigns get rejected, what each Twilio error code means, how to fix your opt-in and samples, and how to resubmit without paying twice.

Hear the AI receptionist answer a real call — 60 seconds →

Most 10DLC campaigns are rejected because the reviewer can’t verify how people agreed to get your texts, or because the description, sample messages and website don’t clearly match one business. Find the error code on the rejected campaign, fix that exact field, then edit and resubmit the same campaign rather than creating a new one, because Twilio charges the vetting fee only once per campaign. The exceptions are a wrong use case, which editing can’t change, and a problem with the brand itself; both need a new campaign. Rejections for disallowed content, spam or phishing can’t be resubmitted as they are, Twilio says.

This guide uses Twilio’s own error-code pages and A2P 10DLC docs, checked October 2026. Other providers (and CRMs that register on your behalf) send the same campaign to the same carrier vetting, so the reasons and fixes carry over even where the codes look different.

What is A2P 10DLC, and why does a campaign get rejected?

A2P 10DLC is the system US carriers use to make sure business texts sent from ordinary 10-digit numbers are “verified and consensual,” in Twilio’s words. Anyone sending application-to-person texts to US numbers from a 10-digit number has to register two things:

  • A Brand: who you are (legal name, EIN or sole-proprietor details, address, website).
  • A Campaign: what you’ll send and how people opt in and out.

Most rejections land on the Campaign, because that’s where you have to prove consent. Twilio’s troubleshooting guide (updated July 2026) says twelve rejection reasons can be fixed by editing, among them a vague description and link shorteners in sample messages.

Skipping registration isn’t a workaround. Twilio blocks texts to US numbers from a 10-digit number that isn’t linked to an approved campaign (error 30034).

What does each 10DLC rejection code mean?

Twilio returns a code on the rejected campaign, and a campaign can carry more than one. Since September 15, 2026, Twilio returns more specific codes instead of generic ones. These are the ones service businesses hit most:

Code What the reviewer found The fix Resubmit?
30909 Message flow / call to action incomplete or unverifiable Describe every opt-in path, with privacy and terms links, message frequency and “Message and data rates may apply”; for keywords, the confirmation and HELP replies Yes, edit the same campaign
30896 Opt-in details don’t show how people consent Say who opts in, where and how; add website, privacy and terms links Yes
30886 Campaign description doesn’t explain the program State who sends, who receives and why, using your real business name Yes
30882 Terms and conditions don’t meet requirements Publish terms for your brand; consent must be to you, not shared with partners Yes, after fixing
30927 Opt-in evidence names a different company Make the opt-in page, samples and website all name the registered brand Yes
30898 Same EIN used for too many brands Use your existing approved brand instead of a duplicate After fixing the brand; a new campaign is needed
30880 Rejected with no specific reason Check for other codes; make brand, site, flow and samples describe one program Yes, or ask support
30883, 30884, 30897 Prohibited content, known spam/phishing, or disallowed content Materially change the program, or appeal through support No, not as submitted

If you registered through a CRM or marketing platform rather than Twilio directly, ask them for the exact rejection reason. A vague “your campaign was rejected” is not enough to fix it.

How do you fix a rejected opt-in (message flow)?

The opt-in, which Twilio calls the message flow or call to action, is the field most rejections trace back to. Reviewers are checking one thing: could a stranger see, publicly, how a customer agreed to get your texts? Twilio’s 30909 page lists what the message flow has to include:

  1. Every way people opt in. Website form, keyword (“text BOOK to…”), paper form, verbal at the counter, QR code. If you do three, describe all three in one submission.
  2. A public place to see it. For a website form, the URL. If the form sits behind a login, host screenshots at a public URL and link them.
  3. Links to your privacy policy and terms. Both must be live, public and name your business. Twilio’s 30896 page says the privacy policy must state that mobile numbers are not shared with third parties or affiliates for marketing or promotional purposes. Put that in the policy in those words. The same pages say the policy should also state message frequency and that message and data rates may apply.
  4. Message frequency (“up to 4 messages per appointment”), and “Message and data rates may apply.”
  5. Opt-out and help. Reply STOP to unsubscribe, HELP for help.
  6. Keyword details, if you use one. Give the keyword and the exact confirmation and HELP replies people get back.

The website matters too. Twilio’s 30880 page asks for a working website, and 30927 rejects opt-in evidence that names a different company, so the site should show your registered business name, contact details, and live privacy and terms pages.

Here’s what that looks like next to a booking form’s phone field:

☐ Text me appointment confirmations and reminders from Smith Heating & Air. Up to 4 messages per appointment. Message and data rates may apply. Reply STOP to opt out, HELP for help. [Privacy policy] · [Terms]

Leave the box unticked by default and don’t make it required to book, so consent is a separate, optional choice. Then describe it in the campaign’s message flow field in plain sentences: “Customers opt in on the booking form at smithheating.com/book by ticking an unchecked box next to the phone field. The box text names Smith Heating & Air, states message frequency and that message and data rates may apply, explains STOP and HELP, and links to our privacy policy and terms. Customers who book by phone are asked by our office staff, ‘Can we text you appointment reminders? Message and data rates may apply; reply STOP to opt out,’ and their answer is saved on their customer record. We do not share mobile numbers with third parties or affiliates for marketing or promotional purposes.”

For verbal opt-in, Twilio wants enough detail that a reviewer could check how consent is captured: who asks, what they say and where it’s recorded.

How do you fix the description and sample messages?

Description (30886). One or two sentences: who sends, who receives, why. “Smith Heating & Air sends appointment confirmations, reminders and invoice notices to residential customers who booked a service visit.” Use your business’s name, not the software platform you send through.

Sample messages. Twilio’s 30909 and 30896 pages ask for samples that match the declared use case, identify the brand by name and include opt-out language. In practice that means:

  • Start with your business name: “Smith Heating & Air: your tech Mike arrives tomorrow 8–10am. Reply C to confirm. Reply STOP to opt out.”
  • Use your own domain for links, not a public link shortener. Shortened links in samples are one of the rejection reasons Twilio lists.
  • Make the samples match the campaign. If you registered for customer care, don’t include a promo blast. Editing a rejected campaign can’t change its use case, so if you picked the wrong one, that’s one of the two cases (the other is a brand problem) where a new campaign, and a new vetting fee, is the right move.
  • Tick the right boxes. Twilio’s campaign form asks whether messages contain links or phone numbers. If your samples include a link, say so.

Hear the receptionist take a real call — it rings your phone in about a minute.

Can you resubmit a rejected 10DLC campaign, and does it cost again?

For most codes, yes: edit the rejected campaign and resubmit it. In Twilio’s console, that’s the Edit Campaign link on the failed campaign; the original answers come pre-filled. Twilio’s troubleshooting guide says “a vetting fee is assessed only once per Campaign,” so deleting the campaign and starting fresh is how you end up paying twice. Two problems can’t be fixed by editing: Twilio’s guide says the edit screen has no use-case option, and a brand can’t be edited once a campaign is registered to it, so a wrong use case or a brand problem means a new campaign.

Some rejections can’t be resubmitted at all: content-violation, spam/phishing and disallowed-content rejections (30883, 30884, 30897). Twilio says not to resubmit those as they are. Change the program materially, or appeal through support if you think the reviewer got it wrong.

How long does 10DLC approval take?

Twilio’s guide says sole-proprietor campaigns “tend to be approved or rejected quickly,” while standard campaigns “must go through several distinct layers of vetting and this process can take up to several weeks.” Every rejection and resubmission starts another review, which is why getting it right the first time matters more than the fee.

Plan for it: if you’re launching text reminders for a busy season, register a month ahead, not the week before.

What does 10DLC registration cost?

Your provider bills the fees, and its line items may differ. As one dated example, HighLevel’s help center (updated September 24, 2026) lists the registry and carrier fees it passes through, which it says carry no markup:

Item Fee via HighLevel (Sep 2026)
Sole proprietor or low-volume standard brand, one-time $22.50
High-volume standard brand, one-time $64.00
Monthly campaign fee: standard use cases $10.00/mo
Monthly campaign fee: low-volume mixed $1.50/mo
Monthly campaign fee: sole proprietor $2.00/mo
Resubmitting a rejected campaign No additional vetting fee

Those one-time figures bundle brand registration, campaign vetting and a $3 fast-track fee, so another provider’s line items will look different. Carrier per-message fees come on top. Check your own provider’s fee page before you budget.

A worked example: an HVAC shop’s rejected campaign

A two-truck HVAC shop registers a campaign for appointment reminders and gets 30909 and 30886 back. What it submitted:

  • Description: “We send messages to our customers.”
  • Message flow: “Customers give us their number.”
  • Samples: “Your appointment is tomorrow. bit.ly/3xYz”

Every part fails the checks above. The description doesn’t say who or why. The flow doesn’t say where consent happens or link a policy. The sample doesn’t name the business, has no opt-out and uses a shortener.

The owner adds the checkbox wording above to the website’s booking form, publishes a privacy policy and terms page, and rewrites all three fields using the examples in this guide. Then they click Edit Campaign on the rejected campaign, not Create, and resubmit. The second review takes time too, but this time every field answers what 30909 and 30886 asked for, and the vetting fee isn’t charged again.

What about texting while you wait?

Texting from your own number has to wait for approval. Calls don’t. Two things keep customers from going quiet in the meantime:

  • Answer the phone. Customers who call about their appointment don’t need a registered campaign. If you’re missing those calls, an AI receptionist can pick them up. Our guide to forwarding calls to an AI receptionist lists the codes for Verizon and T-Mobile, and the AT&T settings.
  • Use a sender that’s already registered. In Stack Space, everyday customer texts (appointment reminders, invoices, payment reminders and replies) go out from our registered number with your business name, or from a $15/mo text number of your own as soon as you add one. Texting from a number you bring yourself, and marketing texts, wait until your carrier registration is approved, the same review this guide covers. Texting is included from $30/mo on the Launch plan, alongside the AI receptionist.

If you’re setting up texting for missed calls specifically, our missed-call text-back guide covers the workflow and templates.

FAQ

Why was my 10DLC campaign rejected?

Usually because the reviewer couldn’t verify consent (an incomplete message flow, missing privacy or terms links, no frequency or “Message and data rates may apply”), or because the description, samples and website don’t clearly describe one business. Check the error code on the campaign; Twilio’s code pages say exactly which field to fix.

What is Twilio error 30909?

It means the campaign’s message flow, or call to action, is incomplete or can’t be verified. Describe every opt-in method, link a public privacy policy and terms, state message frequency and that message and data rates may apply, and make the opt-in publicly viewable or link screenshots.

Can I resubmit a rejected 10DLC campaign?

Yes, for most rejections: edit the same campaign and resubmit it. Twilio charges the vetting fee once per campaign, so don’t delete it and create a new one unless the use case or the brand is what’s wrong. Content-violation, spam/phishing and disallowed-content rejections can’t be resubmitted as they are.

How long does 10DLC campaign approval take?

Sole-proprietor campaigns are usually decided quickly. Standard campaigns go through several layers of vetting that Twilio says can take up to several weeks, and each resubmission starts another review.

Do I need 10DLC registration to send business texts?

In the US, yes, if you’re sending business texts from a regular 10-digit number. Twilio blocks texts from unregistered 10DLC numbers outright (error 30034).

Run your whole business on one platform.

Full CRM + AI included from $30/mo · no contracts · cancel in two clicks

Start today
The 60-second demo

Skip the sales call. Take one from the receptionist Stax trains instead.

Type your number and the receptionist Stax trains calls you back — usually within a minute between 8am and 8pm your time. Ask it anything about your business. Try to stump it.

Want the next one in your inbox?

One article like this every week — real numbers for running a service business. Unsubscribe whenever.

Start today