Skip to main content
This guide covers the Silent Network Authentication (SNA) only integration using the OTPless SDK. In this configuration SNA is the single authentication channel — there is no OTP, WhatsApp, or other fallback. The flow is designed for backend-controlled, server-verified authentication.

The three building blocks

The integration is built from three pieces that work together regardless of platform (Android or iOS):
In an SNA-only configuration the server is the source of truth. Your backend must rely on the Status Check API result — not the SDK callback alone — to confirm a successful login.

How the SDK and APIs stitch together

The requestId is the thread that ties every step together:
  1. Your server calls Create with the user’s phone number and receives a requestId.
  2. Your server hands the requestId back to the client app.
  3. The client app passes the requestId to the SDK via start().
  4. The SDK performs the silent network handshake with the Telco Server and reports progress through callbacks.
  5. Independently, your server polls Status Check with the same requestId to determine the final, authoritative result.

Data flow

The flow is the same on every platform — only the SDK calls differ. The client app starts polling its own backend immediately after calling start(requestId), while the SDK runs the SNA handshake in parallel.

How to perform the status check

There are two ways to drive the Status Check API poll:
Begin polling from your backend immediately after calling the SDK start() method, and keep polling until you receive a terminal state (SUCCESS or FAILED).Always enforce a timeout threshold — if no terminal state is reached within that window, stop polling and mark the transaction as failed (timeout). This prevents the poll from running indefinitely if the flow never resolves.
Regardless of the approach, the Status Check API result from your server — not the SDK callback alone — is the source of truth for confirming a successful login.

SDK callback states

The SDK works in two steps, and each step has its own set of callbacks. First, the SDK must be initialized. Once initialization succeeds, you invoke the start() method to begin authentication.

Step 1: Initialization callbacks

Emitted when you initialize the SDK.

Step 2: Start callbacks

Emitted after you invoke start() to begin authentication.

Create API

Generate a requestId from the user’s phone number.

Android SDK

Initialize and start SNA on Android.

iOS SDK

Initialize and start SNA on iOS.

Status Check API

Poll the authoritative auth status from your server.