> ## Documentation Index
> Fetch the complete documentation index at: https://docs.photon.codes/docs/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> Use Stable documentation by default. Honor an explicit Beta request or a URL under /docs/beta/. If the requested version conflicts with the installed CLI package or API origin, clarify the target before writing integration code.
> Pages under /docs/beta/ document Beta; other product pages document Stable. Keep the CLI package, commands, API origin, and credentials within the selected version. State the documentation version in your answer.
> For MCP search, always pass version: Stable or version: Beta. Unfiltered search mixes both versions. For filesystem reads, keep Beta queries under /beta/ and exclude /beta/ from Stable queries; discover paths before reading them.
> The public docs base is https://photon.codes/docs. Convert MCP page paths to public URLs under that base, preserving /beta/ when present. Read https://photon.codes/docs/skill.md for version selection and https://photon.codes/docs/llms.txt for the version indexes.

# Fix a rejected 10DLC campaign

> Find out why a 10DLC campaign was rejected, fix each finding, and resubmit the campaign for review.

A 10DLC campaign is reviewed before it can send SMS to US numbers. It first
goes through a compliance review, and then the carriers review it. If either
review rejects the campaign, its status changes to **Action required**. The
campaign page then lists what the reviewer found.

This page shows you how to read the findings, fix them, and resubmit the
campaign. Each requirement has its own guide:

