{"templateId":"markdown","sharedDataIds":{"sidebar":"sidebar-sidebars.yaml"},"props":{"metadata":{"markdoc":{"tagList":[]},"type":"markdown"},"seo":{"title":"Splitting & Combining Consignments","description":"The operational transportation management API. Full access to planning, tracking, invoicing, and integrations — built on the OTM5 open data standard.","llmstxt":{"hide":false,"sections":[{"title":"Table of contents","includeFiles":["**/*"],"excludeFiles":[]}],"excludeFiles":[]}},"dynamicMarkdocComponents":[],"compilationErrors":[],"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":1,"id":"splitting--combining-consignments","__idx":0},"children":["Splitting & Combining Consignments"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"objective","__idx":1},"children":["Objective"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Split a large consignment into smaller parts for separate delivery, or combine multiple consignments into one consolidated shipment."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"scenario-splitting","__idx":2},"children":["Scenario: Splitting"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["You have a consignment of 120 pallets that needs to be split across two trucks because a single vehicle can only carry 66 pallets."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"step-1-create-the-transport-order","__idx":3},"children":["Step 1: Create the Transport Order"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"bash","header":{"controls":{"copy":{}}},"source":"curl -X POST https://api.otms.transportial.com/api/transportOrder \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\" \\\n  -d '{\n    \"name\": \"Bulk delivery - 120 pallets\",\n    \"status\": \"requested\",\n    \"consignments\": [\n      {\n        \"name\": \"Full consignment\",\n        \"status\": \"requested\",\n        \"goods\": [\n          {\n            \"type\": \"items\",\n            \"description\": \"Packaged food products\",\n            \"quantity\": 120,\n            \"weight\": { \"value\": 24000, \"unit\": \"kg\" }\n          }\n        ]\n      }\n    ]\n  }'\n","lang":"bash"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Note the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["consignment.id"]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["goods.id"]}," from the response."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"step-2-split-the-consignment","__idx":4},"children":["Step 2: Split the Consignment"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"bash","header":{"controls":{"copy":{}}},"source":"curl -X POST https://api.otms.transportial.com/api/consignments/split \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\" \\\n  -d '{\n    \"consignmentId\": \"original-consignment-uuid\",\n    \"splits\": [\n      {\n        \"goods\": [\n          {\n            \"id\": \"goods-uuid\",\n            \"quantity\": 66\n          }\n        ]\n      },\n      {\n        \"goods\": [\n          {\n            \"id\": \"goods-uuid\",\n            \"quantity\": 54\n          }\n        ]\n      }\n    ]\n  }'\n","lang":"bash"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This creates two new consignments from the original — one with 66 pallets and one with 54."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"step-3-plan-separate-trips","__idx":5},"children":["Step 3: Plan Separate Trips"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Now plan a trip for each split consignment:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"bash","header":{"controls":{"copy":{}}},"source":"# Trip for first part (66 pallets)\ncurl -X POST https://api.otms.transportial.com/api/trip:route \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\" \\\n  -d '{\n    \"name\": \"Delivery part 1 - 66 pallets\",\n    \"type\": \"road\",\n    \"vehicle\": { \"id\": \"truck-1-uuid\" },\n    \"actions\": [\n      { \"type\": \"load\", \"location\": { \"id\": \"warehouse-uuid\" } },\n      { \"type\": \"move\" },\n      { \"type\": \"unload\", \"location\": { \"id\": \"destination-uuid\" } }\n    ]\n  }'\n\n# Trip for second part (54 pallets)\ncurl -X POST https://api.otms.transportial.com/api/trip:route \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\" \\\n  -d '{\n    \"name\": \"Delivery part 2 - 54 pallets\",\n    \"type\": \"road\",\n    \"vehicle\": { \"id\": \"truck-2-uuid\" },\n    \"actions\": [\n      { \"type\": \"load\", \"location\": { \"id\": \"warehouse-uuid\" } },\n      { \"type\": \"move\" },\n      { \"type\": \"unload\", \"location\": { \"id\": \"destination-uuid\" } }\n    ]\n  }'\n","lang":"bash"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"scenario-combining","__idx":6},"children":["Scenario: Combining"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["You have three small consignments going to the same destination. Combine them into one for a single trip."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"step-1-identify-the-consignments","__idx":7},"children":["Step 1: Identify the Consignments"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"bash","header":{"controls":{"copy":{}}},"source":"# Search for consignments going to the same destination\ncurl -X POST \"https://api.otms.transportial.com/api/consignments/0/20\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\" \\\n  -d '{\n    \"status\": \"requested\"\n  }'\n","lang":"bash"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"step-2-combine-the-consignments","__idx":8},"children":["Step 2: Combine the Consignments"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"bash","header":{"controls":{"copy":{}}},"source":"curl -X POST https://api.otms.transportial.com/api/consignments/combine \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\" \\\n  -d '{\n    \"consignmentIds\": [\n      \"consignment-uuid-1\",\n      \"consignment-uuid-2\",\n      \"consignment-uuid-3\"\n    ]\n  }'\n","lang":"bash"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This merges the goods from all three consignments into a single consignment."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"step-3-plan-one-trip","__idx":9},"children":["Step 3: Plan One Trip"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"bash","header":{"controls":{"copy":{}}},"source":"curl -X POST https://api.otms.transportial.com/api/trip:route \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\" \\\n  -d '{\n    \"name\": \"Consolidated delivery\",\n    \"type\": \"road\",\n    \"vehicle\": { \"id\": \"truck-uuid\" },\n    \"actions\": [\n      { \"type\": \"load\", \"location\": { \"id\": \"warehouse-uuid\" } },\n      { \"type\": \"move\" },\n      { \"type\": \"unload\", \"location\": { \"id\": \"destination-uuid\" } }\n    ]\n  }'\n","lang":"bash"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"partial-status-tracking","__idx":10},"children":["Partial Status Tracking"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["After splitting, consignments can be in partial states:"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Status"},"children":["Status"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Meaning"},"children":["Meaning"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["partially_planned"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Some splits have trips, others don't"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["partially_in_transit"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Some splits are moving, others aren't"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["partially_completed"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Some splits are delivered"]}]}]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The transport order reflects the aggregate status of all its consignments."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"key-takeaways","__idx":11},"children":["Key Takeaways"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Split"]}," when goods need separate vehicles, routes, or delivery windows"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Combine"]}," to consolidate small shipments for efficiency"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Partial statuses track progress across split consignments"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Each split can have its own trip, vehicle, and chauffeur assignment"]}]}]},"headings":[{"value":"Splitting & Combining Consignments","id":"splitting--combining-consignments","depth":1},{"value":"Objective","id":"objective","depth":2},{"value":"Scenario: Splitting","id":"scenario-splitting","depth":2},{"value":"Step 1: Create the Transport Order","id":"step-1-create-the-transport-order","depth":3},{"value":"Step 2: Split the Consignment","id":"step-2-split-the-consignment","depth":3},{"value":"Step 3: Plan Separate Trips","id":"step-3-plan-separate-trips","depth":3},{"value":"Scenario: Combining","id":"scenario-combining","depth":2},{"value":"Step 1: Identify the Consignments","id":"step-1-identify-the-consignments","depth":3},{"value":"Step 2: Combine the Consignments","id":"step-2-combine-the-consignments","depth":3},{"value":"Step 3: Plan One Trip","id":"step-3-plan-one-trip","depth":3},{"value":"Partial Status Tracking","id":"partial-status-tracking","depth":2},{"value":"Key Takeaways","id":"key-takeaways","depth":2}],"frontmatter":{"seo":{"title":"Splitting & Combining Consignments"}},"lastModified":"2026-03-22T21:04:26.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/examples/consignment-splitting","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}