Quick answer: US 10DLC registration is two filings with The Campaign Registry (TCR): a Brand (who you are, vetted against your legal entity record) and a Campaign (what you'll send, vetted against an approved use case). Get the Brand's legal name and EIN matching your tax record character-for-character, pick the use case that honestly covers your traffic, write sample messages copied from real sends, and a Brand typically vets in 24–48 hours and a Campaign in 1–5 business days. This walkthrough covers each field in order, the use cases with approved verb examples, what the vetting score does to your throughput, the exact console path on Devotel Orbit, and the rejection patterns to pre-check. The companion piece — why 10DLC campaigns get rejected — is the debugging half; this is the register-here-first half.
Step 1: Brand registration — the legal entity TCR vets
The Brand filing establishes your organization's identity to the carrier ecosystem. TCR publishes a public registration schema; the fields it vets are the legal-entity attributes below. Fill them from the official document, not from memory.
Entity type first. TCR's schema accepts PRIVATE_PROFIT, PUBLIC_PROFIT, NON_PROFIT, GOVERNMENT, and SOLE_PROPRIETOR. The entity type drives what the rest of the form needs:
- Public companies (
PUBLIC_PROFIT) are vetted cheapest — registries can anchor the identity to a stock symbol, so provide one if you have it. - Private companies (
PRIVATE_PROFIT) anchor to the EIN and legal name, and the two are checked as a pair against the tax record. - Sole proprietors (
SOLE_PROPRIETOR) are individuals without an EIN; the registration caps out at a lower throughput tier by design — see the tier table below.
The vetted fields. TCR's public vetting schema covers the organization's identifying attributes: the legal company name exactly as it appears on the tax record, the EIN (when the entity carries one), the registered address (street, city, state, postal code, country), the website, the business vertical (TCR's vertical taxonomy — TECHNOLOGY, RETAIL, HEALTHCARE, and so on), and contact details (a real phone and email that reach a responsible person). Don't invent a requirement beyond that schema — these identifiers are the whole filing's substance.
The field that actually fails: the legal name. "Acme Corp" entered on the form against "Acme Corporation Inc." in the IRS record is a mismatch, not a rounding error. Pull the name from the IRS determination letter or SS-4 confirmation and copy it character for character. If your entity has no EIN, register as a sole proprietor rather than guessing a number — a guessed EIN is a certain rejection.
The full request shape with every field laid out is the Brand step in the 10DLC registration guide.
Step 2: Campaign use-case selection — what TCR approved
The Campaign filing declares the traffic's purpose. TCR maintains a public catalog of approved use cases (usecase codes); the ones that cover standard business messaging:
| Use case | What it covers | Sample-message shape |
|---|---|---|
2FA | One-time passcodes and verification | "Your Acme verification code is 492017. It expires in 10 minutes." |
ACCOUNT_NOTIFICATION | Order, shipping, billing, appointment notices | "Your order #12345 has shipped. Track at https://acme.com/track/12345" |
CUSTOMER_CARE | Two-way support and service replies | "Hi — your support ticket #567 is resolved. Reply STOP to unsubscribe." |
MARKETING | Promotions and offers to opted-in recipients | "Acme: 20% off this weekend. Details at https://acme.com/sale. Reply STOP to opt out." |
MIXED | Genuinely multiple use cases on one submission | Samples spanning each use case you actually send |
Three selection rules, all enforced by the reviewer:
- Samples are the contract. Whatever you file as
sample_message(1–10 strings) is treated as what you'll actually send. Copy them from live traffic — real URL format, real template wording, noexample.complaceholders. Samples that read like promotions under aCUSTOMER_CAREfiling reject. - `MIXED` is not a shortcut, it's a trade. Registering
MIXEDto dodge a second filing costs you a reduced daily per-number cap. Below some volume that's fine; past it, file each use case separately and take the full tier cap on each. - Political use cases carry a token.
POLITICAL_ADVOCACY,POLLING_AND_VOTING, or any campaign flaggedis_politicalalso needs a Campaign Verify (cv_token) from campaignverify.org — obtain it before filing, not after the first rejection.
One selection note for messaging agents and platforms, not a rule: the agent-for-hire question (register under your own brand or your client's) is answered by the campaign description, not by a special code. TCR's approved public-use-case list is what the table above shows — there is no agent-for-hire code, and claiming one is a rejection pattern. Standard campaigns state the send model honestly in description: whichever entity's brand is registered is the entity named as the sender on the traffic. Register under your client's brand when their entity is the one vetted through the front end.
Three narrative fields do the rest: description and message_flow (both at least 40 characters — the flow must narrate how recipients consent and how they revoke it, with the STOP keyword named), plus help_message and optout_message (at least 20 characters each, filled in rather than skipped). The reviewer checks the opt-out half explicitly; a flow that only covers opt-in is a rejection.
Step 3: Vetting tier and trust score — what it buys you
10DLC throughput is granted as a per-day, per-number message-segment cap, and the tier you're placed in comes from your brand's vetting score and entity type:
| Tier | Eligibility | Daily cap per number |
|---|---|---|
| Sole Proprietor | SOLE_PROPRIETOR entity | ~1,000 msg/day |
| Low Volume Standard | Baseline — any brand, including unscored | ~30,000 msg/day |
| Standard | Vetting score 50+ | ~200,000 msg/day |
| Top Tier | Vetting score 75+ | ~2,000,000 msg/day |
Each cap applies to every number assigned to the campaign, so tier × assigned numbers sets the ceiling: a Standard-tier campaign with five assigned numbers carries roughly a million segments a day in aggregate. (Caps reflect T-Mobile defaults; AT&T and Verizon land within roughly 10%.)
The scoring is the lever. Registries score a brand from the completeness and verifiability of the Brand record — a full, accurate filing (legal name anchored to the EIN, a working website, a real vertical, a stock symbol if public) scores higher than a bare one, and 75+ is the difference between ~30,000 and ~2,000,000 segments per day per number. If you plan volume past the baseline, the cheapest throughput upgrade is an accurate brand record, not more numbers. If the score lands low from a sparse record, the re-vet flow is the documented remedy.
Step 4: The console runbook on Devotel Orbit
Everything above collapses into one wizard in the dashboard — it saves a resumable draft, verifies a sole-proprietor's phone by OTP, and submits Brand and Campaign atomically:
- Open Settings → Compliance → 10DLC Registration in the Orbit dashboard. Switch organizations first — every registration is tenant-owned and files under your org, so it belongs to the legal entity that actually sends the traffic.
- Brand Info step. Enter the entity type, then the legal name (from the IRS document), EIN, registered address, website, vertical, and contact details. The draft autosaves — you can come back later without losing state.
- Campaign step. Pick the use case from the catalog, describe the traffic in
descriptionandmessage_flow(opt-in and opt-out both narrated), and paste 2–10 sample messages copied from real sends with STOP language in at least one. - Preflight before you submit. The wizard's preflight linter scores the payload against the known rejection catalog — missing opt-out wording, shortener links, samples that don't match the use case — and returns per-field findings. Nothing goes to the registry during preflight. Fix blockers here; a rejected submission costs a new vetting fee and restarts the review clock.
- Submit and let the status move. Brand vetting runs 24–48 hours, campaign review 1–5 business days. You don't have to poll: signed lifecycle webhooks flip the dashboard status the moment the registry emits an event, and a status reconciler re-reads pending filings on a half-hourly cadence so a dropped event never leaves a filing stuck at
PENDING. Every terminal transition — approved or rejected — lands in the Notification Center with the reason attached. - Read the per-carrier map, not just the top-level verdict. A campaign can be
APPROVEDat the CSP level while one carrier is still inREVIEW— the status response's per-carrier map (T-Mobile, AT&T, Verizon) tells you where deliverability is actually proven. Route cautiously to a carrier still in review.
Prefer scripted registration to clicking? The linear API endpoints, wizard endpoints, status payloads, and field minimums are documented in the 10DLC registration guide, and the resumable-draft flow is the 10DLC wizard guide.
Step 5: Common rejection patterns — and the fixes
Five patterns account for nearly every rejection; all five are pre-checkable:
- EIN / legal-name mismatch (Brand). The name and EIN are vetted as a pair against the tax record. Copy both from the IRS document and re-file. No EIN means register as a sole proprietor — a guessed EIN fails.
- Samples don't match the use case (Campaign). A
CUSTOMER_CAREfiling with promotional samples rejects. Rewrite samples from real traffic, or re-file under the use case the samples actually prove. - Missing opt-out language (Campaign). The
message_flownarrates opt-in only. Add the revocation half — "Reply STOP to unsubscribe" — in the flow and in at least one sample, and fillhelp_messageandoptout_message. - Public URL shorteners in samples (Campaign). Carriers auto-reject shortener domains (bit.ly and siblings) in sample messages. Replace them with a link on your own domain.
- Political use case without a token (Campaign).
POLITICAL_ADVOCACY,POLLING_AND_VOTING, oris_political: truelacks acv_token. Get the Campaign Verify token first, then re-submit.
Field-mechanics rejections also exist — lowercase usecase codes, description under 40 characters — and the preflight linter catches them before the registry does. The full decoder for each rejection reason, the CSP-versus-carrier status split, and the re-submission checklist are in Why 10DLC Campaigns Get Rejected — and How to Pass TCR Vetting First Try; when a filing lands in FAILED, that post is the next read.
Frequently asked questions
How long does TCR 10DLC registration take?
Brand vetting typically completes in 24–48 hours; campaign review takes 1–5 business days. On Orbit you don't poll: lifecycle webhooks flip the status on registry events, a half-hourly reconciler catches dropped events, and every terminal transition lands as a dashboard notification with the rejection reason attached when it fails.
Do I register the Brand or the Campaign first?
Brand first — every Campaign references a registered Brand. The Orbit wizard holds both as a draft and submits the Brand before the Campaign automatically, so you fill both sections in one session and the sequencing is handled for you.
What EIN should I use — and what if I don't have one?
The EIN on your entity's IRS record, entered exactly as it appears there, with the legal company name copied from the same document. If your entity has no EIN, register as a sole proprietor rather than inventing one; the sole-proprietor tier carries the lower daily cap shown in the table above.
How many use cases can one campaign cover?
One, unless MIXED genuinely describes the traffic. MIXED asks for samples spanning every use case you claim and carries a reduced daily per-number cap — past a certain volume, filing each use case separately and getting the full tier cap on each beats one MIXED filing.
How do I get more throughput — a higher tier or more numbers?
Both, and they multiply. The tier (brand vetting score and entity type) fixes the per-day cap per number; assigned numbers multiply it. The cheapest tier upgrade is a complete, accurate brand record — a score of 75+ moves you from ~30,000 to ~2,000,000 segments per day per number.
My filing was rejected. Do I start over?
No — a rejection is scoped to the failed filing. Read the rejection reason (it is the reviewer's literal finding, returned on the status response and in the Notification Center), fix that specific item, and re-submit the rejected filing. Your brand's vetting score and any already-approved campaigns are unaffected.
The takeaway
Registration is the cheapest part of 10DLC when it's done once and done right: copy the legal entity from the tax record, file the use case your samples actually prove, narrate both halves of consent, and let the tier table tell you how many numbers to assign. The console path is Settings → Compliance → 10DLC Registration; the full request shapes are in the 10DLC registration guide; and when something comes back FAILED, the rejection decoder is the follow-up.