Webhook Notifications


Several operations of the Evidence Manager API run asynchronously: the HTTP request only starts the process, and the API notifies you through a webhook once it finishes. You can configure one or more callback URLs to receive these notifications.

Every notification is sent as an HTTP POST request with a JSON body with the following shape:

{
  "operation": "EVIDENCE_GROUP_CLOSED",
  "result": "OK",
  "data": {
    "evidenceGroupId": "4c33124e-d444-4e97-bbaa-50375c364aca",
    "caseFileId": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
  }
}
  • operation: identifies the event that triggered the notification. Possible values: EVIDENCE_CREATION, EVIDENCE_DELETE, EVIDENCE_GROUP_CLOSED, REPORT_CREATION and SIGNATURE_CREATION.
  • result: currently always OK.
  • data: contains the details of the event. Its content depends on the value of operation, as described below.

Evidence created

operation: "EVIDENCE_CREATION". Sent when an "Evidence" finishes its registration process (hash timestamping and, for internally custodied files, the upload to storage).

{
  "operation": "EVIDENCE_CREATION",
  "result": "OK",
  "data": {
    "evidenceId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "evidenceGroupId": "4c33124e-d444-4e97-bbaa-50375c364aca",
    "caseFileId": "57081c08-08e7-4d7e-b10a-8a98d7b1b3bd"
  }
}

evidenceGroupId and caseFileId are only present when the "Evidence" was registered within an "Evidence Group" / "Case file".

Evidence deleted

operation: "EVIDENCE_DELETE". Sent when the file of an "Evidence" has been fully deleted from storage.

{
  "operation": "EVIDENCE_DELETE",
  "result": "OK",
  "data": {
    "evidenceId": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
  }
}

Evidence Group closed

operation: "EVIDENCE_GROUP_CLOSED". Sent when an "Evidence Group" reaches the CLOSED status after a close request.

{
  "operation": "EVIDENCE_GROUP_CLOSED",
  "result": "OK",
  "data": {
    "evidenceGroupId": "4c33124e-d444-4e97-bbaa-50375c364aca",
    "caseFileId": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
  }
}

Report generated

operation: "REPORT_CREATION". Sent when a signed report has been generated and timestamped.

{
  "operation": "REPORT_CREATION",
  "result": "OK",
  "data": {
    "reportId": "1d6d735d-0383-42d1-bfb9-6d4cf71aa739",
    "reportName": "example-report",
    "reportUrl": "https://example.com/reports/example-report.pdf",
    "evidencePackageUrl": "https://example.com/reports/example-report.zip"
  }
}

Sign file completed

operation: "SIGNATURE_CREATION". Sent when the Embed company seal to pdf process finishes.

{
  "operation": "SIGNATURE_CREATION",
  "result": "OK",
  "data": {
    "processId": "1d6d735d-0383-42d1-bfb9-6d4cf71aa739",
    "fileId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "status": "FILE_SIGNED_FINISHED",
    "url": "https://example.com/signed/example-report.pdf"
  }
}

Configuration & Security

Webhook notifications are configured per tenant. You can provide one or more callback URLs; when more than one URL is configured, every URL receives every notification.

Every webhook request includes an Authorization header with the token agreed with your Legal App platform contact:

Authorization: Bearer <your_token>

This lets your endpoint verify the authenticity of the request by checking the token.

Delivery and retries

A notification is considered delivered when your endpoint responds with 200, 201, 204, 404 or 422. Any other response (including 400 or 401, or a connection error) is retried automatically with increasing delays, up to a limited number of attempts; after that, the notification is discarded. Because of this, your endpoint should be idempotent and should not assume notifications arrive strictly once or in order.