Handle the image
After capturing the image with the face capture module, you can make a request to our Age estimation endpoint to verify an individuals age. A base64 image will need to be sent in the request body to the following endpoint:
POST https://age.yoti.com/api/v1/sessions/<sessionId>/age-estimation
Headers explained
Header | Description |
---|---|
Yoti-Sdk-Id | Your unique Sdk id |
Content-Type | multipart/form-data; boundary |
Request Body
The request body must be sent as multipart form-data along with the relevant boundary.
{
"image": "<base64 encoded image>",
"biometric_consent": "<biometric_timestamp>",
"secure_token": "<fcm_secure_object>"
}
Parameter | Content-Type | Type | Description |
---|---|---|---|
image | application/octet-stream | Base64 encoded image | Image of the user that the age estimation is performed on. |
biometric_consent | text/plain | Biometric timestamp string | Timestamp in UTC when the image of the user is captured. |
secure_token | text/plain | Secure Token | Payload from FCM capture returned in the secure field. |
Response Body
The response body is returned with the content type of application/json
.
Successful (Complete) Response
{
"status": "COMPLETE"
}
Successful (Fail) Response
{
"status": "FAIL"
"attempts_remaining":5,
"retries_depleted": false
}
Error Response
{
"context": "<Context_Message>",
"error_code": "<Error_Code>",
"attempts_remaining":6, // optional
"retries_depleted": false // optional
}
Error Code | Message |
---|---|
E600408 | Spoofing attempt detected |
PAYLOAD_TOO_LARGE | Payload too large. |
IMAGE_NOT_PROVIDED | Image has not been provided. |
INVALID_B64_IMAGE |
|
UNSUPPORTED_IMAGE_FORMAT | Image format not supported. Please use JPEGs (95 to 100 quality) and PNGs. |
IMAGE_SIZE_TOO_BIG | Image size too big, the maximum size is 1.5MB. |
IMAGE_SIZE_TOO_SMALL | Image size too small, the minimum size is 50KB. |
MIN_HEIGHT | The image height is incorrect. Image minimum height required is 300 pixels. |
MAX_HEIGHT | The image height is incorrect. Image maximum height required is 2000 pixels. |
MIN_WIDTH | The image width is incorrect. Image minimum width required is 300 pixels. |
MAX_WIDTH | The image width is incorrect. Image maximum width required is 2000 pixels. |
MIN_PIXELS | To process the image the minimum number of pixels required is 90,000 pixels. |
MAX_PIXELS | To process the image the maximum number of pixels required is 2,100,000 pixels. |
IMAGE_WRONG_CHANNELS | Missing colour channel, the input image must be RGB or RGBA. |
IMAGE_GRAYSCALE_NOT_SUPPORTED | Grayscale images not supported. |
FACE_NOT_FOUND | Face not found. |
MULTIPLE_FACES | Multiple faces in the image provided. |
FACE_BOX_TOO_SMALL | The face in the image provided is too small. |
FACE_TO_IMAGE_RATIO_TOO_LOW | Face ratio is lower than the minimum ratio. |
FACE_TO_IMAGE_RATIO_TOO_HIGH | Face ratio is bigger than the maximum ratio. |
INSUFFICIENT_AREA_AROUND_THE_FACE | Insufficient area around the face in the image provided. |
IMAGE_TOO_BRIGHT | Image too bright. |
IMAGE_TOO_DARK | Image too dark. |
INVALID_REQUEST_BODY | Request body is invalid, '-' field is invalid. |
UNSPECIFIED_ERROR | An internal server error occurred. |
Retries
It's possible to trigger a check again when a success (fail) or an error response is returned with the same session The pre-requisite is that the value of attempts_remaining
is greater than zero and retries_depleted
is not true.
To trigger the retry check, you have to make the API call again with the same request body as mentioned at the top.
Was this page helpful?