Guide

10DLC Campaign Registration: Use Cases, Samples, and Message Flow

A Campaign tells carriers what you're sending and why. Get the use case, description, sample messages, and opt-in flow to all agree — misalignment is the single biggest rejection cause.

guide Last verified mid-2026 4 min read

A Campaign is a registered messaging use case under your Brand. It describes what you send, who receives it, why, and how people opted in. Your phone numbers attach here, and AT&T’s per-campaign throughput is allocated here. A campaign cannot be submitted until its brand is approved.

Required campaign fields

FieldConstraint
us_app_to_person_usecaseThe category — see use cases below
description40–4096 characters: who sends, who receives, and why
message_samples2–5 samples, each 20–1024 chars; ≥1 must include the brand name; ≥1 should include opt-out language
message_flow (opt-in description)40–2049 characters describing how recipients consent
has_embedded_links, has_embedded_phoneBooleans — must match your samples
Opt-in / opt-out / HELP keywords + messagesEach message 20–320 chars
Alignment is everything
Your description, use case, and sample messages must all agree. A “Customer Care” campaign whose samples are obviously promotional, or a description that mentions links while has_embedded_links is false, gets rejected. Mismatch is the top rejection cause — see rejection reasons.

Use cases and their monthly fees

Pick the use case that genuinely matches your traffic. It drives both your recurring per-campaign fee and, on AT&T, your throughput class. The standard use cases and their TCR monthly fees:

Use caseTCR codeMonthly feeNotes
2FA / OTP2FA$10 / moOne-time passcodes & authentication.
Account NotificationACCOUNT_NOTIFICATION$10 / moAccount alerts to existing customers.
Customer CareCUSTOMER_CARE$10 / moSupport & account management conversations.
Delivery NotificationDELIVERY_NOTIFICATION$10 / moStatus of a delivery.
Fraud AlertFRAUD_ALERT$10 / moSuspicious-activity alerts.
MarketingMARKETING$10 / moPromotional content. Requires express written consent.
MixedMIXED$10 / moTwo or more use cases (e.g. marketing + notifications).
Polling & VotingPOLLING_VOTING$10 / moSurveys and non-political voting.
Low Volume MixedLOW_VOLUME$1.50 / moMultiple use cases at low volume; capped throughput, skips auto secondary vetting.
Sole ProprietorSOLE_PROPRIETOR$2 / moNo-EIN path; 1 campaign, 1–2 numbers, 1,000/day T-Mobile, 15 TPM AT&T.
Charity / 501(c)(3)CHARITY$3 / moAuto-vetted against IRS records. Does not qualify for Political.
EmergencyEMERGENCY$5 / moImminent public-safety / emergency messaging.
PoliticalPOLITICAL$10 / mo527/PAC/campaign. Campaign Verify token skips secondary vetting.
Agents & FranchisesAGENTS_FRANCHISES$30 / moBrands with many independent agents/locations.

Special / restricted use cases exist too — CHARITY, EMERGENCY, POLITICAL, AGENTS_FRANCHISES, and SOLE_PROPRIETOR — each with its own eligibility and fee. MIXED covers campaigns that send both promotional and transactional content; if you pick it, include at least one promotional and one transactional sample. See Trust Score and throughput for how use cases map to AT&T’s special classes (Political, Nonprofit, Social, Emergency).

Sample messages: the hygiene rules

Samples are scrutinized closely. Follow these or expect a bounce:

  • 2–5 distinct samples, each 20–1024 characters. Don’t submit five near-identical lines.
  • At least one includes your brand name. Reviewers must see who’s texting.
  • At least one includes opt-out language (e.g., “Reply STOP to cancel”).
  • Use [bracketed] template fields for variables ([name], [code], [date]) rather than fake-looking placeholders.
  • Full HTTPS URLs only. No bit.ly or other link shorteners, no bare http://. Shorteners are filtered and are a frequent rejection trigger.
  • Set the booleans honestly. If any sample contains a link, has_embedded_links = yes; if any contains a phone number, has_embedded_phone = yes.

Example samples (Account Notification):

[Brand]: Your order #[number] has shipped and will arrive [date].
Track it: https://example.com/track/[id]. Reply STOP to opt out.

[Brand]: Your appointment is confirmed for [date] at [time].
Reply HELP for help, STOP to cancel.

Message flow (the opt-in description)

The message_flow field is where you describe, in 40–2049 characters, how recipients opted in and what they get. Reviewers read this against your samples and your website. Be concrete and verifiable:

Customers opt in at checkout on https://example.com by checking an unchecked box that reads “Text me order updates and offers from [Brand]. Up to 4 msgs/mo. Msg & data rates may apply. Reply STOP to cancel, HELP for help.” After submitting, they receive a welcome message confirming the program.

If your opt-in lives behind a login or on paper, you’ll need to supply a hosted screenshot or document link so reviewers can verify it — they can’t see what they can’t reach.

Opt-in, opt-out, and HELP keywords

Every recurring campaign must define keyword handling:

  • Opt-out keywords (STOP / CANCEL / QUIT / UNSUBSCRIBE / END) trigger an immediate one-time confirmation, then no further messages.
  • HELP keywords (HELP / INFO) return your business name and a support contact.
  • Each keyword response message must be 20–320 characters.

These are mandatory and tested. A campaign that doesn’t honor STOP is both a rejection risk and a TCPA liability.

After you submit

Carrier/DCA review commonly runs 3–7 business days (10–15 in peak backlog). If a campaign is rejected, fix every cited code before resubmitting — DCAs don’t credit partial fixes, and each resubmission costs another $15. Read rejection reasons before you resubmit so you don’t burn fees on a second bounce.

Related: Brand registration · Rejection reasons · Fees

Sources