Many 10DLC campaign rejections have nothing to do with what you plan to send. They come from a mismatch: the description says "appointment reminders," the sample messages include a promo code, the opt-in form never mentions texting, and the reviewer has no way to connect the three. The fix is rarely more words. It is making four fields tell the same story.

This post gives you working text for each of those fields: opt-in flows, campaign descriptions and sample messages for the most common use cases. Each one is paired with a rejected version and the reason it fails. Every business name below is a made-up example. Swap in your own, and keep the structure.

What the reviewer actually lines up

When a campaign is reviewed, the reviewer reads these fields side by side:

  1. Campaign description: who you are, who you text, and why.
  2. Sample messages: usually two to five that represent real traffic.
  3. Opt-in flow (call-to-action): where and how a person agrees to texts.
  4. Your website: it has to exist, match the brand, and carry a privacy policy that covers SMS.

If any one of these contradicts another, expect a rejection. The full list of checks is in 10DLC rules and requirements: what carriers actually check. Picking the wrong use-case category is its own failure mode, covered in matching use-case to what you actually send.

Opt-in flow examples: approved vs rejected

Web form with a checkbox (approved)

☐ By checking this box, I agree to receive recurring appointment reminders and promotional texts from Bright Smile Dental at the number provided. Consent is not a condition of purchase. Msg frequency varies. Msg & data rates may apply. Reply HELP for help, STOP to cancel. [Privacy Policy] [Terms]

This version works for five reasons:

  • The box is unchecked by default and separate from any other agreement.
  • It names the brand.
  • It names the message types.
  • It says consent is optional.
  • It includes frequency, rates, HELP/STOP and links.

In the registration field, describe it like this: "Customers opt in via an unchecked checkbox on our booking form at brightsmile.example/book. Screenshot attached."

Web form (rejected)

By submitting this form you agree to our Terms of Service and to be contacted by us and our partners.

This fails because it never mentions SMS, bundles consent into the terms, and shares consent with "partners." Third-party sharing language alone is enough for a rejection. If your privacy policy says you share data with affiliates for marketing, add a line excluding mobile numbers and opt-in data.

Keyword opt-in (approved)

Signage reads: "Text DEALS to (555) 010-0142 for weekly offers from Corner Cycle Shop. Msg & data rates may apply. Up to 4 msgs/mo. Reply STOP to cancel."

The confirmation reply then says:

Corner Cycle Shop: You're signed up for weekly offers, up to 4 msgs/mo. Msg & data rates may apply. Reply HELP for help, STOP to cancel.

Verbal or in-person opt-in (approved, with detail)

"Front-desk staff ask patients at check-in whether they want text reminders. Staff record the answer in our patient system with a timestamp. Patients then receive a confirmation text with STOP instructions."

Reviewers reject a vague "customers agree verbally." They approve a described process with a record and a confirmation text.

Keeping the consent record

On recordkeeping, Ready records your opt-in attestation on every campaign you send and every API send that attests consent: who sent, to how many, and when. That builds an audit trail of your promises. It is not a per-contact consent record. The opt-in time, the wording shown and the page URL for each person have to live in your own system or store. A keyword reply doesn't create that record in Ready either.

For more checkbox wording variants, see the exact opt-in wording that clears 10DLC registration.

Campaign description examples

Appointment reminders (approved)

Bright Smile Dental sends appointment confirmations, reminders 24 hours before visits, and rescheduling notices to existing patients who opted in via our online booking form or at check-in. Patients can reply C to confirm or R to reschedule. Messages are sent from our scheduling system.

Marketing (approved)

Corner Cycle Shop sends up to 4 promotional texts per month (sales, new arrivals, event invites) to customers who opted in by texting DEALS to our number or checking an SMS box at online checkout.

The rejected version

We send texts to our customers.

It names no brand, no message types, no opt-in source and no frequency. Reviewers can't approve what they can't picture. A description doesn't need to be long, but it needs four things:

  • Who sends.
  • Who receives.
  • What kind of messages go out.
  • How recipients agreed.

Sample messages by use case

Each approved sample below does four things. It starts with the brand name, reads like real traffic, contains nothing that conflicts with the description, and at least one sample includes opt-out language.

Appointment reminders

Approved:

Bright Smile Dental: Hi Dana, reminder of your cleaning Tue 3/4 at 2:30 PM. Reply C to confirm or R to reschedule. Reply STOP to opt out.

Rejected:

Reminder: your appt is tomorrow! Book a whitening session this week for 20% off: bit.ly/xyz

This fails twice. It slips a promotion into a reminder campaign, and it uses a public link shortener. Shared shorteners are a common filtering trigger. Use a branded domain or the full URL.

