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. The verification_id parameter required by the PUT verification method is not required when the HTTP method is POST.






Resource URL

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

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.

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

Replace sample variables indicated by {{ }} with your actual values.

Download for the MFA API

Sample Code

cURL

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

curl 'https://<subdomain>/api/2/mfa/users/<user_id>/verifications/' \
-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.