English
Receiving WhatsApp verification codes without tying up a staff phone
To receive a WhatsApp verification code with OTP Route, order a number for the WhatsApp service in the country you need through the OTP Gateway, enter it on WhatsApp's registration screen, and read the code in the dashboard or on your webhook. Codes start at $0.20 per code, and if no SMS arrives within the 20-minute window the charge returns to your wallet.
Why does a team end up needing a WhatsApp number nobody personally owns?
The situation is familiar. A product team is building a support flow on WhatsApp, or testing how its app hands users over to a chat, and someone has to register an account. The fastest option is a colleague's own phone. That ties a business setup to one employee's SIM, mixes test traffic with their private conversations, and breaks the day they leave.
Agencies configuring WhatsApp for clients run into the same wall, and so do QA engineers who need a test account in a specific market to see how a regional onboarding flow behaves. A WhatsApp phone number from the OTP Gateway keeps that work off anyone's personal line: you choose the country, receive the registration code, and move on.
When does WhatsApp ask for a phone verification code?
WhatsApp identifies each account by its phone number, so it checks control of that number with a one-time code at a few points:
- Registration: a new account gets a six-digit code by SMS, and WhatsApp may offer a voice call as an alternative.
- New device: reinstalling or moving to another phone repeats the check, and the previous phone is signed out.
- Business accounts: setting up the WhatsApp Business app on a number goes through the same step.
- Two-step verification: an optional PIN the user chooses. It is never sent by SMS, but it is requested alongside the code when enabled.
The point for testing is simple: the SMS proves you hold the number at that moment, so a number you no longer hold cannot verify the account later.
How does the WhatsApp verification code API flow work?
Use the service id whatsapp together with the country id of the market under test, such as in, br or us. With a Bearer key from the Developer console:
GET /api/v1/prices?country=<id>&service=whatsappreturns the live price and whether that route is open right now.POST /api/v1/activationswith{"service": "whatsapp", "country": "<id>"}reserves a number and starts the 20-minute window.- Enter the number on WhatsApp's registration screen and ask for the SMS.
- The code reaches you as an
activation.sms_receivedwebhook event, or you pollGET /api/v1/activations/{id}every few seconds. - If the run is abandoned,
POST /api/v1/activations/{id}/cancelsends the amount back to the wallet.
Verify X-OTPRoute-Signature before trusting the body: compute HMAC-SHA256 over <t>.<raw body> with the endpoint's secret, compare it with v1, and refuse timestamps that are too old. Then record the event against its activation id so a repeated delivery changes nothing. Polling is the simpler choice when a test runner cannot expose a public URL; the developer docs describe both paths.
Which countries offer WhatsApp numbers, and does the choice matter?
WhatsApp routes are currently available in 198 countries, among them India, Brazil, Indonesia, Nigeria, Germany, Mexico, the United Kingdom, the United States, Pakistan, the Philippines, Egypt, Kenya, Spain, Turkey and South Africa. The full set is on the countries page.
Pick the country on purpose. If your onboarding flow targets Brazilian users, a +55 number shows how your app formats, validates and displays a local number. If the business account will serve one market, match that market. A random country saves nothing and can make a test result meaningless.
Why might the WhatsApp code fail to arrive?
WhatsApp decides which numbers it will send to, and it may refuse a virtual number for WhatsApp registration outright. When that happens nothing reaches the activation, the window closes, and the full amount returns to your wallet; you only pay when a code actually arrives. Other causes are more ordinary: a busy route, WhatsApp asking you to wait before requesting another code, or a code requested by voice call instead of SMS.
What to do:
- Leave the activation open for its full window instead of canceling after a minute.
- Make sure the registration screen requested an SMS, not a call.
- Retry later, or try another country route if the account's market allows it.
- Space your attempts out. Requesting code after code in a fast loop tends to make things worse.
Should a long-lived WhatsApp account use a dedicated number?
Usually, yes. An OTP Gateway number is for one code, and if the account must be verified again after a phone swap or reinstall, you need that same number back. For a support line, a shared business account or a QA account testers reuse for months, a Dedicated Virtual Number fits better. These are sold instantly in the United States and Canada from $1.95/month, renew from the wallet, forward inbound SMS to your webhook as number.sms_received, and can be released at any time. Outside those two countries there is no self-serve long-term line; email [email protected] to ask. Details are on the virtual numbers page.
Can someone without API access do this from the dashboard?
Yes. Sign in, top up the wallet by card or with USDT/USDC, choose WhatsApp and a country, confirm the price shown, and order. Type the number into WhatsApp, and the code appears on the activation page once it is received. There is no monthly fee or plan, every top-up comes with a PDF invoice by email, and the same refund rule applies as in the API. Developers who want to rehearse an integration first can ask support to put a development account in sandbox, where simulated numbers and codes exercise the webhook without spending funds.
What counts as responsible use of WhatsApp numbers?
OTP Route exists for testing and operating your own legitimate products and accounts. Follow WhatsApp's terms of service, keep to one account per real person or business, and do not use routes to mass-register accounts, send unsolicited messages or return to the platform after a ban. OTP Route's Acceptable Use Policy applies to every activation. WhatsApp is a trademark of its owner, and OTP Route is not affiliated with it.
Frequently asked questions
Can I receive a WhatsApp OTP without a SIM card?
Yes. An OTP Gateway number receives the WhatsApp registration SMS and shows the code in your dashboard or posts it to your webhook, with no physical SIM involved.
What is the service id for WhatsApp in the API?
Use whatsapp as the service in GET /api/v1/prices and POST /api/v1/activations, together with a country id such as in or us.
Will WhatsApp accept every virtual number?
No. WhatsApp may decline virtual numbers, which is why an activation that receives no code is refunded in full to your wallet.
Can I log back into the WhatsApp account later with the same number?
Not with a gateway number, which covers a single code. If the account will need verifying again, use a Dedicated Virtual Number in the US or Canada.
How much does a WhatsApp verification number cost?
Prices start at $0.20 per code and vary by country. The live price appears in the dashboard and through the prices endpoint before you order.
Is WhatsApp SMS verification for testing possible inside a CI pipeline?
Yes, for your own test accounts. Build against sandbox during development, then call live routes sparingly with a backoff between attempts.
Service names are trademarks of their respective owners. OTP Route is not affiliated with them. Use numbers lawfully, follow each service's terms and our Acceptable Use Policy.