English
Testing Macedonian (+389) sign-up codes before your launch
OTP Route's OTP Gateway gives you a one-time North Macedonia (+389) number so your team can receive the SMS verification code in the dashboard or through the API and signed webhooks. Codes start at $0.20 per code, the live price for each service comes back from the API, and an activation that gets no SMS within 20 minutes costs nothing.
Your launch checklist says "verify +389 sign-ups": where does QA start?
A familiar situation: the product is expanding into the Western Balkans, the sign-up flow already handles a dozen markets, and someone has to prove it accepts North Macedonian numbers and that the SMS your app sends actually lands. Borrowing a colleague's phone does not scale, and a local SIM is awkward to keep inside a CI runner.
The OTP Gateway removes that dependency. You request a North Macedonia verification number through the API or dashboard, enter it in your own flow, and collect whatever code arrives. Each number serves one verification, so a regression suite can request a fresh +389 number for testing on every run. The QA testing overview shows how teams fit this into a release process.
How are +389 numbers written, and what should your validator accept?
North Macedonia's country code is +389 and its national trunk prefix is 0. Mobile numbers are written locally as 07X XXX XXX; internationally the 0 disappears, giving +389 7X XXX XXX with an eight-digit national number. Store the E.164 form (+3897…) and treat the local form purely as an input format.
Test cases worth keeping in the suite:
- A user selects +389 and still types the 0; the form should strip it rather than reject the input.
- Pasted numbers containing spaces, slashes or dashes should normalize to one stored value.
- Range checks belong in a maintained phone-number library, not in hard-coded prefixes, because operator ranges change over time.
Why do Cyrillic SMS templates deserve their own test?
Macedonian is the official language nationwide and is written in Cyrillic; Albanian also has official status and is widely spoken. If your app sends its verification message in Macedonian, the Cyrillic characters force UCS-2 encoding, which shrinks a single SMS segment from 160 characters to 70. A template that fits comfortably in English may split into several segments, or get cut off if your sender caps the length.
Receiving the real message on a +389 number shows you what a user would see: whether the code sits early enough to read in a notification preview, whether a Latin-script fallback kicks in, and whether autofill hints still work. Your parser should match the digits rather than a fixed phrase, since third-party services pick their own wording and language.
Which calls fetch a North Macedonia number programmatically?
The developer docs cover every field; the outline of this SMS verification API is short. Authenticate with a Bearer key beginning or_live_ against https://otproute.com/api/v1, then:
- Load the country list with
GET /api/v1/countries; North Macedonia's id ismk. - Ask
GET /api/v1/prices?country=mk&service=<id>for the live price and availability. - Create the activation with
POST /api/v1/activationsand a body like{"service": "viber", "country": "mk"}. - Poll
GET /api/v1/activations/{id}, or wait foractivation.sms_receivedon a webhook. - Cancel through
POST /api/v1/activations/{id}/cancelwhen a test finishes early.
Webhook calls carry X-OTPRoute-Signature: t=<unix>,v1=<hex>. Rebuild the HMAC-SHA256 over "<t>.<raw body>" with the endpoint secret, compare in constant time, turn away old timestamps, and key processing on the activation id so a redelivery is harmless. Each account gets up to 10 keys, 5 webhook endpoints and 300 requests per minute.
What services are open on the +389 route right now?
North Macedonia currently has more than 900 services on the OTP Gateway. The live snapshot includes Viber, WhatsApp, Facebook, Instagram, Telegram, Google (Gmail & YouTube), TikTok, Microsoft & Outlook, Signal, LinkedIn, Uber and ChatGPT (OpenAI).
Not every service is open at every hour; that is normal for SMS inventory and the reason prices and availability are served by the API. Colleagues who work without code can run the same steps in the dashboard: create an account, top up, pick North Macedonia and the service, and the code appears on the activation page once it arrives.
The code didn't arrive: what now?
Each activation runs for 20 minutes, and you pay only if the SMS comes in. Cancel it, or let the window close empty, and the full amount returns to the wallet automatically.
Before ordering again:
- Wait out the window; a slow sender is far more common than a lost message.
- Confirm the service takes virtual numbers; some decline them by policy, which is exactly what the refund covers.
- Retry later or through another service route.
- Put a pause between attempts so a flaky test does not fire order after order at the +389 route.
The country routing guide explains how to plan fallbacks across markets. Keep usage to your own products and accounts, respect each service's terms, and remember that OTP Route's Acceptable Use Policy applies.
What about a permanent Macedonian line, billing and sandbox?
OTP Route does not offer a self-serve long-term number in North Macedonia. Dedicated Numbers are a US and Canada product, sold instantly from $1.95/month; for a lasting +389 line, email [email protected] and the team will tell you whether local rules allow it, with no promise of availability.
Payment is pay as you go from a prepaid USD wallet funded by card or USDT/USDC, with no monthly fee and a PDF invoice for every top-up. Development accounts can be moved to sandbox on request so integrations run against simulated numbers and codes.
Frequently asked questions
Can I check my app's Macedonian sign-up SMS without a SIM card?
Yes. Request an OTP Gateway number with country mk, use it on your own sign-up screen, and read the message in the dashboard or from a webhook.
How much is a +389 verification code?
From $0.20 per code; the exact amount depends on the service and is shown in the dashboard or returned by GET /api/v1/prices. When the 20-minute window closes without an SMS, you get the full amount back.
Will verification messages to North Macedonian numbers be in Cyrillic?
That depends on the sender. Your own app controls its template, while third-party services choose a language from account or device settings, so parse for the digits.
Should my database keep the leading 0 of Macedonian mobiles?
Keep E.164 instead: +389 followed by the eight-digit national number, with no trunk 0 and no spaces.
Can I keep a North Macedonia number for repeated logins?
Not self-serve. Long-term Dedicated Numbers exist only for the US and Canada; for +389, email support, and the answer depends on local rules.
Is there a way to run CI against North Macedonia without spending credit?
Ask for sandbox on a development account. It simulates numbers and codes so the whole integration can run end to end without wallet charges.
Why might a service reject my +389 number?
Some platforms refuse virtual numbers. The activation then expires or can be cancelled, and the charge returns to your wallet automatically.
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.