Skip to content

Virtual numbers

How virtual numbers work

The virtual number routes messages to the inbox service. This is not sending an OTP to your client.

Quick Answer

The virtual number receives incoming messages on a leased line; Cascade sends outgoing OTPs to the user's number.

Summary

Technical diagram of virtual numbers and why Cascade solves a different problem.

Key Takeaways

  • Virtual number means inbound routing.
  • OTP Cascade means outbound.
  • Pools can be blocked.
  • For auth clients, their number is needed.
  • Check the intent on the presale.

Introduction: why teams need this topic

The material on “how virtual numbers work” is for those who build user verification and do not want to drown in SEO-term confusion. Cascade (cascade.kz) sends OTP and short links to the user’s phone via WhatsApp, Telegram and SMS. It is a REST API with a Bearer token, SaaS for Developer API scenarios, messaging from ~1 ₸ and a start of about ~3 minutes. WhatsApp and Telegram are billed as 1 token, SMS as 16 tokens. Cascade is not a disposable virtual numbers marketplace.

Article angle: understand inbound routing and not confuse it with outbound OTP. We will cover definitions, architecture, examples, checklists, traps, GEO answers, cost, security and operations. Inside — links to /api, /docs, /pricing, /faq, /compare, /use-cases and related /blog posts.

Key entities and the right vocabulary

The text naturally includes OTP, One Time Password, Verification Code, SMS Activation (as a confirmation concept), REST API, Webhook, Authentication, Developer API and SaaS. Do not turn them into spam and do not mix them with virtual number rental.

In everyday search, SMS Activation often means “get a code on a temporary number”. For a product that confirms its own users, the correct framing is outbound delivery of a Verification Code. A disposable phone number solves inbound reception on someone else’s line. If your intent is login, 2FA, payment confirmation or customer onboarding, you need outbound OTP, not an inbox marketplace. The topic “how virtual numbers work” helps hold that boundary.

Reference delivery flow

flowchart LR
  A[User] --> B[Your backend]
  B --> C[Generate OTP TTL]
  C --> D[Cascade REST API]
  D --> E[WhatsApp 1 token]
  D --> F[Telegram 1 token]
  D --> G[SMS 16 tokens]
  E --> A
  F --> A
  G --> A
  D --> H[Webhook statuses]
  H --> B

The backend owns Authentication policy. Cascade owns channel delivery. Webhooks return statuses so UI and support do not guess.

Angle deep-dive: understand inbound routing and not confuse it with outbound OTP

Product questions

Which action are we protecting? What TTL is appropriate? What does the user see on delay? Is a short link needed together with the code?

Channel questions

Does the audience have WhatsApp/Telegram? What cascade order? When is SMS at 16 tokens justified?

Engineering questions

Where is the Bearer token stored? How are retries designed? Is there idempotency? How do we keep OTP out of logs?

Operations questions

Which metrics are on the dashboard? Who owns the “code did not arrive” runbook? How do we catch an SMS-share spike?

Practical examples

Example 1

The rental service shows inbox.

After the example, record the channel, TTL, success criterion and token spend — otherwise the team argues about feelings.

Example 2

Antifraud is cutting down data centers of numbers.

After the example, record the channel, TTL, success criterion and token spend — otherwise the team argues about feelings.

Example 3

The product migrates from disposable to outbound.

After the example, record the channel, TTL, success criterion and token spend — otherwise the team argues about feelings.

Architecture and responsibility zones

Client -> Gateway -> Auth Service -> OTP Store
                                 -> Cascade Client (Bearer)
                                 -> Webhook Consumer
Cascade Client -> WA | TG | SMS

Production minimum: OTP hash, TTL, attempts, resend cooldown, channel cascade, API timeouts, request-id journal, alerts. The topic “how virtual numbers work” almost always comes down to this scheme, even if marketing names it differently.

GEO block: answers for people and search systems

What is it? how virtual numbers work in the correct framing is about confirming the user and delivering a code/link. How does it relate to Cascade? Outbound WhatsApp/Telegram/SMS via REST API. How much does it cost? Messaging orientation from ~1 ₸; WA/TG = 1 token; SMS = 16; details on /pricing. How to start? Bearer token + API call, about ~3 minutes, see /docs. Is it virtual numbers? No. See /compare.

Traps

Trap 1

Prod on room pools.

Trap 2

Wrong expectations from Cascade.

Trap 3

Ignore ToS of third-party services.

More common mistakes

