AwareID Enrollment and Authentication REST API (12.1)

Download OpenAPI specification:Download

Enrollment and Authentication REST APIs that utilizes biometrics and documents for robust identity verification

Face Liveness

Version of Knomi Faceliveness server

Returns the version of Knomi Faceliveness server

Authorizations:
(BearerApiKey)

Responses

Request samples

curl --request GET \
  --url https://cluster_name/faceliveness/version \
  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'

Analyze

Analyze the provided facial images and determine liveness and other autocapture information based on the specified workflow. Please note that:

  • The recommended resolution for provided images is 480x640.
  • All images within a single request must have the same width and height.
  • The recommended number of pixels between the subject?s eyes is 90 when using a front camera, and 60 with a back camera.

Each workflow has 3 variations with different levels of security and usability.

  • 2 - High usability
  • 4 - Balanced usability/security
  • 6 - High security.

It is recommended to start with 4 and evaluate if it meets your needs before trying 2 or 6.

The workflows are separated into the following categories. Each one requires a certain number of images

  • charlie#
    • The charlie# set of workflows provide passive liveness for images captured from a mobile phone.
    • Available workflows: charlie2, charlie4, charlie6
    • Required images: 3 (using Knomi S Face SDK) or 1 (without SDK)
  • delta#
    • The delta# set of workflows provide passive liveness for images captured from a mobile phone?s back camera.
    • Available workflows: delta2, delta4, delta6
    • Required images: 3 (using Knomi S Face SDK) or 1 (without SDK)
  • hotel#
    • The hotel# set of workflows provide passive liveness for images captured from a web camera.
    • Available workflows: hotel2, hotel4, hotel6
    • Required images: 1
  • foxtrot#
    • The foxtrot# set of workflows provide passive liveness for images captured from a mobile phone. This workflow always uses 1 image, unlike Charlie which can use 3 or 1.
    • Available workflows: foxtrot2, foxtrot4, foxtrot6
    • Required images: 1
Authorizations:
(BearerApiKey)
Request Body schema: application/json
object (faceLivenessRequest_video)

Video object

Responses

Request samples

Content type
application/json
{
  • "video": {
    }
}

Response samples

Content type
application/json
{
  • "video": {
    }
}

Check Liveness

Analyze the provided facial images and determine liveness based on the specified workflow. Please note that:

  • The recommended resolution for provided images is 480x640.
  • All images within a single request must have the same width and height.
  • The recommended number of pixels between the subject?s eyes is 90 when using a front camera, and 60 with a back camera.

Each workflow has 3 variations with different levels of security and usability.

  • 2 - High usability
  • 4 - Balanced usability/security
  • 6 - High security.

It is recommended to start with 4 and evaluate if it meets your needs before trying 2 or 6.

The workflows are separated into the following categories. Each one requires a certain number of images

  • charlie#
    • The charlie# set of workflows provide passive liveness for images captured from a mobile phone.
    • Available workflows: charlie2, charlie4, charlie6
    • Required images: 3 (using Knomi S Face SDK) or 1 (without SDK)
  • delta#
    • The delta# set of workflows provide passive liveness for images captured from a mobile phone?s back camera.
    • Available workflows: delta2, delta4, delta6
    • Required images: 3 (using Knomi S Face SDK) or 1 (without SDK)
  • hotel#
    • The hotel# set of workflows provide passive liveness for images captured from a web camera.
    • Available workflows: hotel2, hotel4, hotel6
    • Required images: 1
  • foxtrot#
    • The foxtrot# set of workflows provide passive liveness for images captured from a mobile phone. This workflow always uses 1 image, unlike Charlie which can use 3 or 1.
    • Available workflows: foxtrot2, foxtrot4, foxtrot6
    • Required images: 1
Authorizations:
(BearerApiKey)
Request Body schema: application/json
object (faceLivenessRequest_video)

Video object

Responses

Request samples

Content type
application/json
{
  • "video": {
    }
}

Response samples

Content type
application/json
{
  • "video": {
    }
}

Encrypted version of analyze endpoint.

Encrypted version of analyze endpoint.

Please Note:

Encrypted request data is generated by Knomi software.

Name Type Description
key string Encrypted request 'key' value
iv string Encrypted request 'iv' value
p string Encrypted request 'p' value

Status Codes:

200 OK Success 400 Bad Request The request is not valid 500 Internal Server Error Internal error. Please see Error Codes section for detailed information. 200 Response schema: | Name | Type | Description | |--------------------|--------------------|--------------------------------------------------------| | video | object | Video object | | autocapture_result | autocapture_result | | | liveness_result | liveness_result | | | version | string | The current version of the Aware Face Liveness library.|

400 Response schema: | Name | Type | Description | |-------------|---------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | error | object | | | code | integer |Error code Values: -1 (Unknown Error), -2 (Invalid Input JSON), -3 (Missing Mandatory Field), -4 (Field Has Wrong Type), -5 (Invalid Base64 String), -6 (Invalid Value), -7 (Invalid Image Data), -8 (Invalid Image Size) | | | description | string | Error description |

500 Response schema: | Name | Type | Description | |-------------|---------|-------------------------------| | error | object | | | code | integer | Error code (see table below) | | description | string | Error description |

Authorizations:
(BearerApiKey)
Request Body schema: application/json
key
string

encrypted symmetric key

iv
any

initial vector for symmetric encryption

p
any

encrypted biometric faceliveness request

Responses

Request samples

Content type
application/json
{
  • "key": "string",
  • "iv": null,
  • "p": null
}

Response samples

Content type
application/json
{
  • "video": {
    }
}

Analyze the provided facial images and determine liveness.

Analyze the provided facial images and determine liveness.

Please Note: Recommended resolution for provided images is 480x640. All images within a single request must have the same width and height. The recommended number of pixels between the subject?s eyes is 90 when using a front camera, and 60 with a back camera.

Encrypted request data is generated by Knomi software.

Request schema: | Name | Type | Description | |--------------|---------------|--------------| | video | object | Video object | | meta_data | meta_data | | | workflow_data| workflow_data | |

Status Codes: 200 OK Success 400 Bad Request The request is not valid 500 Internal Server Error Internal error. Please see Error Codes section for detailed information.

200 Response schema: | Name | Type | Description | |-----------------|-------------------|---------------------------------------------------------| | video | object | Video object | | liveness_result | liveness_result | | | version | string | The current version of the Aware Face Liveness library. |

400 Response schema: | Name | Type | Description | |-------------|---------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | error | object | Error code Values: -1 (Unknown Error), -2 (Invalid Input JSON), -3 (Missing Mandatory Field), -4 (Field Has Wrong Type), -5 (Invalid Base64 String), -6 (Invalid Value), -7 (Invalid Image Data), -8 (Invalid Image Size) | | code | integer | | | description | string | Error description |

500 Response schema: | Name | Type | Description | |-------------|---------|-------------------------------| | error | object | | | code | integer | Error code (see table below) | | description | string | Error description |

Authorizations:
(BearerApiKey)
Request Body schema: application/json
key
string

encrypted symmetric key

iv
any

initial vector for symmetric encryption

p
any

encrypted biometric faceliveness request

Responses

Request samples

Content type
application/json
{
  • "key": "string",
  • "iv": null,
  • "p": null
}

Response samples

Content type
application/json
{
  • "video": {
    }
}

Analyze the provided facial images and determine liveness. This request includes two active liveness requests.

Encrypted version of checkActiveLiveness endpoint. Please Note Encrypted request data is generated by Knomi software.

Request schema: | Name | Type | Description | |--------------|------------|--------------| | video | object | Video object | | meta_data | meta_data | | | workflow_data| workflow_data | |

Status Codes: 200 OK Success 400 Bad Request The request is not valid 500 Internal Server Error Internal error. Please see Error Codes section for detailed information.

200 Response schema: | Name | Type | Description | |-----------------|-------------------|---------------------------------------------------------| | video | object | Video object | | liveness_result | liveness_result | | | version | string | The current version of the Aware Face Liveness library. |

400 Response schema: | Name | Type | Description | |-------------|---------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | error | object | Error code Values: -1 (Unknown Error), -2 (Invalid Input JSON), -3 (Missing Mandatory Field), -4 (Field Has Wrong Type), -5 (Invalid Base64 String), -6 (Invalid Value), -7 (Invalid Image Data), -8 (Invalid Image Size) | | code | integer | | | description | string | Error description |

500 Response schema: | Name | Type | Description | |-------------|---------|-------------------------------| | error | object | | | code | integer | Error code (see table below) | | description | string | Error description |

