4klyft API (1.0.0)

Download OpenAPI specification:

4klyft API Support: support@4klyft.com License: Proprietary

Logistics operations API for the 4klyft platform.

Overview

This API provides comprehensive endpoints for managing:

  • Routes & Execution: Create, manage, and execute delivery routes
  • Shipments & Loads: Track shipments from pickup to delivery
  • Fleet Management: Manage carriers, vehicles, and drivers
  • Proof of Delivery: Capture signatures, photos, and delivery confirmations
  • Settings: Configure system-wide and tenant-specific settings
  • Webhooks: Subscribe to real-time event notifications
  • Analytics: Access delivery performance metrics and reports

Authentication

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>

Rate Limiting

API requests are rate-limited to ensure fair usage. Standard limits are:

  • 1000 requests per minute for read operations
  • 100 requests per minute for write operations

Error Handling

The API uses RFC 7807 Problem Details for error responses.

Warehousing - Custodians

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.

List custodians

Retrieve a paginated list of custodians with optional filters.

Authorizations:
Bearer
query Parameters
type
string
status
string
Enum: "active" "suspended" "disconnected"
partnerId
string <uuid>
search
string
page
integer >= 1
Default: 1
itemsPerPage
integer [ 1 .. 100 ]
Default: 20

Responses

Response samples

Content type
{
  • "totalItems": 0,
  • "search": {
    },
  • "view": {
    },
  • "member": [
    ]
}

Create a custodian

Create a new custodian (warehouse operator).

Authorizations:
Bearer
Request Body schema: application/json
required

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.

Responses

Request samples

Content type
application/json
{
  • "partnerId": "bf408d53-df49-40a6-8455-a34bd4360901",
  • "type": "internal",
  • "name": "string",
  • "enabledCapabilities": [
    ],
  • "connectionConfig": {
    }
}

Response samples

Content type
{
  • "@context": "string",
  • "@id": "string",
  • "@type": "string",
  • "id": "string",
  • "partnerId": "string",
  • "partnerName": "string",
  • "type": "internal",
  • "name": "string",
  • "status": "active",
  • "enabledCapabilities": [
    ],
  • "connectionConfigured": false,
  • "createdAt": "string",
  • "updatedAt": "string"
}

Find a custodian by partner

Resolve the custodian profile held by a partner. Returns 404 when the partner holds no custodian.

Authorizations:
Bearer
path Parameters
partnerId
required
string <uuid>
id
required
string

Custodian identifier

Responses

Response samples

Content type
{
  • "@context": "string",
  • "@id": "string",
  • "@type": "string",
  • "id": "string",
  • "partnerId": "string",
  • "partnerName": "string",
  • "type": "internal",
  • "name": "string",
  • "status": "active",
  • "enabledCapabilities": [
    ],
  • "connectionConfigured": false,
  • "createdAt": "string",
  • "updatedAt": "string"
}

Get capability catalog

Returns the default Capabilities each CustodianType supports. Used by the custodian creation wizards to display the technical baseline before the tenant opts in.

Authorizations:
Bearer

Responses

Response samples

Content type
{
  • "@context": "string",
  • "@id": "string",
  • "@type": "string",
  • "id": "default",
  • "catalog": {
    }
}

Onboard an existing partner as a custodian

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.

Authorizations:
Bearer
Request Body schema: application/json
required

Onboarding data

partnerId
required
string <uuid>
type
required
string
Enum: "internal" "amazon_fba" "bol_fbb" "shiphero" "shipbob" "flexport" "sendcloud" "custom"
name
required
string

Responses

Request samples

Content type
application/json
{
  • "partnerId": "bf408d53-df49-40a6-8455-a34bd4360901",
  • "type": "internal",
  • "name": "string"
}

Response samples

Content type
{
  • "@context": "string",
  • "@id": "string",
  • "@type": "string",
  • "id": "string",
  • "partnerId": "string",
  • "partnerName": "string",
  • "type": "internal",
  • "name": "string",
  • "status": "active",
  • "enabledCapabilities": [
    ],
  • "connectionConfigured": false,
  • "createdAt": "string",
  • "updatedAt": "string"
}

Test custodian connection credentials

Validate the supplied connection config for a given CustodianType without persisting any state. Used by the wizard UI for live feedback.

Authorizations:
Bearer
Request Body schema: application/json
required

Custodian type + connection config to validate

type
required
string
Enum: "internal" "amazon_fba" "bol_fbb" "shiphero" "shipbob" "flexport" "sendcloud" "custom"
required
object

Responses

Request samples

Content type
application/json
{
  • "type": "internal",
  • "connectionConfig": { }
}

Response samples

Content type
{
  • "@context": "string",
  • "@id": "string",
  • "@type": "string",
  • "id": "test-connection",
  • "ok": false,
  • "code": "string",
  • "message": ""
}

Get a custodian

Retrieve a single custodian by its UUID.

Authorizations:
Bearer
path Parameters
id
required
string

Custodian identifier

Responses

Response samples

Content type
{
  • "@context": "string",
  • "@id": "string",
  • "@type": "string",
  • "id": "string",
  • "partnerId": "string",
  • "partnerName": "string",
  • "type": "internal",
  • "name": "string",
  • "status": "active",
  • "enabledCapabilities": [
    ],
  • "connectionConfigured": false,
  • "createdAt": "string",
  • "updatedAt": "string"
}

Disable a capability on a custodian

Disable a capability on a custodian

Authorizations:
Bearer
path Parameters
id
required
string

Custodian identifier

Request Body schema:
required

The new Custodian resource

capability
required
string
Enum: "tenant_picks_warehouse" "provider_picks_warehouse" "list_inventory" "push_inventory" "cancel_order" "webhook_receipt" "label_generation"

Responses

Request samples

Content type
{
  • "capability": "tenant_picks_warehouse"
}

Response samples

Content type
{
  • "@context": "string",
  • "@id": "string",
  • "@type": "string",
  • "id": "string",
  • "partnerId": "string",
  • "partnerName": "string",
  • "type": "internal",
  • "name": "string",
  • "status": "active",
  • "enabledCapabilities": [
    ],
  • "connectionConfigured": false,
  • "createdAt": "string",
  • "updatedAt": "string"
}

Enable a capability on a custodian

Enable a capability on a custodian

Authorizations:
Bearer
path Parameters
id
required
string

Custodian identifier

Request Body schema:
required

The new Custodian resource

capability
required
string
Enum: "tenant_picks_warehouse" "provider_picks_warehouse" "list_inventory" "push_inventory" "cancel_order" "webhook_receipt" "label_generation"

Responses

Request samples

Content type
{
  • "capability": "tenant_picks_warehouse"
}

Response samples

Content type
{
  • "@context": "string",
  • "@id": "string",
  • "@type": "string",
  • "id": "string",
  • "partnerId": "string",
  • "partnerName": "string",
  • "type": "internal",
  • "name": "string",
  • "status": "active",
  • "enabledCapabilities": [
    ],
  • "connectionConfigured": false,
  • "createdAt": "string",
  • "updatedAt": "string"
}

Update custodian connection configuration

Update custodian connection configuration

Authorizations:
Bearer
path Parameters
id
required
string

Custodian identifier

Request Body schema:
required

The new Custodian resource

required
object (ConnectionConfigInput)

Responses

Request samples

Content type
{
  • "connectionConfig": {
    }
}

Response samples

Content type
{
  • "@context": "string",
  • "@id": "string",
  • "@type": "string",
  • "id": "string",
  • "partnerId": "string",
  • "partnerName": "string",
  • "type": "internal",
  • "name": "string",
  • "status": "active",
  • "enabledCapabilities": [
    ],
  • "connectionConfigured": false,
  • "createdAt": "string",
  • "updatedAt": "string"
}

Disconnect an external custodian

Disconnect an external custodian

Authorizations:
Bearer
path Parameters
id
required
string

