Developers

Signals

iProov has introduced additional Signals in our validate call to provide more insights for our customers to provide a better understanding of what happened with an iProov transaction.

Below is a list of all signals we provide via validate call.

  • Transaction failed reason
  • Single face found
  • Return frame quality
  • Face consistency

Please reach out to the iProov team to enable these features

Transaction Failed reason

What does it do: Failed reason is a breakdown of:

  • face matching (Not applicable to capture enrol transactions) - If the face captured matches with the enrollment image, this value is true otherwise false.
  • anti-spoofing - When the anti-spoofing checks pass this value is true otherwise false. Our anti-spoofing checks that a real person is present, determined by either: GPA (Genuine Presence Assurance) using our patented flash technology that illuminates a user’s face with a random sequence of colours. Our LA (Liveness Assurance), the user positions their face within the oval to authenticate.
Enrol Endpoint POST https://<base_url>/api/v2/claim/enrol/validate
Description Enrol validate endpoint. Please find the documentation here
Signal JSON example "signals": {"anti_spoofing": {"passed": true}}

This indicates that the anti-spoofing tests passed successfully.

Verify Endpoint POST https://<base_url>/api/v2/claim/verify/validate
Description Enrol validate endpoint. Please find the documentation here
Signal JSON example ""signals": {"anti_spoofing": {"passed": false},"matching": {"passed": false}}

This indicates that the anti-spoofing and matching tests failed.

Single face found

What does it do: It will check if there is only a single face in the validate frame. The response is true if only a single face is detected in the validate frame and false if multiple faces.

Multiple faces do not fail transactions. Please reach out to the iProov team to enable failure for multiple faces.

This signal can be returned for both Enrol and Verify workflows.

Enrol Endpoint POST https://<base_url>/api/v2/claim/enrol/validate
Description Enrol validate endpoint. Please find the documentation here
Verify Endpoint POST https://<base_url>/api/v2/claim/verify/validate
Description Enrol validate endpoint. Please find the documentation here
Signal JSON example "signals": {"multiple_faces": {"single_face": {"found": true}}}

This indicates there was a single face in the validate frame.

Image Quality

What does it do: We provide signals on the quality of the validate image. We divide the image quality into three categories:

blur If the validate image is clear or blurry not_available/Good/Acceptable/Poor
pose If the face is out of position (like the edge of the frame) or the face is rotated on the yaw/roll/pitch axis. not_available/Good/Acceptable/Poor
lighting If the validate image is taken under good/bad lighting condition not_available/Good/Acceptable/Poor

not_available : When image quality data cannot be produced, for example, if the transaction fails prematurely, e.g. network error.

Enrol Endpoint POST https://<base_url>/api/v2/claim/enrol/validate
Description Enrol validate endpoint. Please find the documentation here
Verify Endpoint POST https://<base_url>/api/v2/claim/verify/validate
Description Enrol validate endpoint. Please find the documentation [here] (https://eu.rp.secure.iproov.me/docs.html#operation/userVerifyValidate)
Signal JSON example "signals": {"return_frame_quality": {"blur": "Good","pose": "Acceptable","lighting": "Good"}}

Face consistency (Express only)

What does it do: Face Consistency provides additional checks on whether it is still the same face from the start and the end of the iProov transaction. This feature is Express only.

How does it work It will check the first frame and the last frame of the iProov transaction and validate if they are the same face. The signal will respond with true if the face is the same from the first and last frame of the transaction and false if faces are different between the first and the last frames.

Enrol Endpoint POST https://<base_url>/api/v2/claim/enrol/validate
Description Enrol validate endpoint. Please find the documentation here
Signal JSON example "signals": {"multiple_faces": {"single_face": {"found": true},"face_consistent": {"passed": true}}}

This indicates that the face is consistent in the first and last frame.

Verify Endpoint POST https://<base_url>/api/v2/claim/verify/validate
Description Enrol validate endpoint. Please find the documentation here
Signal JSON example "signals": {"multiple_faces": {"single_face": {"found": true}}}

This indicates there was a single face in the validate frame.

A Complete Example

A complete example, from a sample Liveness (LA) transaction, including all the Signals.

{
    "passed": false,
    "token": "example_token",
    "type": "verify",
    "frame_available": true,
    "frame": "string",
    "assurance_type": "liveness",
    "signals": {
        "anti_spoofing": {
            "passed": true
        },
        "matching": {
            "passed": false
        },
        "multiple_faces": {
            "single_face": {
                "found": true
            },
            "face_consistent": {
                "passed": true
            }
        }
    },
    "return_frame_quality": {
        "blur": "Good",
        "pose": "Good",
        "lighting": "Good"
    }
}

Note: If a transaction fails immediately after launching sdk, anti-spoofing and matching is returned as null because of not enough information.