If you’ve tried registering an A2P 10DLC campaign on Twilio and hit a wall of cryptic rejections, you’re not alone. Since the February 2025 mandate requiring all US business SMS to go through 10DLC registration, thousands of small businesses have been stuck in a frustrating loop: submit a campaign, wait two to four weeks, get a vague rejection, pay another $15, and start over.
This guide walks you through the exact steps to get approved on the first try — and what to fix if you’ve already been rejected.
What Is A2P 10DLC and Why Does Twilio Require It?
A2P 10DLC stands for Application-to-Person messaging on 10-Digit Long Code numbers. It’s an industry-wide system managed by The Campaign Registry (TCR) that requires every business sending SMS in the US to register its brand and describe its messaging campaigns before a single text goes out.
Twilio doesn’t set these rules — the major US carriers (T-Mobile, AT&T, Verizon) do. But Twilio is your gateway to the registration system, and the quality of your submission determines whether you get approved or enter rejection limbo.
The registration has two main phases: Brand Registration (proving your business is real) and Campaign Registration (proving your messages are legitimate and compliant). Most rejections happen at the campaign stage.
Step 1: Get Your Brand Registration Right
Before you touch campaign details, your brand must be verified. Here’s what you need to have ready.
Match your legal name exactly. Use the business name from your IRS CP 575 EIN confirmation letter — not your DBA, not your website name, not your logo text. A single character mismatch between your registered name and your EIN triggers a failure.
Wait if your EIN is new. Newly issued EINs can take 30 to 90 days to appear in third-party verification databases. If you just formed your LLC or corporation, your brand registration will fail silently until the data propagates. There is no workaround for this besides waiting.
Have a live, working website. The URL you provide must load a real page — not a “coming soon” placeholder, not a password-protected staging site. The business name on the site should match your registered brand name.
Sole proprietors face extra limits. You’ll be capped at one campaign, one phone number, and 1,000 messages per day on T-Mobile. If that’s not enough, you may need to register as a standard brand with an EIN.
Step 2: Write a Campaign Description That Actually Gets Approved
This is where most rejections happen. The campaign description isn’t a marketing pitch — it’s a compliance document. Reviewers at TCR are checking specific boxes. Hit every one of them.
Your description needs to answer three questions clearly: Who sends the messages (your business name), who receives them (your customers, patients, subscribers — be specific), and why (the exact purpose — appointment reminders, order confirmations, account alerts).
A bad description looks like this:
“We send texts to our customers.”
A good description looks like this:
“Sunrise Dental Clinic sends appointment reminder SMS messages to patients who have scheduled visits. Patients provide consent by checking an opt-in box on our online booking form at sunrisedental.com/book. Messages include appointment date, time, and office location. Patients can reply STOP at any time to opt out.”
Notice how the good version names the business, specifies the audience, explains the consent method, describes the message content, and mentions opt-out. Every one of those elements is checked during review.
Step 3: Craft Compliant Sample Messages
You’ll need to submit two to five sample messages. These are the most scrutinized part of your application.
Include your brand name in every sample. Not your abbreviation, not a nickname — the registered brand name. If your brand is “Sunrise Dental Clinic,” every sample should say “Sunrise Dental Clinic,” not “SDC” or “your dentist.”
Match your declared use case. If you registered as “Customer Care,” don’t include a promotional message about a sale. TCR reviewers will reject campaigns where samples suggest a different purpose than what was declared.
Include opt-out language in at least one sample. Something like “Reply STOP to unsubscribe” must appear naturally in your message samples.
Avoid link shorteners. Bitly, TinyURL, and similar short URLs trigger automatic rejection. Use your full domain (e.g., sunrisedental.com/confirm) instead.
Here’s an example set for an appointment reminder campaign:
“Sunrise Dental Clinic: Reminder — you have an appointment on March 5 at 2:00 PM. Reply YES to confirm or call us at (555) 123-4567.”
“Sunrise Dental Clinic: Your appointment is tomorrow at 10:00 AM at our Main St. office. Reply STOP to opt out of reminders.”
Step 4: Fix Your Website Before You Submit
TCR reviewers will visit your website. If any of the following are missing, expect a rejection.
SMS-specific privacy policy. A generic privacy policy isn’t enough. You need language that specifically addresses SMS data: what phone numbers you collect, how you use them for messaging, and a clear statement that you do not share or sell phone number data. Many template privacy policies miss this.
Visible opt-in mechanism. If you claim users opt in through your website, there must be a working form, checkbox, or sign-up flow visible on the site. The checkbox cannot be pre-selected.
Terms of service. A separate or clearly labeled section covering your SMS terms — message frequency, “Message & Data rates may apply,” and how to opt out.
If your website doesn’t have these yet, add them before submitting. A free-standing page at yourdomain.com/sms-terms works fine.
Step 5: Understand the Costs So Rejections Don’t Drain Your Budget
The fees add up, especially when submissions get rejected.
Brand registration runs $4 to $46 depending on your business type. Each campaign vetting attempt costs $15, non-refundable — even if rejected. Monthly campaign fees are $1.50 to $10. Per-message carrier surcharges add roughly $0.003 per segment. There’s also a mandatory $12.50 Authentication+ fee per brand for public for-profit entities.
After two or three rejections, a small business can easily spend over $50 before sending a single text. Getting it right the first time isn’t just about speed — it’s about money.
What to Do If You’ve Already Been Rejected
If you’re already in the rejection cycle, here’s how to break out.
Decode your error code. Twilio provides error codes like 30909 (opt-in issues), 30893 (content policy), and 30897 (website problems). Search Twilio’s support docs for the specific code — each one maps to a particular compliance gap.
Fix everything, not just the flagged issue. TCR often rejects on the first problem found and stops reviewing. That means the next submission might fail for a completely different reason. Before resubmitting, audit your entire application against every requirement in this guide.
Don’t resubmit the same content. Each resubmission costs $15. Make meaningful changes to your description, samples, and website before trying again.
Consider secondary vetting. If your initial trust score is too low, Twilio offers enhanced vetting for $40. This can increase your messaging throughput limits, though it doesn’t guarantee approval.
The Bottom Line
The A2P 10DLC system wasn’t designed with small businesses in mind, but it’s the reality of US SMS in 2025 and beyond. The requirements are knowable and the rejection patterns are predictable. Most businesses get rejected not because their messaging is non-compliant, but because their paperwork doesn’t prove compliance clearly enough.
Take the extra hour to get your description airtight, your samples branded and use-case-matched, and your website policy-complete before you hit submit. That one hour can save you weeks of back-and-forth and dozens of dollars in re-vetting fees.