Authorizations:
(BearerApiKey)
Request Body schema: application/json
key
string

encrypted symmetric key

iv
any

initial vector for symmetric encryption

p
any

encrypted biometric faceliveness request

Responses

Request samples

Content type
application/json
{
  • "key": "string",
  • "iv": null,
  • "p": null
}

Response samples

Content type
application/json
{
  • "video": {
    }
}

Voice Liveness

Version of Knomi VoiceLiveness server

Returns the version of Knomi VoiceLiveness server.

Authorizations:
(BearerApiKey)

Responses

Request samples

curl --request GET \
  --url https://cluster_name/voiceliveness/version \
  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'

Analyze liveness given voice samples

Analyzes the voice samples in input based on the specified workflow. Each workflow provide different levels of usability and security.

Authorizations:
(BearerApiKey)
Request Body schema: application/json
required
object (analyzeRequest_voice)

Voice object.

Responses

Request samples

Content type
application/json
{
  • "voice": {
    }
}

Response samples

Content type
application/json
{
  • "voice": {
    }
}

Encrypted version of analyze endpoint.

Please Note -Encrypted request data is generated by Knomi software.

Authorizations:
(BearerApiKey)
Request Body schema: application/json
key
string

encrypted symmetric key

iv
any

initial vector for symmetric encryption

p
any

encrypted biometric faceliveness request

Responses

Request samples

Content type
application/json
{
  • "key": "string",
  • "iv": null,
  • "p": null
}

Response samples

Content type
application/json
{
  • "voice": {
    }
}

Calculate the length of the given voice sample (in seconds)

Request schema

Authorizations:
(BearerApiKey)
Request Body schema: application/json
required
object (analyzeRequest_voice)

Voice object.

Responses

Request samples

Content type
application/json
{
  • "voice": {
    }
}

Response samples

Content type
application/json
{
  • "voice": {
    }
}

Encrypted version of analyze endpoint.

Please Note -Encrypted request data is generated by Knomi software.

Authorizations:
(BearerApiKey)
Request Body schema: application/json
key
string

encrypted symmetric key

iv
any

initial vector for symmetric encryption

p
any

encrypted biometric faceliveness request

Responses

Request samples

Content type
application/json
{
  • "key": "string",
  • "iv": null,
  • "p": null
}

Response samples

Content type
application/json
{
  • "voice": {
    }
}

Face Matcher

Version of Knomi FaceMatcher. Check if the server is alive.

Returns the version of Knomi FaceMatcher

Authorizations:
(BearerApiKey)

Responses

Request samples

curl --request GET \
  --url https://cluster_name/nexaface/version \
  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'

1-to-1 matching given two images or templates

Authorizations:
(BearerApiKey)
Request Body schema: application/json
object (metadata_2)

metadata assocated with the transaction

required
visibleFrontal (object) or import (object)
required
visibleFrontal (object) or import (object)
required
object (faceComparator)

Face comparator object

Responses

Request samples

Content type
application/json
Example

Compare example using face images

{
  • "probe": {
    },
  • "gallery": {
    },
  • "workflow": {
    }
}

Response samples

Content type
application/json
{
  • "score": 13.9989,
  • "scorePercent": 98.02
}

Generate the internal face template

Authorizations:
(BearerApiKey)
Request Body schema: application/json
object (visibleFrontal)

Encounter

Responses

Request samples

Content type
application/json

Example using face image

{
  • "encounter": {
    }
}

Response samples

Content type
application/json
{
  • "export": "<base64 encoded template>"
}

Voice Matcher

Version of Knomi VoiceMatcher. Check if the server is alive.

Returns the version of Knomi VoiceMatcher

Authorizations:
(BearerApiKey)

Responses

Request samples

curl --request GET \
  --url https://cluster_name/nexavoice/version \
  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'

1-to-1 matching given two voice samples

Authorizations:
(BearerApiKey)
Request Body schema: application/json
object (metadata_2)

metadata assocated with the transaction

required
voiceSamples (object)
required
voiceSamples (object)
required
object (voiceComparator)

Voice comparator object

Responses

Request samples

Content type
application/json

Compare example using voice samples

{
  • "probe": {
    },
  • "gallery": {
    },
  • "workflow": {
    }
}

Response samples

Content type
application/json
{
  • "score": 13.9989,
  • "scorePercent": 98.02
}

Generate the internal voice template

Authorizations:
(BearerApiKey)
Request Body schema: application/json
data
required
string

Base64 encoded voice sample

voiceSampleType
required
string
Value: "STATIC_PHRASE"

Voice sample type

Responses

Request samples

Content type
application/json

Example using voice sample

{
  • "encounter": {
    }
}

Document Verification

Validate document type against server

Validates whether the presented documents are valid and understood by the server. This API is normally used during document capture to check whether invalid documents were presented for capture. This API also provides information on whether a second page is expected for this document type.

Authorizations:
(BearerApiKey)
Request Body schema: application/json
object (ValidateDocumentTypeRequest)

Responses

Request samples

Content type
application/json
{
  • "documentImage": {
    }
}

Response samples

Content type
application/json
{
  • "validDocument": true,
  • "nextpageExpected": true,
  • "rfidPresence": 0,
  • "mrzPresence": true,
  • "documentName": "string",
  • "documentID": "string",
  • "fidType": "string",
  • "fidTypeId": "string",
  • "rotated180": true,
  • "year": "string",
  • "countryName": "string",
  • "childDocumentIDs": [
    ],
  • "icaocode": "string"
}

Verifies document using OCR and facial match

Verifies a document by comparing the different fields captured from MRZ/Barcode/OCR present in the document. It also accepts a facial image and uses it to perform match against the portrait image extracted from the ID card.

Authorizations:
(BearerApiKey)
Request Body schema: application/json
required
object (DocumentsInfo)
required
object (BiometricsInfo)
object (ProcessingInstructions)
object (Metadata)

Responses

Request samples

Content type
application/json
{
  • "documentsInfo": {
    },
  • "biometricsInfo": {
    },
  • "processingInstructions": {
    },
  • "metadata": {
    }
}

Response samples

Content type
application/json
{
  • "overallAuthenticationResult": "OK",
  • "documentAuthenticationResult": {
    },
  • "biometricsAuthenticationResult": {
    },
  • "retryDocumentCapture": true,
  • "icaoChipAvailable": true,
  • "icaoChipValidationResults": {
    },
  • "icaoVerificationResult": true,
  • "frontImg": "string",
  • "rearImg": "string"
}

Knomi Web

Retrieve the version number of preface SDK server

Authorizations:
(BearerApiKey)

Responses

Request samples

curl --request GET \
  --url https://cluster_name/b2c/sdk/preface/version \
  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'

Response samples

Content type
application/json
"Aware KnomiFaceAnalyzer Library, version 7.1 r165954"

Compute the region of interest of a face capture

Authorizations:
(BearerApiKey)
Request Body schema: application/json
object (calculateROIRequest_profile)

Profile object

object (calculateROIRequest_resolution)

Resolution in pixels

Responses

Request samples

Content type
application/json
{
  • "profile": {
    },
  • "resolution": {
    }
}

Response samples

Content type
application/json
{
  • "height": 512,
  • "width": 356,
  • "x": 62,
  • "y": 0
}

Compute the region of interest of a face capture

Authorizations:
(BearerApiKey)
Request Body schema: application/json
required
Array of objects (analyzeImageRequest_images)

Responses

Request samples

Content type
application/json
{
  • "images": [
    ]
}

Response samples

Content type
application/json
{
  • "images": [
    ]
}

Capture video in encrypted format

Authorizations:
(BearerApiKey)
Request Body schema: application/json
Array of objects (autocaptureVideoRequest_frames)
object (calculateROIRequest_resolution)

Resolution in pixels

object (calculateROIRequest_resolution)

Resolution in pixels

object (autocaptureVideoRequest_profile)
faceMinimumSize
number <double> ( 0 .. 1 ]

The minimum face size used in detecting faces when analyzing the image.

faceMaximumSize
number <double> ( 0 .. 1 ]

The maximum face size used in detecting faces when analyzing the image.

faceSensitivity
number <double> ( 0 .. 1 ]

The sensitivity used in detecting faces when analyzing the image.

faceGranularity
number <double> ( 0 .. 1 ]

The granularity used in detecting faces when analyzing the image.

faceDetectionMode
string
Enum: "FACE_ORDERING_BY_SIZE" "FACE_ORDERING_BY_SCORE" "DOMINANT_FACE_BY_SIZE" "DOMINANT_FACE_BY_SCORE"

