TWILIO / TCR VETTING SPECIFICATION

A2P 10DLC Rejection Code Reference

Direct Connect Aggregators (DCAs) and The Campaign Registry reject US A2P 10DLC submissions using deterministic error codes. Select an error code below to inspect the exact HTML DOM, Privacy Policy, or payload fix required before resubmitting.

CodeCategoryRejection ReasonSeveritySpec & Fix
ERR-30925DOM & Opt-In FlowOpt-in must be unchecked by default; active consent required

Pre-checked or missing checkbox

Critical BlockingInspect Fix →
ERR-30924DOM & Opt-In FlowMissing or non-compliant consent agreement language in opt-in flow

Missing CTIA disclosure language

Critical BlockingInspect Fix →
ERR-30931DOM & Opt-In FlowOpt-in process must allow consumers to decline

Mandatory SMS consent required to continue

Critical BlockingInspect Fix →
ERR-30913DOM & Opt-In FlowMarketing and informational consent must be separate

Bundled marketing + transactional consent

Critical BlockingInspect Fix →
ERR-30909DOM & Opt-In FlowMessage Flow or Call to Action incomplete or unverified

Incomplete message_flow description

Critical BlockingInspect Fix →
ERR-30917DOM & Opt-In FlowAll opt-in methods must include complete workflow descriptions

Undocumented secondary opt-in path

High Rejection RiskInspect Fix →
ERR-30921DOM & Opt-In FlowWebsite requires authentication and cannot be reviewed

Opt-in form locked behind login wall

Critical BlockingInspect Fix →
ERR-30923DOM & Opt-In FlowMessage consent cannot be required for service use

SMS consent forced as condition of service

Critical BlockingInspect Fix →
ERR-30932Privacy & LegalPrivacy policy must disclose third-party mobile data non-sharing

Privacy policy allows third-party sharing

Critical BlockingInspect Fix →
ERR-30908Privacy & LegalCampaign vetting rejection — Compliant Privacy Policy Required

Non-compliant or unlinked Privacy Policy

Critical BlockingInspect Fix →
ERR-30882Privacy & LegalCampaign vetting rejection — Terms & Conditions Non-Compliant

Missing SMS Terms or third-party lead gen

Critical BlockingInspect Fix →
ERR-30933Privacy & LegalPrivacy Policy URL is required for A2P 10DLC campaign registration

Missing PrivacyPolicyUrl API parameter

Critical BlockingInspect Fix →
ERR-30934Privacy & LegalTerms and Conditions URL is required for A2P 10DLC registration

Missing TermsAndConditionsUrl parameter

Critical BlockingInspect Fix →
ERR-30922Privacy & LegalWebsite does not meet campaign verification requirements

Unverifiable website or missing policy links

Critical BlockingInspect Fix →
ERR-30892Sample MessagesInvalid Sample Message — Public URL shorteners prohibited

bit.ly or TinyURL in sample messages

Critical BlockingInspect Fix →
ERR-30893Sample MessagesInconsistency between Sample Message and Use-Case

Samples missing brand name, brackets, or STOP

Critical BlockingInspect Fix →
ERR-30890Sample MessagesCampaign vetting rejection — Subscriber Help (HELP response invalid)

HELP message missing brand or support contact

Critical BlockingInspect Fix →
ERR-30887Sample MessagesCampaign vetting rejection — Opt-out Error (STOP response invalid)

STOP auto-reply or keywords non-compliant

Critical BlockingInspect Fix →
ERR-30907Brand & DescriptionWebsite URL validation issue — Brand identity mismatch

Website brand does not match registration

High Rejection RiskInspect Fix →
ERR-30919Brand & DescriptionWebsite lacks sufficient business or messaging use case info

Thin landing page or bare lead form

High Rejection RiskInspect Fix →
ERR-30886Brand & DescriptionInvalid Campaign Description — Insufficient detail

Campaign description too vague

High Rejection RiskInspect Fix →
ERR-30894Brand & DescriptionInvalid Brand Information — Sender mismatch in description

Description omits registered brand

High Rejection RiskInspect Fix →
ERR-30881Brand & DescriptionCampaign vetting rejection — Invalid Brand Support Email

Free Gmail/Yahoo support email on Brand

High Rejection RiskInspect Fix →
ERR-30910Brand & DescriptionA2P 10DLC campaigns must be submitted in English

Non-English filing without translation

High Rejection RiskInspect Fix →
ERR-30498Toll-Free VerificationToll-Free Verification — Opt-in workflow must match submission details

Toll-Free opt-in proof contradicts description

Critical BlockingInspect Fix →
ERR-30508Toll-Free VerificationToll-Free Verification — Pre-selected opt-in checkbox is not allowed

Toll-Free pre-checked consent box

