English
Testing Croatian sign-up flows with one-time +385 numbers
You can receive Croatian (+385) SMS verification codes with OTP Route by ordering a one-time number from the OTP Gateway and reading the code in the dashboard or pulling it through the REST API and signed webhooks. Prices start from $0.20 per code, the live figure depends on the service, and a code that never turns up inside the 20-minute window costs nothing.
Why would a team want a +385 number for testing?
Croatia is a compact market with outsized seasonal traffic. It has been in the EU since 2013 and adopted the euro in 2023, so apps that already serve the eurozone often add Croatian as their next language, and anything touching travel, short-term rentals or mobility sees a summer spike along the Adriatic coast.
That creates a few concrete jobs for a Croatia verification number:
- Localisation QA: checking that your Croatian strings, including č, ć, đ, š and ž, survive the SMS template and the in-app confirmation screen.
- Launch checks: confirming that a +385 sign-up reaches the same onboarding state as a German or Austrian one.
- Regional operations: a team in Zagreb covering the wider region that needs to verify business accounts without handing out staff phones.
The QA testing guide shows how teams wire this into release checklists.
Which services can a Croatian route verify?
The live catalogue for Croatia lists more than 1,800 services. Among the ones teams request most often are WhatsApp, Viber, Telegram, Signal, Google (Gmail & YouTube), Microsoft & Outlook, LinkedIn, Facebook, Instagram, TikTok, Discord, Amazon, eBay, Uber and Airbnb.
Viber deserves a mention because it is widely used across the Balkans, so messaging products launching there tend to test against it early. OTP routing for each of them is picked per service and country, and availability shifts during the day, which is exactly why the API reports it live instead of this page promising a fixed list.
What does the Croatia OTP API sequence look like?
As an SMS verification API, OTP Route keeps the Croatian flow short. Everything runs against https://otproute.com/api/v1 with a Bearer key prefixed or_live_, issued from the Developer console. Croatia's country id is hr.
- Look up service ids once with
GET /api/v1/servicesand keep them in config. - Read the current price and availability with
GET /api/v1/prices?country=hr&service=<id>right before each order. - Create the order:
POST /api/v1/activationswith{"service": "viber", "country": "hr"}. You get back an activation id and a +385 number. - Type that number into your own app's verification screen.
- Pick up the code from the
activation.sms_receivedwebhook event, or fall back to pollingGET /api/v1/activations/{id}every few seconds.
If the test aborts, release the order with POST /api/v1/activations/{id}/cancel. The account limit of 300 requests per minute leaves room for several parallel jobs. Full request shapes live in the API docs.
Can someone without code use the dashboard instead?
Yes. Support staff and product managers often take this path for a one-off check. Sign in, open the OTP Gateway, choose Croatia and the service, compare the price shown, and confirm. The +385 number appears with a countdown; paste it into the app, and the code is displayed on the same screen as soon as it lands. No terminal, no API key.
How should +385 numbers be stored?
Croatian numbers are dialled domestically with a leading trunk 0, so a mobile number printed locally starts with 09. In E.164 that zero disappears: the stored value is +385 followed by the national number, with mobiles beginning +3859. Normalise on input by stripping spaces, slashes and the domestic zero, then store one canonical string; comparing a 09… value with a +3859… value is a classic source of "user not found" bugs.
Codes from local Croatian services usually arrive in Croatian, while global platforms pick the language from the account or device locale, so expect either Croatian or English text around the digits. Extract the code with a digit pattern rather than a fixed sentence.
What if the Croatian code is slow or missing?
Each activation stays open for 20 minutes. If no SMS reaches the number in that time, or you cancel first, the charge returns to your wallet automatically, so you only pay for codes that arrive. When one stalls:
- Let the window run before deciding it failed; delivery speed depends on the service and the route.
- Confirm the service accepts virtual numbers for this flow, since some reject them outright.
- Retry later or through another service route instead of re-ordering in a tight loop.
Our note on reducing failed OTP deliveries lists further fixes worth trying on +385 routes.
Is there a long-term Croatian number, and how is billing handled?
There is no self-serve long-term number for Croatia. Dedicated Numbers are a US and Canada product from $1.95/month, covered on the virtual numbers page. If your team needs a lasting +385 line, email [email protected]; whether one can be arranged depends on local rules.
Billing uses one prepaid USD wallet with no monthly fee. Top up by card or with USDT/USDC and every top-up produces a PDF invoice by email. For integration work, ask for your development account to be switched to sandbox, which returns simulated numbers and codes without touching wallet funds.
Frequently asked questions
Can I test my app's Croatian sign-up without a local SIM?
Yes. Order a +385 number from the OTP Gateway, enter it in your sign-up form and read the code in the dashboard or through the API. No physical Croatian SIM is involved.
What is the country id for Croatia in the OTP Route API?
It is hr. Pass it as the country value in POST /api/v1/activations and in the prices query.
How much does a Croatia verification number cost?
Pricing starts from $0.20 per code and varies by service. The exact amount is returned by GET /api/v1/prices and shown in the dashboard before you confirm.
Am I charged if the code never arrives?
No. A +385 order that expires empty after 20 minutes, or that you cancel, is refunded to the wallet in full.
Should I store Croatian numbers with the leading zero?
Store them in E.164 without it, as +385 plus the national number. Keep the domestic 09 form only for display if your Croatian users expect it.
Will the SMS be in Croatian?
Local services usually send Croatian text, while international apps follow the account or device language. Parse the digits, not the wording.
Does every service accept a +385 number from OTP Route?
No. Some services refuse virtual numbers, which is why undelivered codes are refunded. Always follow each service's terms; the OTP Route Acceptable Use Policy also applies.
Can I keep a Croatian number for repeat logins?
Not on a self-serve basis. Long-term Dedicated Numbers exist only in the United States and Canada; for Croatia, email [email protected] to ask.
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.