Skip to contentAccessibility options

A2P 10DLC registration rejected: how to get your brand and campaign approved

Most A2P 10DLC rejections come down to one detail that does not match another: a legal name that differs from the IRS letter, a site that is only a form, a pre-checked or required consent box, a privacy policy without the no-sharing line, or samples that do not fit the use case. In GoHighLevel, open Settings > Phone System > Trust Center > Brands & Campaigns > Campaigns, click View required fixes beside every reason, fix all of them, then edit and resubmit the same campaign wherever the fix is an editable field.

By the Beyaoshy team17 min read

Who decides
Carriers and their registration partners. HighLevel says its support cannot override them
Unregistered numbers
Blocked by Twilio since September 1, 2023 with error 30034, and still billed
Resubmitting a campaign
Usually no new vetting fee when you edit and resubmit the same campaign; HighLevel says fee handling can vary by rejection type. A new campaign pays it again
Brand retries
Three free resubmissions at Twilio, then Twilio Support. An appeal for a brand whose details already match, often a new EIN, costs $10
Dead ends
Prohibited content cannot be resubmitted: codes 30940 to 30962, and on older rejections 30883 to 30885 and 30897
Review time
Hours to days for most sole proprietor campaigns; Twilio warns vetting can take several weeks or longer

Find the exact rejection code first

HighLevel says fixing only some of the listed issues will likely lead to another rejection, so read every code before you touch a field.

Where GoHighLevel shows it

Per HighLevel’s rejections article: Settings > Phone System > Trust Center, open Brands & Campaigns, choose the Campaigns tab, find the campaign marked Rejected and click “View required fixes” beside each reason. The window shows the code, what it means and the correction needed.

Where Twilio shows it

In the Twilio Console, campaign status sits under Messaging > Regulatory Compliance > Campaigns, with the failure reason on the campaign details page. Twilio began rolling out specific campaign codes on March 23, 2026 and announced more for September 15, 2026.

Older rejections may show a code from HighLevel’s pre-March 23 list, 30882 to 30885 or 30897. Twilio says 30897, 30883, 30884 and 30885 cannot be resubmitted, and 30882 cannot be fixed by resubmitting when the cause is affiliate marketing or third-party lead generation.

HighLevel’s rejection codes are Twilio’s, so Twilio explains each one at an address like twilio.com/docs/api/errors/30924. Where the fixes differ (30963, 30964, 30971), follow HighLevel’s in GoHighLevel. 30880 means no specific reason came back; look for a second code.

Brand problem or campaign problem

The brand says who sends; the campaign says what you send and how people opt in, opt out and get help. Per Twilio’s troubleshooting page, brands fail on business details that are incomplete or do not match records, and campaigns on an unclear purpose, opt-in or opt-out, or content that breaks policy. Consent law and quiet hours are in our texting, AI answering and call recording rules guide.

If an agency registered your texting

Four Twilio codes name agency slips directly: the agency’s support email (30881), a description naming the platform instead of your business (30886), the agency as the brand with several clients on one campaign (30926), and an agency registering for you without authorization (30972), fixed with a letter of authorization or by naming an employee as the contact.

If your login cannot open Trust Center, ask whoever administers the sub-account, often the agency, for a screenshot of every View required fixes window. Unsure who controls the sub-account and numbers? Run the account ownership check. When Beyaoshy builds a GoHighLevel account, the CRM and its tracking numbers are set up in the client’s name.

Per HighLevel’s sub-account transfer guide, numbers move with a transferred sub-account, eligible A2P registration included, only when both agencies use LC Phone; if either uses Twilio, they do not transfer automatically. The agency switching checklist covers the rest.

Registering again elsewhere adds a brand under your EIN. Twilio’s overview allows five Standard or Low-Volume Standard brands per tax ID before campaigns risk rejection, and 30898 is that rejection. Twilio’s fix is removing unnecessary duplicates, so ask the old agency to remove its brand once you stop texting through it.

Edit, start a new campaign, fix the brand first, or stop

Editing and resubmitting the same campaign adds no new vetting fee, per Twilio’s 30896 page and HighLevel’s fee article. A new campaign pays it again.

