Skip to main content
This page covers the integration of the OTPless Headless SDK in Flutter. The SDK accepts the requestId generated by the Create API, performs the authentication, and reports progress through callbacks. Your backend confirms the final result via the Status Check API.

Requirements

Step 1: Add SDK dependency

Add the dependency to your pubspec.yaml:
pubspec.yaml
Then fetch it:
Check the latest version of the SDK on pub.dev.
Make sure your authentication channel is enabled on the OTPLESS dashboard.

Step 2: Android setup

If your MainActivity extends FlutterActivity, change it to extend FlutterFragmentActivity for lifecycle awareness:
MainActivity.kt

Step 3: Initialize the SDK

Create an Otpless instance, initialize it with your App ID, and register the response callback:
Replace YOUR_APP_ID with your actual App ID from the OTPLESS dashboard.

Step 4: Start authentication with the requestId

Pass the requestId returned by the Create API to start():
Start polling the Status Check API from your backend immediately after calling start(). The SDK callback and the server status run in parallel.

Step 5: Handle callbacks

Callback reference

The SDK works in two steps — initialization and start() — and each step has its own set of callbacks.

Step 1: Initialization callbacks

Emitted when you initialize the SDK (Step 3).

Step 2: Start callbacks

Emitted after you invoke start() (Step 4).
AUTH_TERMINATED is a terminal failure. Always treat the Status Check API result as authoritative.
For the errorCode / statusCode values surfaced in SDK callbacks, see SDK Error Codes.

Next step

Status Check API

Confirm the authoritative auth status from your server.