auth.v1.MFAService
FinishPasskeyEnrollment
Finish passkey enrollment.
Request
curl --request POST \ \
--url 'https://api.testnet.polyester.com/auth.v1.MFAService/FinishPasskeyEnrollment' \
--header 'Content-Type: application/json' \
--header 'Connect-Protocol-Version: 1' \
--data '{
"credential": {
"id": "credential-example",
"response": {
"clientDataJSON": "ZXhhbXBsZS1jbGllbnQtZGF0YQ"
},
"type": "public-key"
},
"enrollmentId": "mfa_22222222222222222222222222222222"
}'Responses
{
"accessToken": "eyJhbGciOiJFZERTQSJ9.example.signature",
"accessTokenExpiresAt": "2025-01-01T00:00:00Z",
"factor": {
"createdAt": "2025-01-01T00:00:00Z",
"factorId": "mfa_33333333333333333333333333333333",
"factorType": "MFA_FACTOR_TYPE_TOTP",
"label": "Primary Authenticator",
"lastUsedAt": "2025-01-01T00:00:00Z"
},
"recoveryCodes": [
"POLY-7H2K-9M4Q"
],
"session": {
"authTime": "2025-01-01T00:00:00Z",
"authenticationMethods": [
"totp"
],
"sessionId": "session_01J0EXAMPLE",
"sessionLevel": "PRIMARY_AUTHENTICATED"
}
}auth.v1.FinishPasskeyEnrollmentRequestauth.v1.FinishPasskeyEnrollmentResponseEnrollment challenge identifier returned by BeginPasskeyEnrollment.
Unordered map of dynamically typed values.
MFA factor identifier. Format: "mfa_" followed by 32 lowercase hex characters.
Type of enrolled factor.
Human-friendly label for the factor. Empty when no label is set.
Time when the factor was enrolled.
Time when the factor was last used. Empty if the factor has not been used.
One-time recovery codes generated for the account. Store these securely; they are only returned in this response.
Stable session identifier shared by the primary and MFA-elevated tokens.
Assurance level represented by this session response.
Authentication methods used for this session state, such as wallet, TOTP, passkey, or recovery code. Maximum 8 unique values.
Time when the session was authenticated or elevated.
MFA-elevated session token issued after successful enrollment.
Time when access_token expires.
| Key | HTTP status | Connect code | Error | When |
|---|---|---|---|---|
| unauthenticated | 401 | unauthenticated | Unauthenticated | Authentication required. |
| permission-denied | 403 | permission_denied | Permission Denied | Permission denied. |
| invalid-argument | 400 | invalid_argument | Invalid Argument | Invalid argument. |
| not-found | 404 | not_found | Not Found | Not found. |
| unavailable | 503 | unavailable | Unavailable | Service unavailable. |