6.6. Biometrics

This is version 1.6.1 of this interface.

Get the OpenAPI file: abis.yaml

6.6.1. Services

6.6.1.1. CRUD

POST /v1/persons

Create one encounter and generate ID for both the person and the encounter

Scope required: abis.encounter.write

Query Parameters:
  • transactionId (string) – The id of the transaction. Object of type string. (Required)

  • callback (string) – the callback address, where the result will be sent when available. Object of type string/uri.

  • priority (integer) – the request priority (0: lowest priority; 9: highest priority). Object of type integer.

  • algorithm (string) – Hint about the algorithm to be used. Object of type string.

Form Parameters:
Status Codes:

Example request:

POST /v1/persons?transactionId=string&callback=http%3A%2F%2Fclient.com%2Fcallback&priority=1&algorithm=string HTTP/1.1
Host: example.com
Content-Type: application/json

{
    "status": "ACTIVE",
    "encounterType": "string",
    "createdDate": "2024-11-18T14:21:00+01:00",
    "updatedDate": "2024-11-18T14:21:00+01:00",
    "galleries": [
        "string"
    ],
    "clientData": "c3RyaW5n",
    "contextualData": {
        "enrollmentDate": "2019-01-11",
        "...": "..."
    },
    "biographicData": {
        "dateOfBirth": "1985-11-30",
        "gender": "M",
        "nationality": "FRA",
        "...": "..."
    },
    "biometricData": [
        {
            "biometricType": "FINGER",
            "biometricSubType": "RIGHT_INDEX",
            "instance": "string",
            "encounterId": "string",
            "image": "string",
            "imageRef": "http://imageserver.com/image?id=00003",
            "captureDate": "2019-05-21T12:00:00+01:00",
            "captureDevice": "string",
            "impressionType": "LIVE_SCAN_PLAIN",
            "width": 1,
            "height": 1,
            "bitdepth": 1,
            "mimeType": "string",
            "resolution": 1,
            "compression": "WSQ",
            "missing": [
                {
                    "biometricSubType": "RIGHT_INDEX",
                    "presence": "BANDAGED"
                }
            ],
            "metadata": "string",
            "comment": "string",
            "template": "string",
            "templateRef": "http://dataserver.com/template?id=00014",
            "templateFormat": "string",
            "quality": 1,
            "qualityFormat": "string",
            "algorithm": "string",
            "vendor": "string",
            "encryption": {
                "type": "JWE",
                "scope": "string"
            },
            "integrity": [
                {
                    "id": "string",
                    "type": "NONE",
                    "scope": "string",
                    "alg": "string",
                    "encrypted": false,
                    "hash": "string",
                    "signature": "string",
                    "signatureRef": "https://objectserver.com/signature?id=00003"
                }
            ]
        }
    ],
    "encryption": {
        "type": "JWE",
        "scope": "string"
    },
    "integrity": [
        {
            "id": "string",
            "type": "NONE",
            "scope": "string",
            "alg": "string",
            "encrypted": false,
            "hash": "string",
            "signature": "string",
            "signatureRef": "https://objectserver.com/signature?id=00003"
        }
    ]
}

Example response:

HTTP/1.1 200 OK
Content-Type: application/json

{
    "personId": "string",
    "encounterId": "string",
    "others": {
        "...": "..."
    },
    "...": "..."
}

Example response:

HTTP/1.1 202 Accepted
Content-Type: application/json

{
    "taskId": "123e4567-e89b-12d3-a456-426655440000",
    "others": {
        "...": "..."
    }
}

Example response:

HTTP/1.1 400 Bad Request
Content-Type: application/json

{
    "code": 1,
    "message": "string"
}

Example response:

HTTP/1.1 500 Internal Server Error
Content-Type: application/json

{
    "code": 1,
    "message": "string"
}

Callback: createResponse

POST ${request.query.callback}

Create one encounter and generate both IDs response callback

Query Parameters:
  • transactionId (string) – The id of the transaction. Object of type string. (Required)

  • taskId (string) – The id of the task, used to match this response with the request. Object of type string. (Required)

Form Parameters:
Status Codes:

Example request:

POST ${request.query.callback}?transactionId=string&taskId=string HTTP/1.1
Host: example.com
Content-Type: application/json

{
    "personId": "string",
    "encounterId": "string",
    "others": {
        "...": "..."
    },
    "...": "..."
}

Example request:

POST ${request.query.callback}?transactionId=string&taskId=string HTTP/1.1
Host: example.com
Content-Type: application/error+json

{
    "code": 1,
    "message": "string"
}

Example response:

HTTP/1.1 500 Internal Server Error
Content-Type: application/json

{
    "code": 1,
    "message": "string"
}
POST /v1/persons/{personId}/encounters

Create one encounter and generate its ID

Create one encounter in the person identified by his/her id. If the person does not yet exist, it is created automatically.

Scope required: abis.encounter.write

Parameters:
  • personId (string) – the id of the person. Object of type string.

Query Parameters:
  • transactionId (string) – The id of the transaction. Object of type string. (Required)

  • callback (string) – the callback address, where the result will be sent when available. Object of type string/uri.

  • priority (integer) – the request priority (0: lowest priority; 9: highest priority). Object of type integer.

  • algorithm (string) – Hint about the algorithm to be used. Object of type string.

Form Parameters:
Status Codes:

Example request:

POST /v1/persons/string/encounters?transactionId=string&callback=http%3A%2F%2Fclient.com%2Fcallback&priority=1&algorithm=string HTTP/1.1
Host: example.com
Content-Type: application/json

{
    "status": "ACTIVE",
    "encounterType": "string",
    "createdDate": "2024-11-18T14:21:00+01:00",
    "updatedDate": "2024-11-18T14:21:00+01:00",
    "galleries": [
        "string"
    ],
    "clientData": "c3RyaW5n",
    "contextualData": {
        "enrollmentDate": "2019-01-11",
        "...": "..."
    },
    "biographicData": {
        "dateOfBirth": "1985-11-30",
        "gender": "M",
        "nationality": "FRA",
        "...": "..."
    },
    "biometricData": [
        {
            "biometricType": "FINGER",
            "biometricSubType": "RIGHT_INDEX",
            "instance": "string",
            "encounterId": "string",
            "image": "string",
            "imageRef": "http://imageserver.com/image?id=00003",
            "captureDate": "2019-05-21T12:00:00+01:00",
            "captureDevice": "string",
            "impressionType": "LIVE_SCAN_PLAIN",
            "width": 1,
            "height": 1,
            "bitdepth": 1,
            "mimeType": "string",
            "resolution": 1,
            "compression": "WSQ",
            "missing": [
                {
                    "biometricSubType": "RIGHT_INDEX",
                    "presence": "BANDAGED"
                }
            ],
            "metadata": "string",
            "comment": "string",
            "template": "string",
            "templateRef": "http://dataserver.com/template?id=00014",
            "templateFormat": "string",
            "quality": 1,
            "qualityFormat": "string",
            "algorithm": "string",
            "vendor": "string",
            "encryption": {
                "type": "JWE",
                "scope": "string"
            },
            "integrity": [
                {
                    "id": "string",
                    "type": "NONE",
                    "scope": "string",
                    "alg": "string",
                    "encrypted": false,
                    "hash": "string",
                    "signature": "string",
                    "signatureRef": "https://objectserver.com/signature?id=00003"
                }
            ]
        }
    ],
    "encryption": {
        "type": "JWE",
        "scope": "string"
    },
    "integrity": [
        {
            "id": "string",
            "type": "NONE",
            "scope": "string",
            "alg": "string",
            "encrypted": false,
            "hash": "string",
            "signature": "string",
            "signatureRef": "https://objectserver.com/signature?id=00003"
        }
    ]
}

Example response:

HTTP/1.1 200 OK
Content-Type: application/json

{
    "personId": "string",
    "encounterId": "string",
    "others": {
        "...": "..."
    },
    "...": "..."
}

Example response:

HTTP/1.1 202 Accepted
Content-Type: application/json

{
    "taskId": "123e4567-e89b-12d3-a456-426655440000",
    "others": {
        "...": "..."
    }
}

Example response:

HTTP/1.1 400 Bad Request
Content-Type: application/json

{
    "code": 1,
    "message": "string"
}

Example response:

HTTP/1.1 500 Internal Server Error
Content-Type: application/json

{
    "code": 1,
    "message": "string"
}

Callback: createResponse

POST ${request.query.callback}

Create one encounter and generate its ID response callback

Query Parameters:
  • transactionId (string) – The id of the transaction. Object of type string. (Required)

  • taskId (string) – The id of the task, used to match this response with the request. Object of type string. (Required)

