A2P 10DLC resubmission checklist
A copy-paste checklist for resubmitting a rejected A2P 10DLC campaign. Walk through each section before clicking resubmit — carriers re-review the whole campaign, not just the field that was flagged.
Guidance only — A2PCheck is independent and not affiliated with Twilio, The Campaign Registry, or any carrier, and we can't guarantee approval.
Run the checklist against your campaign
Paste your campaign details below and get the same checks the article walks through — instantly. Free, no signup.
Campaign description
- Describes the audience (who receives messages and how they relate to you).
- Names the use case (marketing, account notifications, customer care, 2FA, etc.) and matches the selected campaign type.
- Quotes the exact consent text users see at opt-in.
- Names the URL where opt-in happens.
- States the expected message volume / frequency.
- Reads like a real description of your business, not a template.
Sample messages
- Each sample starts with a brand identifier (e.g. "Acme:").
- Each promotional sample includes Reply STOP to opt out.
- Promotional samples include msg&data rates / msg freq disclosure.
- Samples are concrete — specific offers, order numbers, appointment times — not generic.
- At least two distinct samples (not near-duplicates).
- Links use your branded domain, not bit.ly / t.co / generic shorteners.
Opt-in flow
- Single, named URL where opt-in is captured.
- Consent checkbox is unchecked by default.
- Consent language is quoted in the campaign description, verbatim.
- Confirmation step (email, on-screen, or first SMS) is described.
- Promotional and transactional opt-ins are kept distinct.
- Privacy policy and terms URLs are linked from the opt-in surface.
Public URLs
- Privacy policy URL returns 200, is publicly reachable (no login wall).
- Privacy policy explicitly covers SMS opt-in data.
- Privacy policy contains "no sale / no sharing of phone numbers" language.
- Terms of service URL is reachable and references SMS where relevant.
- Opt-in form URL is reachable and the form actually exists on the page.
Flags and metadata
- embeddedLinks set honestly (true if any sample contains a link).
- embeddedPhoneNumbers set honestly.
- ageGatedContent set if any sample addresses 18+ content.
- directLending / numberPool flags set accurately if applicable.
- Use case classification (MARKETING, ACCOUNT_NOTIFICATION, etc.) matches the actual samples.
Before clicking resubmit
- Run a final pre-scan and resolve every Red and most Yellow findings.
- Reread the campaign as if you were a carrier reviewer with no prior context.
- If the use case has shifted materially, file a new campaign rather than editing.
- Keep a copy of what you submitted so the next rejection (if any) is debuggable.
Running this checklist across many client campaigns?
The same checks are available as an API — agencies and platform teams gate every client resubmission on a GREEN pre-scan before it reaches TCR. See the API reference or request volume access. We're independent of Twilio and TCR — details on the FAQ.
Frequently asked questions
Should I edit the existing campaign or start a new one?
If the use case is the same and you are tightening descriptions, sample messages, or opt-in language, edit and resubmit. If the use case itself changed (e.g., moving from MARKETING to ACCOUNT_NOTIFICATION), file a new campaign so the audit trail stays clean.
How many times can I resubmit before something goes wrong?
There is no hard public cap, but repeated rejections look bad and can slow review. Treat each resubmission like the last — fix everything, not just the highlighted complaint.
Do I need to change my sample messages if only the description was rejected?
Often yes. Carriers re-review the whole campaign, not just the field they cited. Tightening samples and opt-in language at the same time reduces the chance of a second rejection.