6.5. Population Registry Management¶
This is version 1.5.0 of this interface.
Get the OpenAPI file: pr.yaml
6.5.1. Services¶
6.5.1.1. Person¶
- POST /v1/persons¶
Query for persons
Retrieve a list of personId corresponding to the records with one identity matching the criteria.
By default, all identities are used in the search.
Scope required:
pr.person.read- Query Parameters:
transactionId (string) – The id of the transaction. Object of type string. (Required)
group (boolean) – Group all matching identities of one person and return only the personId. Object of type boolean.
reference (boolean) – Limit the query to the reference identity. Object of type boolean.
gallery (string) – Limit the query to the records belonging to this gallery. Object of type string.
offset (integer) – The offset of the query (first item of the response). Object of type integer. Default:
0.limit (integer) – The maximum number of items to return. Object of type integer. Default:
100.
- Form Parameters:
body – A set of expressions on attributes of the person’s identity. Array of Expression.
- Status Codes:
200 OK – Query successful. If the group parameter was set the identityId is not included in the response. Object of type Array.
400 Bad Request – Bad request. Object of type Error.
403 Forbidden – Query not allowed.
500 Internal Server Error – Unexpected error. Object of type Error.
Example request:
POST /v1/persons?transactionId=string&group=true&reference=true&gallery=string&offset=0&limit=100 HTTP/1.1 Host: example.com Content-Type: application/json [ { "attributeName": "firstName", "operator": "=", "value": "John" }, { "attributeName": "dateOfBirth", "operator": "<", "value": "1990-12-31" } ]
Example response:
HTTP/1.1 200 OK Content-Type: application/json [ { "personId": "string", "identityId": "string" } ]
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/persons/{personId}¶
Create one person
Scope required:
pr.person.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)
- Form Parameters:
body – Object of type Person.
- Status Codes:
201 Created – Operation successful.
400 Bad Request – Bad request. Object of type Error.
403 Forbidden – Operation not allowed.
409 Conflict – Creation not allowed, personId already exists.
500 Internal Server Error – Unexpected error. Object of type Error.
Example request:
POST /v1/persons/string?transactionId=string HTTP/1.1 Host: example.com Content-Type: application/json { "status": "ACTIVE", "physicalStatus": "DEAD" }
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" }
- GET /v1/persons/{personId}¶
Read one person
Scope required:
pr.person.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)
- Status Codes:
400 Bad Request – Bad request. Object of type Error.
403 Forbidden – Read not allowed.
404 Not Found – Unknown record.
500 Internal Server Error – Unexpected error. Object of type Error.
Example request:
GET /v1/persons/string?transactionId=string HTTP/1.1 Host: example.com
Example response:
HTTP/1.1 200 OK Content-Type: application/json { "personId": "string", "status": "ACTIVE", "physicalStatus": "DEAD" }
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" }
- PUT /v1/persons/{personId}¶
Update one person
Scope required:
pr.person.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)
- Form Parameters:
body – Object of type Person.
- Status Codes:
204 No Content – Update successful.
400 Bad Request – Bad request. Object of type Error.
403 Forbidden – Update not allowed.
404 Not Found – Unknown record.
500 Internal Server Error – Unexpected error. Object of type Error.
Example request:
PUT /v1/persons/string?transactionId=string HTTP/1.1 Host: example.com Content-Type: application/json { "status": "ACTIVE", "physicalStatus": "DEAD" }
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" }
- DELETE /v1/persons/{personId}¶
Delete a person and all its identities
Scope required:
pr.person.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)
- Status Codes:
204 No Content – Delete successful.
400 Bad Request – Bad request. Object of type Error.
403 Forbidden – Delete not allowed.
404 Not Found – Unknown record.
500 Internal Server Error – Unexpected error. Object of type Error.
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/persons/{personIdTarget}/merge/{personIdSource}¶
Merge two persons
Merge two person records into a single one. Identity ID are preserved and in case of duplicates an error 409 is returned and no changes are done. If the operation is successful, the person merged is deleted.
Scope required:
pr.person.write- Parameters:
personIdTarget (string) – the id of the person receiving new identities. Object of type string.
personIdSource (string) – the id of the person giving the identities. Object of type string.
- Query Parameters:
transactionId (string) – The id of the transaction. Object of type string. (Required)
- Status Codes:
204 No Content – Merge successful.
400 Bad Request – Bad request. Object of type Error.
403 Forbidden – Merge not allowed.
409 Conflict – Creation not allowed, conflict of identityId.
404 Not Found – Unknown record.
500 Internal Server Error – Unexpected error. Object of type Error.
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.5.1.2. Identity¶
- GET /v1/persons/{personId}/identities¶
Read all the identities of a person
Scope required:
pr.identity.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)
- Status Codes:
400 Bad Request – Bad request. Object of type Error.
403 Forbidden – Operation not allowed.
404 Not Found – Unknown record.
500 Internal Server Error – Unexpected error. Object of type Error.
Example request:
GET /v1/persons/string/identities?transactionId=string HTTP/1.1 Host: example.com
Example response:
HTTP/1.1 200 OK Content-Type: application/json [ { "identityId": "string", "identityType": "string", "status": "CLAIMED", "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": { "firstName": "John", "lastName": "Doo", "dateOfBirth": "1985-11-30", "gender": "M", "nationality": "FRA", "...": "..." }, "biometricData": [ { "biometricType": "FINGER", "biometricSubType": "RIGHT_INDEX", "instance": "string", "identityId": "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, "followRef": false, "hash": "string", "signature": "string", "signatureRef": "https://objectserver.com/signature?id=00003" } ] } ], "documentData": [ { "documentType": "FORM", "documentTypeOther": "string", "instance": "string", "parts": [ { "pages": [ 1 ], "data": "string", "dataRef": "http://server.com/buffer?id=00003", "width": 1, "height": 1, "mimeType": "string", "captureDate": "2019-05-21T12:00:00+01:00", "captureDevice": "string", "encryption": { "type": "JWE", "scope": "string" }, "integrity": [ { "id": "string", "type": "NONE", "scope": "string", "alg": "string", "encrypted": false, "followRef": false, "hash": "string", "signature": "string", "signatureRef": "https://objectserver.com/signature?id=00003" } ] } ], "integrity": [ { "id": "string", "type": "NONE", "scope": "string", "alg": "string", "encrypted": false, "followRef": 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, "followRef": false, "hash": "string", "signature": "string", "signatureRef": "https://objectserver.com/signature?id=00003" } ] } ]
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/persons/{personId}/identities¶
Create one identity and generate its id
Scope required:
pr.identity.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)
- Form Parameters:
body – Object of type Identity.
- Status Codes:
200 OK – Insertion successful. Object of type string.
400 Bad Request – Bad request. Object of type Error.
403 Forbidden – Insertion not allowed.
500 Internal Server Error – Unexpected error. Object of type Error.
Example request:
POST /v1/persons/string/identities?transactionId=string HTTP/1.1 Host: example.com Content-Type: application/json { "identityType": "string", "status": "CLAIMED", "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": { "firstName": "John", "lastName": "Doo", "dateOfBirth": "1985-11-30", "gender": "M", "nationality": "FRA", "...": "..." }, "biometricData": [ { "biometricType": "FINGER", "biometricSubType": "RIGHT_INDEX", "instance": "string", "identityId": "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, "followRef": false, "hash": "string", "signature": "string", "signatureRef": "https://objectserver.com/signature?id=00003" } ] } ], "documentData": [ { "documentType": "FORM", "documentTypeOther": "string", "instance": "string", "parts": [ { "pages": [ 1 ], "data": "string", "dataRef": "http://server.com/buffer?id=00003", "width": 1, "height": 1, "mimeType": "string", "captureDate": "2019-05-21T12:00:00+01:00", "captureDevice": "string", "encryption": { "type": "JWE", "scope": "string" }, "integrity": [ { "id": "string", "type": "NONE", "scope": "string", "alg": "string", "encrypted": false, "followRef": false, "hash": "string", "signature": "string", "signatureRef": "https://objectserver.com/signature?id=00003" } ] } ], "integrity": [ { "id": "string", "type": "NONE", "scope": "string", "alg": "string", "encrypted": false, "followRef": 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, "followRef": false, "hash": "string", "signature": "string", "signatureRef": "https://objectserver.com/signature?id=00003" } ] }
Example response:
HTTP/1.1 200 OK Content-Type: application/json { "identityId": "string" }
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/persons/{personId}/identities/{identityId}¶
Create one identity
Create one new identity for a person. The provided identityId is checked for validity and used for the new identity.
Scope required:
pr.identity.write- Parameters:
personId (string) – the id of the person. Object of type string.
identityId (string) – the id of the identity. Object of type string.
- Query Parameters:
transactionId (string) – The id of the transaction. Object of type string. (Required)
- Form Parameters:
body – Object of type Identity.
- Status Codes:
201 Created – Insertion successful.
400 Bad Request – Bad request. Object of type Error.
403 Forbidden – Insertion not allowed.
409 Conflict – Creation not allowed, identityId already exists.
500 Internal Server Error – Unexpected error. Object of type Error.
Example request:
POST /v1/persons/string/identities/string?transactionId=string HTTP/1.1 Host: example.com Content-Type: application/json { "identityType": "string", "status": "CLAIMED", "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": { "firstName": "John", "lastName": "Doo", "dateOfBirth": "1985-11-30", "gender": "M", "nationality": "FRA", "...": "..." }, "biometricData": [ { "biometricType": "FINGER", "biometricSubType": "RIGHT_INDEX", "instance": "string", "identityId": "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, "followRef": false, "hash": "string", "signature": "string", "signatureRef": "https://objectserver.com/signature?id=00003" } ] } ], "documentData": [ { "documentType": "FORM", "documentTypeOther": "string", "instance": "string", "parts": [ { "pages": [ 1 ], "data": "string", "dataRef": "http://server.com/buffer?id=00003", "width": 1, "height": 1, "mimeType": "string", "captureDate": "2019-05-21T12:00:00+01:00", "captureDevice": "string", "encryption": { "type": "JWE", "scope": "string" }, "integrity": [ { "id": "string", "type": "NONE", "scope": "string", "alg": "string", "encrypted": false, "followRef": false, "hash": "string", "signature": "string", "signatureRef": "https://objectserver.com/signature?id=00003" } ] } ], "integrity": [ { "id": "string", "type": "NONE", "scope": "string", "alg": "string", "encrypted": false, "followRef": 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, "followRef": false, "hash": "string", "signature": "string", "signatureRef": "https://objectserver.com/signature?id=00003" } ] }
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" }
- GET /v1/persons/{personId}/identities/{identityId}¶
Read one identity
Scope required:
pr.identity.read- Parameters:
personId (string) – the id of the person. Object of type string.
identityId (string) – the id of the identity. Object of type string.
- Query Parameters:
transactionId (string) – The id of the transaction. Object of type string. (Required)
- Status Codes:
400 Bad Request – Bad request. Object of type Error.
403 Forbidden – Read not allowed.
404 Not Found – Unknown record.
500 Internal Server Error – Unexpected error. Object of type Error.
Example request:
GET /v1/persons/string/identities/string?transactionId=string HTTP/1.1 Host: example.com
Example response:
HTTP/1.1 200 OK Content-Type: application/json { "identityId": "string", "identityType": "string", "status": "CLAIMED", "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": { "firstName": "John", "lastName": "Doo", "dateOfBirth": "1985-11-30", "gender": "M", "nationality": "FRA", "...": "..." }, "biometricData": [ { "biometricType": "FINGER", "biometricSubType": "RIGHT_INDEX", "instance": "string", "identityId": "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, "followRef": false, "hash": "string", "signature": "string", "signatureRef": "https://objectserver.com/signature?id=00003" } ] } ], "documentData": [ { "documentType": "FORM", "documentTypeOther": "string", "instance": "string", "parts": [ { "pages": [ 1 ], "data": "string", "dataRef": "http://server.com/buffer?id=00003", "width": 1, "height": 1, "mimeType": "string", "captureDate": "2019-05-21T12:00:00+01:00", "captureDevice": "string", "encryption": { "type": "JWE", "scope": "string" }, "integrity": [ { "id": "string", "type": "NONE", "scope": "string", "alg": "string", "encrypted": false, "followRef": false, "hash": "string", "signature": "string", "signatureRef": "https://objectserver.com/signature?id=00003" } ] } ], "integrity": [ { "id": "string", "type": "NONE", "scope": "string", "alg": "string", "encrypted": false, "followRef": 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, "followRef": false, "hash": "string", "signature": "string", "signatureRef": "https://objectserver.com/signature?id=00003" } ] }
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" }
- PUT /v1/persons/{personId}/identities/{identityId}¶
Update one identity
Scope required:
pr.identity.write- Parameters:
personId (string) – the id of the person. Object of type string.
identityId (string) – the id of the identity. Object of type string.
- Query Parameters:
transactionId (string) – The id of the transaction. Object of type string. (Required)
- Form Parameters:
body – Object of type Identity.
- Status Codes:
204 No Content – Update successful.
400 Bad Request – Bad request. Object of type Error.
403 Forbidden – Update not allowed.
404 Not Found – Unknown record.
500 Internal Server Error – Unexpected error. Object of type Error.
Example request:
PUT /v1/persons/string/identities/string?transactionId=string HTTP/1.1 Host: example.com Content-Type: application/json { "identityType": "string", "status": "CLAIMED", "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": { "firstName": "John", "lastName": "Doo", "dateOfBirth": "1985-11-30", "gender": "M", "nationality": "FRA", "...": "..." }, "biometricData": [ { "biometricType": "FINGER", "biometricSubType": "RIGHT_INDEX", "instance": "string", "identityId": "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, "followRef": false, "hash": "string", "signature": "string", "signatureRef": "https://objectserver.com/signature?id=00003" } ] } ], "documentData": [ { "documentType": "FORM", "documentTypeOther": "string", "instance": "string", "parts": [ { "pages": [ 1 ], "data": "string", "dataRef": "http://server.com/buffer?id=00003", "width": 1, "height": 1, "mimeType": "string", "captureDate": "2019-05-21T12:00:00+01:00", "captureDevice": "string", "encryption": { "type": "JWE", "scope": "string" }, "integrity": [ { "id": "string", "type": "NONE", "scope": "string", "alg": "string", "encrypted": false, "followRef": false, "hash": "string", "signature": "string", "signatureRef": "https://objectserver.com/signature?id=00003" } ] } ], "integrity": [ { "id": "string", "type": "NONE", "scope": "string", "alg": "string", "encrypted": false, "followRef": 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, "followRef": false, "hash": "string", "signature": "string", "signatureRef": "https://objectserver.com/signature?id=00003" } ] }
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" }
- PATCH /v1/persons/{personId}/identities/{identityId}¶
Update partially one identity
Update partially an identity. Payload content is a partial identity object compliant with RFC7396.
Scope required:
pr.identity.write- Parameters:
personId (string) – the id of the person. Object of type string.
identityId (string) – the id of the identity. Object of type string.
- Query Parameters:
transactionId (string) – The id of the transaction. Object of type string. (Required)
- Form Parameters:
body – Object of type Identity.
- Status Codes:
204 No Content – Update successful.
400 Bad Request – Bad request. Object of type Error.
403 Forbidden – Update not allowed.
404 Not Found – Unknown record.
500 Internal Server Error – Unexpected error. Object of type Error.
Example of updating only the galleries and 2 biographicData elements:
PATCH /v1/persons/string/identities/string?transactionId=string HTTP/1.1 Host: example.com Content-Type: application/json { "galleries": [ "G1", "G2" ], "biographicData": { "gender": null, "nationality": "FRA" } }
Example of updating the list of documents with one VerifiableCredential:
PATCH /v1/persons/string/identities/string?transactionId=string HTTP/1.1 Host: example.com Content-Type: application/json { "documentData": [ { "documentType": "ID_CARD", "parts": [ { "data": "VC DATA", "mimeType": "application/vc" } ] } ] }
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" }
- DELETE /v1/persons/{personId}/identities/{identityId}¶
Delete one identity
Scope required:
pr.identity.write- Parameters:
personId (string) – the id of the person. Object of type string.
identityId (string) – the id of the identity. Object of type string.
- Query Parameters:
transactionId (string) – The id of the transaction. Object of type string. (Required)
- Status Codes:
204 No Content – Delete successful.
400 Bad Request – Bad request. Object of type Error.
403 Forbidden – Delete not allowed.
404 Not Found – Unknown record.
500 Internal Server Error – Unexpected error. Object of type Error.
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/persons/{personIdTarget}/move/{personIdSource}/identities/{identityId}¶
Move one identity
Move one identity from the source person to the target person. Identity ID is preserved and in case of duplicate an error 409 is returned and no changes are done. The source person is not deleted, even if it was the only identity of this person.
Scope required:
pr.identity.write- Parameters:
personIdTarget (string) – the id of the person receiving the identity. Object of type string.
personIdSource (string) – the id of the person giving the identity. Object of type string.
identityId (string) – the id of the identity. Object of type string.
- Query Parameters:
transactionId (string) – The id of the transaction. Object of type string. (Required)
- Status Codes:
204 No Content – Move successful.
400 Bad Request – Bad request. Object of type Error.
403 Forbidden – Move not allowed.
404 Not Found – Unknown record.
409 Conflict – Operation not allowed, conflict of identityId.
500 Internal Server Error – Unexpected error. Object of type Error.
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" }
- PUT /v1/persons/{personId}/identities/{identityId}/status¶
Change the status of an identity
Scope required:
pr.identity.write- Parameters:
personId (string) – the id of the person. Object of type string.
identityId (string) – the id of the identity. Object of type string.
- Query Parameters:
status (string) – The status of the identity. Object of type string. (Required)
transactionId (string) – The id of the transaction. Object of type string. (Required)
- Status Codes:
204 No Content – Operation successful.
400 Bad Request – Bad request. Object of type Error.
403 Forbidden – Operation not allowed.
404 Not Found – Unknown record.
500 Internal Server Error – Unexpected error. Object of type Error.
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.5.1.3. Reference¶
- PUT /v1/persons/{personId}/identities/{identityId}/reference¶
Define the reference
Scope required:
pr.reference.write- Parameters:
personId (string) – the id of the person. Object of type string.
identityId (string) – the id of the identity. Object of type string.
- Query Parameters:
transactionId (string) – The id of the transaction. Object of type string. (Required)
- Status Codes:
204 No Content – Operation successful.
400 Bad Request – Bad request. Object of type Error.
403 Forbidden – Operation not allowed.
404 Not Found – Unknown record.
500 Internal Server Error – Unexpected error. Object of type Error.
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" }
- GET /v1/persons/{personId}/reference¶
Read the reference
Scope required:
pr.reference.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)
- Status Codes:
400 Bad Request – Bad request. Object of type Error.
403 Forbidden – Read not allowed.
404 Not Found – Unknown record.
500 Internal Server Error – Unexpected error. Object of type Error.
Example request:
GET /v1/persons/string/reference?transactionId=string HTTP/1.1 Host: example.com
Example response:
HTTP/1.1 200 OK Content-Type: application/json { "identityId": "string", "identityType": "string", "status": "CLAIMED", "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": { "firstName": "John", "lastName": "Doo", "dateOfBirth": "1985-11-30", "gender": "M", "nationality": "FRA", "...": "..." }, "biometricData": [ { "biometricType": "FINGER", "biometricSubType": "RIGHT_INDEX", "instance": "string", "identityId": "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, "followRef": false, "hash": "string", "signature": "string", "signatureRef": "https://objectserver.com/signature?id=00003" } ] } ], "documentData": [ { "documentType": "FORM", "documentTypeOther": "string", "instance": "string", "parts": [ { "pages": [ 1 ], "data": "string", "dataRef": "http://server.com/buffer?id=00003", "width": 1, "height": 1, "mimeType": "string", "captureDate": "2019-05-21T12:00:00+01:00", "captureDevice": "string", "encryption": { "type": "JWE", "scope": "string" }, "integrity": [ { "id": "string", "type": "NONE", "scope": "string", "alg": "string", "encrypted": false, "followRef": false, "hash": "string", "signature": "string", "signatureRef": "https://objectserver.com/signature?id=00003" } ] } ], "integrity": [ { "id": "string", "type": "NONE", "scope": "string", "alg": "string", "encrypted": false, "followRef": 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, "followRef": false, "hash": "string", "signature": "string", "signatureRef": "https://objectserver.com/signature?id=00003" } ] }
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.5.1.4. Gallery¶
- GET /v1/galleries¶
Read the ID of all the galleries
Scope required:
pr.gallery.read- Query Parameters:
transactionId (string) – The id of the transaction. Object of type string. (Required)
- Status Codes:
200 OK – Operation successful. Array of string.
400 Bad Request – Bad request. Object of type Error.
403 Forbidden – Read not allowed.
500 Internal Server Error – Unexpected error. Object of type Error.
Example request:
GET /v1/galleries?transactionId=string HTTP/1.1 Host: example.com
Example response:
HTTP/1.1 200 OK Content-Type: application/json [ "string" ]
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" }
- GET /v1/galleries/{galleryId}¶
Read the content of one gallery
Scope required:
pr.gallery.read- Parameters:
galleryId (string) – the id of the gallery. Object of type string.
- Query Parameters:
transactionId (string) – The id of the transaction. The special value ‘ALL’ is used to get the content of all galleries. Object of type string. (Required)
offset (integer) – The offset of the query (first item of the response). Object of type integer. Default:
0.limit (integer) – The maximum number of items to return. Object of type integer. Default:
1000.
- Status Codes:
200 OK – Operation successful. Object of type Array.
400 Bad Request – Bad request. Object of type Error.
403 Forbidden – Read not allowed.
404 Not Found – Unknown record.
500 Internal Server Error – Unexpected error. Object of type Error.
Example request:
GET /v1/galleries/string?transactionId=string&offset=0&limit=1000 HTTP/1.1 Host: example.com
Example response:
HTTP/1.1 200 OK Content-Type: application/json [ { "personId": "string", "identityId": "string" } ]
Example response:
HTTP/1.1 200 OK Content-Type: text/csv PersonId, identityId 0001, 01 0001, 02 0002, 01
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.5.2. Data Model¶
6.5.2.1. Error¶
Attribute |
Type |
Description |
Required |
|---|---|---|---|
|
integer/int32 |
Error code. |
Yes |
|
string |
Error message. |
Yes |
6.5.2.2. Encryption¶
if present, indicates that a part of the data is encrypted using the provided format.
Attribute |
Type |
Description |
Required |
|---|---|---|---|
|
string |
Constraints: possible values are |
Yes |
|
string |
A whitespace-separated list of JSON paths to nodes containing encrypted data. For each node:
|
Yes |
6.5.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.
Attribute |
Type |
Description |
Required |
|---|---|---|---|
|
string |
An optional ID used in JSONPath expression to select a single integrity object. |
|
|
string |
Format of the signature of the hash. Cryptographic signature is optional. Use NONE when only the hash is required. Default: |
|
|
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 |
|
string |
Hash algorithm used to calculate the hash. Example of possible values: SHA256, SHA384, SHA512. |
Yes |
|
boolean |
if true, indicates that the hash was calculated using encrypted data. Default: |
|
|
boolean |
if true, indicates that the referenced buffers must be fetched and included in the hash. If false, only the URL is considered for the hash calculation Default: |
|
|
string |
Hash calculated from the attributes listed in scope. Hash is calculated using the following process:
|
Yes |
|
string |
the signature of the hash. Compact format is used for JWS and PEM format for PKCS7. |
|
|
string/uri |
URI to the signature data. DER format is accepted for PKCS7 to optimize the storage space. |
6.5.2.4. Person¶
Person entity.
Attribute |
Type |
Description |
Required |
|---|---|---|---|
|
string |
The unique id for this person. Constraints: read only |
|
|
string |
Constraints: possible values are |
Yes |
|
string |
Constraints: possible values are |
Yes |
6.5.2.5. Identity¶
Attribute |
Type |
Description |
Required |
|---|---|---|---|
|
string |
Constraints: read only |
Yes |
|
string |
Yes |
|
|
string |
Constraints: possible values are |
Yes |
|
string/date-time |
Date & time when the encounter was created. |
|
|
string/date-time |
Date & time when the encounter was last updated. |
|
|
Array of string |
The list of galleries for this object. Constraints: minItems is 1; items must be unique |
|
|
string/byte |
||
|
Object of type ContextualData |
The set of contextual data. |
|
|
Object of type BiographicData |
The set of biographic data. |
|
|
Array of BiometricData |
||
|
Array of DocumentData |
||
|
Object of type Encryption |
if present, indicates that a part of the data is encrypted using the provided format. |
|
|
Array of Integrity |
6.5.2.6. ContextualData¶
The set of contextual data. Any type of content is accepted (number, string or object).
Example #1:
{
"enrollmentDate": "2019-01-11"
}
6.5.2.7. BiographicData¶
The set of biographic data. Any type of content is accepted (number, string or object).
Example #1:
{
"firstName": "John",
"lastName": "Doo",
"dateOfBirth": "1985-11-30",
"gender": "M",
"nationality": "FRA"
}
6.5.2.8. DocumentData¶
Attribute |
Type |
Description |
Required |
|---|---|---|---|
|
string |
Type of document. Constraints: possible values are |
Yes |
|
string |
Details about the type of document when OTHER is used. |
|
|
string |
Used to separate two distincts documents of the same type (ex: two passports). |
|
|
Array of DocumentPart |
Constraints: minItems is 1 |
Yes |
|
Array of Integrity |
6.5.2.9. DocumentPart¶
Attribute |
Type |
Description |
Required |
|---|---|---|---|
|
Array of integer |
The pages included in this part. Can be a single page number, or a list. Constraints: minItems is 1 |
|
|
string |
Encoded data buffer. |
|
|
string/uri |
URI to the data. |
|
|
integer |
the width of the image in pixels. |
|
|
integer |
the height of the image in pixels. |
|
|
string |
the nature and format of the document. The mime type definitions should be in compliance with RFC 6838. Verifiable Credentials can be used if the proper mimeType is used. |
|
|
string/date-time |
Data & time of the data capture, using RFC3339 format. |
|
|
string |
A string identifying the device used to capture the document part. |
|
|
Object of type Encryption |
if present, indicates that a part of the data is encrypted using the provided format. |
|
|
Array of Integrity |
6.5.2.10. BiometricData¶
Attribute |
Type |
Description |
Required |
|---|---|---|---|
|
string |
Constraints: possible values are |
Yes |
|
string |
Constraints: possible values are |
|
|
string |
Used to separate two distincts biometric items of the same type and subtype. |
|
|
string |
the id of the identity owner of this biometric. |
|
|
string |
Encoded image buffer. |
|
|
string/uri |
URI to an image. |
|
|
string/date-time |
Data & time of the data capture, using RFC3339 format. |
|
|
string |
A string identifying the device used to capture the biometric. |
|
|
string |
Constraints: possible values are |
|
|
integer |
the width of the image. |
|
|
integer |
the height of the image. |
|
|
integer |
||
|
string |
the nature and format of the image. The mime type definitions should be in compliance with RFC 6838. |
|
|
integer |
the image resolution (in DPI). |
|
|
string |
Constraints: possible values are |
|
|
Array of MissingType |
Optional properties indicating if a part of the biometric data is missing. |
|
|
string |
An optional string used to convey information vendor-specific. |
|
|
string |
A comment about the biometric data. |
|
|
string |
Encoded template buffer. |
|
|
string/uri |
URI to the template when it is managed in a dedicated data server. |
|
|
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 |
|
|
integer/int64 |
Quality, as a number, of the biometric. |
|
|
string |
Format of the quality. One of ISO_19794, NFIQ, or NFIQ2. Can be extended to include additional proprietary quality format |
|
|
string |
||
|
string |
||
|
Object of type Encryption |
if present, indicates that a part of the data is encrypted using the provided format. |
|
|
Array of Integrity |
6.5.2.11. MissingType¶
Attribute |
Type |
Description |
Required |
|---|---|---|---|
|
string |
Constraints: possible values are |
|
|
string |
Constraints: possible values are |
6.5.2.12. Expression¶
Attribute |
Type |
Description |
Required |
|---|---|---|---|
|
string |
Yes |
|
|
string |
Constraints: possible values are |
Yes |
|
One of string, integer, number, boolean |
Yes |
6.5.2.13. Expressions¶
Attribute |
Type |
Description |
Required |
|---|---|---|---|
N/A |
Array of Expression |