Aggregator-grade pre-flight

Will your 10DLC get approved by carriers?

30+ checks mapped to the same rejection codes the carrier portal, TCR, and carrier-tested reviewers run. Built from real production rejection data — not from a generic compliance PDF.

~1–3 days
Approval if clean
2–6 weeks
Each rejection adds
$10 + $20
Wasted per resubmit
8 codes
Diagnosed individually
🎬 Demo: ✅ Clean & ready ⚠️ Some issues ❌ Will reject Clear
🎁 Preview popup: Green state Amber state Red state Idle state

1 Brand record

The legal entity submitting to The Campaign Registry. Must match your IRS EIN registration exactly — mismatches trigger 3403.

Safe — high approval rate
Professional Services Safe
Real Estate Safe
E-Commerce / Retail Safe
Restaurants & Hospitality Safe
Fitness & Wellness Safe
Education / Tutoring Safe
Non-Profit Safe
Automotive Safe
Home Services / Trades Safe
Technology / SaaS Safe
Other Safe
Caution — review carefully
Healthcare / Medical Review
Political / Advocacy Review
High-risk — usually rejected
Financial Services / Banking High-risk
Lending / Mortgage / Loans High-risk
Crypto / Web3 High-risk
Cannabis / CBD High-risk
Gambling / Sweepstakes High-risk
Adult / Dating High-risk
Don’t have a real multi-page site? Use your ReadySMS opt-in URL (e.g. https://optin.readysms.io/websites/your-slug/…) — that’s the carrier-tested workaround for code 1004.

2 Campaign — basics

The intent of your texting program. Mismatches between use case, description, and opt-in flow are the #1 source of rejections.

TCR-to-portal mapper: MIXEDPromotions + your industry’s primary (Education for training, Alerts for time-sensitive). CUSTOMER_CAREAlerts. MARKETINGPromotions.
consulting firm” is on the blacklist (Tier 2) even though it sounds safe — flagged red.
carrier-tested template
Send first-party customer care and marketing messages offered directly by the messaging party. {Brand} is a {descriptor} that provides products and services to customers in the {industry} industry.

3 Campaign — message flow

The carrier portal allows exactly 2 sample messages. HELP and OPT-OUT have hard format requirements.

0 chars 0 segments GSM-7
0 chars 0 segments GSM-7
Must include at least one of: support email, support phone, or website URL.
Must explicitly say something like “no further messages” or “you will not receive”.

4 Compliance & attributes

Privacy/Terms, opt-in flow, and the binary attributes carriers track.

Affiliate marketing?
Must be No — affiliate-marketing campaigns are auto-rejected.
MMS support
Image / video / audio messages.
Embedded link
Messages contain clickable links.
Embedded phone
Messages contain phone numbers (call/text).
Age-gated
21+ or 18+ content (alcohol, tobacco).
Number pooling
Will rotate across multiple sender numbers.
Brand
Awaiting input
Campaign
Awaiting input
Fill the form to see per-rejection-code verdicts. Nothing leaves this page until you opt in to email-the-report.
1004
3403
7002
7004
7010
2003
6008
6011
    Skip the back-and-forth.
    ReadySMS auto-generates a compliant brand site, opt-in flow, and submission packet that’s passed every check above — including the carrier-tested templates.
    Get approved on the first try →
    Carrier fees comparedsave ~$120 / brand
    ProviderBrandCampaignVetting
    ReadySMS$10$20$0
    Twilio$19$30$100
    Bandwidth$4 + $5/mo$10$40

    Aggregator-grade, not generic

    Most “10DLC compliance checklists” on the internet were written by people who’ve never actually submitted to the carriers. This one matches what real reviewers run.

    01

    Mirrors the carrier portal’s submission shape

    The form fields are the literal carrier-portal submission fields: brand record (legal name, EIN, business type, vertical, address), campaign basics (use case from the carrier portal’s 12, description, attributes), message flow (sample 1, sample 2, HELP, OPT-OUT, welcome).

    02

    Maps every issue to a rejection code

    Each red row tells you which carrier rejection code it would trigger (1004, 3403, 7002, 7004, 7010, 2003, 6008, 6011) and the carrier-tested fix — not vague “make sure your message is compliant.”

    03

    Built from real rejection data

    Every rule encoded here maps to a real rejection we’ve seen on a production submission — not theoretical guidance from a 2-year-old PDF. We submit dozens of brands every week.

    The 8 rejection codes we score against

    Each code maps to a specific check in the form above and a specific fix.

    1004
    Insufficient website depthSingle opt-in page or templated language without real Home / About / Services / FAQ / Contact pages.
    Fix:Multi-page site with schema.org Organization JSON-LD and a real business description. Or use your ReadySMS opt-in URL as the brand website — that’s the SH-tested workaround.
    3403
    Brand info doesn’t match registrationEIN, legal name, or address on submission doesn’t match your IRS EIN registration.
    Fix:Match the IRS records exactly. Same legal name, same address, EIN format XX-XXXXXXX.
    7002
    Lead-gen / affiliate-marketing languagePhrases like “contingency-based fee,” “helps you access,” “we connect you,” “qualifying leads,” “referral fee,” “introducing buyers/sellers.”
    Fix:Frame the brand as communicating with existing clients about ongoing engagements — not pitching prospects.
    7004
    Industry mismatch — financial servicesBots see “mortgage,” “lending,” “loans,” or hardcoded financial language and flag the brand even if you’re a different vertical.
    Fix:Set industry to professional_services. Strip every finance-adjacent phrase from site, terms, messages.
    7010
    Prohibited content matchSpecific blacklisted phrases: consulting firm, debt, credit repair, direct lending, crypto, cannabis, sweepstakes.
    Fix:Replace with carrier-safe alternates. consulting firmprofessional services firm.
    2003
    Wrong use-case combinationSubmitting Chat as a standalone use case — carriers won’t approve it.
    Fix:On the carrier portal, pair Promotions with the brand’s industry use case (Education / Alerts). Never Chat alone.
    6008
    HELP message missing support contactHELP message must include support email, phone, or website URL. Marketing copy here is auto-rejection.
    Fix:Use the canonical: “{Brand}: get support at {website} or {email}. Reply STOP to opt-out, START to resume. Msg & data rates may apply.”
    6011
    OPT-OUT message doesn’t state cessationSTOP response must explicitly confirm that no further messages will be sent.
    Fix:Use the canonical: “You have successfully unsubscribed from {Brand} — no further messages will be sent. Reply START to opt back in.”

    Frequently asked questions

    Plain-English answers about A2P 10DLC approvals, the carrier portal’s submission flow, and how this checker scores you.

    Will my 10DLC brand or campaign be approved?

    Approval depends on five families of checks: brand record integrity (legal name + EIN matching IRS records), industry classification (Financial / Crypto / Cannabis / Gambling / Adult are typically rejected), use-case combination (Chat alone triggers code 2003), language across all submission text (sample messages, brand description, terms, privacy must avoid blacklisted phrases like “consulting firm,” “mortgage,” “debt”), and message-flow templates (HELP per code 6008, OPT-OUT per code 6011).

    What use cases can I select on the carrier portal?

    the carrier portal’s portal exposes 12 use cases (Alerts, Chat, Donation, Education, Fraud Alerts, Promotions, Public Service Announcement, 2FA, Voting/Polling, M2M, Sweepstake, Political) with multi-select up to 5. There is no “MIXED” / “Customer Care” / “Marketing” option — those are TCR labels. To cover carrier-tested’s MIXED, pair Promotions with your industry’s primary use case. Never select Chat alone.

    What is rejection code 6008?

    Code 6008 = HELP message did not include a support contact. Carriers verify recipients can reach a human if they reply HELP. Canonical template: “{Brand}: get support at {website} or {email}. Reply STOP to opt-out, START to resume. Msg & data rates may apply.”

    What is rejection code 6011?

    Code 6011 = OPT-OUT message did not explicitly state cessation. Canonical template: “You have successfully unsubscribed from {Brand} — no further messages will be sent. Reply START to opt back in.”

    What is rejection code 7002?

    Code 7002 = lead-gen / affiliate-marketing / broker-style language. Trigger phrases: “contingency-based fee,” “helps you access,” “we connect you with,” “qualifying leads,” “referral fee,” “introducing buyers/sellers/lenders,” “we partner with lenders.” Replacement framing: describe communicating with existing clients about ongoing engagements.

    How do TCR use cases map to the carrier portal?

    TCR MIXED → the carrier portal Promotions + industry use case. CUSTOMER_CAREAlerts. MARKETINGPromotions. ACCOUNT_NOTIFICATIONAlerts. 2FA2FA. The number of use cases on the carrier portal must equal the number of consent checkboxes on your opt-in page — mismatches are a vetter-detectable rejection vector.

    Safest generic descriptor for my brand?

    Use “professional services firm” or “marketing platform” or “technology company” or “real estate firm.” Do NOT use the literal phrase “consulting firm” — it has triggered rejections even though it sounds carrier-safe. The SH-tested template: “Send first-party customer care and marketing messages offered directly by the messaging party. {Brand} is a {descriptor} that provides products and services to customers in the {Industry} industry.”

    How accurate is this compared to a real review?

    Every rule maps to a rejection we’ve seen on a production submission through the carrier portal. The checker scores 30+ criteria across the same fields the aggregator’s automated review pipeline scans. It’s a high-quality preflight signal — not a guarantee, since carrier review is partially manual. A 90+ score across both Brand and Campaign dramatically improves first-submission approval odds.

    Does this tool send my data anywhere?

    No. The entire rule engine runs in your browser. No backend call, no email gate, nothing transmitted — until you explicitly submit the optional “email me this report” form. Open dev tools and inspect the network tab to verify.

    Skip the failed submissions.

    ReadySMS pre-checks every brand we register. If it would fail, we tell you before you spend the $10 + $20 in carrier fees.

    Start free — 2,500 SMS on us →