TWILIO / TCR ERROR 30925DOM & Opt-In FlowRe-vetting penalty: $15.00+ per failed resubmission cycle

Opt-in must be unchecked by default; active consent required

Carrier reviewers (DCA) inspect your live opt-in URL. If your form lacks a dedicated SMS consent checkbox, pre-selects the checkbox on page load, or bundles SMS consent with general Terms of Service acceptance, the campaign fails with Error 30925.

Why DCA Reviewers Trigger Error 30925

  • The web form only has a phone number input and a Submit button with no checkbox.
  • The <input type="checkbox"> has the checked attribute or is ticked by JavaScript on load.
  • A single checkbox asks the user to agree to 'Terms of Service, Privacy Policy, and SMS messages' together.

Side-by-Side Technical Comparison

FAILRejected DOM Pattern (Triggers 30925)
<form>
  <input type="tel" name="phone" required />
  <!-- REJECTED: Pre-checked and bundled with Terms -->
  <label>
    <input type="checkbox" name="tos" checked required />
    I agree to the Terms of Service, Privacy Policy, and to receive SMS updates.
  </label>
</form>
PASSCompliant DOM Pattern (Passes 30925)
<form>
  <input type="tel" name="phone" />
  <label>
    <input type="checkbox" name="tos" required />
    I agree to the <a href="/terms">Terms of Service</a> and <a href="/privacy">Privacy Policy</a>.
  </label>
  <!-- PASSES: Separate control, unchecked by default, optional -->
  <label>
    <input type="checkbox" name="sms_consent" value="yes" />
    I agree to receive recurring promotional and appointment SMS from Acme Dental.
    Message frequency varies. Msg & data rates may apply. Reply STOP to unsubscribe, HELP for help.
  </label>
</form>

Other Common A2P 10DLC Rejection Codes