Form Parameters:
Status Codes:

Example request:

POST ${request.query.callback}?transactionId=string&taskId=string HTTP/1.1
Host: example.com
Content-Type: application/json

{
    "personId": "string",
    "encounterId": "string",
    "others": {
        "...": "..."
    },
    "...": "..."
}

Example request:

POST ${request.query.callback}?transactionId=string&taskId=string HTTP/1.1
Host: example.com
Content-Type: application/error+json

{
    "code": 1,
    "message": "string"
}

Example response:

HTTP/1.1 500 Internal Server Error
Content-Type: application/json

{
    "code": 1,
    "message": "string"
}
GET /v1/persons/{personId}/encounters

Read all encounters of one person

Scope required: abis.encounter.read

Parameters:
  • personId (string) – the id of the person. Object of type string.

Query Parameters:
  • transactionId (string) – The id of the transaction. Object of type string. (Required)

  • callback (string) – the callback address, where the result will be sent when available. Object of type string/uri.

  • priority (integer) – the request priority (0: lowest priority; 9: highest priority). Object of type integer.

Status Codes:

Example request:

GET /v1/persons/string/encounters?transactionId=string&callback=http%3A%2F%2Fclient.com%2Fcallback&priority=1 HTTP/1.1
Host: example.com

Example response:

HTTP/1.1 200 OK
Content-Type: application/json

[
    {
        "encounterId": "string",
        "status": "ACTIVE",
        "encounterType": "string",
        "createdDate": "2024-11-18T14:21:00+01:00",
        "updatedDate": "2024-11-18T14:21:00+01:00",
        "galleries": [
            "string"
        ],
        "clientData": "c3RyaW5n",
        "contextualData": {
            "enrollmentDate": "2019-01-11",
            "...": "..."
        },
        "biographicData": {
            "dateOfBirth": "1985-11-30",
            "gender": "M",
            "nationality": "FRA",
            "...": "..."
        },
        "biometricData": [
            {
                "biometricType": "FINGER",
                "biometricSubType": "RIGHT_INDEX",
                "instance": "string",
                "encounterId": "string",
                "image": "string",
                "imageRef": "http://imageserver.com/image?id=00003",
                "captureDate": "2019-05-21T12:00:00+01:00",
                "captureDevice": "string",
                "impressionType": "LIVE_SCAN_PLAIN",
                "width": 1,
                "height": 1,
                "bitdepth": 1,
                "mimeType": "string",
                "resolution": 1,
                "compression": "WSQ",
                "missing": [
                    {
                        "biometricSubType": "RIGHT_INDEX",
                        "presence": "BANDAGED"
                    }
                ],
                "metadata": "string",
                "comment": "string",
                "template": "string",
                "templateRef": "http://dataserver.com/template?id=00014",
                "templateFormat": "string",
                "quality": 1,
                "qualityFormat": "string",
                "algorithm": "string",
                "vendor": "string",
                "encryption": {
                    "type": "JWE",
                    "scope": "string"
                },
                "integrity": [
                    {
                        "id": "string",
                        "type": "NONE",
                        "scope": "string",
                        "alg": "string",
                        "encrypted": false,
                        "hash": "string",
                        "signature": "string",
                        "signatureRef": "https://objectserver.com/signature?id=00003"
                    }
                ]
            }
        ],
        "encryption": {
            "type": "JWE",
            "scope": "string"
        },
        "integrity": [
            {
                "id": "string",
                "type": "NONE",
                "scope": "string",
                "alg": "string",
                "encrypted": false,
                "hash": "string",
                "signature": "string",
                "signatureRef": "https://objectserver.com/signature?id=00003"
            }
        ]
    }
]

Example response:

HTTP/1.1 202 Accepted
Content-Type: application/json

{
    "taskId": "123e4567-e89b-12d3-a456-426655440000",
    "others": {
        "...": "..."
    }
}

Example response:

HTTP/1.1 400 Bad Request
Content-Type: application/json

{
    "code": 1,
    "message": "string"
}

Example response:

HTTP/1.1 500 Internal Server Error
Content-Type: application/json

{
    "code": 1,
    "message": "string"
}

Callback: readAllResponse

POST ${request.query.callback}

Read all encounters response callback

Query Parameters:
  • transactionId (string) – The id of the transaction. Object of type string. (Required)

  • taskId (string) – The id of the task, used to match this response with the request. Object of type string. (Required)

Form Parameters:
  • body – Encounter data. Array of Encounter.

Status Codes:

Example request:

POST ${request.query.callback}?transactionId=string&taskId=string HTTP/1.1
Host: example.com
Content-Type: application/json

[
    {
        "status": "ACTIVE",
        "encounterType": "string",
        "createdDate": "2024-11-18T14:21:00+01:00",
        "updatedDate": "2024-11-18T14:21:00+01:00",
        "galleries": [
            "string"
        ],
        "clientData": "c3RyaW5n",
        "contextualData": {
            "enrollmentDate": "2019-01-11",
            "...": "..."
        },
        "biographicData": {
            "dateOfBirth": "1985-11-30",
            "gender": "M",
            "nationality": "FRA",
            "...": "..."
        },
        "biometricData": [
            {
                "biometricType": "FINGER",
                "biometricSubType": "RIGHT_INDEX",
                "instance": "string",
                "encounterId": "string",
                "image": "string",
                "imageRef": "http://imageserver.com/image?id=00003",
                "captureDate": "2019-05-21T12:00:00+01:00",
                "captureDevice": "string",
                "impressionType": "LIVE_SCAN_PLAIN",
                "width": 1,
                "height": 1,
                "bitdepth": 1,
                "mimeType": "string",
                "resolution": 1,
                "compression": "WSQ",
                "missing": [
                    {
                        "biometricSubType": "RIGHT_INDEX",
                        "presence": "BANDAGED"
                    }
                ],
                "metadata": "string",
                "comment": "string",
                "template": "string",
                "templateRef": "http://dataserver.com/template?id=00014",
                "templateFormat": "string",
                "quality": 1,
                "qualityFormat": "string",
                "algorithm": "string",
                "vendor": "string",
                "encryption": {
                    "type": "JWE",
                    "scope": "string"
                },
                "integrity": [
                    {
                        "id": "string",
                        "type": "NONE",
                        "scope": "string",
                        "alg": "string",
                        "encrypted": false,
                        "hash": "string",
                        "signature": "string",
                        "signatureRef": "https://objectserver.com/signature?id=00003"
                    }
                ]
            }
        ],
        "encryption": {
            "type": "JWE",
            "scope": "string"
        },
        "integrity": [
            {
                "id": "string",
                "type": "NONE",
                "scope": "string",
                "alg": "string",
                "encrypted": false,
                "hash": "string",
                "signature": "string",
                "signatureRef": "https://objectserver.com/signature?id=00003"
            }
        ]
    }
]

Example request:

POST ${request.query.callback}?transactionId=string&taskId=string HTTP/1.1
Host: example.com
Content-Type: application/error+json

{
    "code": 1,
    "message": "string"
}

Example response:

HTTP/1.1 500 Internal Server Error
Content-Type: application/json

{
    "code": 1,
    "message": "string"
}
POST /v1/persons/{personId}/encounters/{encounterId}

Create one encounter

Create one encounter in the person identified by his/her id. If the person does not yet exist, it is created automatically.

If the encounter already exists, an error 409 is returned.

Scope required: abis.encounter.write

Parameters:
  • personId (string) – the id of the person. Object of type string.

  • encounterId (string) – the id of the encounter. Object of type string.

Query Parameters:
  • transactionId (string) – The id of the transaction. Object of type string. (Required)

  • callback (string) – the callback address, where the result will be sent when available. Object of type string/uri.

  • priority (integer) – the request priority (0: lowest priority; 9: highest priority). Object of type integer.

  • algorithm (string) – Hint about the algorithm to be used. Object of type string.

Form Parameters:
Status Codes:

Example request:

POST /v1/persons/string/encounters/string?transactionId=string&callback=http%3A%2F%2Fclient.com%2Fcallback&priority=1&algorithm=string HTTP/1.1
Host: example.com
Content-Type: application/json

