Skip to main content
POST
Call this endpoint after password login or session resumption returns status: "mfa_required". Send the vos_mfa_challenge cookie returned by the preceding request. Preserve it with a cookie jar for command-line or server clients. Browser clients must send requests from the authentication host origin. The cookie is HttpOnly and must be treated as an opaque credential. This endpoint does not require a Bearer JWT. The challenge response does not expose a session token or a challenge identifier to submit in the body. Send only method and code. Additional body fields are rejected. See the login procedure for a complete cURL example with cookie handling.

Successful verification

HTTP 200 returns status: "authenticated", sessionToken, jwt, session, identity, and tokenizedSession. Both session objects report authenticator_assurance_level: "aal2". The response clears the pending challenge cookie. Send jwt as Authorization: Bearer <jwt> to protected REST API endpoints. For password recovery, preserve all updated cookies and continue to the password-reset request after successful verification.

Error handling

Authorizations

vos_mfa_challenge
string
cookie
required

Pending two-factor challenge cookie returned by login or session resumption. Use a cookie jar; do not construct or modify its value.

Body

application/json

Second-factor method and code.

One second-factor proof. Choose a method listed in the challenge response.

method
enum<string>
required

Select authenticator-code verification. Must be available in the challenge methods.

Available options:
totp
code
string
required

Exactly six digits as a string, including any leading zeros.

Required string length: 6
Pattern: ^[0-9]{6}$
Example:

"012345"

Response

Two-factor authentication complete; JWT issued.

Completed authentication. The JWT is issued only after all required authentication factors pass.

status
enum<string>
required

Indicates that authentication is complete and the JWT can be used.

Available options:
authenticated
sessionToken
string
required

Account session token. Keep it confidential. Use it for session resumption; use jwt for REST API authorization.

jwt
string
required

Bearer JWT for protected REST API requests. Send it as Authorization: Bearer .

session
object
required

Active authenticated session.

identity
object | null
required

Account identity, or null if absent.

tokenizedSession
object
required

Authenticated session containing the JWT in tokenized.