The rejection points at What to do
Description, samples, message contents, opt-in description, or the website and policy pages themselves Edit the same campaign, fix every reason, resubmit
The use case, or the opt-in, opt-out or HELP keywords and auto-replies Create a new campaign (new vetting fee, $15.00 in HighLevel)
The brand: legal name, EIN, address, contact, or the website address saved on it GoHighLevel: resubmit a failed brand; an approved one changes only through Support. Twilio: delete the campaign, fix the brand, register a new campaign (new vetting fee)
Prohibited content: 30940 to 30962, or older 30883 to 30885 and 30897 Do not resubmit; change what you send, or appeal
Still Pending Wait; HighLevel says not to resubmit or create another

The edit row is Twilio’s 30896 page and HighLevel’s; Twilio’s campaign edit covers only the description, samples, message contents and opt-in description, and HighLevel says the use case and opt-in message may be locked. The brand row follows Twilio, where a brand with a campaign cannot be edited, and HighLevel’s brand article.

Fixing the site itself is a campaign edit; changing the address saved on the brand follows the brand row. Never delete an approved campaign to fix something else: Twilio’s 30930 page warns texting stops until a new one is approved.

While the campaign is rejected or pending

A number not linked to an approved campaign cannot text. Twilio blocks it with 30034, the code HighLevel’s brand article warns GoHighLevel users about, and on Twilio blocked texts are still billed. So this week:

  • Turn off workflows that text on their own: missed-call text-back, appointment reminders, review requests.
  • Call new leads back; the missed call playbook covers who calls and how fast.
  • Send booking confirmations by email.
  • Turn the workflows back on when the number shows the green A2P Verified label under Settings > Phone System > Phone Numbers; HighLevel’s A2P overview says carriers may need several business days after approval.

As a last resort, Twilio’s 30034 page points to toll-free numbers or short codes, which sit outside A2P 10DLC; toll-free numbers need their own verification.

Brand rejections: the name, the tax ID, the type and the contact

Twilio says most Standard and Low-Volume Standard brands fail on a mismatch with tax records, so pull the IRS letter first.

Twilio’s business information page asks for the exact legal name registered with the EIN, as printed on the CP 575 confirmation letter, and warns that W-2 and W-9 forms may differ. A 147C letter from the IRS replaces a lost CP 575. If the name runs over several lines, enter every line above the address. HighLevel adds: use the EIN, since it does not accept a DUNS number; no P.O. box; and uploading the CP 575 fills in the name, EIN and address.

A tax ID issued in the last three months

Twilio says a new EIN can take 30 to 90 days to reach the databases reviewers check, so wait a few weeks before resubmitting; HighLevel says EINs under 15 days old may be rejected. If it cannot wait, Twilio Support can run a manual appeal using the federal EIN letter. Twilio says it usually takes 5 to 7 business days and costs $10 on top of the normal brand fee.

An LLC registered as a sole proprietor

Sole proprietor registration is only for businesses without an EIN or other tax ID; an LLC, Inc. or Corp. in the name can trigger 30915, and a sole proprietor brand that turns out to have an EIN gets 30903, which HighLevel’s rejections article fixes by registering a standard brand and campaign instead. The type also caps sending at one campaign and about 3,000 message segments a day (Twilio’s overview). Also:

  • The owner’s mobile gets a code to answer within 24 hours, and one mobile number backs at most three sole proprietor brands.
  • HighLevel requires a free email such as Gmail and a real mobile number, not VoIP or LeadConnector.
  • The campaign must match the owner’s registered name: Twilio’s 30914 example rejects “MJ’s Pet Grooming” on a brand registered as “Maria Johnson.”

The contact email and the person named

Twilio’s 30971 page asks for an address on the business’s own domain and accepts a free one only when that exact address is published on your website or social profiles. For a Standard brand in GoHighLevel, switch to a business-domain address; a sole proprietor brand there must keep a free address such as Gmail (HighLevel’s brand article). 30972 means the contact could not be verified as authorized to act for the business. HighLevel says not to use one email or phone number for more than five brands.

When the free brand retries run out