Critical BlockingInspect Fix →
ERR-30513Toll-Free VerificationToll-Free Verification — Opt-in not sufficient: Language Unclear

Toll-Free form doesn't explicitly say SMS

Critical BlockingInspect Fix →
ERR-305562026 Unified Policy (305xx)2026 Unified Policy — SMS consent is bundled with other communication channels

SMS bundled with Email or Voice call consent

Critical BlockingInspect Fix →
ERR-305632026 Unified Policy (305xx)2026 Unified Policy — Terms of Service missing carrier liability disclosure

Terms page missing carrier liability clause

High Rejection RiskInspect Fix →
ERR-30880Brand & DescriptionCampaign vetting rejection — Unspecified DCA Vetting Error

Generic DCA rejection (check opt-in & policy)

Critical BlockingInspect Fix →
ERR-30883Sample MessagesCampaign vetting rejection — Content Violation (SHAFT)

Prohibited Sex, Hate, Alcohol, Firearms, Tobacco/CBD

Critical BlockingInspect Fix →
ERR-30884Sample MessagesCampaign vetting rejection — Spam or Phishing Indicators

Phishing-style links or deceptive sender copy

Critical BlockingInspect Fix →
ERR-30885Privacy & LegalCampaign vetting rejection — High-Risk Financial or Third-Party Sharing

Lead selling, debt collection, or payday loans

Critical BlockingInspect Fix →
ERR-30888DOM & Opt-In FlowCampaign vetting rejection — Age Gate Not Present / Not Acceptable

Missing 21+ DOB age gate on age-restricted site

Critical BlockingInspect Fix →
ERR-30889Sample MessagesCampaign vetting rejection — Embedded Phone Number Attribute Error

has_embedded_phone flag mismatches samples

High Rejection RiskInspect Fix →
ERR-30891Brand & DescriptionCampaign vetting rejection — Invalid Website URL

Broken, unreachable, or wrong opt-in URL

Critical BlockingInspect Fix →
ERR-30895Brand & DescriptionCampaign vetting rejection — Direct Lending or Loan Arrangement Error

Lending/mortgage site missing Direct Lending flag

Critical BlockingInspect Fix →
ERR-30896DOM & Opt-In FlowCampaign vetting rejection — Opt-In Workflow Error

Opt-in workflow missing or non-compliant

Critical BlockingInspect Fix →
ERR-30897Sample MessagesCampaign vetting rejection — Disallowed Content (High-Risk Verticals)

Gambling, crypto, debt collection, or third-party lead gen

Critical BlockingInspect Fix →
ERR-30911Brand & DescriptionDuplicate template text — Each campaign field must be unique

Identical text pasted into Description, Flow & Samples

High Rejection RiskInspect Fix →
ERR-30916Brand & DescriptionLead generation prohibited — First-party lead nurturing only

Third-party lead gen vs. first-party nurturing

Critical BlockingInspect Fix →
ERR-30918Brand & DescriptionDBA or Brand Name mismatch between registration and website

Missing DBA disclosure when legal name differs

High Rejection RiskInspect Fix →
ERR-30920Brand & DescriptionWebsite is only a form — Insufficient business context

Standalone funnel form with no website content

Critical BlockingInspect Fix →
ERR-30926Brand & DescriptionMultiple companies cannot share a single A2P 10DLC campaign

Multi-tenant / agency umbrella campaign prohibited

Critical BlockingInspect Fix →
ERR-30936Sample MessagesHELP keyword response must include brand name and support contact

HELP reply missing phone/email/URL or brand

Critical BlockingInspect Fix →
ERR-30940Sample MessagesDisallowed Content — Cannabis, Marijuana, CBD, or Kratom

Cannabis / CBD / Hemp / Kratom prohibited

Critical BlockingInspect Fix →
ERR-30963Sample MessagesProhibited Public URL Shortener in Campaign or Samples

March 2026 code for bit.ly / tinyurl shorteners

Critical BlockingInspect Fix →
ERR-30964Sample MessagesNon-Secured HTTP URL in Campaign Registration or Samples

Insecure http:// link instead of https://

Critical BlockingInspect Fix →
ERR-30971Brand & DescriptionBusiness Email Must Use Official Corporate Domain (No Freemail)

Gmail/Yahoo/Outlook email rejected for Brand

High Rejection RiskInspect Fix →
ERR-305532026 Unified Policy (305xx)2026 Unified Policy — SMS cannot be forced as the sole 2FA/OTP method

Mandatory SMS checkbox on 2FA / login flow

Critical BlockingInspect Fix →
ERR-FCC-AI-TCPAFCC AI Voice / TCPAFCC TCPA Ruling — Prior Express Written Consent for AI-Generated Voice Calls

Missing AI / prerecorded voice call disclosure

Critical BlockingInspect Fix →