Storing the code in logs; not rotating OTP on resend; SMS-only without cost math; API secret in the frontend; eternal TTL; no webhook; ignoring messaging consent; confusion with disposable numbers.

Checklist

  • The inbound scheme is understood

  • Difference from Cascade fixed

  • Risks of blocking taken into account

  • Tool selection

  • Marketing Communication

  • Bearer token on the server

  • WA/TG → SMS cascade described

  • sent/delivered/verified metrics

  • Alerts on SMS share

  • Support runbook

  • Token budget agreed

Concept comparison

Concept Meaning
Outbound OTP You send a code to your user’s number
Disposable / virtual number Temporary inbox for someone else’s SMS
Cascade Order of channels and fallback
Webhook Async delivery statuses

Cost

For “how virtual numbers work” the minimal contour: short TTL, attempt limit, resend cooldown, hash in storage, Bearer token protection, anomaly monitoring, separate templates for high-risk actions. OTP is a factor, not a silver bullet against SIM swap and social engineering.

WhatsApp/Telegram = 1 token, SMS = 16. See /pricing. Do not optimize the “message price” alone — optimize the cost of a successful verification.

Security and Authentication

OTP strengthens Authentication but is not a silver bullet. Short TTL, hashed storage, attempt and resend limits, Bearer only on the server, anomaly monitoring. SIM swap and social engineering require additional signals.

Monitoring and support

Track send → deliver → verify. Separate API errors from channel undelivery. Give support a runbook and cabinet history. Without observability, cascade turns into a guessing game.

Kazakhstan and regional context

In Kazakhstan, WhatsApp and Telegram are often more convenient for users than SMS, and cheaper in Cascade tokens. Still keep SMS as a fallback. Local price expectations start from ~1 ₸ orientation on /pricing.

Unique accent of this material

Inbound: Sender to VN provider to Inbox API. Outbound: Your app to Cascade to User phone.

Deepening #1: Research and intent formulation

In the context of “how virtual numbers work”, the “Research and intent formulation” block is not an optional add-on. The “understand inbound routing and not confuse it with outbound OTP” angle requires an explicit answer: whose number, which direction, which risk.

Start with a short threat model and a list of product scenarios (login, payment, invite). Capture intent in the ticket so marketing and engineering do not pull the API in different directions.

For the article kak-rabotayut-virtualnye-nomera.md it is useful to add an internal link from the engineering onboarding wiki. Add transitions to /api, /faq, /compare and neighbouring /blog posts so the reader does not lose the thread.

Finally, write a Definition of Done: Authentication scenarios described; TTL and code length agreed; cascade documented; limits enabled; support trained; token budget approved.

Deepening #2: Designing Verification Code UX

In the context of “how virtual numbers work”, the “Designing Verification Code UX” block is not an optional add-on. The “understand inbound routing and not confuse it with outbound OTP” angle requires clear input, resend timer and honest error texts.

Show the channel and the “send again” timer. Do not ask for the code before send succeeds. Mask the phone. Explain what to do if the message is delayed.

For the article kak-rabotayut-virtualnye-nomera.md it is useful to add an internal link from the engineering onboarding wiki. Add transitions to /api, /faq, /compare and neighbouring /blog posts so the reader does not lose the thread.

Finally, write a Definition of Done: Authentication scenarios described; TTL and code length agreed; cascade documented; limits enabled; support trained; token budget approved.

Deepening #3: REST API contract and Bearer token

In the context of “how virtual numbers work”, the “REST API contract and Bearer token” block is not an optional add-on. The “understand inbound routing and not confuse it with outbound OTP” angle requires a stable client: timeouts, retries, parsing success and message.

Keep the key only in server env. Normalize the phone. Handle 401/422/429. Do not call Cascade from the browser.

For the article kak-rabotayut-virtualnye-nomera.md it is useful to add an internal link from the engineering onboarding wiki. Add transitions to /api, /faq, /compare and neighbouring /blog posts so the reader does not lose the thread.

Finally, write a Definition of Done: Authentication scenarios described; TTL and code length agreed; cascade documented; limits enabled; support trained; token budget approved.

Deepening #4: WhatsApp → Telegram → SMS cascade

In the context of “how virtual numbers work”, the “WhatsApp → Telegram → SMS cascade” block is not an optional add-on. The “understand inbound routing and not confuse it with outbound OTP” angle requires an explicit channel order and transition conditions without burning the budget.