Twilio allows three free brand resubmissions; after that, contact Twilio Support. GoHighLevel shows “Maximum 3 tries exhausted” instead: its rejections article links a form for your CP 575 or 147C, and HighLevel submits the documents for you.

Campaign rejections and the fix for each

A website reviewers can open and recognize

Twilio screenshots and checks the website, and the registry rejects one that is unreachable, parked, behind a login or redirecting to another brand. The common codes:

  • 30920: a landing page or standalone form. Submit the main business website.
  • 30919: no clear business name, services or contact details. HighLevel’s fix adds a privacy policy and a mention of your texts.
  • 30921: reviewers hit a login. Post screenshots of the opt-in page behind it on a public URL.
  • 30964: a link uses http, not https.
  • 30907, 30891 and 30922 in HighLevel’s rejections article: a site that does not match the brand or campaign, a URL that does not work, or a site under construction. Fix the site, or for a pre-launch site say so in the description and include screenshots.

Per HighLevel’s 2026 approval article, a subdomain form passes if it looks like the same brand and shows how people find it. A DBA must appear in the site’s header or footer, and HighLevel suggests adding “We are doing DBA as [Business Name]” to the description. A DBA that does not match the legal name on file is 30918; HighLevel’s fix is to add the DBA to the brand registration before resubmitting. If the site is the real problem, see our website page.

The privacy policy and terms

Per Twilio’s registration guide, the policy must be public, say you will not share mobile numbers with third parties, state the message frequency and include “Message and data rates may apply.” Terms sit on your own domain with no login. Sharing for partner marketing fails (30932), as do two conflicting policies (30908). HighLevel adds: never mention buying or selling leads, and link both pages in every form’s footer. Twilio’s API has required both URLs since June 30, 2026. This is not legal advice; confirm with counsel.

Twilio ties two of these (30924 and 30925) to TCPA and CTIA requirements. This is not legal advice; confirm with counsel.

  • Four disclosures at the box. 30924 wants the message type, frequency, “Message and data rates may apply” and how to opt out beside the checkbox, not in a linked document.
  • Unchecked and separate. 30925 rejects a pre-selected box, or a form where agreeing to the terms and privacy policy is the only box and there is no separate box for texts.
  • Optional. 30923 rejects texting consent required to book or buy; a collected number is not consent on its own, per HighLevel’s best practices article.
  • Marketing on its own box. 30913 rejects one control covering promotions and service messages, and verbal consent for marketing.
  • A way to say no. 30931 rejects an opt-in that does not let people decline: HighLevel’s fix is an unchecked box or a skip option, so a single button never grants every permission at once.

Every way people opt in, described

30917 fires when you use several paths (website, keyword, paper form, QR code, verbal) and describe only some. A paper sheet or logged-in form needs a public screenshot; HighLevel suggests uploading it to Media Storage and sharing the link. The evidence must show the brand’s company (30927).

STOP and HELP replies

The opt-out reply must acknowledge the request, confirm no more messages will come and name the brand (30887); the HELP reply needs the brand plus a phone number or email (30890). Twilio’s Messaging Policy requires the first message to include “Reply STOP to unsubscribe” or an equivalent. If the reply text itself must change, check whether your platform can edit it: Twilio’s campaign edit cannot, which means a new campaign, and its 30887 and 30890 pages point to Twilio’s default or Advanced Opt-Out handling instead of a custom reply.

A description, use case and samples that tell one story

The description says who sends, who receives and why, in 40 to 4,096 characters; pasting one block into every field is its own rejection (30911). Give two to five samples naming the brand, with variable content in square brackets, links or phone numbers if your texts carry them, no bit.ly-style links (30892) and English translations beside any Spanish (30910). HighLevel’s use case article says not to pick Mixed because you are unsure; the use case has to match what the business actually sends, and choosing lead generation for messages to existing leads, or the reverse, is 30916. HighLevel’s rejections article adds, for 30893, sample 1 for marketing and sample 2 for service messages, the business name in at least one and opt-out wording in at least one. If your samples include a phone number or link, tick the matching message contents boxes so the samples and the boxes agree (30889).

Rejections no edit will fix

