BWS Enroll Web API Documentation

GET https://{bws-instance}.bioid.com/extension/enroll

Performs a biometric enrollment (or training) of the user with the uploaded samples that are associated with the token provided for authorization.

The Biometric Class ID (BCID) of the user to be enrolled is specified by the BWS token and the samples to be enrolled are those that have previously uploaded (see BWS Upload Web API) using the same token that has been used for the authorization of this call.

The samples are fetched from the BWS storage (and removed from the storage so that they cannot be used for any other purpose), sent to the live data detection procedure and finally, if the live detection determined that the given data is live data (or live detection is switched off), transferred to the enrollment procedure.

Request Information

Parameters

livedetection
Optional, defaults to the setting in the BWS Token. A boolean parameter to explicitely switch on live data detection.
When set to true or when the provided BWS token requires live-detection, the operation typically fails as soon as it cannot undoubtedly determine that the given data is live data. Note that for live-detetcion to work, at least two samples need to be uploaded.
No live data detection will be performed if the token does not require live-detection and this flag is set to false (the default).

Authentication

This API call requires BWS Token Authentication, i.e. you have to provide an HTTP authorization header using the authorization method Bearer (for compatibility issues you can also use the JWT identifier) and a previously issued BWS token, which can be requested using the BWS Token Web API.

Response Information

The Enroll Web API returns an EnrollResult object, that contains the flag Success that indicates whether the enrollment succeeded or not. In case that the enrollment failed, an Error is reported:

LiveDetectionFailed
The submitted samples do not prove that they are recorded from a live person.
ChallengeResponseFailed
The submitted samples do not prove that they are recorded from a live person as they do not fulfill the challenge-response criteria.
NotEnoughSamples
Not enough valid samples have been provided.
ExecutionOfJobTimedOut
Server seems to be too busy.

Response Body Format

Successful EnrollResult Sample:
{ 
  "Success": true, 
}
Failed EnrollResult Sample:
{ 
  "Success": false, 
  "Error": "LiveDetectionFailed"
}
Successful EnrollResult Sample
<EnrollResult xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/BioID.WebService.Controllers">
  <Success>true</Success>
</EnrollResult>
Failed EnrollResult Sample
<EnrollResult xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/BioID.WebService.Controllers">
  <Success>false</Success>
  <Error>LiveDetectionFailed</Error>
</EnrollResult>

Response HTTP Status Codes

The call returns one of the standard HTTP status codes. With the success code (200) you receive the described EnrollResult object in the body text. With erroneous codes you typically get a Message field within the body text describing the error. The most commonly returned codes are:

200 OK
The response body contains the EnrollResult object.
400 Bad Request
No samples have been uploaded.
401 Unauthorized
No or an invalid authentication header has been specified. This call requires JWT Bearer Token Authentication. If a BWS token has been passed, this error typically indicates that the token has expired.
403 Forbidden
The provided token does not allow enrollment or the number of allowed enrollment attempts with this token is already exceeded.
500 Internal Server Error
A server side exception occurred.

Sample code

JQuery sample code to enroll the samples that have previously been uploaded using the same token:
var jqxhr = $.ajax({
  type: "GET",
  url: "https://bws.bioid.com/extension/enroll",
  headers: { "Authorization": "Bearer " + token }
}).done(function (data, textStatus, jqXHR) {
  if (data.Success) {
    console.log('enrollment succeeded');
  } else {
    console.log('enrollment failed', data.Error);
  }
});