Testing +994 sign-up flows when nobody on the team holds an Azerbaijani SIM

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

Yes, you can receive Azerbaijan (+994) verification codes with OTP Route by ordering a one-time number from the OTP Gateway and reading the code in the dashboard or through the API and signed webhooks. Prices start at $0.20 per code, the live figure for each service is shown before you order, and the charge returns to your wallet if no SMS reaches the number inside the 20-minute window.

Our product is going live in Baku and the verification step blocks every test. What are the options?

This is a common spot for teams adding Azerbaijan to an existing app. The phone screen accepts +994, the localized copy is ready, and then QA stalls because the only Azerbaijani SIM belongs to a contractor in another time zone. Borrowing a colleague's personal phone works once, but it ties a test account to a private number and cannot run inside a pipeline.

The OTP Gateway removes that bottleneck. You request a +994 number for a single code, use it on your own sign-up or login screen, and collect the SMS without anyone holding hardware. Each number serves one verification, which keeps test data clean and personal phones out of business accounts. Teams that run this every sprint usually pair it with the QA testing workflow.

Which apps can deliver codes to an Azerbaijani route right now?

The live snapshot for Azerbaijan lists more than 1,600 services. Popular ones include WhatsApp, Telegram, Viber, Uber, Google (Gmail & YouTube), Facebook, Instagram, TikTok, Microsoft & Outlook, LinkedIn, Discord, Signal and Amazon.

Availability is not fixed. Routes open and close during the day as our carrier partners rotate capacity, so a service visible this morning may be missing this afternoon. Rather than hard-coding a list, read it from the API before each run and skip gracefully when a combination is not offered.

How do we wire the Azerbaijan OTP API into an automated suite?

All calls go to https://otproute.com/api/v1 with a Bearer key from the Developer console; keys start with or_live_, and an account can hold up to 10 of them. The country id for Azerbaijan is az.

  1. Fetch the catalogue with GET /api/v1/services and GET /api/v1/countries, then confirm the combination with GET /api/v1/prices?country=az&service=<id>.
  2. Create the order with POST /api/v1/activations and a body like {"service": "viber", "country": "az"}. Keep the activation id from the response.
  3. Type the returned +994 number into the build under test.
  4. Wait for activation.sms_received on your webhook, or poll GET /api/v1/activations/{id} if the job runs where inbound traffic is blocked.
  5. Release anything abandoned with POST /api/v1/activations/{id}/cancel.

Webhook calls carry X-OTPRoute-Signature: t=<unix>,v1=<hex>. Recompute HMAC-SHA256 over <t>.<raw body> with the endpoint secret, compare in constant time and drop stale timestamps; the webhook security guide walks through it. The limit of 300 requests per minute leaves plenty of room for parallel jobs.

Can someone outside engineering fetch a +994 code by hand?

Yes. Product managers, translators and support leads often need a single code to check a screen, and the dashboard covers that without any API key:

  • Sign in and open the OTP Gateway.
  • Pick Azerbaijan, then the service you are testing, and read the live price.
  • Order the number and paste it into your app.
  • Keep the activation page open; the SMS appears there as soon as it is delivered.

If the test is called off, cancel the activation and the amount goes straight back to the wallet.

How should our backend store and normalise +994 numbers?

Persist every number in E.164 form, for example +994 followed by the nine-digit national number. Inside the country people dial a leading trunk 0 before the operator code, so a sign-up form will receive both styles. Strip spaces, dashes and that domestic 0, then prepend the country code before saving. A maintained parsing library is safer than a hand-written regex.

Azerbaijani is the official language and uses a Latin alphabet with letters such as ə, ğ, ı, ş and ç; Russian is also widely understood. Depending on the service and the device locale, a code may arrive in Azerbaijani, Russian or English. That makes +994 routes handy for checking that your own SMS templates render special characters correctly and that a code parser does not depend on English wording.

The code never appeared. What do we try before escalating?

Start by letting the activation run its full 20 minutes; some senders queue messages. If nothing arrives, the order expires, activation.expired fires, and the full amount is refunded automatically, so you only pay if the code arrives.

Then work through the usual causes:

  • Some services refuse virtual numbers for certain flows. Confirm the service accepts them before blaming the route.
  • Try again later, or switch to another service route that exercises the same screen.
  • Avoid re-ordering in a tight loop; back off between attempts so a burst of failures does not drain the queue.

The failed delivery checklist covers further diagnostics.

Is there a long-term Azerbaijani line, and how is usage billed?

No self-serve dedicated number exists for Azerbaijan. Dedicated Numbers are a United States and Canada product starting at $1.95/month; if you need a permanent +994 line, email [email protected] and the team will check what local rules permit, with no promise of availability. For accounts that need repeat logins, a US or Canadian line is the alternative.

For Baku testing, spend is drawn from a single prepaid USD wallet; there is no subscription tier or monthly charge. Top up by card or with USDT or USDC, and each top-up produces a PDF invoice by email; current rates are on the pricing page. A development account can be switched to sandbox on request, returning simulated numbers and codes so the integration can be tested end to end before real funds are spent. OTP Route's Acceptable Use Policy and each service's own terms apply to every order.

Frequently asked questions

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

Yes. Order a +994 number from the OTP Gateway, enter it in your app and read the code in the dashboard or via the API, with no physical SIM involved.

What is the Azerbaijan country id in the OTP Route API?

Use az in the country field of POST /api/v1/activations and in price queries.

How much does a +994 number for testing cost?

Codes start at $0.20 per code; the exact amount depends on the service and is returned by GET /api/v1/prices before you commit.

Am I charged if the Azerbaijani SMS never arrives?

No. If no code arrives within 20 minutes, or you cancel first, the full amount is returned to your wallet automatically.

Should we save Azerbaijani numbers with the leading zero?

No. Drop the domestic trunk 0 and store the number in E.164 format beginning with +994.

Can I keep the same Azerbaijan verification number for later logins?

Not through the OTP Gateway, which issues one number per code. Long-term self-serve lines exist only in the US and Canada; ask support about Azerbaijan.

Which language will Azerbaijani verification messages use?

It depends on the sender and the device settings; Azerbaijani, Russian and English are all common.

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.