Download OpenAPI specification:
The FractalPack Packing API provides 3D bin-packing, order management, shipment optimization, consolidation, wave planning, and fulfillment planning capabilities.
Scope: this reference documents the public customer surface only.
Staff-only routes (under /api/admin/) are intentionally excluded —
they require internal Cognito group membership that API key holders
cannot satisfy. Admin workflows are documented in the repository's
feature docs (docs/feature-named-pipeline-configs.md and related).
All endpoints are served under https://api.fractalpack.com and require
authentication via either an API key or a JWT bearer token.
POST /api/v1/pack is a single-stage primitive. It runs the 3D
bin-packing algorithm against one set of items and returns a direct
result. It does NOT load your organization's PipelineConfig, so pallet
and equipment rules do not apply. Use /pack for carton-level packing
only.
POST /api/v1/fulfillment-plans is the pipeline path. It evaluates
parcel vs. LTL vs. FTL strategies, applies your organization's default
PipelineConfig (container levels: carton → pallet → equipment), and
loads packing policies and rules for each level in the pipeline. Use
fulfillment plans when you need multi-level packing, pallet/equipment
rules, or cost comparison across shipping modes.
This asymmetry is a deliberate contract. MCP tools and AI-assistant
capabilities that call /pack directly are carton-level only by design.
List endpoints use cursor-based pagination. Pass limit (page size)
and cursor (opaque token from a previous response's nextCursor).
The response includes an items array and a nextCursor field (null
when there are no more results).
Certain endpoint categories are rate-limited: pack, batch, ai,
and rates. Every rate-limited response includes these headers:
| Header | Description |
|---|---|
X-RateLimit-Limit |
Max requests in the current window |
X-RateLimit-Remaining |
Requests remaining |
X-RateLimit-Reset |
Seconds until the window resets |
Retry-After |
Seconds to wait (only on 429) |
All errors use RFC 9457 Problem Details
format with a doc_url extension linking to the relevant error documentation.
Run the 3D bin-packing algorithm to optimally place items into containers. If no containers are specified, the system falls back to the organization's Container Master.
Pack is a single-stage primitive. It does NOT load the
organization's PipelineConfig. Pallet-level and equipment-level
packing rules do not apply here. To run multi-level packing with
pipeline-aware rules, use POST /api/v1/fulfillment-plans.
Rules with no applicableLevels restriction (or with carton in
their applicableLevels) are evaluated. By default every such rule
the org has marked Enabled runs. To restrict which rules apply for
a single request, pass ruleIds: ["..."] — only rules in the
whitelist that are also globally Enabled are evaluated. An empty
list disables rules for the request.
Rate limit category: pack
required | Array of objects (ItemDto) [ 1 .. 10000 ] items Items to pack |
Array of objects (ContainerDto) <= 1000 items Fixed-size containers. If omitted, falls back to Container Master. | |
Array of objects (DynamicContainerDto) <= 1000 items Variable-size containers | |
Array of objects (PalletDto) <= 100 items Pallet definitions | |
Array of objects (EquipmentDto) <= 100 items Equipment (trailers, etc.) | |
| allowMultipleBoxes | boolean Default: true Allow items to be packed into multiple boxes. Defaults to |
| loadingMode | string Default: "palletized" Loading mode: "standard", "palletized" |
| algorithm | string Enum: "fpFast" "fpLayer" "ebAfit" "liquidFill" Packing algorithm: "fpFast" (default), "fpLayer", "liquidFill". The legacy value "ebAfit" is a permanent alias for "fpLayer". Default switched from "fpLayer" to "fpFast" because FpFast packs at a fraction of FpLayer's runtime on production-shaped orders with equivalent quality on most inputs. Pass an explicit algorithm to override. |
| useCasePacks | boolean Default: false Use case pack configurations from items |
| allowPalletStacking | boolean Default: false Allow stacking pallets in trailers |
| respectTiHi | boolean Default: true Use vendor-prescribed Ti/Hi pallet patterns |
| separationGroups | Array of strings[ items ] Groups of item tags that cannot share a container. Items from different groups are packed separately. |
Array of objects (AffinityGroupDto) Pin specific items to specific containers | |
| optimizeFor | string Enum: "volume" "cost" Optimization objective (default "volume") |
| originZip | string <= 10 characters Origin ZIP code (required for cost optimization) |
| destinationZip | string <= 10 characters Destination ZIP code (required for cost optimization) |
| ruleIds | Array of strings Optional whitelist of rule IDs to apply for this request. When omitted,
every globally Use |
{- "items": [
- {
- "id": "WIDGET-001",
- "length": 10,
- "width": 8,
- "height": 6,
- "weight": 2.5,
- "quantity": 3
}, - {
- "id": "GADGET-002",
- "length": 12,
- "width": 10,
- "height": 4,
- "weight": 1.8,
- "quantity": 2
}
], - "containers": [
- {
- "id": "BOX-MEDIUM",
- "length": 20,
- "width": 15,
- "height": 12,
- "maxWeight": 50
}
], - "algorithm": "fpLayer"
}{- "algorithm": "fpLayer",
- "results": [
- {
- "containerId": "BOX-MEDIUM",
- "boxIndex": 0,
- "containerDimensions": {
- "length": 20,
- "width": 15,
- "height": 12
}, - "packedItems": [
- {
- "id": "WIDGET-001",
- "coordinate": {
- "x": 0,
- "y": 0,
- "z": 0
}, - "packedDimensions": {
- "length": 10,
- "width": 8,
- "height": 6
}, - "weight": 2.5,
- "tags": [ ]
}
], - "unpackedItems": [ ],
- "volumeUtilizationPercent": 68.5,
- "totalWeight": 12.1
}
], - "firedRules": [ ]
}Submit up to 10,000 orders for asynchronous packing. Returns immediately with a batch ID and status URL.
Optionally provide a webhookUrl (HTTPS only) to receive a
callback when the batch completes.
Rate limit category: batch
required | Array of objects (BatchOrderRequest) [ 1 .. 10000 ] items |
| webhookUrl | string <uri> <= 2048 characters HTTPS URL to receive completion callback |
{- "orders": [
- {
- "orderId": "ORD-001",
- "packRequest": {
- "items": [
- {
- "id": "SKU-A",
- "length": 10,
- "width": 8,
- "height": 6,
- "weight": 2,
- "quantity": 1
}
], - "containers": [
- {
- "id": "SM-BOX",
- "length": 12,
- "width": 10,
- "height": 8,
- "maxWeight": 25
}
]
}
}
],
}{- "batchId": "bat_abc123",
- "status": "submitted",
- "totalOrders": 1,
- "statusUrl": "/api/v1/batch/bat_abc123"
}| limit | integer [ 1 .. 100 ] Default: 20 Maximum number of items to return |
| after | string Pagination cursor from |
{- "batches": [
- {
- "batchId": "string",
- "status": "string",
- "totalOrders": 0,
- "completedOrders": 0,
- "failedOrders": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "completedAt": "2019-08-24T14:15:22Z"
}
], - "nextPageToken": "string",
- "hasMore": true
}| batchId required | string |
| status | string Enum: "pending" "completed" "failed" Filter orders by status |
| limit | integer [ 1 .. 1000 ] Default: 100 |
| after | string Pagination cursor |
{- "batchId": "string",
- "status": "submitted",
- "totalOrders": 0,
- "completedOrders": 0,
- "failedOrders": 0,
- "pendingOrders": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "completedAt": "2019-08-24T14:15:22Z",
- "orders": [
- {
- "orderId": "string",
- "status": "pending",
- "result": {
- "algorithm": "string",
- "results": [
- {
- "containerId": "string",
- "boxIndex": 0,
- "containerDimensions": {
- "length": 0.1,
- "width": 0.1,
- "height": 0.1
}, - "packedItems": [
- {
- "id": "string",
- "coordinate": {
- "x": 0.1,
- "y": 0.1,
- "z": 0.1
}, - "packedDimensions": {
- "length": 0.1,
- "width": 0.1,
- "height": 0.1
}, - "weight": 0.1,
- "tags": [
- "string"
], - "nestedItems": [
- { }
], - "rollInfo": {
- "sourceItemId": "string",
- "rollIndex": 0,
- "totalRolls": 0,
- "linearQuantityOnRoll": 0.1,
- "outerDiameter": 0.1
}, - "sourceOrderId": "string",
- "sourceLineNumber": 0
}
], - "unpackedItems": [
- {
- "id": "string",
- "dimensions": {
- "length": 0.1,
- "width": 0.1,
- "height": 0.1
}, - "weight": 0.1,
- "rollInfo": {
- "sourceItemId": "string",
- "rollIndex": 0,
- "totalRolls": 0,
- "linearQuantityOnRoll": 0.1,
- "outerDiameter": 0.1
}, - "sourceOrderId": "string",
- "sourceLineNumber": 0
}
], - "volumeUtilizationPercent": 0.1,
- "totalWeight": 0.1,
- "sourceOrderIds": [
- "string"
], - "costBreakdown": {
- "shippingCost": 0,
- "boxCost": 0,
- "totalCost": 0,
- "billableWeight": 0.1,
- "dimWeight": 0.1,
- "actualWeight": 0.1,
- "carrier": "string",
- "service": "string",
- "zone": 0
}
}
], - "palletResults": {
- "pallets": [
- {
- "palletId": "string",
- "palletIndex": 0,
- "palletDimensions": {
- "length": 0.1,
- "width": 0.1,
- "height": 0.1
}, - "cartons": [
- {
- "cartonId": "string",
- "coordinate": {
- "x": null,
- "y": null,
- "z": null
}, - "packedDimensions": {
- "length": null,
- "width": null,
- "height": null
}, - "weight": 0.1
}
], - "volumeUtilizationPercent": 0.1,
- "totalWeight": 0.1,
- "palletWeight": 0.1,
- "platformHeight": 0.1
}
], - "unpalletizedCartons": [
- {
- "cartonId": "string",
- "dimensions": {
- "length": 0.1,
- "width": 0.1,
- "height": 0.1
}, - "weight": 0.1
}
]
}, - "trailerResults": {
- "trailers": [
- {
- "trailerId": "string",
- "trailerIndex": 0,
- "equipmentType": "string",
- "trailerDimensions": {
- "length": 0.1,
- "width": 0.1,
- "height": 0.1
}, - "pallets": [
- {
- "palletId": "string",
- "coordinate": {
- "x": null,
- "y": null,
- "z": null
}, - "palletDimensions": {
- "length": null,
- "width": null,
- "height": null
}, - "weight": 0.1,
- "stackInfo": {
- "bottomPalletId": null,
- "topPalletId": null,
- "bottomHeight": null,
- "topHeight": null
}
}
], - "floorLoadedCartons": [
- {
- "cartonId": "string",
- "coordinate": {
- "x": null,
- "y": null,
- "z": null
}, - "packedDimensions": {
- "length": null,
- "width": null,
- "height": null
}, - "weight": 0.1
}
], - "volumeUtilizationPercent": 0.1,
- "totalWeight": 0.1,
- "tareWeight": 0.1
}
], - "unloadedPallets": [
- {
- "palletId": "string",
- "dimensions": {
- "length": 0.1,
- "width": 0.1,
- "height": 0.1
}, - "weight": 0.1
}
], - "unloadedCartons": [
- {
- "cartonId": "string",
- "dimensions": {
- "length": 0.1,
- "width": 0.1,
- "height": 0.1
}, - "weight": 0.1
}
]
}, - "firedRules": [
- {
- "ruleId": "string",
- "ruleName": "string",
- "ruleType": "string",
- "summary": "string"
}
]
}, - "error": "string"
}
], - "nextPageToken": "string",
- "hasMore": true
}| id required | string [ 1 .. 128 ] characters |
| name | string <= 256 characters |
| description | string <= 2000 characters |
object | |
| category | string <= 64 characters |
| commodityCode | string <= 64 characters |
| hsCode | string <= 64 characters |
| countryOfOrigin | string <= 64 characters |
| tags | Array of strings |
object | |
| length required | number <double> Length in inches |
| width required | number <double> |
| height required | number <double> |
| dimensionUnit | string <= 64 characters |
| weight required | number <double> Weight in lbs |
| netWeight | number <double> |
| weightUnit | string <= 64 characters |
| volume | number <double> |
| volumeUnit | string <= 64 characters |
| unitOfMeasure | string <= 64 characters |
object (RollPropertiesDto) | |
object (VoidSpaceDto) | |
| shape | string Enum: "rectangular" "cylindrical" "spherical" "irregular" "lShape" "tShape" "custom" |
object | |
| maxWeightOnTop | number <double> |
| maxStackHeight | integer |
| crushClass | string Enum: "none" "light" "moderate" "fragile" "extreme" |
| shipAlone | boolean |
| maxPerContainer | integer |
Array of objects | |
| casePackQuantity | integer |
| caseLength | number <double> |
| caseWidth | number <double> |
| caseHeight | number <double> |
| caseWeight | number <double> |
object | |
| freightClass | string <= 64 characters |
| imageUrl | string <uri> <= 2048 characters |
{- "id": "WIDGET-001",
- "name": "Blue Widget",
- "length": 10,
- "width": 8,
- "height": 6,
- "weight": 2.5,
- "category": "electronics",
- "tags": [
- "fragile"
]
}{- "id": "string",
- "name": "string",
- "description": "string",
- "externalIds": {
- "property1": "string",
- "property2": "string"
}, - "category": "string",
- "tags": [
- "string"
], - "length": 0.1,
- "width": 0.1,
- "height": 0.1,
- "weight": 0.1,
- "unitOfMeasure": "string",
- "shape": "string",
- "shipAlone": true,
- "packagingLevels": [
- { }
], - "version": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "createdBy": "string"
}| limit | integer [ 1 .. 100 ] Default: 20 Maximum number of items to return |
| cursor | string Opaque pagination cursor from a previous response's |
| search | string Full-text search across ID, name, and description |
| category | string Filter by category |
| tags | string Comma-separated list of tags to filter by |
{- "items": [
- {
- "id": "string",
- "name": "string",
- "description": "string",
- "externalIds": {
- "property1": "string",
- "property2": "string"
}, - "category": "string",
- "tags": [
- "string"
], - "length": 0.1,
- "width": 0.1,
- "height": 0.1,
- "weight": 0.1,
- "unitOfMeasure": "string",
- "shape": "string",
- "shipAlone": true,
- "packagingLevels": [
- { }
], - "version": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "createdBy": "string"
}
], - "nextCursor": "string"
}{- "id": "string",
- "name": "string",
- "description": "string",
- "externalIds": {
- "property1": "string",
- "property2": "string"
}, - "category": "string",
- "tags": [
- "string"
], - "length": 0.1,
- "width": 0.1,
- "height": 0.1,
- "weight": 0.1,
- "unitOfMeasure": "string",
- "shape": "string",
- "shipAlone": true,
- "packagingLevels": [
- { }
], - "version": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "createdBy": "string"
}Update one or more fields on an item. Requires the current version
for optimistic concurrency control.
| itemId required | string |
| version required | integer >= 1 Current version for optimistic concurrency |
| name | string <= 256 characters |
| description | string <= 2000 characters |
| category | string <= 64 characters |
| tags | Array of strings |
| length | number <double> |
| width | number <double> |
| height | number <double> |
| weight | number <double> |
| shipAlone | boolean |
| packagingLevels | Array of objects |
{- "version": 1,
- "weight": 3,
- "tags": [
- "fragile",
- "electronic"
]
}{- "id": "string",
- "name": "string",
- "description": "string",
- "externalIds": {
- "property1": "string",
- "property2": "string"
}, - "category": "string",
- "tags": [
- "string"
], - "length": 0.1,
- "width": 0.1,
- "height": 0.1,
- "weight": 0.1,
- "unitOfMeasure": "string",
- "shape": "string",
- "shipAlone": true,
- "packagingLevels": [
- { }
], - "version": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "createdBy": "string"
}Requires admin role.
| itemId required | string |
{- "title": "Unauthorized",
- "status": 401,
- "detail": "Invalid or missing authentication credentials.",
- "instance": "0HN9A1B2C3D4:00000002",
}Import up to 1,000 items at once. Existing items (by ID) are updated; new items are created. Requires admin role.
required | Array of objects (CreateItemRequest) [ 1 .. 1000 ] items |
{- "items": [
- {
- "id": "string",
- "name": "string",
- "description": "string",
- "externalIds": {
- "gtin": "string",
- "upc": "string",
- "ean": "string",
- "vendorPartNumber": "string",
- "customerPartNumber": "string",
- "property1": "string",
- "property2": "string"
}, - "category": "string",
- "commodityCode": "string",
- "hsCode": "string",
- "countryOfOrigin": "string",
- "tags": [
- "string"
], - "customAttributes": { },
- "length": 0.1,
- "width": 0.1,
- "height": 0.1,
- "dimensionUnit": "string",
- "weight": 0.1,
- "netWeight": 0.1,
- "weightUnit": "string",
- "volume": 0.1,
- "volumeUnit": "string",
- "unitOfMeasure": "string",
- "rollProperties": {
- "materialThickness": 0.1,
- "materialWidth": 0.1,
- "coreInnerDiameter": 0.1,
- "coreWallThickness": 0.1,
- "maxRollOuterDiameter": 0.1,
- "maxLinearQuantityPerRoll": 0.1,
- "weightPerUnitLength": 0.1
}, - "voidSpace": {
- "shape": "rectangular",
- "length": 0.1,
- "width": 0.1,
- "height": 0.1
}, - "shape": "rectangular",
- "orientationConstraints": {
- "allowedRotations": [
- "string"
], - "keepUpright": true,
- "arrowsUp": true,
- "floorContactFaces": [
- "string"
]
}, - "maxWeightOnTop": 0.1,
- "maxStackHeight": 0,
- "crushClass": "none",
- "shipAlone": true,
- "maxPerContainer": 0,
- "packagingLevels": [
- {
- "level": "string",
- "quantity": 0,
- "length": 0.1,
- "width": 0.1,
- "height": 0.1,
- "weight": 0.1,
- "tiHiTi": 0,
- "tiHiHi": 0
}
], - "casePackQuantity": 0,
- "caseLength": 0.1,
- "caseWidth": 0.1,
- "caseHeight": 0.1,
- "caseWeight": 0.1,
- "hazmat": {
- "unNumber": "string",
- "hazardClass": "string",
- "packingGroup": "string",
- "properShippingName": "string"
}, - "freightClass": "string",
}
]
}{- "created": 0,
- "updated": 0,
- "errors": [
- {
- "index": 0,
- "itemId": "string",
- "error": "string"
}
]
}Upload a CSV file to bulk import items. Max file size: 5 MB. Requires admin role.
| file required | string <binary> |
{- "created": 0,
- "updated": 0,
- "errors": [
- {
- "index": 0,
- "itemId": "string",
- "error": "string"
}
]
}| type required | string Example: type=sku External ID type (e.g. "sku", "upc", "ean") |
| value required | string Example: value=WIDGET-001 External ID value |
{- "id": "string",
- "name": "string",
- "description": "string",
- "externalIds": {
- "property1": "string",
- "property2": "string"
}, - "category": "string",
- "tags": [
- "string"
], - "length": 0.1,
- "width": 0.1,
- "height": 0.1,
- "weight": 0.1,
- "unitOfMeasure": "string",
- "shape": "string",
- "shipAlone": true,
- "packagingLevels": [
- { }
], - "version": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "createdBy": "string"
}Retrieve up to 100 items in a single request.
| itemIds required | Array of strings [ 1 .. 100 ] items |
{- "itemIds": [
- "WIDGET-001",
- "GADGET-002"
]
}{- "items": [
- {
- "id": "string",
- "name": "string",
- "description": "string",
- "externalIds": {
- "property1": "string",
- "property2": "string"
}, - "category": "string",
- "tags": [
- "string"
], - "length": 0.1,
- "width": 0.1,
- "height": 0.1,
- "weight": 0.1,
- "unitOfMeasure": "string",
- "shape": "string",
- "shipAlone": true,
- "packagingLevels": [
- { }
], - "version": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "createdBy": "string"
}
]
}| id required | string [ 1 .. 128 ] characters |
| name required | string <= 256 characters |
| containerType required | string Enum: "Box" "Pallet" "Equipment" |
| description | string <= 2000 characters |
| subType | string <= 64 characters |
| tags | Array of strings |
object | |
| innerLength required | number <double> |
| innerWidth required | number <double> |
| innerHeight required | number <double> |
| outerLength | number <double> |
| outerWidth | number <double> |
| outerHeight | number <double> |
| dimensionUnit | string <= 64 characters |
| weightTare | number <double> |
| weightMaxGross required | number <double> <= 200000 |
| weightUnit | string <= 64 characters |
| isDynamic | boolean |
| minLength | number <double> |
| minWidth | number <double> |
| minHeight | number <double> |
| stackable | boolean |
| maxStackWeight | number <double> |
| material | string <= 64 characters |
| wallThickness | number <double> |
| baseCost | number <double> |
| isActive | boolean Default: true |
object | |
object |
{- "id": "BOX-MEDIUM",
- "name": "Medium Box",
- "containerType": "Box",
- "innerLength": 20,
- "innerWidth": 15,
- "innerHeight": 12,
- "weightMaxGross": 50
}{- "id": "string",
- "name": "string",
- "containerType": "Box",
- "innerLength": 0.1,
- "innerWidth": 0.1,
- "innerHeight": 0.1,
- "weightMaxGross": 0.1,
- "weightTare": 0.1,
- "isDynamic": true,
- "isActive": true,
- "tags": [
- "string"
], - "version": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}| containerType | string Enum: "Box" "Pallet" "Equipment" Filter by container type |
| search | string Search by ID or name |
| tags | string Comma-separated tags |
| isActive | boolean Filter by active status |
| limit | integer [ 1 .. 100 ] Default: 20 Maximum number of items to return |
| cursor | string Opaque pagination cursor from a previous response's |
{- "items": [
- {
- "id": "string",
- "name": "string",
- "containerType": "Box",
- "innerLength": 0.1,
- "innerWidth": 0.1,
- "innerHeight": 0.1,
- "weightMaxGross": 0.1,
- "weightTare": 0.1,
- "isDynamic": true,
- "isActive": true,
- "tags": [
- "string"
], - "version": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "nextCursor": "string"
}| containerId required | string |
{- "id": "string",
- "name": "string",
- "containerType": "Box",
- "innerLength": 0.1,
- "innerWidth": 0.1,
- "innerHeight": 0.1,
- "weightMaxGross": 0.1,
- "weightTare": 0.1,
- "isDynamic": true,
- "isActive": true,
- "tags": [
- "string"
], - "version": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}Requires the current version for optimistic concurrency.
| containerId required | string |
| version required | integer >= 1 |
| name | string <= 256 characters |
| description | string <= 2000 characters |
| innerLength | number <double> |
| innerWidth | number <double> |
| innerHeight | number <double> |
| weightMaxGross | number <double> |
| isActive | boolean |
{- "version": 1,
- "weightMaxGross": 55
}{- "id": "string",
- "name": "string",
- "containerType": "Box",
- "innerLength": 0.1,
- "innerWidth": 0.1,
- "innerHeight": 0.1,
- "weightMaxGross": 0.1,
- "weightTare": 0.1,
- "isDynamic": true,
- "isActive": true,
- "tags": [
- "string"
], - "version": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}Requires admin role.
| containerId required | string |
{- "title": "Unauthorized",
- "status": 401,
- "detail": "Invalid or missing authentication credentials.",
- "instance": "0HN9A1B2C3D4:00000002",
}Import up to 1,000 containers. Existing containers (by ID) are updated; new ones are created. Requires admin role.
required | Array of objects (CreateContainerRequest) [ 1 .. 1000 ] items |
{- "containers": [
- {
- "id": "string",
- "name": "string",
- "containerType": "Box",
- "description": "string",
- "subType": "string",
- "tags": [
- "string"
], - "customAttributes": { },
- "innerLength": 0.1,
- "innerWidth": 0.1,
- "innerHeight": 0.1,
- "outerLength": 0.1,
- "outerWidth": 0.1,
- "outerHeight": 0.1,
- "dimensionUnit": "string",
- "weightTare": 0.1,
- "weightMaxGross": 200000,
- "weightUnit": "string",
- "isDynamic": true,
- "minLength": 0.1,
- "minWidth": 0.1,
- "minHeight": 0.1,
- "stackable": true,
- "maxStackWeight": 0.1,
- "material": "string",
- "wallThickness": 0.1,
- "baseCost": 0.1,
- "isActive": true,
- "palletProperties": {
- "platformHeight": 0.1,
- "deckType": "string"
}, - "equipmentProperties": {
- "equipmentType": "string"
}
}
]
}{- "created": 0,
- "updated": 0,
- "errors": [
- {
- "index": 0,
- "containerId": "string",
- "error": "string"
}
]
}Max file size: 5 MB. Requires admin role.
| file required | string <binary> |
{- "created": 0,
- "updated": 0,
- "errors": [
- {
- "index": 0,
- "containerId": "string",
- "error": "string"
}
]
}| sourceSystem | string <= 128 characters |
| sourceOrderId | string <= 128 characters |
| orderType | string Default: "Outbound" Enum: "Outbound" "Inbound" "Transfer" "Return" |
| priority | string Default: "Standard" Enum: "Standard" "High" "Urgent" "Critical" |
| serviceLevel | string Default: "Standard" Enum: "Economy" "Standard" "Expedited" "NextDay" "SameDay" |
| channel | string <= 128 characters |
object (AddressParty) | |
object (AddressParty) | |
object | |
| orderedAt | string <date-time> |
| requiredShipBy | string <date-time> |
| requiredDeliverBy | string <date-time> |
Array of objects | |
| tags | Array of strings |
object | |
| externalShipmentId | string <= 128 characters Host system consolidation signal |
| submit | boolean Default: true If true, order created in RECEIVED status; if false, DRAFT |
required | Array of objects (CreateOrderLineRequest) [ 1 .. 200 ] items |
{- "sourceOrderId": "SO-2026-001",
- "orderType": "Outbound",
- "priority": "Standard",
- "shipTo": {
- "name": "Acme Corp",
- "addressLine1": "123 Main St",
- "city": "Springfield",
- "state": "IL",
- "postalCode": "62701",
- "country": "US"
}, - "lines": [
- {
- "sku": "WIDGET-001",
- "quantityOrdered": 5,
- "length": 10,
- "width": 8,
- "height": 6,
- "weight": 2.5
}
]
}{- "id": "string",
- "sourceSystem": "string",
- "sourceOrderId": "string",
- "orderType": "string",
- "priority": "string",
- "serviceLevel": "string",
- "status": "Draft",
- "channel": "string",
- "shipFrom": {
- "name": "string",
- "company": "string",
- "addressLine1": "string",
- "addressLine2": "string",
- "city": "string",
- "state": "string",
- "postalCode": "string",
- "country": "string",
- "phone": "string",
- "email": "string"
}, - "shipTo": {
- "name": "string",
- "company": "string",
- "addressLine1": "string",
- "addressLine2": "string",
- "city": "string",
- "state": "string",
- "postalCode": "string",
- "country": "string",
- "phone": "string",
- "email": "string"
}, - "lines": [
- { }
], - "tags": [
- "string"
], - "version": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}| status | string Enum: "Draft" "Received" "Planned" "Cancelled" Filter by order status |
| limit | integer [ 1 .. 100 ] Default: 20 Maximum number of items to return |
| cursor | string Opaque pagination cursor from a previous response's |
{- "items": [
- {
- "id": "string",
- "sourceSystem": "string",
- "sourceOrderId": "string",
- "orderType": "string",
- "priority": "string",
- "serviceLevel": "string",
- "status": "Draft",
- "channel": "string",
- "shipFrom": {
- "name": "string",
- "company": "string",
- "addressLine1": "string",
- "addressLine2": "string",
- "city": "string",
- "state": "string",
- "postalCode": "string",
- "country": "string",
- "phone": "string",
- "email": "string"
}, - "shipTo": {
- "name": "string",
- "company": "string",
- "addressLine1": "string",
- "addressLine2": "string",
- "city": "string",
- "state": "string",
- "postalCode": "string",
- "country": "string",
- "phone": "string",
- "email": "string"
}, - "lines": [
- { }
], - "tags": [
- "string"
], - "version": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "nextCursor": "string"
}| orderId required | string |
{- "id": "string",
- "sourceSystem": "string",
- "sourceOrderId": "string",
- "orderType": "string",
- "priority": "string",
- "serviceLevel": "string",
- "status": "Draft",
- "channel": "string",
- "shipFrom": {
- "name": "string",
- "company": "string",
- "addressLine1": "string",
- "addressLine2": "string",
- "city": "string",
- "state": "string",
- "postalCode": "string",
- "country": "string",
- "phone": "string",
- "email": "string"
}, - "shipTo": {
- "name": "string",
- "company": "string",
- "addressLine1": "string",
- "addressLine2": "string",
- "city": "string",
- "state": "string",
- "postalCode": "string",
- "country": "string",
- "phone": "string",
- "email": "string"
}, - "lines": [
- { }
], - "tags": [
- "string"
], - "version": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}Requires the current version for optimistic concurrency.
| orderId required | string |
| version required | integer |
| priority | string Enum: "Standard" "High" "Urgent" "Critical" |
| serviceLevel | string Enum: "Economy" "Standard" "Expedited" "NextDay" "SameDay" |
| channel | string |
object (AddressParty) | |
object (AddressParty) | |
| requiredShipBy | string <date-time> |
| requiredDeliverBy | string <date-time> |
| tags | Array of strings |
Array of objects (CreateOrderLineRequest) |
{- "version": 0,
- "priority": "Standard",
- "serviceLevel": "Economy",
- "channel": "string",
- "shipFrom": {
- "name": "string",
- "company": "string",
- "addressLine1": "string",
- "addressLine2": "string",
- "city": "string",
- "state": "string",
- "postalCode": "string",
- "country": "string",
- "phone": "string",
- "email": "string"
}, - "shipTo": {
- "name": "string",
- "company": "string",
- "addressLine1": "string",
- "addressLine2": "string",
- "city": "string",
- "state": "string",
- "postalCode": "string",
- "country": "string",
- "phone": "string",
- "email": "string"
}, - "requiredShipBy": "2019-08-24T14:15:22Z",
- "requiredDeliverBy": "2019-08-24T14:15:22Z",
- "tags": [
- "string"
], - "lines": [
- {
- "lineNumber": 0,
- "itemId": "string",
- "sku": "string",
- "description": "string",
- "quantityOrdered": 0,
- "unitOfMeasure": "EA",
- "length": 0.1,
- "width": 0.1,
- "height": 0.1,
- "weight": 0.1,
- "tags": [
- "string"
], - "specialInstructions": "string",
- "lotNumber": "string",
- "serialNumbers": [
- "string"
]
}
]
}{- "id": "string",
- "sourceSystem": "string",
- "sourceOrderId": "string",
- "orderType": "string",
- "priority": "string",
- "serviceLevel": "string",
- "status": "Draft",
- "channel": "string",
- "shipFrom": {
- "name": "string",
- "company": "string",
- "addressLine1": "string",
- "addressLine2": "string",
- "city": "string",
- "state": "string",
- "postalCode": "string",
- "country": "string",
- "phone": "string",
- "email": "string"
}, - "shipTo": {
- "name": "string",
- "company": "string",
- "addressLine1": "string",
- "addressLine2": "string",
- "city": "string",
- "state": "string",
- "postalCode": "string",
- "country": "string",
- "phone": "string",
- "email": "string"
}, - "lines": [
- { }
], - "tags": [
- "string"
], - "version": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}Sets the order status to Cancelled.
| orderId required | string |
{- "id": "string",
- "sourceSystem": "string",
- "sourceOrderId": "string",
- "orderType": "string",
- "priority": "string",
- "serviceLevel": "string",
- "status": "Draft",
- "channel": "string",
- "shipFrom": {
- "name": "string",
- "company": "string",
- "addressLine1": "string",
- "addressLine2": "string",
- "city": "string",
- "state": "string",
- "postalCode": "string",
- "country": "string",
- "phone": "string",
- "email": "string"
}, - "shipTo": {
- "name": "string",
- "company": "string",
- "addressLine1": "string",
- "addressLine2": "string",
- "city": "string",
- "state": "string",
- "postalCode": "string",
- "country": "string",
- "phone": "string",
- "email": "string"
}, - "lines": [
- { }
], - "tags": [
- "string"
], - "version": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}| orderId required | string |
{- "id": "string",
- "sourceSystem": "string",
- "sourceOrderId": "string",
- "orderType": "string",
- "priority": "string",
- "serviceLevel": "string",
- "status": "Draft",
- "channel": "string",
- "shipFrom": {
- "name": "string",
- "company": "string",
- "addressLine1": "string",
- "addressLine2": "string",
- "city": "string",
- "state": "string",
- "postalCode": "string",
- "country": "string",
- "phone": "string",
- "email": "string"
}, - "shipTo": {
- "name": "string",
- "company": "string",
- "addressLine1": "string",
- "addressLine2": "string",
- "city": "string",
- "state": "string",
- "postalCode": "string",
- "country": "string",
- "phone": "string",
- "email": "string"
}, - "lines": [
- { }
], - "tags": [
- "string"
], - "version": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}Upload a CSV file to import orders. Existing orders (by sourceOrderId) are updated; new orders are created. Max file size: 5 MB.
| file required | string <binary> |
{- "ordersCreated": 0,
- "ordersUpdated": 0,
- "ordersUnchanged": 0,
- "totalLines": 0,
- "errors": [
- {
- "orderId": "string",
- "error": "string"
}
]
}Creates a shipment from one or more orders. Items are resolved from the Item Master when orders reference itemIds.
| orderIds required | Array of strings non-empty |
| packingConfig | object Optional packing configuration overrides |
| mode | string Enum: "Parcel" "Ltl" "Ftl" "Air" "Ocean" "Intermodal" |
| serviceLevel | string Enum: "Economy" "Standard" "Expedited" "NextDay" "SameDay" |
| carrier | string <= 128 characters |
{- "orderIds": [
- "ord_abc123"
], - "mode": "Parcel",
- "serviceLevel": "Standard"
}{- "id": "string",
- "orderIds": [
- "string"
], - "status": "string",
- "mode": "string",
- "serviceLevel": "string",
- "carrier": "string",
- "packResult": {
- "algorithm": "string",
- "results": [
- {
- "containerId": "string",
- "boxIndex": 0,
- "containerDimensions": {
- "length": 0.1,
- "width": 0.1,
- "height": 0.1
}, - "packedItems": [
- {
- "id": "string",
- "coordinate": {
- "x": 0.1,
- "y": 0.1,
- "z": 0.1
}, - "packedDimensions": {
- "length": 0.1,
- "width": 0.1,
- "height": 0.1
}, - "weight": 0.1,
- "tags": [
- "string"
], - "nestedItems": [
- { }
], - "rollInfo": {
- "sourceItemId": "string",
- "rollIndex": 0,
- "totalRolls": 0,
- "linearQuantityOnRoll": 0.1,
- "outerDiameter": 0.1
}, - "sourceOrderId": "string",
- "sourceLineNumber": 0
}
], - "unpackedItems": [
- {
- "id": "string",
- "dimensions": {
- "length": 0.1,
- "width": 0.1,
- "height": 0.1
}, - "weight": 0.1,
- "rollInfo": {
- "sourceItemId": "string",
- "rollIndex": 0,
- "totalRolls": 0,
- "linearQuantityOnRoll": 0.1,
- "outerDiameter": 0.1
}, - "sourceOrderId": "string",
- "sourceLineNumber": 0
}
], - "volumeUtilizationPercent": 0.1,
- "totalWeight": 0.1,
- "sourceOrderIds": [
- "string"
], - "costBreakdown": {
- "shippingCost": 0,
- "boxCost": 0,
- "totalCost": 0,
- "billableWeight": 0.1,
- "dimWeight": 0.1,
- "actualWeight": 0.1,
- "carrier": "string",
- "service": "string",
- "zone": 0
}
}
], - "palletResults": {
- "pallets": [
- {
- "palletId": "string",
- "palletIndex": 0,
- "palletDimensions": {
- "length": 0.1,
- "width": 0.1,
- "height": 0.1
}, - "cartons": [
- {
- "cartonId": "string",
- "coordinate": {
- "x": 0.1,
- "y": 0.1,
- "z": 0.1
}, - "packedDimensions": {
- "length": 0.1,
- "width": 0.1,
- "height": 0.1
}, - "weight": 0.1
}
], - "volumeUtilizationPercent": 0.1,
- "totalWeight": 0.1,
- "palletWeight": 0.1,
- "platformHeight": 0.1
}
], - "unpalletizedCartons": [
- {
- "cartonId": "string",
- "dimensions": {
- "length": 0.1,
- "width": 0.1,
- "height": 0.1
}, - "weight": 0.1
}
]
}, - "trailerResults": {
- "trailers": [
- {
- "trailerId": "string",
- "trailerIndex": 0,
- "equipmentType": "string",
- "trailerDimensions": {
- "length": 0.1,
- "width": 0.1,
- "height": 0.1
}, - "pallets": [
- {
- "palletId": "string",
- "coordinate": {
- "x": 0.1,
- "y": 0.1,
- "z": 0.1
}, - "palletDimensions": {
- "length": 0.1,
- "width": 0.1,
- "height": 0.1
}, - "weight": 0.1,
- "stackInfo": {
- "bottomPalletId": "string",
- "topPalletId": "string",
- "bottomHeight": 0.1,
- "topHeight": 0.1
}
}
], - "floorLoadedCartons": [
- {
- "cartonId": "string",
- "coordinate": {
- "x": 0.1,
- "y": 0.1,
- "z": 0.1
}, - "packedDimensions": {
- "length": 0.1,
- "width": 0.1,
- "height": 0.1
}, - "weight": 0.1
}
], - "volumeUtilizationPercent": 0.1,
- "totalWeight": 0.1,
- "tareWeight": 0.1
}
], - "unloadedPallets": [
- {
- "palletId": "string",
- "dimensions": {
- "length": 0.1,
- "width": 0.1,
- "height": 0.1
}, - "weight": 0.1
}
], - "unloadedCartons": [
- {
- "cartonId": "string",
- "dimensions": {
- "length": 0.1,
- "width": 0.1,
- "height": 0.1
}, - "weight": 0.1
}
]
}, - "firedRules": [
- {
- "ruleId": "string",
- "ruleName": "string",
- "ruleType": "string",
- "summary": "string"
}
]
}, - "version": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}| status | string Filter by shipment status |
| orderId | string Filter by order ID |
| limit | integer [ 1 .. 100 ] Default: 20 Maximum number of items to return |
| cursor | string Opaque pagination cursor from a previous response's |
{- "items": [
- {
- "id": "string",
- "orderIds": [
- "string"
], - "status": "string",
- "mode": "string",
- "serviceLevel": "string",
- "carrier": "string",
- "packResult": {
- "algorithm": "string",
- "results": [
- {
- "containerId": "string",
- "boxIndex": 0,
- "containerDimensions": {
- "length": 0.1,
- "width": 0.1,
- "height": 0.1
}, - "packedItems": [
- {
- "id": "string",
- "coordinate": {
- "x": 0.1,
- "y": 0.1,
- "z": 0.1
}, - "packedDimensions": {
- "length": 0.1,
- "width": 0.1,
- "height": 0.1
}, - "weight": 0.1,
- "tags": [
- "string"
], - "nestedItems": [
- { }
], - "rollInfo": {
- "sourceItemId": "string",
- "rollIndex": 0,
- "totalRolls": 0,
- "linearQuantityOnRoll": 0.1,
- "outerDiameter": 0.1
}, - "sourceOrderId": "string",
- "sourceLineNumber": 0
}
], - "unpackedItems": [
- {
- "id": "string",
- "dimensions": {
- "length": 0.1,
- "width": 0.1,
- "height": 0.1
}, - "weight": 0.1,
- "rollInfo": {
- "sourceItemId": "string",
- "rollIndex": 0,
- "totalRolls": 0,
- "linearQuantityOnRoll": 0.1,
- "outerDiameter": 0.1
}, - "sourceOrderId": "string",
- "sourceLineNumber": 0
}
], - "volumeUtilizationPercent": 0.1,
- "totalWeight": 0.1,
- "sourceOrderIds": [
- "string"
], - "costBreakdown": {
- "shippingCost": 0,
- "boxCost": 0,
- "totalCost": 0,
- "billableWeight": 0.1,
- "dimWeight": 0.1,
- "actualWeight": 0.1,
- "carrier": "string",
- "service": "string",
- "zone": 0
}
}
], - "palletResults": {
- "pallets": [
- {
- "palletId": "string",
- "palletIndex": 0,
- "palletDimensions": {
- "length": 0.1,
- "width": 0.1,
- "height": 0.1
}, - "cartons": [
- {
- "cartonId": "string",
- "coordinate": {
- "x": null,
- "y": null,
- "z": null
}, - "packedDimensions": {
- "length": null,
- "width": null,
- "height": null
}, - "weight": 0.1
}
], - "volumeUtilizationPercent": 0.1,
- "totalWeight": 0.1,
- "palletWeight": 0.1,
- "platformHeight": 0.1
}
], - "unpalletizedCartons": [
- {
- "cartonId": "string",
- "dimensions": {
- "length": 0.1,
- "width": 0.1,
- "height": 0.1
}, - "weight": 0.1
}
]
}, - "trailerResults": {
- "trailers": [
- {
- "trailerId": "string",
- "trailerIndex": 0,
- "equipmentType": "string",
- "trailerDimensions": {
- "length": 0.1,
- "width": 0.1,
- "height": 0.1
}, - "pallets": [
- {
- "palletId": "string",
- "coordinate": {
- "x": null,
- "y": null,
- "z": null
}, - "palletDimensions": {
- "length": null,
- "width": null,
- "height": null
}, - "weight": 0.1,
- "stackInfo": {
- "bottomPalletId": null,
- "topPalletId": null,
- "bottomHeight": null,
- "topHeight": null
}
}
], - "floorLoadedCartons": [
- {
- "cartonId": "string",
- "coordinate": {
- "x": null,
- "y": null,
- "z": null
}, - "packedDimensions": {
- "length": null,
- "width": null,
- "height": null
}, - "weight": 0.1
}
], - "volumeUtilizationPercent": 0.1,
- "totalWeight": 0.1,
- "tareWeight": 0.1
}
], - "unloadedPallets": [
- {
- "palletId": "string",
- "dimensions": {
- "length": 0.1,
- "width": 0.1,
- "height": 0.1
}, - "weight": 0.1
}
], - "unloadedCartons": [
- {
- "cartonId": "string",
- "dimensions": {
- "length": 0.1,
- "width": 0.1,
- "height": 0.1
}, - "weight": 0.1
}
]
}, - "firedRules": [
- {
- "ruleId": "string",
- "ruleName": "string",
- "ruleType": "string",
- "summary": "string"
}
]
}, - "version": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "nextCursor": "string"
}| shipmentId required | string |
{- "id": "string",
- "orderIds": [
- "string"
], - "status": "string",
- "mode": "string",
- "serviceLevel": "string",
- "carrier": "string",
- "packResult": {
- "algorithm": "string",
- "results": [
- {
- "containerId": "string",
- "boxIndex": 0,
- "containerDimensions": {
- "length": 0.1,
- "width": 0.1,
- "height": 0.1
}, - "packedItems": [
- {
- "id": "string",
- "coordinate": {
- "x": 0.1,
- "y": 0.1,
- "z": 0.1
}, - "packedDimensions": {
- "length": 0.1,
- "width": 0.1,
- "height": 0.1
}, - "weight": 0.1,
- "tags": [
- "string"
], - "nestedItems": [
- { }
], - "rollInfo": {
- "sourceItemId": "string",
- "rollIndex": 0,
- "totalRolls": 0,
- "linearQuantityOnRoll": 0.1,
- "outerDiameter": 0.1
}, - "sourceOrderId": "string",
- "sourceLineNumber": 0
}
], - "unpackedItems": [
- {
- "id": "string",
- "dimensions": {
- "length": 0.1,
- "width": 0.1,
- "height": 0.1
}, - "weight": 0.1,
- "rollInfo": {
- "sourceItemId": "string",
- "rollIndex": 0,
- "totalRolls": 0,
- "linearQuantityOnRoll": 0.1,
- "outerDiameter": 0.1
}, - "sourceOrderId": "string",
- "sourceLineNumber": 0
}
], - "volumeUtilizationPercent": 0.1,
- "totalWeight": 0.1,
- "sourceOrderIds": [
- "string"
], - "costBreakdown": {
- "shippingCost": 0,
- "boxCost": 0,
- "totalCost": 0,
- "billableWeight": 0.1,
- "dimWeight": 0.1,
- "actualWeight": 0.1,
- "carrier": "string",
- "service": "string",
- "zone": 0
}
}
], - "palletResults": {
- "pallets": [
- {
- "palletId": "string",
- "palletIndex": 0,
- "palletDimensions": {
- "length": 0.1,
- "width": 0.1,
- "height": 0.1
}, - "cartons": [
- {
- "cartonId": "string",
- "coordinate": {
- "x": 0.1,
- "y": 0.1,
- "z": 0.1
}, - "packedDimensions": {
- "length": 0.1,
- "width": 0.1,
- "height": 0.1
}, - "weight": 0.1
}
], - "volumeUtilizationPercent": 0.1,
- "totalWeight": 0.1,
- "palletWeight": 0.1,
- "platformHeight": 0.1
}
], - "unpalletizedCartons": [
- {
- "cartonId": "string",
- "dimensions": {
- "length": 0.1,
- "width": 0.1,
- "height": 0.1
}, - "weight": 0.1
}
]
}, - "trailerResults": {
- "trailers": [
- {
- "trailerId": "string",
- "trailerIndex": 0,
- "equipmentType": "string",
- "trailerDimensions": {
- "length": 0.1,
- "width": 0.1,
- "height": 0.1
}, - "pallets": [
- {
- "palletId": "string",
- "coordinate": {
- "x": 0.1,
- "y": 0.1,
- "z": 0.1
}, - "palletDimensions": {
- "length": 0.1,
- "width": 0.1,
- "height": 0.1
}, - "weight": 0.1,
- "stackInfo": {
- "bottomPalletId": "string",
- "topPalletId": "string",
- "bottomHeight": 0.1,
- "topHeight": 0.1
}
}
], - "floorLoadedCartons": [
- {
- "cartonId": "string",
- "coordinate": {
- "x": 0.1,
- "y": 0.1,
- "z": 0.1
}, - "packedDimensions": {
- "length": 0.1,
- "width": 0.1,
- "height": 0.1
}, - "weight": 0.1
}
], - "volumeUtilizationPercent": 0.1,
- "totalWeight": 0.1,
- "tareWeight": 0.1
}
], - "unloadedPallets": [
- {
- "palletId": "string",
- "dimensions": {
- "length": 0.1,
- "width": 0.1,
- "height": 0.1
}, - "weight": 0.1
}
], - "unloadedCartons": [
- {
- "cartonId": "string",
- "dimensions": {
- "length": 0.1,
- "width": 0.1,
- "height": 0.1
}, - "weight": 0.1
}
]
}, - "firedRules": [
- {
- "ruleId": "string",
- "ruleName": "string",
- "ruleType": "string",
- "summary": "string"
}
]
}, - "version": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}| shipmentId required | string |
| version required | integer |
| packingConfig | object |
| mode | string Enum: "Parcel" "Ltl" "Ftl" "Air" "Ocean" "Intermodal" |
| serviceLevel | string Enum: "Economy" "Standard" "Expedited" "NextDay" "SameDay" |
| carrier | string <= 128 characters |
{- "version": 0,
- "packingConfig": { },
- "mode": "Parcel",
- "serviceLevel": "Economy",
- "carrier": "string"
}{- "id": "string",
- "orderIds": [
- "string"
], - "status": "string",
- "mode": "string",
- "serviceLevel": "string",
- "carrier": "string",
- "packResult": {
- "algorithm": "string",
- "results": [
- {
- "containerId": "string",
- "boxIndex": 0,
- "containerDimensions": {
- "length": 0.1,
- "width": 0.1,
- "height": 0.1
}, - "packedItems": [
- {
- "id": "string",
- "coordinate": {
- "x": 0.1,
- "y": 0.1,
- "z": 0.1
}, - "packedDimensions": {
- "length": 0.1,
- "width": 0.1,
- "height": 0.1
}, - "weight": 0.1,
- "tags": [
- "string"
], - "nestedItems": [
- { }
], - "rollInfo": {
- "sourceItemId": "string",
- "rollIndex": 0,
- "totalRolls": 0,
- "linearQuantityOnRoll": 0.1,
- "outerDiameter": 0.1
}, - "sourceOrderId": "string",
- "sourceLineNumber": 0
}
], - "unpackedItems": [
- {
- "id": "string",
- "dimensions": {
- "length": 0.1,
- "width": 0.1,
- "height": 0.1
}, - "weight": 0.1,
- "rollInfo": {
- "sourceItemId": "string",
- "rollIndex": 0,
- "totalRolls": 0,
- "linearQuantityOnRoll": 0.1,
- "outerDiameter": 0.1
}, - "sourceOrderId": "string",
- "sourceLineNumber": 0
}
], - "volumeUtilizationPercent": 0.1,
- "totalWeight": 0.1,
- "sourceOrderIds": [
- "string"
], - "costBreakdown": {
- "shippingCost": 0,
- "boxCost": 0,
- "totalCost": 0,
- "billableWeight": 0.1,
- "dimWeight": 0.1,
- "actualWeight": 0.1,
- "carrier": "string",
- "service": "string",
- "zone": 0
}
}
], - "palletResults": {
- "pallets": [
- {
- "palletId": "string",
- "palletIndex": 0,
- "palletDimensions": {
- "length": 0.1,
- "width": 0.1,
- "height": 0.1
}, - "cartons": [
- {
- "cartonId": "string",
- "coordinate": {
- "x": 0.1,
- "y": 0.1,
- "z": 0.1
}, - "packedDimensions": {
- "length": 0.1,
- "width": 0.1,
- "height": 0.1
}, - "weight": 0.1
}
], - "volumeUtilizationPercent": 0.1,
- "totalWeight": 0.1,
- "palletWeight": 0.1,
- "platformHeight": 0.1
}
], - "unpalletizedCartons": [
- {
- "cartonId": "string",
- "dimensions": {
- "length": 0.1,
- "width": 0.1,
- "height": 0.1
}, - "weight": 0.1
}
]
}, - "trailerResults": {
- "trailers": [
- {
- "trailerId": "string",
- "trailerIndex": 0,
- "equipmentType": "string",
- "trailerDimensions": {
- "length": 0.1,
- "width": 0.1,
- "height": 0.1
}, - "pallets": [
- {
- "palletId": "string",
- "coordinate": {
- "x": 0.1,
- "y": 0.1,
- "z": 0.1
}, - "palletDimensions": {
- "length": 0.1,
- "width": 0.1,
- "height": 0.1
}, - "weight": 0.1,
- "stackInfo": {
- "bottomPalletId": "string",
- "topPalletId": "string",
- "bottomHeight": 0.1,
- "topHeight": 0.1
}
}
], - "floorLoadedCartons": [
- {
- "cartonId": "string",
- "coordinate": {
- "x": 0.1,
- "y": 0.1,
- "z": 0.1
}, - "packedDimensions": {
- "length": 0.1,
- "width": 0.1,
- "height": 0.1
}, - "weight": 0.1
}
], - "volumeUtilizationPercent": 0.1,
- "totalWeight": 0.1,
- "tareWeight": 0.1
}
], - "unloadedPallets": [
- {
- "palletId": "string",
- "dimensions": {
- "length": 0.1,
- "width": 0.1,
- "height": 0.1
}, - "weight": 0.1
}
], - "unloadedCartons": [
- {
- "cartonId": "string",
- "dimensions": {
- "length": 0.1,
- "width": 0.1,
- "height": 0.1
}, - "weight": 0.1
}
]
}, - "firedRules": [
- {
- "ruleId": "string",
- "ruleName": "string",
- "ruleType": "string",
- "summary": "string"
}
]
}, - "version": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}| shipmentId required | string |
{- "id": "string",
- "orderIds": [
- "string"
], - "status": "string",
- "mode": "string",
- "serviceLevel": "string",
- "carrier": "string",
- "packResult": {
- "algorithm": "string",
- "results": [
- {
- "containerId": "string",
- "boxIndex": 0,
- "containerDimensions": {
- "length": 0.1,
- "width": 0.1,
- "height": 0.1
}, - "packedItems": [
- {
- "id": "string",
- "coordinate": {
- "x": 0.1,
- "y": 0.1,
- "z": 0.1
}, - "packedDimensions": {
- "length": 0.1,
- "width": 0.1,
- "height": 0.1
}, - "weight": 0.1,
- "tags": [
- "string"
], - "nestedItems": [
- { }
], - "rollInfo": {
- "sourceItemId": "string",
- "rollIndex": 0,
- "totalRolls": 0,
- "linearQuantityOnRoll": 0.1,
- "outerDiameter": 0.1
}, - "sourceOrderId": "string",
- "sourceLineNumber": 0
}
], - "unpackedItems": [
- {
- "id": "string",
- "dimensions": {
- "length": 0.1,
- "width": 0.1,
- "height": 0.1
}, - "weight": 0.1,
- "rollInfo": {
- "sourceItemId": "string",
- "rollIndex": 0,
- "totalRolls": 0,
- "linearQuantityOnRoll": 0.1,
- "outerDiameter": 0.1
}, - "sourceOrderId": "string",
- "sourceLineNumber": 0
}
], - "volumeUtilizationPercent": 0.1,
- "totalWeight": 0.1,
- "sourceOrderIds": [
- "string"
], - "costBreakdown": {
- "shippingCost": 0,
- "boxCost": 0,
- "totalCost": 0,
- "billableWeight": 0.1,
- "dimWeight": 0.1,
- "actualWeight": 0.1,
- "carrier": "string",
- "service": "string",
- "zone": 0
}
}
], - "palletResults": {
- "pallets": [
- {
- "palletId": "string",
- "palletIndex": 0,
- "palletDimensions": {
- "length": 0.1,
- "width": 0.1,
- "height": 0.1
}, - "cartons": [
- {
- "cartonId": "string",
- "coordinate": {
- "x": 0.1,
- "y": 0.1,
- "z": 0.1
}, - "packedDimensions": {
- "length": 0.1,
- "width": 0.1,
- "height": 0.1
}, - "weight": 0.1
}
], - "volumeUtilizationPercent": 0.1,
- "totalWeight": 0.1,
- "palletWeight": 0.1,
- "platformHeight": 0.1
}
], - "unpalletizedCartons": [
- {
- "cartonId": "string",
- "dimensions": {
- "length": 0.1,
- "width": 0.1,
- "height": 0.1
}, - "weight": 0.1
}
]
}, - "trailerResults": {
- "trailers": [
- {
- "trailerId": "string",
- "trailerIndex": 0,
- "equipmentType": "string",
- "trailerDimensions": {
- "length": 0.1,
- "width": 0.1,
- "height": 0.1
}, - "pallets": [
- {
- "palletId": "string",
- "coordinate": {
- "x": 0.1,
- "y": 0.1,
- "z": 0.1
}, - "palletDimensions": {
- "length": 0.1,
- "width": 0.1,
- "height": 0.1
}, - "weight": 0.1,
- "stackInfo": {
- "bottomPalletId": "string",
- "topPalletId": "string",
- "bottomHeight": 0.1,
- "topHeight": 0.1
}
}
], - "floorLoadedCartons": [
- {
- "cartonId": "string",
- "coordinate": {
- "x": 0.1,
- "y": 0.1,
- "z": 0.1
}, - "packedDimensions": {
- "length": 0.1,
- "width": 0.1,
- "height": 0.1
}, - "weight": 0.1
}
], - "volumeUtilizationPercent": 0.1,
- "totalWeight": 0.1,
- "tareWeight": 0.1
}
], - "unloadedPallets": [
- {
- "palletId": "string",
- "dimensions": {
- "length": 0.1,
- "width": 0.1,
- "height": 0.1
}, - "weight": 0.1
}
], - "unloadedCartons": [
- {
- "cartonId": "string",
- "dimensions": {
- "length": 0.1,
- "width": 0.1,
- "height": 0.1
}, - "weight": 0.1
}
]
}, - "firedRules": [
- {
- "ruleId": "string",
- "ruleName": "string",
- "ruleType": "string",
- "summary": "string"
}
]
}, - "version": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}Runs the 3D bin-packing algorithm on the shipment's items and updates the shipment with the pack result.
| shipmentId required | string |
| algorithm | string <= 64 characters Packing algorithm to use |
{- "algorithm": "fpLayer"
}{- "id": "string",
- "orderIds": [
- "string"
], - "status": "string",
- "mode": "string",
- "serviceLevel": "string",
- "carrier": "string",
- "packResult": {
- "algorithm": "string",
- "results": [
- {
- "containerId": "string",
- "boxIndex": 0,
- "containerDimensions": {
- "length": 0.1,
- "width": 0.1,
- "height": 0.1
}, - "packedItems": [
- {
- "id": "string",
- "coordinate": {
- "x": 0.1,
- "y": 0.1,
- "z": 0.1
}, - "packedDimensions": {
- "length": 0.1,
- "width": 0.1,
- "height": 0.1
}, - "weight": 0.1,
- "tags": [
- "string"
], - "nestedItems": [
- { }
], - "rollInfo": {
- "sourceItemId": "string",
- "rollIndex": 0,
- "totalRolls": 0,
- "linearQuantityOnRoll": 0.1,
- "outerDiameter": 0.1
}, - "sourceOrderId": "string",
- "sourceLineNumber": 0
}
], - "unpackedItems": [
- {
- "id": "string",
- "dimensions": {
- "length": 0.1,
- "width": 0.1,
- "height": 0.1
}, - "weight": 0.1,
- "rollInfo": {
- "sourceItemId": "string",
- "rollIndex": 0,
- "totalRolls": 0,
- "linearQuantityOnRoll": 0.1,
- "outerDiameter": 0.1
}, - "sourceOrderId": "string",
- "sourceLineNumber": 0
}
], - "volumeUtilizationPercent": 0.1,
- "totalWeight": 0.1,
- "sourceOrderIds": [
- "string"
], - "costBreakdown": {
- "shippingCost": 0,
- "boxCost": 0,
- "totalCost": 0,
- "billableWeight": 0.1,
- "dimWeight": 0.1,
- "actualWeight": 0.1,
- "carrier": "string",
- "service": "string",
- "zone": 0
}
}
], - "palletResults": {
- "pallets": [
- {
- "palletId": "string",
- "palletIndex": 0,
- "palletDimensions": {
- "length": 0.1,
- "width": 0.1,
- "height": 0.1
}, - "cartons": [
- {
- "cartonId": "string",
- "coordinate": {
- "x": 0.1,
- "y": 0.1,
- "z": 0.1
}, - "packedDimensions": {
- "length": 0.1,
- "width": 0.1,
- "height": 0.1
}, - "weight": 0.1
}
], - "volumeUtilizationPercent": 0.1,
- "totalWeight": 0.1,
- "palletWeight": 0.1,
- "platformHeight": 0.1
}
], - "unpalletizedCartons": [
- {
- "cartonId": "string",
- "dimensions": {
- "length": 0.1,
- "width": 0.1,
- "height": 0.1
}, - "weight": 0.1
}
]
}, - "trailerResults": {
- "trailers": [
- {
- "trailerId": "string",
- "trailerIndex": 0,
- "equipmentType": "string",
- "trailerDimensions": {
- "length": 0.1,
- "width": 0.1,
- "height": 0.1
}, - "pallets": [
- {
- "palletId": "string",
- "coordinate": {
- "x": 0.1,
- "y": 0.1,
- "z": 0.1
}, - "palletDimensions": {
- "length": 0.1,
- "width": 0.1,
- "height": 0.1
}, - "weight": 0.1,
- "stackInfo": {
- "bottomPalletId": "string",
- "topPalletId": "string",
- "bottomHeight": 0.1,
- "topHeight": 0.1
}
}
], - "floorLoadedCartons": [
- {
- "cartonId": "string",
- "coordinate": {
- "x": 0.1,
- "y": 0.1,
- "z": 0.1
}, - "packedDimensions": {
- "length": 0.1,
- "width": 0.1,
- "height": 0.1
}, - "weight": 0.1
}
], - "volumeUtilizationPercent": 0.1,
- "totalWeight": 0.1,
- "tareWeight": 0.1
}
], - "unloadedPallets": [
- {
- "palletId": "string",
- "dimensions": {
- "length": 0.1,
- "width": 0.1,
- "height": 0.1
}, - "weight": 0.1
}
], - "unloadedCartons": [
- {
- "cartonId": "string",
- "dimensions": {
- "length": 0.1,
- "width": 0.1,
- "height": 0.1
}, - "weight": 0.1
}
]
}, - "firedRules": [
- {
- "ruleId": "string",
- "ruleName": "string",
- "ruleType": "string",
- "summary": "string"
}
]
}, - "version": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}Fetches live shipping rates from connected carriers for the optimized shipment parcels.
| shipmentId required | string |
| carriers | Array of strings Carrier IDs to rate (defaults to all connected) |
{- "carriers": [
- "ups",
- "fedex"
]
}{- "id": "string",
- "orderIds": [
- "string"
], - "status": "string",
- "mode": "string",
- "serviceLevel": "string",
- "carrier": "string",
- "packResult": {
- "algorithm": "string",
- "results": [
- {
- "containerId": "string",
- "boxIndex": 0,
- "containerDimensions": {
- "length": 0.1,
- "width": 0.1,
- "height": 0.1
}, - "packedItems": [
- {
- "id": "string",
- "coordinate": {
- "x": 0.1,
- "y": 0.1,
- "z": 0.1
}, - "packedDimensions": {
- "length": 0.1,
- "width": 0.1,
- "height": 0.1
}, - "weight": 0.1,
- "tags": [
- "string"
], - "nestedItems": [
- { }
], - "rollInfo": {
- "sourceItemId": "string",
- "rollIndex": 0,
- "totalRolls": 0,
- "linearQuantityOnRoll": 0.1,
- "outerDiameter": 0.1
}, - "sourceOrderId": "string",
- "sourceLineNumber": 0
}
], - "unpackedItems": [
- {
- "id": "string",
- "dimensions": {
- "length": 0.1,
- "width": 0.1,
- "height": 0.1
}, - "weight": 0.1,
- "rollInfo": {
- "sourceItemId": "string",
- "rollIndex": 0,
- "totalRolls": 0,
- "linearQuantityOnRoll": 0.1,
- "outerDiameter": 0.1
}, - "sourceOrderId": "string",
- "sourceLineNumber": 0
}
], - "volumeUtilizationPercent": 0.1,
- "totalWeight": 0.1,
- "sourceOrderIds": [
- "string"
], - "costBreakdown": {
- "shippingCost": 0,
- "boxCost": 0,
- "totalCost": 0,
- "billableWeight": 0.1,
- "dimWeight": 0.1,
- "actualWeight": 0.1,
- "carrier": "string",
- "service": "string",
- "zone": 0
}
}
], - "palletResults": {
- "pallets": [
- {
- "palletId": "string",
- "palletIndex": 0,
- "palletDimensions": {
- "length": 0.1,
- "width": 0.1,
- "height": 0.1
}, - "cartons": [
- {
- "cartonId": "string",
- "coordinate": {
- "x": 0.1,
- "y": 0.1,
- "z": 0.1
}, - "packedDimensions": {
- "length": 0.1,
- "width": 0.1,
- "height": 0.1
}, - "weight": 0.1
}
], - "volumeUtilizationPercent": 0.1,
- "totalWeight": 0.1,
- "palletWeight": 0.1,
- "platformHeight": 0.1
}
], - "unpalletizedCartons": [
- {
- "cartonId": "string",
- "dimensions": {
- "length": 0.1,
- "width": 0.1,
- "height": 0.1
}, - "weight": 0.1
}
]
}, - "trailerResults": {
- "trailers": [
- {
- "trailerId": "string",
- "trailerIndex": 0,
- "equipmentType": "string",
- "trailerDimensions": {
- "length": 0.1,
- "width": 0.1,
- "height": 0.1
}, - "pallets": [
- {
- "palletId": "string",
- "coordinate": {
- "x": 0.1,
- "y": 0.1,
- "z": 0.1
}, - "palletDimensions": {
- "length": 0.1,
- "width": 0.1,
- "height": 0.1
}, - "weight": 0.1,
- "stackInfo": {
- "bottomPalletId": "string",
- "topPalletId": "string",
- "bottomHeight": 0.1,
- "topHeight": 0.1
}
}
], - "floorLoadedCartons": [
- {
- "cartonId": "string",
- "coordinate": {
- "x": 0.1,
- "y": 0.1,
- "z": 0.1
}, - "packedDimensions": {
- "length": 0.1,
- "width": 0.1,
- "height": 0.1
}, - "weight": 0.1
}
], - "volumeUtilizationPercent": 0.1,
- "totalWeight": 0.1,
- "tareWeight": 0.1
}
], - "unloadedPallets": [
- {
- "palletId": "string",
- "dimensions": {
- "length": 0.1,
- "width": 0.1,
- "height": 0.1
}, - "weight": 0.1
}
], - "unloadedCartons": [
- {
- "cartonId": "string",
- "dimensions": {
- "length": 0.1,
- "width": 0.1,
- "height": 0.1
}, - "weight": 0.1
}
]
}, - "firedRules": [
- {
- "ruleId": "string",
- "ruleName": "string",
- "ruleType": "string",
- "summary": "string"
}
]
}, - "version": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}Transitions the shipment to the Ready state.
| shipmentId required | string |
{- "id": "string",
- "orderIds": [
- "string"
], - "status": "string",
- "mode": "string",
- "serviceLevel": "string",
- "carrier": "string",
- "packResult": {
- "algorithm": "string",
- "results": [
- {
- "containerId": "string",
- "boxIndex": 0,
- "containerDimensions": {
- "length": 0.1,
- "width": 0.1,
- "height": 0.1
}, - "packedItems": [
- {
- "id": "string",
- "coordinate": {
- "x": 0.1,
- "y": 0.1,
- "z": 0.1
}, - "packedDimensions": {
- "length": 0.1,
- "width": 0.1,
- "height": 0.1
}, - "weight": 0.1,
- "tags": [
- "string"
], - "nestedItems": [
- { }
], - "rollInfo": {
- "sourceItemId": "string",
- "rollIndex": 0,
- "totalRolls": 0,
- "linearQuantityOnRoll": 0.1,
- "outerDiameter": 0.1
}, - "sourceOrderId": "string",
- "sourceLineNumber": 0
}
], - "unpackedItems": [
- {
- "id": "string",
- "dimensions": {
- "length": 0.1,
- "width": 0.1,
- "height": 0.1
}, - "weight": 0.1,
- "rollInfo": {
- "sourceItemId": "string",
- "rollIndex": 0,
- "totalRolls": 0,
- "linearQuantityOnRoll": 0.1,
- "outerDiameter": 0.1
}, - "sourceOrderId": "string",
- "sourceLineNumber": 0
}
], - "volumeUtilizationPercent": 0.1,
- "totalWeight": 0.1,
- "sourceOrderIds": [
- "string"
], - "costBreakdown": {
- "shippingCost": 0,
- "boxCost": 0,
- "totalCost": 0,
- "billableWeight": 0.1,
- "dimWeight": 0.1,
- "actualWeight": 0.1,
- "carrier": "string",
- "service": "string",
- "zone": 0
}
}
], - "palletResults": {
- "pallets": [
- {
- "palletId": "string",
- "palletIndex": 0,
- "palletDimensions": {
- "length": 0.1,
- "width": 0.1,
- "height": 0.1
}, - "cartons": [
- {
- "cartonId": "string",
- "coordinate": {
- "x": 0.1,
- "y": 0.1,
- "z": 0.1
}, - "packedDimensions": {
- "length": 0.1,
- "width": 0.1,
- "height": 0.1
}, - "weight": 0.1
}
], - "volumeUtilizationPercent": 0.1,
- "totalWeight": 0.1,
- "palletWeight": 0.1,
- "platformHeight": 0.1
}
], - "unpalletizedCartons": [
- {
- "cartonId": "string",
- "dimensions": {
- "length": 0.1,
- "width": 0.1,
- "height": 0.1
}, - "weight": 0.1
}
]
}, - "trailerResults": {
- "trailers": [
- {
- "trailerId": "string",
- "trailerIndex": 0,
- "equipmentType": "string",
- "trailerDimensions": {
- "length": 0.1,
- "width": 0.1,
- "height": 0.1
}, - "pallets": [
- {
- "palletId": "string",
- "coordinate": {
- "x": 0.1,
- "y": 0.1,
- "z": 0.1
}, - "palletDimensions": {
- "length": 0.1,
- "width": 0.1,
- "height": 0.1
}, - "weight": 0.1,
- "stackInfo": {
- "bottomPalletId": "string",
- "topPalletId": "string",
- "bottomHeight": 0.1,
- "topHeight": 0.1
}
}
], - "floorLoadedCartons": [
- {
- "cartonId": "string",
- "coordinate": {
- "x": 0.1,
- "y": 0.1,
- "z": 0.1
}, - "packedDimensions": {
- "length": 0.1,
- "width": 0.1,
- "height": 0.1
}, - "weight": 0.1
}
], - "volumeUtilizationPercent": 0.1,
- "totalWeight": 0.1,
- "tareWeight": 0.1
}
], - "unloadedPallets": [
- {
- "palletId": "string",
- "dimensions": {
- "length": 0.1,
- "width": 0.1,
- "height": 0.1
}, - "weight": 0.1
}
], - "unloadedCartons": [
- {
- "cartonId": "string",
- "dimensions": {
- "length": 0.1,
- "width": 0.1,
- "height": 0.1
}, - "weight": 0.1
}
]
}, - "firedRules": [
- {
- "ruleId": "string",
- "ruleName": "string",
- "ruleType": "string",
- "summary": "string"
}
]
}, - "version": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}[- {
- "id": "string",
- "name": "string",
- "description": "string",
- "enabled": true,
- "priority": 0,
- "ruleType": "BoxSetFilter",
- "executionTarget": "PreSolve",
- "conditions": {
- "operator": "and",
- "conditions": [
- {
- "field": "string",
- "operator": "string",
- "value": null
}
]
}, - "action": {
- "type": "string",
- "payload": null
}, - "version": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "createdBy": "string"
}
]| id | string <= 128 characters |
| name | string <= 256 characters |
| description | string <= 2000 characters |
| enabled | boolean Default: true |
| priority | integer Lower numbers execute first |
| ruleType | string Enum: "BoxSetFilter" "CarrierPackagingRule" "DestinationOverride" "OrderPreprocessing" "IncompatibilityGroup" "StackingConstraint" "OrientationRestriction" "ItemGrouping" "PostSolveValidation" "ObjectiveWeightModifier" "ReSolveTrigger" "ConsolidationProfile" |
| executionTarget | string Default: "PreSolve" Enum: "PreSolve" "SolverConfig" "PostSolve" |
object Condition group with operator and nested conditions | |
object Rule action with type and payload | |
| version | integer |
| createdAt | string <date-time> |
| updatedAt | string <date-time> |
| createdBy | string |
{- "name": "Exclude small boxes for heavy items",
- "ruleType": "BoxSetFilter",
- "enabled": true,
- "priority": 10,
- "conditions": {
- "operator": "and",
- "conditions": [
- {
- "field": "totalWeight",
- "operator": "greaterThan",
- "value": 50
}
]
}, - "action": {
- "type": "BoxSetFilter",
- "payload": {
- "exclude": [
- "SM-BOX"
]
}
}
}{- "id": "string",
- "name": "string",
- "description": "string",
- "enabled": true,
- "priority": 0,
- "ruleType": "BoxSetFilter",
- "executionTarget": "PreSolve",
- "conditions": {
- "operator": "and",
- "conditions": [
- {
- "field": "string",
- "operator": "string",
- "value": null
}
]
}, - "action": {
- "type": "string",
- "payload": null
}, - "version": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "createdBy": "string"
}{- "id": "string",
- "name": "string",
- "description": "string",
- "enabled": true,
- "priority": 0,
- "ruleType": "BoxSetFilter",
- "executionTarget": "PreSolve",
- "conditions": {
- "operator": "and",
- "conditions": [
- {
- "field": "string",
- "operator": "string",
- "value": null
}
]
}, - "action": {
- "type": "string",
- "payload": null
}, - "version": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "createdBy": "string"
}| id required | string |
| id | string <= 128 characters |
| name | string <= 256 characters |
| description | string <= 2000 characters |
| enabled | boolean Default: true |
| priority | integer Lower numbers execute first |
| ruleType | string Enum: "BoxSetFilter" "CarrierPackagingRule" "DestinationOverride" "OrderPreprocessing" "IncompatibilityGroup" "StackingConstraint" "OrientationRestriction" "ItemGrouping" "PostSolveValidation" "ObjectiveWeightModifier" "ReSolveTrigger" "ConsolidationProfile" |
| executionTarget | string Default: "PreSolve" Enum: "PreSolve" "SolverConfig" "PostSolve" |
object Condition group with operator and nested conditions | |
object Rule action with type and payload | |
| version | integer |
| createdAt | string <date-time> |
| updatedAt | string <date-time> |
| createdBy | string |
{- "id": "string",
- "name": "string",
- "description": "string",
- "enabled": true,
- "priority": 0,
- "ruleType": "BoxSetFilter",
- "executionTarget": "PreSolve",
- "conditions": {
- "operator": "and",
- "conditions": [
- {
- "field": "string",
- "operator": "string",
- "value": null
}
]
}, - "action": {
- "type": "string",
- "payload": null
}, - "version": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "createdBy": "string"
}{- "id": "string",
- "name": "string",
- "description": "string",
- "enabled": true,
- "priority": 0,
- "ruleType": "BoxSetFilter",
- "executionTarget": "PreSolve",
- "conditions": {
- "operator": "and",
- "conditions": [
- {
- "field": "string",
- "operator": "string",
- "value": null
}
]
}, - "action": {
- "type": "string",
- "payload": null
}, - "version": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "createdBy": "string"
}{- "title": "Unauthorized",
- "status": 401,
- "detail": "Invalid or missing authentication credentials.",
- "instance": "0HN9A1B2C3D4:00000002",
}Analyzes a set of orders and suggests consolidation groups based on destination, shipping mode, and profile constraints.
| orderIds required | Array of strings non-empty |
| profileId | string |
{- "orderIds": [
- "ord_001",
- "ord_002",
- "ord_003"
], - "profileId": "prof_default"
}{- "suggestedGroups": [
- {
- "orderIds": [
- "string"
], - "profileId": "string",
- "groupingKeyValues": {
- "property1": "string",
- "property2": "string"
}
}
], - "ungrouped": [
- {
- "orderId": "string",
- "reason": "string"
}
]
}Groups orders for consolidated packing. Requires at least 2 orders.
Set forceOverride: true to bypass validation warnings.
| profileId | string <= 128 characters |
object | |
| sourceOrderIds required | Array of strings >= 2 items |
| forceOverride | boolean Default: false Override validation warnings |
{- "sourceOrderIds": [
- "ord_001",
- "ord_002"
], - "profileId": "prof_default"
}{- "id": "string",
- "sourceOrderIds": [
- "string"
], - "profileId": "string",
- "status": "Pending",
- "groupingKeyValues": {
- "property1": "string",
- "property2": "string"
}, - "wasManualOverride": true,
- "createdAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "version": 0
}| limit | integer [ 1 .. 100 ] Default: 20 Maximum number of items to return |
| cursor | string Opaque pagination cursor from a previous response's |
| status | string Enum: "Pending" "Packed" "Dissolved" |
{- "items": [
- {
- "id": "string",
- "sourceOrderIds": [
- "string"
], - "profileId": "string",
- "status": "Pending",
- "groupingKeyValues": {
- "property1": "string",
- "property2": "string"
}, - "wasManualOverride": true,
- "createdAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "version": 0
}
], - "nextCursor": "string"
}| groupId required | string |
{- "id": "string",
- "sourceOrderIds": [
- "string"
], - "profileId": "string",
- "status": "Pending",
- "groupingKeyValues": {
- "property1": "string",
- "property2": "string"
}, - "wasManualOverride": true,
- "createdAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "version": 0
}Returns member orders to their ungrouped state.
| groupId required | string |
{- "id": "string",
- "sourceOrderIds": [
- "string"
], - "profileId": "string",
- "status": "Pending",
- "groupingKeyValues": {
- "property1": "string",
- "property2": "string"
}, - "wasManualOverride": true,
- "createdAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "version": 0
}Runs packing optimization on all orders in the group. Items from different orders can be mixed within containers unless the profile disallows it.
| groupId required | string |
Array of objects (ContainerDto) | |
Array of objects (DynamicContainerDto) | |
Array of objects (PalletDto) | |
Array of objects (EquipmentDto) | |
| algorithm | string <= 64 characters |
| loadingMode | string <= 64 characters |
| allowMultipleBoxes | boolean Default: true |
| allowPalletStacking | boolean Default: false |
{- "containers": [
- {
- "id": "string",
- "length": 0.1,
- "width": 0.1,
- "height": 0.1,
- "maxWeight": 200000,
- "cost": 0.1,
- "carrierService": "string",
- "flatRateCost": 0.1
}
], - "dynamicContainers": [
- {
- "id": "string",
- "minLength": 0.1,
- "minWidth": 0.1,
- "minHeight": 0.1,
- "maxLength": 0.1,
- "maxWidth": 0.1,
- "maxHeight": 0.1,
- "maxWeight": 200000
}
], - "pallets": [
- {
- "id": "string",
- "length": 0.1,
- "width": 0.1,
- "maxHeight": 0.1,
- "palletWeight": 0.1,
- "maxWeight": 200000,
- "platformHeight": 0.1,
- "maxStackWeight": 200000
}
], - "equipment": [
- {
- "id": "string",
- "length": 0.1,
- "width": 0.1,
- "height": 0.1,
- "tareWeight": 0.1,
- "maxWeight": 200000,
- "equipmentType": "DryVan"
}
], - "algorithm": "string",
- "loadingMode": "string",
- "allowMultipleBoxes": true,
- "allowPalletStacking": false
}{- "packResult": {
- "algorithm": "string",
- "results": [
- {
- "containerId": "string",
- "boxIndex": 0,
- "containerDimensions": {
- "length": 0.1,
- "width": 0.1,
- "height": 0.1
}, - "packedItems": [
- {
- "id": "string",
- "coordinate": {
- "x": 0.1,
- "y": 0.1,
- "z": 0.1
}, - "packedDimensions": {
- "length": 0.1,
- "width": 0.1,
- "height": 0.1
}, - "weight": 0.1,
- "tags": [
- "string"
], - "nestedItems": [
- { }
], - "rollInfo": {
- "sourceItemId": "string",
- "rollIndex": 0,
- "totalRolls": 0,
- "linearQuantityOnRoll": 0.1,
- "outerDiameter": 0.1
}, - "sourceOrderId": "string",
- "sourceLineNumber": 0
}
], - "unpackedItems": [
- {
- "id": "string",
- "dimensions": {
- "length": 0.1,
- "width": 0.1,
- "height": 0.1
}, - "weight": 0.1,
- "rollInfo": {
- "sourceItemId": "string",
- "rollIndex": 0,
- "totalRolls": 0,
- "linearQuantityOnRoll": 0.1,
- "outerDiameter": 0.1
}, - "sourceOrderId": "string",
- "sourceLineNumber": 0
}
], - "volumeUtilizationPercent": 0.1,
- "totalWeight": 0.1,
- "sourceOrderIds": [
- "string"
], - "costBreakdown": {
- "shippingCost": 0,
- "boxCost": 0,
- "totalCost": 0,
- "billableWeight": 0.1,
- "dimWeight": 0.1,
- "actualWeight": 0.1,
- "carrier": "string",
- "service": "string",
- "zone": 0
}
}
], - "palletResults": {
- "pallets": [
- {
- "palletId": "string",
- "palletIndex": 0,
- "palletDimensions": {
- "length": 0.1,
- "width": 0.1,
- "height": 0.1
}, - "cartons": [
- {
- "cartonId": "string",
- "coordinate": {
- "x": 0.1,
- "y": 0.1,
- "z": 0.1
}, - "packedDimensions": {
- "length": 0.1,
- "width": 0.1,
- "height": 0.1
}, - "weight": 0.1
}
], - "volumeUtilizationPercent": 0.1,
- "totalWeight": 0.1,
- "palletWeight": 0.1,
- "platformHeight": 0.1
}
], - "unpalletizedCartons": [
- {
- "cartonId": "string",
- "dimensions": {
- "length": 0.1,
- "width": 0.1,
- "height": 0.1
}, - "weight": 0.1
}
]
}, - "trailerResults": {
- "trailers": [
- {
- "trailerId": "string",
- "trailerIndex": 0,
- "equipmentType": "string",
- "trailerDimensions": {
- "length": 0.1,
- "width": 0.1,
- "height": 0.1
}, - "pallets": [
- {
- "palletId": "string",
- "coordinate": {
- "x": 0.1,
- "y": 0.1,
- "z": 0.1
}, - "palletDimensions": {
- "length": 0.1,
- "width": 0.1,
- "height": 0.1
}, - "weight": 0.1,
- "stackInfo": {
- "bottomPalletId": "string",
- "topPalletId": "string",
- "bottomHeight": 0.1,
- "topHeight": 0.1
}
}
], - "floorLoadedCartons": [
- {
- "cartonId": "string",
- "coordinate": {
- "x": 0.1,
- "y": 0.1,
- "z": 0.1
}, - "packedDimensions": {
- "length": 0.1,
- "width": 0.1,
- "height": 0.1
}, - "weight": 0.1
}
], - "volumeUtilizationPercent": 0.1,
- "totalWeight": 0.1,
- "tareWeight": 0.1
}
], - "unloadedPallets": [
- {
- "palletId": "string",
- "dimensions": {
- "length": 0.1,
- "width": 0.1,
- "height": 0.1
}, - "weight": 0.1
}
], - "unloadedCartons": [
- {
- "cartonId": "string",
- "dimensions": {
- "length": 0.1,
- "width": 0.1,
- "height": 0.1
}, - "weight": 0.1
}
]
}, - "firedRules": [
- {
- "ruleId": "string",
- "ruleName": "string",
- "ruleType": "string",
- "summary": "string"
}
]
}, - "orderMapping": {
- "property1": [
- "string"
], - "property2": [
- "string"
]
}, - "groupId": "string",
- "groupStatus": "string"
}| limit | integer [ 1 .. 100 ] Default: 20 Maximum number of items to return |
| cursor | string Opaque pagination cursor from a previous response's |
{- "items": [
- {
- "id": "string",
- "name": "string",
- "description": "string",
- "groupingKeys": [
- "string"
], - "consolidationLevel": "string",
- "allowMixedOrdersInCarton": true,
- "constraints": { },
- "version": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "nextCursor": "string"
}| name required | string <= 256 characters |
| description | string <= 2000 characters |
| groupingKeys required | Array of strings non-empty Fields to group by (e.g. "shipTo.postalCode", "serviceLevel") |
| consolidationLevel | string Default: "Box" Enum: "Box" "Pallet" |
| allowMixedOrdersInCarton | boolean Default: false |
object |
{- "name": "Same-destination consolidation",
- "groupingKeys": [
- "shipTo.postalCode",
- "serviceLevel"
], - "consolidationLevel": "Box",
- "allowMixedOrdersInCarton": true
}{- "id": "string",
- "name": "string",
- "description": "string",
- "groupingKeys": [
- "string"
], - "consolidationLevel": "string",
- "allowMixedOrdersInCarton": true,
- "constraints": { },
- "version": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}| id required | string |
{- "id": "string",
- "name": "string",
- "description": "string",
- "groupingKeys": [
- "string"
], - "consolidationLevel": "string",
- "allowMixedOrdersInCarton": true,
- "constraints": { },
- "version": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}| id required | string |
| name required | string <= 256 characters |
| description | string <= 2000 characters |
| groupingKeys required | Array of strings non-empty Fields to group by (e.g. "shipTo.postalCode", "serviceLevel") |
| consolidationLevel | string Default: "Box" Enum: "Box" "Pallet" |
| allowMixedOrdersInCarton | boolean Default: false |
object |
{- "name": "string",
- "description": "string",
- "groupingKeys": [
- "string"
], - "consolidationLevel": "Box",
- "allowMixedOrdersInCarton": false,
- "constraints": {
- "maxWeightPerGroup": 0.1,
- "maxItemsPerGroup": 0,
- "maxOrdersPerGroup": 0
}
}{- "id": "string",
- "name": "string",
- "description": "string",
- "groupingKeys": [
- "string"
], - "consolidationLevel": "string",
- "allowMixedOrdersInCarton": true,
- "constraints": { },
- "version": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}| id required | string |
{- "title": "Unauthorized",
- "status": 401,
- "detail": "Invalid or missing authentication credentials.",
- "instance": "0HN9A1B2C3D4:00000002",
}Analyzes orders and warehouse layout to generate optimized pick waves that minimize travel distance using TSP-based routing.
required | Array of objects non-empty |
object |
{- "orders": [
- {
- "orderId": "ORD-001",
- "priority": 1,
- "items": [
- {
- "sku": "WIDGET-001",
- "quantity": 3
}, - {
- "sku": "GADGET-002",
- "quantity": 1
}
]
}
], - "config": {
- "maxPicksPerWave": 200,
- "maxOrdersPerWave": 50
}
}{- "warehouseId": "string",
- "waves": [
- {
- "waveId": "string",
- "orders": [
- "string"
], - "picks": [
- {
- "sku": "string",
- "location": "string",
- "zone": "string",
- "quantity": 0
}
], - "zones": [
- "string"
], - "metrics": {
- "totalPicks": 0,
- "totalDistance": 0.1,
- "naiveDistance": 0.1,
- "improvementPercent": 0.1,
- "estimatedTimeSeconds": 0.1
}
}
], - "summary": {
- "totalWaves": 0,
- "totalOrders": 0,
- "totalPicks": 0,
- "totalDistance": 0.1,
- "totalNaiveDistance": 0.1,
- "overallImprovementPercent": 0.1,
- "totalEstimatedTimeSeconds": 0.1
}
}Evaluates parcel vs LTL vs FTL shipping strategies for the given orders and returns options with cost breakdowns.
This is the pipeline path. Unlike POST /api/v1/pack (which is
a single-stage carton-only primitive), fulfillment plans load the
organization's PipelineConfig and apply packing rules at each
container level (carton → pallet → equipment). Pallet-level and
equipment-level rules only fire here.
Orders whose total unit count is at or below the tier-1 threshold
(SSM /fractalpack/compute/tier-1-max-units, currently 1,000) return
201 Created with the full plan inline.
Orders above the threshold return 202 Accepted immediately with a
planId and a statusUrl. Poll
GET /api/v1/fulfillment-plans/{planId} every 2 seconds until
status is a terminal value (ready, failed, expired).
When request-level overrides (Load Planner toggles or
containerLevels) narrow the effective level set below what the
dispatched pipeline defines, the plan records a
plan.levels_narrowed_by_override warning in FulfillmentPlan.warnings.
Check this field after the plan reaches ready status.
| orderIds required | Array of strings non-empty |
| packingConfig | object Packing configuration overrides |
| parcelCarriers | Array of strings Parcel carrier IDs to rate (defaults to all connected) |
| ltlCarriers | Array of strings LTL carrier IDs to rate (defaults to all connected) |
| ruleIds | Array of strings Optional whitelist of rule IDs to apply when evaluating this plan.
When omitted, every globally Use |
{- "orderIds": [
- "ord_abc123"
], - "parcelCarriers": [
- "ups",
- "fedex"
]
}{- "id": "string",
- "orderIds": [
- "string"
], - "status": "pending",
- "options": {
- "property1": { },
- "property2": { }
}, - "error": "string",
- "estimatedDurationSeconds": 90,
- "selectedOptionKey": "string",
- "shipmentIds": [
- "string"
], - "warnings": [
- {
- "code": "plan.levels_narrowed_by_override",
- "message": "string",
- "pipelineConfigId": "string",
- "pipelineLevels": [
- "string"
], - "effectiveLevels": [
- "string"
], - "narrowedLevels": [
- "string"
], - "source": "containerLevels"
}
], - "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}| status | string Filter by plan status |
| limit | integer [ 1 .. 100 ] Default: 20 Maximum number of items to return |
| cursor | string Opaque pagination cursor from a previous response's |
{- "items": [
- {
- "id": "string",
- "orderIds": [
- "string"
], - "status": "pending",
- "options": {
- "property1": { },
- "property2": { }
}, - "error": "string",
- "estimatedDurationSeconds": 90,
- "selectedOptionKey": "string",
- "shipmentIds": [
- "string"
], - "warnings": [
- {
- "code": "plan.levels_narrowed_by_override",
- "message": "string",
- "pipelineConfigId": "string",
- "pipelineLevels": [
- "string"
], - "effectiveLevels": [
- "string"
], - "narrowedLevels": [
- "string"
], - "source": "containerLevels"
}
], - "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "nextCursor": "string"
}| planId required | string |
{- "id": "string",
- "orderIds": [
- "string"
], - "status": "pending",
- "options": {
- "property1": { },
- "property2": { }
}, - "error": "string",
- "estimatedDurationSeconds": 90,
- "selectedOptionKey": "string",
- "shipmentIds": [
- "string"
], - "warnings": [
- {
- "code": "plan.levels_narrowed_by_override",
- "message": "string",
- "pipelineConfigId": "string",
- "pipelineLevels": [
- "string"
], - "effectiveLevels": [
- "string"
], - "narrowedLevels": [
- "string"
], - "source": "containerLevels"
}
], - "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}| planId required | string |
{- "id": "string",
- "orderIds": [
- "string"
], - "status": "pending",
- "options": {
- "property1": { },
- "property2": { }
}, - "error": "string",
- "estimatedDurationSeconds": 90,
- "selectedOptionKey": "string",
- "shipmentIds": [
- "string"
], - "warnings": [
- {
- "code": "plan.levels_narrowed_by_override",
- "message": "string",
- "pipelineConfigId": "string",
- "pipelineLevels": [
- "string"
], - "effectiveLevels": [
- "string"
], - "narrowedLevels": [
- "string"
], - "source": "containerLevels"
}
], - "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}Select an option (e.g. "parcel" or "ltl") from a ready plan. This creates the corresponding shipment(s).
| planId required | string |
| optionKey required | string Option key to select (e.g. "parcel", "ltl") |
{- "optionKey": "parcel"
}{- "id": "string",
- "orderIds": [
- "string"
], - "status": "pending",
- "options": {
- "property1": { },
- "property2": { }
}, - "error": "string",
- "estimatedDurationSeconds": 90,
- "selectedOptionKey": "string",
- "shipmentIds": [
- "string"
], - "warnings": [
- {
- "code": "plan.levels_narrowed_by_override",
- "message": "string",
- "pipelineConfigId": "string",
- "pipelineLevels": [
- "string"
], - "effectiveLevels": [
- "string"
], - "narrowedLevels": [
- "string"
], - "source": "containerLevels"
}
], - "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}[- {
- "connectorType": "string",
- "displayName": "string",
- "enabled": true,
- "tenantUrl": "string",
- "fieldMappings": {
- "itemMappings": [
- {
- "sourceField": "string",
- "targetField": "string",
- "transform": "string"
}
], - "deliveryMappings": [
- {
- "sourceField": "string",
- "targetField": "string",
- "transform": "string"
}
]
}, - "settings": {
- "defaultAlgorithm": "string",
- "enableCostOptimization": true,
- "preferredDimensionUnit": "string",
- "preferredWeightUnit": "string",
- "webhookSecret": "string"
}, - "status": {
- "lastSyncAt": "2019-08-24T14:15:22Z",
- "lastSyncStatus": "string",
- "lastSyncItemCount": 0,
- "lastError": "string",
- "lastWebhookAt": "2019-08-24T14:15:22Z",
- "lastWebhookStatus": "string"
}, - "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]| connectorType required | string Example: sap-s4hana |
{- "connectorType": "string",
- "displayName": "string",
- "enabled": true,
- "tenantUrl": "string",
- "fieldMappings": {
- "itemMappings": [
- {
- "sourceField": "string",
- "targetField": "string",
- "transform": "string"
}
], - "deliveryMappings": [
- {
- "sourceField": "string",
- "targetField": "string",
- "transform": "string"
}
]
}, - "settings": {
- "defaultAlgorithm": "string",
- "enableCostOptimization": true,
- "preferredDimensionUnit": "string",
- "preferredWeightUnit": "string",
- "webhookSecret": "string"
}, - "status": {
- "lastSyncAt": "2019-08-24T14:15:22Z",
- "lastSyncStatus": "string",
- "lastSyncItemCount": 0,
- "lastError": "string",
- "lastWebhookAt": "2019-08-24T14:15:22Z",
- "lastWebhookStatus": "string"
}, - "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}Requires admin role.
| connectorType required | string |
| tenantUrl | string |
| enabled | boolean |
object Connector-specific credentials (stored encrypted) | |
object (IntegrationSettings) | |
object (IntegrationFieldMappings) |
{- "enabled": true,
- "credentials": {
- "clientId": "sap-client-id",
- "clientSecret": "sap-client-secret"
}, - "settings": {
- "defaultAlgorithm": "ebAfit"
}
}{- "connectorType": "string",
- "displayName": "string",
- "enabled": true,
- "tenantUrl": "string",
- "fieldMappings": {
- "itemMappings": [
- {
- "sourceField": "string",
- "targetField": "string",
- "transform": "string"
}
], - "deliveryMappings": [
- {
- "sourceField": "string",
- "targetField": "string",
- "transform": "string"
}
]
}, - "settings": {
- "defaultAlgorithm": "string",
- "enableCostOptimization": true,
- "preferredDimensionUnit": "string",
- "preferredWeightUnit": "string",
- "webhookSecret": "string"
}, - "status": {
- "lastSyncAt": "2019-08-24T14:15:22Z",
- "lastSyncStatus": "string",
- "lastSyncItemCount": 0,
- "lastError": "string",
- "lastWebhookAt": "2019-08-24T14:15:22Z",
- "lastWebhookStatus": "string"
}, - "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}Requires admin role.
| connectorType required | string |
{- "title": "Unauthorized",
- "status": 401,
- "detail": "Invalid or missing authentication credentials.",
- "instance": "0HN9A1B2C3D4:00000002",
}Pulls items and/or orders from the connected host system.
| connectorType required | string |
{- "success": true,
- "itemsSynced": 0,
- "itemsSkipped": 0,
- "warnings": [
- "string"
], - "errors": [
- "string"
]
}| connectorType required | string |
{- "itemMappings": [
- {
- "sourceField": "string",
- "targetField": "string",
- "transform": "string"
}
], - "deliveryMappings": [
- {
- "sourceField": "string",
- "targetField": "string",
- "transform": "string"
}
]
}Requires admin role.
| connectorType required | string |
Array of objects (FieldMappingRule) | |
Array of objects (FieldMappingRule) |
{- "itemMappings": [
- {
- "sourceField": "string",
- "targetField": "string",
- "transform": "string"
}
], - "deliveryMappings": [
- {
- "sourceField": "string",
- "targetField": "string",
- "transform": "string"
}
]
}{- "itemMappings": [
- {
- "sourceField": "string",
- "targetField": "string",
- "transform": "string"
}
], - "deliveryMappings": [
- {
- "sourceField": "string",
- "targetField": "string",
- "transform": "string"
}
]
}Requires admin role.
| connectorType required | string |
{- "itemMappings": [
- {
- "sourceField": "string",
- "targetField": "string",
- "transform": "string"
}
], - "deliveryMappings": [
- {
- "sourceField": "string",
- "targetField": "string",
- "transform": "string"
}
]
}| connectorType required | string |
{- "itemMappings": [
- {
- "sourceField": "string",
- "targetField": "string",
- "transform": "string"
}
], - "deliveryMappings": [
- {
- "sourceField": "string",
- "targetField": "string",
- "transform": "string"
}
]
}Unauthenticated endpoint for receiving push notifications from
connected host systems. Validated via HMAC signature in the
X-Webhook-Signature header.
| connectorType required | string |
| orgId required | string |
| X-Webhook-Signature | string HMAC-SHA256 signature of the request body |
{ }{- "success": true,
- "itemsSynced": 0,
- "itemsSkipped": 0,
- "warnings": [
- "string"
], - "errors": [
- "string"
]
}{- "algorithms": [
- {
- "name": "fpLayer",
- "displayName": "FP Layer"
}, - {
- "name": "liquidFill",
- "displayName": "Liquid Fill"
}, - {
- "name": "fpFast",
- "displayName": "FP Fast"
}
], - "defaultAlgorithm": "fpFast"
}| label | string <= 256 characters Human-readable label for the key |
| expiresInDays | integer Expiration in days (null = no expiration) |
{- "label": "Production integration",
- "expiresInDays": 365
}{- "keyId": "key_abc123",
- "label": "Production integration",
- "apiKey": "fpk_live_abc123def456...",
- "keyPrefix": "fpk_live_abc",
- "isActive": true,
- "createdAt": "2026-04-01T00:00:00Z",
- "expiresAt": "2027-04-01T00:00:00Z",
- "mode": "live"
}Returns all API keys for the organization. The full key value is never returned after creation, only the prefix.
[- {
- "keyId": "string",
- "label": "string",
- "apiKey": "string",
- "keyPrefix": "string",
- "isActive": true,
- "createdAt": "2019-08-24T14:15:22Z",
- "expiresAt": "2019-08-24T14:15:22Z",
- "mode": "test"
}
]{- "title": "Unauthorized",
- "status": 401,
- "detail": "Invalid or missing authentication credentials.",
- "instance": "0HN9A1B2C3D4:00000002",
}Requires admin role.
| email required | string <email> <= 256 characters |
| temporaryPassword required | string [ 1 .. 256 ] characters |
| isAdmin | boolean Default: false |
{- "email": "newuser@example.com",
- "temporaryPassword": "TempPass123!",
- "isAdmin": false
}{- "username": "string",
- "email": "string",
- "nickname": "string",
- "status": "string",
- "enabled": true,
- "isAdmin": true,
- "createdAt": "2019-08-24T14:15:22Z"
}Requires admin role.
| username required | string |
{- "username": "string",
- "email": "string",
- "nickname": "string",
- "status": "string",
- "enabled": true,
- "isAdmin": true,
- "createdAt": "2019-08-24T14:15:22Z"
}Requires admin role.
| username required | string |
| nickname | string <= 256 characters |
| isAdmin | boolean |
{- "nickname": "John",
- "isAdmin": true
}{- "username": "string",
- "email": "string",
- "nickname": "string",
- "status": "string",
- "enabled": true,
- "isAdmin": true,
- "createdAt": "2019-08-24T14:15:22Z"
}Requires admin role.
| username required | string |
{- "title": "Unauthorized",
- "status": 401,
- "detail": "Invalid or missing authentication credentials.",
- "instance": "0HN9A1B2C3D4:00000002",
}Requires admin role.
| username required | string |
{- "title": "Unauthorized",
- "status": 401,
- "detail": "Invalid or missing authentication credentials.",
- "instance": "0HN9A1B2C3D4:00000002",
}Requires admin role.
| username required | string |
{- "title": "Unauthorized",
- "status": 401,
- "detail": "Invalid or missing authentication credentials.",
- "instance": "0HN9A1B2C3D4:00000002",
}Sends a password reset email. Requires admin role.
| username required | string |
{- "title": "Unauthorized",
- "status": 401,
- "detail": "Invalid or missing authentication credentials.",
- "instance": "0HN9A1B2C3D4:00000002",
}| days | integer Default: 30 Number of days to include |
{- "totalRequests": 12450,
- "totalItemsPacked": 89300,
- "totalContainersUsed": 4200,
- "dailyBreakdown": [
- {
- "date": "2026-04-02",
- "requests": 450,
- "itemsPacked": 3200,
- "containersUsed": 150,
- "byCategory": {
- "pack": 400,
- "batch": 50
}
}
]
}Packing policy and rule authoring — list, create, update, and lint policies; run the policy simulator
Returns all packing policies for the authenticated organization, including disabled ones.
[- {
- "id": "string",
- "name": "string",
- "enabled": true,
- "selector": {
- "customers": [
- "string"
], - "modes": [
- "parcel"
], - "sites": [
- "string"
]
}, - "ruleIds": [
- "string"
], - "version": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "createdBy": "string"
}
]Creates a packing policy for the authenticated organization.
selector.customers and selector.sites each accept at most 100
entries. ruleIds accepts at most 500 entries.
| name | string <= 256 characters Human-readable policy name |
| enabled | boolean Default: true When |
object (PolicySelector) Axis-based selector. A policy matches a request when ALL provided axes match. Omit an axis to match all values on that axis. | |
| ruleIds | Array of strings <= 500 items Ordered list of rule IDs this policy contributes. At most 500
entries. Only rules that are globally |
{- "name": "LTL Rules",
- "enabled": true,
- "selector": {
- "modes": [
- "ltl"
]
}, - "ruleIds": [
- "rule-pallet-cap"
]
}{- "id": "string",
- "name": "string",
- "enabled": true,
- "selector": {
- "customers": [
- "string"
], - "modes": [
- "parcel"
], - "sites": [
- "string"
]
}, - "ruleIds": [
- "string"
], - "version": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "createdBy": "string"
}{- "id": "string",
- "name": "string",
- "enabled": true,
- "selector": {
- "customers": [
- "string"
], - "modes": [
- "parcel"
], - "sites": [
- "string"
]
}, - "ruleIds": [
- "string"
], - "version": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "createdBy": "string"
}Optimistic-concurrency update. Include the current version in the
body. If the stored version differs, the response is 409 with the
current policy in the body so you can refresh and retry.
| id required | string |
| name | string <= 256 characters Human-readable policy name |
| enabled | boolean Default: true When |
object (PolicySelector) Axis-based selector. A policy matches a request when ALL provided axes match. Omit an axis to match all values on that axis. | |
| ruleIds | Array of strings <= 500 items Ordered list of rule IDs this policy contributes. At most 500
entries. Only rules that are globally |
{- "name": "string",
- "enabled": true,
- "selector": {
- "customers": [
- "string"
], - "modes": [
- "parcel"
], - "sites": [
- "string"
]
}, - "ruleIds": [
- "string"
]
}{- "id": "string",
- "name": "string",
- "enabled": true,
- "selector": {
- "customers": [
- "string"
], - "modes": [
- "parcel"
], - "sites": [
- "string"
]
}, - "ruleIds": [
- "string"
], - "version": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "createdBy": "string"
}Soft-deletes the policy by setting enabled: false. The policy
remains queryable for audit purposes. To permanently remove a rule
reference, update the policy's ruleIds list instead.
| id required | string |
{- "title": "Unauthorized",
- "status": 401,
- "detail": "Invalid or missing authentication credentials.",
- "instance": "0HN9A1B2C3D4:00000002",
}Runs the full policy pipeline against a sample request and returns the activated rule set plus three diagnostic columns, without persisting anything or affecting live traffic metrics.
Column 1 — Pipeline: which PipelineConfig was resolved and how
(resolvedVia values: orgPointer, fallbackOldest, autoCreated).
Column 2 — Policies: every enabled policy, whether it matched,
and — for non-matching policies — which selector axes failed
(customers, modes, sites).
Column 3 — Per-level breakdown: for each container level in the
resolved pipeline, which rules fired and which were skipped, with
skip reasons (e.g. ApplicableLevels=[pallet]).
When no policies are enabled, the response includes fallbackBanner: "all tenant rules activate (fallback)" — making fallback mode
explicit.
required | object (PackRequest) Pack request to simulate against |
object Optional context hints for the simulation |
{- "request": {
- "items": [
- {
- "id": "SKU-A",
- "length": 10,
- "width": 8,
- "height": 6,
- "weight": 2,
- "quantity": 1
}
]
}, - "hints": {
- "shippingMode": "ltl"
}
}{- "matchedPolicyIds": [
- "string"
], - "activatedRuleIds": [
- "string"
], - "diagnostics": [
- {
- "code": "string",
- "message": "string",
- "policyIds": [
- "string"
]
}
], - "fingerprint": "string",
- "shortCircuited": true,
- "shortCircuitReason": "no_policies_registered",
- "fallbackBanner": "string",
- "pipeline": {
- "configId": "string",
- "name": "string",
- "levels": [
- "string"
], - "resolvedVia": "orgPointer"
}, - "policies": [
- {
- "policyId": "string",
- "name": "string",
- "enabled": true,
- "matched": true,
- "failedAxes": [
- "string"
]
}
], - "levels": {
- "property1": {
- "matchedPolicyIds": [
- "string"
], - "activatedRuleIds": [
- "string"
], - "diagnostics": [
- {
- "code": "string",
- "message": "string",
- "policyIds": [
- "string"
]
}
], - "fingerprint": "string",
- "skippedRules": [
- {
- "ruleId": "string",
- "reason": "string"
}
]
}, - "property2": {
- "matchedPolicyIds": [
- "string"
], - "activatedRuleIds": [
- "string"
], - "diagnostics": [
- {
- "code": "string",
- "message": "string",
- "policyIds": [
- "string"
]
}
], - "fingerprint": "string",
- "skippedRules": [
- {
- "ruleId": "string",
- "reason": "string"
}
]
}
}
}Scans the organization's packing policies, rules, and pipeline configuration for dead config, stranded rules, and other issues. Read-only — no side effects.
Pass ?pipelineConfigId={id} to scope level-membership findings to
a single named pipeline. Without this parameter, findings are
computed against the union of all org pipelines and the default
pipeline. Org-level signals (lint.zero_enabled_policies_fallback,
lint.policy_references_missing_rule, etc.) are unaffected by the
filter.
lint.rule_level_not_in_any_pipeline is scope-dependent: without
the filter it means the level is absent from every pipeline in the org;
with ?pipelineConfigId= it means the level is absent from that
specific pipeline (it may exist in other pipelines). The finding message
names the scope so the distinction is machine-readable.
An unknown or cross-org pipelineConfigId returns 404 with error
code pipeline.not_found.
Changed in PR6 (2026-06-10): ?pipelineConfigId is now wired;
previously the parameter was accepted but had no effect.
| pipelineConfigId | string Scope level-membership findings to this named pipeline config. Must belong to the authenticated organization. |
{- "findings": [
- {
- "code": "lint.rule_level_not_in_any_pipeline",
- "severity": "error",
- "ruleId": "rule-innerpack-cap",
- "levels": [
- "innerpack"
], - "message": "Rule 'rule-innerpack-cap' has applicableLevels=[innerpack], which does not exist in any org pipeline."
}
], - "summary": {
- "error": 1,
- "warning": 0,
- "info": 0
}
}Pipeline configuration lifecycle — named configs, create-from-template, set default, and delete
Returns the organization's resolved default PipelineConfig. If no
configs exist, one is created automatically with the standard
defaults ([carton, pallet, equipment], algorithm fpFast).
This is the legacy single-config endpoint. Use
GET /api/v1/settings/pipeline-configs to list all named configs
with the provenance-true default badge.
{- "id": "string",
- "orgId": "string",
- "name": "Default",
- "containerLevels": [
- {
- "level": "carton",
- "containerIds": [
- "string"
]
}
], - "algorithm": "fpFast",
- "assignmentStrategy": "greedy",
- "allowMultipleBoxes": true,
- "useCasePacks": false,
- "loadingMode": "string",
- "allowPalletStacking": false,
- "respectTiHi": true,
- "timeBudgetSeconds": 0,
- "liquidFillRate": 0.1,
- "version": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}Edits the default pipeline config. Requires the admin role within
your organization (API key returns 403).
Include the current version for optimistic concurrency. If the
update would orphan rules (remove a level that existing rules target),
the response is 409 with code pipeline.orphans_rules listing
the affected rules. To proceed, re-send the request with
confirmOrphanedRuleDisable: true in the body — orphaned rules are
disabled with an audit note.
This is the legacy single-config endpoint. Use
PATCH /api/v1/settings/pipeline-configs/{id} to edit a named
config by ID.
| version required | integer Current stored version; request is rejected if it differs |
| name | string |
Array of objects (LevelConfig) Ordered level list. Only | |
| algorithm | string |
| assignmentStrategy | string |
| allowMultipleBoxes | boolean |
| useCasePacks | boolean |
| loadingMode | string |
| allowPalletStacking | boolean |
| respectTiHi | boolean |
| timeBudgetSeconds | integer |
| liquidFillRate | number <double> |
| confirmOrphanedRuleDisable | boolean Default: false Set to |
{- "version": 0,
- "name": "string",
- "containerLevels": [
- {
- "level": "carton",
- "containerIds": [
- "string"
]
}
], - "algorithm": "string",
- "assignmentStrategy": "string",
- "allowMultipleBoxes": true,
- "useCasePacks": true,
- "loadingMode": "string",
- "allowPalletStacking": true,
- "respectTiHi": true,
- "timeBudgetSeconds": 0,
- "liquidFillRate": 0.1,
- "confirmOrphanedRuleDisable": false
}{- "id": "string",
- "name": "string",
- "containerLevels": [
- {
- "level": "carton",
- "containerIds": [
- "string"
]
}
], - "algorithm": "string",
- "assignmentStrategy": "string",
- "version": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "disabledRuleIds": [
- "string"
], - "warnings": [
- "string"
], - "disableFailures": [
- "string"
]
}Returns all named pipeline configs for the organization, plus the ID
of the current default. The default badge is provenance-true: it
reflects org.DefaultPipelineConfigId, not sort order.
This endpoint is read-only. It does not auto-create a config
when the list is empty — the legacy GET /api/v1/settings/pipeline-config
retains that behavior.
Added in PR6 (2026-06-10).
{- "defaultPipelineConfigId": "abc123",
- "configs": [
- {
- "id": "abc123",
- "name": "Default",
- "containerLevels": [
- {
- "level": "carton"
}, - {
- "level": "pallet"
}, - {
- "level": "equipment"
}
], - "algorithm": "fpFast",
- "assignmentStrategy": "greedy",
- "version": 1
}, - {
- "id": "def456",
- "name": "Parcel Only",
- "containerLevels": [
- {
- "level": "carton"
}
], - "algorithm": "fpFast",
- "assignmentStrategy": "greedy",
- "version": 1
}
]
}Creates a named pipeline config for the organization. Requires the
admin role (API key returns 403).
Pass either template (one of parcel-only, palletize, full)
or containerLevels — not both. Template definitions:
| Template | Levels |
|---|---|
parcel-only |
[carton] |
palletize |
[carton, pallet] |
full |
[carton, pallet, equipment] |
The supported vocabulary is carton, pallet, and equipment.
Submitting any other level value — including innerpack — returns
400 with code pipeline.unsupported_level.
Added in PR6 (2026-06-10).
| name | string Display name for the new config |
| template | string Enum: "parcel-only" "palletize" "full" Built-in topology template.
|
Array of objects (LevelConfig) Custom ordered level list (bottom-up). Each entry is |
{- "name": "Parcel Only",
- "template": "parcel-only"
}{- "id": "string",
- "orgId": "string",
- "name": "Default",
- "containerLevels": [
- {
- "level": "carton",
- "containerIds": [
- "string"
]
}
], - "algorithm": "fpFast",
- "assignmentStrategy": "greedy",
- "allowMultipleBoxes": true,
- "useCasePacks": false,
- "loadingMode": "string",
- "allowPalletStacking": false,
- "respectTiHi": true,
- "timeBudgetSeconds": 0,
- "liquidFillRate": 0.1,
- "version": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}Edits a named pipeline config. Requires the admin role (API key
returns 403).
Include the current version for optimistic concurrency. Level-removing
edits that would orphan rules return 409 with code
pipeline.orphans_rules; re-send with confirmOrphanedRuleDisable: true
in the body to proceed.
Added in PR6 (2026-06-10).
| id required | string |
| version required | integer Current stored version; request is rejected if it differs |
| name | string |
Array of objects (LevelConfig) Ordered level list. Only | |
| algorithm | string |
| assignmentStrategy | string |
| allowMultipleBoxes | boolean |
| useCasePacks | boolean |
| loadingMode | string |
| allowPalletStacking | boolean |
| respectTiHi | boolean |
| timeBudgetSeconds | integer |
| liquidFillRate | number <double> |
| confirmOrphanedRuleDisable | boolean Default: false Set to |
{- "version": 0,
- "name": "string",
- "containerLevels": [
- {
- "level": "carton",
- "containerIds": [
- "string"
]
}
], - "algorithm": "string",
- "assignmentStrategy": "string",
- "allowMultipleBoxes": true,
- "useCasePacks": true,
- "loadingMode": "string",
- "allowPalletStacking": true,
- "respectTiHi": true,
- "timeBudgetSeconds": 0,
- "liquidFillRate": 0.1,
- "confirmOrphanedRuleDisable": false
}{- "id": "string",
- "name": "string",
- "containerLevels": [
- {
- "level": "carton",
- "containerIds": [
- "string"
]
}
], - "algorithm": "string",
- "assignmentStrategy": "string",
- "version": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "disabledRuleIds": [
- "string"
], - "warnings": [
- "string"
], - "disableFailures": [
- "string"
]
}Deletes a named pipeline config. Requires the admin role (API key
returns 403).
Blocked when the config is the current default — set another
config as default first (POST .../set-default). Returns 409
with code pipeline.delete_default_blocked.
Blocked when the config is the only config for the org — it is
necessarily the fallback default. Returns 409 with
pipeline.delete_default_blocked.
When deletion would orphan rules (the config's levels are not
covered by any remaining pipeline), the response is 409 with code
pipeline.delete_orphans_rules listing the affected rules. Re-send
with ?confirmOrphanedRuleDisable=true to proceed — fully orphaned
rules are disabled with an audit note; partially orphaned rules
(covered by another pipeline) receive a warning.
Added in PR6 (2026-06-10).
| id required | string |
| confirmOrphanedRuleDisable | boolean Pass |
{- "deleted": "string",
- "disabledRuleIds": [
- "string"
], - "warnings": [
- null
], - "disableFailures": [
- "string"
]
}Sets the organization's explicit default pipeline. Requires the admin
role (API key returns 403). Idempotent — setting the already-default
config returns 200 with no change.
After this call, GET /api/v1/packing-policies/simulate will show
resolvedVia: "orgPointer" and the chosen config's levels.
The target config must exist and belong to the authenticated org.
A nonexistent or cross-org ID returns 404 with code
pipeline.not_found.
Added in PR6 (2026-06-10).
| id required | string |
{- "defaultPipelineConfigId": "def456"
}