Create sequence diagrams with simple online tool

Swimlanes.io is a free webapp for making sequence diagrams. You simply edit the text on the left and the diagram is updated in real time. You can download your sequence diagrams as images or distribute with a link.

Title: Split Shipping with Ingrid order: Merchant,KCO,KSA,Ingrid,OrderManager Merchant -> KCO: Create order note: ``` { "deliveries": [ { "id": "Shipment-1", "title": "Shipment 1", "description": "Refrigerated goods", "readiness": [ { "earliest": "2026-03-16T08:40:34.865Z", "latest": "2026-03-17T08:40:34.865Z", "attributes": [ "premium" ], } ], "origins": [ { "external_id": "warehouse-1" } ] }, { "id": "Shipment-2", "title": "Shipment 2", "description": "Fragile goods", "readiness": [ { "earliest": "2026-03-16T08:40:34.865Z", "latest": "2026-03-17T08:40:34.865Z", "attributes": [ "economy" ] } ], "origins": [ { "external_id": "warehouse-2" } ], "tags": [ "fragile" ] }, ... ], ... "order_lines": [ { "reference": "sku1", "shipping_attributes": { ... "delivery_id": "Shipment-1" } }, { "reference": "sku2", "shipping_attributes": { ... "delivery_id": "Shipment-2" } }, ... ] }``` KCO -> KSA: Create session note: ``` { "deliveries": [ { "id": "Shipment-1", "title": "Shipment 1", "description": "Refrigerated goods", "readiness": [ { "earliest": "2026-03-16T08:40:34.865Z", "latest": "2026-03-17T08:40:34.865Z", "attributes": [ "premium" ] } ], "origins": [ { "external_id": "warehouse-1" } ] }, { "id": "Shipment-2", "title": "Shipment 2", "description": "Fragile goods", "readiness": [ { "earliest": "2026-03-16T08:40:34.865Z", "latest": "2026-03-17T08:40:34.865Z", "attributes": [ "economy" ] } ], "origins": [ { "external_id": "warehouse-2" } ], "tags": [ "fragile" ] }, ... ], "order": { "order_lines": [ { "reference": "sku1", "shipping_attributes": { ... "delivery_id": "Shipment-1" } }, { "reference": "sku2", "shipping_attributes": { ... "delivery_id": "Shipment-2" "readiness": { "earliest": "2026-03-16T08:40:34.865Z", "latest": "2026-03-17T08:40:34.865Z", } } }, ... ] } } ``` KSA -> Ingrid: Map and create session note: ``` { "deliveries": [ { "id": "Shipment-1", "line_items": [ { "sku": "sku1", ... } ], "fulfilments": [ { "readiness": { "earliest_time": "2026-03-16T08:40:34.865Z", "latest_time": "2026-03-17T08:40:34.865Z", } }, "category_tags": [ "premium" ] ], "nodes": [ { "handoff": { "earliest_time": "2026-03-16T08:40:34.865Z", "latest_time": "2026-03-17T08:40:34.865Z" }, "location": { "by_ref": { "external_id": "warehouse-1" } }, "roles": [ "ORIGIN" ], "tags": [ "premium" ] } ], ... }, { "id": "Shipment-2", "line_items": [ { "sku": "sku2", ... } ], "fulfilments": { "readiness": { "earliest": "2026-03-16T08:40:34.865Z", "latest": "2026-03-17T08:40:34.865Z", }, "category_tags": [ "economy" ] }, "nodes": [ { "handoff": { "earliest_time": "2026-03-16T08:40:34.865Z", "latest_time": "2026-03-17T08:40:34.865Z" }, "location": { "by_ref": { "external_id": "warehouse-2" } }, "roles": [ "ORIGIN" ], "tags": [ "economy" ] } ], ... }, ... ] } ``` Ingrid -> KSA: Created session with shipping options note: ``` { "deliveries": [ { "id": "Shipment-1", "delivery_categories": [ { "delivery_options": [ ... ], ... } ] ... }, { "id": "Shipment-1", "delivery_categories": [ { "delivery_options": [ ... ], ... } ] ... }, ... ] } ``` KSA -> KCO: Selected shipping options note: ``` { "session_id": "...", "selected_shipping_option": null, "selected_shipping_options": [ { "id": "...", "delivery_id": "Shipment-1", ... }, { "id": "...", "delivery_id": "Shipment-2", ... } ], ... } ``` KCO -> Merchant: Shipping option update callback/order read note: ``` { "order_id": "...", "selected_shipping_option": null, "selected_shipping_options": [ { "id": "...", "delivery_id": "Shipment-1", ... }, { "id": "...", "delivery_id": "Shipment-2", ... } ], ... } ``` Merchant -> KCO: Shipping option update callback response note: This can be used to overwrite the tax rates/amounts on the shipping fees ``` { "order_id": "...", "order_amount": ..., "order_tax_amount": ..., "order_lines": [ { "type": "shipping_fee", "quantity": ..., "tax_rate": ..., "total_tax_amount": ..., "total_amount": ..., "shipping_attributes": { "delivery_id": "Shipment-1" } ... }, { "type": "shipping_fee", "quantity": ..., "tax_rate": ..., "total_tax_amount": ..., "total_amount": ..., "shipping_attributes": { "delivery_id": "Shipment-2" } ... }, ... ] ... } ``` _: **Order completed by user** KCO -> KSA: Confirm session KSA -> Ingrid: Confirm session note: ``` { "delivery_choices": [ { "delivery_id": "Shipment-1", "option_id": "...", "addon_ids": [ "..." ] }, { "delivery_id": "Shipment-2", "option_id": "...", "addon_ids": [ "..." ] } ] } ``` Ingrid -> KSA: Completed session note: ``` { "session": { "deliveries": [ { "id": "Shipment-1", ... }, { "id": "Shipment-2", ... } ], ... } } ``` KSA -> KCO: Completed session with KCO -> OrderManager: Complete order note: ``` { "order_id": "...", "deliveries": [ { "id": "Shipment-1", "title": "Shipment 1", "description": "Refrigerated goods", "readiness": { "earliest": "2026-03-16T08:40:34.865Z", "latest": "2026-03-17T08:40:34.865Z", } }, { "id": "Shipment-2", "title": "Shipment 2", "description": "Fragile goods", "readiness": { "earliest": "2026-03-16T08:40:34.865Z", "latest": "2026-03-17T08:40:34.865Z", }, "tags": [ "fragile" ] }, ... ], "selected_shipping_option": null, "selected_shipping_options": [ { "id": "...", "delivery_id": "Shipment-1", "tms_reference": "...", ... }, { "id": "...", "delivery_id": "Shipment-2", "tms_reference": "...", ... } ], ... } ``` OrderManager -> Merchant: Order Push note: ``` {} ``` _: **Post purchase experience** Merchant -> OrderManager: Read order OrderManager -> Merchant: Order with selected shipping options note: ``` { "order_id": "...", "selected_shipping_option": null, "selected_shipping_options": [ { "id": "...", "delivery_id": "Shipment-1", "tms_reference": "ingrid_session_id", ... }, { "id": "...", "delivery_id": "Shipment-2", "tms_reference": "ingrid_session_id", ... } ], ... } ``` _: **Non KSA orders (Go-live plan)** note: ``` { "options": { "tms_config": { "disabled": true }, ... }, ... }```