A developer's guide to Moldovan (+373) verification codes

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

OTP Route lets you receive Moldova (+373) SMS verification codes through its OTP Gateway, reading each code in the dashboard or pulling it into your systems with the REST API or a signed webhook. A code costs from $0.20 per code, and if nothing reaches the number within 20 minutes the wallet is refunded in full.

What does a +373 activation look like from request to code?

An activation is a short-lived object with an id, a phone number and a status. Your client authenticates to https://otproute.com/api/v1 with a Bearer key beginning or_live_, generated in the Developer console (up to 10 keys per account, 300 requests per minute).

The lifecycle for Moldova goes like this. Your job reads GET /api/v1/prices?country=md&service=<id> to confirm the route is open and see today's price. It then sends POST /api/v1/activations with {"service": "<id>", "country": "md"} and receives the activation id plus a +373 number. The test enters that number in the target app and triggers the SMS. From that point the activation is live for 20 minutes; it ends when a code is received, when you call POST /api/v1/activations/{id}/cancel, or when time runs out.

Service ids and the full country catalog come from GET /api/v1/services and GET /api/v1/countries. Pull them at startup instead of hard-coding them, because the live list is the source of truth. The OTP API integration guide shows a complete client.

Should my Moldova OTP API client poll or listen for webhooks?

Both work with the same SMS verification API, and many teams use both: webhooks for speed, polling as a safety net.

Webhooks. Add an endpoint in the Developer console (an account can register five) and handle activation.sms_received, activation.expired and activation.cancelled. Validate the X-OTPRoute-Signature header, formatted t=<unix>,v1=<hex>, by computing HMAC-SHA256 over <t>.<raw body> with the endpoint secret and rejecting stale timestamps. Key your processing on the activation id so a duplicate delivery is harmless.

Polling. Call GET /api/v1/activations/{id} every few seconds with a backoff, and stop once the status is final. This suits CI runners behind a firewall that cannot accept inbound requests. Our post on SMS OTP testing in CI pipelines covers timeouts and retries for both patterns.

What makes Moldovan phone numbers different to handle?

Moldovan national numbers have eight digits after the +373 country code, and domestic dialing adds a trunk prefix 0 in front. Users therefore type the same mobile number in several shapes: with the leading 0, with +373, or with 00373. Normalize by stripping spaces and dashes, removing the domestic 0 when you add the country code, and saving the E.164 form. A validator that insists on a leading zero will reject correctly formatted international input, which is one of the first things a +373 number for testing tends to expose.

Romanian is the official language, and Russian is widely spoken, so verification texts from local services may arrive in either, or in English from global apps. Cyrillic messages are sent in a wider encoding and split differently from Latin text, which is worth covering in any parser that extracts the code.

Teams test in Moldova when they localize an app into Romanian or Russian, serve customers across the region, or run support and engineering staff in Chișinău who need their own verification steps checked.

Which apps currently route codes to Moldova?

OTP Route lists more than 1,700 services for Moldova. The current snapshot of popular ones includes Telegram, Viber, WhatsApp, Signal, Facebook, Instagram, TikTok, Google (Gmail & YouTube), LinkedIn, Snapchat, Amazon, eBay, Netflix and Claude.

Treat this as a moving picture. Inventory shifts during the day, so request the live list before each run, and keep a fallback route ready for flaky services. The country routing article explains how OTP routing to a fallback country works without changing your test logic.

Why might a Moldovan code fail to show up?

A service can refuse virtual numbers outright, throttle repeated attempts, or deliver slowly on a given route. None of this costs you anything, because a code that never arrives inside the 20-minute window means an automatic, full refund to the wallet.

Practical steps when it happens:

  • Wait out the window instead of cancelling at the first silence.
  • Confirm the service accepts virtual numbers in the first place.
  • Try again later, or switch to another country the service supports.
  • Space out repeat orders; firing new activations in a tight loop is counterproductive.
  • Record activation ids alongside app logs so you can compare failed and successful runs.

How does someone without code order a Moldovan number?

Create an account at sign up using email and a 6-digit email code, or Google sign-in. In the OTP Gateway, select the service, pick Moldova, read the live price and confirm. Paste the +373 number into the app you are verifying; the code appears on the dashboard as soon as it is received. You can cancel from the same screen and the amount goes straight back to the wallet.

What about lasting lines, sandbox access and payment?

OTP Route does not sell a self-serve long-term Moldovan number. Dedicated Numbers are offered only in the United States and Canada, from $1.95/month. For a lasting +373 line, write to [email protected]; whether one can be arranged depends on local rules.

Payment is pay as you go from a single USD wallet, with no subscription and no tiers. Add funds by card or with USDT/USDC and receive a PDF invoice by email for each top-up. Developers who want to rehearse an integration first can ask for their account to be moved to sandbox, where numbers and codes are simulated and the wallet is untouched.

Frequently asked questions

Can I receive a Moldova SMS OTP without living there?

Yes. The OTP Gateway issues a +373 number you can use from anywhere, and the code is shown in the dashboard or sent to your API client.

Which country id should my code send for Moldova?

Send md as the country value. Service ids come from GET /api/v1/services.

Should I store Moldovan numbers with the leading 0?

No. Store them in E.164 as +373 plus the eight national digits, dropping the domestic trunk prefix.

What happens if I cancel a Moldova activation?

Calling POST /api/v1/activations/{id}/cancel before a code arrives closes the activation and returns the full amount to your wallet.

Is there a Moldova verification number I can keep for months?

Not self-serve. Long-term Dedicated Numbers are a US and Canada product; email support to ask about Moldova.

Can I use OTP Route to create many accounts on one app?

No. It is meant for testing and operating your own legitimate products and accounts, within each service's terms and the OTP Route Acceptable Use Policy.

Can my test suite run against Moldova without spending money?

Yes, if you request sandbox mode for a development account. It returns simulated numbers and codes for end-to-end tests.

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.