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 runs the 3D bin-packing algorithm against the
containers you supply and returns a direct result. It does NOT load your
organization's PipelineConfig. The response includes results
(carton-level), palletResults, trailerResults, firedRules,
containerTree, and assignmentStrategy depending on which container
levels you supply. For large item quantities, /pack may return
202 Accepted with a job ID — poll GET /api/v1/jobs/{jobId} to
retrieve the result.
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 policy-governed multi-level packing or
cost comparison across shipping modes.
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.
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.
Async execution for large requests: requests with a large item
quantity may return 202 Accepted instead of 200 OK. The 202
body includes a jobId and statusUrl. Poll
GET /api/v1/jobs/{jobId} until status is completed, then read
the full PackResponse from the result field. Clients that only
handle 200 will silently miss packing results on large requests.
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" "liquidFill" Packing algorithm: "fpFast" (default), "fpLayer", "liquidFill". Default is "fpFast" because it 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",
- "assignmentStrategy": "greedy",
- "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
}
], - "palletResults": null,
- "trailerResults": null,
- "firedRules": [ ],
- "containerTree": null
}Poll this endpoint after receiving a 202 from POST /api/v1/pack.
When status is completed, the full PackResponse is available
in the result field. When status is failed, inspect error
for details.
Job records expire after a short TTL. Retrieve the result promptly
after completed status is observed.
| jobId required | string Example: j_1f7d3adf97f84e639ab891fd245386cf Job ID returned in the |
{- "jobId": "j_1f7d3adf97f84e639ab891fd245386cf",
- "status": "completed",
- "totalUnits": 5000,
- "result": {
- "algorithm": "fpLayer",
- "results": [ ],
- "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": "b_aded25bf1234",
- "status": "submitted",
- "totalOrders": 1,
- "statusUrl": "/api/v1/batch/b_aded25bf1234"
}| 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",
- "assignmentStrategy": "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"
}
], - "containerTree": { }
}, - "error": "string"
}
], - "nextPageToken": "string",
- "hasMore": true
}| id required | string [ 1 .. 128 ] characters |
| name | string <= 256 characters |
| description | string <= 2000 characters |
| sku | string <= 128 characters Top-level SKU for the item. Stored and indexed separately from
|
object Typed external identifiers for the item. Only the documented keys
are persisted — unknown keys are rejected with | |
| 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> [ 0 .. 1200 ] Length in inches. Maximum 1,200 in. |
| width required | number <double> [ 0 .. 1200 ] Width in inches. Maximum 1,200 in. |
| height required | number <double> [ 0 .. 1200 ] Height in inches. Maximum 1,200 in. |
| dimensionUnit | string <= 64 characters |
| weight required | number <double> [ 0 .. 500000 ] Weight in lbs. Maximum 500,000 lb. |
| 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",
- "sku": "string",
- "externalIds": {
- "gtin": "string",
- "upc": "string",
- "ean": "string",
- "vendorPartNumber": "string",
- "customerPartNumber": "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 Search across item ID, name, and description. Results are bounded by cursor-based pagination; page size is capped at 100 rows. Walk the cursor to scan the full set — a single page does not cover all items in large catalogs. |
| category | string Filter by category |
| tags | string Comma-separated list of tags to filter by |
{- "items": [
- {
- "id": "string",
- "name": "string",
- "description": "string",
- "sku": "string",
- "externalIds": {
- "gtin": "string",
- "upc": "string",
- "ean": "string",
- "vendorPartNumber": "string",
- "customerPartNumber": "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",
- "sku": "string",
- "externalIds": {
- "gtin": "string",
- "upc": "string",
- "ean": "string",
- "vendorPartNumber": "string",
- "customerPartNumber": "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",
- "sku": "string",
- "externalIds": {
- "gtin": "string",
- "upc": "string",
- "ean": "string",
- "vendorPartNumber": "string",
- "customerPartNumber": "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",
- "sku": "string",
- "externalIds": {
- "gtin": "string",
- "upc": "string",
- "ean": "string",
- "vendorPartNumber": "string",
- "customerPartNumber": "string"
}, - "category": "string",
- "commodityCode": "string",
- "hsCode": "string",
- "countryOfOrigin": "string",
- "tags": [
- "string"
], - "customAttributes": { },
- "length": 1200,
- "width": 1200,
- "height": 1200,
- "dimensionUnit": "string",
- "weight": 500000,
- "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"
}
]
}Resolve an item by one of its identifiers. The type parameter is
case-insensitive.
Accepted type values: sku, gtin, upc, ean,
vendorPartNumber, customerPartNumber.
sku resolves against the top-level sku field on the item record.
The other types resolve against the corresponding key in externalIds.
| type required | string Enum: "sku" "gtin" "upc" "ean" "vendorPartNumber" "customerPartNumber" Example: type=gtin Identifier type to look up (case-insensitive) |
| value required | string Example: value=00012345678905 Identifier value to match |
{- "id": "string",
- "name": "string",
- "description": "string",
- "sku": "string",
- "externalIds": {
- "gtin": "string",
- "upc": "string",
- "ean": "string",
- "vendorPartNumber": "string",
- "customerPartNumber": "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",
- "sku": "string",
- "externalIds": {
- "gtin": "string",
- "upc": "string",
- "ean": "string",
- "vendorPartNumber": "string",
- "customerPartNumber": "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",
- "subType": "string",
- "material": "string",
- "innerLength": 0.1,
- "innerWidth": 0.1,
- "innerHeight": 0.1,
- "outerLength": 0.1,
- "outerWidth": 0.1,
- "outerHeight": 0.1,
- "weightMaxGross": 0.1,
- "weightTare": 0.1,
- "isDynamic": true,
- "isActive": true,
- "usedAtLevels": [
- "string"
], - "orgId": "string",
- "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. Value is case-sensitive — use the exact
enum casing ( |
| search | string Search by container ID or name. Results are bounded by cursor-based pagination. Walk the cursor to scan the full set. |
| 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",
- "subType": "string",
- "material": "string",
- "innerLength": 0.1,
- "innerWidth": 0.1,
- "innerHeight": 0.1,
- "outerLength": 0.1,
- "outerWidth": 0.1,
- "outerHeight": 0.1,
- "weightMaxGross": 0.1,
- "weightTare": 0.1,
- "isDynamic": true,
- "isActive": true,
- "usedAtLevels": [
- "string"
], - "orgId": "string",
- "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",
- "subType": "string",
- "material": "string",
- "innerLength": 0.1,
- "innerWidth": 0.1,
- "innerHeight": 0.1,
- "outerLength": 0.1,
- "outerWidth": 0.1,
- "outerHeight": 0.1,
- "weightMaxGross": 0.1,
- "weightTare": 0.1,
- "isDynamic": true,
- "isActive": true,
- "usedAtLevels": [
- "string"
], - "orgId": "string",
- "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",
- "subType": "string",
- "material": "string",
- "innerLength": 0.1,
- "innerWidth": 0.1,
- "innerHeight": 0.1,
- "outerLength": 0.1,
- "outerWidth": 0.1,
- "outerHeight": 0.1,
- "weightMaxGross": 0.1,
- "weightTare": 0.1,
- "isDynamic": true,
- "isActive": true,
- "usedAtLevels": [
- "string"
], - "orgId": "string",
- "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"
}
]
}Create a new order. If a line references an itemId, that item must
exist in the Item Master — an unknown itemId returns 400 with
error code order.unknown_item. Lines without an itemId must
include inline dimensions (length, width, height, weight).
| 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) Nested address shape used for | |
object (AddressParty) Nested address shape used for | |
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",
- "address": {
- "street1": "123 Main St",
- "city": "Springfield",
- "state": "IL",
- "zip": "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": {
- "locationId": "string",
- "name": "string",
- "residential": true,
- "address": {
- "street1": "string",
- "street2": "string",
- "city": "string",
- "state": "string",
- "zip": "string",
- "country": "string"
}
}, - "shipTo": {
- "locationId": "string",
- "name": "string",
- "residential": true,
- "address": {
- "street1": "string",
- "street2": "string",
- "city": "string",
- "state": "string",
- "zip": "string",
- "country": "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. An unrecognized value returns |
| 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": {
- "locationId": "string",
- "name": "string",
- "residential": true,
- "address": {
- "street1": "string",
- "street2": "string",
- "city": "string",
- "state": "string",
- "zip": "string",
- "country": "string"
}
}, - "shipTo": {
- "locationId": "string",
- "name": "string",
- "residential": true,
- "address": {
- "street1": "string",
- "street2": "string",
- "city": "string",
- "state": "string",
- "zip": "string",
- "country": "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": {
- "locationId": "string",
- "name": "string",
- "residential": true,
- "address": {
- "street1": "string",
- "street2": "string",
- "city": "string",
- "state": "string",
- "zip": "string",
- "country": "string"
}
}, - "shipTo": {
- "locationId": "string",
- "name": "string",
- "residential": true,
- "address": {
- "street1": "string",
- "street2": "string",
- "city": "string",
- "state": "string",
- "zip": "string",
- "country": "string"
}
}, - "lines": [
- { }
], - "tags": [
- "string"
], - "version": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}Partially update an order. version is required — omitting it or
sending a stale value both return 409 Conflict.
| 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) Nested address shape used for | |
object (AddressParty) Nested address shape used for | |
| 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": {
- "locationId": "string",
- "name": "string",
- "residential": true,
- "address": {
- "street1": "string",
- "street2": "string",
- "city": "string",
- "state": "string",
- "zip": "string",
- "country": "string"
}
}, - "shipTo": {
- "locationId": "string",
- "name": "string",
- "residential": true,
- "address": {
- "street1": "string",
- "street2": "string",
- "city": "string",
- "state": "string",
- "zip": "string",
- "country": "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": {
- "locationId": "string",
- "name": "string",
- "residential": true,
- "address": {
- "street1": "string",
- "street2": "string",
- "city": "string",
- "state": "string",
- "zip": "string",
- "country": "string"
}
}, - "shipTo": {
- "locationId": "string",
- "name": "string",
- "residential": true,
- "address": {
- "street1": "string",
- "street2": "string",
- "city": "string",
- "state": "string",
- "zip": "string",
- "country": "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": {
- "locationId": "string",
- "name": "string",
- "residential": true,
- "address": {
- "street1": "string",
- "street2": "string",
- "city": "string",
- "state": "string",
- "zip": "string",
- "country": "string"
}
}, - "shipTo": {
- "locationId": "string",
- "name": "string",
- "residential": true,
- "address": {
- "street1": "string",
- "street2": "string",
- "city": "string",
- "state": "string",
- "zip": "string",
- "country": "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": {
- "locationId": "string",
- "name": "string",
- "residential": true,
- "address": {
- "street1": "string",
- "street2": "string",
- "city": "string",
- "state": "string",
- "zip": "string",
- "country": "string"
}
}, - "shipTo": {
- "locationId": "string",
- "name": "string",
- "residential": true,
- "address": {
- "street1": "string",
- "street2": "string",
- "city": "string",
- "state": "string",
- "zip": "string",
- "country": "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. Max file size: 5 MB.
Column contract:
| Column | Required | Notes |
|---|---|---|
sourceOrderId |
Yes | Groups rows into orders — one order per distinct value |
quantity |
Yes | The column quantityOrdered is accepted as an alias |
sku |
No | Item SKU for the line |
itemId |
No | Item Master ID (alternative to sku) |
One order is created per distinct sourceOrderId in the file. Rows
that share a sourceOrderId become lines on the same order.
Re-importing a file with an existing sourceOrderId upserts that
order (updates lines). The sourceSystem column is not required.
| file required | string <binary> |
{- "ordersCreated": 0,
- "ordersUpdated": 0,
- "ordersUnchanged": 0,
- "totalLines": 0,
- "errors": [
- {
- "orderId": "string",
- "error": "string"
}
]
}Polymorphic — body shape selects the path:
Path 1 — order fulfillment (UNGATED): supply orderIds to create a packing
shipment in Draft/Created status. Items are resolved from the Item Master.
This path is available to all authenticated organizations.
Path 2 — standalone carrier create+execute (EARLY ACCESS): supply carrierId,
parcels, shipFrom, shipTo, and serviceCode (no orderIds). FractalPack
creates the shipment record and buys the label in a single call, returning the
unified Shipment with an execution node (tracking number, piece document URLs).
Label bytes are never returned inline — retrieve documents via the URLs in
execution.documents[].url.
The standalone path requires the carrier-execution-enabled AppConfig flag
(default off) and the carrier-execution entitlement on your organization.
When the flag is off, the standalone path returns 404. When the org lacks
the entitlement, it returns 403.
Changed in Phase U (2026-06-24): this endpoint is now served through the
public gateway (api.fractalpack.com). Previously, carrier execution was only
reachable through the ShippingApi internal path. Entitlement enforcement has been
re-homed from ShippingApi to this endpoint; the entitlement key is
carrier-execution (unchanged from P1/P2).
| 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",
- "assignmentStrategy": "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"
}
], - "containerTree": { }
}, - "execution": {
- "carrierId": "string",
- "masterTrackingNumber": "string",
- "carrierShipmentId": "string",
- "totalCost": 0.1,
- "currency": "string",
- "pieces": [
- {
- "labelId": "string",
- "trackingNumber": "string",
- "labelFormat": "string",
- "documentUrl": "string"
}
], - "documents": [
- {
- "type": "string",
- "format": "string",
- "url": "string",
- "expiresAt": 0
}
], - "executedAt": "2019-08-24T14:15:22Z",
- "lastTrackingStatus": "string",
- "lastPolledAt": "2019-08-24T14:15:22Z"
}, - "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",
- "assignmentStrategy": "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"
}
], - "containerTree": { }
}, - "execution": {
- "carrierId": "string",
- "masterTrackingNumber": "string",
- "carrierShipmentId": "string",
- "totalCost": 0.1,
- "currency": "string",
- "pieces": [
- {
- "labelId": "string",
- "trackingNumber": "string",
- "labelFormat": "string",
- "documentUrl": "string"
}
], - "documents": [
- {
- "type": "string",
- "format": "string",
- "url": "string",
- "expiresAt": 0
}
], - "executedAt": "2019-08-24T14:15:22Z",
- "lastTrackingStatus": "string",
- "lastPolledAt": "2019-08-24T14:15:22Z"
}, - "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",
- "assignmentStrategy": "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"
}
], - "containerTree": { }
}, - "execution": {
- "carrierId": "string",
- "masterTrackingNumber": "string",
- "carrierShipmentId": "string",
- "totalCost": 0.1,
- "currency": "string",
- "pieces": [
- {
- "labelId": "string",
- "trackingNumber": "string",
- "labelFormat": "string",
- "documentUrl": "string"
}
], - "documents": [
- {
- "type": "string",
- "format": "string",
- "url": "string",
- "expiresAt": 0
}
], - "executedAt": "2019-08-24T14:15:22Z",
- "lastTrackingStatus": "string",
- "lastPolledAt": "2019-08-24T14:15:22Z"
}, - "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",
- "assignmentStrategy": "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"
}
], - "containerTree": { }
}, - "execution": {
- "carrierId": "string",
- "masterTrackingNumber": "string",
- "carrierShipmentId": "string",
- "totalCost": 0.1,
- "currency": "string",
- "pieces": [
- {
- "labelId": "string",
- "trackingNumber": "string",
- "labelFormat": "string",
- "documentUrl": "string"
}
], - "documents": [
- {
- "type": "string",
- "format": "string",
- "url": "string",
- "expiresAt": 0
}
], - "executedAt": "2019-08-24T14:15:22Z",
- "lastTrackingStatus": "string",
- "lastPolledAt": "2019-08-24T14:15:22Z"
}, - "version": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}Polymorphic behavior — gating depends on shipment state:
Non-executed shipment (execution is null): cancels the local record.
Ungated — requires authentication only. Status transitions to Cancelled.
Executed shipment (execution is present, shipment was tendered to a
carrier): voids the carrier label via the carrier's void API, then cancels the
local record. Early access — requires the carrier-execution-enabled
AppConfig flag (default off) and the carrier-execution entitlement.
Updated in: Phase U PR2 (2026-06-24)
| shipmentId required | string |
{- "id": "string",
- "orderIds": [
- "string"
], - "status": "string",
- "mode": "string",
- "serviceLevel": "string",
- "carrier": "string",
- "packResult": {
- "algorithm": "string",
- "assignmentStrategy": "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"
}
], - "containerTree": { }
}, - "execution": {
- "carrierId": "string",
- "masterTrackingNumber": "string",
- "carrierShipmentId": "string",
- "totalCost": 0.1,
- "currency": "string",
- "pieces": [
- {
- "labelId": "string",
- "trackingNumber": "string",
- "labelFormat": "string",
- "documentUrl": "string"
}
], - "documents": [
- {
- "type": "string",
- "format": "string",
- "url": "string",
- "expiresAt": 0
}
], - "executedAt": "2019-08-24T14:15:22Z",
- "lastTrackingStatus": "string",
- "lastPolledAt": "2019-08-24T14:15:22Z"
}, - "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",
- "assignmentStrategy": "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"
}
], - "containerTree": { }
}, - "execution": {
- "carrierId": "string",
- "masterTrackingNumber": "string",
- "carrierShipmentId": "string",
- "totalCost": 0.1,
- "currency": "string",
- "pieces": [
- {
- "labelId": "string",
- "trackingNumber": "string",
- "labelFormat": "string",
- "documentUrl": "string"
}
], - "documents": [
- {
- "type": "string",
- "format": "string",
- "url": "string",
- "expiresAt": 0
}
], - "executedAt": "2019-08-24T14:15:22Z",
- "lastTrackingStatus": "string",
- "lastPolledAt": "2019-08-24T14:15:22Z"
}, - "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",
- "assignmentStrategy": "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"
}
], - "containerTree": { }
}, - "execution": {
- "carrierId": "string",
- "masterTrackingNumber": "string",
- "carrierShipmentId": "string",
- "totalCost": 0.1,
- "currency": "string",
- "pieces": [
- {
- "labelId": "string",
- "trackingNumber": "string",
- "labelFormat": "string",
- "documentUrl": "string"
}
], - "documents": [
- {
- "type": "string",
- "format": "string",
- "url": "string",
- "expiresAt": 0
}
], - "executedAt": "2019-08-24T14:15:22Z",
- "lastTrackingStatus": "string",
- "lastPolledAt": "2019-08-24T14:15:22Z"
}, - "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",
- "assignmentStrategy": "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"
}
], - "containerTree": { }
}, - "execution": {
- "carrierId": "string",
- "masterTrackingNumber": "string",
- "carrierShipmentId": "string",
- "totalCost": 0.1,
- "currency": "string",
- "pieces": [
- {
- "labelId": "string",
- "trackingNumber": "string",
- "labelFormat": "string",
- "documentUrl": "string"
}
], - "documents": [
- {
- "type": "string",
- "format": "string",
- "url": "string",
- "expiresAt": 0
}
], - "executedAt": "2019-08-24T14:15:22Z",
- "lastTrackingStatus": "string",
- "lastPolledAt": "2019-08-24T14:15:22Z"
}, - "version": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}Early access — requires the carrier-execution-enabled AppConfig flag
(default off) and the carrier-execution entitlement.
Tenders an existing shipment to a carrier and returns the unified Shipment
with an execution node populated. The shipment must be in Ready or Rated
status; any other status returns 400.
FractalPack calls the carrier's label API service-to-service, persists the
result (tracking number, document URLs) onto the shipment record, and transitions
status to Tendered. Label bytes are never returned inline — retrieve documents
via the URLs in execution.documents[].url.
The carrier, service code, and parcel list may optionally be overridden in the request body. When omitted, FractalPack uses the carrier and parcels already associated with the shipment's rate plan.
Concurrency: if two requests race to execute the same shipment, exactly one
succeeds with 200; the other receives 409 Conflict.
Added in: Phase U PR2 (2026-06-24, flagged off, early access only)
| shipmentId required | string Shipment ID ( |
| carrierId | string <= 128 characters Override the carrier. Defaults to the shipment's rated carrier. |
| serviceCode | string <= 64 characters Override the service code. |
| labelFormat | string <= 16 characters Default: "PDF" Label output format. |
Array of objects (ShipmentParcel) Override the parcel list. Defaults to the shipment's pack plan parcels. | |
Array of objects (AccessorialRequest) Override accessorial service requests. |
{- "carrierId": "fedex",
- "serviceCode": "FEDEX_GROUND",
- "labelFormat": "ZPLII"
}{- "id": "string",
- "orderIds": [
- "string"
], - "status": "string",
- "mode": "string",
- "serviceLevel": "string",
- "carrier": "string",
- "packResult": {
- "algorithm": "string",
- "assignmentStrategy": "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"
}
], - "containerTree": { }
}, - "execution": {
- "carrierId": "string",
- "masterTrackingNumber": "string",
- "carrierShipmentId": "string",
- "totalCost": 0.1,
- "currency": "string",
- "pieces": [
- {
- "labelId": "string",
- "trackingNumber": "string",
- "labelFormat": "string",
- "documentUrl": "string"
}
], - "documents": [
- {
- "type": "string",
- "format": "string",
- "url": "string",
- "expiresAt": 0
}
], - "executedAt": "2019-08-24T14:15:22Z",
- "lastTrackingStatus": "string",
- "lastPolledAt": "2019-08-24T14:15:22Z"
}, - "version": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}Early access — requires the carrier-execution-enabled AppConfig flag
(default off) and the carrier-execution entitlement. Metered usage.
Returns the current carrier tracking status and event history for a shipment that has been executed (tendered to a carrier). FractalPack resolves the carrier tracking number from the shipment record and proxies the carrier's tracking response.
Returns 404 when the shipment has not been executed (execution is null).
Pilot carriers: FedEx, UPS, and USPS.
Added in: Phase U PR2 (2026-06-24, flagged off, early access only)
| shipmentId required | string Shipment ID ( |
{- "success": true,
- "trackingNumber": "449044304137821",
- "status": "InTransit",
- "events": [
- {
- "timestamp": "2026-06-25T09:15:00Z",
- "status": "InTransit",
- "description": "Departed FedEx location",
- "location": "Memphis, TN"
}
], - "estimatedDeliveryDate": "2026-06-27T00:00:00Z",
- "errorMessage": null
}Carrier capabilities — address validation and carrier-level operations.
Early access: address validation requires the carrier-execution-enabled
feature flag (default off) and the carrier-execution entitlement.
Contact your account manager to request access.
Validates and normalizes a street address against a carrier's address-validation service. Returns a carrier-standardized form of the address and suggestions when the input is ambiguous.
Ungated: requires authentication and a connected carrier account only — no feature flag or entitlement check. This is a pre-purchase utility (no carrier spend, no label produced).
Pilot carriers: FedEx, UPS, and USPS.
Added in: Phase U PR2 (2026-06-24)
| carrierId required | string Carrier to validate against. Pilot carriers — |
required | object (ShipmentAddress) Postal address for a shipment origin or destination. |
{- "carrierId": "fedex",
- "address": {
- "name": "Jane Smith",
- "street1": "456 Oak Ave",
- "city": "New York",
- "state": "NY",
- "postalCode": "10001",
- "countryCode": "US"
}
}{- "isValid": true,
- "normalizedAddress": {
- "name": "Jane Smith",
- "company": null,
- "street1": "456 Oak Ave",
- "street2": null,
- "city": "New York",
- "state": "NY",
- "postalCode": "10001-1234",
- "countryCode": "US",
- "phone": null,
- "email": null,
- "isResidential": false
}, - "suggestions": [ ],
- "errorMessage": null
}[- {
- "id": "string",
- "name": "string",
- "description": "string",
- "enabled": true,
- "priority": 0,
- "ruleType": "BoxSetFilter",
- "executionTarget": "PreSolve",
- "conditions": {
- "operator": "and",
- "conditions": [
- {
- "attribute": "string",
- "operator": "equals",
- "value": "string"
}
]
}, - "action": {
- "type": "string",
- "payload": null
}, - "version": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "createdBy": "string"
}
]Create a packing rule. Validation enforced at create time:
name is required and must be non-empty — omitting it or sending
an empty string returns 400.attribute (not field). An
unknown key is rejected with 400.attribute must be non-empty — an empty string returns 400.operator is required on condition leaf objects — omitting it
returns 400.value must be a string — numeric values return 400.For PUT /api/v1/rules/{id}: the id in the request body must
match the path id, or the request returns 400. The PUT enforces
optimistic concurrency — send the current version; a stale version
returns 409.
| 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": [
- {
- "attribute": "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": [
- {
- "attribute": "string",
- "operator": "equals",
- "value": "string"
}
]
}, - "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": [
- {
- "attribute": "string",
- "operator": "equals",
- "value": "string"
}
]
}, - "action": {
- "type": "string",
- "payload": null
}, - "version": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "createdBy": "string"
}Replace a rule. The id in the request body must match the path
id — a mismatch returns 400. Include the current version for
optimistic concurrency; a stale or missing version returns 409.
| 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": [
- {
- "attribute": "string",
- "operator": "equals",
- "value": "string"
}
]
}, - "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": [
- {
- "attribute": "string",
- "operator": "equals",
- "value": "string"
}
]
}, - "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",
- "assignmentStrategy": "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"
}
], - "containerTree": { }
}, - "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.
Data sources. By default the plan runs against the organization's
stored warehouse and inventory. For a self-contained request (e.g. a
WMS integrating without pre-provisioning), supply locations and/or
inventory inline — each is resolved independently: present → used,
omitted → stored fallback, [] → explicit empty. The response is the
same either way and includes a quantity-aware fill-rate summary.
required | Array of objects non-empty |
object | |
Array of objects <= 5000 items Optional inline warehouse locations for a self-contained request. When present,
wave planning runs against this set instead of the organization's stored warehouse.
When omitted, falls back to stored data. An explicit empty array | |
Array of objects <= 20000 items Optional inline inventory records for a self-contained request. When present, the
quantity-aware allocation pool is built from this set instead of the organization's
stored inventory. When omitted, falls back to stored data. An explicit empty array
|
{- "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": "fpFast"
}
}{- "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"
}