7.4. Enrollment¶
This is version 1.2.1 of this interface.
Get the OpenAPI file: enrollment.yaml
7.4.1. Services¶
7.4.1.1. Enrollment¶
- POST /v1/enrollments/{enrollmentId}¶
Create one enrollment
Scope required:
enroll.write
- Parameters:
enrollmentId (string) – the id of the enrollment. Object of type string.
- Query Parameters:
finalize (boolean) – Flag to indicate that data was collected (default is false). Object of type boolean.
transactionId (string) – The id of the transaction. Object of type string. (Required)
- Form Parameters:
body – Object of type Enrollment.
- Status Codes:
204 No Content – Operation successful.
400 Bad Request – Bad request. Object of type Error.
403 Forbidden – Operation not allowed.
409 Conflict – Creation not allowed, enrollmentId already exists.
500 Internal Server Error – Unexpected error. Object of type Error.
Example request:
POST /v1/enrollments/string?finalize=true&transactionId=string HTTP/1.1 Host: example.com Content-Type: application/json { "enrollmentType": "string", "enrollmentFlags": { "timeout": 3600, "other": "other", "...": "..." }, "requestData": { "priority": 1, "requestType": "FIRST_ISSUANCE", "deliveryAddress": { "address1": "11 Rue des Rosiers", "city": "Libourne", "postalCode": "33500", "country": "France" }, "...": "..." }, "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", "image": "c3RyaW5n", "imageRef": "http://imageserver.com/image?id=00003", "captureDate": "2019-05-21T12:00:00Z", "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": "c3RyaW5n", "templateRef": "http://dataserver.com/template?id=00014", "templateFormat": "string", "quality": 1, "qualityFormat": "string", "algorithm": "string", "vendor": "string" } ], "documentData": [ { "documentType": "FORM", "documentTypeOther": "string", "instance": "string", "parts": [ { "pages": [ 1 ], "data": "c3RyaW5n", "dataRef": "http://server.com/buffer?id=00003", "width": 1, "height": 1, "mimeType": "string", "captureDate": "2019-05-21T12:00:00Z", "captureDevice": "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/enrollments/{enrollmentId}¶
Read one enrollment
Scope required:
enroll.read
- Parameters:
enrollmentId (string) – the id of the enrollment. Object of type string.
- Query Parameters:
transactionId (string) – The id of the transaction. Object of type string. (Required)
attributes (array) – The (optional) set of required attributes to retrieve. If not present all attributes will be returned. Array of string.
- Status Codes:
200 OK – Read successful. Object of type Enrollment.
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/enrollments/string?transactionId=string&attributes=%5B%27string%27%5D HTTP/1.1 Host: example.com
Example response:
HTTP/1.1 200 OK Content-Type: application/json { "enrollmentId": "string", "status": "FINALIZED", "enrollmentType": "string", "enrollmentFlags": { "timeout": 3600, "other": "other", "...": "..." }, "requestData": { "priority": 1, "requestType": "FIRST_ISSUANCE", "deliveryAddress": { "address1": "11 Rue des Rosiers", "city": "Libourne", "postalCode": "33500", "country": "France" }, "...": "..." }, "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", "image": "c3RyaW5n", "imageRef": "http://imageserver.com/image?id=00003", "captureDate": "2019-05-21T12:00:00Z", "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": "c3RyaW5n", "templateRef": "http://dataserver.com/template?id=00014", "templateFormat": "string", "quality": 1, "qualityFormat": "string", "algorithm": "string", "vendor": "string" } ], "documentData": [ { "documentType": "FORM", "documentTypeOther": "string", "instance": "string", "parts": [ { "pages": [ 1 ], "data": "c3RyaW5n", "dataRef": "http://server.com/buffer?id=00003", "width": 1, "height": 1, "mimeType": "string", "captureDate": "2019-05-21T12:00:00Z", "captureDevice": "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" }
- PUT /v1/enrollments/{enrollmentId}¶
Update one enrollment
Scope required:
enroll.write
- Parameters:
enrollmentId (string) – the id of the enrollment. Object of type string.
- Query Parameters:
finalize (boolean) – Flag to indicate that data was collected (default is false). Object of type boolean.
transactionId (string) – The id of the transaction. Object of type string. (Required)
- Form Parameters:
body – Object of type Enrollment.
- 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/enrollments/string?finalize=true&transactionId=string HTTP/1.1 Host: example.com Content-Type: application/json { "enrollmentType": "string", "enrollmentFlags": { "timeout": 3600, "other": "other", "...": "..." }, "requestData": { "priority": 1, "requestType": "FIRST_ISSUANCE", "deliveryAddress": { "address1": "11 Rue des Rosiers", "city": "Libourne", "postalCode": "33500", "country": "France" }, "...": "..." }, "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", "image": "c3RyaW5n", "imageRef": "http://imageserver.com/image?id=00003", "captureDate": "2019-05-21T12:00:00Z", "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": "c3RyaW5n", "templateRef": "http://dataserver.com/template?id=00014", "templateFormat": "string", "quality": 1, "qualityFormat": "string", "algorithm": "string", "vendor": "string" } ], "documentData": [ { "documentType": "FORM", "documentTypeOther": "string", "instance": "string", "parts": [ { "pages": [ 1 ], "data": "c3RyaW5n", "dataRef": "http://server.com/buffer?id=00003", "width": 1, "height": 1, "mimeType": "string", "captureDate": "2019-05-21T12:00:00Z", "captureDevice": "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" }
- PATCH /v1/enrollments/{enrollmentId}¶
Update partially one enrollment
Update partially an enrollment. Payload content is a partial enrollment object compliant with RFC7396.
Scope required:
enroll.write
- Parameters:
enrollmentId (string) – the id of the enrollment. Object of type string.
- Query Parameters:
finalize (boolean) – Flag to indicate that data was collected (default is false). Object of type boolean.
transactionId (string) – The id of the transaction. Object of type string. (Required)
- Form Parameters:
body – Object of type Enrollment.
- 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:
PATCH /v1/enrollments/string?finalize=true&transactionId=string HTTP/1.1 Host: example.com Content-Type: application/json { "enrollmentType": "string", "enrollmentFlags": { "timeout": 3600, "other": "other", "...": "..." }, "requestData": { "priority": 1, "requestType": "FIRST_ISSUANCE", "deliveryAddress": { "address1": "11 Rue des Rosiers", "city": "Libourne", "postalCode": "33500", "country": "France" }, "...": "..." }, "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", "image": "c3RyaW5n", "imageRef": "http://imageserver.com/image?id=00003", "captureDate": "2019-05-21T12:00:00Z", "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": "c3RyaW5n", "templateRef": "http://dataserver.com/template?id=00014", "templateFormat": "string", "quality": 1, "qualityFormat": "string", "algorithm": "string", "vendor": "string" } ], "documentData": [ { "documentType": "FORM", "documentTypeOther": "string", "instance": "string", "parts": [ { "pages": [ 1 ], "data": "c3RyaW5n", "dataRef": "http://server.com/buffer?id=00003", "width": 1, "height": 1, "mimeType": "string", "captureDate": "2019-05-21T12:00:00Z", "captureDevice": "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" }
- DELETE /v1/enrollments/{enrollmentId}¶
Delete one enrollment
Scope required:
enroll.write
- Parameters:
enrollmentId (string) – the id of the enrollment. 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 – 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" }
- PUT /v1/enrollments/{enrollmentId}/finalize¶
Finalize one enrollment
Scope required:
enroll.write
- Parameters:
enrollmentId (string) – the id of the enrollment. Object of type string.
- Query Parameters:
transactionId (string) – The id of the transaction. Object of type string. (Required)
- 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 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/enrollments¶
Retrieve a list of enrollments which match passed in search criteria
Scope required:
enroll.read
- Query Parameters:
transactionId (string) – The id of the transaction. 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:
100
.
- Form Parameters:
body – A set of expressions on attributes of the person. Array of Expression.
- Status Codes:
200 OK – Query successful. Array of Enrollment.
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/enrollments?transactionId=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 [ { "enrollmentId": "string", "status": "FINALIZED", "enrollmentType": "string", "enrollmentFlags": { "timeout": 3600, "other": "other", "...": "..." }, "requestData": { "priority": 1, "requestType": "FIRST_ISSUANCE", "deliveryAddress": { "address1": "11 Rue des Rosiers", "city": "Libourne", "postalCode": "33500", "country": "France" }, "...": "..." }, "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", "image": "c3RyaW5n", "imageRef": "http://imageserver.com/image?id=00003", "captureDate": "2019-05-21T12:00:00Z", "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": "c3RyaW5n", "templateRef": "http://dataserver.com/template?id=00014", "templateFormat": "string", "quality": 1, "qualityFormat": "string", "algorithm": "string", "vendor": "string" } ], "documentData": [ { "documentType": "FORM", "documentTypeOther": "string", "instance": "string", "parts": [ { "pages": [ 1 ], "data": "c3RyaW5n", "dataRef": "http://server.com/buffer?id=00003", "width": 1, "height": 1, "mimeType": "string", "captureDate": "2019-05-21T12:00:00Z", "captureDevice": "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" }
7.4.1.2. Buffer¶
- POST /v1/enrollments/{enrollmentId}/buffer¶
Create a buffer
This service is used to send separately the buffers of the images
Scope required:
enroll.buf.write
- Parameters:
enrollmentId (string) – the id of the enrollment. Object of type string.
- Query Parameters:
transactionId (string) – The id of the transaction. Object of type string. (Required)
- Form Parameters:
body – The image of the request.
- Request Headers:
Digest – the buffer digest, as defined per RFC 3230. Object of type string.
- Status Codes:
201 Created – Operation successful. Object of type string.
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:
POST /v1/enrollments/string/buffer?transactionId=string HTTP/1.1 Host: example.com Content-Type: application/* Digest: SHA=thvDyvhfIqlvFe+A9MYgxAfm1q5= ABCDEFG...
Example request:
POST /v1/enrollments/string/buffer?transactionId=string HTTP/1.1 Host: example.com Content-Type: image/* Digest: SHA=thvDyvhfIqlvFe+A9MYgxAfm1q5= ABCDEFG...
Example response:
HTTP/1.1 201 Created Content-Type: application/json { "bufferId": "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/enrollments/{enrollmentId}/buffer/{bufferId}¶
Read a buffer
This service is used to get the buffer of the images. The content type of the response is the content type used when the buffer was created.
Scope required:
enroll.buf.read
- Parameters:
enrollmentId (string) – the id of the enrollment. Object of type string.
bufferId (string) – the id of the buffer. Object of type string.
- Query Parameters:
transactionId (string) – The id of the transaction. Object of type string. (Required)
- Response Headers:
Digest – the buffer digest, as defined per RFC 3230. Object of type string.
- Status Codes:
200 OK – Read 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:
GET /v1/enrollments/string/buffer/string?transactionId=string HTTP/1.1 Host: example.com
Example response:
HTTP/1.1 200 OK Content-Type: application/* Digest: SHA=thvDyvhfIqlvFe+A9MYgxAfm1q5= ABCDEFG...
Example response:
HTTP/1.1 200 OK Content-Type: image/* Digest: SHA=thvDyvhfIqlvFe+A9MYgxAfm1q5= ABCDEFG...
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" }
7.4.2. Data Model¶
7.4.2.1. Error¶
Attribute |
Type |
Description |
Required |
---|---|---|---|
|
integer/int32 |
Error code. |
Yes |
|
string |
Error message. |
Yes |
7.4.2.2. Enrollment¶
Attribute |
Type |
Description |
Required |
---|---|---|---|
|
string |
Constraints: read only |
Yes |
|
string |
Constraints: possible values are |
Yes |
|
string |
Type of the enrollment (example: citizen, resident, etc.). |
|
|
Object of type EnrollmentFlags |
The enrollment custom flags (i.e. the properties of the enrollment process). Can be extended. |
|
|
Object of type RequestData |
The data describing the request associated to the enrollment (i.e. why the enrollment is done). Can be extended. |
|
|
Object of type ContextualData |
||
|
Object of type BiographicData |
The set of biographic data. |
|
|
Array of BiometricData |
||
|
Array of DocumentData |
7.4.2.3. RequestData¶
The data describing the request associated to the enrollment (i.e. why the enrollment is done). Can be extended.
Attribute |
Type |
Description |
Required |
---|---|---|---|
|
Additional properties |
Example #1:
{
"priority": 1,
"requestType": "FIRST_ISSUANCE",
"deliveryAddress": {
"address1": "11 Rue des Rosiers",
"city": "Libourne",
"postalCode": "33500",
"country": "France"
}
}
7.4.2.4. EnrollmentFlags¶
The enrollment custom flags (i.e. the properties of the enrollment process). Can be extended.
Attribute |
Type |
Description |
Required |
---|---|---|---|
|
Additional properties |
Example #1:
{
"timeout": 3600,
"other": "other"
}
7.4.2.5. ContextualData¶
Attribute |
Type |
Description |
Required |
---|---|---|---|
|
Additional properties |
Example #1:
{
"enrollmentDate": "2019-01-11"
}
7.4.2.6. BiographicData¶
The set of biographic data.
Attribute |
Type |
Description |
Required |
---|---|---|---|
|
Additional properties |
Example #1:
{
"firstName": "John",
"lastName": "Doo",
"dateOfBirth": "1985-11-30",
"gender": "M",
"nationality": "FRA"
}
7.4.2.7. 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/byte |
Base64-encoded image. |
|
|
string/uri |
URI to an image. |
|
|
string/date-time |
||
|
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/byte |
Base64-encoded template. |
|
|
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 |
7.4.2.8. MissingType¶
Attribute |
Type |
Description |
Required |
---|---|---|---|
|
string |
Constraints: possible values are |
|
|
string |
Constraints: possible values are |
7.4.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/byte |
Base64-encoded data of the document. |
|
|
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. |
|
|
string/date-time |
||
|
string |
A string identifying the device used to capture the document part. |
7.4.2.10. 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 |
7.4.2.11. Expression¶
Attribute |
Type |
Description |
Required |
---|---|---|---|
|
string |
Yes |
|
|
string |
Constraints: possible values are |
Yes |
|
One of string, integer, number, boolean |
Yes |
7.4.2.12. Expressions¶
Attribute |
Type |
Description |
Required |
---|---|---|---|
N/A |
Array of Expression |