The face detection mode used in detecting faces when analyzing the image.

autocaptureMinimumFrameCount
number >= 1

The number of consecutive, compliant frames necessary to return a successful capture.

Responses

Request samples

Content type
application/json
{
  • "profile": {
    },
  • "rotation": "0,",
  • "frames": [
    ],
  • "resolutionPreview": {
    },
  • "resolutionCapture": {
    }
}

Response samples

Content type
application/json
{
  • "frameResults": [
    ],
  • "results": {
    }
}

Capture video in encrypted format

Authorizations:
(BearerApiKey)
Request Body schema: application/json
Array of objects (autocaptureVideoRequest_frames)
object (calculateROIRequest_resolution)

Resolution in pixels

object (calculateROIRequest_resolution)

Resolution in pixels

object (autocaptureVideoRequest_profile)
faceMinimumSize
number <double> ( 0 .. 1 ]

The minimum face size used in detecting faces when analyzing the image.

faceMaximumSize
number <double> ( 0 .. 1 ]

The maximum face size used in detecting faces when analyzing the image.

faceSensitivity
number <double> ( 0 .. 1 ]

The sensitivity used in detecting faces when analyzing the image.

faceGranularity
number <double> ( 0 .. 1 ]

The granularity used in detecting faces when analyzing the image.

faceDetectionMode
string
Enum: "FACE_ORDERING_BY_SIZE" "FACE_ORDERING_BY_SCORE" "DOMINANT_FACE_BY_SIZE" "DOMINANT_FACE_BY_SCORE"

The face detection mode used in detecting faces when analyzing the image.

autocaptureMinimumFrameCount
number >= 1

The number of consecutive, compliant frames necessary to return a successful capture.

Responses

Request samples

Content type
application/json
{
  • "profile": {
    },
  • "rotation": "0,",
  • "frames": [
    ],
  • "resolutionPreview": {
    },
  • "resolutionCapture": {
    }
}

Response samples

Content type
application/json
{
  • "frameResults": [
    ],
  • "results": {
    }
}

Analyze the encrypted facial images and determine liveness and other autocapture information.

Authorizations:
(BearerApiKey)
Request Body schema: text/plain
key
string

encrypted symmetric key

iv
any

initial vector for symmetric encryption

p
any

encrypted biometric faceliveness request

Responses

Request samples

curl --request POST \
  --url https://cluster_name/b2c/sdk/faceliveness/analyzeEncrypted \
  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN' \
  --header 'content-type: text/plain'

Validates document type

Validates the document type against the server

Request Body schema: application/json
object (ValidateDocumentTypeRequest)

Responses

Request samples

Content type
application/json
{
  • "documentImage": {
    }
}

Response samples

Content type
application/json
{
  • "validDocument": true,
  • "nextpageExpected": true,
  • "rfidPresence": 0,
  • "mrzPresence": true,
  • "documentName": "string",
  • "documentID": "string",
  • "fidType": "string",
  • "fidTypeId": "string",
  • "rotated180": true,
  • "year": "string",
  • "countryName": "string",
  • "childDocumentIDs": [
    ],
  • "icaocode": "string"
}

Verifies document using OCR and facial match

Verifies a document by comparing the different fields captured from MRZ/Barcode/OCR present in the document. It also accepts a facial image and uses it to perform match against the portrait image extracted from the ID card.

Request Body schema: application/json
required
object (DocumentsInfo)
required
object (BiometricsInfo)
object (ProcessingInstructions)
object (Metadata)

Responses

Request samples

Content type
application/json
{
  • "documentsInfo": {
    },
  • "biometricsInfo": {
    },
  • "processingInstructions": {
    },
  • "metadata": {
    }
}

Response samples

Content type
application/json
{
  • "overallAuthenticationResult": "OK",
  • "documentAuthenticationResult": {
    },
  • "biometricsAuthenticationResult": {
    },
  • "retryDocumentCapture": true,
  • "icaoChipAvailable": true,
  • "icaoChipValidationResults": {
    },
  • "icaoVerificationResult": true,
  • "frontImg": "string",
  • "rearImg": "string"
}

Compliance

Verify a person using national ID number, and check if the person is not listed on any global watchlists including PEP, AML, government sansactions etc.

Authorizations:
(BearerApiKey)
Request Body schema: application/json
nationalIdType
string

Type of the national ID.

nationalIdNumber
string

National ID number.

object (nationalIdcheckNationalIdNumber_fields)

attributes of an individual

object (nationalIdcheckNationalIdNumber_options)

Responses

Request samples

Content type
application/json
{
  • "nationalIdType": "CPF",
  • "nationalIdNumber": "123456789",
  • "fields": {
    },
  • "options": {
    }
}

Response samples

Content type
application/json
{
  • "errorCode": 1,
  • "errorMsg": "string",
  • "responseDetail": { },
  • "checks": {
    }
}

Verify if the requested geographical co-ordinate (latitude and Longitude) passes the geofence rule.

Authorizations:
(BearerApiKey)
Request Body schema: application/json
lat
number <double> [ -90 .. 90 ]

Latitude corresponds to the Y-axis. It measures how far north or south you are from the Equator. Positive values represent the Northern Hemisphere, and negative values represent the Southern Hemisphere.

lon
number <double> [ -180 .. 180 ]

Longitude corresponds to the X-axis. It measures how far east or west you are from the Prime Meridian. Positive values represent the Eastern Hemisphere, and negative values represent the Western Hemisphere.

names
Array of arrays

List of all Geofences (names) that needs to be checked for geofence compliance.

Responses

Request samples

Content type
application/json
{
  • "lat": 42.361145,
  • "lon": -71.057083,
  • "names": [
    ]
}

Response samples

Content type
application/json
{
  • "allowed": true,
  • "location": {
    }
}

Enrollment

Initiate a new enrollment

Call this API to obtain a session token (to be used in subsequent enrollment related calls)

Authorizations:
(BearerApiKey)
Request Body schema: application/json
username
required
string

An unique identifier

email
required
string

Email address

firstName
string

(optional) First name

lastName
string

(optional) Last name

phoneNumber
string

(optional) Phone number

Responses

Request samples

Content type
application/json
{
  • "username": "TroyKohler",
  • "email": "TroyKohler@mireya.netinfo",
  • "firstName": "Troy",
  • "lastName": "Kohler",
  • "phoneNumber": "774-296-1793"
}

Response samples

Content type
application/json
{
  • "enrollmentToken": "9336b7b9-6a37-4aca-91b0-10b929e5c340",
  • "userExistsAlready": false,
  • "requiredChecks": [
    ]
}

Add device ID that will be verified in authentication process

Authorizations:
(BearerApiKey)
Request Body schema: application/json
enrollmentToken
string (enrollmentToken)

Session token obtained from /onboarding/enrollment/enroll for enrollment process

deviceId
string (deviceId)

Device Id used for enrollment and authentication

publicKey
string (publicKey)

Cryptographic ECDSA public key of this device, encoded in BASE64

Responses

Request samples

Content type
application/json
{
  • "enrollmentToken": "9336b7b9-6a37-4aca-91b0-10b929e5c340",
  • "deviceId": "samsung001",
  • "publicKey": "MFYwEAYHKoZIzj0CAQYFK4EEAAoDQgAE1cb6JHFagjftVneg8BIC4imWr48rF0Pvw17SaMhubbiA3+0oyF+u620YmhtvbBAQn87Ldda3eATw4D3/PfHx+g=="
}

Response samples

Content type
application/json
{
  • "enrollmentStatus": 1,
  • "registrationCode": ""
}

Add face sample if captured face images belongs to a live person

Authorizations:
(BearerApiKey)
Request Body schema: application/json
enrollmentToken
string (enrollmentToken)

Session token obtained from /onboarding/enrollment/enroll for enrollment process

object (faceLivenessRequest)

Responses

Request samples

Content type
application/json
{
  • "enrollmentToken": "9336b7b9-6a37-4aca-91b0-10b929e5c340",
  • "faceLivenessData": {
    }
}

Response samples

Content type
application/json
{
  • "livenessResult": true,
  • "enrollmentStatus": 1,
  • "registrationCode": "",
  • "faceLivenessResults": ""
}

Add voice sample if captured voice recording belongs to a live person

Authorizations:
(BearerApiKey)
Request Body schema: application/json
enrollmentToken
string (enrollmentToken)

Session token obtained from /onboarding/enrollment/enroll for enrollment process

object (analyzeRequest)

Responses

Request samples

Content type
application/json
{
  • "enrollmentToken": "9336b7b9-6a37-4aca-91b0-10b929e5c340",
  • "livenessData": {
    }
}

