Twilio A2P 10DLC Registration for Clients: The Step-by-Step Checklist That Gets You Approved

Unregistered business texts get blocked. That’s the rule now, and carriers don’t bend on it.

I just went through the full Twilio A2P 10DLC registration for a restaurant client’s AI phone agent. I hit most of the walls you can hit. Here’s the exact process, what your website needs, and what to collect from a client before you touch a single form.

What We Were Building

The setup is simple. A guest calls the restaurant. If the host doesn’t pick up, the call forwards to an AI phone agent. The guest asks for the reservation link. The AI asks, “Would you like me to text you the link?” The guest says yes. The AI sends one text with the link.

That’s a legitimate use case. But the consent is verbal, so you have to document it clearly. Carriers can’t hear the call.

Step 1: Collect the Client’s Business Info Before You Open Twilio

This is where most agencies stall. The brand you register must be the business whose name is on the texts. That means you need:

  • Legal business name, exactly as it appears on tax paperwork
  • EIN
  • Business address that matches that record
  • Website
  • An authorized contact (name, title, email, phone)
  • A live privacy policy URL
  • Which locations the AI answers for, and their phone numbers

“But I’m the one being paid, why do I need their EIN?” Because carriers vet the business the customer thinks is texting them, not the agency behind the scenes. The EIN is how they verify that business is real. It isn’t tax return data, and any business owner can pull it up in a minute.

Step 2: Create a Subaccount for Each Client

Twilio’s own docs call separate subaccounts per customer the preferred setup. One client’s compliance problem stays with that client instead of hitting everyone else’s numbers.

Full honesty: I set this one up in my main account. Next client gets their own subaccount from day one. Don’t copy my shortcut.

Step 3: Set Up Customer Profiles

You create a primary customer profile for your agency once. Then a secondary customer profile for each client, filled in with the client’s business details, not yours. Twilio says this directly: when you register a brand for your customer, use that customer’s information.

Step 4: Register the Brand

The brand is the business identity carriers check. Twilio offers three types: Standard, Low-Volume Standard, and Sole Proprietor. Sole Proprietor is for individuals without an EIN. A restaurant with an EIN isn’t one, so don’t use it as a workaround.

Step 5: Fix Your Website First (This Is Where Campaigns Die)

Carriers open your privacy policy and terms URLs. If they don’t cover texting, you get rejected. You need two live pages.

Privacy policy: add an SMS section. Here’s the wording I used:

Text Messaging (SMS)
When you call a participating business and our AI phone assistant answers, it may offer to text you a link. We send the text only if you agree during the call, and only to the number you are calling from. We collect your mobile number, the call recording and transcript, and the time of your consent to send the link you requested and to keep proof of consent. No mobile information will be shared with third parties or affiliates for marketing or promotional purposes. Message and data rates may apply. Reply STOP to opt out or HELP for help. Calls may be recorded.

Terms and Conditions: create a separate page that includes:

  • Program name and description
  • How people opt in (verbally, on the call)
  • Message frequency (one message per request)
  • “Message and data rates may apply”
  • Support contact
  • STOP and HELP instructions, in bold
  • A link back to your privacy policy
  • An effective date

Two things people miss. Use the same phone number on every page of the site, since reviewers compare them. And publish both pages before you submit. Not after. Clear your cache and open them in a private window to confirm they load.

Get a lawyer or your client to review the legal language. I’m sharing what worked for me, not legal advice.

Step 6: Register the Campaign

Pick a use case that matches what you actually send. For a link the caller asked for, Customer Care or Low Volume Mixed fits. Marketing doesn’t, and picking it invites more scrutiny.

Campaign description (be specific, describe exactly what happens):

This campaign sends a single, on-demand text message containing a link (such as a reservation, event, or purchase link) to a customer who called a participating business and asked to receive it. Calls are answered by an AI voice assistant. The assistant asks whether the caller would like the link sent by text and sends it only after the caller clearly agrees. The text goes only to the number the customer is calling from. This campaign does not send marketing or promotional messages.

Consent field: describe the verbal opt-in step by step. Include the exact question the AI asks, what counts as a yes, what happens on a no, that the text goes only to the calling number, and how you store proof (recording, transcript, timestamp).

Sample messages: name the sender, include “Reply STOP to opt out, HELP for help,” and use the clean link. No bit.ly. No long tracking parameters.

Opt-in keywords and opt-in message: leave blank. Verbal consent doesn’t use them.

Checkboxes: check embedded links. Check phone numbers if your HELP reply includes one. Leave direct lending and age-gated unchecked unless they truly apply.

Step 7: Messaging Service, Sender Pool, and HELP Reply

Let the campaign create a new Messaging Service. Then add the phone number under Sender Pool.

Gotcha I hit: a number can live in only one Messaging Service. Mine was already in an older one, so I had to remove it there first. Then set your HELP reply in Opt-Out Management so it names the business and gives a real contact.

Step 8: Make the AI Say What the Paperwork Says

Carriers compare what your agent says to what you submitted. In your AI platform (I use Retell):

  • Script the exact consent question from your campaign text
  • Add a recording notice to the opening line
  • Turn on recording and transcripts
  • Raise data retention. Mine defaulted to 30 days, which is far too short to prove consent later. Set it to a year or more.
  • Log each consent in your automation (n8n or GHL): caller number, timestamp, the “yes” line

Step 9: Test Call Forwarding

When a call forwards from the business line to your Twilio number, caller ID doesn’t always arrive intact. Call from your own cell phone and confirm the text lands on your phone, not the restaurant’s line.

Step 10: Wait, and Don’t Send Early

Twilio’s console says campaign review can take several weeks. Until it’s approved, don’t send live texts from that number. Build and test everything else in the meantime.

What If Your Client Can’t Give You Their EIN?

This happened to me. The client couldn’t provide the business details, and I needed to move.

My fallback: I submitted under my own agency’s already-approved brand. The texts name both companies (“Digitalism Pro for [client]”), the SMS pages live on my own website, and the consent text says my AI assistant answers on the client’s behalf.

Be clear about the risk. Twilio’s docs prefer a separate brand per client, so this could get rejected. I’d treat it as a fallback, not a plan. My campaign is under review right now, and I’ll update this post with the result.

Your Approval Checklist

  • Client’s legal name, EIN, address, website, and authorized contact collected
  • Subaccount created for the client
  • Secondary customer profile and brand use the client’s details
  • Privacy policy has an SMS section, and it’s live
  • Terms page has program name, frequency, rates, support contact, STOP and HELP
  • Same phone number on every page of the site
  • Campaign description matches what the AI really does
  • Consent field shows the exact question, proof storage, and calling-number-only rule
  • Sample messages name the sender, include STOP and HELP, use clean links
  • Number added to the campaign’s Messaging Service sender pool
  • HELP reply set with a real contact
  • AI script, recording notice, and retention match the paperwork
  • Forwarding test done from a real cell phone
  • No live texts until Twilio says approved

The Takeaway

Most rejections aren’t about your messages. They’re about mismatched paperwork: a privacy policy with no SMS language, a brand that doesn’t match the texts, a vague consent story. Get the client’s info first, fix the website second, and only then open Twilio.

Running AI phone agents for your business or your clients and want this done right the first time? DM me or drop a comment, and I’ll tell you what I’d check first.

[chatbot] [chatbot]