Custodian identifier

Responses

Response samples

Content type
{
  • "@context": "string",
  • "@id": "string",
  • "@type": "string",
  • "id": "string",
  • "partnerId": "string",
  • "partnerName": "string",
  • "type": "internal",
  • "name": "string",
  • "status": "active",
  • "enabledCapabilities": [
    ],
  • "connectionConfigured": false,
  • "createdAt": "string",
  • "updatedAt": "string"
}

Reactivate a custodian

Reactivate a custodian

Authorizations:
Bearer
path Parameters
id
required
string

Custodian identifier

Responses

Response samples

Content type
{
  • "@context": "string",
  • "@id": "string",
  • "@type": "string",
  • "id": "string",
  • "partnerId": "string",
  • "partnerName": "string",
  • "type": "internal",
  • "name": "string",
  • "status": "active",
  • "enabledCapabilities": [
    ],
  • "connectionConfigured": false,
  • "createdAt": "string",
  • "updatedAt": "string"
}

Suspend a custodian

Suspend a custodian

Authorizations:
Bearer
path Parameters
id
required
string

Custodian identifier

Responses

Response samples

Content type
{
  • "@context": "string",
  • "@id": "string",
  • "@type": "string",
  • "id": "string",
  • "partnerId": "string",
  • "partnerName": "string",
  • "type": "internal",
  • "name": "string",
  • "status": "active",
  • "enabledCapabilities": [
    ],
  • "connectionConfigured": false,
  • "createdAt": "string",
  • "updatedAt": "string"
}

Warehousing - Custodian Wizard

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).

Finalise a custodian wizard flow

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.

Authorizations:
Bearer
path Parameters
provider
required
string
Enum: "amazon_fba" "bol_fbb" "flexport"

CustodianWizard identifier

Request Body schema: application/json
required

Wizard completion payload

custodianId
required
string <ulid>
state
required
string
code
string
object
object

Responses

Request samples

Content type
application/json
{
  • "custodianId": "string",
  • "state": "string",
  • "code": "string",
  • "credentials": { },
  • "resourceSelection": { }
}

Response samples

Content type
{
  • "@context": "string",
  • "@id": "string",
  • "@type": "string",
  • "id": "wizard",
  • "provider": "",
  • "authorizationUrl": "string",
  • "state": "",
  • "expiresInSeconds": 0,
  • "requiredFields": [
    ],
  • "requiresAuthorizationUrl": false,
  • "resources": {
    }
}

Begin a custodian wizard flow

For OAuth providers returns an authorizationUrl + signed state; for API-key providers returns a requiredFields schema for the wizard form.

Authorizations:
Bearer
path Parameters
provider
required
string
Enum: "amazon_fba" "bol_fbb" "flexport"

CustodianWizard identifier

Request Body schema: application/json
required

Wizard start payload

custodianId
required
string <ulid>
redirectUri
string or null

Responses

Request samples

Content type
application/json
{
  • "custodianId": "string",
  • "redirectUri": "string"
}

Response samples

Content type
{
  • "@context": "string",
  • "@id": "string",
  • "@type": "string",
  • "id": "wizard",
  • "provider": "",
  • "authorizationUrl": "string",
  • "state": "",
  • "expiresInSeconds": 0,
  • "requiredFields": [
    ],
  • "requiresAuthorizationUrl": false,
  • "resources": {
    }
}

Fetch provider-side resources for the wizard

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).

Authorizations:
Bearer
path Parameters
provider
required
string
Enum: "amazon_fba" "bol_fbb" "flexport"

CustodianWizard identifier

query Parameters
custodianId
required
string <ulid>

Responses

Response samples

Content type
{
  • "@context": "string",
  • "@id": "string",
  • "@type": "string",
  • "id": "wizard",
  • "provider": "",
  • "authorizationUrl": "string",
  • "state": "",
  • "expiresInSeconds": 0,
  • "requiredFields": [
    ],
  • "requiresAuthorizationUrl": false,
  • "resources": {
    }
}

Warehousing - Consignments

Resource 'Warehousing - Consignments' operations.

List consignments

Retrieve a paginated list of shipment contents manifests with optional status/source/carrier filters.

Authorizations:
Bearer
query Parameters
status
string
Enum: "assembled" "carrier_assigned" "dispatched" "cancelled"
sourceRef
string
carrierId
string
page
integer >= 1
Default: 1
itemsPerPage
integer [ 1 .. 100 ]
Default: 20

Responses

Response samples

Content type
{
  • "totalItems": 0,
  • "search": {
    },
  • "view": {
    },
  • "member": [
    ]
}

Assemble a consignment

Assemble the contents manifest of a shipment (typically from an OutboundDelivery) with its manifest lines.

Authorizations:
Bearer
Request Body schema:
required

The new Consignment resource

sourceRef
string or null
Array of objects (ConsignmentLineInput)

Responses

Request samples

Content type
{
  • "sourceRef": "string",
  • "lines": [
    ]
}

Response samples

Content type
{
  • "@context": "string",
  • "@id": "string",
  • "@type": "string",
  • "id": "string",
  • "status": "assembled",
  • "sourceRef": "string",
  • "carrierId": "string",
  • "tracking": {
    },
  • "lines": [
    ],
  • "cancellationReason": "string",
  • "createdBy": "string",
  • "createdAt": "string",
  • "updatedAt": "string"
}

Get a consignment

Retrieve a single consignment (shipment contents manifest) by its ULID.

Authorizations:
Bearer
path Parameters
id
required
string

Consignment identifier

Responses

Response samples

Content type
{
  • "@context": "string",
  • "@id": "string",
  • "@type": "string",
  • "id": "string",
  • "status": "assembled",
  • "sourceRef": "string",
  • "carrierId": "string",
  • "tracking": {
    },
  • "lines": [
    ],
  • "cancellationReason": "string",
  • "createdBy": "string",
  • "createdAt": "string",
  • "updatedAt": "string"
}

Assign a carrier

Assign the CARRIER that will move the consignment (never a Shipment).

Authorizations:
Bearer
path Parameters
id
required
string

Consignment identifier

Request Body schema:
required

The new Consignment resource

carrierId
required
string

Responses

Request samples

Content type
{
  • "carrierId": "string"
}

Response samples

Content type
{
  • "@context": "string",
  • "@id": "string",
  • "@type": "string",
  • "id": "string",
  • "status": "assembled",
  • "sourceRef": "string",
  • "carrierId": "string",
  • "tracking": {
    },
  • "lines": [
    ],
  • "cancellationReason": "string",
  • "createdBy": "string",
  • "createdAt": "string",
  • "updatedAt": "string"
}

Cancel the consignment

Cancel the consignment

Authorizations:
Bearer
path Parameters
id
required
string

Consignment identifier

Request Body schema:
required

The new Consignment resource

reason
required
string

Responses

Request samples

Content type
{
  • "reason": "string"
}

Response samples

Content type
{
  • "@context": "string",
  • "@id": "string",
  • "@type": "string",
  • "id": "string",
  • "status": "assembled",
  • "sourceRef": "string",
  • "carrierId": "string",
  • "tracking": {
    },
  • "lines": [
    ],
  • "cancellationReason": "string",
  • "createdBy": "string",
  • "createdAt": "string",
  • "updatedAt": "string"
}

Mark the consignment dispatched

Only from CARRIER_ASSIGNED. Idempotent.

Authorizations:
Bearer
path Parameters
id
required
string

Consignment identifier

Responses

Response samples

Content type
{
  • "@context": "string",
  • "@id": "string",
  • "@type": "string",
  • "id": "string",
  • "status": "assembled",
  • "sourceRef": "string",
  • "carrierId": "string",
  • "tracking": {
    },
  • "lines": [
    ],
  • "cancellationReason": "string",
  • "createdBy": "string",
  • "createdAt": "string",
  • "updatedAt": "string"
}

