How to register your Twilio number for A2P 10DLC so client SMS messages actually get delivered. Required for all US business texting.
US carriers (AT&T, T-Mobile, Verizon) now require A2P 10DLC registration for all business SMS sent from local 10-digit numbers. Without it:
Registration tells carriers who you are, what you're sending, and that recipients opted in. Once approved, your messages get higher throughput and reliable delivery.
There are four steps, done in order inside the Twilio Console:
| # | Step | What It Does | Approval Time |
|---|---|---|---|
| 1 | Customer Profile | Verifies the business identity | Instant |
| 2 | Brand Registration | Registers the business with The Campaign Registry (TCR) | Minutes |
| 3 | Campaign Registration | Describes what SMS you're sending and why | 10–15 days |
| 4 | Phone Number Assignment | Links your Twilio number to the approved campaign | Instant |
Log in to the Twilio Console and navigate to:
Or go directly to: console.twilio.com → Trust Hub
Fill in the business details:
| Field | What to Enter |
|---|---|
| Business Name | Exact legal name from EIN letter (e.g., "GS Home Services LLC") |
| Business Type | Corporation, LLC, Partnership, or Sole Proprietorship |
| Business Registration ID | Select "EIN" for US businesses |
| EIN | 9-digit number (e.g., 12-3456789) |
| Business Address | Street, City, State, ZIP |
| Website | Client's website URL |
| Business Industry | Select the closest match (e.g., "Construction" for HVAC) |
| Authorized Contact | Name, email, and phone of someone at the business |
Submit the profile. It should be approved immediately or within minutes.
Once your Customer Profile is approved, register the brand:
Select the Customer Profile you just created. Most fields auto-populate from it.
You'll be asked to verify via OTP (one-time passcode):
Brand approval is usually within minutes after OTP verification. You'll get an email and Console notification when it's done.
This is the most detailed step. After the brand is approved:
Fill in the campaign details:
| Field | What to Enter |
|---|---|
| Campaign Use Case | Select "Low Volume Mixed" or "Customer Care" |
| Campaign Description | A thorough description — single words like "Marketing" will be rejected |
Provide two sample messages that reflect what you'll actually send. Messages must include:
| Field | What to Enter |
|---|---|
| Opt-In Type | Website form submission |
| Opt-In Description | See example below |
| Opt-In Keywords | Leave blank (users don't text in to subscribe) |
| Opt-In Message | Not applicable — this is a one-time message, not a subscription |
| Opt-Out Keywords | STOP, CANCEL, UNSUBSCRIBE |
| Privacy Policy URL | The client's privacy policy page |
Submit and wait. Campaign review currently takes 10–15 business days. You'll get an email when it's approved or if changes are needed.
After the campaign is approved, link your Twilio phone number:
Once assigned, your number is fully registered. SMS sent from this number through the Messaging Service will be delivered as verified A2P traffic.
After registration, Twilio recommends sending messages through the Messaging Service SID instead of just the phone number. This ensures messages route through your verified campaign.
In the Twilio Console, find your Messaging Service SID:
For the Book a Call SMS plugin, the current code sends using the From number directly. If Twilio requires the Messaging Service SID, update the plugin settings or code to use it.
After registration is complete:
messaging_service_sid field. If it's populated, your message went through the verified A2P pipeline.
Twilio charges the following for A2P 10DLC registration:
| Item | Cost | Frequency |
|---|---|---|
| Brand Registration | $4 | One-time |
| Brand Vetting (optional) | $40 | One-time (for higher throughput) |
| Campaign Registration | Varies by use case | One-time + monthly |
| Low Volume Mixed | $2/month | Monthly |
| Standard Campaigns | $10/month | Monthly |
Plus standard Twilio SMS rates (~$0.0079/message). These costs are per-client, so each client brand needs its own registration.
Before starting A2P registration for a new client, collect these items:
| # | Item | Example |
|---|---|---|
| 1 | Legal business name | GS Home Services LLC |
| 2 | EIN | 12-3456789 |
| 3 | Business address | 123 Main St, Phoenix, AZ 85001 |
| 4 | Authorized contact name | John Smith |
| 5 | Contact email | [email protected] |
| 6 | Contact mobile phone | +16025551234 (for OTP verification) |
| 7 | Website URL | https://www.gshomeservices.com |
| 8 | Privacy policy URL | https://www.gshomeservices.com/privacy/ |
| 9 | Contact form URL | https://www.gshomeservices.com/contact/ |
| 10 | Booking link URL | Calendly, Cal.com, or Service Titan scheduler URL |
| Problem | Solution |
|---|---|
| Brand registration rejected | EIN or business name doesn't match IRS records. Verify with client's CP 575 letter. |
| Campaign rejected | Rewrite the description to be more specific. Add privacy policy link. Include opt-out language in sample messages. |
| OTP verification expired | Re-submit the brand registration. Alert the client to respond within 24 hours this time. |
| Messages still filtered after approval | Verify the phone number is assigned to the campaign. Check that you're sending through the Messaging Service. |
| "Unregistered" error in Twilio logs | The phone number isn't linked to an approved campaign yet. Complete Step 4. |
| Low throughput / rate limited | Consider secondary brand vetting ($40) for higher message-per-second limits. |