A2P 10DLC Registration: Why Your Business Texts Are Not Delivering
Your software says the message sent. Here is why the carrier dropped it, what registration costs, and how to write a campaign that passes.
Your texting software says the message sent. The customer says it never arrived. So you check the number, resend it to your own phone, watch it land, and quietly decide the customer is wrong.
They are not wrong. A text from an unregistered ten digit number gets filtered by the carrier after your software reported success, which is why nothing in your dashboard turns red. Twilio's A2P 10DLC documentation adds the rest: senders who do not register receive additional carrier fees for unregistered traffic. You pay a surcharge to be blocked.
A speed to lead sequence that fires in 47 seconds is worth nothing when the first message never lands.
What the Carriers Did, and Why Nothing Tells You
The carriers stopped treating ten digit numbers as consumer phones and started treating them as an application channel. A2P means application to person. A computer sent it, not a thumb.
Registration has two halves. A brand is an identity record: legal name, EIN, address, checked against public records. A campaign describes what you send and how people agreed to receive it. Identity, then consent.
The failure is silent where you are standing. Carriers do not tell spam operations which filter caught them, so they do not tell you either, and your platform reports the message accepted, because it was accepted. That is the whole of what a contractor can see.
One layer down it is not silent at all. Twilio blocks US bound messages sent from a 10DLC number that is not attached to an approved campaign, and those attempts carry error 30034, which exists for exactly this and says so in its title: message from an unregistered number. If 30034 is in your logs, the question is answered and you can stop reading diagnostics. It surfaces in Messaging Insights, or at a StatusCallback URL if your platform is wired to one, and almost nobody thinks to look in either place. No error where you can see it is not the same as no error.
How to Check Whether Your Number Is Registered
Settle that before you read any further, because everything below is academic if your number is already clear. Twilio publishes a three step check that needs no support ticket. Open Active Numbers and see which of your numbers sit inside a messaging service, because a US number that is not in a messaging service is not registered. Then open each messaging service and click its A2P and Compliance tab, where a service with a registered campaign shows green checkmarks against each registration step and a campaign use case status of Verified. Anything short of that is not registered, whatever the sending screen says.
That walkthrough is written against an older version of the console, so a label may have moved since. The three checks have not.
For more numbers than you want to click through, the same page offers a CSV. Request CSV Report sits in the banner on the Active Numbers page, the file arrives by email somewhere between one and 24 hours later, and the data behind it refreshes every two hours, so a registration that completed this morning may not show until this afternoon.
Five statuses come back and one of them is the good one. Registered is cleared to send to the US. Unregistered means the number has not been associated with a verified campaign, and the remedy given is to add it to a messaging service tied to a verified campaign. Pending Registration takes several days and asks nothing of you. Pending_DeRegistration and Failure are the other two, and Failure means an unexpected error that support has to unpick.
There is a view from the other direction, under Regulatory Compliance in the Messaging tab. Open the campaign and it lists the phone numbers connected to it, sortable by status and exportable. An empty list is its own kind of answer: the campaign was approved and no number was ever attached to it, so the registration exists and none of your traffic is covered by it.
Most contractors do not send through Twilio directly. They send through an all in one platform that resells someone else's messaging, and the same registration status exists in there because it comes from the same registry. Where it lives in that console varies by platform and we are not going to walk you through a screen we cannot verify. Ask your provider two questions in these words: is this number registered, and which campaign is it attached to. A provider who cannot answer both in a sitting is the answer.
Three Approvals in Sequence
Three sequential approvals, not one form. Each stage has its own reviewer and clock, and nothing starts until the one above clears.
- 1.Customer profile. Legal name, EIN, registered address, and a contact who answers, verified by your provider before anything goes upstream.
- 2.Brand. The profile goes to The Campaign Registry, which checks the EIN against public records and returns a trust score.
- 3.Campaign. Use case, message flow, consent method, sample messages. This is the stage that fails.
Review time by stage, as Twilio documents it
| Stage | Documented time | What is checked |
|---|---|---|
| Customer profile | 72 hours or more | Your submitted identity |
| Brand | Minutes if automated, 7 business days or more if manual | EIN at the Registry |
| Campaign | Currently 10 to 15 days | Use case, consent, samples |
Those come from Twilio's standard registration guide, and the word on the campaign row is the guide's own: currently 10 to 15 days. The first two are floors. A profile does not clear faster than 72 hours and a manual brand review does not beat seven business days, so those are the earliest you can be finished, not the likely date. The campaign figure is a different kind of number. It is a provider's current estimate of a queue, and a queue runs long or short.
Ours have landed on both sides of it. Across the registrations we have filed, campaign approval has come back between 3 and 14 days, which is well under the documented window at one end and inside it at the other. That is an operator observation over a small number of registrations, not a benchmark and not a promise about your queue. What a sample that size supports is a range and a caution, which is what you are getting. It does not support an average, and a handful of registrations dressed up as one is how bad advice starts. Plan against the documented figure and treat a fast approval as a good week rather than the rule.
A rejection resets the campaign clock only, since the profile and brand stay approved, so you resubmit into that same window.
Which Tier You Actually Need, and What It Costs
The instinct is to register at the largest tier because headroom feels safer. It costs more every month and buys a two truck shop nothing.
Daily throughput by brand type
| Brand type | Segments per day to T-Mobile | Who it fits |
|---|---|---|
| Sole Proprietor | 1,000 (about 3,000 all carriers) | No business tax ID |
| Low Volume Standard | Up to 2,000 (about 6,000 all) | Under 6,000 segments a day |
| Standard | From 2,000 to unlimited | High volume senders |
Those ceilings are published in Twilio's A2P 10DLC documentation. Run the arithmetic on your own volume. Twelve jobs a day with a confirmation, an on the way text, and a review request on each is about fifty segments.
Sole Proprietor is narrower than it sounds. Under the sole proprietor rules it is limited to senders with no business tax ID, so an EIN disqualifies you. That path registers exactly one number per campaign, and Twilio's status walkthrough says the one that gets registered is selected at random. The documentation on 30034 is blunt about the rest: put several 10DLC numbers in a sole proprietor campaign and only one is registered, while the additional numbers remain unregistered. If you are a sole proprietor sending from two numbers and one of them mysteriously works, that is the mechanism. Brand approval also depends on answering a passcode within 24 hours. Miss it and approval stalls rather than dies: you can go back to that screen and trigger the code again.
Twilio's published fee schedule puts brand registration at $4.50 one time for Sole Proprietor and Low Volume Standard, $46 for Standard with secondary vetting, plus $15 per campaign use case. Recurring, it is $2 a month on Sole Proprietor, $1.50 on Low Volume Standard, $10 on Standard, that $1.50 being the monthly fee on the mixed use case campaign a Low Volume Standard brand registers. Those are Twilio's own list prices, off Twilio's own fee page, for the registration itself. They are a carrier and registry cost, not a marketing fee, and nobody in that paragraph is us. The Campaign Registry raised two of them on August 1, 2025, brand registration from $4.00 and standard vetting from $40, which is why pages written before that quote you slightly less.
You will probably not pay those numbers, because most contractors do not send through Twilio directly. A platform sits in the middle and prices the same registration itself. One large platform's published schedule bundles registration, vetting and fast track at $24.50 for a sole proprietor or low volume standard brand, against the $19.50 that Twilio's own $4.50 and $15 come to for the same two line items. The gap is the platform's, not the carrier's, and it is small enough not to argue about. Ask your provider for their fee schedule rather than budgeting from Twilio's, and be more interested in whether they will actually run the registration than in the five dollars.
One structural point. When we run a registration it is one brand per business, on that business's own EIN, because a brand is an identity record tied to a tax ID. Park a client under an agency brand and the carrier is told the wrong company sent it. The five campaigns per brand ceiling in that same guide is not a limit a contractor reaches.
What to Write in the Boxes
This is where registrations die, and the most fixable part, because the reviewer checks a structure, not your prose. One large platform publishes the approved and rejected examples, and the failing shape is plain: this campaign sends messages to customers. That could describe a pizza chain or a payday lender.
Why it fails is spelled out in error code 30912: the description does not clearly explain who the sender is, who the recipients are, and why the recipients are receiving messages. The fix named alongside it is the part everyone skips. Describe the application layer. Name the system, software, or workflow that triggers the messages.
Write four beats in order: who sends, who receives, why, and what fires it. Messages are sent by Miller Plumbing to customers who booked a service appointment and opted in by text. Confirmations, arrival notices, and invoice reminders are triggered by our scheduling software when a job is booked, dispatched, or completed. The field will accept a 40 character minimum. The reviewer will not: the failing example above clears that floor and still gets rejected.
The message flow field asks one thing: how did this number get into your system. Name the mechanism and say where a stranger can see it. If the opt in sits behind a login, the published code table says code 30896 wants a hosted image link.
Sample messages have slots, promotional first and transactional second. A sample reading you have an upcoming appointment gets rejected for missing opt out language. Business name in, opt out at the end, no bit.ly or TinyUrl links.
“Nobody is grading your grammar. They are checking whether your description proves a machine sends the message, to people who asked for it.”
Which Rejections Actually Fire
The public code table runs to roughly sixty entries, which nobody reads end to end. The six below carry the most documentation, a proxy for frequency, not a measurement. Ranked by inference, and worth saying so.
- •Description reads as person to person. Add the application layer sentence naming the software that triggers the send.
- •Opt in is not publicly reachable. Give a live URL, or host an image of the login gated form.
- •Consent checkbox pre-checked or bundled. Code 30925 wants an unchecked box specific to SMS, 30923 wants opt in separate and optional.
- •Four elements missing near the checkbox: message type, frequency, a rates disclosure, and STOP instructions, per 30924.
- •Privacy policy missing a sentence. Code 30932 wants it stated that mobile information will not be shared with third parties for marketing.
- •Wrong use case. Lead generation is initial outreach, lead nurture is engagement with leads you have, and 30916 fires when samples do not match the box you ticked. All six sit in the published rejection codes.
Fixable, Which Is Most of Them
Every code above is a paperwork fix. Change the field, change the form, resubmit. Twilio's campaign troubleshooting page states there is no limit on resubmissions and the vetting fee is assessed only once per campaign, so a rejection costs time and nothing else. Delete it and start over and you buy that $15 fee twice. One exception, and it sits at the brand stage rather than the campaign stage: appealing a vetting score is $11, on the same Twilio fee schedule the costs above came from. Resubmitting a campaign is free. Arguing with the number the Registry gave your brand is not.
Terminal, Which Is Worth Knowing First
Some categories are not remediable. SHAFT content: sex, hate, alcohol, firearms and tobacco. Lending and debt relief are heavily restricted. Third party lead generation, texting numbers you bought, is non remediable under code 30951 in the same reference. The problem is the traffic, not the paperwork.
Consent, Including the Case Nobody Documents
Here is the case every guide skips. A customer filled in a form nine months ago and also read their number to your tech at the job site last week. Two consent records of different quality for one number, and nothing public says which attaches to which campaign.
The way out is not to rank them. The pattern we see is both paths converging on one artifact: an inbound text from the customer's own handset reading START. The form and the verbal ask become the prompt for that message rather than the evidence. What you hold is something the carrier's network carried and timestamped, not a screenshot you defend to a reviewer who was not there.
It matters because consent does not travel. Per the CTIA messaging principles, an opt in should apply only to the campaigns and the specific message sender it was obtained for, and senders are expected to obtain express written consent for marketing messages, a higher bar than service messages. What they ask you to retain, where applicable: timestamp, medium, a capture of what the customer saw, campaign, IP address, phone number, identity. Opt out runs the other way: honour stop, end, unsubscribe, cancel and quit, however the customer types them, unless a specific word would trigger an opt out the customer never intended.
One correction, because a lot of pages on this query get it wrong. The FCC one to one consent rule several of them still describe as in force is not in force. In January 2025 the Eleventh Circuit vacated it, one business day before it would have taken effect, and the effort to revive it was denied that April.
What That Does Not Mean for You
The rule that got vacated governed telemarketing calls and texts under the TCPA, not carrier registration, and the carriers never took their own consent requirements off the table.
Carriers and The Campaign Registry set their consent requirements by contract. Those are commercial terms for access to a private network. Federal regulation does not enter into it, and no appeals court has a say over what T-Mobile asks before carrying your traffic. Nothing there changed. The proof sits in the rejection reference: 30913, 30923, 30924, 30925, 30932 and 30896 all still reject campaigns today, and every one is a consent code.
Your obligation is what it was yesterday: documented consent, per brand and per campaign, retained with the fields above. What changed is a piece of federal telemarketing law that a lot of blogs describe wrongly. And that April denial was procedural rather than a ruling on the merits, so nobody should file it away as decided.
Common Questions
How long does A2P 10DLC registration actually take?
Long enough that you should start before you need it, and the honest answer is a range rather than a date. Twilio documents 72 hours or more for the customer profile, minutes to seven business days or more for the brand, and currently 10 to 15 days for the campaign, run in sequence. The first two are floors. The campaign figure is an estimate of a queue: our own campaign approvals have come back between 3 and 14 days, which is an operator observation across a small number of registrations rather than a benchmark, so it can land inside the documented window or well under it.
Why was my A2P 10DLC campaign rejected?
Most often because the description never names what triggers the messages. Reviewers reject descriptions that do not state who sends, who receives, and why, and the published fix is to describe the system that fires the send.
Do I need to register if I only text a few customers a day?
Yes. Registration is triggered by application to person traffic from a ten digit number, not by volume. Two texts a day out of your CRM are treated like two thousand.
What happens if I never register?
Your messages get filtered, and you are billed extra for the ones that were filtered. Sending from an unregistered 10DLC number carries additional carrier fees on top of the filtering, as the documentation linked above sets out. With no error state on your side, a business can run that way for months.
If my campaign is rejected, do I have to start over and pay again?
No, as long as you fix the existing campaign rather than deleting it. There is no limit on resubmissions and the vetting fee is assessed only once per campaign, so a rejection never sends you back to stage one.
Did the FCC consent rule change what I need for 10DLC?
No, and a lot of pages on this query say otherwise. The FCC one to one consent rule was vacated by the Eleventh Circuit in January 2025, one business day before it would have taken effect, and the effort to revive it was denied that April. What it governed was telemarketing calls and texts under the TCPA, not carrier registration. Carriers and The Campaign Registry set their own consent requirements by contract, as commercial terms for access to a private network, and none of those changed: 30913, 30923, 30924, 30925, 30932 and 30896 are all consent codes and all still reject campaigns today. Your obligation is what it was: documented consent, per brand and per campaign, retained with the fields the CTIA principles list.
Related reading
- AI automation for service businesses is what sits on top of a registered number. The follow-up sequences on that page are the traffic this registration exists to carry.
- Custom CRM and web builds covers the system that actually fires the messages, which is the part the campaign description has to name.
Registration is not a compliance tax on your texting. It is the difference between a follow up system that runs and one that reports success into a void, and every AI automation build that touches SMS sits on a registered number underneath. Two things worth knowing this week: which tier your volume puts you in, and whether your number was ever registered.
Ready to implement this in your business?
We'll build the system for you. Book a free strategy call and get a custom growth plan.
Book a Free Strategy Call →