Mfa confirm
Requires the same live staff session that enrolled the factor. The factor is looked up by session user, not by a caller-supplied identity.
Request
Content type: application/json · required
| Field | Type | Required | Description |
|---|---|---|---|
user_id |
string | No | Optional legacy field; must match the session user |
factor_id |
string | Yes | — |
code |
string | Yes | — |
curl -X POST "$MONICHEK_API/auth/mfa/confirm" \
-H "Authorization: Bearer $MONICHEK_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"user_id": "id_01M3R...",
"factor_id": "id_01M3R...",
"code": "string"
}'const res = await fetch(`${MONICHEK_API}/auth/mfa/confirm`, {
method: "POST",
headers: {
Authorization: `Bearer ${MONICHEK_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
"user_id": "id_01M3R...",
"factor_id": "id_01M3R...",
"code": "string"
}),
});
const data = await res.json();import os
import requests
res = requests.post(
f"{os.environ['MONICHEK_API']}/auth/mfa/confirm",
headers={"Authorization": f"Bearer {os.environ['MONICHEK_API_KEY']}"},
json={
"user_id": "id_01M3R...",
"factor_id": "id_01M3R...",
"code": "string"
},
)
print(res.json())$ch = curl_init(getenv('MONICHEK_API') . '/auth/mfa/confirm');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . getenv('MONICHEK_API_KEY'),
'Content-Type: application/json',
],
CURLOPT_POSTFIELDS => json_encode([
'user_id' => 'id_01M3R...',
'factor_id' => 'id_01M3R...',
'code' => 'string',
]),
]);
$response = curl_exec($ch);
curl_close($ch);
echo $response;Responses
200 OK
enrolled
application/json
No response example is published for this status.
Error responses
| Status | Meaning | Body |
|---|---|---|
| 401 | Unauthorized | RFC 9457 problem |
| 403 | Forbidden | RFC 9457 problem |
| 409 | Conflict | RFC 9457 problem |
| 422 | Unprocessable Entity | RFC 9457 problem |
Errors use the RFC 9457 problem format with a stable code.