FAILED (initialization), on a non-200 INITIATE, or on AUTH_TERMINATED.
These are client/SDK errors. For the server-side verification outcome (
SP* codes in auths[].error) and gateway request errors, see API Error Codes. The SDK callback is not the source of truth — always confirm the final result with the Status Check API.Error response structure
responseType— the callback the error arrived on. Errors are carried only onFAILED,INITIATE, andAUTH_TERMINATED. (SDK_READYandONETAPare success callbacks and never carry an error.)statusCode— the HTTP status or an OTPless-curated status code.errorCode— the OTPless error code (see tables below).errorMessage— a human-readable description of the error.
AUTH_TERMINATED errors
A terminal failure is delivered on theAUTH_TERMINATED callback. Common to Android and iOS.
7160 first surfaces on an INITIATE callback (with the error code) and is then followed by AUTH_TERMINATED; 7161 is delivered directly on AUTH_TERMINATED. Treat both as terminal and rely on the Status Check API result.Verification errors
Outcomes from verification. These surface on theINITIATE (with error code) and AUTH_TERMINATED callbacks. Common to both platforms.
A timeout or exhausted poll ends the flow on
AUTH_TERMINATED (7161).Initialization errors
Reported on theFAILED callback when the SDK cannot initialize. Common to both platforms.
Request & configuration errors
Surfaced on theINITIATE callback when statusCode != 200. Common to both platforms unless noted.
Transaction state errors
Surfaced on theINITIATE callback when the request or token has expired. Call start() again with a fresh requestId.
Rate-limit errors
Surfaced on theINITIATE callback with statusCode 429. Common to both platforms.
Network connectivity errors (iOS)
iOS surfaces granular network errors via theINITIATE response. On Android, a network failure during authentication is not reported with a distinct code — it ends the flow on AUTH_TERMINATED (7160 / 7161).