These events are emitted by the Operations API (btrz-api-operations) when a manifests' status are updated.
Events
| Action | Event name | Endpoint |
|---|---|---|
| Manifest's status updated | manifestStatus.updated | PUT /manifests/{manifestKey}/status |
| Bulk status update async process result | mmanifests.status.bulkProcessed | PUT /manifests/status |
Manifest's status updated
This event is fired whenever a manifest's status is updated.
Payload example
{
"attemptId": "42af834a-5134-4471-8bbb-49d16b0c6b87",
"created": 1722956571,
"data": {
"manifestDate": {
"offset": 0,
"value": "2024-08-07T00:00:00.000Z"
},
"manifestId": "66b23b06abe6560503f008c6",
"routeId": "5a7214603c709e520f000047",
"scheduleId": "77cde9e4-72d8-4bd2-8026-298ee4da99d2",
"status": "paused"
},
"event": "manifestStatus.updated",
"id": "1cb1da8f-8f49-40b2-8bdc-202a771c1da0",
"livemode": false
}
Bulk status update
This event is emitted when the PUT /manifests/status endpoint is called with the mode=async search query param.
In this case, the endpoint starts processing the bulk update asynchronously and responds immediately with status 202 and a processId to correlate with this event.
The webhook uses the same outer envelope as other events (id, attemptId, created, event, livemode, data, …). What follows is the business JSON your integration should surface after it has unpacked data (wire details are handled by the webhook client / platform, not repeated here).
Payload - full outcome
The full outcome contains data about the updated manifests and the errors that occurred when trying to update them.
| Field | Type | Description |
|---|---|---|
| processId | string (UUID) | Same processId returned in the 202 response for this bulk request. |
| externalProcessId | string | External correlation id for this bulk run. Present if given when the request was made. |
| errors | array | Only failed rows. Each element contains scheduleId and date to reference the manifest in case, and an object err that contains the code and message of the error that occurred. |
| manifestsUpdated | array | One object per updated manifest, each with scheduleId and date. |
Payload - full outcome payload too large
The payload with the full outcome might be too large to deliver. In that case, the payload will show that and contain reduced data.
| Field | Type | Description |
|---|---|---|
| processId | string (UUID) | Same correlation id as the 202 response. |
| externalProcessId | string | External correlation id for this bulk run. Present if given when the request was made. |
| webhookPayloadError | object | Describes the delivery limit issue. code is always WEBHOOK_GZIP_EXCEEDS_MAX_BYTES. Other properties (e.g. message, attemptedGzipSizeBytes, maxGzipBytes, errorItemCount, manifestsUpdatedRowCount) may be present for diagnostics. |
Example - full outcome
// Remember that this is an example of the payload after unpacking the data
{
"processId": "0c335747-2d2d-44c7-9816-cee29cff3fbf",
"externalProcessId": "my-external-process-id", // Present only if sent in the request
"errors": [
{
"scheduleId": "119dfc1d-db46-4d05-af09-d6efde4d2dc2",
"date": "2026-05-06",
"err": {
"code": "CANNOT_MODIFY_MANIFEST_FROM_THE_PAST",
"message": "Cannot modify manifest from the past"
}
},
{
"scheduleId": "119dfc1d-db46-4d05-af09-d6efde4d2dc2",
"date": "2026-06-29",
"err": {
"code": "MANIFEST_EDIT_DAYS_LIMIT_EXCEEDED",
"message": "Manifest date exceeds the allowed number of days for editing"
}
},
{
"scheduleId": "119dfc1d-db46-4d05-af09-d6efde4d2dc2",
"date": "2026-06-30",
"err": {
"code": "MANIFEST_EDIT_DAYS_LIMIT_EXCEEDED",
"message": "Manifest date exceeds the allowed number of days for editing"
}
},
{
"scheduleId": "119dfc1d-db46-4d05-af09-d6efde4d2dc2",
"date": "2026-05-07",
"err": {
"code": "CANNOT_MODIFY_MANIFEST_FROM_THE_PAST",
"message": "Cannot modify manifest from the past"
}
},
{
"scheduleId": "72a37d6f-e691-48b9-a30e-efb3568a9cf7",
"date": "2026-06-09",
"err": {
"code": "MANIFEST_NOT_FOUND",
"message": "Manifest not found."
}
}
],
"manifestsUpdated": [
{
"scheduleId": "119dfc1d-db46-4d05-af09-d6efde4d2dc2",
"date": "2026-06-06"
},
{
"scheduleId": "119dfc1d-db46-4d05-af09-d6efde4d2dc2",
"date": "2026-06-07"
}
]
}
Example - full outcome payload too large
{
"processId": "0c335747-2d2d-44c7-9816-cee29cff3fbf",
"externalProcessId": "example-external-process-id-1", // Present only if given in the original request
"webhookPayloadError": {
"code": "WEBHOOK_GZIP_EXCEEDS_MAX_BYTES",
"message": "Gzipped webhook payload (1200000 bytes) exceeds the maximum (1048576 bytes). Full errors and manifestsUpdated were omitted.",
"attemptedGzipSizeBytes": 1200000,
"maxGzipBytes": 1048576,
"errorItemCount": 12,
"manifestUpdatedRowCount": 400
}
}