SMS Compliance in 2026: 10DLC, Toll-Free, and RCS Registration Without the Headaches
Unregistered SMS numbers are blocked by US carriers as of 2025. Pinnacle walks you through 10DLC, toll-free, and RCS registration with a guided dashboard wizard, AI-powered autofill, and a validate-before-you-pay step that catches errors before they cost you.
Ivan

The Compliance Wall Nobody Warned You About
You've integrated the SMS API, written your message templates, and you're ready to start sending. Then your first few messages either get silently filtered or you get a notification that your traffic is blocked. Welcome to A2P SMS compliance — the part of business messaging that nobody puts in the getting-started guide.
Here's the short version: since 2021, US carriers have required businesses to register their brand and messaging use case before sending A2P (application-to-person) SMS at any real volume. As of February 1, 2025, all unregistered numbers are blocked by major carriers. No registration, no delivery. It's not a soft rule; it's a hard technical block.
The good news: Pinnacle makes registration straightforward. A guided wizard, AI autofill that pre-populates your forms, and a validate-before-submit step that catches errors before they cost you a registration fee.
Why Compliance Exists
A2P compliance isn't bureaucracy for its own sake. The US SMS ecosystem was flooded with spam, phishing, and scam messages — the kind that impersonated banks and delivery services and extracted billions from consumers. Carriers responded by requiring businesses to identify themselves and declare their messaging intent.
The CTIA (the wireless industry trade association) and major carriers including AT&T, T-Mobile, and Verizon now enforce these requirements jointly. T-Mobile began issuing fines for content violations starting January 1, 2024, with penalties reaching up to $10,000 per violation for SHAFT content (sex, hate, alcohol, firearms, and tobacco). AT&T charges surcharges for unregistered traffic.
The compliance system works because it creates accountability: carriers can trace any message back to a registered brand and campaign. Spammers can't register; legitimate businesses can.
Three Registration Paths
The right registration path depends on the type of number you're sending from:
10DLC — Local Phone Numbers
If you're sending from a standard 10-digit local number (e.g., +1 415 555 0001), you need a 10DLC campaign — the most common registration type for business SMS.
10DLC registration involves two steps:
- Brand registration: Identify your business (company name, EIN, website, business type)
- Campaign registration: Describe your messaging use case (customer service, marketing, OTP, etc.), provide sample messages, and describe your opt-in process
Once approved, you attach the campaign to your phone numbers, and they're authorized to send.
Toll-Free — 1-800 and Related Numbers
Toll-free numbers have their own verification process, separate from 10DLC. If you're sending from an +1 800, +1 888, +1 877, or similar number, you register a toll-free campaign instead.
Toll-free verification tends to have faster approval times than 10DLC, making it a popular choice for businesses that want to start sending quickly. The registration covers similar information: your business identity, use case, and message samples.
RCS Campaign — Rich Communication Services
RCS agents have their own registration process through Google's RBM (Rich Business Messaging) ecosystem. An RCS campaign specifies your agent's name, logo, verified business identity, and messaging use case — establishing the branded, verified sender experience that RCS recipients see.
RCS registration is what enables the verified sender badge in Google Messages, showing recipients your business name and logo instead of a raw phone number.
The Registration Flow in Pinnacle
Pinnacle's registration system mirrors this structure: Brand → Campaign → Attach to Numbers. Everything lives in the brands dashboard.
Step 1: Register Your Brand
A brand represents your business identity. You'll provide:
- Business legal name
- EIN (Employer Identification Number)
- Business type (LLC, Corporation, Non-profit, etc.)
- Website URL
- Address
Pinnacle validates your brand information before submission to catch issues — missing fields, mismatched business details — before you pay the registration fee.
Register your business identity once — all campaigns are linked to your brand.
Step 2: Create a Campaign
Once your brand is registered, create a campaign linked to it. You'll specify:
- Campaign type: 10DLC, Toll-Free, or RCS
- Use case: What you're sending (Customer Service, Marketing, Mixed, OTP, etc.)
- Message samples: 2-5 example messages that represent your actual content
- Opt-in description: How users consent to receive your messages
- Compliance keywords: STOP, HELP, CANCEL — the opt-out and support keywords your number responds to
Pinnacle's campaigns dashboard walks through this as a multi-step wizard with a final review screen before you submit anything.
Select your use case and Pinnacle guides you through the rest — no compliance expertise required.
Step 3: Attach Campaign to Phone Numbers
After your campaign is approved, attach it to the phone numbers you want to use for that use case:
import { PinnacleClient } from "rcs-js";
const client = new PinnacleClient({ apiKey: process.env.PINNACLE_API_KEY });
await client.phoneNumbers.campaign.attach({
campaignId: "dlc_abc123",
campaignType: "10DLC",
phones: ["+18005550001", "+18005550002"],
});Or do it from the dashboard with a click. Numbers not attached to an approved campaign will have their traffic filtered by carriers.
AI Autofill: Registration That Writes Itself
The most tedious part of campaign registration is filling out forms — especially when you have to write message samples and describe your opt-in flow in language that satisfies carrier reviewers.
Pinnacle's AI autofill feature handles this. Provide your campaign ID and optional context, and Pinnacle's AI pre-populates your campaign details — use case description, sample messages, opt-in language, and compliance keyword responses — based on your business and brand information.
const autofilled = await client.campaigns.dlc.autofill({
campaignId: "dlc_abc123",
additionalInfo:
"We send appointment reminders and promotions to customers who opt in via our checkout flow.",
});The same autofill is available for toll-free and RCS campaigns. It's not a guarantee of approval, but it dramatically reduces the time to complete a well-formed submission — and produces descriptions that are more likely to pass carrier review than a hurried first draft.
Validate Before You Submit
Registration fees are non-refundable. Submitting a campaign with errors means paying the fee again to resubmit. Pinnacle's validate step catches errors before you pay.
const validation = await client.campaigns.dlc.validate({
campaignId: "dlc_abc123",
});
if (!validation.is_valid) {
console.log("Fix these before submitting:", validation.errors);
}Validation checks for missing required fields, sample messages that don't match the declared use case, opt-in descriptions that are too vague, and other common rejection reasons. Think of it as a compliance spell-checker that runs before anything is filed.
STOP, HELP, and CANCEL: Opt-Out Compliance
Every 10DLC and toll-free campaign must support opt-out keywords. Under CTIA rules, when a recipient texts STOP (or CANCEL, END, UNSUBSCRIBE, or QUIT), you must immediately stop sending to that number. HELP must trigger a support response with your contact information.
Pinnacle handles opt-out tracking automatically. When a recipient texts STOP to one of your numbers, they're flagged in your contacts — and Pinnacle prevents you from sending to them again until they re-opt-in by texting START.
This isn't just a courtesy — it's a legal requirement. The TCPA and CTIA messaging guidelines require honoring opt-outs within 10 business days; Pinnacle does it immediately.
Staying Compliant After Registration
Registration isn't a one-and-done event. A few ongoing requirements:
- Don't deviate from your declared use case: A campaign registered for transactional alerts shouldn't start sending promotional messages. Carriers can revoke campaign approval for use case violations.
- Honor opt-outs immediately: As above — Pinnacle does this for you automatically.
- Keep sample messages representative: Your actual messages should resemble the samples you submitted. Wildly different content can trigger re-review.
- Update registration if your business changes: If your EIN or legal name changes, update your brand registration.
For a full breakdown of messaging compliance rules, see docs.pinnacle.sh/guides/campaigns/opt-in-compliance.
Want the API Instead of the Dashboard?
Every step of the registration flow is available via the Pinnacle API and MCP server:
- Brands:
POST /brands,POST /brands/{id}/submit,POST /brands/validate - 10DLC Campaigns:
POST /campaigns/dlc,POST /campaigns/dlc/submit/{id},POST /campaigns/dlc/autofill,POST /campaigns/dlc/validate - Toll-Free Campaigns: Same pattern at
/campaigns/toll-free/ - RCS Campaigns: Same pattern at
/campaigns/rcs/
This makes it possible to build fully programmatic registration workflows — useful for platforms and agencies that need to register brands and campaigns on behalf of multiple customers.
Frequently Asked Questions
What happens if I send without registering?
Your messages are filtered or blocked by carriers. As of February 2025, unregistered A2P numbers are blocked across major US carriers — the messages are silently dropped and never reach recipients.
How long does 10DLC registration take?
Brand registration is typically processed within a few hours to 1 business day. Campaign registration can take 2-5 business days depending on carrier review queues. Toll-free verification is often faster, sometimes same-day.
Do I need to register if I'm only sending to myself for testing?
No. Pinnacle provides a sandbox environment with free sandbox numbers for testing. Sandbox numbers don't require registration.
Can I use the same brand for multiple campaigns?
Yes. Register your brand once and create as many campaigns as you need. Each campaign covers a different use case or number pool.
What's the difference between 10DLC and toll-free for SMS?
Both are A2P registration paths, but for different number types. 10DLC is for local 10-digit numbers (area code + 7 digits). Toll-free is for 800/888/877/866/855/844/833 numbers. Your choice of number type and registration path depends on your business needs — toll-free numbers are recognizable nationally and often preferred for high-volume customer service.
Is RCS registration required?
Yes. To send verified RCS messages through Pinnacle, your RCS agent must be registered with a campaign. This is what enables the verified sender badge and your business name/logo in Google Messages.
What is AI autofill and does it guarantee approval?
AI autofill pre-populates campaign registration forms based on your brand and context. It produces well-formed submissions that are more likely to pass review, but it doesn't guarantee approval — carrier review is an independent process.
Key Takeaways
- Registration is mandatory: As of February 2025, unregistered A2P numbers are blocked by US carriers
- Three paths: 10DLC for local numbers, Toll-Free for 800-series numbers, RCS Campaign for rich messaging agents
- Brand → Campaign → Attach: The three-step flow in Pinnacle's dashboard wizard
- AI autofill: Pre-populate registration forms automatically for faster, higher-quality submissions
- Validate before submit: Catch errors before paying non-refundable registration fees
- Automatic opt-out handling: STOP keywords are honored immediately — no manual tracking needed
- Full API support: Every registration step is available via the API for programmatic or multi-tenant workflows
Get Started with Registration
Open the brands dashboard to start your registration. For documentation, see the brands guide, 10DLC campaign guide, toll-free guide, and RCS campaign guide.
If you're not yet on Pinnacle, sign up and subscribe to a plan. For questions about compliance, registration timelines, or enterprise registration workflows — get in touch.