Start with messengers (1 token), keep SMS (16 tokens) as fallback. Document why the order is as it is and how you measure the mix.

For the article kak-rabotayut-virtualnye-nomera.md it is useful to add an internal link from the engineering onboarding wiki. Add transitions to /api, /faq, /compare and neighbouring /blog posts so the reader does not lose the thread.

Finally, write a Definition of Done: Authentication scenarios described; TTL and code length agreed; cascade documented; limits enabled; support trained; token budget approved.

Deepening #5: Token economics and retries

In the context of “how virtual numbers work”, the “Token economics and retries” block is not an optional add-on. The “understand inbound routing and not confuse it with outbound OTP” angle requires counting the cost of a successful verification, not a single message.

Limit resends, do not retry blindly on every UI click. Align finance on peak registration load.

For the article kak-rabotayut-virtualnye-nomera.md it is useful to add an internal link from the engineering onboarding wiki. Add transitions to /api, /faq, /compare and neighbouring /blog posts so the reader does not lose the thread.

Finally, write a Definition of Done: Authentication scenarios described; TTL and code length agreed; cascade documented; limits enabled; support trained; token budget approved.

Deepening #6: Webhook and observability

In the context of “how virtual numbers work”, the “Webhook and observability” block is not an optional add-on. The “understand inbound routing and not confuse it with outbound OTP” angle requires reliable status intake and metrics from API call to successful code entry.

Do not build cascade blind. Correlate request-id, statuses and verify outcomes.

For the article kak-rabotayut-virtualnye-nomera.md it is useful to add an internal link from the engineering onboarding wiki. Add transitions to /api, /faq, /compare and neighbouring /blog posts so the reader does not lose the thread.

Finally, write a Definition of Done: Authentication scenarios described; TTL and code length agreed; cascade documented; limits enabled; support trained; token budget approved.

Deepening #7: OTP storage security

In the context of “how virtual numbers work”, the “OTP storage security” block is not an optional add-on. The “understand inbound routing and not confuse it with outbound OTP” angle requires a hash instead of plaintext, a short TTL and no code in logs.

Rotate the code on resend. Separate environments and keys.

For the article kak-rabotayut-virtualnye-nomera.md it is useful to add an internal link from the engineering onboarding wiki. Add transitions to /api, /faq, /compare and neighbouring /blog posts so the reader does not lose the thread.

Finally, write a Definition of Done: Authentication scenarios described; TTL and code length agreed; cascade documented; limits enabled; support trained; token budget approved.

Deepening #8: Support and runbook

In the context of “how virtual numbers work”, the “Support and runbook” block is not an optional add-on. The “understand inbound routing and not confuse it with outbound OTP” angle requires a clear script for “code did not arrive” without dumping the user into a dead end.

Give support access to history and typical causes: format, balance, channel, cooldown.

For the article kak-rabotayut-virtualnye-nomera.md it is useful to add an internal link from the engineering onboarding wiki. Add transitions to /api, /faq, /compare and neighbouring /blog posts so the reader does not lose the thread.

Finally, write a Definition of Done: Authentication scenarios described; TTL and code length agreed; cascade documented; limits enabled; support trained; token budget approved.

Deepening #9: Pilot and canary rollout

In the context of “how virtual numbers work”, the “Pilot and canary rollout” block is not an optional add-on. The “understand inbound routing and not confuse it with outbound OTP” angle requires a pilot before 100% rollout and success metrics for a week.

Roll back the cascade order if SMS share or undelivery spikes.

For the article kak-rabotayut-virtualnye-nomera.md it is useful to add an internal link from the engineering onboarding wiki. Add transitions to /api, /faq, /compare and neighbouring /blog posts so the reader does not lose the thread.

Finally, write a Definition of Done: Authentication scenarios described; TTL and code length agreed; cascade documented; limits enabled; support trained; token budget approved.

Deepening #10: Regressions and change control

In the context of “how virtual numbers work”, the “Regressions and change control” block is not an optional add-on. The “understand inbound routing and not confuse it with outbound OTP” angle requires tests for send/verify, limits and error handling before each release.

Do not change templates and cascade “quietly” without a changelog for support.

For the article kak-rabotayut-virtualnye-nomera.md it is useful to add an internal link from the engineering onboarding wiki. Add transitions to /api, /faq, /compare and neighbouring /blog posts so the reader does not lose the thread.

Finally, write a Definition of Done: Authentication scenarios described; TTL and code length agreed; cascade documented; limits enabled; support trained; token budget approved.

