Linxi
⚡
Two ways to get a number: let Linxi provide one, or connect your own carrier
Search & Buy a Number in Linxi gets you a managed number with the carrier and A2P registration handled for you. If you connect your own Twilio account instead, the Twilio steps here follow Twilio's redesigned console at 1console.twilio.com as it was when they were written; Twilio may move things since.

Help Center / The Key To Submitting A2P and Getting Accepted

The Key To Submitting A2P and Getting Accepted

The mechanics of filling in the campaign form are covered in A2P Campaign Registration. This page is the other half: what TCR reviewers actually look for, why submissions get rejected, and the exact patterns that have gotten real campaigns approved.

⚡ Based on real A2P campaign submissions and rejections. These are the patterns that actually get campaigns approved.

Why Most Campaigns Get Rejected

The most common rejection reason, by a wide margin, is this one:

"The campaign submission has been reviewed and rejected due to issues verifying the Call to Action (CTA) provided for the campaign."

In the submissions we've seen, this is the most common failure by far. It means TCR reviewers visited your opt-in URL and either:

  • Couldn't find a clear opt-in form
  • The form didn't have explicit SMS consent language
  • The opt-in description didn't match what they found
  • The opt-in description was too vague
â„šī¸ Reviewers visit your URLs and check your opt-in flow. If they can't verify it quickly and without guessing, it gets rejected.

The Sample Message Formula That Gets Approved

Based on successful approvals, every sample message needs all six of these — not most of them, all of them.

1

Brand or sender name at the start

❌ "Your appointment is tomorrow at 2pm"

✅ "Northside Medical: Your appointment is tomorrow at 2pm"

2

A real phone number used naturally in context

❌ Messages will include phone numbers (just checking the box)

✅ "Call us at +1(561) 555-0142 for more information"

3

A real URL used naturally in context

❌ Messages will include embedded links (just checking the box)

✅ "Visit NorthsideMedical.com to reschedule"

4

HELP keyword explicitly mentioned

✅ "Reply HELP for help"

5

STOP keyword explicitly mentioned

✅ "Reply STOP to cancel" or "STOP to opt out"

6

Message and data rates disclosure

✅ "Msg & data rates may apply"

The winning formula

[Brand/Sender] + [Clear purpose] + [Real URL] + [Real phone] + HELP + STOP + Msg & data rates may apply
âš ī¸ Simply checking the boxes for "embedded links" and "embedded phone numbers" is NOT enough. You must actually include a real URL and real phone number in your sample messages.

Real Sample Messages That Got Approved

These are real submissions, not invented examples. Adapt the shape, swap in your own brand, number and domain. In the templates below, [Business Name], [yourdomain] and [phone] are for you to fill in — submit your real name, website and number, not the brackets. Brackets are only for content that changes per message, like [DATE] or [First Name].

Medical / Clinical Research (approved)
"Appointment reminder: This is a reminder from Northside Medical that you have an appointment scheduled with us on [DATE] at [TIME]. Please call 561-555-0142 or visit NorthsideMedical.com if you need to reschedule or have any questions. Reply HELP for help, STOP to cancel."
Marketing / Clinical Study
"At Northside Medical we have a new clinical study available for patients ages 65-85. If you are interested reply YES and a team member will follow up. Contact us at NorthsideMedical.com or call +1(561) 555-0142. Reply HELP for help, STOP to cancel. Msg & data rates may apply."
Sole Proprietor / Personal
"[Business Name]: Thanks for signing up for updates. Details and booking at https://[yourdomain].com or call [phone]. Reply HELP for help, STOP to opt out. Msg & data rates may apply."
Sole Proprietor / Personal Event
"[Business Name]: New dates just announced. Full schedule at https://[yourdomain].com or call [phone]. Reply HELP for help, STOP to unsubscribe. Msg & data rates may apply."
Platform / Business
"Hi [First Name]! This is [Business Name] via Linxi. We have an update for you — visit linxi.app or call +15615550123 for details. Reply HELP for help, STOP to cancel. Msg & data rates may apply."
💡 Include at least 5 sample messages. More samples = more data for carriers to identify your traffic = fewer false positives in spam filters.

How to Write Your Opt-In Description

This is the field TCR reviewers scrutinize most carefully. The rules:

  • Be specific about every method recipients can opt in
  • If you mention a web form — the URL must be publicly accessible
  • If you mention verbal consent — describe the exact script
  • Do NOT describe opt-in methods you don't actually use
  • Minimum 40 characters, maximum 2048 characters

For Sole Proprietor campaigns — keep it simple and personal

"Recipients opt in to receive personal messages by one of the following methods: (1) the recipient personally texts this number first initiating the conversation, (2) the recipient verbally provides their phone number and consent in person, or (3) the recipient texts the keyword START to this number. All recipients are personal contacts who have a prior relationship with the sender. Reply STOP to opt out, HELP for help. Msg & data rates may apply."
âš ī¸ Do NOT mention a web form URL for sole proprietor campaigns unless you have a real personal opt-in form at that URL. TCR will visit the URL and verify.

For Business / Low Volume Mixed campaigns

"Recipients opt in to receive SMS messages through one of the following methods: (1) by submitting their phone number through a web form at [YOUR URL] where they check a box stating 'I agree to receive SMS messages from [Business]. Reply STOP to opt out. Msg & data rates may apply.' (2) by texting START to this number, or (3) by verbally providing consent to a business representative. All opt-ins are recorded with timestamp, source, and IP address."

