A2P campaign rejected in GoHighLevel? Rejection reasons and fixes (2026)

By / Published Nov 3, 2026 / Updated Nov 3, 2026

Heads up: the trial buttons on this page use my affiliate link. If you sign up through it I get a commission. It doesn't cost you more.

When your A2P campaign gets rejected in GoHighLevel, go to Settings > Phone System > Trust Center > Brands & Campaigns > Campaigns, click View required fixes next to every rejection reason, fix all of them, check the whole submission still lines up, and resubmit. Resubmitting is free since Feb 1, 2026, unless the code is a forbidden category (cannabis, loans, gambling, SHAFT and the rest), the brand type is wrong, or you need to change the use case or opt-in message, because those need a new campaign or a new brand.

Below, every code HighLevel lists is mapped to the exact fix, along with the checkbox and privacy policy wording HighLevel says passes, when to start over with a new brand, and what to do when the campaign is approved but texts still fail with 30034 or 30007. If you haven't registered yet, start with A2P 10DLC registration. This page only covers what to do after a rejection.

Short version

  • 01A campaign can have several rejection reasons. Click View required fixes on each one. Fixing only the first is the classic way to get rejected 4 times in a row.
  • 02Resubmitting the same campaign costs nothing since Feb 1, 2026. A new campaign on the same brand is $15. The monthly campaign fee started the day you first submitted, approved or not.
  • 03The use case and the opt-in message can't be edited on a resubmit. If either one is the problem, you need a new campaign.
  • 04LLC registered as Sole Proprietor (30903, 30915)? Resubmitting will never work. Register the brand again as Standard with the EIN.
  • 05Forbidden content codes (30940 to 30964, and the older 30883, 30884, 30885, 30897) aren't eligible for resubmission. Your only route is an appeal to support if you think it's a mistake.
  • 06Approved but texts fail with 30034? The number isn't linked to the campaign, or a Sole Prop account has more than one local number.

How to fix a rejected A2P campaign, step by step

  1. 01

    Open the rejected campaign

    In the sub-account go to Settings > Phone System > Trust Center, open Brands & Campaigns, then the Campaigns tab. Find the campaign marked Rejected. On the $497 plan you can do this for every client from the Agency Trust Center instead.

  2. 02

    Open View required fixes for every reason

    Each reason has a View required fixes link. The pop-up shows the error code, the rejection category, what it means and the correction needed. The advice is different for Chat Widget campaigns and manual (self-serve) campaigns, so read the version that matches how you registered.

  3. 03

    Check whether it can be resubmitted at all

    Look the code up in the tables below. Forbidden and high-risk codes can't be resubmitted. Brand problems need a new brand. A change to the use case or opt-in message needs a new campaign. Everything else gets fixed and resubmitted.

  4. 04

    Fix the website and policies first

    Most fixes live on the client's site, not in the form: a second phone number form, a missing privacy policy line, a terms page that doesn't load. Open the exact URL you submitted in a private browser window and make sure it loads with no login, no cookie wall and no 404.

  5. 05

    Re-read the whole submission

    HighLevel's own advice: check the description, use case, sample messages, website, opt-in flow, privacy policy and terms all describe the same business before you resubmit, not only the field that was flagged.

  6. 06

    Resubmit and wait

    Resubmit from the same campaign. While it's Pending, don't create a second campaign or resubmit again. Fast Track aims for a decision within 3 business days, and carriers can raise new issues on the next review.

Opt-in and consent rejections and their fixes

These are the most common rejections, and HighLevel's Agency Trust Center lists "opt-in consent not properly evidenced" as a top reason for both brands and campaigns. Almost all of them are fixed on the website and resubmitted.

If you see "form collecting phone numbers detected" on a Chat Widget campaign, that's 30896 or 30909 in practice: reviewers found another form on the site that asks for a phone number and judged that one. Remove every other phone or SMS form from the site so the widget is the only opt-in.