These cannot be resubmitted; change what you send, or appeal if the call was wrong. The ones a local business can walk into:

  • “Enter to win” sign-ups. 30945 covers sweepstakes and giveaways.
  • Drink specials. 30955 covers alcohol promotion, 30956 alcohol content without a 21+ age gate on the site and opt-in. A bar can register a new campaign once a 21+ gate covers every entry point; 30956 warns a simple checkbox or date-of-birth field may not pass. Other age-gate rejections (30888) are fixable, unlike these two.
  • CBD, whatever state law says (30940).
  • Loan offers (30942); payment reminders to existing borrowers may fit another use case.
  • Prescription drug promotion (30941). The FDA says Botox is available only with a prescription and tells patients to get semaglutide by prescription, so a med spa’s Botox or semaglutide special by text is the local version. Do not promote Botox, semaglutide or any other prescription treatment by text, named or not. Twilio’s 30941 page says transactional messages to existing patients may fit a different use case, so keep reminders in their own non-marketing campaign.
  • Leads for other companies. 30951 covers third-party lead generation, multi-level marketing, affiliate or intermediary lead capture for unrelated businesses, and consent shared or resold between businesses. Do not text bought leads at all: Twilio says consent given to one business cannot be transferred to or shared with another. Text only people who opted in on your own forms.
  • Pressure tactics. 30962 names fake limited-time offers, false scarcity such as “Only 2 left!”, fake testimonials and unverifiable guarantees.

HighLevel also lists 30963 (public shorteners) and 30964 (http links) as ineligible, while Twilio’s 30963 and 30964 pages allow resubmission once every link complies; fix the links, then ask support. HighLevel takes appeals with the subject line “10DLC Campaign Appeal for” plus your business name or number.

A compliant submission, written out

Bracketed words are fields to fill in. This is not legal advice; confirm with counsel.

GoHighLevel checkboxes. HighLevel’s 2026 article asks for two separate, unchecked, optional boxes worded exactly like this, with the name on your CP 575 or 147C:

“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.”

“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 [USE_CASE_FROM_CAMPAIGN_DESCRIPTION] with the message types in your description, such as appointment reminders and job updates; HighLevel says generic wording like “non-marketing messages” is not enough.

The privacy policy clause HighLevel requires 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.”

Campaign description:

[Legal Business Name] sends appointment confirmations, reminders and job status updates to customers who book a service visit on [website address] and tick the optional text message box.

Message flow:

Customers opt in on [booking page address] by ticking an optional, unchecked box that reads: “[checkbox wording in full]”. Privacy policy: [privacy policy address]. Terms: [terms address]. Customers who sign up in person sign a paper form, shown at [public screenshot address].

Sample messages (Twilio’s console requires the first two):

Hi [First Name], [Business Name] here. Your estimate visit is booked for [Date], [Time Window]. To move it, call [Business Phone]. Reply STOP to opt out.

Hi [First Name], [Business Name] here. Your technician [Tech Name] is on the way and should arrive by [Time]. Reply STOP to opt out.

Because the first sample carries a phone number, tick the embedded phone number box under message contents (HighLevel 30889). If you also ticked the marketing box, make one sample a marketing message.

STOP and HELP replies:

You are unsubscribed from [Business Name] texts and will receive no further messages.

For help with [Business Name] texts, call [Business Phone] or email [Support Email]. Reply STOP to opt out.

Before you press resubmit

Open the site on a phone, logged out, then confirm:

  • The legal name and EIN match the CP 575 or 147C exactly.
  • Every listed code is fixed, not only the first.
  • The checkbox is unchecked, optional, separate for marketing and carries the four disclosures.
  • The privacy policy has the no-sharing line and is linked, with the terms, under every form.
  • Every opt-in path is described, with public evidence for paper or logged-in sign-ups.
  • The samples name the brand, include STOP and contain no bit.ly-style links.
  • Every URL starts with https.
  • The site shows the registered or DBA name, services, contact details and a mention of texting.

Fees and how long review takes

