A2P 10DLC Registration: How It Works and Why Campaigns Get Rejected
Short answer
A2P 10DLC is the US carrier registration required to send business text messages from a normal 10-digit phone number. You register a Brand (your verified business) and a Campaign (what you send and how people opt in). Since September 1, 2023, texts to US numbers from unregistered 10DLC numbers are blocked (Twilio error 30034). Most rejections come from an unclear opt-in, vague descriptions or sample messages, or a website that doesn't match the business, and they can be fixed and resubmitted.
Who needs to register
Anyone sending SMS or MMS from an application to US phone numbers over a +1 10-digit long code must register, including small businesses, nonprofits and individuals using Twilio. Twilio's A2P 10DLC overview covers the scope. Carriers made this a fully verified route: per Twilio's changelog, messages to the US from unregistered 10DLC numbers have been blocked since September 1, 2023, returning error 30034.
Toll-free numbers and short codes have their own verification processes and are not covered here.
How registration works
- Business profile and Brand. Submit the legal business name, EIN, address, website and a contact. The Campaign Registry checks it against official records and assigns a trust level that affects throughput (Twilio on throughput and trust scores).
- Campaign. Choose a use case (for example account notifications, customer care, marketing), describe who sends what to whom and why, explain the opt-in flow, and add sample messages. The campaign is then vetted.
- Messaging Service and numbers. Once approved, the campaign is attached to a Messaging Service and your 10DLC numbers are added to its sender pool. Only then will messages flow.
Twilio's registration quickstart walks through the console screens.
Brand types at a glance
| Brand type | Who it's for | Daily volume to T-Mobile | Campaigns |
|---|---|---|---|
| Sole Proprietor | Individuals without an EIN | About 1,000 SMS segments | One |
| Low-Volume Standard | Businesses with an EIN and low volume | Up to about 2,000 SMS segments | Up to five |
| Standard | Businesses with an EIN | From 2,000 up, based on vetting score | Up to five |
Limits change; confirm them in Twilio's documentation before you choose.
What to prepare before you submit
- Exact legal details. Business name, EIN and address exactly as they appear in IRS records. Small spelling differences cause brand failures.
- A live website that belongs to the brand and describes the same business. No parked or "coming soon" pages.
- A privacy policy that says mobile numbers and SMS consent are not shared with third parties for marketing, and terms that cover the SMS program. From June 30, 2026, Twilio's API requires privacy policy and terms URLs on new campaign registrations (changelog).
- A visible opt-in with consent text next to the phone field: brand name, what messages the person will receive, message frequency, "Msg & data rates may apply", how to get HELP and how to STOP, and links to the privacy policy and terms. The consent checkbox should not be pre-ticked or required to submit the form.
- A specific campaign description naming the sender, the recipients and the purpose.
- Two or more realistic sample messages with your brand name, [bracketed] variables and opt-out wording, and no public link shorteners.
Common rejection reasons and how to fix them
Each rejection shows an error code in the Twilio Console. These are the ones that come up most often (full list in Twilio's campaign troubleshooting guide):
| Error | What it means | How to fix it |
|---|---|---|
30909 | Message flow / call to action incomplete or unverifiable | Describe every place a person opts in (web form, checkout, paper form, keyword) and link to it. If the form is behind a login, host a screenshot at a public URL and include that link. |
30896 | Opt-in error | Show who opts in, where, and exactly what they agree to. The consent text must name your brand, say what messages they will get, and mention message frequency, "Msg & data rates may apply", HELP and STOP. |
30886 | Campaign description is too vague | Write who is sending, who receives the messages and why, e.g. "Acme Dental sends appointment reminders to patients who booked online and opted in to texts." |
30893 | Sample messages don’t match the use case | Samples must look like real messages for the selected use case, include your brand name, and use [brackets] for variable fields. Add opt-out language to at least one sample. |
30892 | Public URL shortener in samples | Remove bit.ly, TinyURL and similar links. Use your full domain, or a branded short domain you own. |
30891 | Website URL invalid | The website must be live, public, belong to the brand, and describe the business you registered. Parked pages, "coming soon" pages and social profiles usually fail. |
30894 | Brand information doesn’t match | Legal name, EIN and address must match IRS records exactly, and the website must clearly belong to that company. Brand details can’t be edited while a campaign exists. |
30887 | Opt-out error | Support STOP (and similar keywords), confirm the opt-out with one final message, and describe this in the campaign. |
30890 | Subscriber HELP missing | Reply to HELP with your brand name and a way to get support (phone, email or website). |
30883 | Prohibited content | Content involving sex, hate speech, alcohol, firearms, tobacco or cannabis is restricted. Remove it, or ask Twilio Support whether an appeal applies. |
Resubmit instead of starting over. Twilio charges the vetting fee once per campaign, so edit and resubmit a rejected campaign. Delete and recreate only when the use case was wrong or the brand details must change, since neither can be edited on an existing campaign.
How long it takes
Review times depend on carrier and vetting queues. Twilio's guidance ranges from several business days to two to three weeks for Standard and Low-Volume Standard registrations, and the vetting FAQ suggests contacting support if a review is still pending after 10 days. Each rejection restarts the wait, which is why a complete first submission matters more than speed.
When to get help
Registration is worth handing off when a campaign has already been rejected more than once, when the opt-in lives inside an app or behind a login, when you run several brands (agencies and GoHighLevel-style setups), or when messaging is blocking a launch. I handle A2P 10DLC brand and campaign registration end to end, including the website, privacy policy and opt-in changes reviewers ask for.
A2P 10DLC questions
Stuck in review or rejected?
Send the error code and your campaign details, and I'll tell you what needs to change.
Get A2P 10DLC Help