Skip to main content

OTP and 2FA service

OTP API and multi-channel 2FA delivery service

Flow2FA is a business-to-business OTP delivery and verification service. It accepts authentication traffic through a documented REST API or SMPP v3.4, routes messages through Flow2FA-supplied paths, customer-owned providers, or both, and returns the verification result to the customer application.

Two integration paths exist. The documented REST API is a two-endpoint surface for applications that can call Flow2FA directly. SMPP v3.4 lets an existing messaging platform keep its submit path and bind to Flow2FA instead of, or alongside, its current routes.

This page is the definitive service reference: what the service does, how each path works, which delivery models are available, which channels apply, what happens when delivery degrades, which controls you configure and what to measure. If you are still deciding whether OTP is the right control for your flow, start with the fit check on the homepage.

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.

Flow2FA at a glance

Category
B2B OTP delivery and verification service (2FA delivery layer)
Interfaces
Documented REST API, or SMPP v3.4 for existing messaging platforms.
Channels
The public REST reference documents SMS and email. Configured Flow2FA setups may also include WhatsApp.
Provider model
Flow2FA-supplied routes, customer-owned providers and SMPP binds, or a combination of both.
Core functions
OTP generation, delivery attempts, configured retry and fallback, validation, and attempt and outcome tracking.
Service boundaries
Flow2FA is not an identity provider, identity-proofing or KYC service, fraud engine, passkey replacement or payment-network control, and it does not guarantee message delivery.
Operated by
Flowstates Inc.

What an OTP service does

An OTP service creates a short-lived code, sends it to a destination already recorded for the user, and checks the value the user types back. The signal it produces is possession: at this moment, someone controls that number, WhatsApp account or mailbox.

Everything of consequence sits around that signal — when a challenge is raised, which channel carries it, how long the code lives, how many attempts are permitted, and what your application does with the result. Those policies stay with you; Flow2FA carries out the generation, delivery and validation.

Unfamiliar terminology is defined in the OTP and 2FA glossary.

How the Flow2FA REST API works

  1. Generate. POST /otp/generate creates a code, sends it over the configured channel, and returns an otpId.
  2. Store the otpId. Your application saves that identifier against its own record — the session, user and action the challenge belongs to. There is no caller-supplied reference field in the current public REST surface.
  3. Validate. POST /otp/validate accepts the otpId plus the otp the user entered and returns the result. Your application decides what to do with it.

The generate request requires a provider value: the account-configured provider or delivery-profile value issued during onboarding for that channel. Credentials stay server-side, documentation examples are illustrative only, and whether a permitted value maps to one underlying vendor or to an account-specific managed routing arrangement is confirmed during setup.

Field-level detail, authentication and error codes are in the API reference.

How SMPP v3.4 fits

If authentication messages already leave through a messaging platform, gateway or CRM, that submit path can often be retained. Flow2FA accepts an SMPP v3.4 bind, so the systems that create authentication requests do not have to change shape.

On this path, existing identifiers and operational correlation stay in your messaging platform, subject to your integration design. The validation path should be agreed during integration; the public REST reference documents /otp/validate separately.

REST API

  • Best for applications that can call the service directly.
  • Public surface: /otp/generate and /otp/validate.
  • You store the returned otpId against your own record.
  • You submit otpId plus the user-entered otp for validation.
  • You retain user/session/action binding and the final application decision.

SMPP v3.4

  • Best for organisations already sending authentication messages through a gateway, CRM or messaging platform.
  • Existing submit logic can often remain in place while routing changes behind it.
  • Existing identifiers and operational correlation remain in your messaging platform, subject to the agreed design.
  • SMPP does not automatically pair with the documented REST validation flow, and there is no universal correlation field: validation and correlation are agreed during implementation.

Managed routes, your providers, or both

Flow2FA can supply the delivery routes, use the vendors and binds you already contract, or run a combination — configured per channel and per market.

Ordering is a policy decision rather than a fixed cascade. Channel and route preference is configured from your own policy, observed performance in each market and the commercial arrangements you hold, with fallback rules defined alongside it.

Delivery models: what Flow2FA supplies, what the customer retains, what each suits and the main trade-off
ModelWhat Flow2FA suppliesWhat you retainBest suited toMain trade-off
Flow2FA-supplied deliveryConfigured messaging routes, with Flow2FA operating the delivery layer.Authentication policy, user/session/action binding and the application decision on the result.Teams without suitable provider relationships, or teams that want fewer delivery integrations to run.Channel, market and commercial terms must be agreed for the configured service.
Customer-owned providersRouting and workflow around approved customer providers or SMPP binds.Your vendor contracts, sender registrations and the connectivity you supply.Teams with existing commercial relationships or market-specific routes they want to keep.Route quality and third-party provider performance remain part of the shared operating model.
Hybrid by channel or marketFlow2FA and customer-supplied routes combined according to the configured account policy.Selected providers, while Flow2FA fills gaps or supplies other routes.Preserving strong existing routes while reducing single-provider dependence.More configuration and governance than a single-provider setup.

