1. Docs
  2. API Reference
  3. Remove one of the caller's second factors

Remove one of the caller's second factors

DELETE/v1/auth/mfa/factors/{id}

Removes one of the authenticated administrator's second factors by id and returns 204 No Content. Requires a valid step-up token in the x-mfa-step-up-token header (401 with mfa.step_up_required when absent, mfa.step_up_invalid when stale or another user's). Responds 404 when the factor does not exist or belongs to someone else. Writes user.mfa.factor.removed and emails the account holder.

Authentication

Bearer TokenAuthorization

JWT access token. Never send alongside X-API-Key: a request carrying both is refused.

Path Parameters

idstring Required

Headers

  • x-mfa-step-up-token required

    The step-up token `POST /v1/auth/mfa/step-up` returned, proving a second factor was answered moments ago for this administrator

Responses

Deletes the factor. Requires a fresh `X-Mfa-Step-Up-Token`, so a stolen session cannot quietly strip the second factor. The account holder is emailed afterwards.

application/json

  • errorApiErrorBodyDto*

application/json

  • errorApiErrorBodyDto*

application/json

  • errorApiErrorBodyDto*

application/json

  • errorApiErrorBodyDto*
Request
curl -X DELETE "https://auth.canopy-io.com/v1/auth/mfa/factors/value" \
  -H "x-mfa-step-up-token: value" \
  -H "Authorization: Bearer $CANOPY_TOKEN"
Response
HTTP/1.1 204 Deletes the factor. Requires a fresh `X-Mfa-Step-Up-Token`, so a stolen session cannot quietly strip the second factor. The account holder is emailed afterwards.

(empty body)
Related endpoints
GETList the caller's enrolled second factors
POSTBegin authenticator app enrollment
POSTComplete authenticator app enrollment
POSTBegin passkey enrollment
POSTComplete passkey enrollment
POSTProve a fresh second factor before a sensitive change
POSTBegin a passkey step-up
POSTComplete a passkey step-up
GETHow many recovery codes the caller has left
POSTRegenerate the caller's recovery codes
GETList the caller's remembered devices
DELETEForget every remembered device
DELETEForget one remembered device
Was this page helpful?

Tell us how we can improve this guide.