Skip to content
A2PCheck

How to fix a rejected Twilio A2P 10DLC campaign

A rejected A2P 10DLC campaign is almost always fixable. Work the eight steps below in order — read the rejection reason, repair each part of the registration, then pre-scan before you resubmit.

Guidance only — A2PCheck is independent and not affiliated with Twilio, The Campaign Registry, or any carrier, and we can't guarantee approval.

Free — no signup required

Pre-scan before you resubmit

Find what carriers will flag this time. Free, anonymous, no signup.

New here? Try a realistic example

Load a complete, carrier-friendly campaign to scan in one click — then tweak it for your own.

01

Campaign Info

Basic details about your messaging campaign.

0 characters — Too short — describe who opts in, what you send, and how often.

02

Sample Messages

Provide at least 2 example messages you'll send.

STOP foundHELP foundchecked across your keywords & messages
03

Opt-In / Message Flow

How users consent to receive your messages.

or sign up to run a Full scan

How to fix a rejected Twilio A2P 10DLC campaign

1. Read the rejection reason before changing anything

Twilio / TCR rejections usually come back as a category (vague description, content violation, opt-in not evidenced, use-case mismatch) rather than a line-by-line edit list. Find the rejection code in the Twilio Console under the campaign, and map it to the section below. Don't guess — fixing the wrong thing burns a resubmission cycle.

2. Rewrite a vague campaign description

"We send marketing messages to our customers" gets rejected. State the audience, the kind of messages, where and how people opt in, and the typical content. Quote the consent text users actually see. The description should let a reviewer picture the exact message landing on a phone without visiting your site.

3. Fix sample messages

Each sample should look like a real message you'd send: brand prefix, specific content, a frequency hint, the msg&data-rates disclosure, and Reply STOP / HELP wording on promotional traffic. Generic stand-ins like "Hi, check out our sale" read as placeholders and get flagged. See the sample message checklist for bad-vs-good examples.

4. Evidence your opt-in flow

Reviewers want to see where consent is captured. Name the exact URL, quote the consent string verbatim, confirm the checkbox is unchecked by default, and describe any confirmation step. "Users sign up on our website" with no detail is one of the most common rejection causes. The opt-in flow examples show what passes for web forms, checkout checkboxes, and keyword opt-in.

5. Repair privacy policy & SMS disclosures

Host a publicly reachable privacy policy that explicitly covers SMS opt-in data and states that you do not sell or share phone numbers with third parties for marketing. A policy that 404s, sits behind a login, or never mentions SMS is treated as missing. The privacy policy requirements page lists the exact language carriers look for.

6. Make every submitted URL crawlable

The opt-in page, privacy policy, and terms URLs you submit must be publicly reachable with the SMS-relevant language visible without authentication. If a reviewer (or a crawler) hits a 404, a login wall, or a page that doesn't actually describe SMS, the campaign is rejected even when the description is perfect.

7. Resolve use-case mismatch & disallowed content

Pick the use case that matches the majority of your traffic — declaring MARKETING while sending transactional samples (or the reverse) is a mismatch rejection. If samples touch age-gated content, lending terms, or embedded links, set the matching flags honestly rather than hiding them. Hidden attributes are what trigger content rejections; if you truly send two kinds of traffic, register two campaigns.

8. Run a final pre-resubmission pass

Before you click resubmit, run the full campaign back through the scanner and walk the resubmission checklist. Resubmitting with the same issues unfixed usually comes back as a faster rejection, not a faster approval — so spend the review wait fixing everything in one pass.

Before you resubmit

Don't click resubmit until a fresh scan comes back clean. The scanner checks the same patterns carriers flag, so a clean pass is the best signal you've actually fixed the rejection rather than moved it around.

Keep going

Dig into the specifics with the sample message checklist, the opt-in flow examples, and the privacy policy requirements. Questions about independence and approval scope are answered on the FAQ.

Frequently asked questions

How do I fix a rejected Twilio A2P 10DLC campaign?

Start from the rejection reason in the Twilio Console, then repair the underlying cause: vague campaign description, weak sample messages, an opt-in flow with no evidenced consent, missing SMS privacy disclosures, uncrawlable URLs, or a use-case/content mismatch. Run a pre-scan to confirm the patterns are gone before resubmitting.

Can I just resubmit the same campaign and hope for a different reviewer?

No. Rejections are based on rules that don't depend on the individual reviewer, so an unchanged resubmission typically gets rejected again. Fix the underlying issues first.

How long does a resubmission take to review?

Carrier review times vary, often 1–7 business days. Resubmitting with the same issues unfixed usually results in a faster rejection rather than a faster approval, so it's worth fixing everything in one pass.

Will A2PCheck guarantee my campaign gets approved?

No. A2PCheck is an independent pre-scan tool and is not affiliated with Twilio, The Campaign Registry, or any wireless carrier. It surfaces the common rejection patterns so you can fix them, but it cannot guarantee approval.

Pre-scan before you resubmitResubmission checklist