{
    "status": "ACTIVE",
    "encounterType": "string",
    "createdDate": "2024-11-18T14:21:00+01:00",
    "updatedDate": "2024-11-18T14:21:00+01:00",
    "galleries": [
        "string"
    ],
    "clientData": "c3RyaW5n",
    "contextualData": {
        "enrollmentDate": "2019-01-11",
        "...": "..."
    },
    "biographicData": {
        "dateOfBirth": "1985-11-30",
        "gender": "M",
        "nationality": "FRA",
        "...": "..."
    },
    "biometricData": [
        {
            "biometricType": "FINGER",
            "biometricSubType": "RIGHT_INDEX",
            "instance": "string",
            "encounterId": "string",
            "image": "string",
            "imageRef": "http://imageserver.com/image?id=00003",
            "captureDate": "2019-05-21T12:00:00+01:00",
            "captureDevice": "string",
            "impressionType": "LIVE_SCAN_PLAIN",
            "width": 1,
            "height": 1,
            "bitdepth": 1,
            "mimeType": "string",
            "resolution": 1,
            "compression": "WSQ",
            "missing": [
                {
                    "biometricSubType": "RIGHT_INDEX",
                    "presence": "BANDAGED"
                }
            ],
            "metadata": "string",
            "comment": "string",
            "template": "string",
            "templateRef": "http://dataserver.com/template?id=00014",
            "templateFormat": "string",
            "quality": 1,
            "qualityFormat": "string",
            "algorithm": "string",
            "vendor": "string",
            "encryption": {
                "type": "JWE",
                "scope": "string"
            },
            "integrity": [
                {
                    "id": "string",
                    "type": "NONE",
                    "scope": "string",
                    "alg": "string",
                    "encrypted": false,
                    "hash": "string",
                    "signature": "string",
                    "signatureRef": "https://objectserver.com/signature?id=00003"
                }
            ]
        }
    ],
    "encryption": {
        "type": "JWE",
        "scope": "string"
    },
    "integrity": [
        {
            "id": "string",
            "type": "NONE",
            "scope": "string",
            "alg": "string",
            "encrypted": false,
            "hash": "string",
            "signature": "string",
            "signatureRef": "https://objectserver.com/signature?id=00003"
        }
    ]
}

Example response:

HTTP/1.1 200 OK
Content-Type: application/json

{
    "personId": "string",
    "encounterId": "string",
    "others": {
        "...": "..."
    },
    "...": "..."
}

Example response:

HTTP/1.1 202 Accepted
Content-Type: application/json

{
    "taskId": "123e4567-e89b-12d3-a456-426655440000",
    "others": {
        "...": "..."
    }
}

Example response:

HTTP/1.1 400 Bad Request
Content-Type: application/json

{
    "code": 1,
    "message": "string"
}

Example response:

HTTP/1.1 500 Internal Server Error
Content-Type: application/json

{
    "code": 1,
    "message": "string"
}

Callback: createResponse

POST ${request.query.callback}

Create one encounter response callback

Query Parameters:
  • transactionId (string) – The id of the transaction. Object of type string. (Required)

  • taskId (string) – The id of the task, used to match this response with the request. Object of type string. (Required)

Form Parameters:
Status Codes:

Example request:

POST ${request.query.callback}?transactionId=string&taskId=string HTTP/1.1
Host: example.com
Content-Type: application/json

{
    "personId": "string",
    "encounterId": "string",
    "others": {
        "...": "..."
    },
    "...": "..."
}

Example request:

POST ${request.query.callback}?transactionId=string&taskId=string HTTP/1.1
Host: example.com
Content-Type: application/error+json

{
    "code": 1,
    "message": "string"
}

Example response:

HTTP/1.1 500 Internal Server Error
Content-Type: application/json

{
    "code": 1,
    "message": "string"
}
GET /v1/persons/{personId}/encounters/{encounterId}

Read one encounter

Scope required: abis.encounter.read

Parameters:
  • personId (string) – the id of the person. Object of type string.

  • encounterId (string) – the id of the encounter. Object of type string.

Query Parameters:
  • transactionId (string) – The id of the transaction. Object of type string. (Required)

  • callback (string) – the callback address, where the result will be sent when available. Object of type string/uri.

  • priority (integer) – the request priority (0: lowest priority; 9: highest priority). Object of type integer.

Status Codes:

Example request:

GET /v1/persons/string/encounters/string?transactionId=string&callback=http%3A%2F%2Fclient.com%2Fcallback&priority=1 HTTP/1.1
Host: example.com

Example response:

HTTP/1.1 200 OK
Content-Type: application/json

{
    "encounterId": "string",
    "status": "ACTIVE",
    "encounterType": "string",
    "createdDate": "2024-11-18T14:21:00+01:00",
    "updatedDate": "2024-11-18T14:21:00+01:00",
    "galleries": [
        "string"
    ],
    "clientData": "c3RyaW5n",
    "contextualData": {
        "enrollmentDate": "2019-01-11",
        "...": "..."
    },
    "biographicData": {
        "dateOfBirth": "1985-11-30",
        "gender": "M",
        "nationality": "FRA",
        "...": "..."
    },
    "biometricData": [
        {
            "biometricType": "FINGER",
            "biometricSubType": "RIGHT_INDEX",
            "instance": "string",
            "encounterId": "string",
            "image": "string",
            "imageRef": "http://imageserver.com/image?id=00003",
            "captureDate": "2019-05-21T12:00:00+01:00",
            "captureDevice": "string",
            "impressionType": "LIVE_SCAN_PLAIN",
            "width": 1,
            "height": 1,
            "bitdepth": 1,
            "mimeType": "string",
            "resolution": 1,
            "compression": "WSQ",
            "missing": [
                {
                    "biometricSubType": "RIGHT_INDEX",
                    "presence": "BANDAGED"
                }
            ],
            "metadata": "string",
            "comment": "string",
            "template": "string",
            "templateRef": "http://dataserver.com/template?id=00014",
            "templateFormat": "string",
            "quality": 1,
            "qualityFormat": "string",
            "algorithm": "string",
            "vendor": "string",
            "encryption": {
                "type": "JWE",
                "scope": "string"
            },
            "integrity": [
                {
                    "id": "string",
                    "type": "NONE",
                    "scope": "string",
                    "alg": "string",
                    "encrypted": false,
                    "hash": "string",
                    "signature": "string",
                    "signatureRef": "https://objectserver.com/signature?id=00003"
                }
            ]
        }
    ],
    "encryption": {
        "type": "JWE",
        "scope": "string"
    },
    "integrity": [
        {
            "id": "string",
            "type": "NONE",
            "scope": "string",
            "alg": "string",
            "encrypted": false,
            "hash": "string",
            "signature": "string",
            "signatureRef": "https://objectserver.com/signature?id=00003"
        }
    ]
}

Example response:

HTTP/1.1 202 Accepted
Content-Type: application/json

{
    "taskId": "123e4567-e89b-12d3-a456-426655440000",
    "others": {
        "...": "..."
    }
}

Example response:

HTTP/1.1 400 Bad Request
Content-Type: application/json

{
    "code": 1,
    "message": "string"
}

Example response:

HTTP/1.1 500 Internal Server Error
Content-Type: application/json

{
    "code": 1,
    "message": "string"
}

Callback: readResponse

POST ${request.query.callback}

Read one encounter response callback

Query Parameters:
  • transactionId (string) – The id of the transaction. Object of type string. (Required)

  • taskId (string) – The id of the task, used to match this response with the request. Object of type string. (Required)

Form Parameters:
  • body – Encounter data. Object of type Encounter.

Status Codes:

Example request:

POST ${request.query.callback}?transactionId=string&taskId=string HTTP/1.1
Host: example.com
Content-Type: application/json

{
    "status": "ACTIVE",
    "encounterType": "string",
    "createdDate": "2024-11-18T14:21:00+01:00",
    "updatedDate": "2024-11-18T14:21:00+01:00",
    "galleries": [
        "string"
    ],
    "clientData": "c3RyaW5n",
    "contextualData": {
        "enrollmentDate": "2019-01-11",
        "...": "..."
    },
    "biographicData": {
        "dateOfBirth": "1985-11-30",
        "gender": "M",
        "nationality": "FRA",
        "...": "..."
    },
    "biometricData": [
        {
            "biometricType": "FINGER",
            "biometricSubType": "RIGHT_INDEX",
            "instance": "string",
            "encounterId": "string",
            "image": "string",
            "imageRef": "http://imageserver.com/image?id=00003",
            "captureDate": "2019-05-21T12:00:00+01:00",
            "captureDevice": "string",
            "impressionType": "LIVE_SCAN_PLAIN",
            "width": 1,
            "height": 1,
            "bitdepth": 1,
            "mimeType": "string",
            "resolution": 1,
            "compression": "WSQ",
            "missing": [
                {
                    "biometricSubType": "RIGHT_INDEX",
                    "presence": "BANDAGED"
                }
            ],
            "metadata": "string",
            "comment": "string",
            "template": "string",
            "templateRef": "http://dataserver.com/template?id=00014",
            "templateFormat": "string",
            "quality": 1,
            "qualityFormat": "string",
            "algorithm": "string",
            "vendor": "string",
            "encryption": {
                "type": "JWE",
                "scope": "string"
            },
            "integrity": [
                {
                    "id": "string",
                    "type": "NONE",
                    "scope": "string",
                    "alg": "string",
                    "encrypted": false,
                    "hash": "string",
                    "signature": "string",
                    "signatureRef": "https://objectserver.com/signature?id=00003"
                }
            ]
        }
    ],
    "encryption": {
        "type": "JWE",
        "scope": "string"
    },
    "integrity": [
        {
            "id": "string",
            "type": "NONE",
            "scope": "string",
            "alg": "string",
            "encrypted": false,
            "hash": "string",
            "signature": "string",
            "signatureRef": "https://objectserver.com/signature?id=00003"
        }
    ]
}