Dedicated OTP routes and prioritised email channels

Not all traffic is alike. Authentication messages have a narrow window to arrive before the code expires and the user abandons the flow, whereas bulk notifications can wait a little longer. Flow2FA keeps these workloads apart on its managed routes so that an OTP is not queued behind a large marketing send.

Dedicated OTP SMS routes. Short-code authentication SMS runs on dedicated routes separated from bulk and marketing traffic. Separation keeps authentication messages off shared queues, reduces exposure to throughput contention and carrier-level throttling, and helps codes arrive within the short validity window the flow depends on. The routes and short codes used for a given account are confirmed during onboarding and may vary by market.

Prioritised email channels. Authentication email is sent through prioritised sending channels with dedicated throughput and reputation monitoring, so verification mail is not held behind a batch of newsletters. Dedicated IP and pool configuration, where included for an account, keeps the sending reputation of OTP mail distinct from bulk email.

The benefit is practical: lower latency for time-sensitive challenges, fewer time-outs and resends, and a verification flow that is not at the mercy of unrelated traffic peaks. Whether dedicated routes, shared routes or a mix applies to your account is configured per channel and per market during setup, and routing can be tuned as volume and destinations change.

Channels: reach, assurance and constraints

A second channel is not automatically a security upgrade. Each channel has different enrolment, deliverability and account-compromise risks, and a fallback path should be approved for the specific action being protected.

Channels compared by where each can fit, the constraints to plan for and the current Flow2FA status
ChannelWhere it can fitConstraints to plan forFlow2FA status
SMSBroad handset compatibility and familiar OTP behaviour for most consumer flows.Carrier filtering, route quality, roaming, sender-registration requirements, SIM-swap and number-porting exposure, and real-time phishing. SMS OTP is not phishing-resistant.Documented public REST channel; may use customer or Flow2FA routes.
EmailUseful for email-address confirmation, activation, selected recovery or fallback where you accept mailbox access as the signal.Mailbox compromise, forwarding, spam filtering, latency, and the possibility that using it as fallback lowers assurance.Documented public REST channel; configuration and sender setup apply.
WhatsAppA data-based destination that may provide recognisable business presentation where the user is enrolled and the account is configured.Requires an eligible or enrolled destination, internet access, approved sender/template setup and customer-specific configuration. Manually entered codes remain non-phishing-resistant.May be included in configured Flow2FA setups; not currently a documented public REST channel value.

Flow2FA applies the channel order and fallback policy configured for the account. The customer decides whether a fallback channel provides enough assurance for the protected action.

What happens when a delivery path degrades

A provider accepting an API request is not the same as a user completing verification.

Illustrative policy sequence

  1. Authentication request accepted and a request identifier created.
  2. Primary channel or route attempted under the configured policy.
  3. Failure or timeout condition recorded.
  4. Approved alternate route or channel attempted where policy permits.
  5. Attempts are recorded against the originating request; confirm the attempt fields and reporting dimensions available for your configured account during scoping.
  6. Flow2FA returns the validation outcome; the customer application decides whether to complete the action.

Fallback can change assurance as well as delivery. A move from one channel to another should be explicitly approved for the use case and recorded, not treated as a universal default.

What Flow2FA operates — and what stays with you

Flow2FA delivery layer

  • Accepts traffic over the agreed REST or SMPP interface.
  • Generates and validates codes where the REST OTP flow is used.
  • Attempts delivery over configured channels and routes.
  • Applies the configured retry and fallback rules.
  • Records delivery attempts, retries and verification outcomes.
  • Supports Flow2FA-supplied routes, customer-owned providers or both.

Customer application, IdP or risk layer

  • Decides which events require verification.
  • Determines whether OTP is sufficient for the action.
  • Binds the request to the correct user, session, transaction or recovery event.
  • Protects destination changes and recovery flows.
  • Sets resend, lockout, step-up and fallback policy with Flow2FA.
  • Decides whether to complete the login, payment, recovery or access request after validation.

This separation is intentional: Flow2FA operates delivery and verification; it does not make identity or transaction-risk decisions for the customer.

Operational controls to define

Code lifetime
How long a code stays valid before it expires.
Single use
A code is redeemable once; a replacement requires a new challenge.
Attempt limits
How many wrong entries are accepted before the challenge is closed.
Resend throttles
How often a user may request another code, and for how long.
Channel and fallback policy
Which channel is tried first, and what happens next.
Application-level binding
Your application ties the otpId to the session, user and action it raised the challenge for.
Destination changes
Whether a number or address can be changed mid-flow, and what re-verification that requires.
Abuse controls
Rate limits per user, per destination and per country.
Retention
How long attempt records and destinations are kept.