Record a carrier-tracking snapshot

Record the latest denormalized carrier-tracking state fed down from Shipping.

Authorizations:
Bearer
path Parameters
id
required
string

Consignment identifier

Request Body schema:
required

The new Consignment resource

object (ShipmentTrackingInput)

Responses

Request samples

Content type
{
  • "tracking": {
    }
}

Response samples

Content type
{
  • "@context": "string",
  • "@id": "string",
  • "@type": "string",
  • "id": "string",
  • "status": "assembled",
  • "sourceRef": "string",
  • "carrierId": "string",
  • "tracking": {
    },
  • "lines": [
    ],
  • "cancellationReason": "string",
  • "createdBy": "string",
  • "createdAt": "string",
  • "updatedAt": "string"
}

Warehousing - Goods Issue Postings

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.

Get an immutable goods issue posting

Retrieve a single immutable GoodsIssue posting (produced by posting an outbound delivery) by its ULID.

Authorizations:
Bearer
path Parameters
id
required
string

GoodsIssuePosting identifier

Responses

Response samples

Content type
{
  • "@context": "string",
  • "@id": "string",
  • "@type": "string",
  • "id": "string",
  • "number": "string",
  • "warehouseId": "string",
  • "subject": "string",
  • "lines": [
    ],
  • "createdBy": "string",
  • "createdAt": "string"
}

Warehousing - Picking

Resource 'Warehousing - Picking' operations.

List picker queue for a warehouse

GoodsIssues in DRAFT or PICKING state for a given warehouse, sorted oldest-first so the queue serves FIFO. warehouseId is required.

Authorizations:
Bearer
query Parameters
warehouseId
required
string <uuid>
page
integer >= 1
Default: 1
itemsPerPage
integer [ 1 .. 100 ]
Default: 50

Responses

Response samples

Content type
{
  • "totalItems": 0,
  • "search": {
    },
  • "view": {
    },
  • "member": [
    ]
}

Warehousing - Goods Issues

Resource 'Warehousing - Goods Issues' operations.

List goods issues

Retrieve a paginated list of goods issues with optional filters.

Authorizations:
Bearer
query Parameters
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

Responses

Response samples

Content type
{
  • "totalItems": 0,
  • "search": {
    },
  • "view": {
    },
  • "member": [
    ]
}

Create a goods issue

Create a new picking-workflow goods issue in DRAFT status with one or more expected line items.

Authorizations:
Bearer
Request Body schema:
required

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)

Responses

Request samples

Content type
{
  • "warehouseId": "",
  • "subject": "string",
  • "movementReason": "cycle_count_adjustment",
  • "currency": "str",
  • "lines": [
    ]
}

Response samples

Content type
{
  • "@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": [
    ],
  • "createdAt": "",
  • "updatedAt": "string",
  • "pickerAssignmentId": "string",
  • "pickerAssignmentAt": "string"
}

Get a goods issue

Retrieve a single goods issue by its ULID, including all line items.

Authorizations:
Bearer
path Parameters
id
required
string

GoodsIssue identifier

Responses

Response samples

Content type
{
  • "@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": [
    ],
  • "createdAt": "",
  • "updatedAt": "string",
  • "pickerAssignmentId": "string",
  • "pickerAssignmentAt": "string"
}

Cancel a goods issue

Cancel a non-terminal goods issue with a reason. Terminal states (ISSUED, CANCELLED) are rejected.

Authorizations:
Bearer
path Parameters
id
required
string

GoodsIssue identifier

Request Body schema:
required

The new GoodsIssue resource

reason
required
string
Default: ""

Responses

Request samples

Content type
{
  • "reason": ""
}

Response samples

Content type
{
  • "@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": [
    ],
  • "createdAt": "",
  • "updatedAt": "string",
  • "pickerAssignmentId": "string",
  • "pickerAssignmentAt": "string"
}

Claim a goods issue for picking

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.

Authorizations:
Bearer
path Parameters
id
required
string

GoodsIssue identifier

Responses

Response samples

Content type
{
  • "@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": [
    ],
  • "createdAt": "",
  • "updatedAt": "string",
  • "pickerAssignmentId": "string",
  • "pickerAssignmentAt": "string"
}

Issue the goods

Transition the goods issue PICKING → ISSUED. Subscriber decrements Stock and fulfils any linked reservations.

Authorizations:
Bearer
path Parameters
id
required
string

GoodsIssue identifier

Responses

Response samples

Content type
{
  • "@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": [
    ],
  • "createdAt": "",
  • "updatedAt": "string",
  • "pickerAssignmentId": "string",
  • "pickerAssignmentAt": "string"
}

Add a line item to a draft issue

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.

Authorizations:
Bearer
path Parameters
id
required
string

GoodsIssue identifier

Request Body schema:
required

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).

Responses

Request samples

Content type
{
  • "inventoryItemId": "",
  • "expectedQuantity": 0,
  • "unitCost": 0
}

Response samples

Content type
{
  • "@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": [
    ],
  • "createdAt": "",
  • "updatedAt": "string",
  • "pickerAssignmentId": "string",
  • "pickerAssignmentAt": "string"
}

Queue pick-list generation

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).

Authorizations:
Bearer
path Parameters
id
required
string

GoodsIssue identifier

Request Body schema:
required

The new GoodsIssue resource

format
string
Default: "pdf"
Enum: "pdf" "html"

Output format for the pick list.

Responses

Request samples

Content type
{
  • "format": "pdf"
}

Response samples

Content type
{
  • "@context": "string",
  • "@id": "string",
  • "@type": "string",
  • "jobId": "",
  • "kind": "",
  • "title": "",
  • "status": "pending",
  • "subjectRef": "string"
}

Pick stock for a goods issue line item

Record picked quantity against a line item. First pick transitions the issue from DRAFT to PICKING.

Authorizations:
Bearer
path Parameters
id
required
string

GoodsIssue identifier

Request Body schema:
required

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.

Responses

Request samples

Content type
{
  • "lineItemId": "",
  • "pickedQuantity": 0,
  • "trackingRef": "string"
}

Response samples

Content type
{
  • "@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": [
    ],
  • "createdAt": "",
  • "updatedAt": "string",
  • "pickerAssignmentId": "string",
  • "pickerAssignmentAt": "string"
}

Release a picker claim on a goods issue

Release the current picker claim. No-op if the issue is unclaimed or if a different picker holds the claim.

Authorizations:
Bearer
path Parameters
id
required
string

GoodsIssue identifier

Responses

Response samples

Content type
{
  • "@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": [
    ],
  • "createdAt": "",
  • "updatedAt": "string",
  • "pickerAssignmentId": "string",
  • "pickerAssignmentAt": "string"
}

Warehousing - Goods Receipts

Resource 'Warehousing - Goods Receipts' operations.

List goods receipts

Retrieve a paginated list of goods receipts with optional filters.

Authorizations:
Bearer
query Parameters
warehouseId
string <uuid>
status
string
Enum: "draft" "receiving" "completed" "cancelled"
page
integer >= 1
Default: 1
itemsPerPage
integer [ 1 .. 100 ]
Default: 20

Responses

Response samples

Content type
{
  • "totalItems": 0,
  • "search": {
    },
  • "view": {
    },
  • "member": [
    ]
}

Create a goods receipt

Open a new multi-line receiving workflow against a reference document.

Authorizations:
Bearer
Request Body schema:
required

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)

Responses

Request samples

Content type
{
  • "warehouseId": "string",
  • "subject": "string",
  • "movementReason": "cycle_count_adjustment",
  • "currency": "str",
  • "lines": [
    ]
}

Response samples

Content type
{
  • "@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": [
    ],
  • "createdAt": "string",
  • "updatedAt": "string",
  • "source": "internal"
}

Get a goods receipt

Retrieve a single goods receipt by its ULID.