CodeWhat the rejection saysThe fix
30909Call to action can't be verifiedChat Widget: the widget has to load at the exact brand website URL, not a subpage, and be the widget generated during your A2P submission, not a customised one. Manual: the form and all disclosures must be visible at the opt-in URL you submitted, and every opt-in method you ticked needs a description and evidence.
30896Opt-in workflow not sufficient, or shared with third partiesChat Widget: remove other phone or SMS forms, link a live privacy policy and terms from the widget page. Manual: unticked SMS-only checkbox with full disclosure wording, privacy and SMS terms on the same page, screenshot matching the live form.
30913Marketing consent bundled with informational consentTwo separate checkboxes, one marketing and one non-marketing. If you only send transactional texts, say so in the campaign description.
30923Consent bundled into mandatory termsThe SMS checkbox has to be optional. People must be able to decline texts and still submit the form.
30924Missing disclosuresNext to the checkbox: message type, frequency, "message and data rates may apply" and STOP instructions.
30925No checkbox, or it's pre-tickedAdd an SMS consent checkbox that's unticked by default.
30931Form doesn't let people declineAdd a skip option or unticked checkbox. One button can't grant every permission including texts.
30917Multiple opt-in methods, not all describedDescribe every method you selected (web form, paper, phone, QR code, keyword).
30932Privacy policy shares opt-in dataAdd the non-sharing clause below, word for word.
30887Opt-out process unclearDescribe the opt-out process, list the keywords, and make the STOP reply confirm the request, say no more texts will come, and name the business.
30890HELP reply missing contact detailsHELP reply needs the business name plus a phone number or email.
30888No age gateAsk for date of birth inside the SMS sign-up flow. Only applies to age-restricted products.

From HighLevel's A2P Campaign Rejections, Required Fixes & Vetting Errors (updated Oct 16, 2026) and Campaign Rejection Reasons and Resolutions (updated Oct 12, 2026), read Nov 3, 2026.

Website and privacy policy rejections

"Website could not be verified" is the other big one in the Agency Trust Center. The most common cause, per HighLevel, is submitting the form page instead of the main business website.

