Send confirmation codes to Telegram instead of SMS

Tasdiq ID is an API for websites and apps. Codes for sign-in, sign-up and payment confirmation arrive in the user’s Telegram. No phone number required.

100 codes a month for free. No bank card required.

4 steps for the user

They open the bot once, then request a code on your site, copy it from Telegram and enter it. It all takes a few seconds.

The video’s voice-over and captions are in Uzbek.

For developers: two requests

Send a code and verify it. Integration usually takes one working day.

  1. 1

    The user links to the bot

    Your site issues a one-time link. The user opens it, taps “I agree” in the bot, and their Telegram account is linked to their user ID in your system. This is done once.

  2. 2

    Your server requests a code

    At sign-in or sign-up you call /v1/otp/send. We generate the code and deliver it to Telegram.

  3. 3

    You verify the entered code

    You send the digits the user typed to /v1/otp/verify and get valid: true or false. We track expiry and the number of attempts.

bashcurl
# 1. Send a code
curl https://api.tasdiqid.uz/v1/otp/send \
  -H "Authorization: Bearer $TASDIQ_KEY" \
  -d '{"external_user_id": "user-1"}'
# 202 {"request_id": "7c1e9a…", "status": "queued", "expires_at": "…"}

# 2. Verify the code entered by the user
curl https://api.tasdiqid.uz/v1/otp/verify \
  -H "Authorization: Bearer $TASDIQ_KEY" \
  -d '{"request_id": "7c1e9a…", "code": "482915"}'
# 200 {"valid": true}

Full reference, error codes and examples in other languages: API docs

New

No coding: a ready-made “Sign in with Telegram” button

Add one line of code to your site, or connect WordPress, Moodle, Laravel and other systems via OpenID Connect with no code. The user enters a number, the code arrives in Telegram — you get a verified number.

How to connect →
HTML
<script src="https://id.tasdiqid.uz/widget.js"
        data-client-id="tqc_..."
        data-login-url="/tasdiq-login"
        async></script>

About the platform

Codes are delivered through a queue within a second, and security rules are on by default. The dashboard has API keys, message texts, webhooks and monthly statistics.

Specifications

Code length and validity are set per request. Message text and bot settings are in the dashboard.

Code length
4–8 digits, 6 by default
Validity
1–15 minutes, 5 by default
Wrong attempts
The code is cancelled after 5 wrong attempts
Storage
Only a hash of the code is stored
Resend
A new code cancels the previous one
Queue
Confirmation codes are sent before broadcasts
Webhooks
user.linked, otp.delivered, otp.failed, broadcast.completed — HMAC-signed
Message text
A separate template for each site or app
Bot languages
Uzbek, Russian, English — chosen by the user
Data
Stored on a server in Uzbekistan

Pricing

Monthly subscription in UZS. Codes over the limit are added to the next invoice at the plan’s rate.

Free

0UZS/mo
  • 100 codes / month
  • 10 requests / minute
Sign up

Start

99 000UZS/mo
  • 2 000 codes / month
  • 1 000 broadcast messages
  • 60 requests / minute
  • Webhooks
  • 150 UZS per code over the limit
Sign up

Business

Popular
490 000UZS/mo
  • 20 000 codes / month
  • 20 000 broadcast messages
  • 300 requests / minute
  • Webhooks
  • SLA
  • 100 UZS per code over the limit
Sign up

Enterprise

Custom
  • Custom volume
  • 1 200 requests / minute
  • Webhooks
  • SLA
  • Under your own bot
Contact us

FAQ

Do I need the user’s phone number?

No. When linking via a link, the Telegram account is tied to the user ID in your system.

What if the user blocks the bot?

The API returns 403 bot_blocked and an otp.failed webhook is sent. Your site can then offer a fallback such as SMS or email.

What if the phone is off?

Telegram delivers the message when the phone is back on, but the code may expire in the meantime. Add a “Resend code” button: a new code cancels the old one.

Which programming languages are supported?

Any: it’s a plain HTTPS REST API. The docs include curl, Node.js, PHP and Python examples.

How does payment work?

By bank transfer under an agreement and a monthly invoice. You can try the free plan with 100 codes a month.

Contact us

Write to us about integration, pricing or contracts. On working days we reply the same day.

Voice presentation