Authorizations:
Bearer
path Parameters
id
required
string

GoodsReceipt identifier

Responses

Response samples

Content type
{
  • "@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": [
    ],
  • "createdAt": "string",
  • "updatedAt": "string",
  • "source": "internal"
}

Cancel a goods receipt

Cancel a goods receipt

Authorizations:
Bearer
path Parameters
id
required
string

GoodsReceipt identifier

Request Body schema:
required

The new GoodsReceipt resource

reason
required
string

Responses

Request samples

Content type
{
  • "reason": "string"
}

Response samples

Content type
{
  • "@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": [
    ],
  • "createdAt": "string",
  • "updatedAt": "string",
  • "source": "internal"
}

Complete the goods receipt and push quantities to Stock

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.

Authorizations:
Bearer
path Parameters
id
required
string

GoodsReceipt identifier

Responses

Response samples

Content type
{
  • "@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": [
    ],
  • "createdAt": "string",
  • "updatedAt": "string",
  • "source": "internal"
}

Add a line item to a draft receipt

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.

Authorizations:
Bearer
path Parameters
id
required
string

GoodsReceipt identifier

Request Body schema:
required

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).

Responses

Request samples

Content type
{
  • "inventoryItemId": "",
  • "expectedQuantity": 0,
  • "unitCost": 0
}

Response samples

Content type
{
  • "@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": [
    ],
  • "createdAt": "string",
  • "updatedAt": "string",
  • "source": "internal"
}

Set per-line disposition

Set the disposition (accepted / quarantine / return_to_vendor / repair / scrap) for a single receipt line. Only accepted lines increase Stock on completion.

Authorizations:
Bearer
path Parameters
id
required
string

GoodsReceipt identifier

lineItemId
required
string

GoodsReceipt identifier

Request Body schema:
required

The new GoodsReceipt resource

disposition
required
string
Enum: "accepted" "quarantine" "return_to_vendor" "repair" "scrap"

Responses

Request samples

Content type
{
  • "disposition": "accepted"
}

Response samples

Content type
{
  • "@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": [
    ],
  • "createdAt": "string",
  • "updatedAt": "string",
  • "source": "internal"
}

Record received items against a line

Record received items against a line

Authorizations:
Bearer
path Parameters
id
required
string

GoodsReceipt identifier

Request Body schema:
required

The new GoodsReceipt resource

lineItemId
required
string
receivedQuantity
integer > 0
trackingRef
string or null

Responses

Request samples

Content type
{
  • "lineItemId": "string",
  • "receivedQuantity": 0,
  • "trackingRef": "string"
}

Response samples

Content type
{
  • "@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": [
    ],
  • "createdAt": "string",
  • "updatedAt": "string",
  • "source": "internal"
}

Warehousing - Handling Units

Resource 'Warehousing - Handling Units' operations.

List handling units

Retrieve a paginated list of handling units (license plates) with optional status/kind/parent filters.

Authorizations:
Bearer
query Parameters
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

Responses

Response samples

Content type
{
  • "totalItems": 0,
  • "search": {
    },
  • "view": {
    },
  • "member": [
    ]
}

Open a handling unit

Open a new handling unit in OPEN status. Its license-plate identifier is allocated automatically via the Numbering module.

Authorizations:
Bearer
Request Body schema:
required

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.

Responses

Request samples

Content type
{
  • "kind": "parcel",
  • "parentId": "string"
}

Response samples

Content type
{
  • "@context": "string",
  • "@id": "string",
  • "@type": "string",
  • "id": "",
  • "identifier": "",
  • "kind": "parcel",
  • "parentId": "string",
  • "status": "",
  • "measurements": {
    },
  • "contents": [
    ],
  • "packedBy": "string",
  • "packedAt": "string",
  • "closedAt": "string",
  • "createdBy": "string",
  • "createdAt": "",
  • "updatedAt": "string"
}

Get a handling unit

Retrieve a single handling unit by its ULID, including its contents and measurements.

Authorizations:
Bearer
path Parameters
id
required
string

HandlingUnit identifier

Responses

Response samples

Content type
{
  • "@context": "string",
  • "@id": "string",
  • "@type": "string",
  • "id": "",
  • "identifier": "",
  • "kind": "parcel",
  • "parentId": "string",
  • "status": "",
  • "measurements": {
    },
  • "contents": [
    ],
  • "packedBy": "string",
  • "packedAt": "string",
  • "closedAt": "string",
  • "createdBy": "string",
  • "createdAt": "",
  • "updatedAt": "string"
}

Close a handling unit

Transition PACKED → CLOSED (sealed; ready to hand to transport).

Authorizations:
Bearer
path Parameters
id
required
string

HandlingUnit identifier

Responses

Response samples

Content type
{
  • "@context": "string",
  • "@id": "string",
  • "@type": "string",
  • "id": "",
  • "identifier": "",
  • "kind": "parcel",
  • "parentId": "string",
  • "status": "",
  • "measurements": {
    },
  • "contents": [
    ],
  • "packedBy": "string",
  • "packedAt": "string",
  • "closedAt": "string",
  • "createdBy": "string",
  • "createdAt": "",
  • "updatedAt": "string"
}

Consume a handling unit

Mark a sealed handling unit as consumed (unpacked / de-palletised at destination).

Authorizations:
Bearer
path Parameters
id
required
string

HandlingUnit identifier

Responses

Response samples

Content type
{
  • "@context": "string",
  • "@id": "string",
  • "@type": "string",
  • "id": "",
  • "identifier": "",
  • "kind": "parcel",
  • "parentId": "string",
  • "status": "",
  • "measurements": {
    },
  • "contents": [
    ],
  • "packedBy": "string",
  • "packedAt": "string",
  • "closedAt": "string",
  • "createdBy": "string",
  • "createdAt": "",
  • "updatedAt": "string"
}

Add contents to a handling unit

Add an opaque ResourceUri (GoodsIssue-issued goods line or child HU) + quantity to an OPEN handling unit.

Authorizations:
Bearer
path Parameters
id
required
string

HandlingUnit identifier

Request Body schema:
required

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

Responses

Request samples

Content type
{
  • "ref": "",
  • "quantity": 1
}

Response samples

Content type
{
  • "@context": "string",
  • "@id": "string",
  • "@type": "string",
  • "id": "",
  • "identifier": "",
  • "kind": "parcel",
  • "parentId": "string",
  • "status": "",
  • "measurements": {
    },
  • "contents": [
    ],
  • "packedBy": "string",
  • "packedAt": "string",
  • "closedAt": "string",
  • "createdBy": "string",
  • "createdAt": "",
  • "updatedAt": "string"
}

Set handling-unit measurements

Set/replace the unit's weights (grams) and dimensions (mm). Gross weight is derived (net + tare) when not supplied. Allowed while OPEN or PACKED.

Authorizations:
Bearer
path Parameters
id
required
string

HandlingUnit identifier

Request Body schema:
required

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

Responses

Request samples

Content type
{
  • "netWeightGrams": 0,
  • "tareWeightGrams": 0,
  • "grossWeightGrams": 0,
  • "lengthMm": 0,
  • "widthMm": 0,
  • "heightMm": 0
}

Response samples

Content type
{
  • "@context": "string",
  • "@id": "string",
  • "@type": "string",
  • "id": "",
  • "identifier": "",
  • "kind": "parcel",
  • "parentId": "string",
  • "status": "",
  • "measurements": {
    },
  • "contents": [
    ],
  • "packedBy": "string",
  • "packedAt": "string",
  • "closedAt": "string",
  • "createdBy": "string",
  • "createdAt": "",
  • "updatedAt": "string"
}

Nest a handling unit under a parent

Set this unit's parent handling unit (e.g. nest a carton under a pallet).

Authorizations:
Bearer
path Parameters
id
required
string

HandlingUnit identifier

Request Body schema:
required

