Registering a webhook endpoint
Webhook endpoints are provisioned for your organization by your TruEnroll account manager. You’ll specify:- The HTTPS URL TruEnroll should POST to
- The
audiencetype:partner(required for Partner API events)
audience: partner. Internal platform
events are not mixed into partner webhook delivery.
Event names
| Event | Fired when |
|---|---|
case.classification.completed | Document classification succeeded |
case.classification.failed | Document classification failed (terminal) |
case.extraction.completed | Extraction succeeded; structured data is ready |
case.extraction.failed | Extraction failed (terminal) |
case.forensics.completed | Forensics analysis succeeded |
case.forensics.failed | Forensics analysis failed (terminal) |
case.translation.completed | Translation succeeded; output is ready |
case.translation.failed | Translation failed (terminal) |
You only receive events for features you requested. If you submitted a case with
features=["extraction","forensics"], you won’t receive case.translation.* events.Event payload
All events share the same envelope:The event name from the table above. Use this to route incoming events in your handler.
TruEnroll’s unique case identifier. Use this to call the result endpoint.
The
externalId you provided at submission time, or null if none was provided.The timestamp when the processing event occurred internally.
Event ordering
Events for different features within the same case arrive independently and in any order — forensics and extraction run in parallel, socase.forensics.completed may arrive before
case.extraction.completed or vice versa.
Do not assume ordering between events for different features. Handle each event on its own
merits.
Events for the same feature on the same case are ordered — you won’t receive
case.extraction.completed before case.extraction.failed for the same document.
Idempotency
TruEnroll guarantees that each terminal event for a given case is dispatched at most once. Even so, your endpoint should be idempotent — network infrastructure can retry deliveries. Design your handler so that processing the same event twice produces the same outcome.Handling events
A minimal webhook handler:Classification suppression
If you submitted an upload withclassify: false, TruEnroll will not emit
case.classification.completed or case.classification.failed events for that upload.
What to do when a stage fails
Acase.*.failed event means that stage is done and won’t be retried automatically.
Other stages may still complete:
You can still call the result endpoints for stages that succeeded. Use the overall case
status (GET /cases/{id}) to determine whether to resubmit or flag for manual review.