English
Testing +93 sign-up flows when nobody on the team holds an Afghan SIM
Yes, OTP Route can receive Afghanistan (+93) verification codes on a one-time number from the OTP Gateway, and you read each code in the dashboard or collect it through REST polling or a signed webhook. Prices start at $0.20 per code, the live figure for every service comes from the API, and if nothing arrives during the 20-minute window the money goes back to your wallet.
Our users sign up with +93 numbers, but QA can't reproduce it. Now what?
This is a common gap for remittance apps, humanitarian logistics tools, messaging products and marketplaces with a large Afghan diaspora. Support tickets mention codes that never land or numbers the form rejects, yet the test team sits in Berlin, Dubai or Toronto with no way to put an Afghan SIM in a device.
An Afghanistan verification number from the OTP Gateway closes that gap. You order a temporary +93 line for a single service, type it into the flow you are testing, and the code shows up where your engineers already work. Nothing has to be shipped, roamed or registered locally, and the number is retired once the code is used.
The same approach suits product managers who want to watch a localized onboarding funnel end to end before a release, or an operations team that needs a +93 number for testing a partner integration.
How do I pull Afghan OTPs into a test harness through the API?
The Afghanistan OTP API uses the same calls as every other route; only the country id changes. For Afghanistan that id is af.
- Create a Bearer key prefixed
or_live_in the Developer console. An account can hold up to 10 keys and 5 webhook endpoints, with a limit of 300 requests per minute. - Call
GET /api/v1/servicesto find the service id, thenGET /api/v1/prices?country=af&service=<id>to see what that route costs right now. - Send
POST /api/v1/activationswith a JSON body naming the service andaf. The response carries the activation id and the +93 number. - Either poll
GET /api/v1/activations/{id}or wait for theactivation.sms_receivedevent on your webhook. Check theX-OTPRoute-Signatureheader, an HMAC-SHA256 of the timestamp plus raw body, and discard requests with stale timestamps. - If the test is abandoned,
POST /api/v1/activations/{id}/cancelreleases the number and refunds the hold.
The API reference covers every endpoint, and the guide on webhook-based OTP capture shows how to key events on the activation id so retries stay idempotent.
Which apps can send codes to an Afghanistan number today?
The live snapshot for af lists more than 1,700 services. Among the ones teams ask for most are WhatsApp, Telegram, Google (Gmail & YouTube), Facebook, Instagram, imo, Viber, Signal, TikTok, Microsoft & Outlook, LinkedIn, Discord and ChatGPT (OpenAI).
Messaging apps dominate that list for a reason: voice and chat apps are how many Afghan families abroad keep in touch, so products that integrate with them get a lot of +93 traffic. Availability moves during the day as our carrier partners rotate inventory, which is why the API reports what can be ordered at the moment you ask rather than a fixed catalogue.
What about people who never touch the API?
Support agents and product owners can do the whole thing in the browser. Sign up with an email address and a 6-digit code (or Google sign-in), add funds, open the OTP Gateway, choose Afghanistan and the service, and confirm the price shown. The +93 number appears straight away; paste it into the app under test and keep the tab open. When the SMS lands, the code is displayed next to the order.
Turning on two-factor authentication (TOTP) for the dashboard is a sensible step for any account that several colleagues share.
How should we store and normalise Afghan phone numbers?
Afghanistan uses the country code +93 with a trunk prefix of 0. Locally a mobile number is written with that leading zero, for example 07X XXX XXXX, while the international form drops it: +93 7X XXX XXXX. Save the E.164 version (+937...) in your database and strip a leading 0 whenever a user types the local format next to a +93 selector, otherwise your validator will count one digit too many.
Dari and Pashto are the official languages, but large global services usually send their code text in English or in whatever language the account or device is set to. Test both a right-to-left and an English locale if your own app renders the SMS content anywhere, such as an autofill hint.
The code didn't show up. What should the team try?
Routes into Afghanistan can be uneven, so plan for the occasional miss:
- Let the 20-minute window finish. A slow SMS still counts if it lands before expiry.
- Remember the refund rule. You only pay if the code arrives; an expired or cancelled activation returns the full amount automatically.
- Try again later or on another route. A fresh order a little later, or the same service in a nearby market such as Pakistan, often succeeds.
- Check whether the service accepts virtual numbers. Some refuse them by policy, and no route changes that.
- Don't hammer the endpoint. Re-ordering in a tight loop burns rate limit without improving delivery; back off between attempts.
The article on reducing failed OTP deliveries goes deeper into retry design.
Can we keep a +93 line for logins next month, and how is it billed?
No self-serve long-term Afghan line exists. Dedicated Numbers are a separate product sold only for the United States and Canada, from $1.95/month, with inbound and outbound SMS plus browser calling. If your team truly needs a lasting +93 line, write to [email protected]; whether one can be arranged depends on local rules, and the answer may be no.
Billing for the OTP Gateway runs through one prepaid USD wallet with no monthly fee and no plan to choose. Top up by card or with USDT/USDC, and every top-up produces a PDF invoice by email. For integration work, ask support to switch a development account to sandbox mode, which returns simulated numbers and codes without touching your balance. Full pricing lives on the pricing page.
Frequently asked questions
Can I test my app's Afghan sign-up flow without a local SIM?
Yes. Order a +93 number for the relevant service from the OTP Gateway, enter it in your app, and read the code in the dashboard or through the API.
What is the Afghanistan country id in the OTP Route API?
It is af. Pass it as the country value when you create an activation or query prices.
How much does it cost to receive an Afghanistan SMS OTP?
Codes start at $0.20 per code. The exact amount depends on the service and is returned by GET /api/v1/prices before you order.
Am I charged if the verification SMS never arrives?
No. If no code lands within the 20-minute window, or you cancel first, the full amount returns to your wallet automatically.
Should I store Afghan numbers with the leading zero?
Store them in E.164 form starting with +93 and without the trunk 0; accept the local format on input and normalise it before saving.
Does every service accept an OTP Route +93 number?
Not necessarily, because some services reject virtual numbers. Follow each service's terms and our Acceptable Use Policy, which limits use to your own legitimate accounts and products.
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.