Active Liveness Verification✓
Our engine verifies the authenticity of a user through real-time, interactive actions to ensure they are physically present and not using static or spoofed images.
Overview
Active liveness check evaluates a face in an image to determine if it appears active, dynamic, or engaged. (An active face have a facial expression that conveys emotion or a sense of being present and involved in the moment, and might appear to be in motion or positioned in a way that suggests dynamism and energy.) This involves looking at features such as the facial expression, eye contact, movement, and lighting in the image to assess the level of energy or vitality conveyed by the face. It returns a response with details of the active features extracted from the image and the general confidence level determining whether the image is active of not.
Important!
Before you proceed, ensure you review the prerequisites for integrating to our APIs for a more detailed guide.
API Endpoint
https://api.verified.africa/sfx-v4-verify/v4/id-service
Headers
Our service accepts headers for authentication. See below the headers to pass to the API
Header | Type | Description |
---|---|---|
user ID | String | This is your user id retrieved from the portal. Check the getting started article to understand how to retrieve your user ID |
ApiKey | String | This is your api key retrieved from the portal. Check the getting started article to understand how to retrieve your apiKey |
Request Parameters
Parameter | Required | Description | Test Data |
---|---|---|---|
verificationType | yes | This field is used to identify the service being called. Ensure to use the value provided exactly as provided | ACTIVE-LIVELINESS-VERIFICATION |
selfie | yes | The selfie image | Base64 image |
{
"verificationType" : "ACTIVE-LIVELINESS-VERIFICATION",
"selfie": "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAASABIAAD/"
}
Response Parameters
Paremeter | Type | Description |
---|---|---|
responseCode | String | Please reference Response Codes page for details on all possible responses |
description | String | This is a description of the response received. |
verificationType | String | The same verificationType passed in request will be returned here |
verificationStatus | String | This field lets you know if the identity verification was successful. Options are: VERIFIED: This means that the image passed the active liveness check. NOT VERIFIED This means that the image did not pass active liveness check. PENDING This status means that the verification could not be completed. Refer to the responseCode for the specific failure reason |
transactionStatus | String | This indicates the wallet debit status. The options are successful or failed. |
transactionReference | String | If you supplied a transactionReference, the same will be returned here. Else, we would generate a reference and return that to you in this field. |
transactionDate | String | Date the transaction was done |
response | Json | boundingBox, ageRange, smile, eyeglasses, sunglasses, gender, beard, mustache, eyesOpen, mouthOpen, emotions, quality and confidence is retrieved from the service provider. A high confidence score shows the image is active and vice versa |
{
"responseCode": "00",
"description": "Success",
"verificationType": "ACTIVE-LIVELINESS-VERIFICATION",
"verificationStatus": "VERIFIED",
"transactionStatus": "SUCCESSFUL",
"transactionReference": "1628016393774-LFWBRJUS",
"transactionDate": "1680253863429",
"searchParameter": null,
"callBackUrl": null,
"livenessScore": 0.0,
"paymentRef": null,
"response": [
{
"boundingBox": {
"width": 0.2223877,
"height": 0.48005238,
"left": 0.3851756,
"top": 0.17001979
},
"ageRange": {
"low": 24,
"high": 34
},
"smile": {
"value": false,
"confidence": 93.75143
},
"eyeglasses": {
"value": false,
"confidence": 92.556175
},
"sunglasses": {
"value": false,
"confidence": 99.99632
},
"gender": {
"value": "Male",
"confidence": 99.59345
},
"beard": {
"value": true,
"confidence": 98.15955
},
"mustache": {
"value": false,
"confidence": 57.567097
},
"eyesOpen": {
"value": true,
"confidence": 98.63709
},
"mouthOpen": {
"value": false,
"confidence": 80.23638
},
"emotions": [
{
"type": "CALM",
"confidence": 98.7182
},
{
"type": "SURPRISED",
"confidence": 6.3975477
},
{
"type": "FEAR",
"confidence": 5.909405
},
{
"type": "SAD",
"confidence": 2.1899593
},
{
"type": "ANGRY",
"confidence": 0.25669572
},
{
"type": "DISGUSTED",
"confidence": 0.23751277
},
{
"type": "HAPPY",
"confidence": 0.1899018
},
{
"type": "CONFUSED",
"confidence": 0.0765294
}
],
"quality": {
"brightness": 65.237076,
"sharpness": 92.22801
},
"confidence": 99.999535
}
],
"faceMatch": null
}
Error Responses
Status Code | Description |
---|---|
400 | Bad Request - Invalid input parameters |
401 | Unauthorized - Invalid API Key |
500 | Internal Server Error - Something went wrong on the server side |
Updated 3 months ago