The new HandlingUnit resource

parentId
required
string
Default: ""

Responses

Request samples

Content type
{
  • "parentId": ""
}

Response samples

Content type
{
  • "@context": "string",
  • "@id": "string",
  • "@type": "string",
  • "id": "",
  • "identifier": "",
  • "kind": "parcel",
  • "parentId": "string",
  • "status": "",
  • "measurements": {
    },
  • "contents": [
    ],
  • "packedBy": "string",
  • "packedAt": "string",
  • "closedAt": "string",
  • "createdBy": "string",
  • "createdAt": "",
  • "updatedAt": "string"
}

Pack a handling unit

Transition OPEN → PACKED. Contents freeze. The authenticated user is recorded as packedBy.

Authorizations:
Bearer
path Parameters
id
required
string

HandlingUnit identifier

Responses

Response samples

Content type
{
  • "@context": "string",
  • "@id": "string",
  • "@type": "string",
  • "id": "",
  • "identifier": "",
  • "kind": "parcel",
  • "parentId": "string",
  • "status": "",
  • "measurements": {
    },
  • "contents": [
    ],
  • "packedBy": "string",
  • "packedAt": "string",
  • "closedAt": "string",
  • "createdBy": "string",
  • "createdAt": "",
  • "updatedAt": "string"
}

Remove contents from a handling unit

Remove a content line (identified by its opaque ref) from an OPEN handling unit.

Authorizations:
Bearer
path Parameters
id
required
string

HandlingUnit identifier

Request Body schema:
required

The new HandlingUnit resource

ref
required
string
Default: ""

Responses

Request samples

Content type
{
  • "ref": ""
}

Response samples

Content type
{
  • "@context": "string",
  • "@id": "string",
  • "@type": "string",
  • "id": "",
  • "identifier": "",
  • "kind": "parcel",
  • "parentId": "string",
  • "status": "",
  • "measurements": {
    },
  • "contents": [
    ],
  • "packedBy": "string",
  • "packedAt": "string",
  • "closedAt": "string",
  • "createdBy": "string",
  • "createdAt": "",
  • "updatedAt": "string"
}

Detach a handling unit from its parent

Clear this unit's parent. No-op when it has no parent.

Authorizations:
Bearer
path Parameters
id
required
string

HandlingUnit identifier

Responses

Response samples

Content type
{
  • "@context": "string",
  • "@id": "string",
  • "@type": "string",
  • "id": "",
  • "identifier": "",
  • "kind": "parcel",
  • "parentId": "string",
  • "status": "",
  • "measurements": {
    },
  • "contents": [
    ],
  • "packedBy": "string",
  • "packedAt": "string",
  • "closedAt": "string",
  • "createdBy": "string",
  • "createdAt": "",
  • "updatedAt": "string"
}

Void a handling unit

Cancel an unsealed (OPEN) handling unit. A sealed unit cannot be voided — it is consumed instead.

Authorizations:
Bearer
path Parameters
id
required
string

HandlingUnit identifier

Request Body schema:
required

The new HandlingUnit resource

reason
string or null

Optional free-text reason captured on the void event.

Responses

Request samples

Content type
{
  • "reason": "string"
}

Response samples

Content type
{
  • "@context": "string",
  • "@id": "string",
  • "@type": "string",
  • "id": "",
  • "identifier": "",
  • "kind": "parcel",
  • "parentId": "string",
  • "status": "",
  • "measurements": {
    },
  • "contents": [
    ],
  • "packedBy": "string",
  • "packedAt": "string",
  • "closedAt": "string",
  • "createdBy": "string",
  • "createdAt": "",
  • "updatedAt": "string"
}

Warehousing - Inbound Deliveries

Resource 'Warehousing - Inbound Deliveries' operations.

List inbound deliveries

Retrieve a paginated list of first-party inbound deliveries with optional status filter.

Authorizations:
Bearer
query Parameters
status
string
Enum: "expected" "in_transit" "arrived" "receiving" "ready_to_post" "posted" "cancelled"
page
integer >= 1
Default: 1
itemsPerPage
integer [ 1 .. 100 ]
Default: 20

Responses

Response samples

Content type
{
  • "totalItems": 0,
  • "search": {
    },
  • "view": {
    },
  • "member": [
    ]
}

Create an inbound delivery

Open a first-party supplier inbound delivery with expected lines. Numbered on creation (IBD-YYYY-NNNNN).

Authorizations:
Bearer
Request Body schema:
required

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)

Responses

Request samples

Content type
{
  • "supplierId": "string",
  • "destinationWarehouseId": "string",
  • "purchaseOrderId": "string",
  • "carrierRef": "string",
  • "trackingRef": "string",
  • "expectedArrivalAt": "string",
  • "lines": [
    ]
}

Response samples

Content type
{
  • "@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": [
    ],
  • "documents": [
    ],
  • "cancellationReason": "string",
  • "createdBy": "string",
  • "createdAt": "string",
  • "updatedAt": "string"
}

Get an inbound delivery

Retrieve a single inbound delivery by its ULID.

Authorizations:
Bearer
path Parameters
id
required
string

InboundDelivery identifier

Responses

Response samples

Content type
{
  • "@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": [
    ],
  • "documents": [
    ],
  • "cancellationReason": "string",
  • "createdBy": "string",
  • "createdAt": "string",
  • "updatedAt": "string"
}

Assign the default receiving location

The location spawned RECEIVE tasks land stock at when an execution entry names no more specific location.

Authorizations:
Bearer
path Parameters
id
required
string

InboundDelivery identifier

Request Body schema:
required

The new InboundDelivery resource

locationId
required
string

Responses

Request samples

Content type
{
  • "locationId": "string"
}

Response samples

Content type
{
  • "@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": [
    ],
  • "documents": [
    ],
  • "cancellationReason": "string",
  • "createdBy": "string",
  • "createdAt": "string",
  • "updatedAt": "string"
}

Attach a shipping document (ASN / Manifest / BoL / Packing List)

Attach a shipping document (ASN / Manifest / BoL / Packing List)

Authorizations:
Bearer
path Parameters
id
required
string

InboundDelivery identifier

Request Body schema:
required

The new InboundDelivery resource

kind
string
Enum: "asn" "manifest" "bill_of_lading" "packing_list"
documentRef
required
string

Responses

Request samples

Content type
{
  • "kind": "asn",
  • "documentRef": "string"
}

Response samples

Content type
{
  • "@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": [
    ],
  • "documents": [
    ],
  • "cancellationReason": "string",
  • "createdBy": "string",
  • "createdAt": "string",
  • "updatedAt": "string"
}

Cancel the inbound delivery

Cancel the inbound delivery

Authorizations:
Bearer
path Parameters
id
required
string

InboundDelivery identifier

Request Body schema:
required

The new InboundDelivery resource

reason
required
string

Responses

Request samples

Content type
{
  • "reason": "string"
}

Response samples

Content type
{
  • "@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": [
    ],
  • "documents": [
    ],
  • "cancellationReason": "string",
  • "createdBy": "string",
  • "createdAt": "string",
  • "updatedAt": "string"
}

Mark the inbound delivery arrived at the warehouse

Mark the inbound delivery arrived at the warehouse

Authorizations:
Bearer
path Parameters
id
required
string

InboundDelivery identifier

Responses

Response samples

Content type
{
  • "@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": [
    ],
  • "documents": [
    ],
  • "cancellationReason": "string",
  • "createdBy": "string",
  • "createdAt": "string",
  • "updatedAt": "string"
}

Mark the inbound delivery in transit

Mark the inbound delivery in transit

Authorizations:
Bearer
path Parameters
id
required
string

InboundDelivery identifier

Responses

Response samples

Content type
{
  • "@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": [
    ],
  • "documents": [
    ],
  • "cancellationReason": "string",
  • "createdBy": "string",
  • "createdAt": "string",
  • "updatedAt": "string"
}