Response samples

Content type
application/json
{
  • "livenessResult": true,
  • "enrollmentStatus": 2,
  • "registrationCode": "289794",
  • "voiceLivenessResults": ""
}

Validates document type

Validates the document type against the server

Request Body schema: application/json
required
object (DocumentImage)
object (DocumentPayload)
object (onboardingenrollmentaddDocumentOCR_documentsInfo_processParam)

Responses

Request samples

Content type
application/json
{
  • "documentImage": {
    },
  • "documentPayload": {
    },
  • "processParam": {
    }
}

Response samples

Content type
application/json
{
  • "validDocument": true,
  • "nextpageExpected": true,
  • "rfidPresence": 0,
  • "mrzPresence": true,
  • "documentName": "string",
  • "documentID": "string",
  • "fidType": "string",
  • "fidTypeId": "string",
  • "rotated180": true,
  • "year": "string",
  • "countryName": "string",
  • "childDocumentIDs": [
    ],
  • "icaocode": "string"
}

Accepts document images for OCR verification

Verifies documents by comparing the different fields captured from MRZ/Barcode/OCR present in the document. It uses the selfie image previously captured to perform match against the portrait image extracted from the ID card.

Authorizations:
(BearerApiKey)
Request Body schema: application/json
enrollmentToken
string (enrollmentToken)

Session token obtained from /onboarding/enrollment/enroll for enrollment process

object (onboardingenrollmentaddDocumentOCR_documentsInfo)

Responses

Request samples

Content type
application/json
{
  • "enrollmentToken": "9336b7b9-6a37-4aca-91b0-10b929e5c340",
  • "documentsInfo": {
    }
}

Response samples

Content type
application/json
{
  • "enrollmentStatus": 1,
  • "documentVerificationResult": true,
  • "registrationCode": "cad27b38-a0da-4599-b376-40eb533e38aa",
  • "icaoVerificationResult": true,
  • "matchResult": true,
  • "matchScore": 100,
  • "retryDocumentCapture": true,
  • "ocrResults": {
    },
  • "icaoChipValidationResults": {
    }
}

Retrieves challenge for ICAO 9303 Active Authentication Deprecated

Retrieves a random challenge from server for performing ICAO 9303 Active Authentication against an ICAO-complaint chip

Authorizations:
(BearerApiKey)
Request Body schema: application/json
enrollmentToken
string (enrollmentToken)

Session token obtained from /onboarding/enrollment/enroll for enrollment process

Responses

Request samples

Content type
application/json
{
  • "enrollmentToken": "9336b7b9-6a37-4aca-91b0-10b929e5c340"
}

Response samples

Content type
application/json
{
  • "challenge": "gh46fANFOw8"
}

Accepts ICAO 9303-compliant data groups for ICAO-based document verifications Deprecated

Verifies the validity of the datagroups retrieved from an ICAO-compliant RFID chip. Supports both Passive and Active Authentication.

Authorizations:
(BearerApiKey)
Request Body schema: application/json
enrollmentToken
string (enrollmentToken)

Session token obtained from /onboarding/enrollment/enroll for enrollment process

object (onboardingenrollmentaddDocumentICAO_icaoDataGroups)

Responses

Request samples

Content type
application/json
{
  • "enrollmentToken": "9336b7b9-6a37-4aca-91b0-10b929e5c340",
  • "icaoDataGroups": {
    }
}

Response samples

Content type
application/json
{
  • "enrollmentStatus": 1,
  • "icaoVerificationResult": true,
  • "registrationCode": "",
  • "icaoChipValidationResults": ""
}

Initiates PIN creation.

Authorizations:
(BearerApiKey)
Request Body schema: application/json
enrollmentToken
string (enrollmentToken)

Session token obtained from /onboarding/enrollment/enroll for enrollment process

Responses

Request samples

Content type
application/json
{
  • "enrollmentToken": "9336b7b9-6a37-4aca-91b0-10b929e5c340"
}

Response samples

Content type
application/json
{
  • "enrollmentStatus": 1,
  • "registrationCode": "cad27b38-a0da-4599-b376-40eb533e38aa",
  • "mpinId": "c324f5e55e377de0343f37019ad5b77b8b01bdfee40014a54d76fd934e36a792",
  • "activationToken": "763c1005ca540c4db8e6811222c207ea",
  • "expireTime": 1634890606,
  • "redirectURI": "https://www.example.com/",
  • "pinUser": "EXAMPLE@AWARE.COM",
  • "pinDevice": "277c6b91eca44a45"
}

Finalizes PIN creation.

Authorizations:
(BearerApiKey)
Request Body schema: application/json
enrollmentToken
string (enrollmentToken)

Session token obtained from /onboarding/enrollment/enroll for enrollment process

Responses

Request samples

Content type
application/json
{
  • "enrollmentToken": "9336b7b9-6a37-4aca-91b0-10b929e5c340"
}

Response samples

Content type
application/json
{
  • "enrollmentStatus": 1,
  • "registrationCode": "cad27b38-a0da-4599-b376-40eb533e38aa"
}

Verify PII with mobile phone number

Authorizations:
(BearerApiKey)
Request Body schema: application/json
enrollmentToken
string (enrollmentToken)

Session token obtained from /onboarding/enrollment/enroll for enrollment process

object (onboardingenrollmentmobileMatchverifyPII_pii)

PII data

Responses

Request samples

Content type
application/json
{
  • "enrollmentToken": "9336b7b9-6a37-4aca-91b0-10b929e5c340",
  • "pii": {
    }
}

Response samples

Content type
application/json
{
  • "enrollmentStatus": 1,
  • "responseDetail": {
    }
}

Send OTP for verification to prove the ownership of mobile device

Authorizations:
(BearerApiKey)
Request Body schema: application/json
enrollmentToken
string (enrollmentToken)

Session token obtained from /onboarding/enrollment/enroll for enrollment process

pinCode
string

OTP received on the mobile phone

Responses

Request samples

Content type
application/json
{
  • "enrollmentToken": "9336b7b9-6a37-4aca-91b0-10b929e5c340",
  • "pinCode": "703113"
}

Response samples

Content type
application/json
{
  • "enrollmentStatus": 1,
  • "registrationCode": "cad27b38-a0da-4599-b376-40eb533e38aa",
  • "policyDecision": "approve",
  • "responseDetail": {
    }
}

Obtain KBA challenge questions

Authorizations:
(BearerApiKey)
Request Body schema: application/json
enrollmentToken
string (enrollmentToken)

Session token obtained from /onboarding/enrollment/enroll for enrollment process

object (onboardingenrollmentKBAquestions_pii)

PII data

Responses

Request samples

Content type
application/json
{
  • "enrollmentToken": "9336b7b9-6a37-4aca-91b0-10b929e5c340",
  • "pii": {
    }
}

Response samples

Content type
application/json
{
  • "enrollmentStatus": 1,
  • "questions": [
    ],
  • "errorCode": 1,
  • "errorMsg": "Please make sure the input is correct"
}

Send answers for verification

Authorizations:
(BearerApiKey)
Request Body schema: application/json
enrollmentToken
string (enrollmentToken)

Session token obtained from /onboarding/enrollment/enroll for enrollment process

Array of objects (kbaAnswer)

user answers to challenge questions

Responses

Request samples

Content type
application/json
{
  • "enrollmentToken": "9336b7b9-6a37-4aca-91b0-10b929e5c340",
  • "answers": [
    ]
}

Response samples

Content type
application/json
{
  • "enrollmentStatus": 1,
  • "registrationCode": "string",
  • "policyDecision": "approve",
  • "errorCode": 1,
  • "errorMsg": "Incorrect answers"
}

Check if a mobile device is of low risk

Authorizations:
(BearerApiKey)
Request Body schema: application/json
enrollmentToken
string (enrollmentToken)

Session token obtained from /onboarding/enrollment/enroll for enrollment process

apSessionId
string (apSessionId)

generated by device profile JavaScript on the phone

Responses

Request samples

Content type
application/json
{
  • "enrollmentToken": "9336b7b9-6a37-4aca-91b0-10b929e5c340",
  • "apSessionId": "59673504-c8ef-4b75-9454-85ba743981af"
}

Response samples

Content type
application/json
{
  • "enrollmentStatus": 1,
  • "responseDetail": {
    }
}

Verify a person is not listed on any global watchlists including PEP, AML, government sansactions etc.

Authorizations:
(BearerApiKey)
Request Body schema: application/json
enrollmentToken
string (enrollmentToken)