Example request:

POST ${request.query.callback}?transactionId=string&taskId=string HTTP/1.1
Host: example.com
Content-Type: application/error+json

{
    "code": 1,
    "message": "string"
}

Example response:

HTTP/1.1 500 Internal Server Error
Content-Type: application/json

{
    "code": 1,
    "message": "string"
}
PUT /v1/persons/{personId}/encounters/{encounterId}

Update one encounter

Scope required: abis.encounter.write

Parameters:
  • personId (string) – the id of the person. Object of type string.

  • encounterId (string) – the id of the encounter. Object of type string.

Query Parameters:
  • transactionId (string) – The id of the transaction. Object of type string. (Required)

  • callback (string) – the callback address, where the result will be sent when available. Object of type string/uri.

  • priority (integer) – the request priority (0: lowest priority; 9: highest priority). Object of type integer.

  • algorithm (string) – Hint about the algorithm to be used. Object of type string.

Form Parameters:
Status Codes:

Example request:

PUT /v1/persons/string/encounters/string?transactionId=string&callback=http%3A%2F%2Fclient.com%2Fcallback&priority=1&algorithm=string HTTP/1.1
Host: example.com
Content-Type: application/json

{
    "status": "ACTIVE",
    "encounterType": "string",
    "createdDate": "2024-11-18T14:21:00+01:00",
    "updatedDate": "2024-11-18T14:21:00+01:00",
    "galleries": [
        "string"
    ],
    "clientData": "c3RyaW5n",
    "contextualData": {
        "enrollmentDate": "2019-01-11",
        "...": "..."
    },
    "biographicData": {
        "dateOfBirth": "1985-11-30",
        "gender": "M",
        "nationality": "FRA",
        "...": "..."
    },
    "biometricData": [
        {
            "biometricType": "FINGER",
            "biometricSubType": "RIGHT_INDEX",
            "instance": "string",
            "encounterId": "string",
            "image": "string",
            "imageRef": "http://imageserver.com/image?id=00003",
            "captureDate": "2019-05-21T12:00:00+01:00",
            "captureDevice": "string",
            "impressionType": "LIVE_SCAN_PLAIN",
            "width": 1,
            "height": 1,
            "bitdepth": 1,
            "mimeType": "string",
            "resolution": 1,
            "compression": "WSQ",
            "missing": [
                {
                    "biometricSubType": "RIGHT_INDEX",
                    "presence": "BANDAGED"
                }
            ],
            "metadata": "string",
            "comment": "string",
            "template": "string",
            "templateRef": "http://dataserver.com/template?id=00014",
            "templateFormat": "string",
            "quality": 1,
            "qualityFormat": "string",
            "algorithm": "string",
            "vendor": "string",
            "encryption": {
                "type": "JWE",
                "scope": "string"
            },
            "integrity": [
                {
                    "id": "string",
                    "type": "NONE",
                    "scope": "string",
                    "alg": "string",
                    "encrypted": false,
                    "hash": "string",
                    "signature": "string",
                    "signatureRef": "https://objectserver.com/signature?id=00003"
                }
            ]
        }
    ],
    "encryption": {
        "type": "JWE",
        "scope": "string"
    },
    "integrity": [
        {
            "id": "string",
            "type": "NONE",
            "scope": "string",
            "alg": "string",
            "encrypted": false,
            "hash": "string",
            "signature": "string",
            "signatureRef": "https://objectserver.com/signature?id=00003"
        }
    ]
}

Example response:

HTTP/1.1 200 OK
Content-Type: application/json

{
    "personId": "string",
    "encounterId": "string",
    "others": {
        "...": "..."
    },
    "...": "..."
}

Example response:

HTTP/1.1 202 Accepted
Content-Type: application/json

{
    "taskId": "123e4567-e89b-12d3-a456-426655440000",
    "others": {
        "...": "..."
    }
}

Example response:

HTTP/1.1 400 Bad Request
Content-Type: application/json

{
    "code": 1,
    "message": "string"
}

Example response:

HTTP/1.1 500 Internal Server Error
Content-Type: application/json

{
    "code": 1,
    "message": "string"
}

Callback: updateResponse

POST ${request.query.callback}

Update one encounter response callback

Query Parameters:
  • transactionId (string) – The id of the transaction. Object of type string. (Required)

  • taskId (string) – The id of the task, used to match this response with the request. Object of type string. (Required)

Form Parameters:
Status Codes:

Example request:

POST ${request.query.callback}?transactionId=string&taskId=string HTTP/1.1
Host: example.com
Content-Type: application/json

{
    "personId": "string",
    "encounterId": "string",
    "others": {
        "...": "..."
    },
    "...": "..."
}

Example request:

POST ${request.query.callback}?transactionId=string&taskId=string HTTP/1.1
Host: example.com
Content-Type: application/error+json

{
    "code": 1,
    "message": "string"
}

Example response:

HTTP/1.1 500 Internal Server Error
Content-Type: application/json

{
    "code": 1,
    "message": "string"
}
DELETE /v1/persons/{personId}/encounters/{encounterId}

Delete one encounter

Delete one encounter from the person identified by his/her id. If this is the last encounter in the person, the person is also deleted.

Scope required: abis.encounter.write

Parameters:
  • personId (string) – the id of the person. Object of type string.

  • encounterId (string) – the id of the encounter. Object of type string.

Query Parameters:
  • transactionId (string) – The id of the transaction. Object of type string. (Required)

  • callback (string) – the callback address, where the result will be sent when available. Object of type string/uri.

  • priority (integer) – the request priority (0: lowest priority; 9: highest priority). Object of type integer.

Status Codes:

Example response:

HTTP/1.1 202 Accepted
Content-Type: application/json

{
    "taskId": "123e4567-e89b-12d3-a456-426655440000",
    "others": {
        "...": "..."
    }
}

Example response:

HTTP/1.1 400 Bad Request
Content-Type: application/json

{
    "code": 1,
    "message": "string"
}

Example response:

HTTP/1.1 500 Internal Server Error
Content-Type: application/json

{
    "code": 1,
    "message": "string"
}

Callback: deleteResponse

POST ${request.query.callback}

Delete one encounter response callback

Query Parameters:
  • transactionId (string) – The id of the transaction. Object of type string. (Required)

  • taskId (string) – The id of the task, used to match this response with the request. Object of type string. (Required)

Status Codes:

Example request:

POST ${request.query.callback}?transactionId=string&taskId=string HTTP/1.1
Host: example.com
Content-Type: application/json

"OK"

Example request:

POST ${request.query.callback}?transactionId=string&taskId=string HTTP/1.1
Host: example.com
Content-Type: application/error+json

{
    "code": 1,
    "message": "string"
}

Example response:

HTTP/1.1 500 Internal Server Error
Content-Type: application/json

{
    "code": 1,
    "message": "string"
}
POST /v1/persons/{personIdTarget}/merge/{personIdSource}

Merge two sets of encounters

Merge two sets of encounters into a single set. Merging a set of N encounters with a set of M encounters will result in a single set of N+M encounters. Encounter ID are preserved and in case of duplicates an error 409 is returned and no changes are done.

Scope required: abis.encounter.write

Parameters:
  • personIdTarget (string) – the id of the person receiving new encounters. Object of type string.

  • personIdSource (string) – the id of the person giving the encounters. Object of type string.

Query Parameters:
  • transactionId (string) – The id of the transaction. Object of type string. (Required)

  • callback (string) – the callback address, where the result will be sent when available. Object of type string/uri.

  • priority (integer) – the request priority (0: lowest priority; 9: highest priority). Object of type integer.

Status Codes:

Example response:

HTTP/1.1 202 Accepted
Content-Type: application/json

