A2P campaign rejected in GoHighLevel? Rejection reasons and fixes (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
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
| Code | What the rejection says | The fix |
|---|---|---|
| 30909 | Call to action can't be verified | Chat 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. |
| 30896 | Opt-in workflow not sufficient, or shared with third parties | Chat 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. |
| 30913 | Marketing consent bundled with informational consent | Two separate checkboxes, one marketing and one non-marketing. If you only send transactional texts, say so in the campaign description. |
| 30923 | Consent bundled into mandatory terms | The SMS checkbox has to be optional. People must be able to decline texts and still submit the form. |
| 30924 | Missing disclosures | Next to the checkbox: message type, frequency, "message and data rates may apply" and STOP instructions. |
| 30925 | No checkbox, or it's pre-ticked | Add an SMS consent checkbox that's unticked by default. |
| 30931 | Form doesn't let people decline | Add a skip option or unticked checkbox. One button can't grant every permission including texts. |
| 30917 | Multiple opt-in methods, not all described | Describe every method you selected (web form, paper, phone, QR code, keyword). |
| 30932 | Privacy policy shares opt-in data | Add the non-sharing clause below, word for word. |
| 30887 | Opt-out process unclear | Describe 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. |
| 30890 | HELP reply missing contact details | HELP reply needs the business name plus a phone number or email. |
| 30888 | No age gate | Ask 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.
| Code | What the rejection says | The fix |
|---|---|---|
| 30891 | Invalid website URL | Submit 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. |
| 30919 | Website lacks business information | Company 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. |
| 30920 | Website is just a form | Put business context around the form: name, what the business does, contact info. |
| 30921 | Website needs a login | Make a public page describing the business and the texting program. |
| 30922 | Under construction or odd URL | Use a working, standard URL. |
| 30907 | Website doesn't match brand or campaign | Use case, sample texts and website all describe the same business. Show any trading name in the footer, terms or privacy policy. |
| 30908 | No compliant privacy policy | Live 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. |
| 30882 | Terms & 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).
| Code | What the rejection says | The fix |
|---|---|---|
| 30886 | Description doesn't explain the purpose or match the use case | Rewrite it in detail: who's texting, who receives it, what they get and why. |
| 30893 | Sample messages unclear or don't match | Sample 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. |
| 30911 | Same text copied across fields | Description, samples and message flow each need their own wording, and every sample has to be different. |
| 30892 | Public URL shortener in samples | Full https links only. A branded short link on your own domain is fine, bit.ly isn't. |
| 30889 | Embedded phone number ticked but not in samples | Put the number in a sample, or untick the option. |
| 30912 | Looks like personal texting | Say which software sends the messages and how it serves customers. |
| 30916 | Lead generation vs lead nurture mixed up | Generation is first outreach to new leads, nurture is ongoing contact with existing ones. Needs a new campaign if the use case is wrong. |
| 30910 | Non-English fields | Fields in English, with English translations next to any non-English samples. |
| 30895 | Direct lending attribute missing | Tick direct lending if it applies, or fix the description if it doesn't. |
| 30930 | 100-campaign limit | Deregister 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.
| Code | What the rejection says | The fix |
|---|---|---|
| 30903, 30915 | Corporate name or EIN on a Sole Prop brand | Register the brand again as Standard (Low or High Volume) with the EIN, then a campaign that fits the new brand. |
| 30914 | Sole Prop content doesn't match the registered name | Make the description, samples and website use the name you registered. |
| 30918 | DBA doesn't match the legal name | Update the brand to include the DBA before resubmitting. |
| 30898 | Same EIN on too many brands | Reduce the brands on that EIN first. Resubmitting before that won't help. |
| 30881, 30971 | Gmail or other free email | Use an email on the business domain. A sole trader with no domain uses the same free address shown publicly on their site. |
| 30972 | Contact isn't an authorized rep | Put the client's owner or manager as the contact, not yourself. |
| 30926, 30927 | Several brands in one campaign, or opt-in shows another company | One campaign per brand, and the opt-in evidence shows this brand's exact name. |
| 30894 | Campaign not linked to the right brand | Nothing to change in the campaign. Contact support with the location ID. |
| Brand: name doesn't match EIN | Shown in the Agency Trust Center | Copy 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.
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.

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