AgentSIMReal numbers for AI agents
← Blog
4 min read

Fix: WhatsApp 'Unsupported phone numbers such as VoIP' for AI Agents

Solve WhatsApp Business API registration errors. Learn why WhatsApp blocks VoIP and how real SIM numbers enable agent registration.


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:

  1. Carrier database lookup — Checks LERG/NPAC for line type
  2. HLR query — Verifies active mobile network registration
  3. Historical abuse check — Numbers previously used for spam are permanently blocked
  4. 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

ProviderWhatsApp ResultError Message
Twilio❌ Blocked"Unsupported phone number"
Vonage❌ Blocked"Unsupported phone number"
Google Voice❌ Blocked"Unsupported phone number"
Bandwidth❌ Blocked"Unsupported phone number"
AgentSIM✅ PassesRegistration 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 / Windsurf)

{
  "mcpServers": {
    "agentsim": {
      "url": "https://mcp.agentsim.dev/mcp",
      "headers": {
        "Authorization": "Bearer asm_live_xxx"
      }
    }
  }
}

Carrier Verification Results

CheckVoIP NumberAgentSIM Number
LERG line_typevoipmobile
Carrier nameTwilio IncT-Mobile USA
HLR statusNo mobile registrationActive on network
WhatsApp eligible❌ No✅ Yes

Important Notes

  1. One number per WhatsApp account — WhatsApp enforces 1:1 mapping
  2. Number history matters — Previously-banned numbers may still be blocked
  3. Business verification separate — Phone verification is step 1; Meta business verification is step 2
  4. Keep the number active — WhatsApp may re-verify periodically

Cost

ApproachMonthly CostWhatsApp Success Rate
Twilio$1-15/number0%
Google VoiceFree0%
AgentSIM$0.99/session100%

Get Started