English
Getting +975 Verification Codes from Bhutan into Your Test Suite
Yes: OTP Route's OTP Gateway issues a temporary Bhutan (+975) verification number for one code, which you can read in the dashboard or collect through API polling or a signed webhook, from $0.20 per code. Charges apply only when the SMS reaches the number inside the 20-minute window; a missed or cancelled activation returns the full amount to your wallet.
Why would a product team want a Bhutanese number?
Bhutan is a small market, but it shows up on more roadmaps than people expect: travel and hospitality booking flows for visitors to the Himalayas, payment and remittance apps used by Bhutanese families with relatives studying or working abroad, and regional apps that launch across South Asia at once. A QA engineer who has to prove that a +975 sign-up actually completes cannot do it with a home-country SIM.
The national language is Dzongkha, while English is widely used in schools, government and business. Most verification texts you will see on a Bhutan route are short English templates, but if your product localises into Dzongkha, check that your own SMS copy renders correctly before launch.
There is also an operations angle. Tour operators, NGOs and consultancies that run projects in Thimphu or Paro sometimes register shared business tools against a Bhutan number so that staff do not hand over their personal phones. For that kind of one-off confirmation a single gateway activation is usually enough.
Which apps can send codes to a +975 route?
The live Bhutan list currently covers more than 1,700 services. Frequently requested ones include WhatsApp, Telegram, Google (Gmail & YouTube), Facebook, Instagram, TikTok, Signal, Viber, WeChat, Microsoft & Outlook, Amazon, Airbnb and Uber.
Availability on this route moves during the day, so treat any list as a snapshot. Your code should call GET /api/v1/services and GET /api/v1/countries before ordering rather than hard-coding what was there last week.
What is the call order for the `bt` country id?
- Authenticate with a Bearer key (prefix
or_live_) created in the Developer console athttps://otproute.com/api/v1. - Ask
GET /api/v1/prices?country=bt&service=<id>for the live price of that pair. - Order with
POST /api/v1/activationsand the body{"service": "<id>", "country": "bt"}. - Either poll
GET /api/v1/activations/{id}or subscribe toactivation.sms_received,activation.expiredandactivation.cancelled. - Release an unneeded number with
POST /api/v1/activations/{id}/cancel.
Webhook requests carry X-OTPRoute-Signature: t=<unix>,v1=<hex>; compute HMAC-SHA256 over "<t>.<raw body>" with the endpoint secret and drop stale timestamps. The webhook capture guide walks through a full handler, and the API docs list every field.
Each account can hold up to 10 API keys and 5 webhook endpoints and may send 300 requests per minute, which is plenty for a nightly regression run against a small market like this one. For a slower cadence, a polling loop that checks every few seconds keeps the moving parts to a minimum.
How should +975 numbers be stored?
Keep one canonical form: +975 followed by the national digits, no spaces, dashes or brackets. Bhutanese mobile numbers are eight digits long, which is shorter than the ten-digit pattern many validators assume, so loosen any length check that was tuned for larger markets. If a user types a leading zero out of habit, strip it before saving. Normalising at the edge keeps de-duplication, fraud rules and support look-ups consistent.
When you write fixtures for automated tests, include at least one Bhutanese number alongside your longer international samples. It catches the off-by-length bugs that otherwise surface only after a real user in Thimphu reports a rejected form.
What if the Bhutan code never shows up?
- Let the 20-minute window finish; some senders queue messages.
- Confirm the target app accepts virtual numbers, since some refuse them.
- Try again a little later, or pick a different service route, instead of hammering the order endpoint in a loop.
A number that receives nothing costs nothing, because the refund is automatic. More tactics are in reducing failed OTP deliveries.
It also helps to log the activation id next to your own test run id, so a missing code can be traced in seconds instead of guessed at.
Long-term lines, billing and sandbox
OTP Route has no self-serve long-term number in Bhutan. Dedicated lines are a United States and Canada product from $1.95/month; for a Bhutan line you can email [email protected], though local rules decide whether one is possible. Everything runs on a prepaid USD wallet with no monthly fee, funded by card or USDT/USDC, with a PDF invoice for every top-up. Development accounts can request sandbox mode to rehearse the whole bt flow with simulated numbers. See pricing for how the wallet works.
Frequently asked questions
Can I test my app's Bhutan sign-up flow without a local SIM?
Yes. Order a +975 number for your service through the OTP Gateway, trigger the code from your app and read it in the dashboard or via the API.
What country id does the API use for Bhutan?
Bhutan is bt. Pass it in the prices query and in the activation request body.
How much is one Bhutan verification code?
A Bhutan code costs from $0.20, and the rate varies by service. The exact figure comes back from GET /api/v1/prices before you commit.
What language do Bhutanese OTP messages usually use?
Mostly English, which is common in Bhutanese business and education. Dzongkha is the national language, so test your own localised templates if you send in it.
Do I get charged if the +975 number receives nothing?
No. If no SMS arrives within 20 minutes, or you cancel first, the full amount returns to your wallet automatically.
Can I keep a Bhutan number for repeated logins?
Not self-serve. Long-term numbers are offered only in the US and Canada; contact the team by email to ask about Bhutan.
Is it acceptable to create many accounts with Bhutan numbers?
No. Use OTP Route to test and operate your own legitimate products, follow each service's terms, and remember the Acceptable Use Policy applies.
Which payment methods does the wallet accept?
Cards and the USDT or USDC stablecoins. You only pay as you go, with no plan to choose.
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.