Post the delivery — build the immutable GoodsReceipt and stock movements

Only from READY_TO_POST. Idempotent.

Authorizations:
Bearer
path Parameters
id
required
string

InboundDelivery identifier

Responses

Response samples

Content type
{
  • "@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": [
    ],
  • "documents": [
    ],
  • "cancellationReason": "string",
  • "createdBy": "string",
  • "createdAt": "string",
  • "updatedAt": "string"
}

Start receiving — spawns one RECEIVE warehouse task per line

Operators then record receiving actuals ON THE TASKS; the delivery advances to READY_TO_POST when every task completes.

Authorizations:
Bearer
path Parameters
id
required
string

InboundDelivery identifier

Responses

Response samples

Content type
{
  • "@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": [
    ],
  • "documents": [
    ],
  • "cancellationReason": "string",
  • "createdBy": "string",
  • "createdAt": "string",
  • "updatedAt": "string"
}

Warehousing - Locations

Resource 'Warehousing - Locations' operations.

List locations

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.

Authorizations:
Bearer
query Parameters
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

Responses

Response samples

Content type
{
  • "totalItems": 0,
  • "search": {
    },
  • "view": {
    },
  • "member": [
    ]
}

Open a location

Open a new location. warehouseId is required for per-warehouse slots and omitted for tenant-scoped global virtual accounts (kind=virtual).

Authorizations:
Bearer
Request Body schema:
required

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

Responses

Request samples

Content type
{
  • "kind": "zone",
  • "code": "",
  • "name": "",
  • "warehouseId": "string",
  • "parentId": "string"
}

Response samples

Content type
{
  • "@context": "string",
  • "@id": "string",
  • "@type": "string",
  • "id": "",
  • "warehouseId": "string",
  • "parentId": "string",
  • "kind": "zone",
  • "code": "",
  • "name": "",
  • "status": "",
  • "structural": true,
  • "createdBy": "string",
  • "createdAt": "",
  • "updatedAt": "string"
}

Get a location

Retrieve a single location by its ULID.

Authorizations:
Bearer
path Parameters
id
required
string

Location identifier

Responses

Response samples

Content type
{
  • "@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

Archive a location — it drops out of active queries but persists for stock history.

Authorizations:
Bearer
path Parameters
id
required
string

Location identifier

Responses

Response samples

Content type
{
  • "@context": "string",
  • "@id": "string",
  • "@type": "string",
  • "id": "",
  • "warehouseId": "string",
  • "parentId": "string",
  • "kind": "zone",
  • "code": "",
  • "name": "",
  • "status": "",
  • "structural": true,
  • "createdBy": "string",
  • "createdAt": "",
  • "updatedAt": "string"
}

Move a location

Re-parent a location under a new parent location. Rejected if it would make the location its own ancestor.

Authorizations:
Bearer
path Parameters
id
required
string

Location identifier

Request Body schema:
required

The new Location resource

parentId
required
string
Default: ""

Responses

Request samples

Content type
{
  • "parentId": ""
}

Response samples

Content type
{
  • "@context": "string",
  • "@id": "string",
  • "@type": "string",
  • "id": "",
  • "warehouseId": "string",
  • "parentId": "string",
  • "kind": "zone",
  • "code": "",
  • "name": "",
  • "status": "",
  • "structural": true,
  • "createdBy": "string",
  • "createdAt": "",
  • "updatedAt": "string"
}

Rename a location

Change the display name of a location.

Authorizations:
Bearer
path Parameters
id
required
string

Location identifier

Request Body schema:
required

The new Location resource

name
required
string
Default: ""

Responses

Request samples

Content type
{
  • "name": ""
}

Response samples

Content type
{
  • "@context": "string",
  • "@id": "string",
  • "@type": "string",
  • "id": "",
  • "warehouseId": "string",
  • "parentId": "string",
  • "kind": "zone",
  • "code": "",
  • "name": "",
  • "status": "",
  • "structural": true,
  • "createdBy": "string",
  • "createdAt": "",
  • "updatedAt": "string"
}

Warehousing - Movements

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.

List movements (ledger history)

Retrieve a paginated, read-only history of balanced stock movements. Filter by inventory item, location (matched on either leg), or causing subject.

Authorizations:
Bearer
query Parameters
inventoryItemId
string <ulid>
locationId
string <ulid>
subjectRef
string
page
integer >= 1
Default: 1
itemsPerPage
integer [ 1 .. 100 ]
Default: 20

Responses

Response samples

Content type
{
  • "totalItems": 0,
  • "search": {
    },
  • "view": {
    },
  • "member": [
    ]
}

Warehousing - Outbound Deliveries

Resource 'Warehousing - Outbound Deliveries' operations.

List outbound deliveries

Retrieve a paginated list of first-party outbound picking plans with optional status filter.

Authorizations:
Bearer
query Parameters
status
string
Enum: "created" "picking" "ready_to_post" "posted" "cancelled"
page
integer >= 1
Default: 1
itemsPerPage
integer [ 1 .. 100 ]
Default: 20

Responses

Response samples

Content type
{
  • "totalItems": 0,
  • "search": {
    },
  • "view": {
    },
  • "member": [
    ]
}

Create an outbound delivery

Open a first-party outbound picking plan with requested lines. Numbered on creation (OBD2600001).

Authorizations:
Bearer
Request Body schema:
required

The new OutboundDelivery resource

warehouseId
required
string
sourceRef
string or null
stagingLocation
string or null
Array of objects (OutboundDeliveryLineInput)

Responses

Request samples

Content type
{
  • "warehouseId": "string",
  • "sourceRef": "string",
  • "stagingLocation": "string",
  • "lines": [
    ]
}

Response samples

Content type
{
  • "@context": "string",
  • "@id": "string",
  • "@type": "string",
  • "id": "string",
  • "number": "string",
  • "status": "created",
  • "sourceRef": "string",
  • "warehouseId": "string",
  • "stagingLocation": "string",
  • "goodsIssueId": "string",
  • "lines": [
    ],
  • "cancellationReason": "string",
  • "createdBy": "string",
  • "createdAt": "string",
  • "updatedAt": "string"
}

Get an outbound delivery

Retrieve a single outbound delivery by its ULID.

Authorizations:
Bearer
path Parameters
id
required
string

OutboundDelivery identifier

Responses

Response samples

Content type
{
  • "@context": "string",
  • "@id": "string",
  • "@type": "string",
  • "id": "string",
  • "number": "string",
  • "status": "created",
  • "sourceRef": "string",
  • "warehouseId": "string",
  • "stagingLocation": "string",
  • "goodsIssueId": "string",
  • "lines": [
    ],
  • "cancellationReason": "string",
  • "createdBy": "string",
  • "createdAt": "string",
  • "updatedAt": "string"
}

Assign the staging location

The location spawned PICK tasks stage picked stock at.

Authorizations:
Bearer
path Parameters
id
required
string

OutboundDelivery identifier

Request Body schema:
required

The new OutboundDelivery resource

locationId
required
string

Responses

Request samples

Content type
{
  • "locationId": "string"
}

Response samples

Content type
{
  • "@context": "string",
  • "@id": "string",
  • "@type": "string",
  • "id": "string",
  • "number": "string",
  • "status": "created",
  • "sourceRef": "string",
  • "warehouseId": "string",
  • "stagingLocation": "string",
  • "goodsIssueId": "string",
  • "lines": [
    ],
  • "cancellationReason": "string",
  • "createdBy": "string",
  • "createdAt": "string",
  • "updatedAt": "string"
}

Cancel the outbound delivery

Cancel the outbound delivery

Authorizations:
Bearer
path Parameters
id
required
string

OutboundDelivery identifier

Request Body schema:
required

The new OutboundDelivery resource

reason
required
string

Responses

Request samples

Content type
{
  • "reason": "string"
}

Response samples

Content type
{
  • "@context": "string",
  • "@id": "string",
  • "@type": "string",
  • "id": "string",
  • "number": "string",
  • "status": "created",
  • "sourceRef": "string",
  • "warehouseId": "string",
  • "stagingLocation": "string",
  • "goodsIssueId": "string",
  • "lines": [
    ],
  • "cancellationReason": "string",
  • "createdBy": "string",
  • "createdAt": "string",
  • "updatedAt": "string"
}

Post the delivery — build the immutable GoodsIssue and issue movements

Only from READY_TO_POST. Idempotent.

Authorizations:
Bearer
path Parameters
id
required
string

OutboundDelivery identifier

Responses

Response samples

Content type
{
  • "@context": "string",
  • "@id": "string",
  • "@type": "string",
  • "id": "string",
  • "number": "string",
  • "status": "created",
  • "sourceRef": "string",
  • "warehouseId": "string",
  • "stagingLocation": "string",
  • "goodsIssueId": "string",
  • "lines": [
    ],
  • "cancellationReason": "string",
  • "createdBy": "string",
  • "createdAt": "string",
  • "updatedAt": "string"
}

Start picking — spawns one PICK warehouse task per line

Operators then record actual picks ON THE TASKS; the delivery advances to READY_TO_POST when every task completes.

Authorizations:
Bearer
path Parameters
id
required
string

OutboundDelivery identifier

Responses

Response samples

Content type
{
  • "@context": "string",
  • "@id": "string",
  • "@type": "string",
  • "id": "string",
  • "number": "string",
  • "status": "created",
  • "sourceRef": "string",
  • "warehouseId": "string",
  • "stagingLocation": "string",
  • "goodsIssueId": "string",
  • "lines": [
    ],
  • "cancellationReason": "string",
  • "createdBy": "string",
  • "createdAt": "string",
  • "updatedAt": "string"
}

Warehousing - Quants

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.

List quants

Retrieve a paginated list of physical-stock quants (item × location × lot/serial × status × owner).

Authorizations:
Bearer
query Parameters
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

Responses

Response samples

Content type
{
  • "totalItems": 0,
  • "search": {
    },
  • "view": {
    },
  • "member": [
    ]
}

Get a quant

Retrieve a single physical-stock quant by its ULID.

Authorizations:
Bearer
path Parameters
id
required
string

Quant identifier

Responses

Response samples

Content type
{
  • "@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"
}

Warehousing - Scanning

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.

Resolve a scanned code against a subject record

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.

Authorizations:
Bearer
query Parameters
code
required
string
subject
string

The subject ResourceUri, e.g. glacia:///warehousing/goods-receipts/{id}

Responses

Response samples

Content type
{
  • "@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": ""
}

Warehousing - Stock Levels

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).