* [Opt-in form](https://docs.photon.codes/docs/beta/messaging/sms/10dlc/opt-in-form.md): what a web form that collects SMS consent must show.
* [Message flow](https://docs.photon.codes/docs/beta/messaging/sms/10dlc/message-flow.md): how to describe the way people opt in.
* [Privacy policy and terms](https://docs.photon.codes/docs/beta/messaging/sms/10dlc/privacy-policy.md): the statement reviewers look for.
* [Sample messages and keywords](https://docs.photon.codes/docs/beta/messaging/sms/10dlc/sample-messages.md): sample messages and the START, STOP, and HELP responses.
* [Use cases and consistency](https://docs.photon.codes/docs/beta/messaging/sms/10dlc/use-cases.md): how to choose use cases and keep the campaign consistent with them.
* [Prohibited content](https://docs.photon.codes/docs/beta/messaging/sms/10dlc/prohibited-content.md): content and businesses that carriers don't accept.
* [Brand verification](https://docs.photon.codes/docs/beta/messaging/sms/10dlc/brand-verification.md): brand details carriers can verify.
* [Rejection codes](https://docs.photon.codes/docs/beta/messaging/sms/10dlc/rejection-codes.md): what each carrier rejection code means.

## Find the review findings

**1. Open the campaign**

Open **Organization settings**. Under **Compliance**, select **10DLC
registration**. In **Campaigns**, select the campaign marked **Action
required**.

**2. Read the latest review**

**Review history** lists each review step, with the newest first. A failed
step, such as **Compliance review failed** or **Carrier review failed**,
shows the reviewer's findings under its date.

## Read the findings

One rejection can contain several findings. Each finding describes one
problem. Fix all of them before you resubmit, because the reviewer checks the
whole campaign again.

* **Links:** a finding can end with a link to a page in these docs. That page
  explains the requirement and shows how to meet it.
* **Reviewer notes:** a finding can be followed by a note that starts with
  **Note:**. The note tells you what the reviewer saw on your campaign, for
  example a sign-up page with no SMS consent text. Fix the problem in the note
  as well as the general finding.

## Common findings

| The finding says | What to fix | Guide |
| - | - | - |
| Add a link or screenshot of the opt-in form showing the phone number field and full SMS opt-in language | In **How people opt in and out**, add the URL of your opt-in form. If reviewers can't open the form, add a public link to a screenshot of it. The form must show the phone number field and the full consent text. | [Opt-in form](https://docs.photon.codes/docs/beta/messaging/sms/10dlc/opt-in-form.md) |
| The opt-in consent language does not cover all selected use cases | Change your consent text so that it names every type of message the campaign sends. | [Consent must cover every use case](#consent-must-cover-every-use-case) |
| The Privacy Policy needs to be compliant | Add a statement that mobile information is not sold or shared with third parties for marketing. Remove anything that allows that sharing. | [Privacy policy and terms](https://docs.photon.codes/docs/beta/messaging/sms/10dlc/privacy-policy.md) |
| Who is the perceived sender of the messages? | Make sure the messages come from the registered brand. Each business you send messages for needs its own brand and campaign. | [The sender must be the registered brand](#the-sender-must-be-the-registered-brand) |
| The opt-in workflow needs more details | Describe each step a person takes to opt in. Include the exact page, keyword, or script. | [Message flow](https://docs.photon.codes/docs/beta/messaging/sms/10dlc/message-flow.md) |
| Add a link to the brand details for brand verification | Make sure the brand has a working website that identifies the business. | [Brand verification](https://docs.photon.codes/docs/beta/messaging/sms/10dlc/brand-verification.md#website) |
| A sample message or keyword response is missing required text | Add the brand name and opt-out instructions, and match the samples to the use cases. | [Sample messages and keywords](https://docs.photon.codes/docs/beta/messaging/sms/10dlc/sample-messages.md) |
| The sample messages, description, or consent don't match the selected use cases | Make every part of the campaign describe the same business and message types. | [Use cases and consistency](https://docs.photon.codes/docs/beta/messaging/sms/10dlc/use-cases.md) |
| Prohibited content, such as cannabis, gambling, or lead generation | Carriers don't accept this content. Contact Photon support if the campaign was misclassified. | [Prohibited content](https://docs.photon.codes/docs/beta/messaging/sms/10dlc/prohibited-content.md) |
| A three-digit code, such as 602 or 806 | Look up the code and follow its fix. | [Rejection codes](https://docs.photon.codes/docs/beta/messaging/sms/10dlc/rejection-codes.md) |

## Consent must cover every use case

The use cases you select under **Messages are for** can't change after you
submit the campaign. Reviewers check that the consent text people agree to
names each of these use cases. For example, a campaign registered for account
notifications and marketing needs consent text that mentions both.

To fix this finding, do one of the following:

* Change the consent text on your opt-in form, and in **How people opt in and
  out**, so that it names every use case. Name marketing explicitly, for
  example: "You agree to receive marketing texts from Example Co."
* If the campaign will not send some of these message types, register a new
  campaign with only the use cases that your consent covers.

## The sender must be the registered brand

Recipients must be able to tell which business is texting them. That business
must be the brand that the campaign is registered under. Reviewers compare the
brand with the campaign description, the sample messages, the website, and the
opt-in form.

* Use the brand name in the consent text, the sample messages, and the keyword
  responses.
* If the description or the sample messages mention a product or business name
  that is not the brand name, explain in the description how it belongs to the
  brand. For example: "Example App is a product of Example Co."
* If you send messages for other businesses, such as the customers of your
  platform, register a brand and a campaign for each of those businesses. One
  brand's campaign can't send another business's messages.
* The brand's website must work and must identify the business. It must show
  the business name, what the business does, and how to contact it.

## Fix and resubmit

**1. Fix what is outside Photon**

Update your website, opt-in form, privacy policy, or terms first, and
publish the changes. Reviewers open these pages, so they must be public and
must not require a sign-in.

**2. Edit the campaign**

On the campaign page, under **What to do now**, select **Edit the
campaign**. Change the fields that the findings name, and then select
**Save**. Saving is free. Nothing goes to the reviewers until you resubmit.

**3. Resubmit for review**

Under **Resubmit for review**, use **What changed** to describe the fixes
you made outside Photon, such as the URL of your updated opt-in form. This
field is required if you did not change the campaign in Photon. Then
resubmit the campaign.

> [!WARNING]
>
> The registration fee is charged again each time you resubmit. It isn't
> refunded if the campaign is rejected again, so fix every finding before you
> resubmit.

## Check before you resubmit

* The opt-in form is at a public URL, or **How people opt in and out** has a
  public link to a screenshot of it.
* The consent text names the brand and every use case. It also gives the
  message frequency, says that message and data rates may apply, and tells
  people to reply STOP to opt out and HELP for help.
* The SMS consent checkbox is optional and unchecked by default.
* The privacy policy says that mobile information is not sold or shared with
  third parties for marketing. The opt-in form links to the privacy policy and
  to the terms.
* Every sample message names the brand and matches a use case. At least one
  sample message tells people how to opt out.
* Every link in the campaign opens without a sign-in.

## Guides

> **[Opt-in form](https://docs.photon.codes/docs/beta/messaging/sms/10dlc/opt-in-form.md)**
>
> The phone number field, the consent checkbox, and the full consent text a
> web form must show.

> **[Message flow](https://docs.photon.codes/docs/beta/messaging/sms/10dlc/message-flow.md)**
>
> Templates for web forms, verbal consent, paper forms, and text keywords.

> **[Privacy policy and terms](https://docs.photon.codes/docs/beta/messaging/sms/10dlc/privacy-policy.md)**
>
> The privacy statement reviewers look for, and how to keep your terms
> consistent with it.

> **[Sample messages and keywords](https://docs.photon.codes/docs/beta/messaging/sms/10dlc/sample-messages.md)**
>
> Sample messages and START, STOP, and HELP responses that pass review.

> **[Use cases and consistency](https://docs.photon.codes/docs/beta/messaging/sms/10dlc/use-cases.md)**
>
> Choose the right use cases and keep every part of the campaign consistent
> with them.

> **[Prohibited content](https://docs.photon.codes/docs/beta/messaging/sms/10dlc/prohibited-content.md)**
>
> Content and business types that carriers don't accept on 10DLC numbers.

> **[Brand verification](https://docs.photon.codes/docs/beta/messaging/sms/10dlc/brand-verification.md)**
>
> Brand details carriers can verify, and how to fix the ones they flag.

> **[Rejection codes](https://docs.photon.codes/docs/beta/messaging/sms/10dlc/rejection-codes.md)**
>
> What each carrier rejection code means and what to change.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.