The Status Check API is the authoritative source of truth for the SNA-only flow. Your backend polls it with the requestId (ARID token) from the Create API to determine the final auth outcome. Poll until the PRIMARY factor reaches a terminal status (SUCCESS or FAILED).
This is a server-to-server call. It requires your clientId and clientSecret headers. Confirm a successful login based on this response — not on the SDK callback alone.
The deviceFingerprinting block is enriched only if the OTPless Device Intelligence SDK is imported and initialized in your client app. If it isn’t, the field is omitted from the response — the rest of the auth status is unaffected.
Interpreting the result
For an SNA-only flow, read the PRIMARY factor’s status in auths[]:
auths[].status
Meaning
Action
PENDING
SNA is still in progress — the carrier verification callback has not yet been received.
Keep polling.
SUCCESS
Carrier verification completed and the SIM was verified. verifiedTimestamp is populated.
Log the user in and proceed with the journey.
FAILED
SNA could not be completed. An error object with errorCode and message is present.
Trigger an OTP fallback / retry flow.
Before auth is initialized you may receive an HTTP 400 with errorCode7170 (“Auth not started yet”). This is not terminal — if auth has been initiated, keep polling. A 7119 (“Invalid request Id”) means the requestId is malformed.Poll until the PRIMARY factor reaches a terminal status (SUCCESS or FAILED), or until the request expires — the expiry you set in the Create API bounds the request’s validity.
When auths[].status is FAILED, inspect auths[].error.errorCode to determine the failure and your fallback. See the full API Error Codes reference for the complete list of SP* codes and their messages.
Begin polling after initiating SNA on the client. Recommended strategy:
Parameter
Recommended value
Interval
1 – 2 seconds
Terminal states
SUCCESS or FAILED — stop polling immediately.
Timeout fallback
If still PENDING after your max attempts (bounded by expiry), treat as timeout and fall back to OTP.
An HTTP 400 with errorCode7170 is transient — it can appear briefly before auth initializes. Keep polling if auth was initiated; only 7119 indicates a malformed requestId.
IP and connection info for the two legs of the SNA flow.
Start leg — the network the user started on. Provided either as the root-level ip / ipType / operator fields or as the continue object. One of the two is present in the payload.
End leg — the network the carrier completed verification on. Provided as the callback object, always present once the telco reaches a terminal state.
Device risk and context signals. Enriched only if the OTPless Device Intelligence SDK is imported and initialized in the client app; otherwise this field is omitted.
Show child attributes
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"OTPLESS","colors":{"primary":"#2759CD","light":"#8DB0FB","dark":"#113997"},"logo":{"light":"https://mintcdn.com/otpless-96/_aEz_FhlLI0izHsE/logo/otpless-dark.svg?fit=max\u0026auto=format\u0026n=_aEz_FhlLI0izHsE\u0026q=85\u0026s=c211521d204eaa2c4148109d50d19edd","dark":"https://mintcdn.com/otpless-96/_aEz_FhlLI0izHsE/logo/otpless-light.svg?fit=max\u0026auto=format\u0026n=_aEz_FhlLI0izHsE\u0026q=85\u0026s=3fd27e254b68526fa18064c62467b18a","href":"https://otpless.com/"},"favicon":"https://mintcdn.com/otpless-96/_aEz_FhlLI0izHsE/favicon.svg?fit=max\u0026auto=format\u0026n=_aEz_FhlLI0izHsE\u0026q=85\u0026s=b0f8f3a3e4b70cf463375510df120336","background":{"image":"https://mintcdn.com/otpless-96/MG5MLCTUP00EUtvA/images/background-documentation-min.png?fit=max\u0026auto=format\u0026n=MG5MLCTUP00EUtvA\u0026q=85\u0026s=c85d6a33e17f625c33c28433c7a595cf","color":{"light":"#F9F9F9","dark":"#0c101f"}},"navbar":{"links":[{"href":"https://otpless.com/support","label":"Contact Support"}],"primary":{"type":"button","label":"Sign in","href":"https://otpless.com/dashboard"}},"footer":{"socials":{"x":"https://x.com/otpless","github":"https://github.com/orgs/otpless-tech/repositories","linkedin":"https://www.linkedin.com/company/otpless"}},"seo":{"indexing":"all"},"contextual":{"options":["copy","view","chatgpt","claude","mcp"],"display":"header"},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"otpless-96","hasAudioNarration":false,"actualSubdomain":"otpless-96","customDomains":["otpless.com"],"gitSource":{"type":"github","owner":"otpless-tech","repo":"mintlify-docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6adb487a7ebcfcb7ce77c284","collectionId":"615c67d8-2ad1-47c5-9b47-83eedd597d3a","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6adb487a7ebcfcb7ce77c284"},"feedback":{"thumbs":false,"issues":true},"entitlements":{"AI_CHAT":{"status":"DISABLED"}},"buildId":"6adb487a7ebcfcb7ce77c284","clientVersion":"0.0.3971","searchFilterCounts":[{"language":"default","tag":"Frontend SDKs","count":77},{"language":"default","tag":"References","count":61},{"language":"default","tag":"Native/Mobile SDKs","count":51},{"language":"default","tag":"Web SDKs","count":20},{"language":"default","tag":"Android","count":14},{"language":"default","tag":"Server-Initiated Auth","count":12},{"language":"default","tag":"SDK based Integration","count":12},{"language":"default","tag":"Ionic","count":10},{"language":"default","tag":"Silent Network Auth","count":9},{"language":"default","tag":"SNA-SDK based Integration","count":9}]},"assistantConfig":{"enableStarterQuestions":true,"enableContextualStarterQuestions":true,"deflection":{"enabled":true,"email":"help@otpless.com"}},"basePath":"/docs","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-v7-file-tree","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"pause-universal-search-reconcile","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"per-site-search-delta","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-private-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-nav-generations","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-agent-model-picker","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"isAtlas":false,"googleFontsInlined":false},"customCss":[{"filePath":"button_style.css","content":".activate-button{display:inline-block;padding:10px 20px;font-size:14px;font-weight:400;color:#fff;border-radius:4px;text-decoration:none;text-align:center;transition:all .3s ease;cursor:pointer;background:#113997}.activate-button p{margin:0}.activate-button:focus,.activate-button:hover{background-color:#113997e1;color:#fff;text-decoration:none;cursor:pointer}.activate-button:active{background-color:#0a3495;box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}"}],"page":{"pagePath":"sna/status-check-api","slug":"/sna/status-check-api","pageMetadata":{"title":"Status Check API","sidebarTitle":"Status Check API","description":"Poll the current auth status for a requestId. Returns the SNA auth factor plus phone, SIM, network, and device-fingerprinting detail when available.","openapi":"sna/sna-sdk-api.yaml GET /auth/v2/status","href":"/sna/status-check-api"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Poll the current auth status for a requestId. Returns the SNA auth factor plus phone, SIM, network, and device-fingerprinting detail when available.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,p:`p`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,..._provideComponents(),...props.components},{Accordion,Heading,Note,Table,Warning}=_components;if(!Accordion)_missingMdxReference(`Accordion`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Note)_missingMdxReference(`Note`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`The Status Check API is the `,_jsx(_components.strong,{children:`authoritative source of truth`}),` for the SNA-only flow. Your backend polls it with the `,_jsx(_components.code,{children:`requestId`}),` (ARID token) from the `,_jsx(_components.a,{href:`/sna/create-api`,children:`Create API`}),` to determine the final auth outcome. Poll until the `,_jsx(_components.code,{children:`PRIMARY`}),` factor reaches a terminal status (`,_jsx(_components.code,{children:`SUCCESS`}),` or `,_jsx(_components.code,{children:`FAILED`}),`).`]}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[`This is a `,_jsx(_components.strong,{children:`server-to-server`}),` call. It requires your `,_jsx(_components.code,{children:`clientId`}),` and `,_jsx(_components.code,{children:`clientSecret`}),` headers. Confirm a successful login based on this response — not on the SDK callback alone.`]})}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[`The `,_jsx(_components.code,{children:`deviceFingerprinting`}),` block is enriched `,_jsx(_components.strong,{children:`only if the OTPless Device Intelligence SDK is imported and initialized`}),` in your client app. If it isn’t, the field is omitted from the response — the rest of the auth status is unaffected.`]})}),`\n`,_jsxs(Accordion,{title:`Interpreting the result`,id:`interpreting-the-result`,children:[_jsxs(_components.p,{children:[`For an SNA-only flow, read the `,_jsx(_components.code,{children:`PRIMARY`}),` factor’s `,_jsx(_components.code,{children:`status`}),` in `,_jsx(_components.code,{children:`auths[]`}),`:`]}),_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:_jsx(_components.code,{children:`auths[].status`})}),_jsx(_components.th,{children:`Meaning`}),_jsx(_components.th,{children:`Action`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`PENDING`})}),_jsx(_components.td,{children:`SNA is still in progress — the carrier verification callback has not yet been received.`}),_jsx(_components.td,{children:`Keep polling.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`SUCCESS`})}),_jsxs(_components.td,{children:[`Carrier verification completed and the SIM was verified. `,_jsx(_components.code,{children:`verifiedTimestamp`}),` is populated.`]}),_jsx(_components.td,{children:`Log the user in and proceed with the journey.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`FAILED`})}),_jsxs(_components.td,{children:[`SNA could not be completed. An `,_jsx(_components.code,{children:`error`}),` object with `,_jsx(_components.code,{children:`errorCode`}),` and `,_jsx(_components.code,{children:`message`}),` is present.`]}),_jsx(_components.td,{children:`Trigger an OTP fallback / retry flow.`})]})]})]}),_jsxs(_components.p,{children:[`Before auth is initialized you may receive an `,_jsx(_components.strong,{children:`HTTP 400`}),` with `,_jsx(_components.code,{children:`errorCode`}),` `,_jsx(_components.code,{children:`7170`}),` (“Auth not started yet”). This is `,_jsx(_components.strong,{children:`not`}),` terminal — if auth has been initiated, keep polling. A `,_jsx(_components.code,{children:`7119`}),` (“Invalid request Id”) means the `,_jsx(_components.code,{children:`requestId`}),` is malformed.`]}),_jsxs(_components.p,{children:[`Poll until the `,_jsx(_components.code,{children:`PRIMARY`}),` factor reaches a terminal status (`,_jsx(_components.code,{children:`SUCCESS`}),` or `,_jsx(_components.code,{children:`FAILED`}),`), or until the request expires — the `,_jsx(_components.code,{children:`expiry`}),` you set in the `,_jsx(_components.a,{href:`/sna/create-api`,children:`Create API`}),` bounds the request’s validity.`]})]}),`\n`,_jsx(Heading,{level:`2`,id:`sna-verification-error-codes`,children:`SNA verification error codes`}),`\n`,_jsxs(_components.p,{children:[`When `,_jsx(_components.code,{children:`auths[].status`}),` is `,_jsx(_components.code,{children:`FAILED`}),`, inspect `,_jsx(_components.code,{children:`auths[].error.errorCode`}),` to determine the failure and your fallback. See the full `,_jsx(_components.a,{href:`/sna/api-error-codes`,children:`API Error Codes`}),` reference for the complete list of `,_jsx(_components.code,{children:`SP*`}),` codes and their messages.`]}),`\n`,_jsx(Heading,{level:`2`,id:`polling-guidance`,children:`Polling guidance`}),`\n`,_jsx(_components.p,{children:`Begin polling after initiating SNA on the client. Recommended strategy:`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Parameter`}),_jsx(_components.th,{children:`Recommended value`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Interval`}),_jsx(_components.td,{children:`1 – 2 seconds`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Terminal states`}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`SUCCESS`}),` or `,_jsx(_components.code,{children:`FAILED`}),` — stop polling immediately.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Timeout fallback`}),_jsxs(_components.td,{children:[`If still `,_jsx(_components.code,{children:`PENDING`}),` after your max attempts (bounded by `,_jsx(_components.code,{children:`expiry`}),`), treat as timeout and fall back to OTP.`]})]})]})]}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[`An HTTP 400 with `,_jsx(_components.code,{children:`errorCode`}),` `,_jsx(_components.code,{children:`7170`}),` is transient — it can appear briefly before auth initializes. Keep polling if auth was initiated; only `,_jsx(_components.code,{children:`7119`}),` indicates a malformed `,_jsx(_components.code,{children:`requestId`}),`.`]})})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Status Check API","sidebarTitle":"Status Check API","description":"Poll the current auth status for a requestId. Returns the SNA auth factor plus phone, SIM, network, and device-fingerprinting detail when available.","openapi":"sna/sna-sdk-api.yaml GET /auth/v2/status","href":"/sna/status-check-api"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"SNA verification error codes","slug":"sna-verification-error-codes","depth":2,"children":[]},{"title":"Polling guidance","slug":"polling-guidance","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":["/docs/_mintlify/custom/otpless-96/b09595f2b6159bec/script.js"],"openApiReferenceData":{"operation":{"tags":["SNA"],"summary":"Status Check","description":"Poll the current auth status for a requestId. Returns the SNA auth factor plus phone, SIM, network, and device-fingerprinting detail when available.","operationId":"checkAuthStatus","parameters":["d3aaeeea-59d5-4a7e-839c-99595c1a9445"],"responses":{"200":"c688f7c5-5457-43b4-9a34-5d9ecc04b73b","400":"9dc57f0e-3ea9-4f90-8b41-edb4949fe4d5","401":"5f0fced7-7ea2-426f-8940-378a2b07f7e1"},"method":"get","type":"path","servers":["0963c013-e3fd-4989-b6d2-131c1f21b018"],"security":["474e13fa-cede-4f53-987d-5350dab1967b"],"path":"/auth/v2/status","baseUrlOptions":["https://auth.otpless.app"],"title":"Status Check","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"d3aaeeea-59d5-4a7e-839c-99595c1a9445":{"name":"requestId","in":"query","required":true,"schema":{"type":"string","example":"ARID_A1B2C3D4E5F6","isRequired":true,"description":"The ARID token (`requestId`) returned by POST /auth/v1/create.","uniqueKey":"","typeLabel":"string"},"description":"The ARID token (`requestId`) returned by POST /auth/v1/create."}},"responses":{"c688f7c5-5457-43b4-9a34-5d9ecc04b73b":{"description":"**HTTP 200** — Current auth status for the `requestId`. `auths[].status` is `PENDING`, `SUCCESS`, or `FAILED`.","content":{"application/json":{"schema":{"type":"object","properties":{"auths":{"type":"array","description":"Authentication factor(s) for the request. For SNA-only flows this contains the `PRIMARY` `SILENT_AUTH` factor.","items":{"type":"object","properties":{"identityType":{"type":"string","example":"MOBILE","description":"Type of identity verified. Always `MOBILE` for SNA.","uniqueKey":"auths.items.[INDEX].identityType","typeLabel":"string"},"identityValue":{"type":"string","example":"917069914791","description":"The phone number being verified, in E.164 format (without `+`).","uniqueKey":"auths.items.[INDEX].identityValue","typeLabel":"string"},"channel":{"type":"string","example":"SILENT_AUTH","description":"Auth channel. Always `SILENT_AUTH` for SNA flows.","uniqueKey":"auths.items.[INDEX].channel","typeLabel":"string"},"methods":{"type":"array","items":{"type":"string","uniqueKey":"auths.items.[INDEX].methods.items.[INDEX]","typeLabel":"string"},"example":["SILENT_AUTH"],"description":"List of auth methods used. Contains `SILENT_AUTH`.","uniqueKey":"auths.items.[INDEX].methods","typeLabel":"string[]"},"status":{"type":"string","enum":["SUCCESS","FAILED","PENDING"],"description":"Current status of this auth factor.","uniqueKey":"auths.items.[INDEX].status","typeLabel":"enum\u003cstring>"},"type":{"type":"string","enum":["PRIMARY","MFA"],"description":"Role of this auth step. `PRIMARY` for the main attempt.","uniqueKey":"auths.items.[INDEX].type","typeLabel":"enum\u003cstring>"},"verifiedTimestamp":{"type":"integer","format":"int64","example":1781091069000,"description":"Unix timestamp (ms) of successful verification. Present only when `status` is `SUCCESS`.","uniqueKey":"auths.items.[INDEX].verifiedTimestamp","typeLabel":"integer\u003cint64>"},"error":{"type":"object","description":"Error details for a failed auth factor. Present only when `status` is `FAILED`. See the full [Error Codes](/sna/error-codes) reference.","properties":{"errorCode":{"type":"string","example":"SP40005","description":"Machine-readable `SP`-prefixed error code (e.g. SP40005).","uniqueKey":"auths.items.[INDEX].error.errorCode","typeLabel":"string"},"message":{"type":"string","example":"Operator not supported","description":"Short, machine-oriented error message.","uniqueKey":"auths.items.[INDEX].error.message","typeLabel":"string"},"description":{"type":"string","example":"This operator is not supported for verification. Please try with a different network.","description":"User-friendly description suitable for showing to end users.","uniqueKey":"auths.items.[INDEX].error.description","typeLabel":"string"}},"uniqueKey":"auths.items.[INDEX].error","typeLabel":"object"}},"uniqueKey":"auths.items.[INDEX]","typeLabel":"object"},"uniqueKey":"auths","typeLabel":"object[]"},"derivedOperator":{"type":"string","example":"AIRTEL","description":"Best-guess active network operator, derived from IP and SIM signals (e.g. JIO, AIRTEL, VI).","uniqueKey":"derivedOperator","typeLabel":"string"},"phoneDetail":{"type":"object","description":"Phone number metadata.","properties":{"countryCode":{"type":"string","example":"91","description":"Country calling code (e.g. 91 for India).","uniqueKey":"phoneDetail.countryCode","typeLabel":"string"},"country":{"type":"string","example":"IN","description":"ISO 3166-1 alpha-2 country code.","uniqueKey":"phoneDetail.country","typeLabel":"string"},"type":{"type":"string","example":"MOBILE","description":"Line type. Always `MOBILE` for SNA.","uniqueKey":"phoneDetail.type","typeLabel":"string"},"homeOperator":{"type":"string","example":"VI","description":"Registered home operator of the SIM (from number portability data).","uniqueKey":"phoneDetail.homeOperator","typeLabel":"string"},"location":{"type":"string","example":"India","description":"Country name in English.","uniqueKey":"phoneDetail.location","typeLabel":"string"},"timeZones":{"type":"array","items":{"type":"string","uniqueKey":"phoneDetail.timeZones.items.[INDEX]","typeLabel":"string"},"example":["Asia/Calcutta"],"description":"IANA timezone identifiers for the phone's country.","uniqueKey":"phoneDetail.timeZones","typeLabel":"string[]"}},"uniqueKey":"phoneDetail","typeLabel":"object"},"simDetail":{"type":"object","description":"SIM / carrier detection from the network.","properties":{"operator":{"type":"string","example":"AIRTEL","description":"Detected active carrier from the network IP (e.g. JIO, AIRTEL, VI).","uniqueKey":"simDetail.operator","typeLabel":"string"},"mcc":{"type":"integer","example":405,"description":"Mobile Country Code of the detected network.","uniqueKey":"simDetail.mcc","typeLabel":"integer"},"mnc":{"type":"integer","example":51,"description":"Mobile Network Code of the detected network.","uniqueKey":"simDetail.mnc","typeLabel":"integer"}},"uniqueKey":"simDetail","typeLabel":"object"},"networkDetail":{"type":"object","description":"IP and connection info for the two legs of the SNA flow.\n\n- **Start leg** — the network the user started on. Provided either as the root-level `ip` / `ipType` / `operator` fields **or** as the `continue` object. **One of the two is present** in the payload.\n- **End leg** — the network the carrier completed verification on. Provided as the `callback` object, **always present once the telco reaches a terminal state**.\n","properties":{"ip":{"type":"string","example":"2401:4900:1c50:1a3b::1","description":"Start-leg client IP at time of SNA initiation. Present when the `continue` object is not.","uniqueKey":"networkDetail.ip","typeLabel":"string"},"ipType":{"type":"string","enum":["IPV4","IPV6"],"description":"IP version of the start-leg `ip`.","uniqueKey":"networkDetail.ipType","typeLabel":"enum\u003cstring>"},"operator":{"type":"string","example":"AIRTEL","description":"Operator resolved from the start-leg IP. Present when operator detection succeeds.","uniqueKey":"networkDetail.operator","typeLabel":"string"},"continue":{"type":"object","description":"Start-leg network details. An alternative to the root-level `ip` fields — one of the two is present.","properties":{"ip":{"type":"string","example":"2401:4900:aabb:f09e::68fa:fe37","description":"IP address for this leg.","uniqueKey":"networkDetail.continue.ip","typeLabel":"string"},"operator":{"type":"string","example":"AIRTEL","description":"Carrier resolved for this leg.","uniqueKey":"networkDetail.continue.operator","typeLabel":"string"},"userAgent":{"type":"string","example":"Chrome/147.0.0.0 Mobile Safari/537.36","description":"User-Agent header observed for this leg.","uniqueKey":"networkDetail.continue.userAgent","typeLabel":"string"}},"uniqueKey":"networkDetail.continue","typeLabel":"object"},"callback":{"type":"object","description":"End-leg network details from the carrier verification callback. Always present once the telco reaches a terminal state.","properties":{"ip":{"type":"string","example":"2401:4900:aabb:f09e::68fa:fe37","description":"IP address for this leg.","uniqueKey":"networkDetail.callback.ip","typeLabel":"string"},"operator":{"type":"string","example":"AIRTEL","description":"Carrier resolved for this leg.","uniqueKey":"networkDetail.callback.operator","typeLabel":"string"},"userAgent":{"type":"string","example":"Chrome/147.0.0.0 Mobile Safari/537.36","description":"User-Agent header observed for this leg.","uniqueKey":"networkDetail.callback.userAgent","typeLabel":"string"}},"uniqueKey":"networkDetail.callback","typeLabel":"object"}},"uniqueKey":"networkDetail","typeLabel":"object"},"deviceFingerprinting":{"type":"object","description":"Device risk and context signals. Enriched only if the OTPless Device Intelligence SDK is imported and initialized in the client app; otherwise this field is omitted.","properties":{"status":{"type":"string","enum":["SUCCESS","FAILED"],"description":"Fingerprinting result.","uniqueKey":"deviceFingerprinting.status","typeLabel":"enum\u003cstring>"},"sessionId":{"type":"string","format":"uuid","description":"Unique identifier for this fingerprinting session.","uniqueKey":"deviceFingerprinting.sessionId","typeLabel":"string\u003cuuid>"},"deviceId":{"type":"string","format":"uuid","description":"Stable identifier for the device across sessions.","uniqueKey":"deviceFingerprinting.deviceId","typeLabel":"string\u003cuuid>"},"newDevice":{"type":"boolean","description":"`true` if this is the first time this device has been seen.","uniqueKey":"deviceFingerprinting.newDevice","typeLabel":"boolean"},"riskAssessment":{"type":"object","description":"Risk scores and detection flags.","properties":{"sessionRiskLevel":{"type":"string","enum":["LOW","MEDIUM","HIGH"],"description":"Risk level for this session.","uniqueKey":"deviceFingerprinting.riskAssessment.sessionRiskLevel","typeLabel":"enum\u003cstring>"},"deviceRiskLevel":{"type":"string","enum":["LOW","MEDIUM","HIGH"],"description":"Risk level for this device.","uniqueKey":"deviceFingerprinting.riskAssessment.deviceRiskLevel","typeLabel":"enum\u003cstring>"},"sessionRiskScore":{"type":"integer","description":"Session risk score, 0–100. Higher = riskier.","uniqueKey":"deviceFingerprinting.riskAssessment.sessionRiskScore","typeLabel":"integer"},"deviceRiskScore":{"type":"integer","description":"Device risk score, 0–100. Higher = riskier.","uniqueKey":"deviceFingerprinting.riskAssessment.deviceRiskScore","typeLabel":"integer"},"ipFraudScore":{"type":"integer","description":"Fraud score for the client IP, 0–100.","uniqueKey":"deviceFingerprinting.riskAssessment.ipFraudScore","typeLabel":"integer"},"flags":{"type":"object","description":"Boolean detection flags. Availability of individual flags depends on platform and signal coverage.","properties":{"isVpn":{"type":"boolean","description":"Device is connected via a VPN.","uniqueKey":"deviceFingerprinting.riskAssessment.flags.isVpn","typeLabel":"boolean"},"isProxy":{"type":"boolean","description":"Device is connected via a proxy.","uniqueKey":"deviceFingerprinting.riskAssessment.flags.isProxy","typeLabel":"boolean"},"isTor":{"type":"boolean","description":"Device is connected via the Tor network.","uniqueKey":"deviceFingerprinting.riskAssessment.flags.isTor","typeLabel":"boolean"},"isEmulator":{"type":"boolean","description":"Device is an emulator or virtual device.","uniqueKey":"deviceFingerprinting.riskAssessment.flags.isEmulator","typeLabel":"boolean"},"isRooted":{"type":"boolean","description":"Device has been rooted (Android) or jailbroken (iOS).","uniqueKey":"deviceFingerprinting.riskAssessment.flags.isRooted","typeLabel":"boolean"},"isCloned":{"type":"boolean","description":"App is running in a cloned or parallel space environment.","uniqueKey":"deviceFingerprinting.riskAssessment.flags.isCloned","typeLabel":"boolean"},"isAppTampered":{"type":"boolean","description":"App binary has been modified or tampered with.","uniqueKey":"deviceFingerprinting.riskAssessment.flags.isAppTampered","typeLabel":"boolean"},"isGeoSpoofed":{"type":"boolean","description":"Device location appears to be spoofed.","uniqueKey":"deviceFingerprinting.riskAssessment.flags.isGeoSpoofed","typeLabel":"boolean"},"isMirroredScreen":{"type":"boolean","description":"Screen is being mirrored or cast to another device.","uniqueKey":"deviceFingerprinting.riskAssessment.flags.isMirroredScreen","typeLabel":"boolean"},"isHooking":{"type":"boolean","description":"Runtime hooking framework (e.g. Frida, Xposed) detected.","uniqueKey":"deviceFingerprinting.riskAssessment.flags.isHooking","typeLabel":"boolean"},"adbEnabled":{"type":"boolean","description":"Android Debug Bridge (ADB) is enabled on the device.","uniqueKey":"deviceFingerprinting.riskAssessment.flags.adbEnabled","typeLabel":"boolean"},"debuggingEnabled":{"type":"boolean","description":"Debugging mode is active on the device.","uniqueKey":"deviceFingerprinting.riskAssessment.flags.debuggingEnabled","typeLabel":"boolean"},"developerOptionsEnabled":{"type":"boolean","description":"Developer options are enabled in Android settings.","uniqueKey":"deviceFingerprinting.riskAssessment.flags.developerOptionsEnabled","typeLabel":"boolean"},"usbDebuggingEnabled":{"type":"boolean","description":"USB debugging is enabled.","uniqueKey":"deviceFingerprinting.riskAssessment.flags.usbDebuggingEnabled","typeLabel":"boolean"},"accessibilityEnabled":{"type":"boolean","description":"Accessibility services are active (potential overlay/bot risk).","uniqueKey":"deviceFingerprinting.riskAssessment.flags.accessibilityEnabled","typeLabel":"boolean"},"identifiersChanged":{"type":"boolean","description":"Device identifiers have changed since last seen.","uniqueKey":"deviceFingerprinting.riskAssessment.flags.identifiersChanged","typeLabel":"boolean"},"onCall":{"type":"boolean","description":"Device is on an active phone call during auth.","uniqueKey":"deviceFingerprinting.riskAssessment.flags.onCall","typeLabel":"boolean"},"isOEMUnlockAllowed":{"type":"boolean","description":"OEM bootloader unlock is allowed on this device.","uniqueKey":"deviceFingerprinting.riskAssessment.flags.isOEMUnlockAllowed","typeLabel":"boolean"},"googlePlayStoreInstall":{"type":"boolean","description":"App was installed from the Google Play Store.","uniqueKey":"deviceFingerprinting.riskAssessment.flags.googlePlayStoreInstall","typeLabel":"boolean"},"debuggerAttached":{"type":"boolean","description":"A debugger is currently attached to the app process.","uniqueKey":"deviceFingerprinting.riskAssessment.flags.debuggerAttached","typeLabel":"boolean"},"wirelessDebugging":{"type":"boolean","description":"Wireless ADB debugging is enabled.","uniqueKey":"deviceFingerprinting.riskAssessment.flags.wirelessDebugging","typeLabel":"boolean"},"usbConnected":{"type":"boolean","description":"Device is connected to a computer via USB.","uniqueKey":"deviceFingerprinting.riskAssessment.flags.usbConnected","typeLabel":"boolean"},"isIpProxy":{"type":"boolean","description":"Client IP is flagged as a known proxy address.","uniqueKey":"deviceFingerprinting.riskAssessment.flags.isIpProxy","typeLabel":"boolean"},"isIpVpn":{"type":"boolean","description":"Client IP is flagged as a known VPN exit node.","uniqueKey":"deviceFingerprinting.riskAssessment.flags.isIpVpn","typeLabel":"boolean"}},"uniqueKey":"deviceFingerprinting.riskAssessment.flags","typeLabel":"object"}},"uniqueKey":"deviceFingerprinting.riskAssessment","typeLabel":"object"},"deviceContext":{"type":"object","description":"Hardware and OS context.","properties":{"brand":{"type":"string","example":"iQOO","description":"Device manufacturer brand (e.g. iQOO, Samsung, Apple).","uniqueKey":"deviceFingerprinting.deviceContext.brand","typeLabel":"string"},"model":{"type":"string","example":"I2410","description":"Device model identifier.","uniqueKey":"deviceFingerprinting.deviceContext.model","typeLabel":"string"},"product":{"type":"string","description":"Product/SKU variant name.","uniqueKey":"deviceFingerprinting.deviceContext.product","typeLabel":"string"},"os":{"type":"string","example":"Android","description":"Operating system: Android or iOS.","uniqueKey":"deviceFingerprinting.deviceContext.os","typeLabel":"string"},"osVersion":{"type":"string","example":"16","description":"OS version string.","uniqueKey":"deviceFingerprinting.deviceContext.osVersion","typeLabel":"string"},"cpuType":{"type":"string","description":"CPU chipset model.","uniqueKey":"deviceFingerprinting.deviceContext.cpuType","typeLabel":"string"},"screenResolution":{"type":"string","description":"Screen resolution in WxH pixels.","uniqueKey":"deviceFingerprinting.deviceContext.screenResolution","typeLabel":"string"},"totalRamBytes":{"type":"integer","format":"int64","description":"Total physical RAM in bytes.","uniqueKey":"deviceFingerprinting.deviceContext.totalRamBytes","typeLabel":"integer\u003cint64>"},"storage":{"type":"object","properties":{"totalBytes":{"type":"integer","format":"int64","description":"Total internal storage capacity in bytes.","uniqueKey":"deviceFingerprinting.deviceContext.storage.totalBytes","typeLabel":"integer\u003cint64>"},"availableBytes":{"type":"integer","format":"int64","description":"Available (free) internal storage in bytes.","uniqueKey":"deviceFingerprinting.deviceContext.storage.availableBytes","typeLabel":"integer\u003cint64>"}},"uniqueKey":"deviceFingerprinting.deviceContext.storage","typeLabel":"object"},"lifecycle":{"type":"object","properties":{"firstSeenAt":{"type":"integer","format":"int64","description":"Unix timestamp (ms) when this device was first observed by OTPless.","uniqueKey":"deviceFingerprinting.deviceContext.lifecycle.firstSeenAt","typeLabel":"integer\u003cint64>"},"firstSeenDays":{"type":"integer","description":"Number of days since the device was first seen.","uniqueKey":"deviceFingerprinting.deviceContext.lifecycle.firstSeenDays","typeLabel":"integer"},"factoryResetTime":{"type":"integer","format":"int64","description":"Unix timestamp (ms) of the last detected factory reset.","uniqueKey":"deviceFingerprinting.deviceContext.lifecycle.factoryResetTime","typeLabel":"integer\u003cint64>"}},"uniqueKey":"deviceFingerprinting.deviceContext.lifecycle","typeLabel":"object"},"simInfo":{"type":"object","properties":{"totalSimsUsed":{"type":"integer","description":"Total number of distinct SIMs ever used in this device.","uniqueKey":"deviceFingerprinting.deviceContext.simInfo.totalSimsUsed","typeLabel":"integer"},"activeSims":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer","description":"Internal SIM record identifier.","uniqueKey":"deviceFingerprinting.deviceContext.simInfo.activeSims.items.[INDEX].id","typeLabel":"integer"},"slotIndex":{"type":"integer","description":"Physical SIM slot index (0-based).","uniqueKey":"deviceFingerprinting.deviceContext.simInfo.activeSims.items.[INDEX].slotIndex","typeLabel":"integer"},"carrierName":{"type":"string","description":"Carrier name as reported by the SIM.","uniqueKey":"deviceFingerprinting.deviceContext.simInfo.activeSims.items.[INDEX].carrierName","typeLabel":"string"}},"uniqueKey":"deviceFingerprinting.deviceContext.simInfo.activeSims.items.[INDEX]","typeLabel":"object"},"uniqueKey":"deviceFingerprinting.deviceContext.simInfo.activeSims","typeLabel":"object[]"}},"uniqueKey":"deviceFingerprinting.deviceContext.simInfo","typeLabel":"object"}},"uniqueKey":"deviceFingerprinting.deviceContext","typeLabel":"object"},"networkContext":{"type":"object","description":"IP and location context from device fingerprinting.","properties":{"ipAddress":{"type":"string","example":"106.205.222.198","description":"Client IP address at time of fingerprinting.","uniqueKey":"deviceFingerprinting.networkContext.ipAddress","typeLabel":"string"},"ipType":{"type":"string","enum":["v4","v6"],"description":"IP version.","uniqueKey":"deviceFingerprinting.networkContext.ipType","typeLabel":"enum\u003cstring>"},"asn":{"type":"string","example":"45609","description":"Autonomous System Number of the IP.","uniqueKey":"deviceFingerprinting.networkContext.asn","typeLabel":"string"},"isp":{"type":"string","example":"Bharti Airtel Limited","description":"Internet Service Provider name.","uniqueKey":"deviceFingerprinting.networkContext.isp","typeLabel":"string"},"location":{"type":"object","properties":{"city":{"type":"string","description":"City resolved from the IP address.","uniqueKey":"deviceFingerprinting.networkContext.location.city","typeLabel":"string"},"region":{"type":"string","description":"State or region resolved from the IP address.","uniqueKey":"deviceFingerprinting.networkContext.location.region","typeLabel":"string"},"country":{"type":"string","description":"Country resolved from the IP address.","uniqueKey":"deviceFingerprinting.networkContext.location.country","typeLabel":"string"},"latitude":{"type":"number","description":"Latitude of the IP geolocation.","uniqueKey":"deviceFingerprinting.networkContext.location.latitude","typeLabel":"number"},"longitude":{"type":"number","description":"Longitude of the IP geolocation.","uniqueKey":"deviceFingerprinting.networkContext.location.longitude","typeLabel":"number"}},"uniqueKey":"deviceFingerprinting.networkContext.location","typeLabel":"object"}},"uniqueKey":"deviceFingerprinting.networkContext","typeLabel":"object"}},"uniqueKey":"deviceFingerprinting","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"pending":{"title":"pending","value":{"auths":[{"identityType":"MOBILE","identityValue":"917069914791","channel":"SILENT_AUTH","methods":["SILENT_AUTH"],"status":"PENDING","type":"PRIMARY"}],"derivedOperator":"AIRTEL","phoneDetail":{"countryCode":"91","country":"IN","type":"MOBILE","homeOperator":"VI","location":"India","timeZones":["Asia/Calcutta"]},"simDetail":{"operator":"AIRTEL","mcc":405,"mnc":51},"networkDetail":{"ip":"2401:4900:1c50:1a3b::1","ipType":"IPV6","operator":"AIRTEL"},"deviceFingerprinting":{"status":"SUCCESS","sessionId":"a98ead44-f4db-4801-8c3f-041f98140734","deviceId":"781b21f7-220b-4f44-9155-6261f8564924","newDevice":false,"riskAssessment":{"sessionRiskLevel":"HIGH","deviceRiskLevel":"HIGH","sessionRiskScore":95,"deviceRiskScore":90,"ipFraudScore":0,"flags":{"isVpn":false,"isEmulator":false,"isAppTampered":true}},"deviceContext":{"brand":"iQOO","model":"I2410","os":"Android","osVersion":"16"},"networkContext":{"ipAddress":"106.205.222.198","ipType":"v4","asn":"45609","isp":"Bharti Airtel Limited"}}}},"success":{"title":"success","value":{"auths":[{"identityType":"MOBILE","identityValue":"917069914791","channel":"SILENT_AUTH","methods":["SILENT_AUTH"],"status":"SUCCESS","verifiedTimestamp":1781091069000,"type":"PRIMARY"}],"derivedOperator":"AIRTEL","phoneDetail":{"countryCode":"91","country":"IN","type":"MOBILE","homeOperator":"VI","location":"India","timeZones":["Asia/Calcutta"]},"simDetail":{"operator":"AIRTEL","mcc":405,"mnc":51},"networkDetail":{"ip":"2401:4900:1c50:1a3b::1","ipType":"IPV6","operator":"AIRTEL","callback":{"ip":"2401:4900:aabb:f09e::68fa:fe37","operator":"AIRTEL","userAgent":"Chrome/147.0.0.0 Mobile Safari/537.36"}},"deviceFingerprinting":{"status":"SUCCESS","sessionId":"a98ead44-f4db-4801-8c3f-041f98140734","deviceId":"781b21f7-220b-4f44-9155-6261f8564924","newDevice":false,"riskAssessment":{"sessionRiskLevel":"HIGH","deviceRiskLevel":"HIGH","sessionRiskScore":95,"deviceRiskScore":90,"ipFraudScore":0,"flags":{"isVpn":false,"isEmulator":false,"isAppTampered":true}},"deviceContext":{"brand":"iQOO","model":"I2410","os":"Android","osVersion":"16"},"networkContext":{"ipAddress":"106.205.222.198","ipType":"v4","asn":"45609","isp":"Bharti Airtel Limited"}}}},"failed":{"title":"failed","value":{"auths":[{"identityType":"MOBILE","identityValue":"917069914791","channel":"SILENT_AUTH","methods":["SILENT_AUTH"],"status":"FAILED","type":"PRIMARY","error":{"errorCode":"SP40005","message":"Operator not supported","description":"This operator is not supported for verification. Please try with a different network."}}],"derivedOperator":"JIO","phoneDetail":{"countryCode":"91","country":"IN","type":"MOBILE","homeOperator":"VI","location":"India","timeZones":["Asia/Calcutta"]},"simDetail":{"operator":"JIO","mcc":405,"mnc":872},"networkDetail":{"ip":"49.204.148.177","ipType":"IPV4"},"deviceFingerprinting":{"status":"SUCCESS","sessionId":"a98ead44-f4db-4801-8c3f-041f98140734","deviceId":"781b21f7-220b-4f44-9155-6261f8564924","newDevice":false,"riskAssessment":{"sessionRiskLevel":"HIGH","deviceRiskLevel":"HIGH","sessionRiskScore":95,"deviceRiskScore":90,"ipFraudScore":0,"flags":{"isVpn":false,"isEmulator":false,"isAppTampered":true}},"deviceContext":{"brand":"iQOO","model":"I2410","os":"Android","osVersion":"16"},"networkContext":{"ipAddress":"49.204.148.177","ipType":"v4","asn":"45609","isp":"Reliance Jio Infocomm Limited"}}}}},"exampleType":"examples"}},"exampleType":"examples"},"9dc57f0e-3ea9-4f90-8b41-edb4949fe4d5":{"description":"**HTTP 400.** Request rejected. `7170` is not necessarily terminal — if auth has been initiated, keep polling.\n","content":{"application/json":{"schema":{"type":"object","description":"Error response body for HTTP 4xx responses.","properties":{"message":{"type":"string","example":"Invalid Request","uniqueKey":"message","typeLabel":"string"},"errorCode":{"type":"string","example":"7170","description":"Machine-readable error code.","uniqueKey":"errorCode","typeLabel":"string"},"description":{"type":"string","example":"Auth not started yet. Please initiate authentication first.","uniqueKey":"description","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"auth_not_started":{"title":"auth_not_started","value":{"message":"Invalid Request","errorCode":"7170","description":"Auth not started yet. Please initiate authentication first."}},"invalid_request_id":{"title":"invalid_request_id","value":{"message":"Invalid Request","errorCode":"7119","description":"Request error: Invalid request Id"}}},"exampleType":"examples"}},"exampleType":"examples"},"5f0fced7-7ea2-426f-8940-378a2b07f7e1":{"description":"**HTTP 401.** Unauthorized. `clientId`/`clientSecret` headers are missing, invalid, or the merchant is blocked.","content":{"application/json":{"schema":{"type":"object","description":"Error response body for HTTP 4xx responses.","properties":{"message":{"type":"string","example":"Invalid Request","uniqueKey":"message","typeLabel":"string"},"errorCode":{"type":"string","example":"7170","description":"Machine-readable error code.","uniqueKey":"errorCode","typeLabel":"string"},"description":{"type":"string","example":"Auth not started yet. Please initiate authentication first.","uniqueKey":"description","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"credentials_empty":{"title":"credentials_empty","value":{"message":"Access blocked","errorCode":"7012","description":"Authorization error: Merchant credentials are empty"}},"invalid_credentials":{"title":"invalid_credentials","value":{"message":"Access blocked","errorCode":"7002","description":"Authorization error: Invalid credentials"}},"merchant_blocked":{"title":"merchant_blocked","value":{"message":"Merchant Blocked","errorCode":"7019","description":"Your account has been temporarily Blocked. Please contact support for assistance."}}},"exampleType":"examples"}},"exampleType":"examples"}},"security":{"474e13fa-cede-4f53-987d-5350dab1967b":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"clientId","description":"OTPless API Client ID","scopes":[]},"ApiSecretAuth":{"type":"apiKey","in":"header","name":"clientSecret","description":"OTPless API Client Secret","scopes":[]}}},"servers":{"0963c013-e3fd-4989-b6d2-131c1f21b018":{"url":"https://auth.otpless.app","description":"Production server"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"apiKey","in":"header","name":"clientId","description":"OTPless API Client ID","scopes":[]},"schema":{"title":"clientId","type":"string","description":"OTPless API Client ID","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"ApiKeyAuth","name":"clientId"},{"scheme":{"type":"apiKey","in":"header","name":"clientSecret","description":"OTPless API Client Secret","scopes":[]},"schema":{"title":"clientSecret","type":"string","description":"OTPless API Client Secret","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"ApiSecretAuth","name":"clientSecret"}],"title":"ApiKeyAuth \u0026 ApiSecretAuth"}]},"originalFileLocation":"sna/sna-sdk-api.yaml"},"subdomain":"otpless-96","siteName":"OTPLESS","title":"Status Check API - OTPLESS","contextualStarterQuestions":[{"_id":"6a5159b3ae3ff331ddd4bf2e","deploymentId":"65507bb0b99260c1f65d01cc","questionText":"What does PENDING status mean?","status":"active","generatedBy":"contextual","path":"sna/status-check-api","createdAt":"2026-07-10T20:44:35.996Z","updatedAt":"2026-07-10T20:44:35.996Z","__v":0},{"_id":"6a5159b3ae3ff331ddd4bf2d","deploymentId":"65507bb0b99260c1f65d01cc","questionText":"How do I check auth status?","status":"active","generatedBy":"contextual","path":"sna/status-check-api","createdAt":"2026-07-10T20:44:35.996Z","updatedAt":"2026-07-10T20:44:35.996Z","__v":0},{"_id":"6a5159b3ae3ff331ddd4bf2f","deploymentId":"65507bb0b99260c1f65d01cc","questionText":"When should I retry polling?","status":"active","generatedBy":"contextual","path":"sna/status-check-api","createdAt":"2026-07-10T20:44:35.996Z","updatedAt":"2026-07-10T20:44:35.996Z","__v":0}],"navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-06-25T19:46:25.958Z","originalFileLocation":"sna/status-check-api.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Poll the current auth status for a requestId. Returns the SNA auth factor plus phone, SIM, network, and device-fingerprinting detail when available.\">\u003cmeta data-mint-head name=\"application-name\" content=\"OTPLESS\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/docs/mintlify-assets/_mintlify/favicons/otpless-96/4ecEfjOYTKC7Ncnz/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/docs/mintlify-assets/_mintlify/favicons/otpless-96/4ecEfjOYTKC7Ncnz/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/docs/mintlify-assets/_mintlify/favicons/otpless-96/4ecEfjOYTKC7Ncnz/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/docs/mintlify-assets/_mintlify/favicons/otpless-96/4ecEfjOYTKC7Ncnz/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/docs/mintlify-assets/_mintlify/favicons/otpless-96/4ecEfjOYTKC7Ncnz/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/docs/mintlify-assets/_mintlify/favicons/otpless-96/4ecEfjOYTKC7Ncnz/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/docs/mintlify-assets/_mintlify/favicons/otpless-96/4ecEfjOYTKC7Ncnz/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/docs/mintlify-assets/_mintlify/favicons/otpless-96/4ecEfjOYTKC7Ncnz/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/docs/mintlify-assets/_mintlify/favicons/otpless-96/4ecEfjOYTKC7Ncnz/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Status Check API - OTPLESS\">\u003cmeta data-mint-head property=\"og:description\" content=\"Poll the current auth status for a requestId. Returns the SNA auth factor plus phone, SIM, network, and device-fingerprinting detail when available.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"OTPLESS\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://otpless.com/docs/sna/status-check-api\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://otpless-96.mintlify.app/_mintlify/api/og/v2?division=SNA-SDK+based+Integration\u0026amp;title=Status+Check+API\u0026amp;description=Poll+the+current+auth+status+for+a+requestId.+Returns+the+SNA+auth+factor+plus+phone%2C+SIM%2C+network%2C+and+device-fingerprinting+detail+when+available.\u0026amp;theme=7f8688bffaa68a7d5c144e80\u0026amp;signature=5bed91b94ce5c96d003d2378bda74ff84a573b23bf8a7236b776392a5f84f841\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Status Check API - OTPLESS\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Poll the current auth status for a requestId. Returns the SNA auth factor plus phone, SIM, network, and device-fingerprinting detail when available.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://otpless-96.mintlify.app/_mintlify/api/og/v2?division=SNA-SDK+based+Integration\u0026amp;title=Status+Check+API\u0026amp;description=Poll+the+current+auth+status+for+a+requestId.+Returns+the+SNA+auth+factor+plus+phone%2C+SIM%2C+network%2C+and+device-fingerprinting+detail+when+available.\u0026amp;theme=7f8688bffaa68a7d5c144e80\u0026amp;signature=5bed91b94ce5c96d003d2378bda74ff84a573b23bf8a7236b776392a5f84f841\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/docs/mintlify-assets/_mintlify/favicons/otpless-96/4ecEfjOYTKC7Ncnz/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"OTPLESS\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#2759CD\">\u003clink data-mint-head rel=\"canonical\" href=\"https://otpless.com/docs/sna/status-check-api\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/docs/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/docs/sna/status-check-api.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://otpless.com/#organization\",\"name\":\"OTPLESS\",\"url\":\"https://otpless.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/otpless-96/_aEz_FhlLI0izHsE/logo/otpless-dark.svg?fit=max\u0026auto=format\u0026n=_aEz_FhlLI0izHsE\u0026q=85\u0026s=c211521d204eaa2c4148109d50d19edd\"}},{\"@type\":\"WebSite\",\"@id\":\"https://otpless.com/docs#website\",\"name\":\"OTPLESS\",\"url\":\"https://otpless.com/docs\",\"publisher\":{\"@id\":\"https://otpless.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://otpless.com/docs/sna/status-check-api#webpage\",\"url\":\"https://otpless.com/docs/sna/status-check-api\",\"name\":\"Status Check API\",\"description\":\"Poll the current auth status for a requestId. Returns the SNA auth factor plus phone, SIM, network, and device-fingerprinting detail when available.\",\"dateModified\":\"2026-06-25T19:46:25.958Z\",\"isPartOf\":{\"@id\":\"https://otpless.com/docs#website\"},\"breadcrumb\":{\"@id\":\"https://otpless.com/docs/sna/status-check-api#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://otpless.com/docs/sna/status-check-api#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"SNA-SDK based Integration\",\"item\":\"https://otpless.com/docs/sna/overview\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Status Check API\",\"item\":\"https://otpless.com/docs/sna/status-check-api\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://otpless.com/docs/sna/status-check-api#apireference\",\"headline\":\"Status Check API\",\"name\":\"Status Check API\",\"description\":\"Poll the current auth status for a requestId. Returns the SNA auth factor plus phone, SIM, network, and device-fingerprinting detail when available.\",\"url\":\"https://otpless.com/docs/sna/status-check-api\",\"mainEntityOfPage\":{\"@id\":\"https://otpless.com/docs/sna/status-check-api#webpage\"},\"dateModified\":\"2026-06-25T19:46:25.958Z\",\"publisher\":{\"@id\":\"https://otpless.com/#organization\"},\"isPartOf\":{\"@id\":\"https://otpless.com/docs#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"OTPLESS\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"OTPLESS","nav":{"global":null,"tabs":[{"tab":"Home","pages":[{"title":"Home","href":"/introduction"}]},{"tab":"Frontend SDKs","pages":[{"title":"Frontend SDKs","href":"/quick-start"}]},{"tab":"API Reference","pages":[{"title":"API Reference","href":"/api-reference/introduction"}]},{"tab":"Server-Initiated Auth","pages":[{"title":"Server-Initiated Auth","href":"/server-initiated-auth/overview"}]},{"tab":"Silent Network Auth","groups":[{"group":"SNA-SDK based Integration","pages":[{"title":"Overview","sidebarTitle":"Overview","icon":"book-open","href":"/sna/overview"},{"title":"Android SDK","sidebarTitle":"Android SDK","icon":"android","mode":"wide","href":"/sna/android-sdk"},{"title":"iOS SDK","sidebarTitle":"iOS SDK","icon":"apple","mode":"wide","href":"/sna/ios-sdk"},{"title":"React Native SDK","sidebarTitle":"React Native SDK","icon":"react","mode":"wide","href":"/sna/react-native-sdk"},{"title":"Flutter SDK","sidebarTitle":"Flutter SDK","icon":"flutter","mode":"wide","href":"/sna/flutter-sdk"},{"title":"SDK Error Codes","sidebarTitle":"SDK Error Codes","icon":"mobile","href":"/sna/sdk-error-codes"},{"title":"Create API","sidebarTitle":"Create API","description":"Create an auth request and obtain a requestId that links a user's identity to a future SNA flow. Called server-to-server.","openapi":"sna/sna-sdk-api.yaml POST /auth/v1/create","href":"/sna/create-api"},{"title":"Status Check API","sidebarTitle":"Status Check API","openapi":"sna/sna-sdk-api.yaml GET /auth/v2/status","href":"/sna/status-check-api"},{"title":"API Error Codes","sidebarTitle":"API Error Codes","icon":"triangle-exclamation","description":"Reference for all SNA verification error codes returned in auths[].error.errorCode by the Status Check API.","href":"/sna/api-error-codes"}]}]},{"tab":"Device Fingerprint","pages":[{"title":"Device Fingerprint","href":"/device-fingerprint/overview"}]},{"tab":"Resources","hidden":true}]},"title":"Status Check API - OTPLESS","buildId":"dpl_GvhK4qVXq51DpfYJLCtPpYNN4YHN","deploymentId":"dpl_GvhK4qVXq51DpfYJLCtPpYNN4YHN","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-Bg4Z7D_G.js","utils-Biz734EK.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-C6F9YHs6.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-BoJjY_VP.js","snippetPresets-CnZ-mOFh.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-DC_SB2pp.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-BYKtOiIP.js","shallow-COAac_UD.js","getApiPlaygroundDisplay-BV4Viqi2.js","CodeSnippet-DDgW-JXl.js","CodeSnippets-CP1LpNhG.js","Page-BeiUfucV.js","getPastedJson-Cvgvbfmv.js","icon-D-H368xH.js","MethodPill-CXSxH1VW.js","DuplicateIcon-JcbBzF1x.js","createIcon-BDt_aHZM.js","DynamicMarkdown-DO1Fz7ar.js","SectionHeading-mwKBArs3.js","axios-vUo_bRtp.js","Markdown-C3KUTGJN.js","clsx-C6CAjViH.js","lib--scc4DXi.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-C3vb5JQZ.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-C8Hisf3g.js"]}