Initiate API contract for initiate+validate and
initiate+wait pattern
The initiate resource is launched by internal Verify components during a
runtime MFA challenge when the factor that is used supports the "initiate+validate"
or "initiate+wait" integration patterns.
status that indicates the success or failure of the MFA initiation and a
transaction identifier that is included on the subsequent "validate" or
"wait for result" requests. A sample request that is sent by Verify to the
initiate resource of the real-time webhook is illustrated in the following example.
Depending on the webhook configuration, this same payload can be sent directly to the target MFA
provider or transformed to an API client request that is acceptable to the target
provider.POST '/initiate' \
'Content-Type: application/json' \
'Accept: application/json' \
{
"capability": "<<factor capability name, e.g. totp>>",
"id": "<<factor or device identifier from external provider>>",
"attributes":
{
"username": "<<external MFA username>>"
}
}/initiate HTTP path in this example varies based on webhook
configuration.Initiate request details
| Element | Description |
|---|---|
| HTTP Request | POST |
| HTTP Header - Content-Type | The content type of the request payload is always
application/json. |
| HTTP Header - Accept | The content type that is expected of the response payload is always
application/json. |
| Payload | A JSON object that represents the token or pass value to be validated. The payload also identifies the user and their associated MFA enrollment or registration. |
id |
Mandatory. The unique identifier of the user's enrolled or registered MFA factor capability. |
capability |
Mandatory. The value is valid character string. It must match one the capabilities that are configured for the MFA provider that is associated with the webhook. |
attributes |
Mandatory. Request-specific additional attributes. |
attributes.username |
Mandatory. The name of a user in the external provider system for which MFA initiation is requested. |
initiate response
payload.{
"attributes": {
"<<any name>>": "<<any value>>"
},
"status": "SUCCESS",
"transactionId": "<<provider transaction identifier>>"
}Initiate response details
| Elements | Description |
|---|---|
| Payload type | A JSON object that represents MFA initiation attempt status. |
| HTTP status code | See HTTP Status. |
status |
Mandatory. The validation completion status. Valid values include
SUCCESS, PENDING, TIMEOUT,
CANCELED, and FAILEDNote: Returning a status of
SUCCESS to the Initiate call results in an error to the end user.
SUCCESS is not a valid Status for the Initiate call If the MFA provider supports OTP retry the 'status' must come back as 'PENDING'. |
transactionId |
Mandatory. Transaction or other MFA provider authentication challenge state handle. Used by the provider to correlate with any subsequent "validate" or "result poll" calls. |
attributes |
Optional. The additional attributes that are returned to the public Verify client that triggered the MFA challenge. Any attributes and values can be present. |