A2P 10DLC is the carrier registration system that lets businesses send automated text messages from a standard local 10-digit number, and since February 2025 AT&T, T-Mobile, and Verizon block SMS to US numbers from any unregistered local number. If you’ve set up a GoHighLevel sub-account and your SMS messages are silently failing, or you’ve hit a wall trying to turn on two-way texting, the reason is almost always the same three letters: A2P. This guide covers exactly what A2P 10DLC is, why it exists, what it costs, how long it takes, and how the pieces fit together inside GoHighLevel specifically — without the jargon-heavy explanations most carrier documentation buries this in.
What does A2P 10DLC stand for?
A2P stands for Application-to-Person — messaging sent from a business system (like GoHighLevel) to a person’s phone, as opposed to P2P (person-to-person) texting between two individuals. 10DLC stands for 10-Digit Long Code — a standard local-format phone number, the kind that looks like any normal US or Canadian number, as opposed to a short code (5–6 digits) or a toll-free number.
Put together, A2P 10DLC is the registration system US and Canadian carriers built so that businesses sending automated or bulk text messages from a regular-looking local number can be identified, vetted, and trusted — rather than treated as indistinguishable from spam.
Feb 2025
When major US carriers began blocking all SMS/MMS from unregistered 10DLC numbers
2 steps
Brand registration, then Campaign registration — both required before messages send
3 carriers
AT&T, T-Mobile, and Verizon jointly enforce A2P 10DLC compliance
Why this exists in the first place
Text messaging has one of the highest open rates of any marketing channel, and that made it an attractive target for spam long before A2P 10DLC existed. Carriers historically had very little visibility into who was sending bulk business SMS from ordinary-looking local numbers, which made it easy for bad actors to blend in with legitimate businesses.
The Campaign Registry (TCR) — the organization that actually processes A2P 10DLC registrations on behalf of the carriers — was built to fix that blind spot. Every business that wants to send automated SMS from a local number now identifies itself (the Brand) and declares what kind of messages it sends and why (the Campaign), before a single message goes out. Carriers use that registration to decide how much to trust — and how fast to deliver — your traffic.
This isn’t optional or “best practice” anymore — it’s an enforced network requirement. Since February 2025, AT&T, T-Mobile, and Verizon block SMS and MMS traffic sent to US numbers from any unregistered 10-digit local number outright, regardless of message content or your own opt-in practices (GHL Scale Up, 2026 A2P 10DLC guide).
The two things you’re actually registering
A2P 10DLC registration has two distinct, sequential parts, and understanding the difference is the single most useful thing you can take from this guide before attempting registration yourself.
1. Brand registration
Your Brand is your business’s identity as far as carriers are concerned — your legal business name, EIN (or SSN for sole proprietors), address, website, and industry vertical. This is a one-time registration per business entity. Get any field here wrong — a legal name that doesn’t exactly match your EIN records, an address that doesn’t match your official filing — and it’s the single most common source of rejection.
2. Campaign registration
Your Campaign describes what you’re actually sending: the use case (customer care, appointment reminders, marketing, mixed, etc.), sample messages, your opt-in method, and a link to your privacy policy. A Brand can have multiple Campaigns, though most small businesses on GoHighLevel only need one. This is the step where most registration failures actually happen, because it requires more specific, carrier-scrutinized detail than Brand registration does.
The three places A2P 10DLC setups go wrong, and what to check
| Stage | What gets checked | Typical problem |
|---|---|---|
| Brand registration | Legal name, EIN or SSN, address, website, vertical | Details that don't exactly match official tax records |
| Campaign registration | Use case, sample messages, opt-in method, privacy policy | Vague samples or an opt-in description that doesn't match reality (the step where most failures occur) |
| Number-to-campaign linking | Each sending number is attached to the approved campaign | Campaign approved but not linked, so messages still fail |
Twilio’s own documentation confirms this pattern directly: “most application failures occur in step 3 — campaign registration,” with brand approval typically clearing within minutes of a clean submission (Twilio, A2P 10DLC Campaign Registration docs).
How much does A2P 10DLC cost?
A2P 10DLC costs $4.50–$46 in one-time brand registration, a $15 one-time campaign vetting fee, a $1.50–$4 monthly campaign fee for standard use cases, and roughly $0.003–$0.005 per message in carrier surcharges. The headline fees are small individually, but they stack, and carrier surcharges are ongoing rather than one-time. Here’s the realistic full picture:
Brand registration fee (one-time)
- Sole Proprietor / Low-Volume Standard
- $4.50
- Standard Brand
- $46 (includes secondary vetting)
Campaigns per brand
- Sole Proprietor / Low-Volume Standard
- 1
- Standard Brand
- Multiple
Numbers per campaign
- Sole Proprietor / Low-Volume Standard
- 1
- Standard Brand
- Multiple
Requires EIN
- Sole Proprietor / Low-Volume Standard
- Standard Brand
Default throughput
- Sole Proprietor / Low-Volume Standard
- Low-volume
- Standard Brand
- Higher, trust-score based
| Sole Proprietor / Low-Volume Standard | Standard Brand | |
|---|---|---|
| Brand registration fee (one-time) | $4.50 | $46 (includes secondary vetting) |
| Campaigns per brand | 1 | Multiple |
| Numbers per campaign | 1 | Multiple |
| Requires EIN | ||
| Default throughput | Low-volume | Higher, trust-score based |
On top of brand fees: campaign use-case registration carries a $15 one-time vetting fee, plus a recurring monthly campaign fee — typically $1.50–$4/month for standard use cases like appointment reminders and customer care, with marketing-use campaigns priced higher. Then there are ongoing per-message carrier surcharges of roughly $0.003–$0.005 from AT&T, T-Mobile, and Verizon on every message sent, regardless of your platform (Twilio Support, A2P 10DLC pricing and fees; GHL Scale Up, 2026 A2P fee breakdown).
A2P 10DLC fees at a glance (2026)
| Fee | Amount | How often |
|---|---|---|
| Brand registration — Sole Proprietor / Low-Volume Standard | $4.50 | One-time |
| Brand registration — Standard (includes secondary vetting) | $46 | One-time |
| Campaign vetting fee | $15 | One-time (not recharged when resubmitting a rejected campaign) |
| Campaign fee — standard use cases | $1.50–$4 | Monthly (marketing use cases priced higher) |
| Carrier surcharges (AT&T, T-Mobile, Verizon) | ~$0.003–$0.005 | Per message sent |
| Item | Value |
|---|---|
| Standard brand (includes secondary vetting) | 46 |
| Campaign vetting fee | 15 |
| Sole Proprietor / Low-Volume Standard brand | 4.5 |
Source: Twilio Support, A2P 10DLC pricing and fees
Carrier pass-through surcharges are adjusted from time to time, so confirm current rates before budgeting. At roughly $0.003–$0.005 per message, a business sending about 10,000 messages a month should budget approximately $30–$50/month in carrier surcharges alone, on top of registration and platform fees — a detail that’s easy to miss when only looking at the headline “$4.50 to register” figure.
We compare these fees against toll-free verification’s currently free registration — including rough first-year costs at different sending volumes — in our toll-free vs. A2P 10DLC cost comparison.
How long does A2P 10DLC approval take?
A2P 10DLC Brand approval often takes just minutes for a clean submission, while Campaign approval typically takes 1–5 business days — longer if carriers flag it for review or it’s rejected and resubmitted. This is one of the most common points of frustration, mostly because expectations get set by outdated or overly optimistic marketing copy. Brand approval is often genuinely fast — frequently within minutes for a clean submission. Campaign approval is the slower, less predictable step.
Minutes
Typical Brand approval time for an accurate, clean submission
1–5 days
Typical Campaign approval window once submitted correctly
Campaigns flagged for additional carrier review, or rejected and resubmitted, can push the full process out considerably longer — some businesses report waiting several weeks total when a rejection cycle is involved. The single biggest lever you have over your own timeline is submitting a clean, complete, accurate registration the first time, which is exactly why the step-by-step GoHighLevel registration walkthrough and rejection reasons and fixes guide in this series exist as separate, focused pieces.
A2P 10DLC vs. toll-free verification
A2P 10DLC isn’t the only way to get a business number approved for SMS in GoHighLevel. Toll-free verification is a separate, genuinely different path — and for some businesses, it’s the better starting choice.
Registration fee
- A2P 10DLC (local number)
- $4.50–$46 one-time + monthly
- Toll-Free Verification
- Currently free
Approval speed
- A2P 10DLC (local number)
- Days (weeks if rejected)
- Toll-Free Verification
- As fast as 2 days (not guaranteed)
Requires Brand + Campaign
- A2P 10DLC (local number)
- Toll-Free Verification
Number appearance
- A2P 10DLC (local number)
- Local-looking
- Toll-Free Verification
- Looks like a 1-800 business line
Default throughput
- A2P 10DLC (local number)
- Trust-score based, can scale up
- Toll-Free Verification
- Fixed, typically 3 MPS
Works without an EIN
- A2P 10DLC (local number)
- Yes, via Sole Proprietor
- Toll-Free Verification
- Yes
| A2P 10DLC (local number) | Toll-Free Verification | |
|---|---|---|
| Registration fee | $4.50–$46 one-time + monthly | Currently free |
| Approval speed | Days (weeks if rejected) | As fast as 2 days (not guaranteed) |
| Requires Brand + Campaign | ||
| Number appearance | Local-looking | Looks like a 1-800 business line |
| Default throughput | Trust-score based, can scale up | Fixed, typically 3 MPS |
| Works without an EIN | Yes, via Sole Proprietor | Yes |
The general rule of thumb: A2P 10DLC with a local number is the better long-term choice for most GoHighLevel service businesses, because it looks like a normal local number to recipients and its throughput can scale as your trust score improves. Toll-free is the right call when you need to start sending faster than 10DLC’s review window allows, or your business already conditions customers to expect a 1-800-style number (GHL Scale Up, toll-free vs. A2P 10DLC comparison). We go deeper on this decision, including a scenario-by-scenario breakdown, in our dedicated toll-free vs. A2P 10DLC guide.
How this actually works inside GoHighLevel
GoHighLevel builds its A2P registration flow on top of Twilio’s underlying infrastructure, surfaced through its own Trust Center interface rather than requiring you to touch the Twilio console directly. In practice, that means:
- Navigate to Settings → Phone Numbers → Trust Center inside the relevant sub-account.
- Complete Brand registration — your legal business details, matched exactly to your EIN or SSN records.
- Once your Brand is approved, register a Campaign — selecting a use case, writing sample messages, and linking your opt-in method and privacy policy.
- Once the Campaign is approved, link it to the specific phone number(s) that will actually send messages.
That last step trips people up more often than it should: an approved campaign that isn’t correctly linked to the number actively sending messages will still fail to deliver, even though registration technically succeeded. We walk through this entire flow, screen by screen, in our step-by-step GoHighLevel A2P registration guide.
If you run an agency managing A2P registration across multiple client sub-accounts, note that each sub-account generally needs its own Brand and Campaign registration — this isn’t a one-time setup you complete once at the agency level and inherit across every client account. It’s the kind of repeatable, detail-heavy task many agencies hand to a dedicated GoHighLevel VA.
The faster path: Pre-Built Campaign Registration with a Chat Widget
As of 2026, GoHighLevel offers a genuinely different — and often faster — way to register a Campaign: the Pre-Built A2P Campaign (Chat Widget) flow. Instead of writing your own sample messages, opt-in description, and disclosure language, you install the LeadConnector chat widget on your website as your sole SMS opt-in method, and GoHighLevel auto-generates all the carrier-facing compliance language for you.
This is a newer option, and it’s genuinely different from the traditional Manual Setup covered throughout the rest of this guide — as of this update, GoHighLevel’s Trust Center now defaults new Campaign registrations to this Chat Widget flow automatically once your Brand is approved, with a “Switch to manual setup” link if you’d rather use the traditional path (HighLevel Changelog, New A2P Campaign Flow: Default to Chat Widget).
What it actually requires: the chat widget code embedded and live on your website before carrier approval, a website compliance checklist (live site, published terms/privacy policy, visible business contact info, no affiliate/lead-buying language), and — critically — no other SMS consent checkboxes anywhere else on your site. Carriers require the chat widget to be the only form collecting SMS consent; leaving a checkbox on a separate contact, lead-capture, or appointment form can cause rejection (HighLevel Support, Pre-Built A2P Campaign Registration with Chat Widget).
Approval speed: GoHighLevel’s own documentation states average approval for widget-first submissions runs under 48 hours — meaningfully faster than the several-business-day window typical of Manual Setup — because the locked, pre-approved compliance language removes most of what normally triggers a carrier review flag. In practice, plan for a few business days rather than assuming the fastest-case number every time.
Who it’s actually for: as of 2026, most small GoHighLevel accounts. The Chat Widget flow supports Marketing/Promotional, Transactional, and Mixed message types, with separate consent checkboxes and locked disclosures, and it sets the campaign use case automatically — for example, Low Volume Mixed for standard accounts. Sole Proprietor accounts are supported too: GoHighLevel auto-detects them, pre-selects the Sole Proprietor use case, and lets you choose Marketing/Promotional or Transactional (HighLevel changelog). The trade-offs that remain: the disclosure language is locked (no editing beyond widget color and header text), custom form fields and campaign cloning aren’t available, and the widget must be your only SMS consent point.
<48 hrs
GoHighLevel-stated average approval time for widget-first submissions
3 message types
Marketing/Promotional, Transactional, or Mixed — Sole Proprietor accounts supported too
We cover the full step-by-step widget setup, and exactly who should (and shouldn’t) use it, in our GoHighLevel A2P step-by-step guide.
Common mistakes that cause rejections or delivery failures
A handful of mistakes account for the overwhelming majority of A2P problems we see in GoHighLevel accounts:
Legal name, EIN, or address mismatches. Your Brand submission needs to match your official tax records exactly — not your DBA, not a shortened version of your business name, not an old address.
Prohibited or restricted use cases. Certain categories are outright disallowed for A2P SMS, including debt relief/consolidation/forgiveness programs, promotional lending and investment content, and marketing campaigns built purely around cold lead acquisition rather than existing customer relationships.
Vague or generic sample messages. Carriers vet the actual sample messages you submit. Generic placeholder text (“Sample message here”) gets flagged; specific, realistic examples of what you’ll actually send get approved.
Missing or mismatched opt-in disclosure. Your registration needs to describe, accurately, how contacts consented to receive texts — and that description needs to match what actually happens on your website or intake forms.
Using a shortened URL in message content. Public URL shorteners (bit.ly, tinyurl.com, and similar) are flagged as high-risk by carrier spam filters — T-Mobile blocks URL cycling and multiple redirects outright, and AT&T blocks public shorteners entirely (GHL Scale Up, 2026 A2P 10DLC guide).
If you’ve already been rejected once, our dedicated rejection reasons and fixes guide walks through each rejection code and exactly what to change before resubmitting.
Who needs the Sole Proprietor path
Not every business has an EIN, and A2P 10DLC accounts for that with a dedicated Sole Proprietor brand type — built for individuals and small operations in the US and Canada operating under their own name, without a formal business entity.
1
Campaign allowed per Sole Proprietor brand
1
Phone number allowed per campaign
The trade-off is real: Sole Proprietor registration is genuinely limited — one campaign, one number, lower default throughput — but it’s a legitimate, fully compliant path for solo operators and freelancers who don’t have (and don’t need) a formal business entity yet. Full details, including the SSN-in-place-of-EIN requirement and the public-email-domain rule that trips a lot of people up, are in our Sole Proprietor registration guide.
A2P 10DLC glossary: the terms you’ll actually run into
The registration flow is full of acronyms that get thrown around without explanation. A quick reference so none of them slow you down:
TCR (The Campaign Registry) — the independent organization, jointly backed by the carriers, that actually reviews and approves Brand and Campaign submissions. Neither GoHighLevel nor Twilio makes the approval decision themselves; both submit your registration to TCR.
Trust Score — a carrier-assigned score based on your Brand’s verification level and sending history, used to determine your default message throughput. A higher trust score generally means faster, higher-volume sending is allowed without additional review.
Throughput / MPS (Messages Per Second) — the rate at which carriers will accept your outbound messages. Unregistered or low-trust-score senders get throttled hard; higher-trust Standard brands can scale to meaningfully higher throughput over time.
Vetting — a secondary, more detailed review some Standard brands undergo (either voluntarily, for a fee, or because a carrier requires it) to raise trust score and throughput ceiling beyond the default.
Use case — the specific category of messaging your Campaign is registered for (customer care, mixed, marketing, account notifications, etc.), declared at Campaign registration and expected to match your actual traffic going forward.
How this differs by message type
Not every text you send carries the same compliance weight, and understanding the distinction helps when you’re selecting a Campaign use case:
Transactional / account notification messages — appointment confirmations, order updates, service reminders. These are generally viewed favorably by carriers because the recipient has an existing, direct relationship with the business and an obvious reason to expect the message.
Conversational messages — two-way replies in an ongoing thread, like a customer texting back to confirm or reschedule. These typically fall under a “customer care” or “mixed” use case and carry relatively low compliance risk when the thread originated from a legitimate business interaction.
Marketing messages — promotions, announcements, and campaigns aimed at driving a purchase or booking. These carry the most scrutiny, generally cost more per message in campaign fees, and require the clearest opt-in documentation, since they’re the message type most associated with historical spam abuse.
A campaign registered as “customer care” that starts sending marketing-style promotional blasts is one of the more common ways a previously approved campaign gets flagged after the fact — not just at initial registration. If your message mix changes meaningfully after approval, it’s worth registering an additional, correctly scoped campaign rather than letting one campaign’s traffic drift from what it was approved for.
A worked example: registering a local home services business
Concrete numbers make this easier to plan around than abstract ranges. Take a typical single-location home services business (a plumber, electrician, HVAC company, or similar) running appointment reminders and review requests through GoHighLevel automations:
They’d register as a Standard Brand (assuming they have an EIN, which most established local businesses do), submit a single Campaign under a “Mixed” or “Customer Care” use case covering both appointment reminders and review-request texts, and expect: roughly $46 for brand registration, $15 for campaign vetting, a small monthly campaign fee in the $1.50–$4 range, and Brand-to-Campaign-approved status within about a week if the submission is clean on the first pass. Those fees come to about $62.50–$65 in the first month; add carrier surcharges at $0.003–$0.005 per message (about $3–$50 for anywhere from 1,000 to 10,000 messages), and total realistic first-month cost for a single-location business lands somewhere in the $65–$115 range once everything is accounted for — a one-time cost that’s easy to underestimate if you only look at the individual line-item fees in isolation.
A solo operator without an EIN — a handyman working under their own name, for example — would instead register as a Sole Proprietor, paying roughly $4.50 for brand registration instead of $46, accepting the one-campaign, one-number, lower-throughput limitations that come with it.
How this compares across platforms
A2P 10DLC itself isn’t a GoHighLevel-specific or Twilio-specific system — it’s a carrier-level, industry-wide requirement that applies no matter which platform sits on top of it. What differs between platforms is the interface and how much of the process is abstracted away from you:
Underlying registry
- GoHighLevel (Trust Center)
- The Campaign Registry (TCR)
- Twilio (native Console)
- The Campaign Registry (TCR)
Interface complexity
- GoHighLevel (Trust Center)
- Simplified, GHL-branded flow
- Twilio (native Console)
- More granular — Customer Profile, Messaging Service, Brand, Campaign as separate objects
Number-to-campaign linking
- GoHighLevel (Trust Center)
- Manual step inside Trust Center
- Twilio (native Console)
- Manual step inside Messaging Service config
Fees
- GoHighLevel (Trust Center)
- Same underlying TCR/carrier fees
- Twilio (native Console)
- Same underlying TCR/carrier fees
| GoHighLevel (Trust Center) | Twilio (native Console) | |
|---|---|---|
| Underlying registry | The Campaign Registry (TCR) | The Campaign Registry (TCR) |
| Interface complexity | Simplified, GHL-branded flow | More granular — Customer Profile, Messaging Service, Brand, Campaign as separate objects |
| Number-to-campaign linking | Manual step inside Trust Center | Manual step inside Messaging Service config |
| Fees | Same underlying TCR/carrier fees | Same underlying TCR/carrier fees |
If you’re evaluating whether to manage this inside GoHighLevel or directly in Twilio, the honest answer for most service businesses is that GoHighLevel’s Trust Center is the easier path precisely because it removes the extra Twilio-native objects (Customer Profile, Messaging Service) from the equation — those only matter if you’re building a custom messaging integration outside GHL entirely.
Staying compliant after approval
A2P 10DLC compliance isn’t a box you check once and forget. Carriers continue to monitor sending patterns after approval — high complaint rates, sudden volume spikes, or content that drifts from your registered use case can all trigger renewed scrutiny or throttling, even on a previously approved campaign (our guide to GoHighLevel SMS carrier filtering covers how to diagnose it). A few habits that keep a previously approved campaign healthy long-term:
- Honor opt-outs immediately and completely. A contact who replies STOP should never receive another message from that campaign — carriers actively monitor complaint and opt-out ratios as an ongoing trust signal, not just at initial review.
- Keep sending volume roughly consistent. A sudden, large spike in message volume — say, a one-time blast to a list you haven’t texted before — is a common trigger for renewed carrier scrutiny, even from an already-approved campaign.
- Keep content aligned with your registered use case. If your business adds a new type of messaging (a new marketing campaign, a new automated sequence), it’s worth registering it under the correct use case rather than folding it into an existing campaign that was approved for something else.
- Refresh your registration if your business details change. A legal name change, new address, or new EIN after a merger or restructuring should be reflected in your Brand registration — carriers can flag inconsistencies between what’s registered and what’s publicly discoverable about your business.
Building sustainable, compliant sending habits from day one is meaningfully easier than trying to repair a damaged sender reputation later, since a throttled or suspended campaign can take longer to restore than it took to approve in the first place.
Bringing it together
A2P 10DLC is now a mandatory, enforced requirement for any US-facing business sending SMS from a local GoHighLevel number — not a compliance nicety you can defer. The process breaks into two clear steps (Brand, then Campaign), costs a modest amount to register plus small ongoing carrier surcharges, and typically takes anywhere from a few days to a couple of weeks depending on how clean your first submission is. Get the Brand details exact, the Campaign use case and sample messages specific and honest, and the number-to-campaign linking correct, and most of what makes this process painful for other businesses simply won’t apply to yours.
This is the first piece in a full A2P 10DLC series — from step-by-step registration walkthroughs for both GoHighLevel and Twilio, to fixing rejections, to choosing between toll-free and 10DLC — all linked throughout this guide and collected in our A2P & SMS compliance blog category.
Written by the Hireaghlva GoHighLevel team
We build and run GoHighLevel accounts, automations, dashboards, and websites for agencies and local businesses across the US and Canada. This guide reflects that hands-on work, with sources cited inline where we reference outside data. Last reviewed September 13, 2026.