User Two-factor Challenge Event

On this page

User Two Factor Challenge

Enterprise plan required

This feature requires an Enterprise plan.

Available since 1.68.0

This event is generated when a two-factor challenge is started (before the user submits a code).

Event type

user.two-factor.challenge

Event Scope

This is a tenant-scoped event.

It can be sent to all tenants or to one or more specified tenants. However, those tenants will not be sent events for other tenants, but only events related to themselves.

Transaction Compatibility

This event is non-transactional. The operation will succeed regardless of the webhook response status code.

Event Body

event.applicationId
  • Type: UUID

The unique Id of the Application for which the user has requested login. If the login request omits the applicationId or the user is not registered for the requested applicationId this value will not be returned in the event.

event.clientRisk
  • Type: String

The Intelligent MFA calculated client risk. The possible values are: LOW, MEDIUM, and HIGH.

event.createInstant
  • Type: Long

The instant that the event was generated.

event.id
  • Type: UUID

The unique Id of the event. You may receive an event more than once based upon your transaction settings. This Id may be used to identify a duplicate event.

event.method
  • Type: String

The MFA method used to complete the login request. The possible values are: authenticator, email, recoveryCode, and sms.

event.info.data
  • Type: Object

An object that can hold any information about the event that should be persisted.

event.info.deviceDescription
  • Type: String

The description of the device associated with the event.

event.info.deviceName
  • Type: String

The device name associated with the event.

event.info.deviceType
  • Type: String

The type of device associated with the event.

event.info.ipAddress
  • Type: String

The source IP address of the event.

event.info.location.city
  • Type: String

The city where the event originated.

Enterprise plan To use event location data, you'll need an Enterprise plan.

event.info.location.country
  • Type: String

The country where the event originated.

Enterprise plan To use event location data, you'll need an Enterprise plan.

event.info.location.latitude
  • Type: Double

The latitude where the event originated.

Enterprise plan To use event location data, you'll need an Enterprise plan.

event.info.location.longitude
  • Type: Double

The longitude where the event originated.

Enterprise plan To use event location data, you'll need an Enterprise plan.

event.info.location.region
  • Type: String

The geographic location where the event originated.

Enterprise plan To use event location data, you'll need an Enterprise plan.

event.info.location.zipcode
  • Type: String

The zip code where the event originated.

Enterprise plan To use event location data, you'll need an Enterprise plan.

event.info.os
  • Type: String

The operating system associated with the event.

event.info.userAgent
  • Type: String

The user agent associated with the event.

event.linkedObjectId
  • Type: UUID
  • Available since 1.53.0

The Id of the user related to this event.

event.tenantId
  • Type: UUID

The unique tenant identifier. This value may not be returned if not applicable.

event.type
  • Type: String

The event type, this value will always be {eventType}.

event.user
  • Type: Object

The user that completed the login request. See the Users API for property definitions and example JSON

Example Event JSON
{
  "event": {
    "applicationId": "134f7157-0252-4100-889e-8b3084b85660",
    "clientRisk": "MEDIUM",
    "createInstant": 1630383272048,
    "id": "0f2a3e31-d7c9-48dc-841a-b47ca4830773",
    "info": {
      "deviceName": "macOS Chrome",
      "deviceType": "BROWSER",
      "ipAddress": "127.0.0.1",
      "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 Safari/537.36"
    },
    "linkedObjectId": "afb7db63-2a73-4415-a7f1-b81a80ca4bea",
    "tenantId": "30663132-6464-6665-3032-326466613934",
    "type": "user.two-factor.challenge",
    "user": {
      "active": true,
      "birthDate": "1981-06-04",
      "connectorId": "e3306678-a53a-4964-9040-1c96f36dda72",
      "data": {
        "Company": "PiedPiper",
        "PreviousCompany": "Aviato",
        "user_type": "iconclast"
      },
      "email": "example@fusionauth.io",
      "firstName": "Erlich",
      "id": "00000000-0000-0000-0000-000000000001",
      "insertInstant": 1630083026349,
      "lastLoginInstant": 1630383233716,
      "lastName": "Bachman",
      "lastUpdateInstant": 1630083026349,
      "memberships": [],
      "passwordChangeRequired": false,
      "passwordLastUpdateInstant": 1630083026431,
      "preferredLanguages": [],
      "registrations": [],
      "tenantId": "30663132-6464-6665-3032-326466613934",
      "twoFactor": {
        "methods": [],
        "recoveryCodes": []
      },
      "usernameStatus": "ACTIVE",
      "verified": true
    }
  }
}