Manifest status

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
  }
}