Use case
Verify contact channels during user onboarding
Confirm that a new user can receive messages at the phone number, WhatsApp account or email address they provide during registration.

What the flow must protect
What the OTP shows
- The person registering could read a message sent to that destination at that moment.
- The destination is reachable and correctly formatted for the market it belongs to.
- The account can be linked to a verified contact channel for later authentication and notices.
What it does not show
- Legal identity. Channel verification is not KYC and is not a document or biometric check.
- That the signup is genuine. Disposable numbers, rented mailboxes and farmed accounts can pass a channel check.
- That an accepted API call created a verified user. Only a redeemed code does that.
Where the flow breaks
Malformed and mis-typed destinations
Numbers entered without a country code, with local trunk prefixes, or in the wrong format fail silently and look like delivery problems.
Disposable or unreachable destinations
Throwaway mailboxes and temporary numbers pass the mechanics of verification while defeating its purpose.
Resend abuse and duplicate accounts
Without velocity limits, one script can drive thousands of sends, inflate cost and create clusters of near-identical accounts.
Poor international routing
A signup funnel that works in one market can quietly collapse in another because one route is throttled or filtered.
Signup-abuse and SMS-pumping control matrix
Channel verification can be gamed as easily as it can confirm a real destination. This maps common abuse patterns to who owns the control.
| Abuse pattern | Signal | Control your application owns | What Flow2FA configuration can contribute |
|---|---|---|---|
| Disposable or virtual numbers | Number ranges associated with virtual or disposable providers | Destination-range allow/block lists and format validation before a message is sent | Can carry the challenge to any destination your rules approve; does not itself detect disposable ranges |
| High-cost-prefix pumping (SMS toll fraud) | Sudden concentration of requests to high-cost international prefixes | Velocity limits, country allow-lists and cost caps enforced by your application before requesting a send | Depends on configuration — routing and country restrictions can be set on the account, but the fraud decision is yours |
| Resend abuse | Repeated resend requests from the same session, device or IP | Resend cooldowns, per-session and per-destination request caps | Enforces the code lifetime and single-use rule you configure; does not police request frequency for you |
| Farmed or duplicate accounts | Many registrations converging on a small set of destinations or devices | Duplicate-destination detection and device/IP correlation across signups | Provides the verified-destination outcome per attempt for your correlation logic; does not de-duplicate accounts |
Flow2FA carries and verifies the challenge according to the routing, country and channel rules configured on your account. Detecting and blocking abusive signup patterns is an application- and account-configuration responsibility.
A production flow
Collect and normalise the destination
Normalise phone numbers to E.164 and validate email syntax before anything is sent.
Run abuse and risk checks
Apply your velocity, device, IP and duplicate-detection rules before spending a message.
Issue the challenge
Submit the request through REST or SMPP, and store the returned otpId against your pending registration record.
Route according to signup policy
Pick the channel and route allowed for that market, with fallback rules you have defined.
Verify and consume the code
Enforce lifetime, single use and attempt limits, then retire the code.
Mark the contact as verified
Record which destination was verified, when, and through which channel.
Continue onboarding
Hand back to the rest of your registration flow, which may include KYC, screening or profile completion.
How Flow2FA fits
One integration for every enabled destination type
Verify phone, WhatsApp or email through the same request path rather than three provider SDKs.
Market-aware routing
Set per-country channel preferences so a market that responds badly to SMS can lead with email, or with WhatsApp where configured.
Controls to define, and what to measure
Controls to define
These are your decisions. Flow2FA carries and verifies the code; the policy stays yours.
- Destination normalisation and format validation rules
- Allowed and blocked countries or destination ranges
- Velocity limits per device, per IP, per account and per destination
- Duplicate destination detection and reuse policy
- Code lifetime, attempt limits and resend cooldowns
- Whether fallback to a second channel is allowed during signup
- Data minimisation and retention for unverified, abandoned registrations
- What happens to a partially onboarded account that never verifies
What to measure
Measure completed verification, not accepted API calls. Acceptance and delivery receipts are progress indicators, not outcomes.
- Registration-to-verification completion rate
- First-attempt completion before any resend
- Invalid or unreachable destination rate
- Resend rate per completed verification
- Median and p95 time from signup to verified contact
- Cost per verified signup, split by market and channel
Integration options
Signup verification is usually called straight from an application backend, which favours REST. Teams whose registration traffic already flows through a messaging platform can keep SMPP.
Shared integration detail
REST vs SMPP, the provider model, routing and fallback, and full channel detail are covered once, in full, on the OTP API overview. For how to weigh those choices against your own requirements, see the buyer guide.
Channel availability depends on the setup configured for each account. The current public REST reference documents SMS and email channel values, while configured Flow2FA setups may also include WhatsApp.
Find out where your signup verification is leaking
Share the markets where registration completion is weakest. We will look at channel mix, routing and abuse controls against what you send today.