Verification lifecycle
Understanding where your verification can fail helps target the right fix:| Stage | Timeline | What happens |
|---|---|---|
| Submission | Instant | API validates fields, returns 201 or error |
| Under review | 1–2 weeks | Carriers review business identity and messaging use case |
| Decision | — | Approved (full throughput) or rejected (with reason) |
| Resubmission | Instant | Fix issues and resubmit — no limit on attempts |
Verification rejection reasons
Rejections come from carrier review. Each has specific causes and fixes.Business information issues
Business name mismatch
Business name mismatch
businessName you submitted doesn’t match what’s on file with the Secretary of State, IRS, or similar authority for your registration number.Fix:- Look up your exact legal name on your state’s Secretary of State website
- Cross-reference with your EIN confirmation letter from the IRS
- Include suffixes exactly: “Inc.”, “LLC”, “Corp.” — these matter
- Resubmit with the corrected name
Business registration number (BRN) cannot be verified
Business registration number (BRN) cannot be verified
- Verify your EIN at IRS.gov or on your SS-4 confirmation letter
- Ensure the
businessRegistrationTypematches the number format (e.g., “EIN” for US tax IDs) - Confirm
businessRegistrationCountryis correct (ISO alpha-2) - For sole proprietors using SSN, ensure the name matches exactly
Website unreachable or doesn't match
Website unreachable or doesn't match
- Ensure the URL is accessible (no authentication required, no redirects to a different domain)
- The website must show the company name prominently
- Website content should relate to the messaging use case
- HTTPS is strongly preferred
- Under construction / parking pages will cause rejection
Contact information invalid
Contact information invalid
- Use a phone number that’s publicly associated with the business (Google listing, website, etc.)
- Use a business email domain (not gmail.com, yahoo.com for corporations)
- Ensure the contact person is authorized to represent the business
Entity type mismatch
Entity type mismatch
PRIVATE_PROFIT but the business is registered as a nonprofit, or vice versa.Fix:
Choose the correct entity type based on your actual business registration:| Entity Type | Use for |
|---|---|
SOLE_PROPRIETOR | Individual / sole proprietorship |
PRIVATE_PROFIT | Private corporation (most common) |
PUBLIC_PROFIT | Publicly traded company |
NON_PROFIT | 501(c)(3) or charitable organization |
GOVERNMENT | Government entity at any level |
Messaging use case issues
Sample messages don't match declared use case
Sample messages don't match declared use case
useCaseSummary says one thing (e.g., “appointment reminders”) but your sample messages show something different (e.g., marketing promotions).Fix:- Ensure every sample message directly relates to your declared use case
- Include realistic content — not placeholder text
- Show the full message including opt-out language
- If you have multiple use cases, describe all of them in
useCaseSummary
Missing or inadequate opt-out language
Missing or inadequate opt-out language
- Include “Reply STOP to unsubscribe” (or similar) in every sample
- The opt-out instruction should be natural, not buried
- STOP, CANCEL, UNSUBSCRIBE, QUIT, END should all work
- “Reply STOP to opt out.”
- “Text STOP to unsubscribe.”
- “Reply STOP to end messages. Msg & data rates may apply.”
Message volume inconsistent with use case
Message volume inconsistent with use case
- Be honest about expected volumes — carriers cross-reference similar businesses
- If volume is high, explain why (large customer base, time-sensitive notifications)
- Start conservative and increase as your messaging matures
Opt-in mechanism not described
Opt-in mechanism not described
messageFlow field:- Where users sign up (website form, checkout flow, in-app)
- What consent language they see
- Whether it’s single or double opt-in
- How consent records are maintained
Prohibited or restricted content detected
Prohibited or restricted content detected
- Cannabis/CBD
- Adult content
- Gambling (without proper licensing documentation)
- High-risk financial services (payday loans, crypto trading signals)
- Third-party lead generation
- If your content is genuinely prohibited, toll-free may not be the right channel
- For regulated industries (gambling, financial services), include licensing documentation
- Remove any references to restricted content from samples
- Contact Telnyx support for guidance on restricted use cases
Resubmission process
After a rejection, you can fix the issues and resubmit. There’s no limit on resubmission attempts.Read the rejection reason carefully
Fix the identified issues
Resubmit for review
Resubmission tips
| Do | Don’t |
|---|---|
| Fix only the cited rejection reason | Change everything at once |
| Use exact legal business name | Use informal names or abbreviations |
| Provide realistic sample messages | Use generic placeholder text |
| Include opt-out in every sample | Assume opt-out is implied |
| Wait for the full review cycle | Submit multiple times in rapid succession |
Delivery issues after verification
Even after successful verification, you may experience delivery problems.Throughput limitations
| Verification status | Throughput | Notes |
|---|---|---|
| Unverified | ~0.25 MPS | Heavy carrier filtering, low reliability |
| Pending review | ~1 MPS | Some filtering may apply |
| Verified | Up to 20 MPS | Full throughput, minimal filtering |
Common delivery errors
40002 — Blocked as spam (even after verification)
40002 — Blocked as spam (even after verification)
- Review message content for spam trigger words (FREE, WINNER, ACT NOW)
- Avoid URL shorteners (bit.ly, tinyurl) — use full URLs or Telnyx URL shortening
- Don’t send identical messages to many recipients in rapid succession
- Check if recipient has previously opted out
- Review the error code reference for specific guidance
40005 — Destination number unreachable
40005 — Destination number unreachable
- Validate numbers before sending (use Number Lookup API)
- Remove landlines and VoIP numbers that don’t support SMS
- Check for typos in the recipient number
40011 — Rate limit exceeded
40011 — Rate limit exceeded
- Implement client-side rate limiting (see Rate Limiting guide)
- Spread traffic across multiple toll-free numbers if needed
- Use a messaging profile with number pooling for high-volume use cases
40014 — Message expired in queue
40014 — Message expired in queue
- Reduce sending rate to stay within throughput limits
- Check if a carrier outage is causing delivery backlog
- For time-sensitive messages, set a shorter validity period
Messages delivering but not received by all carriers
Messages delivering but not received by all carriers
- New verifications (carrier trust builds over time)
- Content that resembles spam patterns
- High complaint rates from recipients
- Start with lower volumes and ramp up gradually over 1–2 weeks
- Monitor delivery rates per carrier using MDRs
- Ensure opt-out is working properly (high complaint rates trigger filtering)
- Contact Telnyx support if specific carriers consistently filter your traffic
Checking verification status
Via API
Via Portal
- Log in to the Telnyx Portal
- Navigate to Messaging → Toll-Free Verification
- View status, rejection reasons, and submission details for each verification
Status reference
| Status | Meaning | Action needed |
|---|---|---|
draft | Created but not yet submitted | Complete required fields and submit |
pending | Under carrier review | Wait (1–2 weeks typical) |
verified | Approved ✅ | None — full throughput unlocked |
rejected | Carrier rejected ❌ | Fix issues and resubmit |
Diagnostic checklist
Use this checklist when troubleshooting verification issues:Before submitting
- Business name matches exact legal name (including Inc./LLC/etc.)
- EIN/BRN is correct and matches the business name
- Website is live, accessible, and shows the business name
- Contact phone and email are valid and publicly associated with the business
- Entity type matches business registration
- Use case summary clearly describes messaging purpose
- Sample messages are realistic (not placeholder text)
- Every sample includes opt-out language (“Reply STOP to unsubscribe”)
- Message flow describes how users consent to receive messages
- Volume estimate is reasonable for the use case
After rejection
- Read the rejection reason completely
- Cross-reference with the rejection reasons above
- Fix only the specific issue cited
- Double-check all information against official business records
- Resubmit via PATCH (don’t create a new request)
- Set up webhooks to track the new review
After verification (delivery issues)
- Verify toll-free number is on an active messaging profile
- Check sending rate isn’t exceeding throughput tier
- Review message content for spam trigger words
- Confirm opt-out keywords are being processed
- Check MDRs for carrier-specific delivery rates
- Monitor error codes for patterns
Timeline expectations
| Stage | Typical duration |
|---|---|
| Initial submission to review start | 1–3 business days |
| Carrier review | 5–10 business days |
| Total (first submission) | 1–2 weeks |
| Resubmission review | 5–10 business days |
| Multiple resubmissions | Each adds ~1 week |
Toll-free vs. 10DLC: when to use which
| Factor | Toll-Free | 10DLC |
|---|---|---|
| Setup time | 1–2 weeks | Days (brand + campaign registration) |
| Throughput | Up to 20 MPS | Varies by vetting score (up to 240 MPS with enhanced) |
| Cost | Per-message only | Per-message + campaign fees ($10/mo) |
| Number appearance | 800/888/877/etc. | Local area code |
| Registration | Toll-free verification | TCR brand + campaign |
| MMS | ✅ Supported | ✅ Supported |
| Best for | Customer service, national reach | Local presence, high volume A2P |