For Medical / Healthcare campaigns

This is the gold standard — it describes the web form and the verbal script, and it separates consent for Customer Care from consent for Marketing so each declared use case has its own documented opt-in.

"Recipients opt in to receive SMS messages from Northside Medical through two methods. (1) WEB FORM — at NorthsideMedical.com/contact, the patient enters their mobile number and checks an unchecked-by-default box stating: 'I agree to receive SMS messages from Northside Medical about my appointments and study opportunities. Msg frequency varies. Msg & data rates may apply. Reply STOP to opt out, HELP for help.' Two separate checkboxes are presented: one for appointment and care messages (Customer Care) and one for study opportunity messages (Marketing). Consent is not a condition of care or of study participation. (2) VERBAL — during in-person visits and inbound phone calls, staff read the following script verbatim: 'Would you like to receive text messages from Northside Medical at this number? We'd send you appointment reminders and, if you'd like, occasional notices about new clinical studies you may qualify for. Message frequency varies, message and data rates may apply, and you can reply STOP at any time to opt out or HELP for help. May I have your consent for appointment reminders? And separately, for study notices?' Each answer is recorded independently. All opt-ins are logged with the timestamp, the collecting staff member or web form source, and — for web form submissions — the submitting IP address. Records are retained for the life of the relationship plus four years."
💡 If your campaign covers multiple use cases (Customer Care AND Marketing), describe the opt-in process separately for EACH use case. A missing sample message for one of your declared use cases is a common reason for rejection.

What Your Privacy Policy MUST Say

TCR reviewers visit your privacy policy URL. It must include this phrase — use it word for word rather than a paraphrase:

"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."

Also required on that same page:

  • Message frequency disclosure
  • "Message and data rates may apply" language
  • STOP opt-out instructions
  • HELP instructions
  • What data you collect and how it's used

The full page-by-page breakdown is in the Privacy Policy Guide.

âš ī¸ Your privacy policy URL must be publicly accessible without login. TCR reviewers cannot log in to view it.
🛑 Error 30908 = privacy policy missing required SMS language. Add the exact phrase above and resubmit.

Which Campaign Type Should You Register?

TypeMonthly feeBest forDaily limit
Sole Proprietor$2/moPersonal use onlyLowest
Low Volume Mixed$1.50/moMost businesses6,000 msg/day
Marketing$10/moPure marketing onlyHigher
Customer Care$10/moSupport onlyHigher
Mixed$10/moMultiple use casesHigher

Monthly fees are Telnyx's; on Twilio, Low Volume Mixed at $1.50 is confirmed and other types are billed at Twilio's own rate. Every type also has a one-time brand fee ($4 for a Sole Proprietor, about $4.50 for a business) and a $15 review fee per campaign. See A2P Campaign Registration.

💡 Low Volume Mixed at $1.50/month covers ALL use cases for most small businesses. Choose this unless you have a specific reason to use a more expensive type.
âš ī¸ Sole Proprietor campaigns cannot be used for business messaging. If you are sending on behalf of a business, register a business brand and use Low Volume Mixed instead.

Before You Submit — The Rejection Checklist

âš ī¸ Filed in your own Twilio console, fixing and resubmitting the same campaign is free — but deleting it and creating a new one is a new $15 vetting fee. Filed through Linxi or on Telnyx, every resubmission that reaches carrier review costs another $15. Get it right the first time using this checklist.

A2P Rejection Codes and Fixes

ErrorMeaningFix
CTA rejectionCan't verify opt-in flowFix opt-in description + verify URLs
30908Privacy policy missing SMS languageAdd required phrase to privacy policy
30909CTA incompleteDescribe all opt-in methods specifically
Missing use-case sampleNo sample for one of your declared use casesAdd sample message for each sub-use case
Brand mismatchBrand name doesn't match EINUse exact legal name from IRS documents

What To Do After a Rejection

1

Read the rejection reason carefully

It tells you exactly what failed. The reason text is the single most useful thing you get out of a rejection — don't skim it.

2

Fix the specific issue

Don't change things that weren't flagged. Rewriting fields that already passed just gives the next reviewer something new to reject.

3

Keep the rejection reason with the campaign

Keeping the reason with your campaign notes means the next person to touch the campaign — you, in three weeks — knows what already failed.

4

Resubmit from where you filed

Filed through Linxi (including a number bought through Linxi): use Update & resubmit in Linxi Settings → Number → Linxi Number or A2P 10DLC Campaign — your earlier answers are kept as a draft. Filed in your own Twilio console: click Fix Campaign there. Either way, do NOT register a new campaign from scratch.

5

Make only the necessary changes

Edit the flagged fields, leave the rest alone.

6

Run the pre-submission check before resubmitting

Linxi runs an AI compliance check on your description, samples and opt-in flow before filing; in your own Twilio console, 1console has its own check. Both catch the mechanical problems — missing keywords, under-declared content flags — before a reviewer ever sees them.

7

Submit and wait 1-3 business days

Low Volume campaigns sometimes clear faster.

âš ī¸ Filed in your own Twilio console, fixing and resubmitting the same campaign is free — but deleting it and creating a new one is a new $15 vetting fee. Filed through Linxi or on Telnyx, every resubmission that reaches carrier review costs another $15. Fix everything at once — don't resubmit until you've addressed every issue on the checklist above.
â„šī¸ Registering a new campaign instead of fixing the existing one wastes money and time. Always fix and resubmit the rejected one.