Using Click Reply™ WMS (REST API & Webhooks)
Endpoint: https://api.cubemaster.net/loads
Method: POST
Purpose: Builds an optimized load plan for a mixed truck load based on cargo items, container specifications, and rules.
A RESTful API (Representational State Transfer) is a way for programs to talk to each other over the internet, like a waiter taking your order to the kitchen. It uses standard web commands (called HTTP methods) such as:
RESTful APIs use URLs (like /loads) to specify what you’re working with, and they often send/receive data in JSON format—a lightweight, readable way to structure information (like a digital packing list).
To use the CubeMaster API, you need an API key (TokenID) for authentication. Here's how to get started:
TokenID (e.g., abc123xyz789). Copy this key and store it securely, as it will be used in the HTTP headers of your API requests.Note: The TokenID will be used in the HTTP headers of your POST request for authentication.
Method: Use your TokenID in the HTTP header:
TokenID: your-token-id-here
This tells CubeMaster you’re allowed to use the API.
Request Format: JSON with fields like Title, Cargoes, and Containers (detailed in Step 3).
Response Format: Detailed JSON with load plans, placements, and graphics (detailed in Step 5).
CubeMaster APIhttps://api.cubemaster.netAPI Keyabc123xyz789).TokenID: your-token-id-here/loadsPOSTBuild Mixed Truck LoadUse Click Reply’s flexibility (over 1,000 parameters) to map warehouse data to the CubeMaster request structure.
Build Mixed Load with CubeMaster.Title: Static or dynamic (e.g., "New Mixed Truck Load").
Shipment.ID + " Mixed Load"Description: Optional note (e.g., "Hello Web API").
Cargoes: Array of items to load.
Name: Inventory.Item.SKULength, Width, Height: Product.Dimensions (in inches)Weight: Product.Weight (in pounds)OrientationsAllowed: Static "OrientationsAll"TurnAllowedOnFloor: Static false or dynamicQty: Inventory.Item.QuantityColorKnownName: Optional, Product.Attributes.ColorContainers: Truck/container details.
VehicleType: Static "Dry"Name: Static "53FT-Intermodal"Length, Width, Height: Static 630, 98, 106 (inches)ColorKnownName: Static "Blue"Rules: Load optimization rules.
IsWeightLimited: Static trueIsSequenceUsed: Static falseFillDirection: Static "FrontToRear"CalculationType: Static "MixLoad"{
"Title": "New Mixed Truck Load",
"Description": "Hello Web API",
"Cargoes": [
{
"Name": "ITEM001",
"Length": 72,
"Width": 30,
"Height": 75,
"Weight": 1002.45,
"OrientationsAllowed": "OrientationsAll",
"TurnAllowedOnFloor": false,
"Qty": 16,
"ColorKnownName": "Brown"
},
{
"Name": "ITEM002",
"Length": 27.31,
"Width": 37.5,
"Height": 76.67,
"Weight": 521.45,
"OrientationsAllowed": "OrientationsAll",
"TurnAllowedOnFloor": false,
"Qty": 28,
"ColorKnownName": "Aqua"
},
{
"Name": "SKU0005",
"Length": 27.31,
"Width": 9.5,
"Height": 75.67,
"Weight": 501.45,
"OrientationsAllowed": "OrientationsAll",
"TurnAllowedOnFloor": true,
"Qty": 24,
"ColorKnownName": "Beige"
},
{
"Name": "SKU0005",
"Qty": 23
},
{
"Name": "SKU0008",
"Qty": 34
}
],
"Containers": [
{
"VehicleType": "Dry",
"Name": "53FT-Intermodal",
"Length": 630,
"Width": 98,
"Height": 106,
"ColorKnownName": "Blue"
}
],
"Rules": {
"IsWeightLimited": true,
"IsSequenceUsed": false,
"FillDirection": "FrontToRear",
"CalculationType": "MixLoad"
}
}
Parameter: Title
Source: "New Mixed Truck Load"
---
Parameter: Cargoes.Name
Source: Inventory.Item.SKU
---
Parameter: Cargoes.Length
Source: Product.Dimensions.Length
---
Parameter: Cargoes.Qty
Source: Inventory.Item.Quantity
---
Parameter: Containers.Name
Source: Static "53FT-Intermodal"
---
Parameter: Rules.FillDirection
Source: Static "FrontToRear"
Use Click Reply’s JSON transformation tool to format the mapped data into the request structure shown above.
Build Mixed Load with CubeMaster process:https://api.cubemaster.net/loadsPOSTContent-Type: application/json, TokenID: your-token-id-hereITEM001, ITEM002, SKU0005).The response is detailed; focus on key elements for warehouse operations.
status: Check "succeed" for success.
message: Success or error details.
document.title: Load identifier.
Load.LoadIDloadSummary: Overall load stats.
cargoesLoaded, piecesLoaded: Load.ItemsLoadedvolumeLoaded, weightLoaded: Load.TotalVolume, Load.TotalWeightfilledContainers: Detailed placement data.
name: Load.ContainerIDloadSummary.volumeUtilization, weightUtilization: Track in Productivity dashboardsplacements:
cargo.name: Load.Item.SKUpos.length, pos.width, pos.height: Load.Item.Positionsize: Verify against Product.Dimensionsgraphics.images: Visual diagrams.
path3DDiagram: Load.Graphics.3Dmanifest: Summary per cargo type.
cargo.name, piecesLoaded: Load.Item.Manifest{
"status": "succeed",
"message": "Engine created. 5 cargoes. 1 empty containers. Calculation started. Calculation ended. The load built successfully. The load saved to the cloud database.",
"calculationError": "InvalidCargoSize",
"document": {
"title": "New Mixed Truck Load",
"description": "Hello Web API",
"calculationTimeInSeconds": 0.6152743,
"createdBy": "CHANG@LOGEN.CO.KR",
"createdAt": "2023-02-11T01:17:01.7392204+09:00"
},
"loadSummary": {
"cargoesLoaded": 68,
"piecesLoaded": 68,
"cargoesLeft": 0,
"piecesLeft": 57,
"volumeLoaded": 5261723.4606,
"weightLoaded": 42674.59999999999
},
"filledContainers": [
{
"name": "#1 53FT-Intermodal",
"loadSummary": {
"volumeUtilization": 80.39990374424703,
"weightLoaded": 42674.59999999999
},
"placements": [
{
"sequence": 1,
"cargo": {
"name": "ITEM002",
"length": 27.31,
"width": 37.5,
"height": 76.67,
"weight": 521.45
},
"pos": {
"length": 0,
"width": 0,
"height": 0
}
}
],
"graphics": {
"images": {
"path3DDiagram": "https://api.cubemaster.net/runtimes/b28413ca_51ed_44c9_b92e_13147363fd61.PNG"
}
}
}
],
"manifest": [
{
"cargo": {
"name": "ITEM002",
"qty": 28
},
"piecesLoaded": 28
}
],
"uom": "UnitEnglish"
}
Response Field: document.title
Target: Load.LoadID
---
Response Field: loadSummary.weightLoaded
Target: Load.TotalWeight
---
Response Field: filledContainers.placements.cargo.name
Target: Load.Item.SKU
---
Response Field: filledContainers.placements.pos
Target: Load.Item.Position
---
Response Field: graphics.images.path3DDiagram
Target: Load.Graphics.3D
placements.pos) for operators.volumeUtilization and weightUtilization for efficiency.piecesLoaded vs. piecesLeft for completeness.loadSummary.weightLoaded (42,674.6 lbs) against container capacity.calculationError (e.g., "InvalidCargoSize"):status ≠ "succeed", retry or escalate.ITEM001, 16 units).warehouseId or Containers dynamically.