An A2P campaign rejected notice is the point where most business owners give up on SMS, because the rejection notice reads like a legal document and nobody tells you which of the twelve fields was the problem. Having taken a lot of campaigns through the process — for my own clients and for agencies that hand me their stuck accounts — I can tell you that almost every rejection is one of eight things, and all eight are fixable in an afternoon.
This article assumes you know what A2P 10DLC is and have a brand registered; if not, start with the plain-English guide, and if you are doing it inside GoHighLevel, the step-by-step shows where each field lives. Here we deal only with what to do when the answer was no.
First, read the rejection properly
The notice usually contains a short reason code or sentence — “message flow does not describe opt-in”, “sample messages missing opt-out language”, “website does not match brand”, “privacy policy missing SMS disclosure”. Copy it out. It maps to one of the causes below. If the platform only says “rejected” with no reason, assume the three most common: sample messages, opt-in description and privacy policy, and fix all three.
The eight reasons, and the fix for each
-
Sample messages are not compliant.
The reviewer wants to see what a real message looks like, and it must contain the business name, be consistent with the use case, and (in at least the first or a marketing sample) carry an opt-out instruction. Vague samples (“Hi {name}, thanks for your interest!”) fail. Public link shorteners (bit.ly and similar) fail. Samples that look promotional under a “customer care” use case fail.
Fix: provide three to five samples that read like real traffic, each with the brand name, and include “Reply STOP to opt out” on the marketing and first-contact samples. Templates below.
-
The opt-in (message flow) description is vague.
“Customers opt in on our website” is the single most common failing sentence. The reviewer needs to know exactly how a person gives consent: which form, what the checkbox says, what they are told about frequency and rates, and how they stop.
Fix: write the flow as a paragraph a stranger could follow, and quote the consent text word for word. Template below.
-
The website does not show the opt-in.
If your flow says “web form”, the reviewer will open the URL. If the form has no SMS consent checkbox, or the checkbox is pre-ticked, or the page is behind a login, it is a rejection.
Fix: add an unticked consent checkbox with the disclosure text next to it, on a publicly reachable page, and put that page’s URL in the campaign.
-
The privacy policy has no SMS section (or the wrong one).
The policy must state that mobile numbers and SMS consent are not shared with third parties for marketing. A generic policy that says “we may share your data with partners” is a rejection even if you never would.
Fix: add the paragraph below to the privacy policy, link it from the opt-in form, and make sure the page is live before resubmitting.
-
Terms and conditions do not describe the SMS programme.
Less often enforced than the privacy policy, but increasingly checked: a short section naming the programme, the kind of messages, frequency, “message and data rates may apply”, and STOP/HELP instructions.
Fix: add the SMS terms block below to your terms page (or a dedicated “SMS terms” page) and link it from the form.
-
Brand and campaign do not match.
The brand is “Northside Plumbing LLC” but the samples are signed “NP Services”, or the website in the brand record is a different domain, or the legal name differs from the tax record by one word. Reviewers compare all of it.
Fix: one legal name everywhere (exactly as on the tax registration), one website, one trading name in the samples that clearly belongs to that brand.
-
Wrong or mismatched use case.
Choosing “Mixed” or “Marketing” when your messages are appointment reminders, or “Customer Care” when the samples are offers; or choosing a special use case (political, charity, emergency) without qualifying for it.
Fix: pick the use case that matches the samples. For most local businesses that is Mixed (if you send both reminders and offers) or Low-Volume Mixed; the description, samples and use case must tell the same story.
-
Prohibited or high-risk content.
Some categories are declined regardless of paperwork: cannabis and CBD, gambling, adult content, firearms, tobacco and vaping, certain loans and debt relief, and — the one that catches agencies — third-party lead generation and affiliate marketing, where you text on behalf of businesses that are not the registered brand.
Fix: if the content is genuinely restricted, 10DLC is not the route; talk to the carrier about alternatives. If it is a wording problem (a spa that mentions “CBD massage” in a sample), remove it from the samples and the campaign description.
Compliant templates to resubmit with
Message flow / opt-in description
Customers opt in by submitting the contact form at https://example.com/contact, where they enter their name, phone number and enquiry and tick an unchecked box that reads: “By checking this box you agree to receive SMS messages from Example Co. about your enquiry and appointments. Message frequency varies. Message and data rates may apply. Reply STOP to opt out, HELP for help. See our Privacy Policy and SMS Terms.” Customers can also opt in by texting the keyword START to our business number, or verbally when booking by phone, which we record in our CRM. Every contact receives a confirmation message with opt-out instructions.
Sample messages (Mixed use case)
Example Co.: Hi Sarah, thanks for your enquiry. Ahmed will call you within the hour to discuss your boiler service. Reply STOP to opt out.
Example Co.: Reminder — your appointment is Tuesday 14 May at 10:00 at 12 High Street. Reply C to confirm or R to reschedule. Reply STOP to opt out.
Example Co.: Your invoice #1042 for £180 is ready: https://example.com/pay/1042. Questions? Reply here or call 0161 000 0000.
Example Co.: Spring service offer — 15% off annual boiler checks booked before 31 May. Book: https://example.com/book. Reply STOP to opt out.
Privacy policy paragraph
SMS communications. If you opt in to receive text messages from Example Co., we use your mobile number to send the messages you agreed to receive. No mobile information will be shared with third parties or affiliates for marketing or promotional purposes. Text messaging originator opt-in data and consent will not be shared with any third parties, except for vendors and service providers that help us deliver messages. You can opt out at any time by replying STOP.
SMS terms block
SMS Terms. By opting in to Example Co. SMS messages you agree to receive appointment reminders, enquiry follow-ups, service notifications and occasional offers. Message frequency varies. Message and data rates may apply. Reply STOP to cancel at any time; reply HELP for help or contact support@example.com. Carriers are not liable for delayed or undelivered messages.
Replace the placeholders, use the same business name across all four, and put the privacy and terms URLs in the campaign fields where they are asked for.
A resubmission checklist
| Check | Done when |
|---|---|
| Legal name matches tax record exactly | Same punctuation, suffix, spelling |
| Website in brand record is live and yours | Loads without login; shows the business |
| Opt-in form has an unticked consent box with disclosure | Publicly reachable URL added to campaign |
| Privacy policy has the SMS paragraph | Live, linked from the form |
| SMS terms exist | Live, linked from the form |
| Message flow quotes the consent text | Word for word |
| 3–5 samples with brand name, STOP language, no shorteners | Match the use case |
| Use case matches description and samples | One consistent story |
| No restricted content anywhere | Description, samples, website |
While you wait
Do not send from an unregistered 10-digit number to bridge the gap. Carriers filter that traffic and a filtered number can be harder to rehabilitate than a rejected campaign. If you must text US customers now, a verified toll-free number is the usual bridge; it has its own short verification and works for the same message types.
And keep the automations paused until the approval arrives. A missed-call text-back workflow that fires into a filtered number looks broken to the owner and to the customer.
After approval
Approval is for the campaign as described. Adding a new message type later (say, review requests, when the campaign only mentioned reminders) means the samples and description should be updated — and the messages you actually send should stay inside what was approved. Keep the consent language on every form, keep STOP handling automatic, and keep a record of when and how each contact opted in. That record is what protects you if anyone ever asks.
Further reading: The Campaign Registry · Twilio A2P 10DLC docs.
FAQ
How long does an A2P campaign resubmission take?
Usually a few business days, sometimes up to two weeks during busy periods. The vetting is done by a third party, not your SMS platform, so support cannot speed it up — the only lever is submitting a complete, consistent campaign the second time.
Is there a fee every time I resubmit a rejected campaign?
Typically yes — the campaign vetting fee is charged per submission and is not refunded on rejection. Fix every issue listed here before resubmitting rather than changing one thing at a time.
Can I text customers while the campaign is in review?
Not from an unregistered US 10-digit number; carriers block that traffic. Wait for approval, or use a verified toll-free number in the meantime, which has its own simpler verification.
My brand was approved but the campaign keeps failing. Why?
Brand approval only confirms the business exists. The campaign is judged on consent and content: how people opt in, what the messages say, and whether the website and privacy policy back it up. Those are the fixes in this guide.
Stuck after a second rejection? Send me the rejection notice and your campaign details — I rewrite the flow, samples and policy pages and resubmit it with you, and the vast majority go through on that attempt.