TextApprovedFree checker

Guides › Error 30896

Error 30896: how to fix an opt-in error

Last checked against official sources: October 30, 2026. Carrier rules change, so check the source links before you resubmit.

Got a different message, or several codes at once? Paste the full rejection into the free rejection checker and it will sort out which fixes apply.

What it means

Twilio labels 30896 "Opt-in Error." It's close to 30909, but broader: the reviewer couldn't tell who signs up, where, and how, or the disclosures around the sign-up were incomplete. Often the policy and the sign-up text are fine, and the problem is simply that the message flow field doesn't tell the full story.

Why it usually happens

How to fix it

  1. List every way a person can opt in: web form, keyword, in person, phone, checkout.
  2. For each one, say where it happens, what the person sees and what they do, in that order.
  3. Attach proof for each path: a live page URL, or a public link to a screenshot, photo or script.
  4. Quote the consent wording people agree to, including brand name, message type, frequency, carrier rates, STOP and HELP.
  5. Check the privacy policy has a non-sharing statement for phone numbers (see our 30908 guide).
  6. Edit and resubmit the rejected campaign rather than deleting it. A brand-new campaign means a new vetting fee and a fresh wait.

Questions and answers

What's the difference between 30896 and 30909?

Both are about consent. 30909 tends to mean the reviewer couldn't verify the call to action they were pointed to; 30896 is a wider "we can't follow your opt-in" flag. The fix is the same: a complete flow with public proof. See the 30909 guide.

Can I say customers consent by giving us their number?

Not on its own. Reviewers want a specific, separate agreement to receive texts, not consent assumed from a phone number on file.

Do I need screenshots if my form is live?

A live public page is usually enough. Screenshots help when the form sits inside an app, a checkout or a login area.

How long should the message flow be?

Long enough to cover every path clearly. A few short paragraphs is typical; one sentence almost never passes.

Next step

Run your rejection text through the free checker to confirm nothing else was flagged. If you'd rather not rewrite the fields yourself, our approval packets cover the description, samples, opt-in wording and policy text. Carriers make the final call, so we can't promise approval, but we revise free until it goes through.

Sources

TextApproved is independent and not affiliated with Twilio, HighLevel or any carrier. This guide is not legal advice.

Got a rejection message?

Paste it into the free A2P 10DLC rejection checker for a plain-language diagnosis in seconds. No login.

Open the free checker   Browse rejection guides