Pulling Chad (+235) verification codes into your stack

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

Yes: OTP Route's OTP Gateway issues Chad (+235) verification numbers that you can order through a REST API or from the dashboard, starting from $0.20 per code. Each number serves one code inside a 20-minute window, and if no SMS arrives the charge returns to your wallet automatically.

What is the call sequence for a Chad OTP API request?

Chad requests hit the same base URL as every other market, https://otproute.com/api/v1, signed with an or_live_ Bearer key. You create keys in the Developer console; an account can hold up to 10 of them and make 300 requests per minute.

A typical Chad run takes four calls:

  1. GET /api/v1/countries and GET /api/v1/services to confirm that td is listed and to look up the service id your test targets.
  2. GET /api/v1/prices?country=td&service=<id> to read the live price for that pair before spending anything.
  3. POST /api/v1/activations with a body such as {"service": "telegram", "country": "td"}. The response carries an activation id and the +235 number to type into the app under test.
  4. Wait for the code, then either let the activation complete or call POST /api/v1/activations/{id}/cancel if the test aborts early.

GET /api/v1/balance is worth calling at the start of a CI job so a pipeline fails loudly on an empty wallet instead of timing out halfway through. The full reference sits in the developer docs.

How should a webhook receiver treat +235 codes?

Polling GET /api/v1/activations/{id} every few seconds is fine for a single script. Once several test runners share a key, a webhook is cleaner. Register an endpoint (five per account) and subscribe to activation.sms_received, activation.expired and activation.cancelled.

Each request includes an X-OTPRoute-Signature header in the form t=<unix>,v1=<hex>. Rebuild the string <t>.<raw body>, sign it with HMAC-SHA256 using the endpoint secret, and compare with v1 in constant time. Reject anything whose timestamp is stale; that closes the door on replayed requests. Our guide on securing OTP webhooks with HMAC walks through it in several languages.

Treat the activation id as the idempotency key. If the same event is delivered twice, the second write should change nothing, and your handler should return a 2xx quickly and do slow work afterwards.

Which apps can send codes to a Chad verification number?

The live snapshot for td lists more than 1,500 services. Popular ones include WhatsApp, Telegram, Google (Gmail & YouTube), Facebook, Instagram, TikTok, Viber, imo, Signal, Microsoft & Outlook, LinkedIn, ChatGPT (OpenAI) and AliExpress.

Availability is not static. Routes open and close through the day as our carrier partners shift capacity, so a service visible this morning may be missing this afternoon. Read the catalog at run time rather than hard-coding it, and keep a second service in your test plan in case the first one is temporarily unavailable for Chad.

How do I store and normalise a +235 number?

Chad uses a closed numbering plan: national numbers are eight digits and there is no trunk prefix to strip, so the E.164 form is simply +235 followed by those eight digits. That makes Chad one of the easier markets to validate.

  • Store the full E.164 string in a single column rather than splitting country code and subscriber number.
  • If your form accepts spaces or the pairs-of-two grouping people often type, remove them before saving.
  • Assert in tests that a value with a stray leading 0 is rejected or cleaned, since users coming from other plans sometimes add one out of habit.

French and Arabic are the official languages. The wording of a verification SMS, though, follows the language the app or account is set to, so a localisation suite should check French, Arabic and English templates separately.

Why do product teams run tests in Chad?

Few engineering teams sit in N'Djamena, which is exactly why a remote +235 number is useful. Common reasons we see:

  • Francophone Central Africa launches, where a product already live in neighbouring markets adds Chad to its sign-up country picker and needs proof the flow works.
  • Arabic and French localisation QA, including right-to-left layout of the code-entry screen.
  • Diaspora customers who keep a Chadian number while living abroad, which affects how your fraud rules read the country code.
  • Operations teams that manage business messaging accounts for regional partners.

The broader pattern is described in country routing for OTP.

What if the Chad code never arrives?

A silent number is usually a route or acceptance problem, not a bug in your code. Work through it in this order:

  • Give the 20-minute window a chance to run; some senders batch their messages.
  • Check that the target service accepts virtual numbers. Some do not, which is why the refund exists.
  • Try again later, or with a different service on the same country, instead of re-ordering in a tight loop. Rapid retries can trip the sender's own rate limits.
  • Confirm your handler verified the signature correctly; a rejected webhook looks like a missing code.

If the window closes or you cancel, the full amount returns to the wallet without a support ticket. More tactics are in reducing failed OTP deliveries.

Is there a long-term Chad line, and how is it billed?

There is no self-serve long-term number for Chad. Dedicated Numbers are a United States and Canada product, from $1.95/month, with inbound and outbound SMS and browser calling. If you need a lasting +235 line, email [email protected]; availability depends on local rules and is not something we can promise.

Charges for +235 codes come out of a single prepaid USD balance; there is no subscription tier and no monthly fee. Funding works by card or USDT/USDC stablecoins, and a PDF invoice lands in your inbox after each deposit. Live rates appear on the pricing page. For integration work, ask for a sandbox switch: it returns simulated numbers and codes so you can rehearse the flow without touching wallet funds. Opening a new account takes a six-digit email code, or Google sign-in if your team prefers it.

Frequently asked questions

What is the country id for Chad in the OTP Route API?

Use td in the country field of POST /api/v1/activations and in the prices query.

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

Yes. Order a +235 number from the OTP Gateway, enter it in your app, and read the code from the dashboard, the API or a webhook.

How long does a +235 number stay usable?

One activation is open for 20 minutes and covers a single code. After that, order a new one.

Do I pay when the SMS never comes?

No. If no message arrives before the window closes, or you cancel, the amount is credited back to your wallet automatically.

Do Chad numbers need a trunk prefix removed?

No. Chad has no trunk prefix, so the stored form is +235 plus the eight-digit national number.

Can I keep a Chad number for later logins?

Not through self-serve. Long-term Dedicated Numbers exist only in the US and Canada; for Chad, email the team to ask what is possible.

Are there usage rules?

Yes. Follow each service's terms and the OTP Route Acceptable Use Policy; the gateway is for testing and running your own legitimate products and accounts.

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.