{
    "taskId": "123e4567-e89b-12d3-a456-426655440000",
    "others": {
        "...": "..."
    }
}

Example response:

HTTP/1.1 400 Bad Request
Content-Type: application/json

{
    "code": 1,
    "message": "string"
}

Example response:

HTTP/1.1 500 Internal Server Error
Content-Type: application/json

{
    "code": 1,
    "message": "string"
}

Callback: mergeResponse

POST ${request.query.callback}

Merge two persons response callback

Query Parameters:
  • transactionId (string) – The id of the transaction. Object of type string. (Required)

  • taskId (string) – The id of the task, used to match this response with the request. Object of type string. (Required)

Status Codes:

Example request:

POST ${request.query.callback}?transactionId=string&taskId=string HTTP/1.1
Host: example.com
Content-Type: application/json

"OK"

Example request:

POST ${request.query.callback}?transactionId=string&taskId=string HTTP/1.1
Host: example.com
Content-Type: application/error+json

{
    "code": 1,
    "message": "string"
}

Example response:

HTTP/1.1 500 Internal Server Error
Content-Type: application/json

{
    "code": 1,
    "message": "string"
}
POST /v1/persons/{personIdTarget}/move/{personIdSource}/encounters/{encounterId}

Move one encounter

Move one encounter from the source person to the target person. Encounter ID is preserved and in case of duplicate an error 409 is returned and no changes are done.

Scope required: abis.encounter.write

Parameters:
  • personIdTarget (string) – the id of the person receiving the encounter. Object of type string.

  • personIdSource (string) – the id of the person giving the encounter. Object of type string.

  • encounterId (string) – the id of the encounter. Object of type string.

Query Parameters:
  • transactionId (string) – The id of the transaction. Object of type string. (Required)

  • callback (string) – the callback address, where the result will be sent when available. Object of type string/uri.

  • priority (integer) – the request priority (0: lowest priority; 9: highest priority). Object of type integer.

Status Codes:

Example response:

HTTP/1.1 202 Accepted
Content-Type: application/json

{
    "taskId": "123e4567-e89b-12d3-a456-426655440000",
    "others": {
        "...": "..."
    }
}

Example response:

HTTP/1.1 400 Bad Request
Content-Type: application/json

{
    "code": 1,
    "message": "string"
}

Example response:

HTTP/1.1 500 Internal Server Error
Content-Type: application/json

{
    "code": 1,
    "message": "string"
}

Callback: mergeResponse

POST ${request.query.callback}

Merge two persons response callback

Query Parameters:
  • transactionId (string) – The id of the transaction. Object of type string. (Required)

  • taskId (string) – The id of the task, used to match this response with the request. Object of type string. (Required)

Status Codes:

Example request:

POST ${request.query.callback}?transactionId=string&taskId=string HTTP/1.1
Host: example.com
Content-Type: application/json

"OK"

Example request:

POST ${request.query.callback}?transactionId=string&taskId=string HTTP/1.1
Host: example.com
Content-Type: application/error+json

{
    "code": 1,
    "message": "string"
}

Example response:

HTTP/1.1 500 Internal Server Error
Content-Type: application/json

{
    "code": 1,
    "message": "string"
}
PUT /v1/persons/{personId}/encounters/{encounterId}/status

Update status of an encounter

Scope required: abis.encounter.write

Parameters:
  • personId (string) – the id of the person. Object of type string.

  • encounterId (string) – the id of the encounter. Object of type string.

Query Parameters:
  • status (string) – New status of encounter. Object of type string. (Required)

  • transactionId (string) – The id of the transaction. Object of type string. (Required)

  • callback (string) – the callback address, where the result will be sent when available. Object of type string/uri.

Status Codes:

Example response:

HTTP/1.1 202 Accepted
Content-Type: application/json

{
    "taskId": "123e4567-e89b-12d3-a456-426655440000",
    "others": {
        "...": "..."
    }
}

Example response:

HTTP/1.1 400 Bad Request
Content-Type: application/json

{
    "code": 1,
    "message": "string"
}

Example response:

HTTP/1.1 500 Internal Server Error
Content-Type: application/json

{
    "code": 1,
    "message": "string"
}

Callback: updateEncounterStatusResponse

POST ${request.query.callback}

Update encounter status response callback

Query Parameters:
  • transactionId (string) – The id of the transaction. Object of type string. (Required)

  • taskId (string) – The id of the task, used to match this response with the request. Object of type string. (Required)

Status Codes:

Example request:

POST ${request.query.callback}?transactionId=string&taskId=string HTTP/1.1
Host: example.com
Content-Type: application/json

"OK"

Example request:

POST ${request.query.callback}?transactionId=string&taskId=string HTTP/1.1
Host: example.com
Content-Type: application/error+json

{
    "code": 1,
    "message": "string"
}

Example response:

HTTP/1.1 500 Internal Server Error
Content-Type: application/json

{
    "code": 1,
    "message": "string"
}
PUT /v1/persons/{personId}/encounters/{encounterId}/galleries

Update the galleries of an encounter

This service is used to move one encounter from one gallery to another one without updating the full encounter, which maybe resource consuming in a biometric system.

Scope required: abis.encounter.write

Parameters:
  • personId (string) – the id of the person. Object of type string.

  • encounterId (string) – the id of the encounter. Object of type string.

Query Parameters:
  • transactionId (string) – The id of the transaction. Object of type string. (Required)

  • callback (string) – the callback address, where the result will be sent when available. Object of type string/uri.

Form Parameters:
  • body – Array of string.

Status Codes:

Example request:

PUT /v1/persons/string/encounters/string/galleries?transactionId=string&callback=http%3A%2F%2Fclient.com%2Fcallback HTTP/1.1
Host: example.com
Content-Type: application/json

[
    "VIP",
    "CRIMINAL"
]

Example response:

HTTP/1.1 202 Accepted
Content-Type: application/json

{
    "taskId": "123e4567-e89b-12d3-a456-426655440000",
    "others": {
        "...": "..."
    }
}

Example response:

HTTP/1.1 400 Bad Request
Content-Type: application/json

{
    "code": 1,
    "message": "string"
}

Example response:

HTTP/1.1 500 Internal Server Error
Content-Type: application/json

{
    "code": 1,
    "message": "string"
}

Callback: updateEncounterGalleriesResponse

POST ${request.query.callback}

Update encounter galleries response callback

Query Parameters:
  • transactionId (string) – The id of the transaction. Object of type string. (Required)

  • taskId (string) – The id of the task, used to match this response with the request. Object of type string. (Required)

Status Codes:

Example request:

POST ${request.query.callback}?transactionId=string&taskId=string HTTP/1.1
Host: example.com
Content-Type: application/json

"OK"

Example request:

POST ${request.query.callback}?transactionId=string&taskId=string HTTP/1.1
Host: example.com
Content-Type: application/error+json

{
    "code": 1,
    "message": "string"
}

Example response:

HTTP/1.1 500 Internal Server Error
Content-Type: application/json

{
    "code": 1,
    "message": "string"
}
GET /v1/persons/{personId}/encounters/{encounterId}/templates

Read biometrics templates

Scope required: abis.encounter.read

Parameters:
  • personId (string) – the id of the person. Object of type string.

  • encounterId (string) – the id of the encounter. Object of type string.