Where Flow2FA does not apply

Whether OTP suits your flow at all — and whether a different product would serve you better — is covered by the fit check on the homepage. These are the service boundaries that hold in every configuration.

  • Flow2FA is not an identity provider and does not hold your user directory or issue sessions.
  • Flow2FA does not perform identity proofing or KYC; it cannot tell you who a person is.
  • Flow2FA is not a fraud engine and does not score risk or decide whether a payment should proceed.
  • Flow2FA does not replace passkeys or other phishing-resistant authenticators.
  • Flow2FA is not a payment-network control and does not replace 3-D Secure.
  • Flow2FA does not guarantee message delivery, and a delivery receipt is not a completed verification.

Controls to require from any OTP provider

These are controls to require and verify with any OTP provider, including Flow2FA, during security review. They are buyer requirements rather than claims about implementation internals.

  • Codes generated from a secure source
  • Short, defined expiry
  • Single use
  • Strict attempt limits
  • Resend limits
  • No OTP values in ordinary logs
  • No long-term retention of code values
  • Application-level binding between otpId and your session/action
  • Stronger authentication for higher-risk access

Primary sources

The summary above is a paraphrase. Consult the linked sources for the current normative and recommended detail.

The assurance limits of OTP as a control are summarised in the security boundaries on the homepage.

What to measure

Measure completed verification rather than accepted API calls, and read cost per completed verification rather than cost per message.

Metrics to require from an OTP provider, what each measures and why it matters
MetricWhat it tells youWhy it matters
Verification completion rateCompleted validations divided by generated challenges.The core outcome: whether users actually finish the flow you paid to deliver.
First-attempt completion rateCompletion without a resend or a fallback channel.Exposes friction that a headline delivery figure hides.
Request-to-delivery latency at p50 and p95Normal and tail delay between request and delivery.Late codes cause abandonment and stale, expired codes.
Resend rateThe percentage of requests that need another code.An early warning of delivery or user-experience problems.
Completion by country, operator, channel and routeWhere completion differs across the traffic mix.Localises degradation that aggregate figures conceal.
Delivery-to-verification gapThe difference between reported delivery and completed validation.Shows why a delivery receipt is not proof of a successful verification.
Cost per completed verificationPrimary, retry and fallback cost divided by completed validations.A fairer commercial comparison than price per submitted message.

Confirm the exact reporting fields, breakdowns and exports available for your configured account before contracting.

How to request this evidence during a pilot

What to establish before contracting

  • Main use cases and the actions being protected.
  • Top countries, mobile operators and monthly and peak verification volumes.
  • Existing SMS, email, WhatsApp or SMPP providers and sender/template registrations.
  • Current code lifetime, resend rules, attempt limits, lockouts and application-level binding.
  • Which fallback paths are permitted for each use case, and whether they change assurance.
  • The exact attempt, outcome, country/operator and export data available.
  • Support and escalation requirements.
  • Data-retention, security and contractual requirements.
  • A worked commercial example including primary attempts, retries, fallback and cost per completed verification.

Flow2FA pricing should be assessed against the countries, channels, volumes and provider model configured for the account. Request a worked example against your own traffic rather than comparing a single headline message price.

Questions buyers ask

What is an OTP service?

An OTP service generates a short-lived, single-use code, delivers it to a destination already on file for the user, and then checks the code the user enters. It confirms current control of that phone number, WhatsApp account or mailbox — not who the person is.

Is Flow2FA an OTP API or a messaging provider?

Both roles are available. Flow2FA exposes an OTP API and can also carry the messages over its own routes. Customers who already contract providers can keep them, and the two models can be mixed per channel or market.

Can we keep our current SMS, email or WhatsApp providers?

Yes. Flow2FA can route through customer-owned providers and SMPP binds, through Flow2FA-supplied routes, or through a combination, depending on the setup configured for the account.

Does Flow2FA replace our identity provider or fraud engine?

No. Flow2FA delivers and validates codes. Your identity provider still owns accounts and sessions, and your fraud tooling still owns risk decisions.

Does a delivery receipt mean the user verified?

No. A receipt indicates that a network accepted or reported the message. Verification is only complete when a code is validated and your application records the outcome.

Is SMS OTP phishing-resistant?

No. A manually entered code can be relayed to an attacker in real time. OTP raises the cost of account takeover but is not a phishing-resistant authenticator.

Which channels does the public REST API document?

The current public REST reference documents SMS and email channel values. Configured Flow2FA setups may also include WhatsApp.

REST or SMPP — which should we use?

Neither is universally better. REST suits applications that can call two endpoints directly. SMPP v3.4 suits teams with an existing messaging platform whose submit path they would rather retain.

Review the flow with us

Share the markets, channels and providers you use today, and we will walk through how a REST or SMPP configuration would be set up.