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.
The legal entity submitting to The Campaign Registry. Must match your IRS EIN registration exactly — mismatches trigger 3403.
https://optin.readysms.io/websites/your-slug/…) — that’s the carrier-tested workaround for code 1004.The intent of your texting program. Mismatches between use case, description, and opt-in flow are the #1 source of rejections.
Promotions + your industry’s primary (Education for training, Alerts for time-sensitive). CUSTOMER_CARE → Alerts. MARKETING → Promotions.{Brand} is a {descriptor} that provides products and services to customers in the {industry} industry.
The carrier portal allows exactly 2 sample messages. HELP and OPT-OUT have hard format requirements.
Privacy/Terms, opt-in flow, and the binary attributes carriers track.
| Provider | Brand | Campaign | Vetting |
|---|---|---|---|
| ReadySMS | $10 | $20 | $0 |
| Twilio | $19 | $30 | $100 |
| Bandwidth | $4 + $5/mo | $10 | $40 |
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.
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).
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.”
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.
Each code maps to a specific check in the form above and a specific fix.
XX-XXXXXXX.professional_services. Strip every finance-adjacent phrase from site, terms, messages.consulting firm, debt, credit repair, direct lending, crypto, cannabis, sweepstakes.consulting firm → professional services firm.Plain-English answers about A2P 10DLC approvals, the carrier portal’s submission flow, and how this checker scores you.
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).
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.
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.”
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.”
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.
TCR MIXED → the carrier portal Promotions + industry use case. CUSTOMER_CARE → Alerts. MARKETING → Promotions. ACCOUNT_NOTIFICATION → Alerts. 2FA → 2FA. 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.
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.”
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.
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.
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 →