Query Parameters:
  • biometricType (string) – the type of biometrics to return. Object of type string. Constraints: possible values are FACE, FINGER, IRIS, SIGNATURE, UNKNOWN.

  • biometricSubType (string) – the sub-type of biometrics to return. Object of type string. Constraints: possible values are UNKNOWN, RIGHT_THUMB, RIGHT_INDEX, RIGHT_MIDDLE, RIGHT_RING, RIGHT_LITTLE, LEFT_THUMB, LEFT_INDEX, LEFT_MIDDLE, LEFT_RING, LEFT_LITTLE, PLAIN_RIGHT_FOUR_FINGERS, PLAIN_LEFT_FOUR_FINGERS, PLAIN_THUMBS, UNKNOWN_PALM, RIGHT_FULL_PALM, RIGHT_WRITERS_PALM, LEFT_FULL_PALM, LEFT_WRITERS_PALM, RIGHT_LOWER_PALM, RIGHT_UPPER_PALM, LEFT_LOWER_PALM, LEFT_UPPER_PALM, RIGHT_OTHER, LEFT_OTHER, RIGHT_INTERDIGITAL, RIGHT_THENAR, RIGHT_HYPOTHENAR, LEFT_INTERDIGITAL, LEFT_THENAR, LEFT_HYPOTHENAR, RIGHT_INDEX_AND_MIDDLE, RIGHT_MIDDLE_AND_RING, RIGHT_RING_AND_LITTLE, LEFT_INDEX_AND_MIDDLE, LEFT_MIDDLE_AND_RING, LEFT_RING_AND_LITTLE, RIGHT_INDEX_AND_LEFT_INDEX, RIGHT_INDEX_AND_MIDDLE_AND_RING, RIGHT_MIDDLE_AND_RING_AND_LITTLE, LEFT_INDEX_AND_MIDDLE_AND_RING, LEFT_MIDDLE_AND_RING_AND_LITTLE, EYE_UNDEF, EYE_RIGHT, EYE_LEFT, EYE_BOTH, PORTRAIT, LEFT_PROFILE, RIGHT_PROFILE.

  • instance (string) – Used to separate two distincts biometric items of the same type and subtype. Object of type string.

  • templateFormat (string) – the format of the template to return. Object of type string. Format of the template. One of ISO_19794_2, ISO_19794_2_NS, ISO_19794_2_CS, ISO_19794_2_2011, ANSI_378_2009 or ANSI_378. Can be extended to include additional proprietary template format .

  • qualityFormat (string) – the format of the quality to return. Object of type string. Format of the quality. One of ISO_19794, NFIQ, or NFIQ2. Can be extended to include additional proprietary quality format .

  • transactionId (string) – The id of the transaction. Object of type string. (Required)

  • callback (string) – the callback address, where the result will be sent when available. Object of type string/uri.

  • priority (integer) – the request priority (0: lowest priority; 9: highest priority). Object of type integer.

Status Codes:

Example request:

GET /v1/persons/string/encounters/string/templates?biometricType=FINGER&biometricSubType=RIGHT_INDEX&instance=string&templateFormat=string&qualityFormat=string&transactionId=string&callback=http%3A%2F%2Fclient.com%2Fcallback&priority=1 HTTP/1.1
Host: example.com

Example response:

HTTP/1.1 200 OK
Content-Type: application/json

[
    {
        "biometricType": "FINGER",
        "biometricSubType": "RIGHT_INDEX",
        "instance": "string",
        "template": "string",
        "templateFormat": "string",
        "quality": 1,
        "qualityFormat": "string",
        "algorithm": "string",
        "vendor": "string"
    }
]

Example response:

HTTP/1.1 202 Accepted
Content-Type: application/json

{
    "taskId": "123e4567-e89b-12d3-a456-426655440000",
    "others": {
        "...": "..."
    }
}

Example response:

HTTP/1.1 400 Bad Request
Content-Type: application/json

{
    "code": 1,
    "message": "string"
}

Example response:

HTTP/1.1 500 Internal Server Error
Content-Type: application/json

{
    "code": 1,
    "message": "string"
}

Callback: readTemplateResponse

POST ${request.query.callback}

Read biometrics templates response callback

Query Parameters:
  • transactionId (string) – The id of the transaction. Object of type string. (Required)

  • taskId (string) – The id of the task, used to match this response with the request. Object of type string. (Required)

Form Parameters:
Status Codes:

Example request:

POST ${request.query.callback}?transactionId=string&taskId=string HTTP/1.1
Host: example.com
Content-Type: application/json

[
    {
        "biometricType": "FINGER",
        "biometricSubType": "RIGHT_INDEX",
        "instance": "string",
        "template": "string",
        "templateFormat": "string",
        "quality": 1,
        "qualityFormat": "string",
        "algorithm": "string",
        "vendor": "string"
    }
]

Example request:

POST ${request.query.callback}?transactionId=string&taskId=string HTTP/1.1
Host: example.com
Content-Type: application/error+json

{
    "code": 1,
    "message": "string"
}

Example response:

HTTP/1.1 500 Internal Server Error
Content-Type: application/json

{
    "code": 1,
    "message": "string"
}
DELETE /v1/persons/{personId}

Delete a person and all its encounters

Scope required: abis.encounter.write

Parameters:
  • personId (string) – the id of the person. Object of type string.

Query Parameters:
  • transactionId (string) – The id of the transaction. Object of type string. (Required)

  • callback (string) – the callback address, where the result will be sent when available. Object of type string/uri.

  • priority (integer) – the request priority (0: lowest priority; 9: highest priority). Object of type integer.

Status Codes:

Example response:

HTTP/1.1 202 Accepted
Content-Type: application/json

{
    "taskId": "123e4567-e89b-12d3-a456-426655440000",
    "others": {
        "...": "..."
    }
}

Example response:

HTTP/1.1 400 Bad Request
Content-Type: application/json

{
    "code": 1,
    "message": "string"
}

Example response:

HTTP/1.1 500 Internal Server Error
Content-Type: application/json

{
    "code": 1,
    "message": "string"
}

Callback: deleteResponse

POST ${request.query.callback}

Delete a person response callback

Query Parameters:
  • transactionId (string) – The id of the transaction. Object of type string. (Required)

  • taskId (string) – The id of the task, used to match this response with the request. Object of type string. (Required)

Status Codes:

Example request:

POST ${request.query.callback}?transactionId=string&taskId=string HTTP/1.1
Host: example.com
Content-Type: application/json

"OK"

Example request:

POST ${request.query.callback}?transactionId=string&taskId=string HTTP/1.1
Host: example.com
Content-Type: application/error+json

{
    "code": 1,
    "message": "string"
}

Example response:

HTTP/1.1 500 Internal Server Error
Content-Type: application/json

{
    "code": 1,
    "message": "string"
}

6.6.1.4. Task

GET /v1/tasks/{taskId}/status

Read the execution status of an asynchronous call

Scope required: abis.task.read

Parameters:
  • taskId (string) – id of the task of an asynchronous call. Object of type string.

Query Parameters:
  • transactionId (string) – id of the transaction the taskId is attached to (used mainly for tracing purpose). Object of type string. (Required)

Status Codes:
  • 200 OK – Read successful. Asynchronous service execution status may be: - PENDING: service execution still in progress - RESPONSE_SCHEDULED: service execution finished (successfully or with error), result will be returned by callback - RESPONSE_ERROR: service execution finished (successfully or with error) but sending the result by callback failed (after max retries). No new attempt is planned except if a retrigger is requested using the redeliverTaskResult operation. - RESPONSE_RETRY: service execution finished (successfully or with error) but sending the result by callback failed and a new attempt is planned (retriggering requested through redeliverTaskResult) - COMPLETED: service execution finished and result was delivered successfully. Object of type string.

  • 400 Bad Request – Bad request. Object of type Error.

  • 403 Forbidden – Operation not allowed.

  • 404 Not Found – Unknown task.

  • 500 Internal Server Error – Unexpected error. Object of type Error.

Example request:

GET /v1/tasks/string/status?transactionId=string HTTP/1.1
Host: example.com

Example response:

HTTP/1.1 200 OK
Content-Type: application/json

"PENDING"

Example response:

HTTP/1.1 400 Bad Request
Content-Type: application/json

{
    "code": 1,
    "message": "string"
}

Example response:

HTTP/1.1 500 Internal Server Error
Content-Type: application/json

{
    "code": 1,
    "message": "string"
}
POST /v1/tasks/{taskId}/redeliver

Trigger a new attempt to send a result by callback

Try to retrigger an asynchronous callback when: - call is asynchronous - response was never received, possibly because max retries was reached (e.g. network failure) - result is still available

Scope required: abis.task.update

Parameters:
  • taskId (string) – id of the task of the asynchronous call to be re-delivered. Object of type string.

Query Parameters:
  • transactionId (string) – id of the transaction the taskId is attached to (used mainly for tracing purpose). Object of type string. (Required)

Status Codes:

Example response:

HTTP/1.1 400 Bad Request
Content-Type: application/json

{
    "code": 1,
    "message": "string"
}

Example response:

HTTP/1.1 500 Internal Server Error
Content-Type: application/json

{
    "code": 1,
    "message": "string"
}

6.6.2. Data Model

6.6.2.1. Error

Table 6.27 Error

Attribute

Type

Description

Required

code

integer/int32

Error code.

Yes

message

string

Error message.

Yes

6.6.2.2. Encryption

if present, indicates that a part of the data is encrypted using the provided format.

Table 6.28 Encryption

Attribute

Type

Description

Required

type

string

Constraints: possible values are JWE, PKCS7

Yes

scope

string

A whitespace-separated list of JSON paths to nodes containing encrypted data. For each node:

  • If the node is a JSON object, the full content is encrypted and the node transformed to a single buffer. Canonicalization is recommended before encryption but not mandatory.

  • If the node is an embedded buffer (image, PDF, etc.), the value is replaced with the encrypted data.

  • If the node is a URL to a buffer, the node remains a URL in clear format but the pointed buffer is encrypted.

