A developer's route to Jordanian (+962) verification codes

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

OTP Route lets you receive Jordan (+962) verification codes on demand: order a number for country jo through the OTP Gateway, then read the SMS by API polling, a signed webhook or the dashboard. Codes start at $0.20 per code and are only billed when the message actually arrives.

What does the request sequence for a +962 number look like?

The SMS verification API is plain REST at https://otproute.com/api/v1, with Bearer keys prefixed or_live_ that you generate in the Developer console. Here is the order most integrations follow for Jordan:

  1. Discover: GET /api/v1/services and GET /api/v1/countries return the identifiers. Jordan is jo; a service such as Telegram is telegram.
  2. Price check: GET /api/v1/prices?country=jo&service=telegram returns what that pairing costs right now and whether it can be ordered.
  3. Order: POST /api/v1/activations with {"service": "telegram", "country": "jo"} reserves a number and returns its activation id.
  4. Collect: poll GET /api/v1/activations/{id} every few seconds, or let the webhook push the result to you.
  5. Clean up: POST /api/v1/activations/{id}/cancel releases an activation you no longer need and refunds it.

GET /api/v1/balance is useful as a guard at the start of a test run, so a job fails early with a clear message when the wallet is low. The full reference sits in the docs.

How do I confirm a webhook really came from OTP Route?

Each event (for example activation.sms_received or activation.expired) arrives with an X-OTPRoute-Signature header shaped like t=<unix>,v1=<hex>. Your server computes HMAC-SHA256 over "<t>.<raw body>" using that endpoint's secret and compares the result with v1. Reject the request if the values differ or if t is too far in the past; that stops replays.

Because retries can deliver the same event twice, key your processing on the activation id and treat a second copy as a no-op. Polling is still a sound fallback for local development, where a public webhook URL is awkward. The webhook-based OTP capture article covers queueing and retries.

Which apps can be verified on a Jordan route?

More than 1,700 services are listed for Jordan. Popular ones include WhatsApp, Telegram, Facebook, Instagram, Snapchat, TikTok, X (Twitter), Discord, Claude, Microsoft & Outlook, Amazon, Viber, imo, Signal and LinkedIn.

The list is a snapshot, not a promise. Carrier capacity moves through the day, so the API reports live availability and your code should read it before ordering.

Formatting Jordanian numbers: trunk zero, E.164 and Arabic text

Jordan's country code is +962 and its trunk prefix is 0. Locally a mobile number is written starting with 07; in international form the zero disappears, leaving +962 followed by nine digits that begin with 7. Store the E.164 form, and when users paste a local number, strip the leading 0 before adding the country code. Comparing 07… with +9627… as strings is a classic cause of duplicate-account bugs.

Arabic is the official language, and many people set their phones and apps to it. Depending on the app and the account's language setting, a code can arrive in Arabic or English text. Arabic messages are sent in Unicode, and the digits can sit inside right-to-left text, so extract the code with a pattern and test both languages.

Teams work with Jordan when they localise a product for Arabic speakers, run support from Amman for the wider region, or check flows alongside nearby markets such as Saudi Arabia and the United Arab Emirates.

Ordering a Jordan code from the dashboard

Operations staff can do the same thing without writing code. Create an account with email and a six-digit code or Google sign-in, add funds, choose Jordan and the service in the OTP Gateway, confirm the displayed price and place the order. The +962 number appears immediately, and the code shows next to it once the SMS lands.

The activation is open for 20 minutes. You pay only if the code arrives; if the window closes empty or you cancel, the amount is returned to your wallet automatically.

A debugging order for codes that don't arrive

Start with the cheapest explanation and work outward:

  • Is the window still open? Delivery depends on the service and the route. Let the full 20 minutes run before deciding it failed.
  • Does the service accept virtual numbers? Some don't, which is why unused activations are refunded.
  • Try another route. Order again later, or use a different service route for the same feature if your product allows it.
  • Throttle retries. A loop that re-orders every few seconds mostly burns attempts; space them out.

Only test accounts you own or operate, follow each service's rules, and remember OTP Route's Acceptable Use Policy covers all usage.

Long-term lines, wallet and sandbox

OTP Route has no self-serve long-term number in Jordan. Dedicated Numbers, from $1.95/month, are offered instantly only in the US and Canada. If your team needs a lasting +962 line, write to [email protected]; whether one can be arranged depends on local rules.

The wallet is prepaid in USD with no monthly fee and no plan to choose. Top up by card or with USDT/USDC, and receive a PDF invoice by email for every top-up. During integration, ask for sandbox mode on a development account to receive simulated numbers and codes without spending funds. See pricing for live rates.

Frequently asked questions

What is the API country code for Jordan?

Use jo as the country value in the OTP Route API, for example in GET /api/v1/prices?country=jo&service=whatsapp.

Should I drop the 0 from a Jordanian mobile number?

Yes, for international format. A local 07 number becomes +962 followed by nine digits starting with 7.

Will a Jordan verification code arrive in Arabic?

It can. The language usually follows the app and the account settings, so parse the digits by pattern and test both Arabic and English messages.

How long is a +962 number held for my code?

Each activation lasts 20 minutes. If no SMS arrives in that time, the charge goes back to your wallet.

Can I get a dedicated Jordan number that I keep?

Not self-serve. Dedicated Numbers are a US and Canada product; for Jordan you can email [email protected] to ask.

Is there a way to receive Jordan SMS OTPs in automated tests?

Yes. Order with POST /api/v1/activations, then poll the activation or handle the signed webhook; a sandbox account lets you rehearse this with simulated codes.

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.