List stock levels

Retrieve aggregated on-hand/available stock levels, derived on the fly from quants. Choose the grain: item, (item, warehouse), or (item, lot).

Authorizations:
Bearer
query Parameters
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

Responses

Response samples

Content type
{
  • "totalItems": 0,
  • "search": {
    },
  • "view": {
    },
  • "member": [
    ]
}

Warehousing - Warehouses

Resource 'Warehousing - Warehouses' operations.

List warehouses operated by a custodian

List warehouses operated by a custodian

Authorizations:
Bearer
path Parameters
custodianId
required
string

CustodianResource identifier

query Parameters
status
string
Enum: "active" "suspended" "archived"
search
string
page
integer >= 1
Default: 1
itemsPerPage
integer [ 1 .. 100 ]
Default: 20

Responses

Response samples

Content type
{
  • "totalItems": 0,
  • "search": {
    },
  • "view": {
    },
  • "member": [
    ]
}

List warehouses

Retrieve a paginated list of warehouses with optional filters.

Authorizations:
Bearer
query Parameters
custodianId
string <uuid>
status
string
Enum: "active" "suspended" "archived"
search
string
page
integer >= 1
Default: 1
itemsPerPage
integer [ 1 .. 100 ]
Default: 20

Responses

Response samples

Content type
{
  • "totalItems": 0,
  • "search": {
    },
  • "view": {
    },
  • "member": [
    ]
}

Create a warehouse

Create a new warehouse operated by a custodian.

Authorizations:
Bearer
Request Body schema:
required

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

Responses

Request samples

Content type
{
  • "custodianId": "string",
  • "code": "string",
  • "name": "string",
  • "address": {
    },
  • "capabilities": {
    },
  • "coordinates": {
    },
  • "externalWarehouseId": "string"
}

Response samples

Content type
{
  • "@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": [
    ],
  • "code": "string",
  • "name": "string",
  • "addressId": "string",
  • "address": {
    },
  • "status": "active",
  • "capabilities": {
    },
  • "coordinates": {
    },
  • "externalWarehouseId": "string",
  • "createdAt": "string",
  • "updatedAt": "string"
}

Get a warehouse

Retrieve a single warehouse by its ULID.

Authorizations:
Bearer
path Parameters
id
required
string

Warehouse identifier

Responses

Response samples

Content type
{
  • "@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": [
    ],
  • "code": "string",
  • "name": "string",
  • "addressId": "string",
  • "address": {
    },
  • "status": "active",
  • "capabilities": {
    },
  • "coordinates": {
    },
  • "externalWarehouseId": "string",
  • "createdAt": "string",
  • "updatedAt": "string"
}

Update warehouse details

Update warehouse details

Authorizations:
Bearer
path Parameters
id
required
string

Warehouse identifier

Request Body schema: application/merge-patch+json
required

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

Responses

Request samples

Content type
application/merge-patch+json
{
  • "name": "string",
  • "code": "string",
  • "externalWarehouseId": "string",
  • "clearExternalWarehouseId": false,
  • "coordinates": {
    },
  • "clearCoordinates": false
}

Response samples

Content type
{
  • "@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": [
    ],
  • "code": "string",
  • "name": "string",
  • "addressId": "string",
  • "address": {
    },
  • "status": "active",
  • "capabilities": {
    },
  • "coordinates": {
    },
  • "externalWarehouseId": "string",
  • "createdAt": "string",
  • "updatedAt": "string"
}

Archive a warehouse

Archive a warehouse

Authorizations:
Bearer
path Parameters
id
required
string

Warehouse identifier

Responses

Response samples

Content type
{
  • "@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": [
    ],
  • "code": "string",
  • "name": "string",
  • "addressId": "string",
  • "address": {
    },
  • "status": "active",
  • "capabilities": {
    },
  • "coordinates": {
    },
  • "externalWarehouseId": "string",
  • "createdAt": "string",
  • "updatedAt": "string"
}

Update warehouse capabilities

Update warehouse capabilities

Authorizations:
Bearer
path Parameters
id
required
string

Warehouse identifier

Request Body schema: application/merge-patch+json
required

The updated Warehouse resource

object (WarehouseCapabilitiesInput)

Responses

Request samples

Content type
application/merge-patch+json
{
  • "capabilities": {
    }
}

Response samples

Content type
{
  • "@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": [
    ],
  • "code": "string",
  • "name": "string",
  • "addressId": "string",
  • "address": {
    },
  • "status": "active",
  • "capabilities": {
    },
  • "coordinates": {
    },
  • "externalWarehouseId": "string",
  • "createdAt": "string",
  • "updatedAt": "string"
}

Reactivate a warehouse

Reactivate a warehouse

Authorizations:
Bearer
path Parameters
id
required
string

Warehouse identifier

Responses

Response samples

Content type
{
  • "@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": [
    ],
  • "code": "string",
  • "name": "string",
  • "addressId": "string",
  • "address": {
    },
  • "status": "active",
  • "capabilities": {
    },
  • "coordinates": {
    },
  • "externalWarehouseId": "string",
  • "createdAt": "string",
  • "updatedAt": "string"
}

