IBioIDWebService.Verify Method Documentation

Performs a one-to-one comparison of the given samples with the stored biometric templates in order to verify the individual is the person he or she claims to be.

[OperationContract]
[FaultContract(typeof(BioIDWebServiceFault)]
bool Verify( BiometricClassID classId, Sample [] samples,  ClassificationFlags flags, out string messages );
    

Parameters

classId
The BiometricClassID of the class, that shall be verified. A class with this ID must have been enrolled for the desired traits, before a verification can be performed against this class.
samples
The array of Samples to use for the verification. The array may contain samples of different traits.
flags
A combination of available ClassificationFlags.
messages
Returns an XML-string containing information about the verification process (see BWSMessages).

Returns true when the given classId could have been verified successfully with the given samples; false otherwise, or when errors occurred (see messages for details).

Remarks

A biometric verification tests the given samples against already stored samples (biometric templates) of the given classId. When this test shows that the new samples belong to the class, true is returned, false otherwise.

This method supports live detection (currently only for the face trait). To activate live detection, simply use the flag ClassificationFlags.LiveFaceDetection with the flags parameter. Note that in this case the verification will only succeed, when it can undoubtedly determine that the given data is live data. In case that the live detection for the face trait succeeds, the degree of the head rotation between two subsequent images is reported with the returned messages XML-string.

Additionally, verification supports the ClassificationFlags.AutoEnrollment flag that allows an automatic adaption of the template of a user by sending (asynchrounously) the submitted samples to the enroll operation in case that the verification succeeds.

Internally this operation performs a QualityCheck (in BioID ExtractTokenData mode) for all submitted samples before they are forwarded to the live detection - in case a live-detection flag is set - and finally the verification is performed. Therefore you might get results from these operations as well together with the verification results.

This API has a fault contract of type BioIDWebServiceFault which is used for fatal errors like invalid arguments or missing service, etc. Messages, even error messages, generated by the verification procedure are reported via the messages output value, which contains an XML string according to the BWSMessages schema namespace.

Faults

InvalidArgument
The given classId is null or no samples have been transmitted.
AccessDenied
Access to the requested service operation has been denied. Please ensure that you use a valid client authentication certificate and that this certificate has been announced to BioID GmbH as your client certificate.
NotSupported
The storage specified by classId is either not available or verification is not enabled for this storage or a feature has been requested (e.g. live-detection) that is not supported by this service instance.
InternalError
For some reason BioID is not running or not configured correctly on this BWS deployment.

Operation Error-codes

The messages output XML string might contain operation specific errors as follows:

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.
ExecutionOfJobTimedOut
The service could not process the requested task in a reasonable amount of time.
NotEnoughSamples
Not enough samples available for a specific trait to continue the verification. It seems that all samples for the trait have been removed for some reason.
NoTemplateAvailable
There is no template available for a specific trait for the given classId.

Sample Error-codes

The messages output XML string might also contain errors for the individual samples. Many of the errors can result from the initial quality-check that is performed before anything else is done. Please refer to the QualityCheck method for a list of sample errors that might have been generated by the quality-check.

Additionally the following errors can occur. With any of theses errors the sample is marked as unsuitable and is not considered in the verification process:

LiveDetectionFailed
The sample has been discarded as it cannot be proven that it has been recorded from a live person.
ChallengeResponseFailed
The sample has been discarded as it does not fulfill the challenge-response criteria.
IdenticalImages
The sample has been discarded as it is identical to the previous one.