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.
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
| Field | Constraint |
|---|---|
us_app_to_person_usecase | The category — see use cases below |
description | 40–4096 characters: who sends, who receives, and why |
message_samples | 2–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_phone | Booleans — must match your samples |
| Opt-in / opt-out / HELP keywords + messages | Each message 20–320 chars |
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 case | TCR code | Monthly fee | Notes |
|---|---|---|---|
| 2FA / OTP | 2FA | $10 / mo | One-time passcodes & authentication. |
| Account Notification | ACCOUNT_NOTIFICATION | $10 / mo | Account alerts to existing customers. |
| Customer Care | CUSTOMER_CARE | $10 / mo | Support & account management conversations. |
| Delivery Notification | DELIVERY_NOTIFICATION | $10 / mo | Status of a delivery. |
| Fraud Alert | FRAUD_ALERT | $10 / mo | Suspicious-activity alerts. |
| Marketing | MARKETING | $10 / mo | Promotional content. Requires express written consent. |
| Mixed | MIXED | $10 / mo | Two or more use cases (e.g. marketing + notifications). |
| Polling & Voting | POLLING_VOTING | $10 / mo | Surveys and non-political voting. |
| Low Volume Mixed | LOW_VOLUME | $1.50 / mo | Multiple use cases at low volume; capped throughput, skips auto secondary vetting. |
| Sole Proprietor | SOLE_PROPRIETOR | $2 / mo | No-EIN path; 1 campaign, 1–2 numbers, 1,000/day T-Mobile, 15 TPM AT&T. |
| Charity / 501(c)(3) | CHARITY | $3 / mo | Auto-vetted against IRS records. Does not qualify for Political. |
| Emergency | EMERGENCY | $5 / mo | Imminent public-safety / emergency messaging. |
| Political | POLITICAL | $10 / mo | 527/PAC/campaign. Campaign Verify token skips secondary vetting. |
| Agents & Franchises | AGENTS_FRANCHISES | $30 / mo | Brands 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.lyor other link shorteners, no barehttp://. 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