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.
Please reach out to the iProov team to enable these features
What does it do: Failed reason is a breakdown of:
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.
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.
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"}} |
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, 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.