# Validate shipment (returns domain validation errors without mutating state) Returns cancelled member manifests and per-manifest validation results (duplicated tracks, non-existing tracks, deactivated tracks) without modifying the shipment. Endpoint: GET /integration/rest/api/v1/shipment/{shipmentExternalId}/validate Version: v0 Security: X-AUTH-KEY ## Path parameters: - `shipmentExternalId` (string, required) Shipment external identifier or uuid. Example: "SHIP-2024-001" ## Response 200 fields (*/*): - `canceledManifests` (array) Manifests that are in CANCELLED status while still attached to the shipment. - `canceledManifests.uuid` (string) Internal manifest identifier (uuid). - `canceledManifests.externalIdentifier` (string) Caller-assigned manifest external identifier, if any. - `canceledManifests.manifestStatus` (string) Current manifest status. Enum: "PLANNED", "TO_DO", "IN_PROGRESS", "COMPLETED", "CANCELLED" - `manifestValidations` (array) Per-manifest validation results (duplicated tracks, non-existing tracks, deactivated tracks) for each non-cancelled attached manifest. - `manifestValidations.duplicatedTracks` (array) List of duplicated track issues (same asset added multiple times to the manifest). - `manifestValidations.duplicatedTracks.trackIdentifier` (string) Business identifier of the duplicated track. - `manifestValidations.duplicatedTracks.addedToManifests` (array) List of manifest identifiers where this track is already present. - `manifestValidations.nonExistingTracks` (array) Asset identifiers that could not be found. - `manifestValidations.deactivatedTracks` (array) Asset identifiers that are deactivated and cannot be added. ## Response 403 fields (*/*): - `code` (string) Error code - `message` (string) Error message - `timeStamp` (integer) Timestamp - `correlationId` (string) Correlation id ## Response 404 fields (*/*): - `code` (string) Error code - `message` (string) Error message - `timeStamp` (integer) Timestamp - `correlationId` (string) Correlation id ## Response 500 fields (*/*): - `code` (string) Error code - `message` (string) Error message - `timeStamp` (integer) Timestamp - `correlationId` (string) Correlation id