Yes

6.6.2.3. Integrity

Object describing the integrity (hash and signature) of a sub set of data.

It is possible to calculate multiple integrity blocks corresponding to different use cases: integrity before encryption, integrity limited to a small sub set of data and easy to check, etc.

Table 6.29 Integrity

Attribute

Type

Description

Required

id

string

An optional ID used in JSONPath expression to select a single integrity object.

type

string

Format of the signature of the hash.

Cryptographic signature is optional. Use NONE when only the hash is required.

Default: "NONE". Constraints: possible values are NONE, JWS, PKCS7

scope

string

A whitespace-separated list of JSON paths to nodes containing the data to include in the hash calculation.

It is used to build a JSON limited to the nodes identified in this scope. Then this JSON is canonicalized and a hash is calculated.

Yes

alg

string

Hash algorithm used to calculate the hash. Example of possible values: SHA256, SHA384, SHA512.

Yes

encrypted

boolean

if true, indicates that the hash was calculated using encrypted data. Default: false.

hash

string

Hash calculated from the attributes listed in scope. Hash is calculated using the following process:

  • Build an intermediate JSON containing only the fields identified in the scope

  • Canonicalize the JSON using RFC8785

  • Hash the result

Yes

signature

string

the signature of the hash. Compact format is used for JWS and PEM format for PKCS7.

signatureRef

string/uri

URI to the signature data. DER format is accepted for PKCS7 to optimize the storage space.

6.6.2.4. Encounter

Table 6.30 Encounter

Attribute

Type

Description

Required

encounterId

string

Constraints: read only

Yes

status

string

Constraints: possible values are ACTIVE, INACTIVE

Yes

encounterType

string

Type of the encounter.

Yes

createdDate

string/date-time

Date & time when the encounter was created.

updatedDate

string/date-time

Date & time when the encounter was last updated.

galleries

Array of string

The list of galleries for this object. Constraints: minItems is 1; items must be unique

Yes

clientData

string/byte

contextualData

Object of type ContextualData

The set of contextual data.

biographicData

Object of type BiographicData

The set of biographic data.

biometricData

Array of BiometricData

Yes

encryption

Object of type Encryption

if present, indicates that a part of the data is encrypted using the provided format.

integrity

Array of Integrity

6.6.2.5. ContextualData

The set of contextual data. Any type of content is accepted (number, string or object).

Example #1:

{
  "enrollmentDate": "2019-01-11"
}

6.6.2.6. BiographicData

The set of biographic data. Any type of content is accepted (number, string or object).

Example #1:

{
  "dateOfBirth": "1985-11-30",
  "gender": "M",
  "nationality": "FRA"
}

6.6.2.7. BiometricData

Table 6.31 BiometricData

Attribute

Type

Description

Required

biometricType

string

Constraints: possible values are FACE, FINGER, IRIS, SIGNATURE, UNKNOWN

Yes

biometricSubType

string

Constraints: possible values are UNKNOWN, RIGHT_THUMB, RIGHT_INDEX, RIGHT_MIDDLE, RIGHT_RING, RIGHT_LITTLE, LEFT_THUMB, LEFT_INDEX, LEFT_MIDDLE, LEFT_RING, LEFT_LITTLE, PLAIN_RIGHT_FOUR_FINGERS, PLAIN_LEFT_FOUR_FINGERS, PLAIN_THUMBS, UNKNOWN_PALM, RIGHT_FULL_PALM, RIGHT_WRITERS_PALM, LEFT_FULL_PALM, LEFT_WRITERS_PALM, RIGHT_LOWER_PALM, RIGHT_UPPER_PALM, LEFT_LOWER_PALM, LEFT_UPPER_PALM, RIGHT_OTHER, LEFT_OTHER, RIGHT_INTERDIGITAL, RIGHT_THENAR, RIGHT_HYPOTHENAR, LEFT_INTERDIGITAL, LEFT_THENAR, LEFT_HYPOTHENAR, RIGHT_INDEX_AND_MIDDLE, RIGHT_MIDDLE_AND_RING, RIGHT_RING_AND_LITTLE, LEFT_INDEX_AND_MIDDLE, LEFT_MIDDLE_AND_RING, LEFT_RING_AND_LITTLE, RIGHT_INDEX_AND_LEFT_INDEX, RIGHT_INDEX_AND_MIDDLE_AND_RING, RIGHT_MIDDLE_AND_RING_AND_LITTLE, LEFT_INDEX_AND_MIDDLE_AND_RING, LEFT_MIDDLE_AND_RING_AND_LITTLE, EYE_UNDEF, EYE_RIGHT, EYE_LEFT, EYE_BOTH, PORTRAIT, LEFT_PROFILE, RIGHT_PROFILE

instance

string

Used to separate two distincts biometric items of the same type and subtype.

encounterId

string

the id of the encounter owner of this biometric.

image

string

Encoded image buffer.

imageRef

string/uri

URI to an image.

captureDate

string/date-time

Data & time of the data capture, using RFC3339 format.

captureDevice

string

A string identifying the device used to capture the biometric.

impressionType

string

Constraints: possible values are LIVE_SCAN_PLAIN, LIVE_SCAN_ROLLED, NONLIVE_SCAN_PLAIN, NONLIVE_SCAN_ROLLED, LATENT_IMPRESSION, LATENT_TRACING, LATENT_PHOTO, LATENT_LIFT, LIVE_SCAN_SWIPE, LIVE_SCAN_VERTICAL_ROLL, LIVE_SCAN_PALM, NONLIVE_SCAN_PALM, LATENT_PALM_IMPRESSION, LATENT_PALM_TRACING, LATENT_PALM_PHOTO, LATENT_PALM_LIFT, LIVE_SCAN_OPTICAL_CONTACTLESS_PLAIN, OTHER, UNKNOWN

width

integer

the width of the image.

height

integer

the height of the image.

bitdepth

integer

mimeType

string

the nature and format of the image. The mime type definitions should be in compliance with RFC 6838.

resolution

integer

the image resolution (in DPI).

compression

string

Constraints: possible values are NONE, WSQ, JPEG, JPEG2000, PNG

missing

Array of MissingType

Optional properties indicating if a part of the biometric data is missing.

metadata

string

An optional string used to convey information vendor-specific.

comment

string

A comment about the biometric data.

template

string

Encoded template buffer.

templateRef

string/uri

URI to the template when it is managed in a dedicated data server.

templateFormat

string

Format of the template. One of ISO_19794_2, ISO_19794_2_NS, ISO_19794_2_CS, ISO_19794_2_2011, ANSI_378_2009 or ANSI_378. Can be extended to include additional proprietary template format

quality

integer/int64

Quality, as a number, of the biometric.

qualityFormat

string

Format of the quality. One of ISO_19794, NFIQ, or NFIQ2. Can be extended to include additional proprietary quality format

algorithm

string

vendor

string

encryption

Object of type Encryption

if present, indicates that a part of the data is encrypted using the provided format.

integrity

Array of Integrity

6.6.2.8. MissingType

Table 6.32 MissingType

Attribute

Type

Description

Required

biometricSubType

string

Constraints: possible values are UNKNOWN, RIGHT_THUMB, RIGHT_INDEX, RIGHT_MIDDLE, RIGHT_RING, RIGHT_LITTLE, LEFT_THUMB, LEFT_INDEX, LEFT_MIDDLE, LEFT_RING, LEFT_LITTLE, PLAIN_RIGHT_FOUR_FINGERS, PLAIN_LEFT_FOUR_FINGERS, PLAIN_THUMBS, UNKNOWN_PALM, RIGHT_FULL_PALM, RIGHT_WRITERS_PALM, LEFT_FULL_PALM, LEFT_WRITERS_PALM, RIGHT_LOWER_PALM, RIGHT_UPPER_PALM, LEFT_LOWER_PALM, LEFT_UPPER_PALM, RIGHT_OTHER, LEFT_OTHER, RIGHT_INTERDIGITAL, RIGHT_THENAR, RIGHT_HYPOTHENAR, LEFT_INTERDIGITAL, LEFT_THENAR, LEFT_HYPOTHENAR, RIGHT_INDEX_AND_MIDDLE, RIGHT_MIDDLE_AND_RING, RIGHT_RING_AND_LITTLE, LEFT_INDEX_AND_MIDDLE, LEFT_MIDDLE_AND_RING, LEFT_RING_AND_LITTLE, RIGHT_INDEX_AND_LEFT_INDEX, RIGHT_INDEX_AND_MIDDLE_AND_RING, RIGHT_MIDDLE_AND_RING_AND_LITTLE, LEFT_INDEX_AND_MIDDLE_AND_RING, LEFT_MIDDLE_AND_RING_AND_LITTLE, EYE_UNDEF, EYE_RIGHT, EYE_LEFT, EYE_BOTH, PORTRAIT, LEFT_PROFILE, RIGHT_PROFILE

