Partner 2FA / Start enrollment
/v1/identities/enrollCreates an enrollment session and returns enrollmentUrl (present as a QR). Poll until completed, then authenticate.
Bearer clientId:clientSecret — Server secret required.
Content-Type: application/json · required
externalUserIdstringrequiredprojectIdstring (uuid)requiredreturnUrlstringnullable201 Enrollment session created
enrollmentIdstringrequiredenrollmentUrlstringrequiredexpiresInintegerrequiredidentityIdstringrequiredpollUrlstringrequiredstatusstringrequired409 Already enrolled
detailsobjecterrorstringrequiredmessagestringrequired| Error | HTTP | Meaning | Fix |
|---|---|---|---|
already_enrolled | 409 | Identity already enrolled | Call get status; use authentication challenge instead Diagnose → |
invalid_return_url | 400 | returnUrl origin does not match project callback | Align returnUrl origin with project callback URL Diagnose → |
@keyra/typescript-sdk: enable2FA(externalUserId, { returnUrl? }) (SDK exposes enrollmentUrl as qrCode)ie.keyra:keyra-java-sdk: enable2FA(externalUserId)curl -X POST "https://auth.keyra.ie/v1/identities/enroll" \
-H "Authorization: Bearer CLIENT_ID:CLIENT_SECRET" \
-H "Content-Type: application/json" \
-d '{"projectId":"11111111-1111-1111-1111-111111111111","externalUserId":"user_12345"}'Response
{
"enrollmentId": "string",
"enrollmentUrl": "string",
"expiresIn": 0,
"identityId": "string",
"pollUrl": "string",
"status": "string"
}