Download OpenAPI specification:
Logistics operations API for the 4klyft platform.
This API provides comprehensive endpoints for managing:
All API endpoints (except /api/docs and /api/v1/iam/auth/*) require JWT Bearer token authentication.
Include the token in the Authorization header:
Authorization: Bearer <your-jwt-token>
API requests are rate-limited to ensure fair usage. Standard limits are:
Wizard-time custodian connection validation endpoint.
POST /api/warehousing/custodians/test-connection with {type, connectionConfig}.
Returns {ok, code, message} indicating whether the supplied credentials
pass the per-provider validator. Phase 4 only validates structural shape;
Phase 5 will round-trip against the upstream adapter API.
Retrieve a paginated list of custodians with optional filters.
| type | string |
| status | string Enum: "active" "suspended" "disconnected" |
| partnerId | string <uuid> |
| search | string |
| page | integer >= 1 Default: 1 |
| itemsPerPage | integer [ 1 .. 100 ] Default: 20 |
{- "totalItems": 0,
- "search": {
- "@type": "string",
- "template": "string",
- "variableRepresentation": "string",
- "mapping": [
- {
- "@type": "string",
- "variable": "string",
- "property": "string",
- "required": true
}
]
}, - "view": {
- "@id": "string",
- "@type": "string",
- "first": "string",
- "last": "string",
- "previous": "string",
- "next": "string"
}, - "member": [
- {
- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "string",
- "partnerId": "string",
- "partnerName": "string",
- "type": "internal",
- "name": "string",
- "status": "active",
- "enabledCapabilities": [
- "string"
], - "connectionConfigured": false,
- "createdAt": "string",
- "updatedAt": "string"
}
]
}Create a new custodian (warehouse operator).
Custodian creation data
| partnerId required | string <uuid> |
| type required | string Enum: "internal" "amazon_fba" "bol_fbb" "shiphero" "shipbob" "flexport" "sendcloud" "custom" |
| name required | string [ 1 .. 255 ] characters |
| enabledCapabilities | Array of strings |
object or null Direct-credential providers only (SendCloud, ShipHero, ShipBob). OAuth providers (Amazon FBA, Bol FBB, Flexport) connect via the wizard. |
{- "partnerId": "bf408d53-df49-40a6-8455-a34bd4360901",
- "type": "internal",
- "name": "string",
- "enabledCapabilities": [
- "string"
], - "connectionConfig": {
- "publicKey": "string",
- "secretKey": "string",
- "integrationId": "string",
- "apiKey": "string",
- "accountId": "string",
- "accessToken": "string",
- "channelId": "string",
- "webhookSecret": "string"
}
}{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "string",
- "partnerId": "string",
- "partnerName": "string",
- "type": "internal",
- "name": "string",
- "status": "active",
- "enabledCapabilities": [
- "string"
], - "connectionConfigured": false,
- "createdAt": "string",
- "updatedAt": "string"
}Resolve the custodian profile held by a partner. Returns 404 when the partner holds no custodian.
| partnerId required | string <uuid> |
| id required | string Custodian identifier |
{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "string",
- "partnerId": "string",
- "partnerName": "string",
- "type": "internal",
- "name": "string",
- "status": "active",
- "enabledCapabilities": [
- "string"
], - "connectionConfigured": false,
- "createdAt": "string",
- "updatedAt": "string"
}Returns the default Capabilities each CustodianType supports. Used by the custodian creation wizards to display the technical baseline before the tenant opts in.
{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "default",
- "catalog": {
- "property1": [
- "string"
], - "property2": [
- "string"
]
}
}Create a custodian for an EXISTING partner and assign the Partner.Custodian role. Idempotent: returns the existing custodian (200) when the partner already holds one.
Onboarding data
| partnerId required | string <uuid> |
| type required | string Enum: "internal" "amazon_fba" "bol_fbb" "shiphero" "shipbob" "flexport" "sendcloud" "custom" |
| name required | string |
{- "partnerId": "bf408d53-df49-40a6-8455-a34bd4360901",
- "type": "internal",
- "name": "string"
}{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "string",
- "partnerId": "string",
- "partnerName": "string",
- "type": "internal",
- "name": "string",
- "status": "active",
- "enabledCapabilities": [
- "string"
], - "connectionConfigured": false,
- "createdAt": "string",
- "updatedAt": "string"
}Validate the supplied connection config for a given CustodianType without persisting any state. Used by the wizard UI for live feedback.
Custodian type + connection config to validate
| type required | string Enum: "internal" "amazon_fba" "bol_fbb" "shiphero" "shipbob" "flexport" "sendcloud" "custom" |
required | object |
{- "type": "internal",
- "connectionConfig": { }
}{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "test-connection",
- "ok": false,
- "code": "string",
- "message": ""
}Retrieve a single custodian by its UUID.
| id required | string Custodian identifier |
{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "string",
- "partnerId": "string",
- "partnerName": "string",
- "type": "internal",
- "name": "string",
- "status": "active",
- "enabledCapabilities": [
- "string"
], - "connectionConfigured": false,
- "createdAt": "string",
- "updatedAt": "string"
}Disable a capability on a custodian
| id required | string Custodian identifier |
The new Custodian resource
| capability required | string Enum: "tenant_picks_warehouse" "provider_picks_warehouse" "list_inventory" "push_inventory" "cancel_order" "webhook_receipt" "label_generation" |
{- "capability": "tenant_picks_warehouse"
}{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "string",
- "partnerId": "string",
- "partnerName": "string",
- "type": "internal",
- "name": "string",
- "status": "active",
- "enabledCapabilities": [
- "string"
], - "connectionConfigured": false,
- "createdAt": "string",
- "updatedAt": "string"
}Enable a capability on a custodian
| id required | string Custodian identifier |
The new Custodian resource
| capability required | string Enum: "tenant_picks_warehouse" "provider_picks_warehouse" "list_inventory" "push_inventory" "cancel_order" "webhook_receipt" "label_generation" |
{- "capability": "tenant_picks_warehouse"
}{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "string",
- "partnerId": "string",
- "partnerName": "string",
- "type": "internal",
- "name": "string",
- "status": "active",
- "enabledCapabilities": [
- "string"
], - "connectionConfigured": false,
- "createdAt": "string",
- "updatedAt": "string"
}Update custodian connection configuration
| id required | string Custodian identifier |
The new Custodian resource
required | object (ConnectionConfigInput) |
{- "connectionConfig": {
- "publicKey": "string",
- "secretKey": "string",
- "integrationId": "string",
- "apiKey": "string",
- "accountId": "string",
- "accessToken": "string",
- "channelId": "string",
- "webhookSecret": "string"
}
}{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "string",
- "partnerId": "string",
- "partnerName": "string",
- "type": "internal",
- "name": "string",
- "status": "active",
- "enabledCapabilities": [
- "string"
], - "connectionConfigured": false,
- "createdAt": "string",
- "updatedAt": "string"
}Disconnect an external custodian
| id required | string Custodian identifier |
{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "string",
- "partnerId": "string",
- "partnerName": "string",
- "type": "internal",
- "name": "string",
- "status": "active",
- "enabledCapabilities": [
- "string"
], - "connectionConfigured": false,
- "createdAt": "string",
- "updatedAt": "string"
}Reactivate a custodian
| id required | string Custodian identifier |
{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "string",
- "partnerId": "string",
- "partnerName": "string",
- "type": "internal",
- "name": "string",
- "status": "active",
- "enabledCapabilities": [
- "string"
], - "connectionConfigured": false,
- "createdAt": "string",
- "updatedAt": "string"
}Suspend a custodian
| id required | string Custodian identifier |
{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "string",
- "partnerId": "string",
- "partnerName": "string",
- "type": "internal",
- "name": "string",
- "status": "active",
- "enabledCapabilities": [
- "string"
], - "connectionConfigured": false,
- "createdAt": "string",
- "updatedAt": "string"
}OAuth / API-key wizard endpoints for the three external custodian providers:
POST /api/warehousing/custodian-wizard/{provider}/auth-start POST /api/warehousing/custodian-wizard/{provider}/auth-callback GET /api/warehousing/custodian-wizard/{provider}/resources?custodianId=...
{provider} is the CustodianType key — amazon_fba, bol_fbb, or flexport.
Connection testing is exposed via the existing /custodians/test-connection
endpoint (passing custodianId in the connectionConfig payload).
Exchanges the authorization code or API key for tokens, encrypts them, and persists the resulting ConnectionConfig on the target Custodian. Returns the updated Custodian resource.
| provider required | string Enum: "amazon_fba" "bol_fbb" "flexport" CustodianWizard identifier |
Wizard completion payload
| custodianId required | string <ulid> |
| state required | string |
| code | string |
object | |
object |
{- "custodianId": "string",
- "state": "string",
- "code": "string",
- "credentials": { },
- "resourceSelection": { }
}{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "wizard",
- "provider": "",
- "authorizationUrl": "string",
- "state": "",
- "expiresInSeconds": 0,
- "requiredFields": [
- {
- "property1": "string",
- "property2": "string"
}
], - "requiresAuthorizationUrl": false,
- "resources": {
- "property1": "string",
- "property2": "string"
}
}For OAuth providers returns an authorizationUrl + signed state; for API-key providers returns a requiredFields schema for the wizard form.
| provider required | string Enum: "amazon_fba" "bol_fbb" "flexport" CustodianWizard identifier |
Wizard start payload
| custodianId required | string <ulid> |
| redirectUri | string or null |
{- "custodianId": "string",
- "redirectUri": "string"
}{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "wizard",
- "provider": "",
- "authorizationUrl": "string",
- "state": "",
- "expiresInSeconds": 0,
- "requiredFields": [
- {
- "property1": "string",
- "property2": "string"
}
], - "requiresAuthorizationUrl": false,
- "resources": {
- "property1": "string",
- "property2": "string"
}
}Returns the marketplaces, retailers, or warehouseHints the wizard UI must let the user pick from. Requires a completed wizard (custodian must have a stored ConnectionConfig).
| provider required | string Enum: "amazon_fba" "bol_fbb" "flexport" CustodianWizard identifier |
| custodianId required | string <ulid> |
{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "wizard",
- "provider": "",
- "authorizationUrl": "string",
- "state": "",
- "expiresInSeconds": 0,
- "requiredFields": [
- {
- "property1": "string",
- "property2": "string"
}
], - "requiresAuthorizationUrl": false,
- "resources": {
- "property1": "string",
- "property2": "string"
}
}Retrieve a paginated list of shipment contents manifests with optional status/source/carrier filters.
| status | string Enum: "assembled" "carrier_assigned" "dispatched" "cancelled" |
| sourceRef | string |
| carrierId | string |
| page | integer >= 1 Default: 1 |
| itemsPerPage | integer [ 1 .. 100 ] Default: 20 |
{- "totalItems": 0,
- "search": {
- "@type": "string",
- "template": "string",
- "variableRepresentation": "string",
- "mapping": [
- {
- "@type": "string",
- "variable": "string",
- "property": "string",
- "required": true
}
]
}, - "view": {
- "@id": "string",
- "@type": "string",
- "first": "string",
- "last": "string",
- "previous": "string",
- "next": "string"
}, - "member": [
- {
- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "string",
- "status": "assembled",
- "sourceRef": "string",
- "carrierId": "string",
- "tracking": {
- "shipmentId": "string",
- "trackingNumber": "string",
- "trackingUrl": "string",
- "lastKnownLocation": "string",
- "status": "string",
- "updatedAt": "string"
}, - "lines": [
- {
- "lineId": "string",
- "inventoryItemId": "string",
- "quantity": 0,
- "lotId": "string",
- "serialUnitId": "string",
- "sourceQuantId": "string",
- "fulfilmentOrderLineRef": "string"
}
], - "cancellationReason": "string",
- "createdBy": "string",
- "createdAt": "string",
- "updatedAt": "string"
}
]
}Assemble the contents manifest of a shipment (typically from an OutboundDelivery) with its manifest lines.
The new Consignment resource
| sourceRef | string or null |
Array of objects (ConsignmentLineInput) |
{- "sourceRef": "string",
- "lines": [
- {
- "inventoryItemId": "string",
- "quantity": 0,
- "lineId": "string",
- "lotId": "string",
- "serialUnitId": "string",
- "sourceQuantId": "string",
- "fulfilmentOrderLineRef": "string"
}
]
}{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "string",
- "status": "assembled",
- "sourceRef": "string",
- "carrierId": "string",
- "tracking": {
- "shipmentId": "string",
- "trackingNumber": "string",
- "trackingUrl": "string",
- "lastKnownLocation": "string",
- "status": "string",
- "updatedAt": "string"
}, - "lines": [
- {
- "lineId": "string",
- "inventoryItemId": "string",
- "quantity": 0,
- "lotId": "string",
- "serialUnitId": "string",
- "sourceQuantId": "string",
- "fulfilmentOrderLineRef": "string"
}
], - "cancellationReason": "string",
- "createdBy": "string",
- "createdAt": "string",
- "updatedAt": "string"
}Retrieve a single consignment (shipment contents manifest) by its ULID.
| id required | string Consignment identifier |
{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "string",
- "status": "assembled",
- "sourceRef": "string",
- "carrierId": "string",
- "tracking": {
- "shipmentId": "string",
- "trackingNumber": "string",
- "trackingUrl": "string",
- "lastKnownLocation": "string",
- "status": "string",
- "updatedAt": "string"
}, - "lines": [
- {
- "lineId": "string",
- "inventoryItemId": "string",
- "quantity": 0,
- "lotId": "string",
- "serialUnitId": "string",
- "sourceQuantId": "string",
- "fulfilmentOrderLineRef": "string"
}
], - "cancellationReason": "string",
- "createdBy": "string",
- "createdAt": "string",
- "updatedAt": "string"
}Assign the CARRIER that will move the consignment (never a Shipment).
| id required | string Consignment identifier |
The new Consignment resource
| carrierId required | string |
{- "carrierId": "string"
}{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "string",
- "status": "assembled",
- "sourceRef": "string",
- "carrierId": "string",
- "tracking": {
- "shipmentId": "string",
- "trackingNumber": "string",
- "trackingUrl": "string",
- "lastKnownLocation": "string",
- "status": "string",
- "updatedAt": "string"
}, - "lines": [
- {
- "lineId": "string",
- "inventoryItemId": "string",
- "quantity": 0,
- "lotId": "string",
- "serialUnitId": "string",
- "sourceQuantId": "string",
- "fulfilmentOrderLineRef": "string"
}
], - "cancellationReason": "string",
- "createdBy": "string",
- "createdAt": "string",
- "updatedAt": "string"
}Cancel the consignment
| id required | string Consignment identifier |
The new Consignment resource
| reason required | string |
{- "reason": "string"
}{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "string",
- "status": "assembled",
- "sourceRef": "string",
- "carrierId": "string",
- "tracking": {
- "shipmentId": "string",
- "trackingNumber": "string",
- "trackingUrl": "string",
- "lastKnownLocation": "string",
- "status": "string",
- "updatedAt": "string"
}, - "lines": [
- {
- "lineId": "string",
- "inventoryItemId": "string",
- "quantity": 0,
- "lotId": "string",
- "serialUnitId": "string",
- "sourceQuantId": "string",
- "fulfilmentOrderLineRef": "string"
}
], - "cancellationReason": "string",
- "createdBy": "string",
- "createdAt": "string",
- "updatedAt": "string"
}Only from CARRIER_ASSIGNED. Idempotent.
| id required | string Consignment identifier |
{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "string",
- "status": "assembled",
- "sourceRef": "string",
- "carrierId": "string",
- "tracking": {
- "shipmentId": "string",
- "trackingNumber": "string",
- "trackingUrl": "string",
- "lastKnownLocation": "string",
- "status": "string",
- "updatedAt": "string"
}, - "lines": [
- {
- "lineId": "string",
- "inventoryItemId": "string",
- "quantity": 0,
- "lotId": "string",
- "serialUnitId": "string",
- "sourceQuantId": "string",
- "fulfilmentOrderLineRef": "string"
}
], - "cancellationReason": "string",
- "createdBy": "string",
- "createdAt": "string",
- "updatedAt": "string"
}Record the latest denormalized carrier-tracking state fed down from Shipping.
| id required | string Consignment identifier |
The new Consignment resource
object (ShipmentTrackingInput) |
{- "tracking": {
- "shipmentId": "string",
- "trackingNumber": "string",
- "trackingUrl": "string",
- "lastKnownLocation": "string",
- "status": "string",
- "updatedAt": "string"
}
}{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "string",
- "status": "assembled",
- "sourceRef": "string",
- "carrierId": "string",
- "tracking": {
- "shipmentId": "string",
- "trackingNumber": "string",
- "trackingUrl": "string",
- "lastKnownLocation": "string",
- "status": "string",
- "updatedAt": "string"
}, - "lines": [
- {
- "lineId": "string",
- "inventoryItemId": "string",
- "quantity": 0,
- "lotId": "string",
- "serialUnitId": "string",
- "sourceQuantId": "string",
- "fulfilmentOrderLineRef": "string"
}
], - "cancellationReason": "string",
- "createdBy": "string",
- "createdAt": "string",
- "updatedAt": "string"
}Read-only API surface for the immutable GoodsIssue POSTING produced by OutboundDelivery.post(). Distinct from the legacy GoodsIssue worklist resource: a posting has no expected/picked lifecycle — only its issued snapshot lines.
Retrieve a single immutable GoodsIssue posting (produced by posting an outbound delivery) by its ULID.
| id required | string GoodsIssuePosting identifier |
{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "string",
- "number": "string",
- "warehouseId": "string",
- "subject": "string",
- "lines": [
- {
- "inventoryItemId": "string",
- "quantity": 0,
- "status": "string",
- "location": "string",
- "lotId": "string",
- "serialUnitId": "string"
}
], - "createdBy": "string",
- "createdAt": "string"
}GoodsIssues in DRAFT or PICKING state for a given warehouse, sorted oldest-first so the queue serves FIFO. warehouseId is required.
| warehouseId required | string <uuid> |
| page | integer >= 1 Default: 1 |
| itemsPerPage | integer [ 1 .. 100 ] Default: 50 |
{- "totalItems": 0,
- "search": {
- "@type": "string",
- "template": "string",
- "variableRepresentation": "string",
- "mapping": [
- {
- "@type": "string",
- "variable": "string",
- "property": "string",
- "required": true
}
]
}, - "view": {
- "@id": "string",
- "@type": "string",
- "first": "string",
- "last": "string",
- "previous": "string",
- "next": "string"
}, - "member": [
- {
- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "",
- "number": "string",
- "warehouseId": "",
- "warehouseName": "string",
- "status": "",
- "subject": "string",
- "subjectResource": "string",
- "movementReason": "cycle_count_adjustment",
- "currency": "",
- "shipmentId": "string",
- "cancellationReason": "string",
- "createdBy": "string",
- "lineItems": [
- {
- "id": "string",
- "inventoryItemId": "string",
- "expectedQuantity": 0,
- "pickedQuantity": 0,
- "unitCost": 0,
- "trackingRef": "string",
- "reservationRef": "string"
}
], - "createdAt": "",
- "updatedAt": "string",
- "pickerAssignmentId": "string",
- "pickerAssignmentAt": "string"
}
]
}Retrieve a paginated list of goods issues with optional filters.
| warehouseId | string <uuid> |
| status | string Enum: "draft" "picking" "issued" "cancelled" |
| movementReason | string Enum: "cycle_count_adjustment" "damage_write_off" "found_stock" "opening_balance" "internal_consumption" "sample" "scrap" |
| page | integer >= 1 Default: 1 |
| itemsPerPage | integer [ 1 .. 100 ] Default: 20 |
{- "totalItems": 0,
- "search": {
- "@type": "string",
- "template": "string",
- "variableRepresentation": "string",
- "mapping": [
- {
- "@type": "string",
- "variable": "string",
- "property": "string",
- "required": true
}
]
}, - "view": {
- "@id": "string",
- "@type": "string",
- "first": "string",
- "last": "string",
- "previous": "string",
- "next": "string"
}, - "member": [
- {
- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "",
- "number": "string",
- "warehouseId": "",
- "warehouseName": "string",
- "status": "",
- "subject": "string",
- "subjectResource": "string",
- "movementReason": "cycle_count_adjustment",
- "currency": "",
- "shipmentId": "string",
- "cancellationReason": "string",
- "createdBy": "string",
- "lineItems": [
- {
- "id": "string",
- "inventoryItemId": "string",
- "expectedQuantity": 0,
- "pickedQuantity": 0,
- "unitCost": 0,
- "trackingRef": "string",
- "reservationRef": "string"
}
], - "createdAt": "",
- "updatedAt": "string",
- "pickerAssignmentId": "string",
- "pickerAssignmentAt": "string"
}
]
}Create a new picking-workflow goods issue in DRAFT status with one or more expected line items.
The new GoodsIssue resource
| warehouseId required | string Default: "" |
| subject | string or null URI of the source document this issue fulfils, e.g. |
| movementReason | string or null Enum: "cycle_count_adjustment" "damage_write_off" "found_stock" "opening_balance" "internal_consumption" "sample" "scrap" |
| currency | string or null = 3 characters |
Array of objects (GoodsIssueLineInput) |
{- "warehouseId": "",
- "subject": "string",
- "movementReason": "cycle_count_adjustment",
- "currency": "str",
- "lines": [
- {
- "inventoryItemId": "",
- "expectedQuantity": 0,
- "lineItemId": "string",
- "unitCost": 0
}
]
}{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "",
- "number": "string",
- "warehouseId": "",
- "warehouseName": "string",
- "status": "",
- "subject": "string",
- "subjectResource": "string",
- "movementReason": "cycle_count_adjustment",
- "currency": "",
- "shipmentId": "string",
- "cancellationReason": "string",
- "createdBy": "string",
- "lineItems": [
- {
- "id": "string",
- "inventoryItemId": "string",
- "expectedQuantity": 0,
- "pickedQuantity": 0,
- "unitCost": 0,
- "trackingRef": "string",
- "reservationRef": "string"
}
], - "createdAt": "",
- "updatedAt": "string",
- "pickerAssignmentId": "string",
- "pickerAssignmentAt": "string"
}Retrieve a single goods issue by its ULID, including all line items.
| id required | string GoodsIssue identifier |
{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "",
- "number": "string",
- "warehouseId": "",
- "warehouseName": "string",
- "status": "",
- "subject": "string",
- "subjectResource": "string",
- "movementReason": "cycle_count_adjustment",
- "currency": "",
- "shipmentId": "string",
- "cancellationReason": "string",
- "createdBy": "string",
- "lineItems": [
- {
- "id": "string",
- "inventoryItemId": "string",
- "expectedQuantity": 0,
- "pickedQuantity": 0,
- "unitCost": 0,
- "trackingRef": "string",
- "reservationRef": "string"
}
], - "createdAt": "",
- "updatedAt": "string",
- "pickerAssignmentId": "string",
- "pickerAssignmentAt": "string"
}Cancel a non-terminal goods issue with a reason. Terminal states (ISSUED, CANCELLED) are rejected.
| id required | string GoodsIssue identifier |
The new GoodsIssue resource
| reason required | string Default: "" |
{- "reason": ""
}{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "",
- "number": "string",
- "warehouseId": "",
- "warehouseName": "string",
- "status": "",
- "subject": "string",
- "subjectResource": "string",
- "movementReason": "cycle_count_adjustment",
- "currency": "",
- "shipmentId": "string",
- "cancellationReason": "string",
- "createdBy": "string",
- "lineItems": [
- {
- "id": "string",
- "inventoryItemId": "string",
- "expectedQuantity": 0,
- "pickedQuantity": 0,
- "unitCost": 0,
- "trackingRef": "string",
- "reservationRef": "string"
}
], - "createdAt": "",
- "updatedAt": "string",
- "pickerAssignmentId": "string",
- "pickerAssignmentAt": "string"
}Mark this goods issue as actively being picked by the authenticated user. Replaces any prior claim (after operator confirmation in the UI). Allowed in DRAFT and PICKING only.
| id required | string GoodsIssue identifier |
{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "",
- "number": "string",
- "warehouseId": "",
- "warehouseName": "string",
- "status": "",
- "subject": "string",
- "subjectResource": "string",
- "movementReason": "cycle_count_adjustment",
- "currency": "",
- "shipmentId": "string",
- "cancellationReason": "string",
- "createdBy": "string",
- "lineItems": [
- {
- "id": "string",
- "inventoryItemId": "string",
- "expectedQuantity": 0,
- "pickedQuantity": 0,
- "unitCost": 0,
- "trackingRef": "string",
- "reservationRef": "string"
}
], - "createdAt": "",
- "updatedAt": "string",
- "pickerAssignmentId": "string",
- "pickerAssignmentAt": "string"
}Transition the goods issue PICKING → ISSUED. Subscriber decrements Stock and fulfils any linked reservations.
| id required | string GoodsIssue identifier |
{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "",
- "number": "string",
- "warehouseId": "",
- "warehouseName": "string",
- "status": "",
- "subject": "string",
- "subjectResource": "string",
- "movementReason": "cycle_count_adjustment",
- "currency": "",
- "shipmentId": "string",
- "cancellationReason": "string",
- "createdBy": "string",
- "lineItems": [
- {
- "id": "string",
- "inventoryItemId": "string",
- "expectedQuantity": 0,
- "pickedQuantity": 0,
- "unitCost": 0,
- "trackingRef": "string",
- "reservationRef": "string"
}
], - "createdAt": "",
- "updatedAt": "string",
- "pickerAssignmentId": "string",
- "pickerAssignmentAt": "string"
}Append one line (scan-in) to a DRAFT or PICKING issue. Lines are deduped by inventory item — scanning the same item twice is rejected; pick against the existing line instead. The added line carries no reservation.
| id required | string GoodsIssue identifier |
The new GoodsIssue resource
| inventoryItemId required | string Default: "" |
| expectedQuantity | integer >= 0 Default: 0 |
| unitCost | integer or null >= 0 Optional operator-supplied unit cost annotation, in minor units (cents). |
{- "inventoryItemId": "",
- "expectedQuantity": 0,
- "unitCost": 0
}{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "",
- "number": "string",
- "warehouseId": "",
- "warehouseName": "string",
- "status": "",
- "subject": "string",
- "subjectResource": "string",
- "movementReason": "cycle_count_adjustment",
- "currency": "",
- "shipmentId": "string",
- "cancellationReason": "string",
- "createdBy": "string",
- "lineItems": [
- {
- "id": "string",
- "inventoryItemId": "string",
- "expectedQuantity": 0,
- "pickedQuantity": 0,
- "unitCost": 0,
- "trackingRef": "string",
- "reservationRef": "string"
}
], - "createdAt": "",
- "updatedAt": "string",
- "pickerAssignmentId": "string",
- "pickerAssignmentAt": "string"
}Attach a cross-module shipment ResourceUri (e.g., glacia:///routing/shipments/{id}) to this goods issue.
| id required | string GoodsIssue identifier |
The new GoodsIssue resource
| shipmentId required | string Default: "" ULID of the Shipping Shipment being linked. |
{- "shipmentId": ""
}{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "",
- "number": "string",
- "warehouseId": "",
- "warehouseName": "string",
- "status": "",
- "subject": "string",
- "subjectResource": "string",
- "movementReason": "cycle_count_adjustment",
- "currency": "",
- "shipmentId": "string",
- "cancellationReason": "string",
- "createdBy": "string",
- "lineItems": [
- {
- "id": "string",
- "inventoryItemId": "string",
- "expectedQuantity": 0,
- "pickedQuantity": 0,
- "unitCost": 0,
- "trackingRef": "string",
- "reservationRef": "string"
}
], - "createdAt": "",
- "updatedAt": "string",
- "pickerAssignmentId": "string",
- "pickerAssignmentAt": "string"
}Queue asynchronous rendering of the goods issue as a pick-list Document (default PDF). Returns immediately (202) with a QueueJobResponse; track progress and download on the /api/operations feed (its JobItem shares the returned jobId).
| id required | string GoodsIssue identifier |
The new GoodsIssue resource
| format | string Default: "pdf" Enum: "pdf" "html" Output format for the pick list. |
{- "format": "pdf"
}{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "jobId": "",
- "kind": "",
- "title": "",
- "status": "pending",
- "subjectRef": "string"
}Record picked quantity against a line item. First pick transitions the issue from DRAFT to PICKING.
| id required | string GoodsIssue identifier |
The new GoodsIssue resource
| lineItemId required | string Default: "" |
| pickedQuantity | integer > 0 Default: 0 |
| trackingRef | string or null Optional ResourceUri identifying the physical lot or serial unit the stock was picked from, e.g. |
{- "lineItemId": "",
- "pickedQuantity": 0,
- "trackingRef": "string"
}{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "",
- "number": "string",
- "warehouseId": "",
- "warehouseName": "string",
- "status": "",
- "subject": "string",
- "subjectResource": "string",
- "movementReason": "cycle_count_adjustment",
- "currency": "",
- "shipmentId": "string",
- "cancellationReason": "string",
- "createdBy": "string",
- "lineItems": [
- {
- "id": "string",
- "inventoryItemId": "string",
- "expectedQuantity": 0,
- "pickedQuantity": 0,
- "unitCost": 0,
- "trackingRef": "string",
- "reservationRef": "string"
}
], - "createdAt": "",
- "updatedAt": "string",
- "pickerAssignmentId": "string",
- "pickerAssignmentAt": "string"
}Release the current picker claim. No-op if the issue is unclaimed or if a different picker holds the claim.
| id required | string GoodsIssue identifier |
{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "",
- "number": "string",
- "warehouseId": "",
- "warehouseName": "string",
- "status": "",
- "subject": "string",
- "subjectResource": "string",
- "movementReason": "cycle_count_adjustment",
- "currency": "",
- "shipmentId": "string",
- "cancellationReason": "string",
- "createdBy": "string",
- "lineItems": [
- {
- "id": "string",
- "inventoryItemId": "string",
- "expectedQuantity": 0,
- "pickedQuantity": 0,
- "unitCost": 0,
- "trackingRef": "string",
- "reservationRef": "string"
}
], - "createdAt": "",
- "updatedAt": "string",
- "pickerAssignmentId": "string",
- "pickerAssignmentAt": "string"
}Retrieve a paginated list of goods receipts with optional filters.
| warehouseId | string <uuid> |
| status | string Enum: "draft" "receiving" "completed" "cancelled" |
| page | integer >= 1 Default: 1 |
| itemsPerPage | integer [ 1 .. 100 ] Default: 20 |
{- "totalItems": 0,
- "search": {
- "@type": "string",
- "template": "string",
- "variableRepresentation": "string",
- "mapping": [
- {
- "@type": "string",
- "variable": "string",
- "property": "string",
- "required": true
}
]
}, - "view": {
- "@id": "string",
- "@type": "string",
- "first": "string",
- "last": "string",
- "previous": "string",
- "next": "string"
}, - "member": [
- {
- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "string",
- "number": "string",
- "warehouseId": "string",
- "warehouseName": "string",
- "status": "draft",
- "subject": "string",
- "subjectResource": "string",
- "movementReason": "cycle_count_adjustment",
- "currency": "string",
- "matchingPolicy": "strict",
- "cancellationReason": "string",
- "createdBy": "string",
- "lineItems": [
- {
- "id": "string",
- "inventoryItemId": "string",
- "expectedQuantity": 0,
- "receivedQuantity": 0,
- "unitCost": 0,
- "trackingRef": "string",
- "disposition": "pending"
}
], - "createdAt": "string",
- "updatedAt": "string",
- "source": "internal"
}
]
}Open a new multi-line receiving workflow against a reference document.
The new GoodsReceipt resource
| warehouseId required | string |
| subject | string or null |
| movementReason | string or null Enum: "cycle_count_adjustment" "damage_write_off" "found_stock" "opening_balance" "internal_consumption" "sample" "scrap" |
| currency | string or null = 3 characters |
Array of objects (GoodsReceiptLineInput) |
{- "warehouseId": "string",
- "subject": "string",
- "movementReason": "cycle_count_adjustment",
- "currency": "str",
- "lines": [
- {
- "inventoryItemId": "string",
- "expectedQuantity": 0,
- "lineItemId": "string",
- "unitCost": 0
}
]
}{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "string",
- "number": "string",
- "warehouseId": "string",
- "warehouseName": "string",
- "status": "draft",
- "subject": "string",
- "subjectResource": "string",
- "movementReason": "cycle_count_adjustment",
- "currency": "string",
- "matchingPolicy": "strict",
- "cancellationReason": "string",
- "createdBy": "string",
- "lineItems": [
- {
- "id": "string",
- "inventoryItemId": "string",
- "expectedQuantity": 0,
- "receivedQuantity": 0,
- "unitCost": 0,
- "trackingRef": "string",
- "disposition": "pending"
}
], - "createdAt": "string",
- "updatedAt": "string",
- "source": "internal"
}Retrieve a single goods receipt by its ULID.
| id required | string GoodsReceipt identifier |
{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "string",
- "number": "string",
- "warehouseId": "string",
- "warehouseName": "string",
- "status": "draft",
- "subject": "string",
- "subjectResource": "string",
- "movementReason": "cycle_count_adjustment",
- "currency": "string",
- "matchingPolicy": "strict",
- "cancellationReason": "string",
- "createdBy": "string",
- "lineItems": [
- {
- "id": "string",
- "inventoryItemId": "string",
- "expectedQuantity": 0,
- "receivedQuantity": 0,
- "unitCost": 0,
- "trackingRef": "string",
- "disposition": "pending"
}
], - "createdAt": "string",
- "updatedAt": "string",
- "source": "internal"
}Cancel a goods receipt
| id required | string GoodsReceipt identifier |
The new GoodsReceipt resource
| reason required | string |
{- "reason": "string"
}{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "string",
- "number": "string",
- "warehouseId": "string",
- "warehouseName": "string",
- "status": "draft",
- "subject": "string",
- "subjectResource": "string",
- "movementReason": "cycle_count_adjustment",
- "currency": "string",
- "matchingPolicy": "strict",
- "cancellationReason": "string",
- "createdBy": "string",
- "lineItems": [
- {
- "id": "string",
- "inventoryItemId": "string",
- "expectedQuantity": 0,
- "receivedQuantity": 0,
- "unitCost": 0,
- "trackingRef": "string",
- "disposition": "pending"
}
], - "createdAt": "string",
- "updatedAt": "string",
- "source": "internal"
}Requires every received line to already have an explicit disposition (Condition) set — the per-line health confirmation. There is no separate receipt-level health-confirmation step.
| id required | string GoodsReceipt identifier |
{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "string",
- "number": "string",
- "warehouseId": "string",
- "warehouseName": "string",
- "status": "draft",
- "subject": "string",
- "subjectResource": "string",
- "movementReason": "cycle_count_adjustment",
- "currency": "string",
- "matchingPolicy": "strict",
- "cancellationReason": "string",
- "createdBy": "string",
- "lineItems": [
- {
- "id": "string",
- "inventoryItemId": "string",
- "expectedQuantity": 0,
- "receivedQuantity": 0,
- "unitCost": 0,
- "trackingRef": "string",
- "disposition": "pending"
}
], - "createdAt": "string",
- "updatedAt": "string",
- "source": "internal"
}Append one line (scan-in) to a DRAFT or RECEIVING receipt. Lines are deduped by inventory item — scanning the same item twice is rejected; receive against the existing line instead.
| id required | string GoodsReceipt identifier |
The new GoodsReceipt resource
| inventoryItemId required | string Default: "" |
| expectedQuantity | integer >= 0 Default: 0 |
| unitCost | integer or null >= 0 Operator/document-supplied receipt unit cost, in minor units (cents). |
{- "inventoryItemId": "",
- "expectedQuantity": 0,
- "unitCost": 0
}{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "string",
- "number": "string",
- "warehouseId": "string",
- "warehouseName": "string",
- "status": "draft",
- "subject": "string",
- "subjectResource": "string",
- "movementReason": "cycle_count_adjustment",
- "currency": "string",
- "matchingPolicy": "strict",
- "cancellationReason": "string",
- "createdBy": "string",
- "lineItems": [
- {
- "id": "string",
- "inventoryItemId": "string",
- "expectedQuantity": 0,
- "receivedQuantity": 0,
- "unitCost": 0,
- "trackingRef": "string",
- "disposition": "pending"
}
], - "createdAt": "string",
- "updatedAt": "string",
- "source": "internal"
}Set the disposition (accepted / quarantine / return_to_vendor / repair / scrap) for a single receipt line. Only accepted lines increase Stock on completion.
| id required | string GoodsReceipt identifier |
| lineItemId required | string GoodsReceipt identifier |
The new GoodsReceipt resource
| disposition required | string Enum: "accepted" "quarantine" "return_to_vendor" "repair" "scrap" |
{- "disposition": "accepted"
}{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "string",
- "number": "string",
- "warehouseId": "string",
- "warehouseName": "string",
- "status": "draft",
- "subject": "string",
- "subjectResource": "string",
- "movementReason": "cycle_count_adjustment",
- "currency": "string",
- "matchingPolicy": "strict",
- "cancellationReason": "string",
- "createdBy": "string",
- "lineItems": [
- {
- "id": "string",
- "inventoryItemId": "string",
- "expectedQuantity": 0,
- "receivedQuantity": 0,
- "unitCost": 0,
- "trackingRef": "string",
- "disposition": "pending"
}
], - "createdAt": "string",
- "updatedAt": "string",
- "source": "internal"
}Record received items against a line
| id required | string GoodsReceipt identifier |
The new GoodsReceipt resource
| lineItemId required | string |
| receivedQuantity | integer > 0 |
| trackingRef | string or null |
{- "lineItemId": "string",
- "receivedQuantity": 0,
- "trackingRef": "string"
}{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "string",
- "number": "string",
- "warehouseId": "string",
- "warehouseName": "string",
- "status": "draft",
- "subject": "string",
- "subjectResource": "string",
- "movementReason": "cycle_count_adjustment",
- "currency": "string",
- "matchingPolicy": "strict",
- "cancellationReason": "string",
- "createdBy": "string",
- "lineItems": [
- {
- "id": "string",
- "inventoryItemId": "string",
- "expectedQuantity": 0,
- "receivedQuantity": 0,
- "unitCost": 0,
- "trackingRef": "string",
- "disposition": "pending"
}
], - "createdAt": "string",
- "updatedAt": "string",
- "source": "internal"
}Retrieve a paginated list of handling units (license plates) with optional status/kind/parent filters.
| status | string Enum: "open" "packed" "closed" "consumed" "void" |
| kind | string Enum: "parcel" "carton" "pallet" "container" "tote" "load_unit" |
| parentId | string <uuid> |
| page | integer >= 1 Default: 1 |
| itemsPerPage | integer [ 1 .. 100 ] Default: 20 |
{- "totalItems": 0,
- "search": {
- "@type": "string",
- "template": "string",
- "variableRepresentation": "string",
- "mapping": [
- {
- "@type": "string",
- "variable": "string",
- "property": "string",
- "required": true
}
]
}, - "view": {
- "@id": "string",
- "@type": "string",
- "first": "string",
- "last": "string",
- "previous": "string",
- "next": "string"
}, - "member": [
- {
- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "",
- "identifier": "",
- "kind": "parcel",
- "parentId": "string",
- "status": "",
- "measurements": {
- "netWeightGrams": 0,
- "tareWeightGrams": 0,
- "grossWeightGrams": 0,
- "lengthMm": 0,
- "widthMm": 0,
- "heightMm": 0
}, - "contents": [
- {
- "id": "string",
- "ref": "string",
- "quantity": 0
}
], - "packedBy": "string",
- "packedAt": "string",
- "closedAt": "string",
- "createdBy": "string",
- "createdAt": "",
- "updatedAt": "string"
}
]
}Open a new handling unit in OPEN status. Its license-plate identifier is allocated automatically via the Numbering module.
The new HandlingUnit resource
| kind required | string Default: "" Enum: "parcel" "carton" "pallet" "container" "tote" "load_unit" |
| parentId | string or null Optional parent handling-unit ULID — opens the unit already nested. |
{- "kind": "parcel",
- "parentId": "string"
}{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "",
- "identifier": "",
- "kind": "parcel",
- "parentId": "string",
- "status": "",
- "measurements": {
- "netWeightGrams": 0,
- "tareWeightGrams": 0,
- "grossWeightGrams": 0,
- "lengthMm": 0,
- "widthMm": 0,
- "heightMm": 0
}, - "contents": [
- {
- "id": "string",
- "ref": "string",
- "quantity": 0
}
], - "packedBy": "string",
- "packedAt": "string",
- "closedAt": "string",
- "createdBy": "string",
- "createdAt": "",
- "updatedAt": "string"
}Retrieve a single handling unit by its ULID, including its contents and measurements.
| id required | string HandlingUnit identifier |
{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "",
- "identifier": "",
- "kind": "parcel",
- "parentId": "string",
- "status": "",
- "measurements": {
- "netWeightGrams": 0,
- "tareWeightGrams": 0,
- "grossWeightGrams": 0,
- "lengthMm": 0,
- "widthMm": 0,
- "heightMm": 0
}, - "contents": [
- {
- "id": "string",
- "ref": "string",
- "quantity": 0
}
], - "packedBy": "string",
- "packedAt": "string",
- "closedAt": "string",
- "createdBy": "string",
- "createdAt": "",
- "updatedAt": "string"
}Transition PACKED → CLOSED (sealed; ready to hand to transport).
| id required | string HandlingUnit identifier |
{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "",
- "identifier": "",
- "kind": "parcel",
- "parentId": "string",
- "status": "",
- "measurements": {
- "netWeightGrams": 0,
- "tareWeightGrams": 0,
- "grossWeightGrams": 0,
- "lengthMm": 0,
- "widthMm": 0,
- "heightMm": 0
}, - "contents": [
- {
- "id": "string",
- "ref": "string",
- "quantity": 0
}
], - "packedBy": "string",
- "packedAt": "string",
- "closedAt": "string",
- "createdBy": "string",
- "createdAt": "",
- "updatedAt": "string"
}Mark a sealed handling unit as consumed (unpacked / de-palletised at destination).
| id required | string HandlingUnit identifier |
{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "",
- "identifier": "",
- "kind": "parcel",
- "parentId": "string",
- "status": "",
- "measurements": {
- "netWeightGrams": 0,
- "tareWeightGrams": 0,
- "grossWeightGrams": 0,
- "lengthMm": 0,
- "widthMm": 0,
- "heightMm": 0
}, - "contents": [
- {
- "id": "string",
- "ref": "string",
- "quantity": 0
}
], - "packedBy": "string",
- "packedAt": "string",
- "closedAt": "string",
- "createdBy": "string",
- "createdAt": "",
- "updatedAt": "string"
}Add an opaque ResourceUri (GoodsIssue-issued goods line or child HU) + quantity to an OPEN handling unit.
| id required | string HandlingUnit identifier |
The new HandlingUnit resource
| ref required | string Default: "" Opaque ResourceUri of a GoodsIssue-issued goods line or a child HU, e.g. |
| quantity | integer > 0 Default: 1 |
{- "ref": "",
- "quantity": 1
}{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "",
- "identifier": "",
- "kind": "parcel",
- "parentId": "string",
- "status": "",
- "measurements": {
- "netWeightGrams": 0,
- "tareWeightGrams": 0,
- "grossWeightGrams": 0,
- "lengthMm": 0,
- "widthMm": 0,
- "heightMm": 0
}, - "contents": [
- {
- "id": "string",
- "ref": "string",
- "quantity": 0
}
], - "packedBy": "string",
- "packedAt": "string",
- "closedAt": "string",
- "createdBy": "string",
- "createdAt": "",
- "updatedAt": "string"
}Set/replace the unit's weights (grams) and dimensions (mm). Gross weight is derived (net + tare) when not supplied. Allowed while OPEN or PACKED.
| id required | string HandlingUnit identifier |
The new HandlingUnit resource
| netWeightGrams | integer or null >= 0 |
| tareWeightGrams | integer or null >= 0 |
| grossWeightGrams | integer or null >= 0 |
| lengthMm | integer or null >= 0 |
| widthMm | integer or null >= 0 |
| heightMm | integer or null >= 0 |
{- "netWeightGrams": 0,
- "tareWeightGrams": 0,
- "grossWeightGrams": 0,
- "lengthMm": 0,
- "widthMm": 0,
- "heightMm": 0
}{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "",
- "identifier": "",
- "kind": "parcel",
- "parentId": "string",
- "status": "",
- "measurements": {
- "netWeightGrams": 0,
- "tareWeightGrams": 0,
- "grossWeightGrams": 0,
- "lengthMm": 0,
- "widthMm": 0,
- "heightMm": 0
}, - "contents": [
- {
- "id": "string",
- "ref": "string",
- "quantity": 0
}
], - "packedBy": "string",
- "packedAt": "string",
- "closedAt": "string",
- "createdBy": "string",
- "createdAt": "",
- "updatedAt": "string"
}Set this unit's parent handling unit (e.g. nest a carton under a pallet).
| id required | string HandlingUnit identifier |
The new HandlingUnit resource
| parentId required | string Default: "" |
{- "parentId": ""
}{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "",
- "identifier": "",
- "kind": "parcel",
- "parentId": "string",
- "status": "",
- "measurements": {
- "netWeightGrams": 0,
- "tareWeightGrams": 0,
- "grossWeightGrams": 0,
- "lengthMm": 0,
- "widthMm": 0,
- "heightMm": 0
}, - "contents": [
- {
- "id": "string",
- "ref": "string",
- "quantity": 0
}
], - "packedBy": "string",
- "packedAt": "string",
- "closedAt": "string",
- "createdBy": "string",
- "createdAt": "",
- "updatedAt": "string"
}Transition OPEN → PACKED. Contents freeze. The authenticated user is recorded as packedBy.
| id required | string HandlingUnit identifier |
{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "",
- "identifier": "",
- "kind": "parcel",
- "parentId": "string",
- "status": "",
- "measurements": {
- "netWeightGrams": 0,
- "tareWeightGrams": 0,
- "grossWeightGrams": 0,
- "lengthMm": 0,
- "widthMm": 0,
- "heightMm": 0
}, - "contents": [
- {
- "id": "string",
- "ref": "string",
- "quantity": 0
}
], - "packedBy": "string",
- "packedAt": "string",
- "closedAt": "string",
- "createdBy": "string",
- "createdAt": "",
- "updatedAt": "string"
}Remove a content line (identified by its opaque ref) from an OPEN handling unit.
| id required | string HandlingUnit identifier |
The new HandlingUnit resource
| ref required | string Default: "" |
{- "ref": ""
}{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "",
- "identifier": "",
- "kind": "parcel",
- "parentId": "string",
- "status": "",
- "measurements": {
- "netWeightGrams": 0,
- "tareWeightGrams": 0,
- "grossWeightGrams": 0,
- "lengthMm": 0,
- "widthMm": 0,
- "heightMm": 0
}, - "contents": [
- {
- "id": "string",
- "ref": "string",
- "quantity": 0
}
], - "packedBy": "string",
- "packedAt": "string",
- "closedAt": "string",
- "createdBy": "string",
- "createdAt": "",
- "updatedAt": "string"
}Clear this unit's parent. No-op when it has no parent.
| id required | string HandlingUnit identifier |
{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "",
- "identifier": "",
- "kind": "parcel",
- "parentId": "string",
- "status": "",
- "measurements": {
- "netWeightGrams": 0,
- "tareWeightGrams": 0,
- "grossWeightGrams": 0,
- "lengthMm": 0,
- "widthMm": 0,
- "heightMm": 0
}, - "contents": [
- {
- "id": "string",
- "ref": "string",
- "quantity": 0
}
], - "packedBy": "string",
- "packedAt": "string",
- "closedAt": "string",
- "createdBy": "string",
- "createdAt": "",
- "updatedAt": "string"
}Cancel an unsealed (OPEN) handling unit. A sealed unit cannot be voided — it is consumed instead.
| id required | string HandlingUnit identifier |
The new HandlingUnit resource
| reason | string or null Optional free-text reason captured on the void event. |
{- "reason": "string"
}{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "",
- "identifier": "",
- "kind": "parcel",
- "parentId": "string",
- "status": "",
- "measurements": {
- "netWeightGrams": 0,
- "tareWeightGrams": 0,
- "grossWeightGrams": 0,
- "lengthMm": 0,
- "widthMm": 0,
- "heightMm": 0
}, - "contents": [
- {
- "id": "string",
- "ref": "string",
- "quantity": 0
}
], - "packedBy": "string",
- "packedAt": "string",
- "closedAt": "string",
- "createdBy": "string",
- "createdAt": "",
- "updatedAt": "string"
}Retrieve a paginated list of first-party inbound deliveries with optional status filter.
| status | string Enum: "expected" "in_transit" "arrived" "receiving" "ready_to_post" "posted" "cancelled" |
| page | integer >= 1 Default: 1 |
| itemsPerPage | integer [ 1 .. 100 ] Default: 20 |
{- "totalItems": 0,
- "search": {
- "@type": "string",
- "template": "string",
- "variableRepresentation": "string",
- "mapping": [
- {
- "@type": "string",
- "variable": "string",
- "property": "string",
- "required": true
}
]
}, - "view": {
- "@id": "string",
- "@type": "string",
- "first": "string",
- "last": "string",
- "previous": "string",
- "next": "string"
}, - "member": [
- {
- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "string",
- "number": "string",
- "status": "expected",
- "supplierId": "string",
- "purchaseOrderId": "string",
- "carrierRef": "string",
- "trackingRef": "string",
- "destinationWarehouseId": "string",
- "expectedArrivalAt": "string",
- "defaultReceivingLocation": "string",
- "goodsReceiptId": "string",
- "lines": [
- {
- "lineId": "string",
- "itemId": "string",
- "expectedQuantity": 0,
- "receivedQuantity": 0,
- "outstandingQuantity": 0
}
], - "documents": [
- {
- "kind": "asn",
- "documentRef": "string"
}
], - "cancellationReason": "string",
- "createdBy": "string",
- "createdAt": "string",
- "updatedAt": "string"
}
]
}Open a first-party supplier inbound delivery with expected lines. Numbered on creation (IBD-YYYY-NNNNN).
The new InboundDelivery resource
| supplierId required | string |
| destinationWarehouseId required | string |
| purchaseOrderId | string or null |
| carrierRef | string or null |
| trackingRef | string or null |
| expectedArrivalAt | string or null |
Array of objects (InboundDeliveryLineInput) |
{- "supplierId": "string",
- "destinationWarehouseId": "string",
- "purchaseOrderId": "string",
- "carrierRef": "string",
- "trackingRef": "string",
- "expectedArrivalAt": "string",
- "lines": [
- {
- "itemId": "string",
- "expectedQuantity": 0,
- "lineId": "string"
}
]
}{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "string",
- "number": "string",
- "status": "expected",
- "supplierId": "string",
- "purchaseOrderId": "string",
- "carrierRef": "string",
- "trackingRef": "string",
- "destinationWarehouseId": "string",
- "expectedArrivalAt": "string",
- "defaultReceivingLocation": "string",
- "goodsReceiptId": "string",
- "lines": [
- {
- "lineId": "string",
- "itemId": "string",
- "expectedQuantity": 0,
- "receivedQuantity": 0,
- "outstandingQuantity": 0
}
], - "documents": [
- {
- "kind": "asn",
- "documentRef": "string"
}
], - "cancellationReason": "string",
- "createdBy": "string",
- "createdAt": "string",
- "updatedAt": "string"
}Retrieve a single inbound delivery by its ULID.
| id required | string InboundDelivery identifier |
{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "string",
- "number": "string",
- "status": "expected",
- "supplierId": "string",
- "purchaseOrderId": "string",
- "carrierRef": "string",
- "trackingRef": "string",
- "destinationWarehouseId": "string",
- "expectedArrivalAt": "string",
- "defaultReceivingLocation": "string",
- "goodsReceiptId": "string",
- "lines": [
- {
- "lineId": "string",
- "itemId": "string",
- "expectedQuantity": 0,
- "receivedQuantity": 0,
- "outstandingQuantity": 0
}
], - "documents": [
- {
- "kind": "asn",
- "documentRef": "string"
}
], - "cancellationReason": "string",
- "createdBy": "string",
- "createdAt": "string",
- "updatedAt": "string"
}The location spawned RECEIVE tasks land stock at when an execution entry names no more specific location.
| id required | string InboundDelivery identifier |
The new InboundDelivery resource
| locationId required | string |
{- "locationId": "string"
}{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "string",
- "number": "string",
- "status": "expected",
- "supplierId": "string",
- "purchaseOrderId": "string",
- "carrierRef": "string",
- "trackingRef": "string",
- "destinationWarehouseId": "string",
- "expectedArrivalAt": "string",
- "defaultReceivingLocation": "string",
- "goodsReceiptId": "string",
- "lines": [
- {
- "lineId": "string",
- "itemId": "string",
- "expectedQuantity": 0,
- "receivedQuantity": 0,
- "outstandingQuantity": 0
}
], - "documents": [
- {
- "kind": "asn",
- "documentRef": "string"
}
], - "cancellationReason": "string",
- "createdBy": "string",
- "createdAt": "string",
- "updatedAt": "string"
}Attach a shipping document (ASN / Manifest / BoL / Packing List)
| id required | string InboundDelivery identifier |
The new InboundDelivery resource
| kind | string Enum: "asn" "manifest" "bill_of_lading" "packing_list" |
| documentRef required | string |
{- "kind": "asn",
- "documentRef": "string"
}{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "string",
- "number": "string",
- "status": "expected",
- "supplierId": "string",
- "purchaseOrderId": "string",
- "carrierRef": "string",
- "trackingRef": "string",
- "destinationWarehouseId": "string",
- "expectedArrivalAt": "string",
- "defaultReceivingLocation": "string",
- "goodsReceiptId": "string",
- "lines": [
- {
- "lineId": "string",
- "itemId": "string",
- "expectedQuantity": 0,
- "receivedQuantity": 0,
- "outstandingQuantity": 0
}
], - "documents": [
- {
- "kind": "asn",
- "documentRef": "string"
}
], - "cancellationReason": "string",
- "createdBy": "string",
- "createdAt": "string",
- "updatedAt": "string"
}Cancel the inbound delivery
| id required | string InboundDelivery identifier |
The new InboundDelivery resource
| reason required | string |
{- "reason": "string"
}{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "string",
- "number": "string",
- "status": "expected",
- "supplierId": "string",
- "purchaseOrderId": "string",
- "carrierRef": "string",
- "trackingRef": "string",
- "destinationWarehouseId": "string",
- "expectedArrivalAt": "string",
- "defaultReceivingLocation": "string",
- "goodsReceiptId": "string",
- "lines": [
- {
- "lineId": "string",
- "itemId": "string",
- "expectedQuantity": 0,
- "receivedQuantity": 0,
- "outstandingQuantity": 0
}
], - "documents": [
- {
- "kind": "asn",
- "documentRef": "string"
}
], - "cancellationReason": "string",
- "createdBy": "string",
- "createdAt": "string",
- "updatedAt": "string"
}Mark the inbound delivery arrived at the warehouse
| id required | string InboundDelivery identifier |
{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "string",
- "number": "string",
- "status": "expected",
- "supplierId": "string",
- "purchaseOrderId": "string",
- "carrierRef": "string",
- "trackingRef": "string",
- "destinationWarehouseId": "string",
- "expectedArrivalAt": "string",
- "defaultReceivingLocation": "string",
- "goodsReceiptId": "string",
- "lines": [
- {
- "lineId": "string",
- "itemId": "string",
- "expectedQuantity": 0,
- "receivedQuantity": 0,
- "outstandingQuantity": 0
}
], - "documents": [
- {
- "kind": "asn",
- "documentRef": "string"
}
], - "cancellationReason": "string",
- "createdBy": "string",
- "createdAt": "string",
- "updatedAt": "string"
}Mark the inbound delivery in transit
| id required | string InboundDelivery identifier |
{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "string",
- "number": "string",
- "status": "expected",
- "supplierId": "string",
- "purchaseOrderId": "string",
- "carrierRef": "string",
- "trackingRef": "string",
- "destinationWarehouseId": "string",
- "expectedArrivalAt": "string",
- "defaultReceivingLocation": "string",
- "goodsReceiptId": "string",
- "lines": [
- {
- "lineId": "string",
- "itemId": "string",
- "expectedQuantity": 0,
- "receivedQuantity": 0,
- "outstandingQuantity": 0
}
], - "documents": [
- {
- "kind": "asn",
- "documentRef": "string"
}
], - "cancellationReason": "string",
- "createdBy": "string",
- "createdAt": "string",
- "updatedAt": "string"
}Only from READY_TO_POST. Idempotent.
| id required | string InboundDelivery identifier |
{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "string",
- "number": "string",
- "status": "expected",
- "supplierId": "string",
- "purchaseOrderId": "string",
- "carrierRef": "string",
- "trackingRef": "string",
- "destinationWarehouseId": "string",
- "expectedArrivalAt": "string",
- "defaultReceivingLocation": "string",
- "goodsReceiptId": "string",
- "lines": [
- {
- "lineId": "string",
- "itemId": "string",
- "expectedQuantity": 0,
- "receivedQuantity": 0,
- "outstandingQuantity": 0
}
], - "documents": [
- {
- "kind": "asn",
- "documentRef": "string"
}
], - "cancellationReason": "string",
- "createdBy": "string",
- "createdAt": "string",
- "updatedAt": "string"
}Operators then record receiving actuals ON THE TASKS; the delivery advances to READY_TO_POST when every task completes.
| id required | string InboundDelivery identifier |
{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "string",
- "number": "string",
- "status": "expected",
- "supplierId": "string",
- "purchaseOrderId": "string",
- "carrierRef": "string",
- "trackingRef": "string",
- "destinationWarehouseId": "string",
- "expectedArrivalAt": "string",
- "defaultReceivingLocation": "string",
- "goodsReceiptId": "string",
- "lines": [
- {
- "lineId": "string",
- "itemId": "string",
- "expectedQuantity": 0,
- "receivedQuantity": 0,
- "outstandingQuantity": 0
}
], - "documents": [
- {
- "kind": "asn",
- "documentRef": "string"
}
], - "cancellationReason": "string",
- "createdBy": "string",
- "createdAt": "string",
- "updatedAt": "string"
}Retrieve a paginated list of warehouse locations. By default only STRUCTURAL locations (warehouse topology + global virtual accounts) are returned; pass includeTransient=true to also include handling-unit slots.
| warehouseId | string <ulid> |
| parentId | string <ulid> |
| kind | string Enum: "zone" "aisle" "rack" "shelf" "bin" "dock" "staging" "virtual" "handling_unit" |
| status | string Enum: "active" "archived" |
| includeTransient | boolean Default: false |
| page | integer >= 1 Default: 1 |
| itemsPerPage | integer [ 1 .. 100 ] Default: 20 |
{- "totalItems": 0,
- "search": {
- "@type": "string",
- "template": "string",
- "variableRepresentation": "string",
- "mapping": [
- {
- "@type": "string",
- "variable": "string",
- "property": "string",
- "required": true
}
]
}, - "view": {
- "@id": "string",
- "@type": "string",
- "first": "string",
- "last": "string",
- "previous": "string",
- "next": "string"
}, - "member": [
- {
- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "",
- "warehouseId": "string",
- "parentId": "string",
- "kind": "zone",
- "code": "",
- "name": "",
- "status": "",
- "structural": true,
- "createdBy": "string",
- "createdAt": "",
- "updatedAt": "string"
}
]
}Open a new location. warehouseId is required for per-warehouse slots and omitted for tenant-scoped global virtual accounts (kind=virtual).
The new Location resource
| kind required | string Default: "" Enum: "zone" "aisle" "rack" "shelf" "bin" "dock" "staging" "virtual" "handling_unit" |
| code required | string Default: "" |
| name required | string Default: "" |
| warehouseId | string or null |
| parentId | string or null |
{- "kind": "zone",
- "code": "",
- "name": "",
- "warehouseId": "string",
- "parentId": "string"
}{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "",
- "warehouseId": "string",
- "parentId": "string",
- "kind": "zone",
- "code": "",
- "name": "",
- "status": "",
- "structural": true,
- "createdBy": "string",
- "createdAt": "",
- "updatedAt": "string"
}Retrieve a single location by its ULID.
| id required | string Location identifier |
{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "",
- "warehouseId": "string",
- "parentId": "string",
- "kind": "zone",
- "code": "",
- "name": "",
- "status": "",
- "structural": true,
- "createdBy": "string",
- "createdAt": "",
- "updatedAt": "string"
}Archive a location — it drops out of active queries but persists for stock history.
| id required | string Location identifier |
{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "",
- "warehouseId": "string",
- "parentId": "string",
- "kind": "zone",
- "code": "",
- "name": "",
- "status": "",
- "structural": true,
- "createdBy": "string",
- "createdAt": "",
- "updatedAt": "string"
}Re-parent a location under a new parent location. Rejected if it would make the location its own ancestor.
| id required | string Location identifier |
The new Location resource
| parentId required | string Default: "" |
{- "parentId": ""
}{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "",
- "warehouseId": "string",
- "parentId": "string",
- "kind": "zone",
- "code": "",
- "name": "",
- "status": "",
- "structural": true,
- "createdBy": "string",
- "createdAt": "",
- "updatedAt": "string"
}Change the display name of a location.
| id required | string Location identifier |
The new Location resource
| name required | string Default: "" |
{- "name": ""
}{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "",
- "warehouseId": "string",
- "parentId": "string",
- "kind": "zone",
- "code": "",
- "name": "",
- "status": "",
- "structural": true,
- "createdBy": "string",
- "createdAt": "",
- "updatedAt": "string"
}READ-ONLY history surface for the Movement ledger (design §5.4). Movements are NEVER a user-facing write — they are posted only as the internal ledger effect of intent verbs (receive/transfer/issue/adjust/count/changeStatus). The ONLY movement API is this read-only history endpoint (per item / location / subject), so this resource exposes GetCollection ONLY — never Get by id, Post, Patch, or Delete.
Retrieve a paginated, read-only history of balanced stock movements. Filter by inventory item, location (matched on either leg), or causing subject.
| inventoryItemId | string <ulid> |
| locationId | string <ulid> |
| subjectRef | string |
| page | integer >= 1 Default: 1 |
| itemsPerPage | integer [ 1 .. 100 ] Default: 20 |
{- "totalItems": 0,
- "search": {
- "@type": "string",
- "template": "string",
- "variableRepresentation": "string",
- "mapping": [
- {
- "@type": "string",
- "variable": "string",
- "property": "string",
- "required": true
}
]
}, - "view": {
- "@id": "string",
- "@type": "string",
- "first": "string",
- "last": "string",
- "previous": "string",
- "next": "string"
}, - "member": [
- {
- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "",
- "inventoryItemId": "",
- "lotId": "string",
- "serialUnitId": "string",
- "ownerId": "",
- "quantity": 0,
- "fromLocationId": "",
- "fromStatus": "",
- "toLocationId": "",
- "toStatus": "",
- "type": "receipt",
- "subjectRef": "",
- "reason": "string",
- "actor": "",
- "at": ""
}
]
}Retrieve a paginated list of first-party outbound picking plans with optional status filter.
| status | string Enum: "created" "picking" "ready_to_post" "posted" "cancelled" |
| page | integer >= 1 Default: 1 |
| itemsPerPage | integer [ 1 .. 100 ] Default: 20 |
{- "totalItems": 0,
- "search": {
- "@type": "string",
- "template": "string",
- "variableRepresentation": "string",
- "mapping": [
- {
- "@type": "string",
- "variable": "string",
- "property": "string",
- "required": true
}
]
}, - "view": {
- "@id": "string",
- "@type": "string",
- "first": "string",
- "last": "string",
- "previous": "string",
- "next": "string"
}, - "member": [
- {
- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "string",
- "number": "string",
- "status": "created",
- "sourceRef": "string",
- "warehouseId": "string",
- "stagingLocation": "string",
- "goodsIssueId": "string",
- "lines": [
- {
- "lineId": "string",
- "inventoryItemId": "string",
- "quantity": 0,
- "lotId": "string",
- "serialUnitId": "string"
}
], - "cancellationReason": "string",
- "createdBy": "string",
- "createdAt": "string",
- "updatedAt": "string"
}
]
}Open a first-party outbound picking plan with requested lines. Numbered on creation (OBD2600001).
The new OutboundDelivery resource
| warehouseId required | string |
| sourceRef | string or null |
| stagingLocation | string or null |
Array of objects (OutboundDeliveryLineInput) |
{- "warehouseId": "string",
- "sourceRef": "string",
- "stagingLocation": "string",
- "lines": [
- {
- "inventoryItemId": "string",
- "quantity": 0,
- "lineId": "string",
- "lotId": "string",
- "serialUnitId": "string"
}
]
}{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "string",
- "number": "string",
- "status": "created",
- "sourceRef": "string",
- "warehouseId": "string",
- "stagingLocation": "string",
- "goodsIssueId": "string",
- "lines": [
- {
- "lineId": "string",
- "inventoryItemId": "string",
- "quantity": 0,
- "lotId": "string",
- "serialUnitId": "string"
}
], - "cancellationReason": "string",
- "createdBy": "string",
- "createdAt": "string",
- "updatedAt": "string"
}Retrieve a single outbound delivery by its ULID.
| id required | string OutboundDelivery identifier |
{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "string",
- "number": "string",
- "status": "created",
- "sourceRef": "string",
- "warehouseId": "string",
- "stagingLocation": "string",
- "goodsIssueId": "string",
- "lines": [
- {
- "lineId": "string",
- "inventoryItemId": "string",
- "quantity": 0,
- "lotId": "string",
- "serialUnitId": "string"
}
], - "cancellationReason": "string",
- "createdBy": "string",
- "createdAt": "string",
- "updatedAt": "string"
}The location spawned PICK tasks stage picked stock at.
| id required | string OutboundDelivery identifier |
The new OutboundDelivery resource
| locationId required | string |
{- "locationId": "string"
}{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "string",
- "number": "string",
- "status": "created",
- "sourceRef": "string",
- "warehouseId": "string",
- "stagingLocation": "string",
- "goodsIssueId": "string",
- "lines": [
- {
- "lineId": "string",
- "inventoryItemId": "string",
- "quantity": 0,
- "lotId": "string",
- "serialUnitId": "string"
}
], - "cancellationReason": "string",
- "createdBy": "string",
- "createdAt": "string",
- "updatedAt": "string"
}Cancel the outbound delivery
| id required | string OutboundDelivery identifier |
The new OutboundDelivery resource
| reason required | string |
{- "reason": "string"
}{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "string",
- "number": "string",
- "status": "created",
- "sourceRef": "string",
- "warehouseId": "string",
- "stagingLocation": "string",
- "goodsIssueId": "string",
- "lines": [
- {
- "lineId": "string",
- "inventoryItemId": "string",
- "quantity": 0,
- "lotId": "string",
- "serialUnitId": "string"
}
], - "cancellationReason": "string",
- "createdBy": "string",
- "createdAt": "string",
- "updatedAt": "string"
}Only from READY_TO_POST. Idempotent.
| id required | string OutboundDelivery identifier |
{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "string",
- "number": "string",
- "status": "created",
- "sourceRef": "string",
- "warehouseId": "string",
- "stagingLocation": "string",
- "goodsIssueId": "string",
- "lines": [
- {
- "lineId": "string",
- "inventoryItemId": "string",
- "quantity": 0,
- "lotId": "string",
- "serialUnitId": "string"
}
], - "cancellationReason": "string",
- "createdBy": "string",
- "createdAt": "string",
- "updatedAt": "string"
}Operators then record actual picks ON THE TASKS; the delivery advances to READY_TO_POST when every task completes.
| id required | string OutboundDelivery identifier |
{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "string",
- "number": "string",
- "status": "created",
- "sourceRef": "string",
- "warehouseId": "string",
- "stagingLocation": "string",
- "goodsIssueId": "string",
- "lines": [
- {
- "lineId": "string",
- "inventoryItemId": "string",
- "quantity": 0,
- "lotId": "string",
- "serialUnitId": "string"
}
], - "cancellationReason": "string",
- "createdBy": "string",
- "createdAt": "string",
- "updatedAt": "string"
}Read-only API surface for the Quant (physical-stock) aggregate. Quant mutations are INTERNAL only (driven by intent verbs / the movement ledger), so this resource exposes GetCollection + Get ONLY — never Post/Patch/Delete.
Retrieve a paginated list of physical-stock quants (item × location × lot/serial × status × owner).
| inventoryItemId | string <ulid> |
| locationId | string <ulid> |
| warehouseId | string <ulid> |
| status | string Enum: "Available" "Quarantine" "Damaged" "Expired" "InTransit" "Blocked" "Scrapped" |
| ownerId | string <ulid> |
| page | integer >= 1 Default: 1 |
| itemsPerPage | integer [ 1 .. 100 ] Default: 20 |
{- "totalItems": 0,
- "search": {
- "@type": "string",
- "template": "string",
- "variableRepresentation": "string",
- "mapping": [
- {
- "@type": "string",
- "variable": "string",
- "property": "string",
- "required": true
}
]
}, - "view": {
- "@id": "string",
- "@type": "string",
- "first": "string",
- "last": "string",
- "previous": "string",
- "next": "string"
}, - "member": [
- {
- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "",
- "inventoryItemId": "",
- "locationId": "",
- "lotId": "string",
- "serialUnitId": "string",
- "status": "Available",
- "quantity": 0,
- "ownerId": "",
- "warehouseId": "string",
- "custodianId": "string",
- "createdAt": "",
- "updatedAt": "string"
}
]
}Retrieve a single physical-stock quant by its ULID.
| id required | string Quant identifier |
{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "",
- "inventoryItemId": "",
- "locationId": "",
- "lotId": "string",
- "serialUnitId": "string",
- "status": "Available",
- "quantity": 0,
- "ownerId": "",
- "warehouseId": "string",
- "custodianId": "string",
- "createdAt": "",
- "updatedAt": "string"
}Read-only, generic scan resolution result. Given a scanned code and an
optional subject ResourceUri, the UI learns what the code maps to and the
typed write it should route to next (suggestedAction) with the resolved
trackingRef. This endpoint NEVER mutates.
Query-param only (no path identifier) — the identifier-vs-uri-variable class of bug is impossible by construction.
Read-only: match a scanned LOT or SERIAL code against a subject record (goods-receipts, goods-issues, …) and return the resolved trackingRef plus the typed write to route to (suggestedAction). Never mutates.
| code required | string |
| subject | string The subject ResourceUri, e.g. glacia:///warehousing/goods-receipts/{id} |
{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "resolved": false,
- "status": "ok",
- "tokenKind": "lot",
- "resolvedRef": "string",
- "resolvedLabel": "string",
- "subjectKind": "string",
- "matchedLineRef": "string",
- "trackingKind": "lot",
- "trackingRef": "string",
- "expectedQuantity": 0,
- "remainingQuantity": 0,
- "suggestedAction": "receive-item",
- "suggestedQuantity": 1,
- "message": ""
}Read-only API surface for the DERIVED StockLevel view (design §2.3). A stock level is an AGGREGATION over quants — on-hand / available at item, warehouse, or lot grain — so it has NO identity and NO write endpoints: GetCollection ONLY (never Get-by-id / Post / Patch / Delete).
Retrieve aggregated on-hand/available stock levels, derived on the fly from quants. Choose the grain: item, (item, warehouse), or (item, lot).
| grain | string Default: "item" Enum: "item" "warehouse" "lot" |
| inventoryItemId | string <ulid> |
| warehouseId | string <ulid> |
| lotId | string <ulid> |
| page | integer >= 1 Default: 1 |
| itemsPerPage | integer [ 1 .. 100 ] Default: 20 |
{- "totalItems": 0,
- "search": {
- "@type": "string",
- "template": "string",
- "variableRepresentation": "string",
- "mapping": [
- {
- "@type": "string",
- "variable": "string",
- "property": "string",
- "required": true
}
]
}, - "view": {
- "@id": "string",
- "@type": "string",
- "first": "string",
- "last": "string",
- "previous": "string",
- "next": "string"
}, - "member": [
- {
- "@context": "string",
- "@id": "string",
- "@type": "string",
- "inventoryItemId": "",
- "warehouseId": "string",
- "lotId": "string",
- "grain": "item",
- "onHand": 0,
- "availableOnHand": 0,
- "reserved": 0,
- "available": 0
}
]
}List warehouses operated by a custodian
| custodianId required | string CustodianResource identifier |
| status | string Enum: "active" "suspended" "archived" |
| search | string |
| page | integer >= 1 Default: 1 |
| itemsPerPage | integer [ 1 .. 100 ] Default: 20 |
{- "totalItems": 0,
- "search": {
- "@type": "string",
- "template": "string",
- "variableRepresentation": "string",
- "mapping": [
- {
- "@type": "string",
- "variable": "string",
- "property": "string",
- "required": true
}
]
}, - "view": {
- "@id": "string",
- "@type": "string",
- "first": "string",
- "last": "string",
- "previous": "string",
- "next": "string"
}, - "member": [
- {
- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "string",
- "custodianId": "string",
- "custodianName": "string",
- "custodianType": "string",
- "custodianManaged": false,
- "providerPicksStock": false,
- "canManualIssue": true,
- "canManualReceive": true,
- "canCycleCount": true,
- "canReturn": true,
- "custodianCapabilities": [
- "string"
], - "code": "string",
- "name": "string",
- "addressId": "string",
- "address": {
- "id": "string",
- "street": "string",
- "streetNumber": "string",
- "apartment": "string",
- "floor": "string",
- "postalCode": "string",
- "city": "string",
- "stateProvince": "string",
- "countryCode": "string",
- "formattedAddress": "string"
}, - "status": "active",
- "capabilities": {
- "acceptsTemperatureControlled": true,
- "acceptsHazmat": true,
- "acceptsOversized": true,
- "supportsSameDay": true,
- "supportsReturns": true,
- "maxDailyVolume": 0
}, - "coordinates": {
- "latitude": 0,
- "longitude": 0,
- "accuracyMeters": 0,
- "altitudeMeters": 0
}, - "externalWarehouseId": "string",
- "createdAt": "string",
- "updatedAt": "string"
}
]
}Retrieve a paginated list of warehouses with optional filters.
| custodianId | string <uuid> |
| status | string Enum: "active" "suspended" "archived" |
| search | string |
| page | integer >= 1 Default: 1 |
| itemsPerPage | integer [ 1 .. 100 ] Default: 20 |
{- "totalItems": 0,
- "search": {
- "@type": "string",
- "template": "string",
- "variableRepresentation": "string",
- "mapping": [
- {
- "@type": "string",
- "variable": "string",
- "property": "string",
- "required": true
}
]
}, - "view": {
- "@id": "string",
- "@type": "string",
- "first": "string",
- "last": "string",
- "previous": "string",
- "next": "string"
}, - "member": [
- {
- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "string",
- "custodianId": "string",
- "custodianName": "string",
- "custodianType": "string",
- "custodianManaged": false,
- "providerPicksStock": false,
- "canManualIssue": true,
- "canManualReceive": true,
- "canCycleCount": true,
- "canReturn": true,
- "custodianCapabilities": [
- "string"
], - "code": "string",
- "name": "string",
- "addressId": "string",
- "address": {
- "id": "string",
- "street": "string",
- "streetNumber": "string",
- "apartment": "string",
- "floor": "string",
- "postalCode": "string",
- "city": "string",
- "stateProvince": "string",
- "countryCode": "string",
- "formattedAddress": "string"
}, - "status": "active",
- "capabilities": {
- "acceptsTemperatureControlled": true,
- "acceptsHazmat": true,
- "acceptsOversized": true,
- "supportsSameDay": true,
- "supportsReturns": true,
- "maxDailyVolume": 0
}, - "coordinates": {
- "latitude": 0,
- "longitude": 0,
- "accuracyMeters": 0,
- "altitudeMeters": 0
}, - "externalWarehouseId": "string",
- "createdAt": "string",
- "updatedAt": "string"
}
]
}Create a new warehouse operated by a custodian.
The new Warehouse resource
| custodianId required | string |
| code required | string [ 1 .. 64 ] characters |
| name required | string [ 1 .. 255 ] characters |
required | object (WarehouseAddressInput) |
required | object (WarehouseCapabilitiesInput) |
ApiPlatform.Input.CoordinatesInput (object) or null | |
| externalWarehouseId | string or null <= 255 characters |
{- "custodianId": "string",
- "code": "string",
- "name": "string",
- "address": {
- "street": "string",
- "streetNumber": "string",
- "apartment": "string",
- "floor": "string",
- "postalCode": "string",
- "city": "string",
- "stateProvince": "string",
- "countryCode": "st"
}, - "capabilities": {
- "acceptsTemperatureControlled": false,
- "acceptsHazmat": false,
- "acceptsOversized": false,
- "supportsSameDay": false,
- "supportsReturns": false,
- "maxDailyVolume": 0
}, - "coordinates": {
- "latitude": -90,
- "longitude": -180,
- "accuracyMeters": 0,
- "altitudeMeters": 0
}, - "externalWarehouseId": "string"
}{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "string",
- "custodianId": "string",
- "custodianName": "string",
- "custodianType": "string",
- "custodianManaged": false,
- "providerPicksStock": false,
- "canManualIssue": true,
- "canManualReceive": true,
- "canCycleCount": true,
- "canReturn": true,
- "custodianCapabilities": [
- "string"
], - "code": "string",
- "name": "string",
- "addressId": "string",
- "address": {
- "id": "string",
- "street": "string",
- "streetNumber": "string",
- "apartment": "string",
- "floor": "string",
- "postalCode": "string",
- "city": "string",
- "stateProvince": "string",
- "countryCode": "string",
- "formattedAddress": "string"
}, - "status": "active",
- "capabilities": {
- "acceptsTemperatureControlled": true,
- "acceptsHazmat": true,
- "acceptsOversized": true,
- "supportsSameDay": true,
- "supportsReturns": true,
- "maxDailyVolume": 0
}, - "coordinates": {
- "latitude": 0,
- "longitude": 0,
- "accuracyMeters": 0,
- "altitudeMeters": 0
}, - "externalWarehouseId": "string",
- "createdAt": "string",
- "updatedAt": "string"
}Retrieve a single warehouse by its ULID.
| id required | string Warehouse identifier |
{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "string",
- "custodianId": "string",
- "custodianName": "string",
- "custodianType": "string",
- "custodianManaged": false,
- "providerPicksStock": false,
- "canManualIssue": true,
- "canManualReceive": true,
- "canCycleCount": true,
- "canReturn": true,
- "custodianCapabilities": [
- "string"
], - "code": "string",
- "name": "string",
- "addressId": "string",
- "address": {
- "id": "string",
- "street": "string",
- "streetNumber": "string",
- "apartment": "string",
- "floor": "string",
- "postalCode": "string",
- "city": "string",
- "stateProvince": "string",
- "countryCode": "string",
- "formattedAddress": "string"
}, - "status": "active",
- "capabilities": {
- "acceptsTemperatureControlled": true,
- "acceptsHazmat": true,
- "acceptsOversized": true,
- "supportsSameDay": true,
- "supportsReturns": true,
- "maxDailyVolume": 0
}, - "coordinates": {
- "latitude": 0,
- "longitude": 0,
- "accuracyMeters": 0,
- "altitudeMeters": 0
}, - "externalWarehouseId": "string",
- "createdAt": "string",
- "updatedAt": "string"
}Update warehouse details
| id required | string Warehouse identifier |
The updated Warehouse resource
| name | string or null [ 1 .. 255 ] characters |
| code | string or null [ 1 .. 64 ] characters |
| externalWarehouseId | string or null <= 255 characters |
| clearExternalWarehouseId | boolean Default: false |
ApiPlatform.Input.CoordinatesInput (object) or null | |
| clearCoordinates | boolean Default: false |
{- "name": "string",
- "code": "string",
- "externalWarehouseId": "string",
- "clearExternalWarehouseId": false,
- "coordinates": {
- "latitude": -90,
- "longitude": -180,
- "accuracyMeters": 0,
- "altitudeMeters": 0
}, - "clearCoordinates": false
}{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "string",
- "custodianId": "string",
- "custodianName": "string",
- "custodianType": "string",
- "custodianManaged": false,
- "providerPicksStock": false,
- "canManualIssue": true,
- "canManualReceive": true,
- "canCycleCount": true,
- "canReturn": true,
- "custodianCapabilities": [
- "string"
], - "code": "string",
- "name": "string",
- "addressId": "string",
- "address": {
- "id": "string",
- "street": "string",
- "streetNumber": "string",
- "apartment": "string",
- "floor": "string",
- "postalCode": "string",
- "city": "string",
- "stateProvince": "string",
- "countryCode": "string",
- "formattedAddress": "string"
}, - "status": "active",
- "capabilities": {
- "acceptsTemperatureControlled": true,
- "acceptsHazmat": true,
- "acceptsOversized": true,
- "supportsSameDay": true,
- "supportsReturns": true,
- "maxDailyVolume": 0
}, - "coordinates": {
- "latitude": 0,
- "longitude": 0,
- "accuracyMeters": 0,
- "altitudeMeters": 0
}, - "externalWarehouseId": "string",
- "createdAt": "string",
- "updatedAt": "string"
}Archive a warehouse
| id required | string Warehouse identifier |
{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "string",
- "custodianId": "string",
- "custodianName": "string",
- "custodianType": "string",
- "custodianManaged": false,
- "providerPicksStock": false,
- "canManualIssue": true,
- "canManualReceive": true,
- "canCycleCount": true,
- "canReturn": true,
- "custodianCapabilities": [
- "string"
], - "code": "string",
- "name": "string",
- "addressId": "string",
- "address": {
- "id": "string",
- "street": "string",
- "streetNumber": "string",
- "apartment": "string",
- "floor": "string",
- "postalCode": "string",
- "city": "string",
- "stateProvince": "string",
- "countryCode": "string",
- "formattedAddress": "string"
}, - "status": "active",
- "capabilities": {
- "acceptsTemperatureControlled": true,
- "acceptsHazmat": true,
- "acceptsOversized": true,
- "supportsSameDay": true,
- "supportsReturns": true,
- "maxDailyVolume": 0
}, - "coordinates": {
- "latitude": 0,
- "longitude": 0,
- "accuracyMeters": 0,
- "altitudeMeters": 0
}, - "externalWarehouseId": "string",
- "createdAt": "string",
- "updatedAt": "string"
}Update warehouse capabilities
| id required | string Warehouse identifier |
The updated Warehouse resource
object (WarehouseCapabilitiesInput) |
{- "capabilities": {
- "acceptsTemperatureControlled": false,
- "acceptsHazmat": false,
- "acceptsOversized": false,
- "supportsSameDay": false,
- "supportsReturns": false,
- "maxDailyVolume": 0
}
}{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "string",
- "custodianId": "string",
- "custodianName": "string",
- "custodianType": "string",
- "custodianManaged": false,
- "providerPicksStock": false,
- "canManualIssue": true,
- "canManualReceive": true,
- "canCycleCount": true,
- "canReturn": true,
- "custodianCapabilities": [
- "string"
], - "code": "string",
- "name": "string",
- "addressId": "string",
- "address": {
- "id": "string",
- "street": "string",
- "streetNumber": "string",
- "apartment": "string",
- "floor": "string",
- "postalCode": "string",
- "city": "string",
- "stateProvince": "string",
- "countryCode": "string",
- "formattedAddress": "string"
}, - "status": "active",
- "capabilities": {
- "acceptsTemperatureControlled": true,
- "acceptsHazmat": true,
- "acceptsOversized": true,
- "supportsSameDay": true,
- "supportsReturns": true,
- "maxDailyVolume": 0
}, - "coordinates": {
- "latitude": 0,
- "longitude": 0,
- "accuracyMeters": 0,
- "altitudeMeters": 0
}, - "externalWarehouseId": "string",
- "createdAt": "string",
- "updatedAt": "string"
}Reactivate a warehouse
| id required | string Warehouse identifier |
{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "string",
- "custodianId": "string",
- "custodianName": "string",
- "custodianType": "string",
- "custodianManaged": false,
- "providerPicksStock": false,
- "canManualIssue": true,
- "canManualReceive": true,
- "canCycleCount": true,
- "canReturn": true,
- "custodianCapabilities": [
- "string"
], - "code": "string",
- "name": "string",
- "addressId": "string",
- "address": {
- "id": "string",
- "street": "string",
- "streetNumber": "string",
- "apartment": "string",
- "floor": "string",
- "postalCode": "string",
- "city": "string",
- "stateProvince": "string",
- "countryCode": "string",
- "formattedAddress": "string"
}, - "status": "active",
- "capabilities": {
- "acceptsTemperatureControlled": true,
- "acceptsHazmat": true,
- "acceptsOversized": true,
- "supportsSameDay": true,
- "supportsReturns": true,
- "maxDailyVolume": 0
}, - "coordinates": {
- "latitude": 0,
- "longitude": 0,
- "accuracyMeters": 0,
- "altitudeMeters": 0
}, - "externalWarehouseId": "string",
- "createdAt": "string",
- "updatedAt": "string"
}Suspend a warehouse
| id required | string Warehouse identifier |
{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "string",
- "custodianId": "string",
- "custodianName": "string",
- "custodianType": "string",
- "custodianManaged": false,
- "providerPicksStock": false,
- "canManualIssue": true,
- "canManualReceive": true,
- "canCycleCount": true,
- "canReturn": true,
- "custodianCapabilities": [
- "string"
], - "code": "string",
- "name": "string",
- "addressId": "string",
- "address": {
- "id": "string",
- "street": "string",
- "streetNumber": "string",
- "apartment": "string",
- "floor": "string",
- "postalCode": "string",
- "city": "string",
- "stateProvince": "string",
- "countryCode": "string",
- "formattedAddress": "string"
}, - "status": "active",
- "capabilities": {
- "acceptsTemperatureControlled": true,
- "acceptsHazmat": true,
- "acceptsOversized": true,
- "supportsSameDay": true,
- "supportsReturns": true,
- "maxDailyVolume": 0
}, - "coordinates": {
- "latitude": 0,
- "longitude": 0,
- "accuracyMeters": 0,
- "altitudeMeters": 0
}, - "externalWarehouseId": "string",
- "createdAt": "string",
- "updatedAt": "string"
}Retrieve a paginated list of warehouse tasks (the uniform directed-move execution primitive), filterable by status, kind, assignee, and source reference.
| status | string Enum: "created" "assigned" "started" "parked" "completed" "cancelled" |
| kind | string Enum: "receive" "put_away" "pick" "move" "replenish" "status_change" |
| assignee | string |
| sourceRef | string |
| page | integer >= 1 Default: 1 |
| itemsPerPage | integer [ 1 .. 100 ] Default: 20 |
{- "totalItems": 0,
- "search": {
- "@type": "string",
- "template": "string",
- "variableRepresentation": "string",
- "mapping": [
- {
- "@type": "string",
- "variable": "string",
- "property": "string",
- "required": true
}
]
}, - "view": {
- "@id": "string",
- "@type": "string",
- "first": "string",
- "last": "string",
- "previous": "string",
- "next": "string"
}, - "member": [
- {
- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "string",
- "kind": "receive",
- "status": "created",
- "assignee": "string",
- "priority": 0,
- "sourceRef": "string",
- "cancellationReason": "string",
- "lines": [
- {
- "lineId": "string",
- "inventoryItemId": "string",
- "quantity": 0,
- "sourceLocation": "string",
- "destinationLocation": "string",
- "lotId": "string",
- "serialUnitId": "string",
- "allocationRef": "string",
- "fromStatus": "string",
- "toStatus": "string",
- "executedQuantity": 0,
- "remainingQuantity": 0,
- "executions": [
- {
- "executionId": "string",
- "quantity": 0,
- "location": "string",
- "lotId": "string",
- "serialUnitId": "string",
- "status": "string"
}
]
}
], - "createdAt": "string",
- "updatedAt": "string"
}
]
}Open a directed-move task of a given kind with its line contract.
The new WarehouseTask resource
| kind required | string Default: "" Enum: "receive" "put_away" "pick" "move" "replenish" "status_change" |
| sourceRef | string or null |
| priority | integer Default: 0 |
Array of objects (CreateWarehouseTaskLineInput) |
{- "kind": "receive",
- "sourceRef": "string",
- "priority": 0,
- "lines": [
- {
- "inventoryItemId": "",
- "quantity": 0,
- "lineId": "string",
- "sourceLocation": "string",
- "destinationLocation": "string",
- "lotId": "string",
- "serialUnitId": "string",
- "allocationRef": "string",
- "fromStatus": "string",
- "toStatus": "string"
}
]
}{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "string",
- "kind": "receive",
- "status": "created",
- "assignee": "string",
- "priority": 0,
- "sourceRef": "string",
- "cancellationReason": "string",
- "lines": [
- {
- "lineId": "string",
- "inventoryItemId": "string",
- "quantity": 0,
- "sourceLocation": "string",
- "destinationLocation": "string",
- "lotId": "string",
- "serialUnitId": "string",
- "allocationRef": "string",
- "fromStatus": "string",
- "toStatus": "string",
- "executedQuantity": 0,
- "remainingQuantity": 0,
- "executions": [
- {
- "executionId": "string",
- "quantity": 0,
- "location": "string",
- "lotId": "string",
- "serialUnitId": "string",
- "status": "string"
}
]
}
], - "createdAt": "string",
- "updatedAt": "string"
}Retrieve a single warehouse task by its ULID, including its lines and recorded execution actuals.
| id required | string WarehouseTask identifier |
{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "string",
- "kind": "receive",
- "status": "created",
- "assignee": "string",
- "priority": 0,
- "sourceRef": "string",
- "cancellationReason": "string",
- "lines": [
- {
- "lineId": "string",
- "inventoryItemId": "string",
- "quantity": 0,
- "sourceLocation": "string",
- "destinationLocation": "string",
- "lotId": "string",
- "serialUnitId": "string",
- "allocationRef": "string",
- "fromStatus": "string",
- "toStatus": "string",
- "executedQuantity": 0,
- "remainingQuantity": 0,
- "executions": [
- {
- "executionId": "string",
- "quantity": 0,
- "location": "string",
- "lotId": "string",
- "serialUnitId": "string",
- "status": "string"
}
]
}
], - "createdAt": "string",
- "updatedAt": "string"
}Assign the task to an operator
| id required | string WarehouseTask identifier |
The new WarehouseTask resource
| assignee required | string Default: "" |
{- "assignee": ""
}{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "string",
- "kind": "receive",
- "status": "created",
- "assignee": "string",
- "priority": 0,
- "sourceRef": "string",
- "cancellationReason": "string",
- "lines": [
- {
- "lineId": "string",
- "inventoryItemId": "string",
- "quantity": 0,
- "sourceLocation": "string",
- "destinationLocation": "string",
- "lotId": "string",
- "serialUnitId": "string",
- "allocationRef": "string",
- "fromStatus": "string",
- "toStatus": "string",
- "executedQuantity": 0,
- "remainingQuantity": 0,
- "executions": [
- {
- "executionId": "string",
- "quantity": 0,
- "location": "string",
- "lotId": "string",
- "serialUnitId": "string",
- "status": "string"
}
]
}
], - "createdAt": "string",
- "updatedAt": "string"
}Cancel the task
| id required | string WarehouseTask identifier |
The new WarehouseTask resource
| reason required | string Default: "" |
{- "reason": ""
}{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "string",
- "kind": "receive",
- "status": "created",
- "assignee": "string",
- "priority": 0,
- "sourceRef": "string",
- "cancellationReason": "string",
- "lines": [
- {
- "lineId": "string",
- "inventoryItemId": "string",
- "quantity": 0,
- "sourceLocation": "string",
- "destinationLocation": "string",
- "lotId": "string",
- "serialUnitId": "string",
- "allocationRef": "string",
- "fromStatus": "string",
- "toStatus": "string",
- "executedQuantity": 0,
- "remainingQuantity": 0,
- "executions": [
- {
- "executionId": "string",
- "quantity": 0,
- "location": "string",
- "lotId": "string",
- "serialUnitId": "string",
- "status": "string"
}
]
}
], - "createdAt": "string",
- "updatedAt": "string"
}Complete the task
| id required | string WarehouseTask identifier |
{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "string",
- "kind": "receive",
- "status": "created",
- "assignee": "string",
- "priority": 0,
- "sourceRef": "string",
- "cancellationReason": "string",
- "lines": [
- {
- "lineId": "string",
- "inventoryItemId": "string",
- "quantity": 0,
- "sourceLocation": "string",
- "destinationLocation": "string",
- "lotId": "string",
- "serialUnitId": "string",
- "allocationRef": "string",
- "fromStatus": "string",
- "toStatus": "string",
- "executedQuantity": 0,
- "remainingQuantity": 0,
- "executions": [
- {
- "executionId": "string",
- "quantity": 0,
- "location": "string",
- "lotId": "string",
- "serialUnitId": "string",
- "status": "string"
}
]
}
], - "createdAt": "string",
- "updatedAt": "string"
}Park (suspend) the task
| id required | string WarehouseTask identifier |
The new WarehouseTask resource
| reason | string or null |
{- "reason": "string"
}{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "string",
- "kind": "receive",
- "status": "created",
- "assignee": "string",
- "priority": 0,
- "sourceRef": "string",
- "cancellationReason": "string",
- "lines": [
- {
- "lineId": "string",
- "inventoryItemId": "string",
- "quantity": 0,
- "sourceLocation": "string",
- "destinationLocation": "string",
- "lotId": "string",
- "serialUnitId": "string",
- "allocationRef": "string",
- "fromStatus": "string",
- "toStatus": "string",
- "executedQuantity": 0,
- "remainingQuantity": 0,
- "executions": [
- {
- "executionId": "string",
- "quantity": 0,
- "location": "string",
- "lotId": "string",
- "serialUnitId": "string",
- "status": "string"
}
]
}
], - "createdAt": "string",
- "updatedAt": "string"
}Record an execution actual against a line
| id required | string WarehouseTask identifier |
The new WarehouseTask resource
| lineId required | string Default: "" |
| quantity | integer > 0 Default: 0 |
| location | string or null |
| lotId | string or null |
| serialUnitId | string or null |
| status | string or null Enum: "Available" "Quarantine" "Damaged" "Expired" "InTransit" "Blocked" "Scrapped" |
{- "lineId": "",
- "quantity": 0,
- "location": "string",
- "lotId": "string",
- "serialUnitId": "string",
- "status": "Available"
}{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "string",
- "kind": "receive",
- "status": "created",
- "assignee": "string",
- "priority": 0,
- "sourceRef": "string",
- "cancellationReason": "string",
- "lines": [
- {
- "lineId": "string",
- "inventoryItemId": "string",
- "quantity": 0,
- "sourceLocation": "string",
- "destinationLocation": "string",
- "lotId": "string",
- "serialUnitId": "string",
- "allocationRef": "string",
- "fromStatus": "string",
- "toStatus": "string",
- "executedQuantity": 0,
- "remainingQuantity": 0,
- "executions": [
- {
- "executionId": "string",
- "quantity": 0,
- "location": "string",
- "lotId": "string",
- "serialUnitId": "string",
- "status": "string"
}
]
}
], - "createdAt": "string",
- "updatedAt": "string"
}Resume a parked task
| id required | string WarehouseTask identifier |
{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "string",
- "kind": "receive",
- "status": "created",
- "assignee": "string",
- "priority": 0,
- "sourceRef": "string",
- "cancellationReason": "string",
- "lines": [
- {
- "lineId": "string",
- "inventoryItemId": "string",
- "quantity": 0,
- "sourceLocation": "string",
- "destinationLocation": "string",
- "lotId": "string",
- "serialUnitId": "string",
- "allocationRef": "string",
- "fromStatus": "string",
- "toStatus": "string",
- "executedQuantity": 0,
- "remainingQuantity": 0,
- "executions": [
- {
- "executionId": "string",
- "quantity": 0,
- "location": "string",
- "lotId": "string",
- "serialUnitId": "string",
- "status": "string"
}
]
}
], - "createdAt": "string",
- "updatedAt": "string"
}Split a line into a new task
| id required | string WarehouseTask identifier |
The new WarehouseTask resource
| lineId required | string Default: "" |
| quantity | integer > 0 Default: 0 |
{- "lineId": "",
- "quantity": 0
}{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "string",
- "kind": "receive",
- "status": "created",
- "assignee": "string",
- "priority": 0,
- "sourceRef": "string",
- "cancellationReason": "string",
- "lines": [
- {
- "lineId": "string",
- "inventoryItemId": "string",
- "quantity": 0,
- "sourceLocation": "string",
- "destinationLocation": "string",
- "lotId": "string",
- "serialUnitId": "string",
- "allocationRef": "string",
- "fromStatus": "string",
- "toStatus": "string",
- "executedQuantity": 0,
- "remainingQuantity": 0,
- "executions": [
- {
- "executionId": "string",
- "quantity": 0,
- "location": "string",
- "lotId": "string",
- "serialUnitId": "string",
- "status": "string"
}
]
}
], - "createdAt": "string",
- "updatedAt": "string"
}Start the task
| id required | string WarehouseTask identifier |
{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "string",
- "kind": "receive",
- "status": "created",
- "assignee": "string",
- "priority": 0,
- "sourceRef": "string",
- "cancellationReason": "string",
- "lines": [
- {
- "lineId": "string",
- "inventoryItemId": "string",
- "quantity": 0,
- "sourceLocation": "string",
- "destinationLocation": "string",
- "lotId": "string",
- "serialUnitId": "string",
- "allocationRef": "string",
- "fromStatus": "string",
- "toStatus": "string",
- "executedQuantity": 0,
- "remainingQuantity": 0,
- "executions": [
- {
- "executionId": "string",
- "quantity": 0,
- "location": "string",
- "lotId": "string",
- "serialUnitId": "string",
- "status": "string"
}
]
}
], - "createdAt": "string",
- "updatedAt": "string"
}Clear the task assignee
| id required | string WarehouseTask identifier |
{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "string",
- "kind": "receive",
- "status": "created",
- "assignee": "string",
- "priority": 0,
- "sourceRef": "string",
- "cancellationReason": "string",
- "lines": [
- {
- "lineId": "string",
- "inventoryItemId": "string",
- "quantity": 0,
- "sourceLocation": "string",
- "destinationLocation": "string",
- "lotId": "string",
- "serialUnitId": "string",
- "allocationRef": "string",
- "fromStatus": "string",
- "toStatus": "string",
- "executedQuantity": 0,
- "remainingQuantity": 0,
- "executions": [
- {
- "executionId": "string",
- "quantity": 0,
- "location": "string",
- "lotId": "string",
- "serialUnitId": "string",
- "status": "string"
}
]
}
], - "createdAt": "string",
- "updatedAt": "string"
}