Prove a fresh second factor before a sensitive change
/v1/auth/mfa/step-upPerforms an in-session step-up for the authenticated administrator by verifying a totp or recovery_code factor against their own enrolled factors, returning a sealed five-minute step_up_token that authorizes removing a factor, regenerating recovery codes or changing the email address. A recovery code used here is consumed. Distinct from the sign-in challenge: the caller already holds a session. Responds 401 (mfa.step_up_invalid) for a wrong code, and audits it. Rate-limited to 10 requests per minute.
Authentication
AuthorizationJWT access token. Never send alongside X-API-Key: a request carrying both is refused.
Request body
application/json
factorenum Required The factor type the caller is satisfying. WebAuthn step-up lands once WebAuthn factors are enrollable.
codestring Required A 6-digit TOTP code or a single-use recovery code (case + dash insensitive).
Responses
application/json
data *MfaStepUpResponseDto
application/json
error *ApiErrorBodyDto
application/json
error *ApiErrorBodyDto
application/json
error *ApiErrorBodyDto
application/json
error *ApiErrorBodyDto
application/json
error *ApiErrorBodyDto
Rate limit
Returned object
curl -X POST "https://auth.canopy-io.com/v1/auth/mfa/step-up" \ -H "Authorization: Bearer $CANOPY_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "factor": "totp", "code": "string" }'
{ "data": { "step_up_token": "string", "expires_at": "2026-04-20T12:00:00.000Z" } }
Tell us how we can improve this guide.