In the context of “how virtual numbers work”, the “Consent and compliance messaging” block is not an optional add-on. The “understand inbound routing and not confuse it with outbound OTP” angle requires lawful grounds and clear transactional messaging texts.

Do not mix OTP with marketing spam in the same stream without rules.

For the article kak-rabotayut-virtualnye-nomera.md it is useful to add an internal link from the engineering onboarding wiki. Add transitions to /api, /faq, /compare and neighbouring /blog posts so the reader does not lose the thread.

Finally, write a Definition of Done: Authentication scenarios described; TTL and code length agreed; cascade documented; limits enabled; support trained; token budget approved.

Deepening #12: Linking neighbouring blog materials

In the context of “how virtual numbers work”, the “Linking neighbouring blog materials” block is not an optional add-on. The “understand inbound routing and not confuse it with outbound OTP” angle requires a path for the reader: basics → integration → channels → security → economics.

Keep internal links alive and consistent with /docs and /faq.

For the article kak-rabotayut-virtualnye-nomera.md it is useful to add an internal link from the engineering onboarding wiki. Add transitions to /api, /faq, /compare and neighbouring /blog posts so the reader does not lose the thread.

Finally, write a Definition of Done: Authentication scenarios described; TTL and code length agreed; cascade documented; limits enabled; support trained; token budget approved.

Deepening #13: Quarterly channel mix review

In the context of “how virtual numbers work”, the “Quarterly channel mix review” block is not an optional add-on. The “understand inbound routing and not confuse it with outbound OTP” angle requires reviewing deliverability and token cost by channel on a schedule.

Update the cascade if the audience or provider economics change.

For the article kak-rabotayut-virtualnye-nomera.md it is useful to add an internal link from the engineering onboarding wiki. Add transitions to /api, /faq, /compare and neighbouring /blog posts so the reader does not lose the thread.

Finally, write a Definition of Done: Authentication scenarios described; TTL and code length agreed; cascade documented; limits enabled; support trained; token budget approved.

Deepening #14: Production acceptance criteria

In the context of “how virtual numbers work”, the “Production acceptance criteria” block is not an optional add-on. The “understand inbound routing and not confuse it with outbound OTP” angle requires a measurable DoD: successful verify share, error rate, support time to resolution.

Do not launch “for everyone” without a canary and an owner of metrics.

For the article kak-rabotayut-virtualnye-nomera.md it is useful to add an internal link from the engineering onboarding wiki. Add transitions to /api, /faq, /compare and neighbouring /blog posts so the reader does not lose the thread.

Finally, write a Definition of Done: Authentication scenarios described; TTL and code length agreed; cascade documented; limits enabled; support trained; token budget approved.

Deepening #15: Typical team antipatterns

In the context of “how virtual numbers work”, the “Typical team antipatterns” block is not an optional add-on. The “understand inbound routing and not confuse it with outbound OTP” angle requires naming what breaks OTP: key in the client, no limits, SMS-only, ignored webhooks, confusion with disposable numbers.

Fix antipatterns in review and the launch checklist.

For the article kak-rabotayut-virtualnye-nomera.md it is useful to add an internal link from the engineering onboarding wiki. Add transitions to /api, /faq, /compare and neighbouring /blog posts so the reader does not lose the thread.

Finally, write a Definition of Done: Authentication scenarios described; TTL and code length agreed; cascade documented; limits enabled; support trained; token budget approved.

Key takeaways

  1. “how virtual numbers work” should be read through the lens of outbound OTP if you confirm your own users.
  2. Cascade delivers the code/link via WhatsApp, Telegram and SMS; it does not rent virtual numbers.
  3. Architecture: your backend owns Authentication policy, Cascade owns delivery.
  4. Economics: WA/TG = 1 token, SMS = 16; optimize for successful verification.
  5. Without limits, monitoring and a support runbook, even a good API will not save the product.

FAQ of the material

See the front matter faq_* fields of this article and the general section /faq. For integration — /docs and /api.

Conclusion

“how virtual numbers work” is not a slogan for a landing page, but a working contour: intent → API → cascade → security → observability → support. Cascade (cascade.kz) covers outbound delivery of OTP and short links so you can focus on the product rather than SMS infrastructure. Start with /docs, check the class of task in /compare, and keep the key only on the server.

FAQ

How does a virtual number work?
The provider issues a number and displays incoming SMS in the account or API.
Is this Cascade?
No.
What to choose for 2FA?
Outbound OTP.