CodeWhat the rejection saysThe fix
30891Invalid website URLSubmit the main business site, same domain as the brand, with working buttons and social icons that go to your own pages. Not live yet? Manual campaigns can say so in the description and link screenshots. Chat Widget campaigns should wait until the site is live.
30919Website lacks business informationCompany name, a specific description of the service ("consulting" isn't enough), contact details, more than one page, no leftover [company name] placeholders, a mention of the texting program and a privacy policy link.
30920Website is just a formPut business context around the form: name, what the business does, contact info.
30921Website needs a loginMake a public page describing the business and the texting program.
30922Under construction or odd URLUse a working, standard URL.
30907Website doesn't match brand or campaignUse case, sample texts and website all describe the same business. Show any trading name in the footer, terms or privacy policy.
30908No compliant privacy policyLive direct link on your own domain (a pop-up or modal doesn't count), linked from the form footer and from the widget page, and added to the campaign's privacy policy field.
30882Terms & Conditions (older code)Terms on a live direct link covering business name and what you send, frequency, rates, STOP, HELP, carrier liability and a privacy policy link.

From HighLevel's rejection articles (updated Oct 12 and Oct 16, 2026), read Nov 3, 2026.

Use case, sample message and description rejections

These get fixed in the campaign itself. One catch: if the fix means picking a different use case, that field can't change on a resubmit, so you're creating a new campaign ($15 vetting on the same brand, as of Nov 3, 2026).

CodeWhat the rejection saysThe fix
30886Description doesn't explain the purpose or match the use caseRewrite it in detail: who's texting, who receives it, what they get and why.
30893Sample messages unclear or don't matchSample 1 marketing, sample 2 informational (one of each for mixed). Brackets for merge fields like [First Name], business name in at least one, opt-out language in at least one.
30911Same text copied across fieldsDescription, samples and message flow each need their own wording, and every sample has to be different.
30892Public URL shortener in samplesFull https links only. A branded short link on your own domain is fine, bit.ly isn't.
30889Embedded phone number ticked but not in samplesPut the number in a sample, or untick the option.
30912Looks like personal textingSay which software sends the messages and how it serves customers.
30916Lead generation vs lead nurture mixed upGeneration is first outreach to new leads, nurture is ongoing contact with existing ones. Needs a new campaign if the use case is wrong.
30910Non-English fieldsFields in English, with English translations next to any non-English samples.
30895Direct lending attribute missingTick direct lending if it applies, or fix the description if it doesn't.
30930100-campaign limitDeregister unused campaigns.

From HighLevel's rejection articles (updated Oct 12 and Oct 16, 2026), read Nov 3, 2026.

When to start over with a new brand

Some rejections aren't about the campaign at all. They're about the brand under it, and resubmitting the campaign will keep failing until the brand changes. HighLevel is blunt about the Sole Prop one: an LLC, Inc. or Co. can't be a Sole Proprietor, and "resubmitting alone will not work".

Brands also have limited tries. The Agency Trust Center's Brands tab shows attempts left for each one. If you hit "Maximum 3 tries exhausted", HighLevel says to send support the CP 575 (or a 147C letter from the IRS) and they submit the brand for you. Use every line of the name above the address on that letter as the legal name, and never the name from a W2 or W9.

An approved brand can't be edited from the console, so a wrong detail on an approved brand also goes through support.

CodeWhat the rejection saysThe fix
30903, 30915Corporate name or EIN on a Sole Prop brandRegister the brand again as Standard (Low or High Volume) with the EIN, then a campaign that fits the new brand.
30914Sole Prop content doesn't match the registered nameMake the description, samples and website use the name you registered.
30918DBA doesn't match the legal nameUpdate the brand to include the DBA before resubmitting.
30898Same EIN on too many brandsReduce the brands on that EIN first. Resubmitting before that won't help.
30881, 30971Gmail or other free emailUse an email on the business domain. A sole trader with no domain uses the same free address shown publicly on their site.
30972Contact isn't an authorized repPut the client's owner or manager as the contact, not yourself.
30926, 30927Several brands in one campaign, or opt-in shows another companyOne campaign per brand, and the opt-in evidence shows this brand's exact name.
30894Campaign not linked to the right brandNothing to change in the campaign. Contact support with the location ID.
Brand: name doesn't match EINShown in the Agency Trust CenterCopy the legal name and EIN exactly from the CP 575 or 147C.

From HighLevel's rejection articles (updated Oct 12 and Oct 16, 2026) and Agency Trust Center article (updated Oct 27, 2026), read Nov 3, 2026.

Rejections you can't resubmit

Since Mar 23, 2026 the old catch-all codes (30883 SHAFT, 30884 spam, 30885 high risk, 30897 disallowed) were split into specific ones. All of these are ineligible for resubmission, and the changelog warns that disallowed-content rejections can still be charged.

SHAFT: 30953 sex, 30954 hate, 30955 alcohol, 30956 alcohol without a 21+ age gate, 30957 firearms, 30958 tobacco and vape. Disallowed: 30940 cannabis and CBD, 30941 prescription drugs, 30942 loan marketing, 30943 third-party debt collection, 30944 gambling, 30945 sweepstakes, 30946 stock alerts, 30947 crypto, 30948 forex and other high-risk investing, 30949 debt relief, 30950 credit repair, 30951 third-party lead gen and MLM, 30952 non-federally compliant. High risk: 30959 fraud, 30960 phishing, 30961 bad domain reputation, 30962 deceptive marketing, 30963 public URL shorteners, 30964 http links.

Two of those are easy to trip by accident on a normal business: 30963 and 30964. Use full https links on the client's own domain everywhere in the submission.

Cannabis and CBD stay off SMS even where they're legal. HighLevel points those businesses to email instead. Alcohol, tobacco, vape and firearms are restricted, not banned, and get judged case by case with an age gate. If you think a forbidden-code rejection is a mistake, HighLevel says to contact support with the subject "10DLC Campaign Appeal for [business name or number]".

Opt-in and privacy policy wording that passes

The easiest fix for most consent rejections is to switch to HighLevel's Chat Widget setup, because it writes the opt-in wording for you. For a manual campaign, HighLevel's 2026 guide asks for two separate, unticked, optional checkboxes with this exact wording:

Marketing: "I consent to receive marketing text messages, about special offers, discounts, and service updates, from [BUSINESS NAME] at the phone number provided. Message frequency may vary. Message & data rates may apply. Text HELP for assistance, reply STOP to opt out."

Non-marketing: "I consent to receive non-marketing text messages from [BUSINESS NAME] about [USE_CASE_FROM_CAMPAIGN_DESCRIPTION]. Message frequency may vary, message & data rates may apply. Text HELP for assistance, reply STOP to opt out." Replace the bracket with the real message types from your campaign description, like appointment reminders and order updates. Generic "non-marketing messages" gets flagged.

Privacy policy, word for word: "No mobile information will be shared with third parties/affiliates for marketing/promotional purposes. Information sharing to subcontractors in support services, such as customer service, is permitted. All other use case categories exclude text messaging originator opt-in data and consent; this information will not be shared with any third parties." The policy can't mention selling, buying or sharing leads anywhere, and its contact details have to match the brand registration.

Terms: the business name and what you send, how to text STOP and HELP, "Carriers are not liable for delayed or undelivered messages.", message frequency and rates, and a link back to the privacy policy. Both links go in the footer of every form. HighLevel has sample privacy and terms pages you can load into the sub-account.

This is HighLevel's and the carriers' wording, not legal advice. Have the client's lawyer look over the policy pages.

What does resubmitting cost?

Resubmitting a rejected campaign is free. HighLevel announced it on its changelog on Jan 27, 2026, and its LC Phone pricing guide dates it from Feb 1, 2026. Before that it was $15 per resubmission.

What still costs money, per HighLevel's fees article checked live Nov 3, 2026: a new campaign on the same brand is $15 in vetting, and the original submission's one-time fee ($22.50 for Sole Prop or Low Volume Standard, $64 for High Volume) plus the monthly campaign fee ($2 Sole Prop, $10 Standard) started when you first submitted, whatever the outcome. If you abandon a rejected campaign, delete it to stop the monthly charge. All A2P rates are also on Usage fees.

Approved, but texts still fail (30034 and 30007)

30034 after approval almost always means the sending number isn't linked to the campaign. Go to Settings > Phone System > Phone Numbers and look for the green A2P Verified label. No label? Use the number's three-dot menu, choose Select A2P campaign to Link and pick the campaign. Approval doesn't link numbers for you, so repeat it for every new number.

The other 30034 cause is a Sole Proprietor account with two or more local numbers. Sole Prop gets 1 campaign and 1 number, so even the approved number can fail. Cut it to one number or move the business to a Standard brand.

30007 is carrier filtering, and it can hit an approved campaign. HighLevel's rules to avoid it: STOP language at least once every 30 days to the same contact, no public link shorteners, only links on the domain you put in the A2P registration, no snowshoeing across numbers, and reconfirm opt-in every 18 months. A 30007 can also mark the contact DND. If you think you're filtered by mistake, send support links to 3 or more affected contacts from the last 7 days.

Check all this before you turn on anything that texts, like Missed call text back. Otherwise the client sees failed texts and thinks your automation is broken.

Fixing rejections for every client in the Agency Trust Center

HighLevel launched the Agency Trust Center on Oct 28, 2026. In agency view it shows every sub-account's brand and campaign, the most common rejection reasons with how many clients hit each one, attempts left per brand, and a Fix and Resubmit action on rejected brands and campaigns. You turn it on in Labs in agency view, then go to Settings > Phone Integration > Trust Center (A2P).

It's only on the $497 a month plan (checked on gohighlevel.com/pricing Nov 3, 2026), and only Agency Owners and Agency Admins see it. I'm on the $497 plan. On the cheaper plans you fix rejections inside each sub-account the same way as before. Plan differences are on Pricing.

The useful part for rejections is the Chat Widget vs self-serve comparison: how many of your clients used each method and what share of each got approved. If manual registrations keep failing across your clients, that's your sign to move them to the widget.

Start your 30-day free trial →

30 days through my link (normally 14). How the trial works

Not ready for a trial?

Get the weekly HighLevel updates in your inbox

Every week I go through HighLevel's changelog and send you what actually changes things for agencies, plus new guides when they go up. One email a week.

FAQ

How do I see why my A2P campaign was rejected in GoHighLevel?

Settings > Phone System > Trust Center > Brands & Campaigns > Campaigns, then click View required fixes next to each rejection reason. It shows the error code, the category, what it means and the exact correction.

Is it free to resubmit a rejected A2P campaign?

Yes, since Feb 1, 2026 (announced Jan 27). Creating a new campaign on the same brand costs $15, and disallowed-content rejections can still be charged. Checked Nov 3, 2026.

Can I change the use case when I resubmit?

No. The use case and the opt-in message can't be edited on a resubmit. To change either one, create a new campaign, which carries the normal vetting fee.

My LLC was registered as a Sole Proprietor. Can I fix it with a resubmit?

No. Codes 30903 and 30915 keep coming back until the brand type changes. Register the brand again as Standard with the EIN, then submit a campaign that fits it.

What does "form collecting phone numbers detected" mean?

Reviewers found another form on the site collecting phone numbers or SMS consent alongside the Chat Widget. Remove every other phone or SMS form so the widget is the only opt-in, then resubmit.

Why do I get error 30034 when my campaign is approved?

The number isn't linked to the campaign (no green A2P Verified label in Settings > Phone System > Phone Numbers), or a Sole Proprietor account has more than one local number.

Can I appeal an A2P rejection?

Yes. Contact HighLevel support with the subject "10DLC Campaign Appeal for [business name or number]" and the details. That's also the route for forbidden-content codes you think are a mistake.

How many times can I resubmit an A2P brand?

Brands have a limited number of attempts, shown in the Agency Trust Center. After "Maximum 3 tries exhausted", send HighLevel support the CP 575 or 147C and they submit it for you.

Sources / last checked Nov 3, 2026

  • HighLevel help docs. A2P Campaign Rejections, Required Fixes & Vetting Errors (updated Oct 16, 2026), Campaign Rejection Reasons and Resolutions (Oct 12), Forbidden message categories for SMS and MMS in the US and Canada (Sep 3), Error 30034: Linking a Phone Number to an Approved A2P Campaign (Oct 13), How to Prevent SMS Filtering by Carriers: Error 30007 (Jul 23), How to get your phone number A2P approved in 2026 (Jul 30), Agency Trust Center (Oct 27), A2P 10DLC Messaging Fees (Sep 24) and LC Phone Pricing & Billing Guide (Oct 12) on help.gohighlevel.com, all read live Nov 3, 2026.
  • HighLevel changelog. A2P Campaign Resubmissions Are Now Free (Jan 27, 2026), Improved A2P Campaign Rejection Feedback (Mar 23, 2026) and Introducing Agency Trust Center (Oct 28, 2026) on ideas.gohighlevel.com, read Nov 3, 2026.
  • HighLevel pricing page. gohighlevel.com/pricing, read Nov 3, 2026, for the $497 a month plan the Agency Trust Center requires.
Hamza Baig (Hamza Automates)

Author

Hamza Baig / Hamza Automates

Founder, Hexona Systems

I run Hexona Systems on GoHighLevel. HighLevel gave it the SaaSpreneur Platinum award in 2024 and Diamond in 2025 and 2026, and I spoke at their LevelUp event in 2026. Everything on this hub is something I use myself or have shown on camera.

Platinum SaaSpreneur
2024
Diamond SaaSpreneur
2025, 2026
LevelUp speaker
2026
YouTube subscribers, Oct 2026
34,200

Keep reading

Start your 30-day free trial →

Affiliate link. I get a commission, it doesn't cost you more.