Pre-flight checklist for receiving +375 verification codes from Belarus

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

Yes, you can receive Belarus (+375) verification codes with OTP Route by ordering a one-time number from the OTP Gateway and reading the code in the dashboard or collecting it through the API and signed webhooks. Prices start from $0.20 per code, the live figure for each service is returned by the API, and an order that gets no SMS inside its 20-minute window is refunded to your wallet automatically.

What should be in place before you request a +375 number?

Before using a +375 number for testing, tick these off:

  • An account and a funded wallet. Create one at /signup with an email and a 6-digit email code, or Google sign-in, then add a small balance. Turn on TOTP two-factor for the account that holds API keys.
  • A Bearer key with the or_live_ prefix, made in the Developer console. Give CI and local development separate keys; an account can hold up to 10.
  • The two ids you will send. Belarus is by in the API, and the service id is the api_service value returned by GET /api/v1/services.
  • A receiving endpoint if you plan to use webhooks, with its signing secret stored outside the repository.
  • A test account in your own product that is allowed to change or add a phone number.
  • A phone library configured for region BY, so the number you paste into your sign-up form is parsed the way a real Belarusian user would type it.

How are Belarusian numbers written, and how should your app store them?

Belarus uses the country code +375 followed by a nine-digit national number. Mobile lines begin with operator codes such as 25, 29, 33 or 44, so a stored value looks like +37529XXXXXXX.

The tricky part is the domestic habit. People inside the country often write a mobile number with a leading 80, as in 8 029 XXX-XX-XX, which comes from the long-distance dialing prefix. That 80 must be stripped before the country code is added; a form that keeps it produces an invalid E.164 string that some verification services reject silently. Good normalization tests for a Belarus verification number:

  • accept +375 29 ..., 375 29 ... and 8 029 ... and store all three identically;
  • display the number in a local-friendly grouping but send only E.164 to your SMS or verification layer;
  • reject a number that still has 80 after the 375.

Belarusian and Russian are both official languages, and Russian is what most people use day to day. Many services send their code text in Russian or English depending on the account locale, so check that your app renders Cyrillic correctly in any screen that echoes the message.

Which services can a Belarus verification number receive codes for?

OTP routing for Belarus on OTP Route currently covers more than 1,400 services under the id by. Popular routes in the current snapshot include Telegram, Viber, WhatsApp, Signal, Google (Gmail & YouTube), Instagram, TikTok, Microsoft & Outlook, LinkedIn, Discord, Amazon and AliExpress.

Availability on any single route moves during the day, so treat a list like this as a starting point rather than a promise. Before a run, ask GET /api/v1/prices?country=by&service=<id> for the current price and whether the route can take an order right now. See country routing for OTP when choosing between countries.

Step by step: the Belarus OTP API flow from a test script

Every request goes to https://otproute.com/api/v1 with your Bearer key. The SMS verification API is small enough to wrap in one helper:

  1. Call GET /api/v1/balance and stop the job early if the wallet is too low for the suite.
  2. Call GET /api/v1/prices?country=by&service=telegram (swap in your service id) and log the price you are about to pay.
  3. Create the order with POST /api/v1/activations and a body like {"service": "telegram", "country": "by"}. Save the activation id and the +375 number from the response.
  4. Submit that number to your own app's phone step and trigger the code.
  5. Collect the code from an activation.sms_received event, or poll GET /api/v1/activations/{id}. The limit is 300 requests per minute.
  6. If the test aborts, call POST /api/v1/activations/{id}/cancel so the hold returns to the wallet at once.

For webhooks, read the X-OTPRoute-Signature header (t=<unix>,v1=<hex>), compute HMAC-SHA256 of <t>.<raw body> with the endpoint secret, compare in constant time, and drop deliveries with stale timestamps. Key your handler on the activation id so a repeated delivery is harmless. The API docs and the guide to securing OTP webhooks with HMAC cover the details.

Step by step: the same job from the dashboard

Support staff who need a code now and then can skip the API:

  1. Open the OTP Gateway in the dashboard and choose Belarus.
  2. Pick the service; the price for that route shows before you confirm.
  3. Copy the +375 number and enter it in the app you are testing.
  4. Watch the order card. The code appears there as soon as it lands.

If nothing arrives within 20 minutes, the order closes and the full amount is credited back. You only pay when a code is delivered.

Troubleshooting: the +375 code did not arrive

Usual causes and the next move for each:

  • The service refused the number. Some platforms decline virtual numbers. The refund rule exists for exactly this case; try a different service route or another country if the test allows it.
  • The number was entered in domestic form. Re-check that your form submitted +375 plus nine digits, without the 80.
  • The route is busy. Let the window run its course rather than cancelling after a minute, then try again later.
  • Your script is re-ordering in a tight loop. Add a backoff between attempts; rapid repeat orders on one service rarely help and can look like abuse to the target platform.

Further failure patterns for +375 orders are covered in reducing failed OTP deliveries.

Is there a long-term Belarusian line, and how does billing work?

No. OTP Route has no self-serve long-term number for Belarus. If your team needs one for an operations or support use case, email [email protected] and describe it; whether anything can be offered depends on local rules and nothing is promised. Dedicated Virtual Numbers are a US and Canada product, from $1.95/month, with inbound SMS, outbound SMS and browser calling.

Belarusian orders draw on the same prepaid USD wallet as every other route, with nothing charged monthly and no tier to choose. Fund it with a card or USDT/USDC stablecoins; a PDF invoice for each top-up lands in your inbox. Developers can ask for a sandbox account that returns simulated numbers and codes, which is the cheapest way to prove an integration before real orders. Use every number only for your own product or your own legitimate accounts, follow each service's terms, and note that OTP Route's Acceptable Use Policy applies. Current figures are on pricing.

Frequently asked questions

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

Yes. Order a +375 number for your service from the OTP Gateway, submit it in your sign-up form and read the code in the dashboard or through the API.

What is the country id for Belarus in the OTP Route API?

It is by. Use it in GET /api/v1/prices and in the body of POST /api/v1/activations.

Should I store Belarusian numbers with the 80 prefix?

No. Store them in E.164 as +375 followed by nine digits and drop the domestic 80, otherwise many services will treat the number as invalid.

What happens to my money if the +375 number never gets a code?

When the 20-minute window ends without an SMS, or you cancel, the full charge goes back to your wallet automatically.

Which language will the verification SMS be in?

That is decided by the sending service. For Belarusian numbers it is commonly Russian or English, based on the account or device language.

Can I keep a +375 number for future logins?

Not through self-serve. Long-term Dedicated Numbers exist only for the US and Canada; for Belarus you can email [email protected] to ask, without any promise of availability.

Is there a way to test the integration without spending wallet funds?

Yes. A development account can be switched to sandbox on request, and it returns simulated numbers and codes for end-to-end testing.

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.