Session token obtained from /onboarding/enrollment/enroll for enrollment process

object (watchlistAttributes)

Responses

Request samples

Content type
application/json
{
  • "enrollmentToken": "9336b7b9-6a37-4aca-91b0-10b929e5c340",
  • "pii": {
    }
}

Response samples

Content type
application/json
{
  • "enrollmentStatus": 1,
  • "errorCode": 1,
  • "errorMsg": "string",
  • "responseDetail": { }
}

Verify a person using national ID number, and check if the person is not listed on any global watchlists including PEP, AML, government sansactions etc.

Authorizations:
(BearerApiKey)
Request Body schema: application/json
enrollmentToken
string (enrollmentToken)

Session token obtained from /onboarding/enrollment/enroll for enrollment process

nationalIdType
string

Type of the national ID.

nationalIdNumber
string

National ID number.

object (nationalIdFields)

attributes of an individual

Responses

Request samples

Content type
application/json
{
  • "enrollmentToken": "9336b7b9-6a37-4aca-91b0-10b929e5c340",
  • "nationalIdType": "CPF",
  • "nationalIdNumber": "123456789",
  • "fields": {
    }
}

Response samples

Content type
application/json
{
  • "enrollmentStatus": 1,
  • "errorCode": 1,
  • "errorMsg": "string",
  • "responseDetail": { },
  • "checks": {
    }
}

Cancel enrollment

Authorizations:
(BearerApiKey)
Request Body schema: application/json
enrollmentToken
string (enrollmentToken)

Session token obtained from /onboarding/enrollment/enroll for enrollment process

Responses

Request samples

Content type
application/json
{
  • "enrollmentToken": "9336b7b9-6a37-4aca-91b0-10b929e5c340"
}

Response samples

Content type
application/json
{
  • "errorCode": "INPUT_FORMAT_ERROR",
  • "errorMsg": "Field is missing",
  • "status": 400,
  • "timestamp": "2021-10-12T01:06:24.000Z"
}

Authentication

Initiate authentication process

Call this API to obtain a session token (to be used in subsequent verification related calls). Either registrationCode or username is acceptable.

Authorizations:
(BearerApiKey)
Request Body schema: application/json
registrationCode
string (registrationCode)

Registration code received after enrollment completed successfully

username
string

An unique identifier

Responses

Request samples

Content type
application/json
{
  • "registrationCode": "cad27b38-a0da-4599-b376-40eb533e38aa",
  • "username": "string"
}

Response samples

Content type
application/json
{
  • "authToken": "9336b7b9-6a37-4aca-91b0-10b929e5c341",
  • "requiredChecks": [
    ]
}

Check if capturing device has been previously registered

Authorizations:
(BearerApiKey)
Request Body schema: application/json
authToken
string (authToken)

Session token obtained from /onboarding/authentication/authenticate for authentication process

deviceId
string (deviceId)

Device Id used for enrollment and authentication

signature
string (signature)

Cryptographic ECDSA signature signed by this device with its stored private key, encoded in BASE64

geosites
string

comma-delimited string of geosites to be checked

Responses

Request samples

Content type
application/json
{
  • "authToken": "cd8d9b72-55bc-4aee-bfc5-a622d4a2a379",
  • "deviceId": "samsung001",
  • "signature": "MEQCIAOAfOlxMNJ0n8h/foJ5qLsNXgkjiBlItbM4zCrT7vF+AiB8T1vANlzxCg8bGMd1fSuYI6TxIksfrJHWyBLEPMczsw==",
  • "geosites": "Boston,NYC"
}

Response samples

Content type
application/json
{
  • "message": "Device signature is invalid",
  • "authStatus": 1
}

Check if captured face images belongs to a live person

Authorizations:
(BearerApiKey)
Request Body schema: application/json
authToken
string (authToken)

Session token obtained from /onboarding/authentication/authenticate for authentication process

object (faceLivenessRequest)

Responses

Request samples

Content type
application/json
{
  • "authToken": "cd8d9b72-55bc-4aee-bfc5-a622d4a2a379",
  • "faceLivenessData": {
    }
}

Response samples

Content type
application/json
{
  • "livenessResult": true,
  • "matchResult": true,
  • "matchScore": 100,
  • "authStatus": 1,
  • "faceLivenessResults": {
    }
}

Check if captured voice recording belongs to a live person

Authorizations:
(BearerApiKey)
Request Body schema: application/json
authToken
string (authToken)

Session token obtained from /onboarding/authentication/authenticate for authentication process

object (analyzeRequest)

Responses

Request samples

Content type
application/json
{
  • "authToken": "cd8d9b72-55bc-4aee-bfc5-a622d4a2a379",
  • "livenessData": {
    }
}

Response samples

Content type
application/json
{
  • "livenessResult": true,
  • "matchResult": true,
  • "matchScore": 100,
  • "authStatus": "2 (Complete)",
  • "voiceLivenessResults": ""
}

Check if PIN entry is valid.

Authorizations:
(BearerApiKey)
Request Body schema: application/json
authToken
string (authToken)

Session token obtained from /onboarding/authentication/authenticate for authentication process

authorizationCode
string (authorizationCode)

Authorization token obtained from PIN entry.

Responses

Request samples

Content type
application/json
{
  • "authToken": "cd8d9b72-55bc-4aee-bfc5-a622d4a2a379",
  • "authorizationCode": "50d91ff4b0abba389205f539c3378f0a"
}

Response samples

Content type
application/json
{
  • "authStatus": 1
}

Check if a mobile device is of low risk

Authorizations:
(BearerApiKey)
Request Body schema: application/json
authToken
string (authToken)

Session token obtained from /onboarding/authentication/authenticate for authentication process

apSessionId
string (apSessionId)

generated by device profile JavaScript on the phone

Responses

Request samples

Content type
application/json
{
  • "authToken": "cd8d9b72-55bc-4aee-bfc5-a622d4a2a379",
  • "apSessionId": "59673504-c8ef-4b75-9454-85ba743981af"
}

Response samples

Content type
application/json
{
  • "authStatus": 1,
  • "errorCode": 1,
  • "errorMsg": "Incorrect answers",
  • "responseDetail": {
    }
}

Verify a person using national ID number, and check if the person is not listed on any global watchlists including PEP, AML, government sansactions etc.

Authorizations:
(BearerApiKey)
Request Body schema: application/json
authToken
string (authToken)

Session token obtained from /onboarding/authentication/authenticate for authentication process

nationalIdType
string

Type of the national ID.

nationalIdNumber
string

National ID number.

object (nationalIdFields)

attributes of an individual

Responses

Request samples

Content type
application/json
{
  • "authToken": "cd8d9b72-55bc-4aee-bfc5-a622d4a2a379",
  • "nationalIdType": "CPF",
  • "nationalIdNumber": "123456789",
  • "fields": {
    }
}

Response samples

Content type
application/json
{
  • "authStatus": 1,
  • "errorCode": 1,
  • "errorMsg": "Incorrect answers",
  • "responseDetail": { },
  • "checks": {
    }
}

Cancel authentication

Authorizations:
(BearerApiKey)
Request Body schema: application/json
authToken
string (authToken)

Session token obtained from /onboarding/authentication/authenticate for authentication process

Responses

Request samples

Content type
application/json
{
  • "authToken": "cd8d9b72-55bc-4aee-bfc5-a622d4a2a379"
}

Response samples

Content type
application/json
{
  • "errorCode": "INPUT_FORMAT_ERROR",
  • "errorMsg": "Field is missing",
  • "status": 400,
  • "timestamp": "2021-10-12T01:06:24.000Z"
}

Re-Enrollment

Check if captured face images belongs to a live person

Authorizations:
(BearerApiKey)
Request Body schema: application/json
reEnrollmentToken
string (reEnrollmentToken)

Session token obtained from /onboarding/enrollment/enroll for re-enrollment process

object (faceLivenessRequest)

Responses

Request samples

Content type
application/json
{
  • "reEnrollmentToken": "9336b7b9-6a37-4aca-91b0-10b929e5c340",
  • "faceLivenessData": {
    }
}

Response samples

Content type
application/json
{
  • "livenessResult": true,
  • "matchResult": true,
  • "matchScore": 100,
  • "authStatus": 1,
  • "faceLivenessResults": {
    }
}

Check if captured voice recording belongs to a live person

Authorizations:
(BearerApiKey)
Request Body schema: application/json
reEnrollmentToken
string (reEnrollmentToken)

Session token obtained from /onboarding/enrollment/enroll for re-enrollment process

object (analyzeRequest)

Responses

Request samples

