On Page Navigation
August 26, 2026
The texts stopped arriving. Not all of them, and not with an error, which is what makes this hard to work out from the inside. Your system reports every message as sent. Your account is billed for every message. Some customers get them and some do not, and there is no pattern you can see. That is what carrier filtering looks like from the sending end, and in the United States it is almost always a 10DLC registration problem rather than a fault in your software.
A2P means application to person, and the definition is broader than it sounds. US carriers treat every message sent through a messaging provider as application traffic, including one your salesperson typed by hand into a record. There is no version of sending through an API that counts as person to person. If it leaves a platform, it is A2P.
Ten digit long codes were designed for people texting each other, they went unregulated for years, and they were abused heavily enough that consumers stopped trusting SMS. 10DLC is the standard the carriers built in response. Registration has exactly two parts. A Brand says who is sending. A Campaign says how people opt in, how they opt out, how they get help, and what the messages are for.
Registering buys you two things: less filtering and more throughput. Not registering costs you two things: more filtering and additional carrier fees levied specifically on unregistered traffic. There is no third option where you quietly send a small volume and nobody notices. That was true four years ago. It is not true now, and if you are running texts out of a CRM that sends through Twilio then the registration is part of the setup, not an optional extra you can defer.
There are three brand types and choosing the wrong one is the difference between a working programme and a permanent ceiling. Sole Proprietor is for students, hobbyists and people trying the product for the first time. It does not require a business tax ID. It allows one campaign per brand, and it caps you at 1,000 SMS segments and MMS a day to T-Mobile, which Twilio puts at roughly 3,000 a day across US carriers.
Low-Volume Standard requires a tax ID, allows up to five campaigns, and doubles the T-Mobile figure to 2,000 segments and MMS a day, roughly 6,000 across carriers. There is one strange exception written into it: companies in the Russell 3000 Index registering as Low-Volume Standard can send 200,000 a day to T-Mobile. If you are a public company reading this, do not register as Standard by reflex.
Standard also requires a tax ID and also allows five campaigns, and its ceiling is stated as from 2,000 upward to unlimited depending on your trust score. That last phrase is the important one. Standard does not hand you a number. It hands you a scale, and where you land on it is decided by vetting rather than by asking.
Notice that every published limit is stated against T-Mobile specifically, with a cross-carrier figure offered as an approximation. That is not sloppiness. Each carrier sets its own daily limits, T-Mobile publishes theirs, and the others do not in the same way. Plan against the T-Mobile number and treat the cross-carrier total as a guide.
Each tax ID may be used to register up to five Standard or Low-Volume Standard brands. Go past five and the additional brands will still register successfully, which is the trap, but their campaigns may be rejected during manual vetting unless you can present a clear and valid business reason for exceeding the limit.
This catches two kinds of organisation. Agencies registering on behalf of clients under their own tax ID, which they should not be doing anyway. And holding companies with a dozen trading names running under one registered entity. In both cases the brands go through, everything looks fine for a week, and then campaigns start getting rejected with a reason that does not obviously point at the brand count.
The five campaign limit per brand has the same escape hatch and the same shape. You can exceed it with a documented reason. You cannot exceed it by accident and expect it to hold.
Every daily limit above is expressed in segments, and a segment is not a message. Plain GSM-7 text fits 160 characters in one segment, dropping to 153 per segment once a message is long enough to be split and concatenated. That much most people know.
What catches people is that a single character outside the GSM-7 set converts the entire message to UCS-2 encoding, and a UCS-2 segment holds 70 characters, or 67 when concatenated. A curly apostrophe pasted in from a word processor does it. An emoji does it. One smart quote in a template can more than double what every send costs you against a daily cap you did not think you were near. Twilio publishes a segment calculator and it is worth pasting your actual templates into it before you build a schedule around them.
This matters most for the kind of bulk send that makes SMS worth having in the first place. A hundred recipients on a two segment message is two hundred segments, and if a stray character makes it four segments it is four hundred. Anything that texts a filtered list from a record, which is the whole point of putting SMS inside the system that already holds the contacts, should be planned in segments from the start.
Registration is not free and the structure is worth understanding even where the numbers are not. There is a one-off brand registration and vetting charge, with a higher tier of vetting available for brands that want maximum throughput. There is a separate campaign charge, and that one recurs monthly rather than being paid once. Campaign charges vary by use case, so a low-volume mixed campaign costs less per month than a full standard one. On top of both sit carrier pass-through fees, which are set by the carriers rather than by your provider and which have been revised more than once this year alone.
We are not printing the current figures here, deliberately. Twilio publishes them in a support article that renders in the browser rather than in the page source, so we cannot verify a number today and be confident it is still the number when you read this. Quoting a stale registration fee would be worse than quoting none. Read it from the provider on the day you register, and budget for the monthly campaign line rather than treating the whole thing as a setup cost.
The reason this is worth doing properly is that the failure mode is silent. A filtered message is accepted by the API, given a message SID, billed to your account and never delivered. Nothing in your logs says otherwise. The first evidence you get is a customer saying they never heard from you, weeks after it started.
If that sounds familiar it is the same shape as email deliverability, where a message can be accepted, queued and quietly dropped without anything visible at the sending end. The diagnosis technique is the same too: stop trusting your own logs and go and read what the receiving side records. Anyone who has worked through why authenticated email still gets rejected will recognise the pattern immediately.
People approach the campaign form as paperwork and it is not. It is a written description of how a real human ends up on your list, and it is checked against a real website. Twilio states the campaign covers how end users opt in, how they opt out, how they get help, and what the messages are for. Everything that gets rejected gets rejected on the first of those four.
The practical shape of it is this. Whatever mechanism you describe has to exist and be findable. If you say people opt in through a form on your website, the reviewer will go and look at the form. If the consent language is not next to the field where the phone number is typed, or the form has moved, or the tick box is pre-ticked, that is where the rejection comes from. It is not a judgement about your business. It is a mismatch between a sentence you wrote and a page somebody loaded.
This is also the reason importing a contact list you inherited is a bad start. Consent is a property of how each number arrived, and a list that came with an acquisition or a spreadsheet from a trade show usually cannot document that for any of them. Getting the mechanism right first and letting the list build is slower and it is the version that survives review.
Opt-out and help are two of the four things the campaign has to describe, and they are also two things your system has to actually do. Carriers handle the standard opt-out keywords at the network level, which creates a dangerous impression that it is handled for you. It is not. Your platform still has to record that the person opted out and stop generating sends, because a number that keeps receiving after STOP is a complaint waiting to happen and complaints move a trust score downward.
HELP is the one people forget entirely. A reply to HELP should identify the business by name and give a way to reach a human. If your automation cannot answer it, that is a gap worth closing before you register rather than after, and on Zoho that usually means a workflow rather than a person. Anyone writing that logic is going to end up in the scripting language the automations are built in sooner or later.
Campaign vetting includes manual review, which means the sample messages you supply are read by somebody deciding whether they match the use case you claimed. Placeholder text does not pass. Neither does a sample that describes a marketing message while the use case says customer care.
Write the samples as the messages you will actually send, with your business name in them, and with opt-out wording present on the messages where a recipient would reasonably expect it. Then go and check that the templates in your system match the samples you submitted, because those two drift apart the moment somebody edits a template six weeks later. That is a real and boring risk in any setup where the texts are generated from records, which is most of them, including invoice reminders that send themselves.
Campaigns are registered under a use case and there are three families of them. Standard use cases cover the ordinary business categories. Low-Volume Mixed is a deliberate compromise for senders below roughly two thousand segments a day on T-Mobile, offering less throughput for a lower monthly fee, and it is the right answer for far more small businesses than choose it. Special use cases cover things like non-profits and emergency services, and they have their own registration route.
Separately there is a published list of forbidden message categories that no amount of consent will get past. The industry shorthand for the core of it is SHAFT, covering sex, hate, alcohol, firearms and tobacco, and the full list is longer and includes things like high-risk financial offers, third-party debt collection and cannabis, which remains blocked at the carrier level regardless of state law. Read the list before you design the programme, not after the rejection.
If your business is adjacent to one of those categories rather than in it, the distinction is worth making explicitly in the campaign description. A recruitment agency texting candidates about shifts is not doing anything on the list, but a reviewer skimming quickly might not see that unless you say it. The same care pays off for anything that texts about money or medical appointments, which covers a lot of what messaging a shortlist from an applicant record is used for.
Two exits exist and both get missed. The first is that toll-free numbers and short codes sit outside the 10DLC system entirely. They have their own verification process with its own rules, and for some sending patterns a verified toll-free number is a simpler answer than a brand and a campaign. It is not free of process, but it is a different process.
The second is narrower and cleaner. If the only thing you send is verification codes, Twilio points you at their Verify product instead, and you skip 10DLC registration altogether. A business that texts nothing but one-time passcodes has been known to spend weeks registering a campaign it never needed. Work out which of your message types are genuinely in scope before you start, and if the answer is one type, check whether that type has its own door.
Approval is not the end of it. Standard brand throughput is assigned from a trust score rather than requested, so if you need more you improve the inputs and get re-vetted rather than filing a ticket. Enhanced vetting exists for exactly that reason and it costs more than the standard kind.
Carrier pass-through fees also move underneath you. They are set by the carriers, not by your messaging provider, and they were revised by more than one operator during 2026 alone. That is a line item to re-read once a year rather than set and forget, and it is a reason to keep the messaging spend visible next to the rest of the stack rather than buried. Everything we build in this area lives in the product catalogue with its own pricing for the same reason.
One operational habit is worth adopting on day one. Keep the campaign description, the sample messages and the live templates in one place where somebody can compare them. In practice that means the same system that holds the contacts and sends the messages, which is the argument for running SMS inside the platform that already holds the customer record rather than beside it in a separate tool.
If you send a handful of texts a month, all of them one to one, all of them typed on a phone by a person who already knows the recipient, none of this applies to you and setting it up would be pure overhead. If you send only outside the United States, 10DLC is not your problem and the equivalent rules in your market will be different. And if your consent record is genuinely poor, registration is the wrong first move: fixing how numbers arrive comes first, because a campaign approved on a description you cannot honour is worse than no campaign.
For everyone else it is a week of careful paperwork that pays for itself the first time a message reaches somebody it would otherwise not have. Pick the brand type honestly, describe the consent process you actually run, write samples you will really send, and budget the campaign fee monthly. If the texts are going out of a Zoho record, our two way Twilio integration is what sits between the record and the carrier, and the registration above is the part that decides whether anything it sends arrives.