What is A2P 10DLC? Business texting compliance explained
A2P 10DLC is the registration system U.S. wireless carriers require before a business can send application- to-person text messages over a standard 10-digit local number. This page explains what the letters mean, why the requirement exists, and how the two-step registration (brand, then campaign) fits together before your traffic is allowed to flow.
What A2P and 10DLC actually mean
A2P stands for application-to-person: a message generated by a business, application, or automated system and sent to a person, as opposed to person-to-person (P2P) texting between two individuals on their phones. Order confirmations, appointment reminders, two-factor codes, and marketing blasts are all A2P traffic, even when a human agent types the reply.
10DLC means that traffic goes out over a standard 10-digit long code, the same kind of phone number you would dial to reach a person, rather than a 5 or 6-digit short code. Short codes have their own (slower, more expensive) registration path; 10DLC exists because carriers wanted a way to let ordinary local and toll-free numbers carry legitimate business volume without opening the door to unregistered spam.
Why carriers require it
AT&T, T-Mobile, and Verizon jointly built A2P 10DLC through The Campaign Registry (TCR), an independent clearinghouse that every messaging provider touching U.S. carrier networks has to register through, us included. Before 10DLC existed, there was no reliable way for a carrier to tell a legitimate business sending order updates from a spam operation blasting the same volume from a similarly-shaped number. Both looked identical on the wire.
Registration ties a phone number's traffic to a known, verified legal entity (the brand) and a declared, reviewed purpose for that traffic (the campaign). That accountability is what lets carriers extend real throughput to registered senders while filtering or blocking unregistered bulk SMS outright. It is not something we invented or a gate we added for our own reasons: Twilio, Bandwidth, and every other carrier- facing platform enforces the same registration before a number can send at volume.
An unregistered 10-digit number can still send occasional, low-volume texts. What it cannot do is send at business scale: carriers throttle or filter unregistered traffic aggressively, and deliverability degrades fast once volume looks automated. Registration is what earns you a real, carrier-assigned throughput ceiling instead of whatever spam filters decide to let through.
Two-step registration: brand, then campaign
A2P 10DLC registration is always two steps, in order, and you cannot skip either one.
- Brand registration. The legal entity behind your traffic: your business name, entity type, tax ID (or an explicit sole-proprietor path that skips it), address, and contact details. This proves who is sending, once, regardless of how many campaigns you run afterward. See Register an A2P 10DLC brand.
- Campaign registration. What you will actually send and why: a declared use case (two- factor codes, delivery notifications, marketing, and so on), sample messages, and your opt-in flow. Campaigns are registered against an already-registered brand and can only send once approved. See A2P 10DLC campaign registration.
A brand answers "who is this," a campaign answers "what will they send." Carriers grant throughput per campaign, not per brand, which is why a single brand with multiple genuinely different traffic types (say, order notifications and marketing) typically registers a separate campaign for each rather than mixing them under one declared use case.
What happens if you skip it
Sending business SMS at volume over a number with no registered campaign behind it does not fail loudly. It fails quietly: messages get filtered, delayed, or silently dropped by carrier spam defenses, and deliverability degrades as volume grows, the opposite of what you would expect from a hard block. There is no workaround that avoids registration for real production traffic; the honest fix is to register a brand and a campaign before you rely on a number for anything customer-facing at scale.
Cost and timeline, briefly
Brand registration is a flat, one-time $9.00, the same for every entity type. Campaign registration carries a one-time $39.00 setup fee plus a monthly fee that varies by declared use case ($5.00 to $15.00), billed three months upfront at submission and monthly after that. Fees are charged to the card on file at the moment you submit and refunded automatically if the registry rejects the registration, so nothing is charged for a draft that never gets submitted. The full, line-item breakdown lives on the campaign registration guide's fee table, sourced from the same schedule your dashboard reads live.
Timeline is mostly a carrier and registry review process, not something we control end to end: brand identity verification through TCR is asynchronous, typically resolving within a business day or two, and campaign review timing depends on the declared use case and whether it requires additional carrier vetting.
A2P 10DLC vs. the Verify API
A2P 10DLC registration and the Verify API solve adjacent but distinct problems. A2P 10DLC is about registering the sender (your brand and campaign) so carriers allow your traffic through at all. Verify is a hosted one-time-code product built on top of registered, compliant sending infrastructure: you call two endpoints and we handle dispatch, fraud controls, and billing per successful verification. If you are building your own two-factor or notification flow on numbers you own and manage directly, you register a brand and campaign here. If you want one-time codes without owning the sending infrastructure yourself, Verify is the faster path. Many workspaces use both: a registered brand and campaign for their own outbound SMS, and Verify for anything that needs a codes-in, codes-out API.
Next steps
- Register an A2P 10DLC brand: entity types, the sole-proprietor path with no EIN, and what TCR's identity verification actually checks.
- A2P 10DLC campaign registration: every self-serve use case, the full fee table, and the message-content requirements carriers review.
- Verify API: a hosted alternative for one-time codes that does not require you to run your own registered sending campaign.