Ironwood DigitalTechnical operations
A2P 10DLC · HighLevel Trust Center

Every rejection code, translated into the actual fix.

The text Trust Center shows you is not always the same thing as the fix. This is each code, what the vetter actually objected to, and what to change before you resubmit. Checked line by line against HighLevel's own help articles on campaign rejections and pre-submission validation, September 2026.

Two rules before anything else. Fix every reason listed on the rejection before you resubmit; two reasons, fix one, resubmit, is a third rejection and another vetting fee. And if your code is in the last section, stop resubmitting. Nothing on the form changes that answer.
Fixable

Consent and opt-in (the most common class)

30924

Missing disclosure language

Fix. Put four things next to the checkbox, what messages they will get, how often, "Message and data rates may apply," and "Reply STOP to opt out" (add "Reply HELP for help").

30925

No checkbox, or checkbox pre-checked

Fix. An SMS consent checkbox, unchecked by default.

30923

Consent buried in mandatory terms

Fix. SMS opt-in must be separate and optional; the person must be able to decline texts and still get the service.

30931

No way to decline

Fix. An explicit skip/decline or an unchecked box; one button cannot grant everything.

30913

Marketing consent bundled with transactional

Fix. Separate promo opt-in from appointment/ account messages, or state you only send transactional.

30917

Multiple opt-in methods listed, not all described

Fix. Describe every method in the flow.

30909

Call-to-action / message flow cannot be verified

Fix. Give the full CTA, every consent method, and hosted screenshots if the form is behind a login.

30932

Privacy policy shares opt-in data with third parties

Fix. Add the sentence that mobile information will not be shared with third parties or affiliates for marketing/promotional purposes.

Fixable

Website

30919

Not enough business information

Fix. Company name, what you do, contact info, privacy policy, and a mention of the SMS program on the page.

30920

Website is just a form

Fix. Business name, description, and contact info around the form.

30921

Website requires login

Fix. A public page describing the business and the messaging program.

30922

URL non-functional or non-standard

Fix. A working standard URL; if pre-launch, say so and attach screenshots.

Fixable

Identity

30914

Sole-prop content does not match registered name

Fix. Campaign, samples, and website must all use the registered name.

30915

Registered as sole prop but using a corporate name

Fix. Re-register as a Standard brand with the EIN.

30918

DBA does not match legal name

Fix. Add the DBA to the brand registration.

30926

Campaign references multiple companies

Fix. One campaign per brand.

30927

Opt-in evidence shows a different company

Fix. The form and screenshots must match the registered brand name exactly.

30971

Personal email domain

Fix. Name@yourbusiness.com, not Gmail/Yahoo.

30972

Contact is not an authorized representative

Fix. The client's owner or officer, not the agency, not the freelancer.

Fixable

Use case and content

30910

Non-English fields

Fix. English, with translations alongside any non-English samples.

30911

Copy-pasted identical text across fields/samples

Fix. Every field and sample distinct.

30912

Looks like person-to-person, not A2P

Fix. Describe the software that triggers the message and the benefit to the recipient.

30916

Lead generation vs nurture mismatch

Fix. "generation" is new leads, "nurture" is existing.

30928

Social influencer use case

Fix. Register the business entity, use a standard use case.

30929

Emergency alerts not permitted on 10DLC

Fix. Contact support for alternatives.

30930

Brand at the 100-campaign limit

Fix. Deregister unused campaigns.

Permanent

Not fixable. Stop resubmitting.

Nothing on the form changes these. Every resubmission is another vetting fee for the same answer. The only fix is restructuring what the client actually sends, and sometimes there is no fix.

30953-30958

SHAFT: sex/adult, hate, alcohol without age gate, firearms, tobacco/vape

30940-30952

Disallowed: cannabis/CBD, prescription drugs, payday/high-risk loans, debt collection, gambling, sweepstakes, crypto, MLM, non-compliant use cases (including third-party/affiliate lead generation)

30959-30964

High risk: fraud, phishing, high-risk domain, deceptive marketing, public URL shorteners (bit.ly etc.), HTTP (non-HTTPS) URLs

Process

Three things people get wrong after the fix

The authorized representative on the brand must be the client's owner or officer, never the agency or the freelancer (30972). The contact email must be on the client's business domain, never Gmail or Yahoo (30971). And the legal name must match the IRS letter character for character, including punctuation, or the brand comes back unverified and the brand fee bills again. HighLevel now runs an AI pre-check on the opt-in URL, privacy policy and terms before submission; it flags document problems and does nothing about identity, use case or sample messages, which is where most of the remaining rejections live.

Doesn't fit any of these?

Paste the exact rejection text. You get the cause, free.

No call, no form. Email the wording Trust Center shows you and you'll get back which cause it actually is and whether it's fixable. If you want it fixed, the offers are on the homepage.

Send the rejection text See the offers