10DLC registration checklist for your brand and campaign
33 items, 17 for every setupRequirements read 2026-10-22Runs in your browser
Tell the checklist who is registering, what you will text and how people sign up, and it lists everything your texting provider will ask for to register the brand and the campaign, each with the reason a reviewer rejects it when it is missing. Tick items as they are ready, fill in your URLs, then copy or print the record before you submit. Nothing you type or tick leaves this page.
Set your setup first: the list shows only what your provider will ask for. Tick each item once it is ready to paste in.
Progress
0 of 26 ticked
The name on the CP 575 EIN confirmation letter (or a 147C letter), every line above the address. Not the name on a W-2 or W-9, which can differ.
Rejected when missing: A name that does not match the tax ID in public records fails the brand. Twilio says most Standard and Low-Volume Standard brand failures are this mismatch, and Telnyx lists it first. (Twilio brand troubleshooting, Telnyx quickstart)
Nine digits in 00-0000000 form. Twilio notes a newly issued EIN can take 30 to 90 days to reach the databases the check uses.
Rejected when missing: A tax ID mismatch leaves the brand unverified; the appeal asks for the CP 575 or 147C letter (Bandwidth, Twilio). Many brands under one EIN can also get campaigns rejected (Twilio 30898). (Twilio business_name, Bandwidth brand guide, Twilio 30898)
Corporation, LLC, partnership, co-operative or non-profit corporation, as the entity is registered federally; private, public or non-profit; the closest industry.
Rejected when missing: Bandwidth asks for the legal form that matches the federal classification and keeps the Nonprofit type for IRS-recognised 501(c)(3) organisations, which must give their EIN. (Bandwidth brand guide, Twilio business_type)
Street, city, two-letter state and ZIP of the physical business address, not a P.O. box.
Rejected when missing: Telnyx lists a P.O. box as an invalid address; Twilio counts an exact-address mismatch with tax records among the common brand failures. One street address may appear on at most ten brand registrations across all providers (Twilio). (Telnyx quickstart, Twilio street)
First and last name, exact job title, a phone number in +1 format, and an email the business controls, on its own domain where it has one.
Rejected when missing: Twilio 30881 rejects a support email that is disposable, on a domain not tied to the brand, or belonging to the software vendor or agency. One email may appear on at most ten brand registrations. (Twilio 30881, Twilio email)
Its own name, tax ID and website, never those of the texting platform, agency or reseller that files the registration.
Rejected when missing: Twilio 30894 and Bandwidth's Know Your Customer rule reject a campaign filed under the platform's or agency's details. (Twilio 30894, Bandwidth tips)
Shows the business name, contact details and what it sells. With no website, Bandwidth accepts another online presence such as a social media page.
Rejected when missing: TCR rejects a site that does not load, is parked or for sale, needs a login, or redirects to another brand (Twilio); Bandwidth also rejects a certificate error (1103). (Twilio website_url, Twilio 30919, Bandwidth 1100–1103)
No CBD, cannabis, sex, hate or firearms content anywhere on the site; alcohol and tobacco only with a robust age gate and proper opt-in (Bandwidth).
Rejected when missing: Bandwidth rejects the campaign even when the texts are about something else (its example: a chiropractor whose site sells CBD oil). Twilio 30883; resubmitting does not fix it. (Bandwidth tips, Twilio 30883)
Its own URL, no login. Twilio's passing sentence: “We do not share, sell, or provide your mobile phone number or messaging consent data to third parties or affiliates for marketing or promotional purposes.”
Rejected when missing: A missing, login-gated or conflicting policy, or one that allows sharing, is rejected (Twilio 30908; Bandwidth 7100, 7103). Twilio's API has required a privacy policy URL on new campaigns since 2026-06-30 (30933). (Twilio 30908, 30933, Bandwidth 7100–7103)
Twilio's list of accepted policies: message frequency (“You may receive up to 4 messages per month”) and the statement “Message and data rates may apply.”
Rejected when missing: Twilio 30896 names a website opt-in whose policy lacks either disclosure as an opt-in error. (Twilio message_flow, Twilio 30896)
Public, no login or download, on the website's own domain (example.com/terms): brand name, message types, frequency, “Message and data rates may apply,” HELP and STOP (Bandwidth).
Rejected when missing: TCR rejects terms that redirect to another domain or sit behind a login (Twilio). Twilio's API has required a terms URL on new campaigns since 2026-06-30 (30934). (Twilio T&C, 30882, 30934, Bandwidth tips)
Marketing, Mixed or Low-volume mixed when any text promotes a sale or offer; a single-purpose use case (delivery, account, customer care, 2FA) only when every text is that kind.
Rejected when missing: Promotions under a non-marketing use case are rejected (Bandwidth 2200, 3200, 8200), and so is a description that does not match the use case (Twilio 30886). (Bandwidth 2200, 3200, 8200, Twilio 30886)
40 to 4,096 characters in Twilio's form. Its example: “This Campaign will send weekly marketing messages about sales and offers from Acme Sandwich Company to end customers who have opted in.” A first-party lender adds “Direct Lending.”
Rejected when missing: Twilio 30886: too vague, missing one of the three parts, out of line with the use case or samples, or naming the platform instead of the business. (Twilio description, Twilio 30886)
The brand name in each, [brackets] around the parts that change, links and phone numbers as they will appear, and “Reply STOP to opt out” in at least one. Twilio: 20 to 1,024 characters each.
Rejected when missing: Twilio 30893; Bandwidth 8100 (no opt-out language) and 8101 (brand name missing). Telnyx lists vague samples and missing opt-out language among carrier rejections. (Twilio message_samples, 30893, Bandwidth 8100–8101)
A mixed campaign of reminders, support replies and promotions needs at least one sample of each.
Rejected when missing: Bandwidth 8102: a sub-use case with no sample of its own. (Bandwidth 8102)
Tick “messages include links” and show a link in a sample. A shortener must be dedicated to your business (CTIA § 5.3.2).
Rejected when missing: Public shorteners such as bit.ly or TinyURL, or an unsecured URL, are rejected (Twilio 30892, Bandwidth 8201); so is a links flag with no link in the samples (Bandwidth 3109). (Twilio 30892, Bandwidth 8201, 3109)
Description, message flow and samples are three different texts, not one paragraph pasted three times. Give an English translation of any opt-in or sample in another language.
Rejected when missing: Twilio 30911 (duplicate template text across fields) and 30910 (non-English content). (Twilio 30910, 30911)
For each path: who opts in, where, and the action that gives consent, with links to the privacy policy and terms. Twilio: 40 to 2,049 characters.
Rejected when missing: A path left out or described in general terms is rejected (Twilio 30909, 30917; Bandwidth 2100, 2132). (Twilio 30909, 30917, Bandwidth 2100, 2132)
Brand name, the kind of messages, frequency, “Msg & data rates may apply,” HELP and STOP instructions, and links to the privacy policy and terms, whatever the method (Bandwidth; CTIA § 5.1.1).
Rejected when missing: Twilio 30924; Bandwidth 2113 to 2118 and 2121, one code for each missing piece. (Twilio 30924, Bandwidth 2113–2121)
The form has a phone field and its own SMS consent checkbox, unticked to start and optional when the form does other things too.
Rejected when missing: No opt-in URL (Bandwidth 2120), no phone field (2139), consent forced on a multi-purpose form (2131), or a pre-ticked box or consent folded into general terms (Twilio 30925). (Bandwidth 2120, 2131, 2139, Twilio 30925)
“Text JOIN to (555) 123-4567,” plus a link to the page, or a screenshot of the sign, flyer or ad, that shows it.
Rejected when missing: Bandwidth asks how the consumer learns the keyword; Twilio 30896 rejects a keyword flow that omits the keyword, the number or the opt-in reply. (Bandwidth tips, Twilio 30896)
Bandwidth: “Marketing/promotional content requires prior express written consent.” Show the written path (a web form, a signed paper form) in the message flow.
Rejected when missing: Bandwidth 2101: a promotional campaign with no written opt-in. (Bandwidth 2101)
No bought, rented or shared lists and no lead-generation or affiliate opt-ins. CTIA § 5.1.4: senders “should not use opt-in lists that have been rented, sold, or shared.”
Rejected when missing: Affiliate marketing and lead generation are forbidden; Twilio 30882 and Bandwidth 3102 both say resubmitting will not fix it. (Twilio 30882, Bandwidth 3102, CTIA § 5.1.4)
Bandwidth's example: “Thank you for opting in to receive recurring messages from [Company Name]. Msg frequency varies. Msg & data rates may apply. Reply HELP for help. Reply STOP to cancel.” Twilio: 20 to 320 characters.
Rejected when missing: Bandwidth 5104 to 5108, one for each missing part; Twilio 30896 when a keyword opt-in has no opt-in message. (Bandwidth 5104–5108, Twilio 30896, CTIA § 5.1.2.1)
Brand name plus a phone number, email or website. Bandwidth's example: “Thank you for reaching out to [Company Name]. Please call us at [phone number] or email us at [email address] for support. Reply STOP to opt-out.”
Rejected when missing: Twilio 30890; Bandwidth 5103 (HELP not listed), 5109 and 5110. (Twilio 30890, Bandwidth 5103, 5109–5110)
List STOP, END, UNSUBSCRIBE and CANCEL (STOP at minimum). The reply names the brand and confirms no more messages: “You have successfully opted out of messages from [Company Name]. You will receive no further messages.”
Rejected when missing: Twilio 30887; Bandwidth 5100 (no brand name), 5101 (no valid keyword) and 5102 (no confirmation). (Twilio 30887, Bandwidth 5100–5102)
What the checklist covers
10DLC registration has two halves. The brand says who is sending: the legal name, tax ID, address and contact, checked against public records. The campaign says what you send and how people agreed to it: the use case, a description, sample messages, the opt-in flow and the HELP and STOP replies. You do not file either with The Campaign Registry yourself. In TCR's words, “direct registration with TCR is not available for Brands. Instead, you must work with one of the registered messaging service providers (CSP)”, so your texting platform or carrier API submits both. The what is 10DLC guide explains the system, and 10DLC vs toll-free vs short code covers the other routes.
Each item comes from a provider's own published requirements, read on 2026-10-22: Twilio's field reference and its campaign error pages, Bandwidth's brand guide, vetting tips and list of rejection codes, and Telnyx's 10DLC troubleshooting notes. Underneath them sits CTIA's Messaging Principles, which ask that a call-to-action tell people the program, the sending number, who is texting, any fees, and how to opt out and get help (§ 5.1.1). The CTIA messaging guidelines guide reads them in full.
Reviewers read the registration as one story. Twilio says it compares the website, the campaign description, the opt-in flow and the sample messages “to confirm that they all identify the same sender and the same messaging use case” (error 30907). Many of the codes below are a mismatch between two of those fields, which is why the checklist asks for the brand name in every sample and the same domain for the website, privacy policy and terms. Registration approval is a carrier rule, not the law: TCPA rules for text messages and prior express written consent still apply to every text.
Worked example: four businesses, four checklists
Every setup gets 17 common items, and every business with an EIN adds 3 tax-ID items; the last column is what the setup itself adds. The table is built by the same function the checklist runs. A sole proprietor swaps the tax-ID items for the passcode phone, an online store adds the keyword and written-consent items, and a listed company adds the brand-contact email check.
| Business | Brand | Use case | Opt-in paths | Items (common + EIN + setup) | Added by this setup |
|---|---|---|---|---|---|
| Dental office (LLC) | Private company with an EIN | Mixed (several use cases) | Website form, Paper form or in store | 27 = 17 + 3 + 7 | Frequency and rates in the policy, A sample per sub-use case, Links on your own domain, Phone number in a sample, Form URL, unticked box, Hosted screenshot, Written consent for promotions |
| Online store (corporation) | Private company with an EIN | Marketing | Website form, Text a keyword | 25 = 17 + 3 + 5 | Frequency and rates in the policy, Links on your own domain, Form URL, unticked box, Keyword and where it is shown, Written consent for promotions |
| Plumber, no EIN | Sole proprietor, no EIN | Sole proprietor | Verbal (phone or in person) | 20 = 17 + 0 + 3 | Mobile for the passcode, No EIN confirmed, Verbal script |
| Listed clinic group | Public company (listed) | Account notifications | Inside an app or behind a login | 23 = 17 + 3 + 3 | 2FA contact email, Links on your own domain, Hosted screenshot |
Brand first, then campaign: the filing order
Providers walk the same sequence, and a failure at one step blocks the next. Twilio's order for a registration through its API is below; console and other providers follow the same shape.
- 01
Business profile
The brand's details go into a customer profile first (Twilio: a Starter Profile for a sole proprietor, a Standard Profile otherwise). Brand fixes are made here, not on the brand.
- 02
Trust bundle
Twilio wraps the profile in an A2P trust bundle; other providers fold this into the brand form.
- 03
Brand
Checked against tax and business records. Twilio: most finish within a few minutes, a few take more than seven days. Bandwidth: verified or unverified within an hour.
- 04
Campaign
One use case per campaign; a sole proprietor brand gets one campaign. Twilio: Standard campaigns pass several layers of vetting, which can take up to several weeks.
- 05
Phone numbers
Numbers are linked after approval, and that registration is not instant. A sole proprietor campaign sends from one number.
If the brand fails, compare every field with the IRS letter and fix the profile, then resubmit. Twilio allows three free brand resubmissions; when the details already match (often a new EIN that has not reached the databases yet), the route is an appeal with the CP 575 or 147C letter, which Bandwidth also asks for.
If the campaign fails, edit it and resubmit rather than deleting it. Twilio notes a brand cannot be edited while a campaign is attached, so a brand problem means deleting the campaign first and filing it again once the brand passes.
After approval, send what you registered. Twilio lists “campaign-to-traffic mismatch” and the sharing of opt-ins with affiliates among the reasons carriers suspend a campaign, and a suspended campaign cannot send. Adding promotions to an informational program means a campaign whose use case covers marketing.
NoteRegistration fees reach you through your provider, which sets its own brand, vetting and monthly campaign charges. The 10DLC registration cost calculator puts numbers on them.
The privacy policy line reviewers look for
Twilio and Bandwidth both list the privacy policy among their rejection reasons, and both read it for one promise: mobile numbers and texting consent are not shared with anyone else for their marketing.
Rejected (Twilio 30908): “We may share your personal information with third-party partners for marketing purposes.”
Passes (Twilio's example): “We do not share, sell, or provide your mobile phone number or messaging consent data to third parties or affiliates for marketing or promotional purposes.”
Bandwidth's suggested wording: “Mobile information will not be shared with third parties/affiliates for marketing/promotional purposes. All the above categories exclude text messaging originator opt-in data and consent; this information will not be shared with any third parties.”
Bandwidth adds that sharing data a business needs to operate is allowed; what reviewers reject is a policy that claims consent to pass numbers on for someone else's marketing. For a website opt-in, Twilio's accepted policies also give message frequency and the words “Message and data rates may apply,” and the policy must open without a login. Keep one policy: Twilio rejects registrations that point to several conflicting ones. The SMS privacy policy and terms generator writes the texting section, the opt-in language builder writes the consent wording for your form, and the STOP and HELP keywords guide covers the replies.
Read a rejection: Twilio and Bandwidth codes
Providers report the same problems under their own numbers. Find your code, fix the item it points to, and edit the failed campaign rather than deleting it: Twilio charges its vetting fee once per campaign and says editing keeps it from being charged twice. Two rows cannot be fixed by rewording; Twilio and Bandwidth both say the program itself has to change.
| Rejection | Twilio | Bandwidth | Edit and resubmit? | Checklist item |
|---|---|---|---|---|
| Description vague or off the use case | 30886 | 3200 | Yes | Campaign description |
| Samples lack the brand, STOP, or a match with the use case | 30893 | 8100, 8101, 8102 | Yes | Sample messages |
| Public link shortener in a sample | 30892 | 8201 | Yes | Links on your own domain |
| Phone or link flag set, none in the samples | 30889 | 3109 | Yes | Phone number in a sample; links on your own domain |
| Opt-in path missing or vague | 30909, 30917 | 2100, 2132 | Yes | Message flow |
| Consent wording lacks frequency, rates, HELP or STOP | 30924 | 2113–2118 | Yes | Consent wording at opt-in |
| SMS consent box pre-ticked or required | 30925 | 2131 | Yes | Form URL, unticked box |
| Opt-in page behind a login, no screenshot | 30921 | 2120 | Yes | Hosted screenshot |
| Privacy policy missing or allows sharing | 30908, 30933 | 7100, 7103 | Yes | Privacy policy, no sharing |
| HELP reply has no brand or contact | 30890 | 5109, 5110 | Yes | HELP reply |
| STOP reply incomplete | 30887 | 5100–5102 | Yes | STOP reply |
| Website down, parked or not the brand's | 30891, 30907 | 1100–1103 | Yes | Live website |
| Affiliate marketing or lead generation | 30882 | 3102 | No: change the program | Consent for this brand only |
| Prohibited content (sex, hate, alcohol and the rest) | 30883 | 4100 | No: change the program | Nothing prohibited on the site |
Sources
Every requirement and rejection reason the checklist encodes, with the date it was read. Provider pages change; when your provider's form asks for something this list does not, the form wins. This is a registration aid, not legal advice.
- The Campaign Registry: Brands and CSPsfetched 2026-10-22
- CTIA Messaging Principles and Best Practices (May 2023), §§ 5.1–5.3fetched 2026-10-22
- Twilio: Programmable Messaging and A2P 10DLC (brand types)fetched 2026-10-22
- Twilio: A2P 10DLC, gather the required business informationfetched 2026-10-22
- Twilio: Troubleshooting Standard and Low-Volume Standard Brandsfetched 2026-10-22
- Twilio: Troubleshooting and rectifying Campaignsfetched 2026-10-22
- Twilio error 30881: Invalid Brand Support Emailfetched 2026-10-22
- Twilio error 30882: Terms & Conditionsfetched 2026-10-22
- Twilio error 30883: Content Violationfetched 2026-10-22
- Twilio error 30886: Invalid Campaign Descriptionfetched 2026-10-22
- Twilio error 30887: Opt-out Errorfetched 2026-10-22
- Twilio error 30889: Embedded Phone Numberfetched 2026-10-22
- Twilio error 30890: Subscriber Helpfetched 2026-10-22
- Twilio error 30891: Invalid Website URLfetched 2026-10-22
- Twilio error 30892: Public URL Shortenersfetched 2026-10-22
- Twilio error 30893: Sample Message and Use-casefetched 2026-10-22
- Twilio error 30896: Opt-in Errorfetched 2026-10-22
- Twilio error 30898: Excessive EINfetched 2026-10-22
- Twilio error 30907: Website URL Validation Issuefetched 2026-10-22
- Twilio error 30908: Compliant Privacy Policy Requiredfetched 2026-10-22
- Twilio error 30909: Message Flow or Call to Actionfetched 2026-10-22
- Twilio error 30910: Campaigns must be submitted in Englishfetched 2026-10-22
- Twilio error 30911: Duplicate template textfetched 2026-10-22
- Twilio error 30917: All opt-in methods must be describedfetched 2026-10-22
- Twilio error 30921: Website requires authenticationfetched 2026-10-22
- Twilio error 30924: Consent agreement languagefetched 2026-10-22
- Twilio error 30925: Opt-in must be unchecked by defaultfetched 2026-10-22
- Twilio error 30933: Privacy Policy URL is requiredfetched 2026-10-22
- Twilio error 30934: Terms and Conditions URL is requiredfetched 2026-10-22
- Bandwidth: How to register a brand for 10DLC (page dated 2026-06-10)fetched 2026-10-22
- Bandwidth: 10DLC campaign vetting tips and tricks (page dated 2026-04-20)fetched 2026-10-22
- Bandwidth: vetting rejection reasons (page dated 2026-09-18)fetched 2026-10-22
- Bandwidth: 10DLC fees (Authentication+ scope; page dated 2026-09-16)fetched 2026-10-22
- Telnyx: 10DLC quickstart and troubleshootingfetched 2026-10-22