Suspend a warehouse

Suspend a warehouse

Authorizations:
Bearer
path Parameters
id
required
string

Warehouse identifier

Responses

Response samples

Content type
{
  • "@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": [
    ],
  • "code": "string",
  • "name": "string",
  • "addressId": "string",
  • "address": {
    },
  • "status": "active",
  • "capabilities": {
    },
  • "coordinates": {
    },
  • "externalWarehouseId": "string",
  • "createdAt": "string",
  • "updatedAt": "string"
}

Warehousing - Warehouse Tasks

Resource 'Warehousing - Warehouse Tasks' operations.

List warehouse tasks

Retrieve a paginated list of warehouse tasks (the uniform directed-move execution primitive), filterable by status, kind, assignee, and source reference.

Authorizations:
Bearer
query Parameters
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

Responses

Response samples

Content type
{
  • "totalItems": 0,
  • "search": {
    },
  • "view": {
    },
  • "member": [
    ]
}

Create a warehouse task

Open a directed-move task of a given kind with its line contract.

Authorizations:
Bearer
Request Body schema:
required

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)

Responses

Request samples

Content type
{
  • "kind": "receive",
  • "sourceRef": "string",
  • "priority": 0,
  • "lines": [
    ]
}

Response samples

Content type
{
  • "@context": "string",
  • "@id": "string",
  • "@type": "string",
  • "id": "string",
  • "kind": "receive",
  • "status": "created",
  • "assignee": "string",
  • "priority": 0,
  • "sourceRef": "string",
  • "cancellationReason": "string",
  • "lines": [
    ],
  • "createdAt": "string",
  • "updatedAt": "string"
}

Get a warehouse task

Retrieve a single warehouse task by its ULID, including its lines and recorded execution actuals.

Authorizations:
Bearer
path Parameters
id
required
string

WarehouseTask identifier

Responses

Response samples

Content type
{
  • "@context": "string",
  • "@id": "string",
  • "@type": "string",
  • "id": "string",
  • "kind": "receive",
  • "status": "created",
  • "assignee": "string",
  • "priority": 0,
  • "sourceRef": "string",
  • "cancellationReason": "string",
  • "lines": [
    ],
  • "createdAt": "string",
  • "updatedAt": "string"
}

Assign the task to an operator

Assign the task to an operator

Authorizations:
Bearer
path Parameters
id
required
string

WarehouseTask identifier

Request Body schema:
required

The new WarehouseTask resource

assignee
required
string
Default: ""

Responses

Request samples

Content type
{
  • "assignee": ""
}

Response samples

Content type
{
  • "@context": "string",
  • "@id": "string",
  • "@type": "string",
  • "id": "string",
  • "kind": "receive",
  • "status": "created",
  • "assignee": "string",
  • "priority": 0,
  • "sourceRef": "string",
  • "cancellationReason": "string",
  • "lines": [
    ],
  • "createdAt": "string",
  • "updatedAt": "string"
}

Cancel the task

Cancel the task

Authorizations:
Bearer
path Parameters
id
required
string

WarehouseTask identifier

Request Body schema:
required

The new WarehouseTask resource

reason
required
string
Default: ""

Responses

Request samples

Content type
{
  • "reason": ""
}

Response samples

Content type
{
  • "@context": "string",
  • "@id": "string",
  • "@type": "string",
  • "id": "string",
  • "kind": "receive",
  • "status": "created",
  • "assignee": "string",
  • "priority": 0,
  • "sourceRef": "string",
  • "cancellationReason": "string",
  • "lines": [
    ],
  • "createdAt": "string",
  • "updatedAt": "string"
}

Complete the task

Complete the task

Authorizations:
Bearer
path Parameters
id
required
string

WarehouseTask identifier

Responses

Response samples

Content type
{
  • "@context": "string",
  • "@id": "string",
  • "@type": "string",
  • "id": "string",
  • "kind": "receive",
  • "status": "created",
  • "assignee": "string",
  • "priority": 0,
  • "sourceRef": "string",
  • "cancellationReason": "string",
  • "lines": [
    ],
  • "createdAt": "string",
  • "updatedAt": "string"
}

Park (suspend) the task

Park (suspend) the task

Authorizations:
Bearer
path Parameters
id
required
string

WarehouseTask identifier

Request Body schema:
required

The new WarehouseTask resource

reason
string or null

Responses

Request samples

Content type
{
  • "reason": "string"
}

Response samples

Content type
{
  • "@context": "string",
  • "@id": "string",
  • "@type": "string",
  • "id": "string",
  • "kind": "receive",
  • "status": "created",
  • "assignee": "string",
  • "priority": 0,
  • "sourceRef": "string",
  • "cancellationReason": "string",
  • "lines": [
    ],
  • "createdAt": "string",
  • "updatedAt": "string"
}

Record an execution actual against a line

Record an execution actual against a line

Authorizations:
Bearer
path Parameters
id
required
string

WarehouseTask identifier

Request Body schema:
required

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"

Responses

Request samples

Content type
{
  • "lineId": "",
  • "quantity": 0,
  • "location": "string",
  • "lotId": "string",
  • "serialUnitId": "string",
  • "status": "Available"
}

Response samples

Content type
{
  • "@context": "string",
  • "@id": "string",
  • "@type": "string",
  • "id": "string",
  • "kind": "receive",
  • "status": "created",
  • "assignee": "string",
  • "priority": 0,
  • "sourceRef": "string",
  • "cancellationReason": "string",
  • "lines": [
    ],
  • "createdAt": "string",
  • "updatedAt": "string"
}

Resume a parked task

Resume a parked task

Authorizations:
Bearer
path Parameters
id
required
string

WarehouseTask identifier

Responses

Response samples

Content type
{
  • "@context": "string",
  • "@id": "string",
  • "@type": "string",
  • "id": "string",
  • "kind": "receive",
  • "status": "created",
  • "assignee": "string",
  • "priority": 0,
  • "sourceRef": "string",
  • "cancellationReason": "string",
  • "lines": [
    ],
  • "createdAt": "string",
  • "updatedAt": "string"
}

Split a line into a new task

Split a line into a new task

Authorizations:
Bearer
path Parameters
id
required
string

WarehouseTask identifier

Request Body schema:
required

The new WarehouseTask resource

lineId
required
string
Default: ""
quantity
integer > 0
Default: 0

Responses

Request samples

Content type
{
  • "lineId": "",
  • "quantity": 0
}

Response samples

Content type
{
  • "@context": "string",
  • "@id": "string",
  • "@type": "string",
  • "id": "string",
  • "kind": "receive",
  • "status": "created",
  • "assignee": "string",
  • "priority": 0,
  • "sourceRef": "string",
  • "cancellationReason": "string",
  • "lines": [
    ],
  • "createdAt": "string",
  • "updatedAt": "string"
}

Start the task

Start the task

Authorizations:
Bearer
path Parameters
id
required
string

WarehouseTask identifier

Responses

Response samples

Content type
{
  • "@context": "string",
  • "@id": "string",
  • "@type": "string",
  • "id": "string",
  • "kind": "receive",
  • "status": "created",
  • "assignee": "string",
  • "priority": 0,
  • "sourceRef": "string",
  • "cancellationReason": "string",
  • "lines": [
    ],
  • "createdAt": "string",
  • "updatedAt": "string"
}

Clear the task assignee

Clear the task assignee

Authorizations:
Bearer
path Parameters
id
required
string

WarehouseTask identifier

Responses

Response samples

Content type
{
  • "@context": "string",
  • "@id": "string",
  • "@type": "string",
  • "id": "string",
  • "kind": "receive",
  • "status": "created",
  • "assignee": "string",
  • "priority": 0,
  • "sourceRef": "string",
  • "cancellationReason": "string",
  • "lines": [
    ],
  • "createdAt": "string",
  • "updatedAt": "string"
}