HighLevel’s fee article, updated September 24, 2026, lists a one-time bundle of brand registration, campaign vetting and $3 Fast Track processing, which it says expedites a decision to within 3 business days: $22.50 for a sole proprietor or low volume standard brand, $64.00 for high volume standard. Another campaign under the same brand is $15.00; monthly fees run from $1.50 to $10.00 by use case. Prices can change, so check the Trust Center.

Two caveats on the no-new-fee rule: HighLevel’s rejections FAQ says fee handling can vary with the rejection type, and Twilio’s sole proprietor page says resubmitting a campaign denied in external vetting might cost extra.

Twilio’s 30909 page says sole proprietor campaigns are typically decided within hours to days and standard ones can take up to several weeks, while its onboarding and campaign troubleshooting pages warn of several weeks or longer. A suspended campaign keeps billing its monthly and number fees until resolved, per that Twilio page.

If the campaign was suspended, not rejected

A suspension is a different problem from a rejection. Per Twilio’s campaign troubleshooting page:

  • Texts fail with 30033. A suspended campaign cannot send.
  • The campaign is frozen. You cannot delete it yourself or add or remove its numbers (21729).
  • Fees continue. The campaign’s monthly fee and the numbers’ fees keep billing until it is resolved.
  • Watch for Twilio’s email. Twilio says its team should reach out with guidance; if nothing arrives, open a ticket. In GoHighLevel, ask through Agent Chat.
  • After 60 days, Twilio Support can delete a campaign that cannot be resolved, but may require releasing its numbers.

Do not move the same texts to another campaign or number in the meantime; the next section explains why.

Mistakes that make the next review harder

  • A second campaign created while the first is Pending.
  • Moving the same texts to another campaign or number after a suspension, which Twilio says can get the account suspended and its policy bans as snowshoeing.
  • Paying anyone for “guaranteed approval.”

When it keeps coming back rejected

In GoHighLevel, use the Help (?) button and ask for A2P help through Agent Chat, with the brand and campaign statuses, the exact code, screenshots of the required fixes, your opt-in evidence and the affected number. Support can help with an eligible appeal but cannot guarantee approval or override a carrier. On Twilio, take a disputed rejection to Twilio Support.

Questions about A2P 10DLC rejections

My agency set up texting and I can’t see the Trust Center. What do I do?

Ask whoever administers the sub-account for screenshots of the brand and campaign status and every required-fix window, then check the brand carries your legal name, your EIN and, for a Standard brand, a support email at your business (a sole proprietor brand in GoHighLevel uses a free address such as Gmail). An agency email is a rejection in itself.

Do I have to register again if I leave my agency?

Only if the sub-account moves to another HighLevel agency and both agencies use LC Phone; then HighLevel says eligible A2P registration stays with the numbers. If either uses Twilio, the agencies and the Twilio account owner have to coordinate the move. If you leave HighLevel, the transfer guide does not apply, and registering with the new provider adds a brand under your EIN, so ask the old agency to remove theirs.

My campaign is approved, so why do texts still fail with error 30034?

Usually the number is not linked to the approved campaign, or it is an extra number on a sole proprietor campaign, which can register only one (Twilio, 30034). In GoHighLevel, link the number and look for A2P Verified.

Do I need a privacy policy if I only send appointment reminders?

Yes. Since June 30, 2026 Twilio rejects new campaigns without privacy policy and terms URLs (30933 and 30934 through the API), and HighLevel requires both under every form whatever the use case.

Will Fast Track get a rejected campaign approved?

No. The $3 buys a quicker decision, and HighLevel’s best practices article says even following every recommendation does not guarantee approval.

Sources

66 cited

Every figure and rule above links to its source where it appears. Rules change, so confirm anything legal with counsel.

Texting registration rejected? Send us the codes.

Tell us which codes came back and we will send back the order to fix them. Registration, consent capture and opt-out handling are part of every GoHighLevel build we do.

  • A free consult. A real conversation about your business, your area and what is not working yet.
  • An honest evaluation. Where you stand in search, ads and follow-up next to the businesses you lose customers to.
  • A plan you keep. What we would fix first and why. It is yours whether or not you work with us.

Form not loading? Email hello@beyaoshy.com and we will reply within one business day.