Content type
application/json
{
  • "reEnrollmentToken": "9336b7b9-6a37-4aca-91b0-10b929e5c340",
  • "livenessData": {
    }
}

Response samples

Content type
application/json
{
  • "livenessResult": true,
  • "matchResult": true,
  • "matchScore": 100,
  • "authStatus": "2 (Complete)",
  • "voiceLivenessResults": ""
}

Initiate PIN reset.

Authorizations:
(BearerApiKey)
Request Body schema: application/json
reEnrollmentToken
string (reEnrollmentToken)

Session token obtained from /onboarding/enrollment/enroll for re-enrollment process

deviceId
string (deviceId)

Device Id used for enrollment and authentication

addOrUpdate
integer (addOrUpdate)
Enum: 0 1

0=add a new device, 1=replace with this device and remove existing ones

Responses

Request samples

Content type
application/json
{
  • "reEnrollmentToken": "9336b7b9-6a37-4aca-91b0-10b929e5c340",
  • "deviceId": "samsung001",
  • "addOrUpdate": 0
}

Response samples

Content type
application/json
{
  • "mpinId": "c324f5e55e377de0343f37019ad5b77b8b01bdfee40014a54d76fd934e36a792",
  • "activationToken": "763c1005ca540c4db8e6811222c207ea",
  • "expireTime": 1634890606,
  • "redirectURI": "https://www.example.com/",
  • "pinUser": "EXAMPLE@AWARE.COM",
  • "pinDevice": "277c6b91eca44a45",
  • "authStatus": 1
}

Complete PIN reset process.

Authorizations:
(BearerApiKey)
Request Body schema: application/json
reEnrollmentToken
string (reEnrollmentToken)

Session token obtained from /onboarding/enrollment/enroll for re-enrollment process

deviceId
string (deviceId)

Device Id used for enrollment and authentication

addOrUpdate
integer (addOrUpdate)
Enum: 0 1

0=add a new device, 1=replace with this device and remove existing ones

pinId
string

Identifier for new pin identity created for the user.

Responses

Request samples

Content type
application/json
{
  • "reEnrollmentToken": "9336b7b9-6a37-4aca-91b0-10b929e5c340",
  • "deviceId": "samsung001",
  • "addOrUpdate": 0,
  • "pinId": "c324f5e55e377de0343f37019ad5b77b8b01bdfee40014a54d76fd934e36a792"
}

Response samples

Content type
application/json
{
  • "authStatus": 1,
  • "message": "SUCCESS"
}

Check if a mobile device is of low risk

Authorizations:
(BearerApiKey)
Request Body schema: application/json
reEnrollmentToken
string (reEnrollmentToken)

Session token obtained from /onboarding/enrollment/enroll for re-enrollment process

apSessionId
string (apSessionId)

generated by device profile JavaScript on the phone

Responses

Request samples

Content type
application/json
{
  • "reEnrollmentToken": "9336b7b9-6a37-4aca-91b0-10b929e5c340",
  • "apSessionId": "59673504-c8ef-4b75-9454-85ba743981af"
}

Response samples

Content type
application/json
{
  • "authStatus": 1,
  • "responseDetail": {
    }
}

Complete re-enrollment process

Complete re-enrollment process, can add a new device or replace device if needed.

Authorizations:
(BearerApiKey)
Request Body schema: application/json
reEnrollmentToken
string (reEnrollmentToken)

Session token obtained from /onboarding/enrollment/enroll for re-enrollment process

deviceId
string (deviceId)

Device Id used for enrollment and authentication

publicKey
string (publicKey)

Cryptographic ECDSA public key of this device, encoded in BASE64

addOrUpdate
integer (addOrUpdate)
Enum: 0 1

0=add a new device, 1=replace with this device and remove existing ones

Responses

Request samples

Content type
application/json
{
  • "reEnrollmentToken": "9336b7b9-6a37-4aca-91b0-10b929e5c340",
  • "deviceId": "samsung001",
  • "publicKey": "MFYwEAYHKoZIzj0CAQYFK4EEAAoDQgAE1cb6JHFagjftVneg8BIC4imWr48rF0Pvw17SaMhubbiA3+0oyF+u620YmhtvbBAQn87Ldda3eATw4D3/PfHx+g==",
  • "addOrUpdate": 0
}

Response samples

Content type
application/json
{
  • "registrationCode": "GRCDX3"
}

Cancel reEnrollment process

Authorizations:
(BearerApiKey)
Request Body schema: application/json
reEnrollmentToken
string (reEnrollmentToken)

Session token obtained from /onboarding/enrollment/enroll for re-enrollment process

Responses

Request samples

Content type
application/json
{
  • "reEnrollmentToken": "9336b7b9-6a37-4aca-91b0-10b929e5c340"
}

Response samples

Content type
application/json
{
  • "errorCode": "INPUT_FORMAT_ERROR",
  • "errorMsg": "Field is missing",
  • "status": 400,
  • "timestamp": "2021-10-12T01:06:24.000Z"
}

B2C

Trigger an enrollment via B2C Authenticator

Authorizations:
(BearerApiKey)
Request Body schema: application/json
username
required
string

An unique identifier

email
string

(optional) Email address

phoneNumber
string

(optional) Phone number

object (enrollmentB2CNotifyOptions)

Responses

Request samples

Content type
application/json
{
  • "username": "xfghj",
  • "email": "johndoe@gmail.com",
  • "phoneNumber": 17816445555,
  • "notifyOptions": {
    }
}

Response samples

Content type
application/json
{}

Trigger an authentication via B2C Authenticator

Authorizations:
(BearerApiKey)
Request Body schema: application/json
username
required
string

An unique identifier

object (authenticateB2CNotifyOptions)

Responses

Request samples

Content type
application/json
{
  • "username": "xfghj",
  • "notifyOptions": {
    }
}

Response samples

Content type
application/json
{}

Gets the status of a B2C operation

Authorizations:
(BearerApiKey)
path Parameters
sessionToken
required
string
Example: 9336b7b9-6a37-4aca-91b0-10b929e5c340

The session token issued for a B2C operation

Responses

Request samples

curl --request GET \
  --url https://cluster_name/onboarding/b2c/operationStatus/%7BsessionToken%7D \
  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'

Response samples

Content type
application/json
{
  • "completionStatus": "Pending"
}

Gallery (1-N Match)

Register a user and add to the system default gallery

Authorizations:
(BearerApiKey)
Request Body schema: application/json
username
required
string

An unique identifier

email
required
string

Email address

firstName
string

(optional) First name

lastName
string

(optional) Last name

phoneNumber
string

(optional) Phone number

image
required
string

base64 encoded face image

Responses

Request samples

Content type
application/json
{
  • "username": "TroyKohler",
  • "email": "TroyKohler@mireya.netinfo",
  • "firstName": "Troy",
  • "lastName": "Kohler",
  • "phoneNumber": "774-296-1793",
  • "image": "/9j/9FAQS ..."
}

Response samples

Content type
application/json
{
  • "registrationCode": "cad27b38-a0da-4599-b376-40eb533e38aa"
}

Perform 1-N match

Authorizations:
(BearerApiKey)
Request Body schema: application/json
galleryName
string

(optional) Gallery name. If not specified, the default (system) gallery will be used for matching

candidateListSize
number
Default: 100

(optional) Limit the number of match result to be returned

cutoffScorePercent
number <double>
Default: 50

(optional) Return only matched candidate which has match scorePercent > cutoffScorePercent

includeImage
boolean
Default: false

(optional) Retrieve matched candidate image if this is true

candidateList
Array of strings (registrationCode)

(optional) Specify a list of registrationCode for partial match, i.e. only candidates in this list will be matched agaist

image
required
string

base64 encoded face image

Responses

Request samples

Content type
application/json
{
  • "galleryName": "gallery1",
  • "candidateListSize": 20,
  • "cutoffScorePercent": 90,
  • "includeImage": true,
  • "candidateList": [
    ],
  • "image": "/9j/9FAQS ..."
}

Response samples

Content type
application/json
{
  • "matchCount": 1,
  • "list": [
    ]
}

Create a new custom gallery

Authorizations:
(BearerApiKey)
Request Body schema: application/json
galleryName
required
string (galleryName)

The name of a custom gallery

Responses

Request samples

Content type
application/json
{
  • "galleryName": "gallery1"
}

Response samples

Content type
application/json
{
  • "errorCode": "INPUT_FORMAT_ERROR",
  • "errorMsg": "Field is missing",
  • "status": 400,
  • "timestamp": "2021-10-12T01:06:24.000Z"
}

