What Changed
Rejected A2P 10DLC campaigns include a View required fixes → link beside each rejection reason. Clicking the link opens a modal with structured details about the rejection.
Required Fixes Modal
The Required Fixes modal explains exactly what needs to be corrected before resubmission. The modal includes:
Field | What it shows |
Error code | The carrier rejection code |
Rejection category | A readable category for the issue |
What it means | Why the campaign failed review |
Correction needed | The exact change needed before resubmitting |
How to View Required Fixes
Open the A2P 10DLC campaign registration area.
Locate the campaign with Rejected status.
Review each listed failure reason.
Click View required fixes →.
Read the error code, category, meaning, and correction needed.
Fix every listed issue.
Click Re-Submit after all required fixes are complete.
A campaign can have more than one rejection reason. Review and fix every listed reason before resubmitting.
Rejection Codes Eligible for Resubmission
The codes in this section can usually be corrected and resubmitted after the required changes are made.
Opt-In and Consent Rejections
Error code | What it means | Correction needed |
30909 | Call-to-action or message flow cannot be verified. | Provide complete CTA information and all consent methods. If consent is behind a login, provide hosted screenshots. |
30913 | Marketing consent is not separate from informational or transactional consent. | Add separate promotional consent, or clarify that only transactional messages are sent. |
30917 | Multiple opt-in methods were selected but not described. | Describe every selected opt-in method. |
30923 | Messaging consent is bundled into mandatory terms. | Make SMS opt-in separate and optional. |
30924 | Consent language is missing required disclosures. | Add message type, frequency, message/data rates notice, and STOP instructions. |
30925 | Opt-in checkbox is missing or pre-selected. | Add an unchecked SMS consent checkbox. |
30931 | Opt-in flow does not allow users to decline messaging. | Add a skip option or unchecked checkbox. |
30932 | Privacy policy says opt-in data is shared for marketing. | State that mobile information is not shared with third parties for marketing. |
30896 | Opt-in workflow is missing, incomplete, or shared with third parties. | Update opt-in details, provide screenshots or links, include privacy policy and terms, and confirm consent is not shared. |
30887 | Opt-out workflow is unclear or missing. | Add opt-out keywords and an opt-out reply that includes acknowledgement, no-further-message confirmation, and brand name. |
30890 | HELP reply is missing required business contact details. | Include brand name, phone number, or email address in the HELP response. |
Website Rejections
Error code | What it means | Correction needed |
30919 | Website lacks business details or messaging disclosure. | Add company name, services, contact information, privacy policy, and SMS program details. |
30920 | Website is only a form without business context. | Add company name, business description, and contact information. |
30921 | Website requires login and cannot be reviewed. | Create a public page that describes the business and messaging program. |
30922 | Website is under construction or uses a non-standard URL. | Provide a functioning standard URL, or explain pre-launch status and provide screenshots. |
30891 | Invalid website URL was provided. | Verify the website works, or explain that the registration is for a pre-launch website. |
30907 | Website does not match campaign or brand details. | Align the website with the registered brand and campaign description. |
30908 | Privacy policy is missing or inaccessible. | Provide a direct, accessible privacy policy link in the message flow. |
30888 | Age gate is missing. | Add a robust age gate to the website or opt-in flow. |
Business Identity Rejections
Error code | What it means | Correction needed |
30914 | Sole proprietor campaign content does not match registered name. | Align campaign description, messages, and website with the registered name. |
30915 | Registered as sole proprietor but using a corporate name. | Register as a standard brand using EIN and corporate information. |
30918 | DBA name does not match legal name on file. | Update brand registration to include the DBA name. |
30926 | Campaign references multiple companies or brands. | Register a separate campaign for each brand. |
30927 | Opt-in evidence shows a different company. | Ensure opt-in evidence matches the registered campaign brand. |
30971 | Contact email uses a personal domain. | Use a business email address. |
30972 | Contact person is not authorized. | Use an authorized representative of the registered business. |
30881 | Brand support email is invalid or uses a public domain. | Use a valid business-domain support email. |
30894 | Campaign is associated with the wrong brand. | Verify the campaign is linked to the correct brand. |
30903 | Brand does not meet Sole Proprietor EIN criteria. | Register as a standard brand and use a matching standard campaign use case. |
Campaign Use Case Rejections
Error code | What it means | Correction needed |
30910 | Registration fields contain non-English language. | Provide English campaign registration content and translations for sample messages. |
30911 | Duplicate text was used across fields or sample messages. | Use unique descriptions and distinct sample messages. |
30912 | Use case appears personal or P2P, not A2P. | Explain what software or platform triggers the messages and how customers are served. |
30916 | Lead generation and lead nurture were mismatched. | Select the use case that matches the campaign purpose. |
30928 | Social influencer or public figure communications are not valid. | Register as a business entity and use a valid business use case. |
30929 | Emergency alerts are not permitted. | Contact support for alternatives. |
30930 | Brand reached the 100-campaign limit. | Deregister unused campaigns before resubmitting. |
30886 | Campaign description is unclear or mismatched. | Add a detailed, accurate campaign purpose. |
30893 | Sample messages are missing, unclear, or mismatched. | Add realistic sample messages with business name, use-case alignment, and bracketed variables where needed. |
30892 | Sample messages include a public shortener or non-secure URL. | Use full direct HTTPS URLs only. |
30889 | Embedded phone number setting does not match sample messages. | Add the embedded phone number to samples or update the embedded phone number selection. |
Registration and Brand Rejections
Error code | What it means | Correction needed |
30895 | Direct lending campaign is missing direct lending attribute. | Select the direct lending or loan arrangement attribute, or update the campaign description if not applicable. |
30898 | Same EIN is used for multiple brands. | Register only the minimum required brands per EIN and update brand registration before resubmitting. |
30995 | Maximum Messaging Services phone number limit reached. | Contact support. |
Rejection Codes Not Eligible for Resubmission
The codes in this section are tied to forbidden or high-risk messaging categories.
Do not resubmit the same campaign unless support confirms the rejection was made in error.
SHAFT Content Violations
Error code | Rejection category | What it means |
30953 | SHAFT – Sex | Adult or sexual content was included. |
30954 | SHAFT – Hate | Hate speech, profanity, violence, or similar content was included. |
30955 | SHAFT – Alcohol | Alcohol promotions were included. |
30956 | SHAFT – Alcohol Age Gate | Alcohol content was included without a robust 21+ age gate. |
30957 | SHAFT – Firearms | Firearms, fireworks, or explosives content was included. |
30958 | SHAFT – Tobacco / Vape | Tobacco, vape, or related product content was included. |
Disallowed Content
Error code | What it means |
30940 | Cannabis, CBD, marijuana, or illegal substances. |
30941 | Prescription drugs or controlled substances. |
30942 | Loan marketing. |
30943 | Third-party debt collection. |
30944 | Gambling or betting. |
30945 | Sweepstakes or contests. |
30946 | Stock alerts or investment signals. |
30947 | Cryptocurrency trading or token promotions. |
30948 | High-risk investment opportunities. |
30949 | Debt reduction or consolidation services. |
30950 | Credit repair services. |
30951 | Third-party lead generation or MLM. |
30952 | Non-federally compliant use case. |
High-Risk Rejections
Error code | What it means |
30959 | Fraudulent or misleading content detected. |
30960 | Known phishing campaign detected. |
30961 | Website or URL has high-risk domain reputation. |
30962 | Deceptive marketing practices detected. |
30963 | Public URL shorteners were used. |
30964 | HTTP URLs were used instead of HTTPS. |
Legacy Rejection Codes
These older codes may still appear on older rejections.
Error code | Rejection category | What it means |
30882 | Terms & Conditions | Campaign does not meet carrier terms. |
30883 | Content Violation – SHAFT | Restricted SHAFT content was included. |
30884 | Spam / Phishing | Number, business, or traffic was flagged for spam or phishing. |
30885 | High Risk | Fraud, deceptive marketing, or third-party data sharing was flagged. |
30897 | Disallowed Content | Disallowed content or third-party data sharing was detected. |
Common Issues and Fixes
The campaign has multiple rejection reasons
Fix every rejection reason listed. Resubmitting after only fixing one issue can result in another rejection.
The campaign was rejected for an invalid website URL
Verify the submitted website is live and accessible. If the site is pre-launch, add clear pre-launch context and provide supporting screenshots.
The campaign was rejected for CTA or message flow
Provide a complete explanation of how users opt in. Include every opt-in method selected in the registration.
The rejection code is not eligible for resubmission
Do not resubmit the same campaign. Contact support if you believe the rejection was incorrect.
FAQ
Can I resubmit immediately after making corrections?
Yes, if the rejection code is eligible for resubmission. Fix all listed issues first, then resubmit the campaign.
Do I need to fix every rejection reason?
Yes. Every rejection reason must be corrected before resubmission.
Can I appeal an ineligible rejection?
Yes. Contact support and include the full campaign details, rejection code, and reason you believe the rejection was incorrect.
What should I do if the campaign is rejected again?
Review the new rejection reasons. Carriers may identify additional issues during later reviews. Contact support if the campaign appears compliant but continues to be rejected.


