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. See the documentation. |
| 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 | Verify validate endpoint. See the documentation. |
| 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 & Verify | |
|---|---|
| Enrol Endpoint | POST https://<base_url>/api/v2/claim/enrol/validate |
| Enrol Docs | See the documentation. |
| Verify Endpoint | POST https://<base_url>/api/v2/claim/verify/validate |
| Verify Docs | See the documentation. |
| 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:
| Signal | Description | Possible values |
|---|---|---|
blur | Whether the validate image is clear or blurry | not_available / Good / Acceptable / Poor |
pose | Whether the face is out of position or rotated on the yaw/roll/pitch axis | not_available / Good / Acceptable / Poor |
lighting | Whether the validate image is taken under good or bad lighting conditions | 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 & Verify | |
|---|---|
| Enrol Endpoint | POST https://<base_url>/api/v2/claim/enrol/validate |
| Enrol Docs | See the documentation. |
| Verify Endpoint | POST https://<base_url>/api/v2/claim/verify/validate |
| Verify Docs | See the documentation. |
| 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 | See the documentation. |
| 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 | See the documentation. |
| 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.