A2P 10DLC campaign rejection

30925: the consent box on your form

This rejection is about one control on one form, and there are only two ways to earn it. Both are quick to fix and neither is obvious from the error text.

Cause one: the box is already ticked

The form loads with "send me text updates" selected. The customer can untick it, so it feels like a choice. It is not treated as one: consent has to be something the person actively did, not something they failed to undo.

Cause two, and this is the common one: there is no separate box

Your form has a single checkbox reading something like "I agree to the Terms of Service and Privacy Policy." That is named in the carrier rules as a rejection on its own, even when your terms do mention messaging. Agreeing to your terms is not the same act as agreeing to be texted, and it has to be its own tick.

What a passing form looks like

The test to apply to your own form: can somebody who will not agree to texts still send you an enquiry? If not, consent is a condition of service, and that is the objection.

What to change

Split the one box into two. Leave the messaging one unchecked. Make sure the form still submits without it. If the form sits behind a login, host a screenshot of it at a public URL and submit that as evidence. Then edit the rejected campaign rather than recreating it.

Source: Twilio's own documentation for error 30925, last updated 27 October 2026.

See which of these your own site would fail

We run the same checks a carrier review runs, on the public pages of your website, in about a second. No sign-in and nothing installed.

Scan my website free →

If you would rather hand the list to whoever built your site, that is a perfectly good outcome. If you would rather we built the pages, that is what we do.

We are not lawyers and this is not legal advice. It is a screening tool, the same one we run over our clients' marketing before it ships.