See api-docs Menu

Verify an Authentication Factor

Use this API to authenticate a one-time password (OTP) code provided by a multifactor authentication (MFA) device.

Use this endpoint to verify an OTP code provided by SMS, Email, or Authenticator.






Resource URL

https://<subdomain>/api/2/mfa/users/<user_id>/verifications/<verification_id>

Header Parameter

Authorization

required

string

Set to bearer:<access_token>.

Set <access_token> to the access token you generated using the Generate Token API.

The access token must have been generated using an API credential pair created using the scope required to call this API. This API can be called using the Manage All scope.

Resource Parameters

user_id

required

integer

Set to the id of the user.

If you don’t know the user’s id, use the Get Users API call to return all users and their id values.

verification_id

integer

The verification_id is returned on activation of the factor or you can get the device_id using the Activate Factor API call.

Note that you cannot currently use the verification_id to send an OTP from OneLogin Protect, as it expects a Push Authentication. See Verify a Factor Protect & Voice for more information.

To verify an authentication factor without the verification_id, the HTTPS method is POST.

Request Parameter

otp

string

OTP code provided by the device or SMS message sent to user.

device_id

integer

ID of the specified device which has been registerd for the given user. Available on Get Devices API call.

Request Body

For OneLogin Email and OneLogin SMS:

{
  "otp": "123456"
}

For Authenticator OTP:

{
  "otp": "123456",
  "device_id": "98765"
}

Sample Response

{
    "status": {
        "type": "success",
        "code": 200,
        "message": "Success",
        "error": false
    }
}
{
    "statusCode": 401,
    "name": "InvalidCredentials",
    "message": "Please provide valid credentials"
}
{
    "statusCode": 403,
    "name": "ForbiddenAction",
    "message": "You are not authorised to perform this action or access the resource"
}

Postman Collection

Run In Postman

    Clicking Run in Postman button navigates to the page where you can fork the collection to your workspace. Forking the collection into your workspace will enable you to contribute to the source collection using pull requests. You can also view the collection in a public workspace if you like and even import a copy of the collection using the links present on the screen.

Sample Code

cURL

Replace sample values indicated by < > with your actual values.

curl 'https://<subdomain>/api/2/mfa/users/<user_id>/verifications/<verification_id>' \
-X PUT \
-H "Authorization: bearer: <access_token>" \
-H "Content-Type: application/json" \
-d '{
  "otp":"123456"
}'

Have a Question?

Found a problem or a bug? Submit a support ticket.

Looking for walkthroughs or how-to guides on OneLogin's user and admin features? Check out the documentation in our Knowledge Base.

Have a product idea or request? Share it with us in our Ideas Portal.