Security enhancements to IP Vault and new Gemini 3.1 Flash Live STS model for Convo mode
curl --request POST \
--url https://pria.praxislxp.com/api/auth/mfa-resend \
--header 'Content-Type: application/json' \
--data '
{
"challengeId": "65f2c9a1d8e4b3c5a1234567"
}
'{
"success": true,
"challengeId": "65f2cabe1234e5f6a8765432",
"maskedEmail": "hu***@praxis-ai.com"
}Invalidates the current challenge and issues a fresh one with the same loginContext (so the verify step still lands you in the same branding / institution context). The new challenge has its own 5-min TTL and its own 5-attempt cap.
Cooldown: the previous challenge must be at least 30 seconds old before a Resend is allowed — prevents email-bombing.
Resend-driven invalidations (where the user never submitted a wrong code) do NOT count toward the per-account 5-burned-codes-in-1h lockout cap.
curl --request POST \
--url https://pria.praxislxp.com/api/auth/mfa-resend \
--header 'Content-Type: application/json' \
--data '
{
"challengeId": "65f2c9a1d8e4b3c5a1234567"
}
'{
"success": true,
"challengeId": "65f2cabe1234e5f6a8765432",
"maskedEmail": "hu***@praxis-ai.com"
}Documentation Index
Fetch the complete documentation index at: https://docs.praxis-ai.com/llms.txt
Use this file to discover all available pages before exploring further.
Opaque server-issued challenge identifier.
"65f2c9a1d8e4b3c5a1234567"
New code emailed; client must use the newly-returned challengeId for subsequent verify / resend / cancel calls.
Was this page helpful?