If you're building AI agents that need WhatsApp Business API access, you've seen this:
Unsupported phone numbers, such as VoIP, landlines, and premium rate numbers
WhatsApp has the strictest phone verification in the industry. Here's why, and how to solve it.
WhatsApp's Verification Requirements
WhatsApp's official FAQ is explicit:
"Unsupported phone numbers, such as VoIP, landlines, and premium rate numbers, are not eligible for registration."
Unlike Stripe or Google which silently reject, WhatsApp tells you exactly why. Their system performs:
- Carrier database lookup — Checks LERG/NPAC for line type
- HLR query — Verifies active mobile network registration
- Historical abuse check — Numbers previously used for spam are permanently blocked
- Country-carrier validation — Number must be from a carrier operating in the declared country
Why WhatsApp Is Stricter
WhatsApp is the primary communication platform in 180+ countries. They block VoIP because:
- Spam prevention: VoIP numbers are 40x more likely to be used for bulk spam
- Identity verification: Each WhatsApp account = one real person/business
- Carrier agreements: Meta has direct relationships with mobile carriers worldwide
Every VoIP Provider Fails
| Provider | WhatsApp result | Error message |
|---|---|---|
| Twilio | ❌ Blocked | "Unsupported phone number" |
| Vonage | ❌ Blocked | "Unsupported phone number" |
| Google Voice | ❌ Blocked | "Unsupported phone number" |
| Bandwidth | ❌ Blocked | "Unsupported phone number" |
| AgentSIM | ✅ Passes | Registration successful |
The Fix: AgentSIM for WhatsApp
AgentSIM numbers pass WhatsApp verification because they're real SIM cards on real mobile networks.
Install
pip install agentsim-sdk
WhatsApp Business API Registration
import agentsim
import asyncio
agentsim.configure(api_key="asm_live_xxx")
async def register_whatsapp_business():
async with agentsim.provision(
agent_id="whatsapp-setup",
country="US"
) as num:
print(f"Registering WhatsApp with: {num.number}")
# Use the number in WhatsApp Business API registration
# via Meta's Cloud API or on-premise API
registration_response = await register_with_meta_api(
phone_number=num.number,
method="sms" # or "voice"
)
# Wait for verification code
otp = await num.wait_for_otp(timeout=120)
print(f"WhatsApp code: {otp.otp_code}")
# Complete verification
await verify_with_meta_api(
phone_number=num.number,
code=otp.otp_code
)
print("WhatsApp Business registered!")
# Number auto-released after context exit
asyncio.run(register_whatsapp_business())
With Playwright (Web Registration)
import agentsim
from playwright.async_api import async_playwright
agentsim.configure(api_key="asm_live_xxx")
async def register_whatsapp_web():
async with async_playwright() as p:
browser = await p.chromium.launch()
page = await browser.new_page()
await page.goto("https://business.facebook.com/wa/manage/phone-numbers/")
async with agentsim.provision(
agent_id="whatsapp-reg",
country="US"
) as num:
await page.fill('[name="phone"]', num.number)
await page.click('button:has-text("Send code")')
otp = await num.wait_for_otp(timeout=120)
await page.fill('[name="code"]', otp.otp_code)
await page.click('button:has-text("Verify")')
await browser.close()
With MCP (Claude Code / Cursor)
{
"mcpServers": {
"agentsim": {
"url": "https://mcp.agentsim.dev/mcp",
"headers": {
"Authorization": "Bearer asm_live_xxx"
}
}
}
}
Carrier Verification Results
| Check | VoIP Number | AgentSIM Number |
|---|---|---|
| LERG line_type | voip |
mobile |
| Carrier name | Twilio Inc | T-Mobile USA |
| HLR status | No mobile registration | Active on network |
| WhatsApp eligible | ❌ No | ✅ Yes |
Important Notes
- One number per WhatsApp account — WhatsApp enforces 1:1 mapping
- Number history matters — Previously-banned numbers may still be blocked
- Business verification separate — Phone verification is step 1; Meta business verification is step 2
- Keep the number active — WhatsApp may re-verify periodically
Cost
| Approach | Monthly cost | WhatsApp success rate |
|---|---|---|
| Twilio | $1-15/number | 0% |
| Google Voice | Free | 0% |
| AgentSIM | $0.99/session | 100% |
Get Started
- Try it: agentsim.dev
- Docs: docs.agentsim.dev
- GitHub: github.com/agentsimdev
10 free sessions per month. Real SIM numbers that pass WhatsApp's strict verification.
Top comments (0)