Delete an existing custom gallery, any registered users will be removed from this gallery also. Note users will always remain in the default system gallery until deleted from AwareID's admin portal.

Authorizations:
(BearerApiKey)
Request Body schema: application/json
galleryName
required
string (galleryName)

The name of a custom gallery

Responses

Request samples

Content type
application/json
{
  • "galleryName": "gallery1"
}

Response samples

Content type
application/json
{
  • "errorCode": "INPUT_FORMAT_ERROR",
  • "errorMsg": "Field is missing",
  • "status": 400,
  • "timestamp": "2021-10-12T01:06:24.000Z"
}

List galleries configured in system

Authorizations:
(BearerApiKey)

Responses

Request samples

curl --request GET \
  --url https://cluster_name/onboarding/gallery/listGallery \
  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'

Response samples

Content type
application/json
{
  • "list": [
    ]
}

Add a registered user to a gallery

Authorizations:
(BearerApiKey)
Request Body schema: application/json
galleryName
required
string (galleryName)

The name of a custom gallery

username
string

An unique identifier. Note this is not required if registrationCode is provided.

registrationCode
string (registrationCode)

Registration code received after enrollment completed successfully

Responses

Request samples

Content type
application/json
{
  • "galleryName": "gallery1",
  • "username": "TroyKohler",
  • "registrationCode": "cad27b38-a0da-4599-b376-40eb533e38aa"
}

Response samples

Content type
application/json
{
  • "errorCode": "INPUT_FORMAT_ERROR",
  • "errorMsg": "Field is missing",
  • "status": 400,
  • "timestamp": "2021-10-12T01:06:24.000Z"
}

Add registered users to galleries

Authorizations:
(BearerApiKey)
Request Body schema: application/json
galleryNames
Array of strings (galleryName)

array of galleries

usernames
Array of strings

array of user names

registrationCodes
Array of strings (registrationCode)

array of registration codes

Responses

Request samples

Content type
application/json
{
  • "galleryNames": [
    ],
  • "usernames": [
    ],
  • "registrationCodes": [
    ]
}

Response samples

Content type
application/json
{
  • "errorCode": "INPUT_FORMAT_ERROR",
  • "errorMsg": "Field is missing",
  • "status": 400,
  • "timestamp": "2021-10-12T01:06:24.000Z"
}

Delete a registered user from a gallery

Authorizations:
(BearerApiKey)
Request Body schema: application/json
galleryName
required
string (galleryName)

The name of a custom gallery

username
string

An unique identifier. Note this is not required if registrationCode is provided.

registrationCode
string (registrationCode)

Registration code received after enrollment completed successfully

Responses

Request samples

Content type
application/json
{
  • "galleryName": "gallery1",
  • "username": "TroyKohler",
  • "registrationCode": "cad27b38-a0da-4599-b376-40eb533e38aa"
}

Response samples

Content type
application/json
{
  • "errorCode": "INPUT_FORMAT_ERROR",
  • "errorMsg": "Field is missing",
  • "status": 400,
  • "timestamp": "2021-10-12T01:06:24.000Z"
}

Delete registered users from galleries

Authorizations:
(BearerApiKey)
Request Body schema: application/json
galleryNames
Array of strings (galleryName)

array of galleries

usernames
Array of strings

array of user names

registrationCodes
Array of strings (registrationCode)

array of registration codes

Responses

Request samples

Content type
application/json
{
  • "galleryNames": [
    ],
  • "usernames": [
    ],
  • "registrationCodes": [
    ]
}

Response samples

Content type
application/json
{
  • "errorCode": "INPUT_FORMAT_ERROR",
  • "errorMsg": "Field is missing",
  • "status": 400,
  • "timestamp": "2021-10-12T01:06:24.000Z"
}

Check if a user is enrolled in a gallery

Authorizations:
(BearerApiKey)
Request Body schema: application/json
registrationCode
string

Registration code received after enrollment completed successfully

galleryName
required
string (galleryName)

The name of a custom gallery

username
string

An unique identifier. Note this is not required if registrationCode is provided.

Responses

Request samples

Content type
application/json
{
  • "registrationCode": "cad27b38-a0da-4599-b376-40eb533e38aa",
  • "galleryName": "gallery1",
  • "username": "TroyKohler"
}

Response samples

Content type
application/json
{
  • "exist": true
}

Returns galleries a user has been enrolled to

Authorizations:
(BearerApiKey)
Request Body schema: application/json
username
string

An unique identifier. Note this is not required if registrationCode is provided.

registrationCode
string (registrationCode)

Registration code received after enrollment completed successfully

Responses

Request samples

Content type
application/json
{
  • "username": "TroyKohler",
  • "registrationCode": "cad27b38-a0da-4599-b376-40eb533e38aa"
}

Response samples

Content type
application/json
{
  • "list": [
    ]
}

List users that have been enrolled to a gallery, sorted by registrationCode

Authorizations:
(BearerApiKey)
Request Body schema: application/json
galleryName
string

(optional) Gallery name. If not specified, the default (system) gallery will be used for matching

pageNumber
number
Default: 1

(optional) Specify the page of records to be retrieved

pageSize
number
Default: 100

(optional) Specify the number of records per page to be retrieved

includeImage
boolean
Default: false

(optional) Retrieve user's face image if this is true

includeTemplate
boolean
Default: false

(optional) Retrieve user's face template if this is true

Responses

Request samples

Content type
application/json
{
  • "galleryName": "gallery1",
  • "pageNumber": 2,
  • "pageSize": 20,
  • "includeImage": true,
  • "includeTemplate": true
}

Response samples

Content type
application/json
{
  • "pageNumber": 2,
  • "pageSize": 20,
  • "totalRecords": 1007,
  • "totalPages": 51,
  • "list": [
    ]
}

Geofence

Returns all geocoding definitions

Returns all stored geocoding definitions

Authorizations:
(BearerApiKey)

Responses

Request samples

curl --request GET \
  --url https://cluster_name/compliance/geofence/definitions \
  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'

Response samples

Content type
application/json
[
  • {
    }
]

Get a geofence definition by name

Returns a geofence definition (Administrative Boundary, Circular , or Custom) based on the specified geofence name.

path Parameters
geofenceName
required
string

The name of the geofence to fetch.

Responses

Request samples

curl --request GET \
  --url https://cluster_name/compliance/geofence/definitions/%7BgeofenceName%7D

Response samples

Content type
application/json
Example
{
  • "type": "include",
  • "geofence": {
    }
}

Update a geofence definition by name

Updates an existing geofence definition identified by the geofenceName.

path Parameters
geofenceName
required
string

The name of the geofence to update.

Request Body schema: application/json
One of
type
string
Value: "include"
object (AdminGeofence_geofence)

Responses

Request samples

Content type
application/json
Example
{
  • "type": "include",
  • "geofence": {
    }
}

Add a new geofence definition by name

Create a new geofence definition in the system by uniquely giving it a geofenceName.

path Parameters
geofenceName
required
string

A unique name for the geofence definition.

Request Body schema: application/json
One of
type
string
Value: "include"
object (AdminGeofence_geofence)

Responses

Request samples

Content type
application/json
Example
{
  • "type": "include",
  • "geofence": {
    }
}

Delete a geofence definition by name

Deletes a specific geofence definition identified by the geofence name.

path Parameters
geofenceName
required
string

The name of the geofence to delete.

Responses

Request samples

curl --request DELETE \
  --url https://cluster_name/compliance/geofence/definitions/%7BgeofenceName%7D

Toggle the status of the geofence

Toggles the status of a geofence (e.g., Enable/Disable) identified by the geofenceName.

path Parameters
geofenceName
required
string

The name of the geofence whose status is to be toggled.

Request Body schema: application/json
object

Responses

Request samples

Content type
application/json
{ }

Response samples

Content type
application/json
{
  • "isEnabled": true,
  • "message": "Geofence 'UniversityCampus' was successfully 'enabled'"
}

Admin

Get completed enrollment list

Authorizations:
(BearerApiKey)
Request Body schema: application/json
pageNumber
integer

Page number

pageSize
integer

Number of records per page

Responses

Request samples

Content type
application/json
{
  • "pageNumber": 1,
  • "pageSize": 100
}

Response samples

Content type
application/json
{
  • "pageNumber": 1,
  • "pageSize": 100,
  • "totalPages": 1,
  • "totalRecords": 1,
  • "list": [
    ]
}

Get enrollment details

Authorizations:
(BearerApiKey)
path Parameters
registrationCode
required
string
Example: cad27b38-a0da-4599-b376-40eb533e38aa

Registration code

