---
title: "Add face/Selfie image"
method: POST
path: "/omni/add/face/third-party"
tags: ["Face capture"]
---

# Add face/Selfie image

`POST /omni/add/face/third-party`

Uploads selfie image for onboarding session. Response will contain data regarding liveness — if that is the photo of a real person.
Number of retries is not limited.

**Note**: After selfie and front-id are uploaded, endpoint for comparing faces process-face on those two images can be called.

It is required that person is alone on the photo.

## Query parameters

- `imageType` 'selfie' | 'videoSelfie' | 'id' | 'nfc'
- `captureType` 'AUTO' | 'MANUAL' | 'NATIVE' | 'UPLOAD'
- `externalCaptureId` string
- `recordingId` string

## Headers

- `api-version` string, required

## Request body

- AddFaceRequest
  - `base64Image` string — Image of user's face represented in base64.
  - `imageUrl` string — URL of face image, required to belong to a whitelisted domain
  - `faceCoordinates` FaceCoordinatesDto
    - `leftEyeX` number, float, required — Left eye coordinates for X
    - `leftEyeY` number, float, required — Left eye coordinates for Y
    - `rightEyeX` number, float, required — Right eye coordinates for X
    - `rightEyeY` number, float, required — Right eye coordinates for Y
    - `mouthX` number, float — Left mouth coordinates for X. Note: the field is deprecated, use leftMouthX instead
    - `leftMouthX` number, float — Left mouth coordinates for X
    - `mouthY` number, float — Left mouth coordinates for Y. Note: the field is deprecated, use leftMouthY instead
    - `leftMouthY` number, float — Left mouth coordinates for Y
    - `rightMouthX` number, float, required — Right mouth coordinates for X
    - `rightMouthY` number, float, required — Right mouth coordinates for Y
    - `noseTipX` number, float, required — Nose coordinates for X
    - `noseTipY` number, float, required — Nose coordinates for Y
    - `x` number, float, required — X coordinate of face rectangle.
    - `y` number, float, required — Y coordinate of face rectangle.
    - `width` number, float, required — Width of face rectangle.
    - `height` number, float, required — Height of face rectangle.

## Response `200`

OK

- AddFaceResponse
  - `age` integer — Age of th person in the photo.
  - `isBright` boolean — We recommend capturing another photo if value is false.
  - `confidence` number, float — Value 0 means that person on photo is alive. We recommend capturing another photo if value is 1.
  - `hasLenses` boolean — We recommend capturing another photo if value is true.
  - `hasFaceMask` boolean — Checked only if configured in the session flow. We recommend capturing another photo if value is true.
  - `hasClosedEyes` boolean — Checked only if configured in the session flow. We recommend capturing another photo if value is true.
  - `hasHeadCover` boolean — Checked only if configured in the session flow. We recommend capturing another photo if value is true.
  - `faceOccluded` boolean — Checked only if configured in the session flow. We recommend capturing another photo if value is true.
  - `sessionStatus` 'Alive' | 'Closed' | 'Deleted' — SessionStatus
  - `captureAttemptsLimit` CaptureAttemptsLimitDto
    - `max` integer — Maximum number of attempts to capture a photo.
    - `remaining` integer — Number of remaining attempts to capture a photo.

## Other responses

- `400` — Custom error statuses: - 4010: More than one face detected - 4019: Face not found - 4077: Selfie image has low quality - 4078: Selfie face is occluded or partially covered

---

[API](https://skmtc.net/incode/apis/incode-omni-api.md) · [All operations](https://skmtc.net/incode/apis/incode-omni-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/incode/incode-omni-api/revisions/30cd6d926ea3/schema)