Promotions and marketing

Approved:

Corner Cycle Shop: Spring tune-ups are $59 through Sunday. Book at cornercycle.example/tuneup. Reply STOP to opt out.

Rejected:

FINAL CHANCE!!! Ur exclusive deal expires TONIGHT, act now or lose it forever!!!

All caps, stacked punctuation, no brand and no opt-out. It reads like spam to a filter and to a person.

Account notifications

Approved:

Ledgerly: Your invoice #2291 for $340.00 is due 4/15. View it at ledgerly.example/billing. Reply STOP to opt out.

Rejected:

Your account needs attention. Click here to verify your details: [link]

It has no brand, gives vague urgency, and asks for verification behind a link. That is the exact shape of phishing. Notifications should say what happened and where to see it.

Customer care and two-way support

Approved:

Corner Cycle Shop: Thanks for reaching out about your repair. Your bike is ready for pickup today until 6 PM. Reply here with any questions.

Two-way samples help when you expect conversation. They show the reviewer you're answering people, not just broadcasting.

Content that needs extra handling

Content about cannabis, firearms, hate speech or alcohol and tobacco (SHAFT) triggers rejection or special review. So do debt relief, loans and similar high-risk categories. The rewrite approach is in 10DLC rejected for 'SHAFT'? The sample-message rewrite that passes.

Advocacy alerts, donation appeals and voter outreach have an extra step on Ready. Email support@tryready.com before the first send and wait for our reply, because registering alone isn't enough for those.

Common rejection triggers and their fixes

Rejection triggerWhat it looks likeFix
Opt-in doesn't mention SMS"You agree to be contacted"Name SMS, the brand and the message types
Pre-checked consent boxBox ticked by defaultLeave it unchecked and optional
Third-party sharing"We may share with partners"Exclude mobile numbers and opt-in data from sharing in the privacy policy
Samples don't match the use casePromo inside a reminders campaignRegister the campaign type you actually send
No brand in samples"Your appt is tomorrow"Open every sample with the business name
Public link shortenerbit.ly, tinyurlUse a branded domain or full URL
Missing opt-outNo STOP language anywhereAdd "Reply STOP to opt out" to at least one sample
Website doesn't matchBrand name differs, or the site is under constructionLive site, matching name, SMS-aware privacy policy

Sample length and what it costs once you're live

Sample messages are also a preview of your bill, because every segment is metered.

The dental reminder above is about 130 characters of plain GSM-7 text, which makes it 1 segment. Add one tooth emoji and the whole message switches to unicode. The limit drops to 70 characters, or 67 per part in a multipart message, so the same reminder becomes 2 segments.

On Ready's Standard rate of $0.0075/segment plus a $0.0045 carrier fee per segment, 1,000 reminders a month cost:

  • Without the emoji: 1,000 × 1 × $0.0075 = $8, plus 1,000 carrier fees.
  • With the emoji: 1,000 × 2 × $0.0075 = $15, plus 2,000 carrier fees.

Ready's all-in prices per segment include the carrier fee but not screening: Scrub lists and Number validation, the two switches in Settings under Compliance, each add $0.003 per segment when switched on, shown as screening on your bill, and both are off by default. Unless you turn the opt-out footer off, the first text to each contact, and one again from time to time, also gets "Reply STOP to opt out" and your business name if the message does not already have them, so a text close to the segment limit can bill one more segment.

Replies are billed the same way as sent texts.

Curly quotes, long dashes and ellipses don't change the count on Ready, because we swap them for plain characters before sending. Emoji do change it, so decide whether they earn their place.

What registration costs and how long it takes

On Ready, brand and campaign registration is done in the app:

  • At submit: you pay $25, which is the first month ($25/mo for registration). There is no setup fee.
  • After that: $25/mo for registration, plus $2 per number.
  • Timing: most approvals take 2 to 7 days.

Before a campaign send, Ask AI can check a text for spam words, a missing brand name or a shortener. Platforms registering on behalf of their own customers can check status through the API (GET /v1/registration). See the quickstart in our docs.

The practical takeaway

Write the opt-in first, then the description, then the samples. Check that a stranger reading all three would describe the same program:

  • The same brand in every field.
  • The same message types.
  • A visible STOP path.
  • A website that backs it all up.

Then keep each person's consent record in your own system, because that's the record you'll need if anyone asks.

On Ready you confirm your business details and we write the description, samples and opt-in page for you, following these rules. Create an account and start from the Registration page. Use the 20 free one-to-one texts before you pay for registration, since they end once it's paid.