Responses

Request samples

curl --request GET \
  --url https://cluster_name/onboarding/admin/registration/%7BregistrationCode%7D \
  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'

Response samples

Content type
application/json
{
  • "name": "string",
  • "email": "string",
  • "phoneNumber": "string",
  • "startDate": "string",
  • "registrationCode": "cad27b38-a0da-4599-b376-40eb533e38aa",
  • "registeredDevices": [
    ],
  • "activities": [
    ]
}

Delete enrollment details

Authorizations:
(BearerApiKey)
path Parameters
registrationCode
required
string
Example: cad27b38-a0da-4599-b376-40eb533e38aa

Registration code

Responses

Request samples

curl --request DELETE \
  --url https://cluster_name/onboarding/admin/registration/%7BregistrationCode%7D \
  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'

Response samples

Content type
application/json
{
  • "errorCode": "INPUT_FORMAT_ERROR",
  • "errorMsg": "Field is missing",
  • "status": 400,
  • "timestamp": "2021-10-12T01:06:24.000Z"
}

Retrieve customer configuration and options

Authorizations:
(BearerApiKey)

Responses

Request samples

curl --request GET \
  --url https://cluster_name/onboarding/admin/customerConfig \
  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'

Response samples

Content type
application/json
{
  • "onboardingConfig": {
    },
  • "serviceVersion": "1.0.5",
  • "expirationTime": "2023-06-16 00:00:00 +0000 UTC"
}

Update customer configuration and options

Authorizations:
(BearerApiKey)
Request Body schema: application/json
object (customerConfigDataRequest_onboardingConfig)

Responses

Request samples

Content type
application/json
{
  • "onboardingConfig": {
    }
}

Response samples

Content type
application/json
{
  • "errorCode": "INPUT_FORMAT_ERROR",
  • "errorMsg": "Field is missing",
  • "status": 400,
  • "timestamp": "2021-10-12T01:06:24.000Z"
}

Obtain information to store / retrieve a recording

Authorizations:
(BearerApiKey)
Request Body schema: application/json
type
required
string
Enum: "enrollment" "authentication" "re-enrollment"

Specify recording type, supported types are enrollment, authentication, and re-enrollment

token
required
string

This should be the enrollment token for enrollment, authentication token, or re-enrollment token

presignedURL
boolean
Default: false

To request a presigned URL (valid for 1 hour)

Responses

Request samples

Content type
application/json
{
  • "type": "enrollment",
  • "token": "105216c6-92df-4a12-a215-77e3c609668f",
  • "presignedURL": false
}

Response samples

Content type
application/json
{
  • "vendor": "AWS",
  • "bucketName": "awareid-data",
  • "objectKey": "awareid-dev-aware-apis-com/boa/recording/enrollment/105216c6-92df-4a12-a215-77e3c609668f",
  • "credential": {
    }
}

Registration

Get the list of registered webhooks

Authorizations:
(BearerApiKey)

Responses

Request samples

curl --request GET \
  --url https://cluster_name/webhook/registration \
  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'

Response samples

Content type
application/json
{
  • "list": [
    ]
}

register a webhook

Call this API to register a webhook

Authorizations:
(BearerApiKey)
Request Body schema: application/json
url
required
string <uri> (webhook_url)

callback URL

authHeaderKey
string (webhook_authHeaderKey)

authentication header key

authHeaderValue
string (webhook_authHeaderValue)

authentication header value

encryptMessageBody
boolean (webhook_encryptMessageBody)
Default: true

When true, event message body will be encrypted

addSignatureHeader
boolean (webhook_addSignatureHeader)
Default: true

When true, HMAC signature will be calculated from the message body and added to header

events
required
Array of strings (webhook_eventType)
Items Enum: "enrollment.started" "enrollment.cancelled" "enrollment.device.added" "enrollment.face.check" "enrollment.voice.check" "enrollment.ocr.check" "enrollment.icao.check" "enrollment.b2c.started" "enrollment.b2c.completed" "enrollment.completed" "authentication.started" "authentication.cancelled" "authentication.face.check" "authentication.voice.check" "authentication.b2c.started" "authentication.b2c.completed" "authentication.completed" "reenrollment.started" "reenrollment.cancelled" "reenrollment.face.check" "reenrollment.voice.check" "reenrollment.b2c.started" "reenrollment.b2c.completed" "reenrollment.completed"

list of events to subscribe

Responses

Callbacks

Request samples

Content type
application/json
{}

Response samples

Content type
application/json
{
  • "secret": "U6iZUV4/jhwLeqkwV+tAzn5zncVNSwvSEhppr8M20XY=",
  • "webhookId": "486a5c0c27db4ebbbf970deacc755a25"
}

Callback payload samples

Callback
POST: {$request.body#url}
Content type
application/json
{
  • "id": "b6ea6be6-5e11-4946-9dc2-d41db57c5171",
  • "created": "2022-02-16T14:33:11.889-0500",
  • "type": "enrollment.started",
  • "operationToken": "9336b7b9-6a37-4aca-91b0-10b929e5c340",
  • "username": "string",
  • "data": {
    }
}

Get a registered webhook information

Authorizations:
(BearerApiKey)
path Parameters
webhookId
required
string
Example: 486a5c0c27db4ebbbf970deacc755a25

webhook identifier

Responses

Request samples

curl --request GET \
  --url https://cluster_name/webhook/registration/%7BwebhookId%7D \
  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'

Response samples

Content type
application/json
{
  • "webhookId": "486a5c0c27db4ebbbf970deacc755a25",
  • "secretKey": "7+gmiAMF2E0nogAsNeHE8pLUMxYnIuslW5q/3RsuX3I=",
  • "authHeaderKey": "boc_key",
  • "authHeaderValue": "boc_secret",
  • "encryptMessageBody": false,
  • "addSignatureHeader": false,
  • "events": [
    ]
}

Delete a webhook

Authorizations:
(BearerApiKey)
path Parameters
webhookId
required
string
Example: 486a5c0c27db4ebbbf970deacc755a25

webhook identifier

Responses

Request samples

curl --request DELETE \
  --url https://cluster_name/webhook/registration/%7BwebhookId%7D \
  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'

Response samples

Content type
application/json
{
  • "errorCode": "INPUT_FORMAT_ERROR",
  • "errorMsg": "Field is missing",
  • "status": 400,
  • "timestamp": "2021-10-12T01:06:24.000Z"
}

update a webhook

Call this API to update a webhook

Authorizations:
(BearerApiKey)
path Parameters
webhookId
required
string
Example: 486a5c0c27db4ebbbf970deacc755a25

webhook identifier

Request Body schema: application/json
generateNewSecret
boolean

true to generate a new secret

url
string <uri> (webhook_url)

callback URL

authHeaderKey
string (webhook_authHeaderKey)

authentication header key

authHeaderValue
string (webhook_authHeaderValue)

authentication header value

encryptMessageBody
boolean (webhook_encryptMessageBody)
Default: true

When true, event message body will be encrypted

addSignatureHeader
boolean (webhook_addSignatureHeader)
Default: true

When true, HMAC signature will be calculated from the message body and added to header

events
Array of strings (webhook_eventType)
Items Enum: "enrollment.started" "enrollment.cancelled" "enrollment.device.added" "enrollment.face.check" "enrollment.voice.check" "enrollment.ocr.check" "enrollment.icao.check" "enrollment.b2c.started" "enrollment.b2c.completed" "enrollment.completed" "authentication.started" "authentication.cancelled" "authentication.face.check" "authentication.voice.check" "authentication.b2c.started" "authentication.b2c.completed" "authentication.completed" "reenrollment.started" "reenrollment.cancelled" "reenrollment.face.check" "reenrollment.voice.check" "reenrollment.b2c.started" "reenrollment.b2c.completed" "reenrollment.completed"

list of events to subscribe

Responses

Request samples

Content type
application/json
{}

Response samples

Content type
application/json
{
  • "secret": "U6iZUV4/jhwLeqkwV+tAzn5zncVNSwvSEhppr8M20XY=",
  • "webhookId": "486a5c0c27db4ebbbf970deacc755a25"
}

Event

Get event data

Authorizations:
(BearerApiKey)
Request Body schema: application/json
webhookId
string (webhook_webhookId)

unique identifier received after successfully registered a webhook

Array of objects (webhook_transactionNum)

List of transactionNum

Responses

Request samples

Content type
application/json
{
  • "webhookId": "486a5c0c27db4ebbbf970deacc755a25",
  • "list": [
    ]
}

Response samples

Content type
application/json
{
  • "list": [
    ]
}