Testing Burundian Phone Verification Without a Local SIM

Calling code +257OTP Gateway from $0.20 per codeDedicated numbers: US & Canada onlyAPI id: bi
Quick answer

Yes, you can receive Burundi (+257) verification codes with OTP Route, either in the dashboard or through the OTP Gateway API and signed webhooks. Each code lands on a temporary +257 number that stays open for 20 minutes, prices start at $0.20 per code, and you are only charged when the SMS actually arrives.

Why is a +257 sign-up flow so hard to check from abroad?

Picture a product team adding Burundi to an East African rollout. The registration screen asks for a phone number, the backend sends a one-time code, and nobody on the team owns a Burundian SIM. Roaming SIMs bought on a trip expire, and asking a colleague in Bujumbura to read codes aloud exposes a personal number and cannot run inside a nightly test suite.

OTP routing removes that bottleneck. Instead of a physical handset, you request a Burundi verification number for one specific service, the code is captured by OTP Route, and your test harness reads it like any other event. The same approach works for operations staff who manage business profiles on Burundian routes and need to keep their own phones out of it.

Which services can verify against a Burundi number today?

The live snapshot for Burundi lists familiar messaging, search and commerce apps, including WhatsApp, Viber, imo, Telegram, Signal, Google (Gmail & YouTube), Facebook, Instagram, TikTok, LinkedIn, Microsoft & Outlook, ChatGPT (OpenAI), Uber and Amazon. In total the route covers more than 1,000 services.

Inventory shifts through the day, so treat that list as a starting point rather than a promise. Your code should ask GET /api/v1/services and GET /api/v1/countries for the current picture, and the full directory is browsable under countries.

How does the Burundi OTP API fit into a test run?

Create a key in the Developer console; live keys start with or_live_ and go in a Bearer header against https://otproute.com/api/v1. A typical automated check then looks like this:

  1. Call GET /api/v1/prices?country=bi&service=whatsapp to read the current price for that pairing.
  2. Send POST /api/v1/activations with the body {"service": "whatsapp", "country": "bi"}. The response carries an activation id and the +257 number to type into the app under test.
  3. Wait for the activation.sms_received webhook, or poll GET /api/v1/activations/{id} at a sensible interval.
  4. Assert on the code and close the test.

Webhook requests include X-OTPRoute-Signature: t=<unix>,v1=<hex>, an HMAC-SHA256 of <t>.<raw body> keyed with the endpoint secret. Recompute it, compare in constant time and drop stale timestamps; this walkthrough covers the details. An account can hold up to 10 keys and 5 webhook endpoints, with a ceiling of 300 requests per minute. Full reference: docs.

What should my validator expect from a Burundian number?

Burundi uses a closed numbering plan: subscriber numbers have eight digits after the country code and there is no domestic trunk prefix to strip. In E.164 that means +257 followed by eight digits, stored without spaces. Forms often display it grouped in pairs, so normalise input by removing spaces, dashes and a leading 00 before saving.

A common bug is a validator written for nine- or ten-digit national numbers that silently rejects valid +257 entries. Add a fixture for this length to your unit tests.

Kirundi, French and English are official languages, and Swahili is widely used in trade. Verification texts from global apps usually arrive in English or French depending on the sender's own locale logic, so parse the digits rather than matching on wording.

The code did not arrive: what now?

Every activation stays open for 20 minutes. If no SMS reaches the number in that time, or you cancel with POST /api/v1/activations/{id}/cancel, the full amount returns to your wallet automatically.

  • Let the window run before deciding it failed; some senders queue messages.
  • Confirm the target service accepts virtual numbers at all, since some reject them by policy.
  • Retry later, or test the same flow through another service route.
  • Avoid reordering in a tight loop; back off between attempts.

Prefer the dashboard? Sign in, pick Burundi and the service, copy the number into the app and watch the code appear on screen. More tactics are in reducing failed OTP deliveries.

Can we keep a Burundian line for accounts we log into repeatedly?

Not as a self-serve product. OTP Route does not sell long-term Burundi numbers; the OTP Gateway issues one number per verification. If your team genuinely needs a persistent line there, email [email protected] and describe the use case; availability depends on local rules and is not assured.

Dedicated Virtual Numbers exist only in the United States and Canada, from $1.95/month, with inbound SMS, webhook forwarding and browser calling. See virtual numbers if a US or Canadian line suits your staging accounts.

How is Burundi usage billed?

There is one prepaid USD wallet with no monthly fee and no plan to choose. Funding works by card or USDT/USDC stablecoins; finance gets an emailed PDF invoice for each top-up. Before wiring payments into CI, ask for a development account to be moved to sandbox, which returns simulated numbers and codes without touching wallet funds.

Use each number only for your own product or legitimate business accounts, respect every service's terms, and remember that OTP Route's Acceptable Use Policy applies. Current rates live on pricing.

Frequently asked questions

Can I test my app's Burundi sign-up flow without a local SIM?

Yes. Order a +257 number from the OTP Gateway for your service, enter it in the app and read the code from the dashboard, the API or a webhook.

What country id does the API use for Burundi?

Pass bi as the country value, for example in POST /api/v1/activations alongside a service id such as telegram.

Am I charged if the +257 code never comes?

No. If nothing arrives within the 20-minute window, or you cancel, the full amount is returned to your wallet automatically.

Do Burundian numbers have a leading zero to remove?

No. Burundi has no trunk prefix, so the E.164 form is simply +257 plus eight digits.

Which language will a Burundi verification SMS be written in?

That depends on the sending service, but English or French is typical. Extract the numeric code instead of relying on the message text.

Can I reuse the same Burundi number next month?

No. Gateway numbers serve a single verification. For repeat logins, a Dedicated Number is available in the US and Canada only.

How much does a Burundi verification number cost?

Burundi pricing begins from $0.20 per code, with the figure set per service. The exact figure is returned by GET /api/v1/prices and shown before you order.

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.

Route your first OTP in minutes

Create a free account, top up your USD wallet and order a number from the dashboard or the API. No monthly fee.