Download OpenAPI specification:Download
Signicat's Digital Evidence Management API offers a simple way to capture audit trail data. This can include information on authentications, payment transactions or acceptance of GDPR consent messages.
The Digital Evidence Management API is a RESTful API that uses the OAuth 2.0 protocol for authorisation. All request and response bodies are formatted in JSON.
Creates a new record. There are four required fields: "type", "metadata", "coreData", "TTL" and two optional fields: "relations" and "auditLevel".
| Type name | Description (suggested use) |
|---|---|
| GDPR | Can be used for documentation of GDPR compliance. |
| TRANSACTION | Can be used for documenting financial transactions. |
| LOG_IN | Can be used for documenting users logging in to a system. |
| SIGNATURE | Can be used for documenting digital signatures. |
| SENSITIVE | Can be used for documenting sensitive information. |
| OTHER | Can be used for everything else. |
| SIMPLE | Uses hashing to verify data. |
| ADVANCED | Uses TSA to timestamp and verify. |
| QUALIFIED | USES QTSA to timestamp and verify. Default if value is not set explicitly |
| Signicat-Usage-Context | string |
| type required | string |
required | object |
required | object |
| ttl required | integer <int32> >= 2 |
| relations | Array of strings |
| auditLevel | string |
{- "type": "string",
- "metadata": {
- "property1": null,
- "property2": null
}, - "coreData": {
- "property1": null,
- "property2": null
}, - "ttl": 2,
- "relations": [
- "string"
], - "auditLevel": "string"
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "metadata": {
- "property1": null,
- "property2": null
}, - "systemMetadata": {
- "type": "GDPR",
- "expiryDate": "2019-08-24T14:15:22Z",
- "createdDate": "2019-08-24T14:15:22Z",
- "createdDateTime": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "auditLevel": "QUALIFIED"
}, - "coreData": {
- "property1": null,
- "property2": null
}, - "timestampData": {
- "property1": null,
- "property2": null
}, - "relations": [
- {
- "relationID": "string",
- "type": "GDPR",
- "_links": {
- "property1": {
- "href": "string",
- "hreflang": "string",
- "title": "string",
- "type": "string",
- "deprecation": "string",
- "profile": "string",
- "name": "string",
- "templated": true
}, - "property2": {
- "href": "string",
- "hreflang": "string",
- "title": "string",
- "type": "string",
- "deprecation": "string",
- "profile": "string",
- "name": "string",
- "templated": true
}
}
}
], - "_links": {
- "property1": {
- "href": "string",
- "hreflang": "string",
- "title": "string",
- "type": "string",
- "deprecation": "string",
- "profile": "string",
- "name": "string",
- "templated": true
}, - "property2": {
- "href": "string",
- "hreflang": "string",
- "title": "string",
- "type": "string",
- "deprecation": "string",
- "profile": "string",
- "name": "string",
- "templated": true
}
}
}Updates the Time to Live (TTL) of selected records by a defined query.
The query is built on the MongoDB Query Language (MQL), but it is database-agnostic.
required | object (QueryRequestBody) An object containing up to three lists of |
| ttl required | integer <int32> >= 2 |
{- "query": {
- "and": [
- {
- "field": "string",
- "operator": "string",
- "value": null
}
], - "or": [
- {
- "field": "string",
- "operator": "string",
- "value": null
}
], - "not": [
- {
- "field": "string",
- "operator": "string",
- "value": null
}
]
}, - "ttl": 2
}5Queries the database to return a pageable list of records without coreData.
If no body is included, the endpoint will return pages of all records.
The size and page number as well as sorting and ordering of the returned page is decided by the parameters page, size and sort.
| List name | Description |
|---|---|
| and | Combines the QueryConditions with the logical AND operator. All of the QueryConditions need to return true. |
| or | Combines the QueryConditions with the logical OR operator. Only one of the QueryConditions needs to return true. |
| Field | Description |
|---|---|
| metadata | Metadata added by the user. |
| systemMetadata | Metadata added by DEM. |
| relations | Any other record relations added by the user. |
| Query Operation | Description |
|---|---|
| eq | Checks if the field's value matches the input value exactly. |
| ne | Checks if the field's value does not match the input value. |
| gt | Checks if the field's value is greater than the input value. Works best with numeric values. |
| gte | Checks if the field's value is greater than or equal to the input value. Works best with numeric values. |
| lt | Checks if the field's value is less than the input value. Works best with numeric values. |
| lte | Checks if the field's value is less than or equal to the input value. Works best with numeric values. |
| regex | Checks if the field's value contains the input value using regex. Works best with String values. |
| in | Checks if the field's value matches any of the values in the inputted array. |
| nin | Checks if the field's value does not match any of the values in the inputted array. |
| page | integer <int32> |
| size | integer <int32> |
Array of objects (QueryCondition) | |
Array of objects (QueryCondition) | |
Array of objects (QueryCondition) |
{- "and": [
- {
- "field": "string",
- "operator": "string",
- "value": null
}
], - "or": [
- {
- "field": "string",
- "operator": "string",
- "value": null
}
], - "not": [
- {
- "field": "string",
- "operator": "string",
- "value": null
}
]
}The response will contain a list of matching records under the "_embedded" field, with page information under the "page" field and page links under the "_links" field.
{- "_embedded": {
- "records": [
- {
- "id": "a1f786ad-a6ba-41b6-8902-e3baee511077",
- "metadata": {
- "system": {
- "expiryDate": "2021-08-13T00:00:00.000+00:00",
- "createdDate": "2021-08-12T00:00:00.000+00:00",
- "createdBy": "dev-convincing-seed-432",
- "createdDateTime": "2021-08-12T09:55:48.000+00:00",
- "type": "SIGNATURE",
- "timestamp": "MoI..."
}, - "custom": {
- "customField1": "abc",
- "customField2": "abc",
- "customField3": "abc"
}
}, - "relations": [ ],
- "_links": {
}
}, - {
- "id": "faf43e96-b4ac-4a52-be5b-8bfd8fb7cbd3",
- "metadata": {
- "system": {
- "expiryDate": "2021-08-13T00:00:00.000+00:00",
- "createdDate": "2021-08-12T00:00:00.000+00:00",
- "createdBy": "dev-convincing-seed-432",
- "createdDateTime": "2021-08-12T09:55:50.000+00:00",
- "type": "SIGNATURE",
- "timestamp": "MoI..."
}, - "custom": {
- "customField1": "abc",
- "customField2": "abc",
- "customField3": "abc"
}
}, - "relations": [ ],
- "_links": {
}
}, - {
- "id": "82400e44-6db1-479d-8a9c-f62b97917f59",
- "metadata": {
- "system": {
- "expiryDate": "2021-08-13T00:00:00.000+00:00",
- "createdDate": "2021-08-12T00:00:00.000+00:00",
- "createdBy": "dev-convincing-seed-432",
- "createdDateTime": "2021-08-12T09:55:51.000+00:00",
- "type": "SIGNATURE",
- "timestamp": "MoI..."
}, - "custom": {
- "customField1": "abc",
- "customField2": "abc",
- "customField3": "abc"
}
}, - "relations": [ ],
- "_links": {
}
}
]
}, - "_links": {
}, - "page": {
- "size": 10,
- "totalElements": 3,
- "totalPages": 1,
- "number": 0
}
}Retrieves a specific record by its ID. The given ID must conform to the UUID/GUID standard.
For example: 123e4567-e89b-12d3-a456-556642440000
Returns everything included in the record entity.
| id required | string^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}... Example: 123e4567-e89b-12d3-a456-556642440000 Unique identifier for a record. |
// ... // Variables, acquired beforehand String id = "<your-recordId>"; String bearerToken = "Bearer <your-bearer-token>"; // Set-up connection URL url = new URL("https://api.signicat.com/dem/records/" + id); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setRequestMethod("GET"); connection.setRequestProperty("Authorization", bearerToken); BufferedReader responseBufferedReader = new BufferedReader(new InputStreamReader(connection.getInputStream())); // Iterate through and print out response (not required) String line = responseBufferedReader.readLine(); while (line != null) { System.out.println(line); line = responseBufferedReader.readLine(); } // ...
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "metadata": {
- "property1": null,
- "property2": null
}, - "systemMetadata": {
- "type": "GDPR",
- "expiryDate": "2019-08-24T14:15:22Z",
- "createdDate": "2019-08-24T14:15:22Z",
- "createdDateTime": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "auditLevel": "QUALIFIED"
}, - "coreData": {
- "property1": null,
- "property2": null
}, - "timestampData": {
- "property1": null,
- "property2": null
}, - "relations": [
- {
- "relationID": "string",
- "type": "GDPR",
- "_links": {
- "property1": {
- "href": "string",
- "hreflang": "string",
- "title": "string",
- "type": "string",
- "deprecation": "string",
- "profile": "string",
- "name": "string",
- "templated": true
}, - "property2": {
- "href": "string",
- "hreflang": "string",
- "title": "string",
- "type": "string",
- "deprecation": "string",
- "profile": "string",
- "name": "string",
- "templated": true
}
}
}
], - "_links": {
- "property1": {
- "href": "string",
- "hreflang": "string",
- "title": "string",
- "type": "string",
- "deprecation": "string",
- "profile": "string",
- "name": "string",
- "templated": true
}, - "property2": {
- "href": "string",
- "hreflang": "string",
- "title": "string",
- "type": "string",
- "deprecation": "string",
- "profile": "string",
- "name": "string",
- "templated": true
}
}
}Specifies when the record will automatically be deleted from the database. Takes an amount of days as a positive integer of 2 or higher and updates the expiry date with the new value.
| id required | string^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}... Example: 123e4567-e89b-12d3-a456-556642440000 Unique identifier for a record. |
| ttl required | integer <int32> |
{- "ttl": 0
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "metadata": {
- "property1": null,
- "property2": null
}, - "systemMetadata": {
- "type": "GDPR",
- "expiryDate": "2019-08-24T14:15:22Z",
- "createdDate": "2019-08-24T14:15:22Z",
- "createdDateTime": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "auditLevel": "QUALIFIED"
}, - "relations": [
- {
- "relationID": "string",
- "type": "GDPR",
- "_links": {
- "property1": {
- "href": "string",
- "hreflang": "string",
- "title": "string",
- "type": "string",
- "deprecation": "string",
- "profile": "string",
- "name": "string",
- "templated": true
}, - "property2": {
- "href": "string",
- "hreflang": "string",
- "title": "string",
- "type": "string",
- "deprecation": "string",
- "profile": "string",
- "name": "string",
- "templated": true
}
}
}
], - "_links": {
- "property1": {
- "href": "string",
- "hreflang": "string",
- "title": "string",
- "type": "string",
- "deprecation": "string",
- "profile": "string",
- "name": "string",
- "templated": true
}, - "property2": {
- "href": "string",
- "hreflang": "string",
- "title": "string",
- "type": "string",
- "deprecation": "string",
- "profile": "string",
- "name": "string",
- "templated": true
}
}
}Takes a Record ID as a parameter. It retrieves the record and generates a PDF report for the record.
| id required | string^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}... Example: 123e4567-e89b-12d3-a456-556642440000 Unique identifier for a record. |
Example output of report endpoint. Long string of text representing the base64 encoded pdf document.
JVBERi0xLjMKJ...