Twilio A2P 10DLC registration is a four-part filing: a business profile in Trust Hub, a brand, a Messaging Service, and a campaign that describes exactly what you send and how people opted in. Most rejections come from a handful of fixable mismatches, such as a legal name that doesn't match the EIN, a website without a privacy policy, or sample messages that don't match the use case you picked.

This post walks through each step as a Twilio user sees it and lists the rejection reasons that come back most often. It also covers when it makes sense to have a platform file registration for you instead of doing it yourself. We make Ready, which is one of those platforms. We'll be clear about where Twilio is the better fit, and Twilio is the better fit more often than a vendor post usually admits.

Twilio A2P 10DLC registration, step by step

If you've never filed before, read what 10DLC is and why carriers require it first. The short version is that US carriers filter unregistered application-to-person traffic on local 10-digit numbers, so every business texting from software has to register.

Here is the order Twilio puts you through.

  1. Create a business profile in Trust Hub. You enter your legal business name, business type, EIN, address, website and an authorized contact. This profile is what the brand is built on, so a typo here carries through everything after it.
  2. Register the brand. Twilio submits your profile to The Campaign Registry. You choose a brand type, such as a standard brand for a registered business or a sole proprietor brand for people without an EIN. The registry checks your details against public records and assigns a trust score.
  3. Create a Messaging Service. This is Twilio's container for the numbers that will send under the campaign. A campaign attaches to a Messaging Service, not to a single number.
  4. Register the campaign. You pick a use case (marketing, account notifications, customer care, mixed and so on) and write a campaign description. You also supply sample messages, a description of how users opt in, and your opt-in, opt-out and help keywords with their replies.
  5. Add your numbers to the Messaging Service. Once the campaign is approved, every number in the service sends under it.

Optional secondary vetting can raise your trust score and your daily caps. Most senders don't need it at first.

What the reviewers actually check

Brand review is mostly automated. The registry compares your legal name, EIN and address against official records. If they line up, the brand usually clears.

Campaign review is where people get stuck, because a person or carrier process reads what you wrote and asks three questions:

  • Is the opt-in real and visible? Reviewers want to see where consent happens: a web form with an unchecked consent box, a keyword with published terms, or a checkout field. "Customers opt in when they sign up" without a URL or screenshot gets bounced.
  • Do the samples match the use case? If you register for account notifications and your samples include a discount code, that's a mismatch. Our use-case picking guide covers how to choose so this doesn't happen.
  • Is the website a real business with a privacy policy? The policy needs to say you don't share or sell mobile numbers or opt-in data with third parties for marketing.

The rejections that come back most often

Rejection reasonWhat the reviewer sawFix
Brand data mismatchLegal name or address differs from the EIN recordCopy the name exactly as it appears on your IRS letter, including "LLC" or "Inc."
Website not verifiableSite down, parked, under construction, or a different business namePublish a live site that matches the brand name
Missing privacy policy languageNo statement about not sharing mobile numbersAdd a line saying mobile opt-in data is never shared or sold to third parties
Opt-in not describedVague "users consent" text, no URL or screenshotDescribe the exact form or keyword and link to it
Samples missing brand or opt-out"Your appointment is tomorrow" with no business nameAdd the brand name and "Reply STOP to opt out" to at least one sample
Use-case mismatchPromotional samples under a notification use caseRe-pick the use case or rewrite the samples
Restricted contentCannabis, firearms, high-risk lending, third-party lead genSome of this can't be registered at all; see below
Public URL shortenersGeneric shortened links in samplesUse your own domain or a branded short domain

The restricted-content row is the one that can't always be fixed. SHAFT content (sex, hate, alcohol, firearms, tobacco) and some lending categories need age-gating or simply aren't accepted. If your rejection mentions SHAFT, our sample-message rewrite guide shows what passes and what never will.

Consent wording causes more resubmissions than anything else. Our post on opt-in wording that clears on the first submission has copy you can adapt.

Fixing and resubmitting without losing a week

A rejection isn't permanent. Each resubmission goes back into the review queue, though, so the goal is to fix everything in one pass:

  • Read the rejection code and the free-text reason together. One code often covers several problems.
  • Fix the website and privacy policy before you resubmit, because reviewers check the live page and not your notes.
  • Rewrite every sample message, not just the one you think was flagged.
  • Keep a copy of the exact text you submitted, so you can see what changed between attempts.

For timing, see how long 10DLC approval takes by step. Brand review is usually quick. Campaign review is the part that varies.