presence

string

Constraints: possible values are BANDAGED, AMPUTATED, DAMAGED

6.6.2.9. BiometricComputedData

Table 6.33 BiometricComputedData

Attribute

Type

Description

Required

biometricType

string

Constraints: possible values are FACE, FINGER, IRIS, SIGNATURE, UNKNOWN

Yes

biometricSubType

string

Constraints: possible values are UNKNOWN, RIGHT_THUMB, RIGHT_INDEX, RIGHT_MIDDLE, RIGHT_RING, RIGHT_LITTLE, LEFT_THUMB, LEFT_INDEX, LEFT_MIDDLE, LEFT_RING, LEFT_LITTLE, PLAIN_RIGHT_FOUR_FINGERS, PLAIN_LEFT_FOUR_FINGERS, PLAIN_THUMBS, UNKNOWN_PALM, RIGHT_FULL_PALM, RIGHT_WRITERS_PALM, LEFT_FULL_PALM, LEFT_WRITERS_PALM, RIGHT_LOWER_PALM, RIGHT_UPPER_PALM, LEFT_LOWER_PALM, LEFT_UPPER_PALM, RIGHT_OTHER, LEFT_OTHER, RIGHT_INTERDIGITAL, RIGHT_THENAR, RIGHT_HYPOTHENAR, LEFT_INTERDIGITAL, LEFT_THENAR, LEFT_HYPOTHENAR, RIGHT_INDEX_AND_MIDDLE, RIGHT_MIDDLE_AND_RING, RIGHT_RING_AND_LITTLE, LEFT_INDEX_AND_MIDDLE, LEFT_MIDDLE_AND_RING, LEFT_RING_AND_LITTLE, RIGHT_INDEX_AND_LEFT_INDEX, RIGHT_INDEX_AND_MIDDLE_AND_RING, RIGHT_MIDDLE_AND_RING_AND_LITTLE, LEFT_INDEX_AND_MIDDLE_AND_RING, LEFT_MIDDLE_AND_RING_AND_LITTLE, EYE_UNDEF, EYE_RIGHT, EYE_LEFT, EYE_BOTH, PORTRAIT, LEFT_PROFILE, RIGHT_PROFILE

instance

string

Used to separate two distincts biometric items of the same type and subtype.

template

string

Encoded template buffer.

Yes

templateFormat

string

Format of the template. One of ISO_19794_2, ISO_19794_2_NS, ISO_19794_2_CS, ISO_19794_2_2011, ANSI_378_2009 or ANSI_378. Can be extended to include additional proprietary template format

quality

integer/int64

Quality, as a number, of the biometric.

qualityFormat

string

Format of the quality. One of ISO_19794, NFIQ, or NFIQ2. Can be extended to include additional proprietary quality format

algorithm

string

vendor

string

6.6.2.10. Filter

Additional filters used during biometric matching. It can include filters on biographicData or on biometricType (the other modalities, even if present in both the probe and the database, will not be used)

Table 6.34 Filter

Attribute

Type

Description

Required

*

Additional properties

Example #1:

{
  "dateOfBirthMin": "1980-01-01",
  "dateOfBirthMax": "2019-12-31",
  "biometricType": [
    "FINGER",
    "IRIS"
  ]
}

6.6.2.11. Candidate

Identification of a candidate result of a biometric search.

This structure can be extended by vendors able to include additional information to the three mandatory properties.

Table 6.35 Candidate

Attribute

Type

Description

Required

personId

string

the identifier of the person.

Yes

rank

integer/int32

the rank of the candidate in relation to other candidates for the same biometric identification operation.

Yes

score

number/float

the score of the candidate in relation to other candidates for the same biometric identification operation.

Yes

scores

Array of ScoreDetail

a list of comparison score(s) and optionally the type and subtype of the relating biometric.

others.*

Additional properties

6.6.2.12. ScoreDetail

Scoring information calculated after a biometric search. It includes at least the score (a float) and optionnally the encounterId, type and subtype of the matching bometric item. It can also be extended with proprietary information to better describe the matching result (for instance: rotation needed to align the probe and the candidate)

Table 6.36 ScoreDetail

Attribute

Type

Description

Required

score

number/float

the score.

Yes

encounterId

string

galleries

Array of string

Optional information about the galleries considered during the search (needed when the search is done against the ALL gallery). Constraints: minItems is 1; items must be unique

biometricType

string

Constraints: possible values are FACE, FINGER, IRIS, SIGNATURE, UNKNOWN

biometricSubType

string

Constraints: possible values are UNKNOWN, RIGHT_THUMB, RIGHT_INDEX, RIGHT_MIDDLE, RIGHT_RING, RIGHT_LITTLE, LEFT_THUMB, LEFT_INDEX, LEFT_MIDDLE, LEFT_RING, LEFT_LITTLE, PLAIN_RIGHT_FOUR_FINGERS, PLAIN_LEFT_FOUR_FINGERS, PLAIN_THUMBS, UNKNOWN_PALM, RIGHT_FULL_PALM, RIGHT_WRITERS_PALM, LEFT_FULL_PALM, LEFT_WRITERS_PALM, RIGHT_LOWER_PALM, RIGHT_UPPER_PALM, LEFT_LOWER_PALM, LEFT_UPPER_PALM, RIGHT_OTHER, LEFT_OTHER, RIGHT_INTERDIGITAL, RIGHT_THENAR, RIGHT_HYPOTHENAR, LEFT_INTERDIGITAL, LEFT_THENAR, LEFT_HYPOTHENAR, RIGHT_INDEX_AND_MIDDLE, RIGHT_MIDDLE_AND_RING, RIGHT_RING_AND_LITTLE, LEFT_INDEX_AND_MIDDLE, LEFT_MIDDLE_AND_RING, LEFT_RING_AND_LITTLE, RIGHT_INDEX_AND_LEFT_INDEX, RIGHT_INDEX_AND_MIDDLE_AND_RING, RIGHT_MIDDLE_AND_RING_AND_LITTLE, LEFT_INDEX_AND_MIDDLE_AND_RING, LEFT_MIDDLE_AND_RING_AND_LITTLE, EYE_UNDEF, EYE_RIGHT, EYE_LEFT, EYE_BOTH, PORTRAIT, LEFT_PROFILE, RIGHT_PROFILE

instance

string

Used to separate two distincts biometric items of the same type and subtype.

others.*

Additional properties

6.6.2.13. PersonIds

Table 6.37 PersonIds

Attribute

Type

Description

Required

personId

string

Yes

encounterId

string

Yes

6.6.2.14. ExtendablePersonIds

The IDs of a record (personId and encounterId) extendable with additional properties if needed by an implementation.

This is used for the response of insert & update operations, when additional properties (such as: quality evaluation, proof of record, etc.) might be returned by the server.

Any type of content is accepted (number, string or object).

6.6.2.15. TaskId

Information about the asynchronous result. Only the taskId is mandatory but the implementation is free to return additional details such as: expected duration, URL to monitor the task, etc.

Table 6.38 TaskId

Attribute

Type

Description

Required

taskId

string

Yes

others.*

Additional properties

6.6.2.16. IdentifyRequest

Table 6.39 IdentifyRequest

Attribute

Type

Description

Required

filter

Object of type Filter

Additional filters used during biometric matching. It can include filters on biographicData or on biometricType (the other modalities, even if present in both the probe and the database, will not be used)

Yes

biometricData

Array of BiometricData

Yes

encryption

Object of type Encryption

if present, indicates that a part of the data is encrypted using the provided format.

integrity

Array of Integrity

6.6.2.17. VerifyFromIdRequest

Table 6.40 VerifyFromIdRequest

Attribute

Type

Description

Required

biometricData

Array of BiometricData

Yes

encryption

Object of type Encryption

if present, indicates that a part of the data is encrypted using the provided format.

integrity

Array of Integrity

6.6.2.18. VerifyFromBioRequest

Table 6.41 VerifyFromBioRequest

Attribute

Type

Description

Required

biometricData1

Array of BiometricData

Yes

biometricData2

Array of BiometricData

Yes

encryption

Object of type Encryption

if present, indicates that a part of the data is encrypted using the provided format.

integrity

Array of Integrity