What Is A2P 10DLC? The Complete 2026 Guide for GoHighLevel Users
A2P 10DLC explained in plain terms — what it is, why every GoHighLevel account needs it, what it costs, how long approval takes, and how it compares to toll-free verification.
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 A2P 10DLC actually means
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.
Where A2P 10DLC registration attempts fail (relative frequency)
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).
What it costs, realistically
The headline fees are small individually, but they stack, and carrier surcharges are ongoing rather than one-time. Here’s the realistic full picture:
| 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).
T-Mobile raised its per-message pass-through surcharge again in January 2026. A business sending roughly 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’ve broken the full cost picture — including how these fees show up inside a GoHighLevel sub-account specifically — down in more detail in our A2P 10DLC fees and cost breakdown guide.
How long approval actually takes
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 approval best practices guide and rejection reasons and fixes guide in this series exist as separate, focused pieces.
Don't want to navigate this yourself?
We handle A2P 10DLC brand and campaign registration as part of GoHighLevel sub-account setup — done right the first time, so your SMS actually delivers.
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.
| 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.
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, expect somewhere in the 2–4 day range rather than assuming the fastest-case number every time.
Who it’s actually for: it only supports two simplified use cases — Marketing/Promotional or Informational/Non-Marketing — and it is not available for Mixed-use-case campaigns or Sole Proprietor brands, which rules it out for a meaningful share of small GoHighLevel accounts. It also locks you out of custom form fields, campaign cloning, and any editing of the disclosure language beyond widget color and header text.
<48 hrs
GoHighLevel-stated average approval time for widget-first submissions
2 use cases only
Marketing/Promotional or Informational/Non-Marketing — no Mixed, no Sole Proprietor
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:
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. Total realistic first-month cost, including registration and normal sending volume for a single-location business, typically lands somewhere in the $70–$120 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:
| 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. 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 the exact fee breakdown — all linked throughout this guide and collected in our A2P & SMS compliance blog category.
Frequently asked questions
Do I legally have to register for A2P 10DLC to send SMS from GoHighLevel?
Yes, in practice. Since February 2025, AT&T, T-Mobile, and Verizon block SMS and MMS traffic sent to US numbers from any 10-digit local number that isn't tied to a registered A2P campaign — so an unregistered GoHighLevel number simply won't deliver messages to most US mobile subscribers, regardless of your own opt-in practices.
How much does A2P 10DLC registration actually cost?
Brand registration is a one-time fee — around $4.50 for Sole Proprietor/Low-Volume Standard, or $46 for a Standard brand (which includes secondary vetting). Campaign registration adds a one-time $15 vetting fee plus a small recurring monthly fee, typically $1.50–$4/month for standard use cases. Carrier surcharges of roughly $0.003–$0.005 per message apply on top, billed per message sent.
How long does A2P 10DLC approval take?
Brand approval is often near-instant to a few minutes for a clean, accurate submission. Campaign approval typically takes a few business days, though it can stretch to 1–2 weeks if carriers flag anything for additional review, and considerably longer if the campaign is rejected and needs to be corrected and resubmitted.
What's the difference between A2P 10DLC and toll-free verification?
A2P 10DLC registers a local-looking 10-digit number through Brand and Campaign registration with The Campaign Registry, and generally offers better long-term throughput. Toll-free verification is a separate, simpler process for 1-800-style numbers — currently free, often approved faster, but capped at a fixed default throughput and without the local-number look A2P 10DLC provides.
Can I register for A2P 10DLC without an EIN?
Yes — the Sole Proprietor brand type exists specifically for individuals and small businesses without a formal business entity or EIN, using an SSN instead. It comes with real limitations (one campaign per brand, one number per campaign, lower throughput), covered in detail in our sole proprietor registration guide.
What happens if my A2P campaign gets rejected?
You review the specific rejection reason, correct every flagged issue (not just the one named), and resubmit — there's no additional vetting fee charged for resubmitting a rejected campaign. Deleting and recreating a new campaign from scratch, instead of editing and resubmitting, can trigger the vetting fee a second time.
What is the Pre-Built A2P Campaign (Chat Widget) registration option?
It's a streamlined GoHighLevel campaign registration path that installs the LeadConnector chat widget on your website as your only SMS opt-in method, auto-generates carrier-approved disclosure language, and skips manual sample-message writing entirely. GoHighLevel's own documentation cites average approval in under 48 hours for widget-first submissions, though real-world approval commonly runs closer to 2–4 days. It's only available for Marketing-only or Informational-only use cases — not Mixed campaigns, and not Sole Proprietor brands.
Keep reading
More from the blog
WordPress vs. Astro for Seattle Law Firm Websites: Which Actually Ranks Faster
A practical comparison for Seattle law firms choosing between WordPress and Astro — real mobile performance data, the documented conversion cost of slow pages, what each stack actually costs to maintain, and which one fits a firm that needs an in-house content team.
When a Snapshot Isn't Enough: Custom GoHighLevel Software for Multi-Location Dental Groups in Chicago
Where prebuilt GoHighLevel snapshots stop working for a multi-location Chicago dental group, real no-show and retention data, and what custom software — shared patient records, cross-location routing, and practice-management integrations — actually looks like built inside GHL.
Building GoHighLevel Dashboards Clients Actually Trust: A Complete Guide
Why most agency reporting dashboards get ignored, the structure that consistently works, and a step-by-step process for building GHL dashboards clients actually check without being asked.
Let's build
Want this handled for your business?
Book a free scope call and we'll show you exactly how this applies to your GHL account or website.