When a platform should file registration for you

Doing it yourself on Twilio is a perfectly good choice if you send from one brand, have an engineer comfortable in the console, and care most about per-segment price. Twilio runs about $0.0083 per segment, which is well below most platforms. If that describes you, stay where you are and use the table above.

The calculation changes when you text on behalf of other businesses. A CRM or vertical SaaS product with 300 customers needs 300 brands and at least 300 campaigns, each with its own website check and opt-in description. That means building and maintaining the Trust Hub flow, the Messaging Services and the resubmission handling yourself.

That is the job Ready does. Each of your customers gets a sub-account with its own numbers and its own 10DLC registration. The brand and campaign forms are filled in-app, and you can check status through the API with GET /v1/registration. Most approvals take 2 to 7 days.

Ready doesn't change the rules. The carriers reviewing the filing are the same, so a missing privacy policy or vague opt-in gets rejected either way. What changes is who builds and maintains the filing workflow.

Around registration, Ready adds:

  • Automatic STOP handling: opt-outs are honored and apply across campaigns.
  • Quiet-hours holds: sends wait until permitted hours based on the recipient's area. Campaigns, drip campaigns and automations wait up to 24 hours for the window; a one-to-one or API text is held only if the window opens within 6 hours, otherwise it is not sent, and you send it again once the window opens; a one-to-one reply to someone who texted you in the last 24 hours goes out at any hour.
  • Optional litigator and DNC scrubbing.
  • A record of your opt-in attestation for each bulk send and each API send that attests consent.

That attestation record shows who sent, to how many and when. It isn't a per-contact consent record, so your own signup flow still has to store each person's opt-in. Compliance stays the sender's responsibility. These tools reduce risk; they don't remove it.

There's also a way to send before approval. An account can send up to 500 texts a month before it registers, at its normal per-text rate. An account that bought its number first sends on Ready's shared registration while its own is in review. The messages API docs cover the send call.

What it costs on Ready: a worked example

Registration has no setup fee. The charge at submit is the first month, $25. After that, each sub-account pays $25/mo for registration + $2/mo per number.

Example assumptions: one customer sub-account with two numbers, sending 10,000 single-segment texts a month (under 160 plain characters, no emoji).

  • Registration: $25/mo for registration and $2/mo per number for 2 numbers
  • Messaging: 10,000 × $0.0075 = $75, plus 10,000 × $0.0045 in carrier fee
  • Replies are billed like sent texts at the same per-segment rate plus the carrier fee

Two optional charges can apply on top of this:

  • Compliance surcharge: scrubbing and landline validation each add $0.003 per segment when switched on. Both are off by default.
  • Brand vetting: $79 Standard or $179 Enhanced, one-time. It only matters for higher-volume senders whose daily cap is the bottleneck.

Watch your segment count. Add one emoji to that same text and the limit drops to 70 characters (67 per segment once it splits), so a 140-character message becomes 3 segments and the messaging line triples.

FAQ

How long does Twilio A2P 10DLC registration take?

Brand checks are often fast. Campaign review takes longer, and every rejection sends you back into the queue. The biggest variable is whether your first submission is clean.

Can I send texts on Twilio before my campaign is approved?

Unregistered 10DLC traffic gets filtered by US carriers, so plan on waiting for approval before sending at any real volume.

Why was my campaign rejected when my brand was approved?

Brand and campaign are reviewed separately. Brand approval confirms who you are. Campaign rejection is almost always about opt-in description, sample messages or use-case fit.

Do I need brand vetting?

Usually not. Standard registration is enough for most senders. Vetting is worth it only when your trust score caps your daily volume below what you actually send.

Does Ready guarantee approval?

No. Ready files with the same carriers and the same rules apply. It handles the filing for each sub-account and shows status in-app and in the API, but rejected content stays rejected until it's fixed.

The practical takeaway

Registration comes down to matching what you wrote to what exists. The legal name has to match the EIN, the website has to be live with a privacy policy, the opt-in has to be visible, and the samples have to fit the use case. Get those four right and most filings clear the first time, on Twilio or anywhere else.

If you're one brand on Twilio, fix the filing and keep going. If you're registering dozens or hundreds of customer brands, it's worth seeing whether a platform that files for each sub-account saves engineering time. You can create a Ready account and send your first 20 one-to-one texts free. To send, you add a card and get a number, which is $2 a month with the first month charged when you get it. Use those free texts before you register, because they end once a registration is paid for.