How rejections work

About a 3-minute read.

A campaign that doesn't pass review comes back rejected. This is normal, most rejections are a same-day fix once you know what to change. This guide explains how a rejection reaches you and how to work through it; the linked guides cover specific reasons.

How a rejection reaches you

AgentMessage files your campaign with the registry, and the carriers review it. When a campaign fails review, the reason comes back from the registry and the carriers, and AgentMessage surfaces it to you:

  • the campaign's status flips to rejected on its detail page,
  • the reason the carriers returned is shown alongside it,
  • and if you've subscribed to webhook events, your application is notified.

You won't need to decode raw carrier error codes, we translate what comes back into the reason and, where we can, what to do about it. If a reason isn't clear, send it to support and we'll interpret it.

Who rejected it

Knowing the source helps you aim the fix:

  • AgentMessage, we catch missing or invalid fields as we file. These are the quickest to fix; we'll tell you exactly what's wrong.
  • The registry / carriers, the substantive content review. This is where most "your campaign was rejected because…" reasons originate: the description was too vague, samples didn't match the use case, the privacy policy was missing required language, the brand didn't look like the real sender.

The reasons that account for most rejections

Rather than a code dictionary, it helps to recognize the handful of patterns behind most rejections. Each has its own guide:

  • Vague or mismatched description / samples, the carriers can't tell what you send, or your samples don't match your stated use case. See Common rejection reasons and Sample messages that pass.
  • Call-to-action / opt-in problems, the opt-in flow isn't described concretely, or the consent isn't valid. See CTA and opt-in rejections.
  • Privacy policy problems, missing, unreachable, or missing the "we don't share SMS opt-in data" language carriers require. See Privacy policy rejections.
  • Brand / sender identity problems, the registered brand doesn't line up with who the messages appear to come from. See Brand identity rejections.
  • Banned or restricted content, the content category isn't allowed, or needs controls (like age-gating) you don't have. See Banned and restricted content.

How to work a rejection

  1. Read the reason on the campaign. It points at the layer and the issue.
  2. Look at the description, samples, opt-in flow, and privacy policy together. They have to tell one consistent story, most rejections are really a mismatch between two of them.
  3. Fix the root cause, then have it re-filed. Wording-level fixes (description, samples, HELP reply, URLs) can be re-filed without starting over, make the change and contact support to push it back through. Structural changes (use case, the content toggles) require re-creating the campaign, which we also handle.
  4. Don't repeatedly resubmit the same thing. If you've been rejected for what looks like the same issue more than once or twice, stop and read If you keep getting rejected, re-filing without changing the root cause just repeats the result.

Rejection vs. suspension

A rejection happens during review, the campaign never went live. A suspension happens after a campaign is live and sending, when a carrier shuts it down (usually for complaints or content). Different situation, different fix, see Suspensions.

Next