{"templateId":"markdown","sharedDataIds":{"sidebar":"sidebar-sidebars.yaml"},"props":{"metadata":{"markdoc":{"tagList":["admonition"]},"type":"markdown"},"seo":{"title":"Handle order action events","description":"Find answers to your technical questions and learn how to integrate Mirakl products.","lang":"en-US","siteUrl":"https://developer.mirakl.com","keywords":"mirakl, documentation, api"},"dynamicMarkdocComponents":[],"compilationErrors":[],"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":1,"id":"handle-order-action-events","__idx":0},"children":["Handle order action events"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This guide shows you how to consume ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/content/product/connect-channel-platform/webhooks/webhook/webhooks/orderactionevent"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["OrderActionEvent"]}]}," for the order actions Mirakl Connect requests, which are to accept, ship, cancel, and refund an order, and to upload a document."," ","You perform each action on the sales channel, and you report its outcome so that Mirakl Connect knows the action is done."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"business-context","__idx":1},"children":["Business context"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Some things happen to an order because a seller decided so inside Mirakl Connect, not because the channel changed."," ","To accept a new order, to book its shipment, to cancel a line, and to issue a refund all start in Connect."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Mirakl Connect turns each decision into an ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["OrderActionEvent"]}," and sends it to your connector to carry out on the channel."," ","Your connector is what makes the seller's decision real on the channel, and its report back is what tells Mirakl Connect that the decision took effect."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"when-to-use-this","__idx":2},"children":["When to use this"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Handle an ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["OrderActionEvent"]}," whenever one arrives with a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["type"]}," on the order side: ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ACCEPT"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["CREATE_SHIPMENT"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["CANCEL"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["REFUND"]},", or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["UPLOAD_DOCUMENT"]},"."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/content/product/connect-channel-platform/developer-guide/returns"},"children":["Returns"]}," covers the actions on the return side, which are ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ACCEPT_RETURN"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["UPDATE_RETURN_TRACKING_INFORMATION"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ACKNOWLEDGE_RETURN_RECEPTION"]},", and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["CLOSE_RETURN"]},"."," ","Their mechanics are the same."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This guide is distinct from ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/content/product/connect-channel-platform/developer-guide/orders/sync-orders-into-connect"},"children":["Sync orders into Connect"]},"."," ","There, you report the state the channel produced."," ","Here, you perform an action Mirakl Connect requested, and then you report both its outcome and the resulting state."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"how-it-works","__idx":3},"children":["How it works"]},{"$$mdtype":"Tag","name":"Diagram","attributes":{"data-language":"mermaid","align":"center","diagramType":"mermaid","diagramSource":"sequenceDiagram\n    box rgb(219,234,254) Mirakl\n    participant MC as Mirakl Connect\n    end\n    box rgb(209,250,229) Middleware\n    participant CN as Channel Connector\n    end\n    box rgb(254,240,199) Channel\n    participant CH as Sales channel\n    end\n\n    MC--)CN: OrderActionEvent (type, data.action_id)\n    CN->>CN: Deduplicate on id, persist action_id\n    CN->>CH: Perform the action\n    alt action succeeds\n        CH-->>CN: done\n        CN->>MC: PUT /v1/orders/actions/{action_id} (SUCCESS)\n        CN->>MC: POST /v1/orders (resulting state)\n    else action refused\n        CH-->>CN: refused\n        CN->>MC: PUT /v1/orders/actions/{action_id} (FAILED + ActionError)\n    end\n","diagramHtml":"<svg id=\"diagram-14230ad111715081e4d18ac5745a506f94a719ac1a773798f77d0192e7fc83ed\" width=\"100%\" xmlns=\"http://www.w3.org/2000/svg\" style=\"max-width: 983.5px;\" viewBox=\"-50 -10 983.5 700\" role=\"graphics-document document\" aria-roledescription=\"sequence\"><style>\n    #diagram-14230ad111715081e4d18ac5745a506f94a719ac1a773798f77d0192e7fc83ed foreignObject {\n      overflow: visible;\n    }\n  </style><g><rect x=\"703.5\" y=\"-5\" fill=\"rgb(254,240,199)\" stroke=\"rgb(0,0,0, 0.5)\" width=\"200\" height=\"694\" class=\"rect\"></rect><text x=\"803.5\" y=\"13.5\" dominant-baseline=\"central\" alignment-baseline=\"central\" class=\"text\" style=\"text-anchor: middle; font-size: 16px; font-weight: 400; font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif;\"><tspan x=\"803.5\" dy=\"0\">Channel</tspan></text></g><g><rect x=\"474.5\" y=\"-5\" fill=\"rgb(209,250,229)\" stroke=\"rgb(0,0,0, 0.5)\" width=\"209\" height=\"694\" class=\"rect\"></rect><text x=\"579\" y=\"13.5\" dominant-baseline=\"central\" alignment-baseline=\"central\" class=\"text\" style=\"text-anchor: middle; font-size: 16px; font-weight: 400; font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif;\"><tspan x=\"579\" dy=\"0\">Middleware</tspan></text></g><g><rect x=\"-20\" y=\"-5\" fill=\"rgb(219,234,254)\" stroke=\"rgb(0,0,0, 0.5)\" width=\"200\" height=\"694\" class=\"rect\"></rect><text x=\"80\" y=\"13.5\" dominant-baseline=\"central\" alignment-baseline=\"central\" class=\"text\" style=\"text-anchor: middle; font-size: 16px; font-weight: 400; font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif;\"><tspan x=\"80\" dy=\"0\">Mirakl</tspan></text></g><g><rect x=\"728.5\" y=\"604\" fill=\"#eaeaea\" stroke=\"#666\" width=\"150\" height=\"65\" name=\"CH\" rx=\"3\" ry=\"3\" class=\"actor actor-bottom\"></rect><text x=\"803.5\" y=\"636.5\" dominant-baseline=\"central\" alignment-baseline=\"central\" class=\"actor actor-box\" style=\"text-anchor: middle; font-size: 16px; font-weight: 400; font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif;\"><tspan x=\"803.5\" dy=\"0\">Sales channel</tspan></text></g><g><rect x=\"499.5\" y=\"604\" fill=\"#eaeaea\" stroke=\"#666\" width=\"159\" height=\"65\" name=\"CN\" rx=\"3\" ry=\"3\" class=\"actor actor-bottom\"></rect><text x=\"579\" y=\"636.5\" dominant-baseline=\"central\" alignment-baseline=\"central\" class=\"actor actor-box\" style=\"text-anchor: middle; font-size: 16px; font-weight: 400; font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif;\"><tspan x=\"579\" dy=\"0\">Channel Connector</tspan></text></g><g><rect x=\"5\" y=\"604\" fill=\"#eaeaea\" stroke=\"#666\" width=\"150\" height=\"65\" name=\"MC\" rx=\"3\" ry=\"3\" class=\"actor actor-bottom\"></rect><text x=\"80\" y=\"636.5\" dominant-baseline=\"central\" alignment-baseline=\"central\" class=\"actor actor-box\" style=\"text-anchor: middle; font-size: 16px; font-weight: 400; font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif;\"><tspan x=\"80\" dy=\"0\">Mirakl Connect</tspan></text></g><g><line id=\"actor2\" x1=\"803.5\" y1=\"92\" x2=\"803.5\" y2=\"604\" class=\"actor-line 200\" stroke-width=\"0.5px\" stroke=\"#999\" name=\"CH\" data-et=\"life-line\" data-id=\"CH\"></line><g id=\"root-2\" data-et=\"participant\" data-type=\"participant\" data-id=\"CH\"><rect x=\"728.5\" y=\"27\" fill=\"#eaeaea\" stroke=\"#666\" width=\"150\" height=\"65\" name=\"CH\" rx=\"3\" ry=\"3\" class=\"actor actor-top\"></rect><text x=\"803.5\" y=\"59.5\" dominant-baseline=\"central\" alignment-baseline=\"central\" class=\"actor actor-box\" style=\"text-anchor: middle; font-size: 16px; font-weight: 400; font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif;\"><tspan x=\"803.5\" dy=\"0\">Sales channel</tspan></text></g></g><g><line id=\"actor1\" x1=\"579\" y1=\"92\" x2=\"579\" y2=\"604\" class=\"actor-line 200\" stroke-width=\"0.5px\" stroke=\"#999\" name=\"CN\" data-et=\"life-line\" data-id=\"CN\"></line><g id=\"root-1\" data-et=\"participant\" data-type=\"participant\" data-id=\"CN\"><rect x=\"499.5\" y=\"27\" fill=\"#eaeaea\" stroke=\"#666\" width=\"159\" height=\"65\" name=\"CN\" rx=\"3\" ry=\"3\" class=\"actor actor-top\"></rect><text x=\"579\" y=\"59.5\" dominant-baseline=\"central\" alignment-baseline=\"central\" class=\"actor actor-box\" style=\"text-anchor: middle; font-size: 16px; font-weight: 400; font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif;\"><tspan x=\"579\" dy=\"0\">Channel Connector</tspan></text></g></g><g><line id=\"actor0\" x1=\"80\" y1=\"92\" x2=\"80\" y2=\"604\" class=\"actor-line 200\" stroke-width=\"0.5px\" stroke=\"#999\" name=\"MC\" data-et=\"life-line\" data-id=\"MC\"></line><g id=\"root-0\" data-et=\"participant\" data-type=\"participant\" data-id=\"MC\"><rect x=\"5\" y=\"27\" fill=\"#eaeaea\" stroke=\"#666\" width=\"150\" height=\"65\" name=\"MC\" rx=\"3\" ry=\"3\" class=\"actor actor-top\"></rect><text x=\"80\" y=\"59.5\" dominant-baseline=\"central\" alignment-baseline=\"central\" class=\"actor actor-box\" style=\"text-anchor: middle; font-size: 16px; font-weight: 400; font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif;\"><tspan x=\"80\" dy=\"0\">Mirakl Connect</tspan></text></g></g><style>#diagram-14230ad111715081e4d18ac5745a506f94a719ac1a773798f77d0192e7fc83ed{font-family:\"Redocly Mermaid Sans\",Arial,\"Liberation Sans\",Arimo,Helvetica,\"Redocly Mermaid CJK\",sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#diagram-14230ad111715081e4d18ac5745a506f94a719ac1a773798f77d0192e7fc83ed .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#diagram-14230ad111715081e4d18ac5745a506f94a719ac1a773798f77d0192e7fc83ed .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#diagram-14230ad111715081e4d18ac5745a506f94a719ac1a773798f77d0192e7fc83ed .error-icon{fill:#552222;}#diagram-14230ad111715081e4d18ac5745a506f94a719ac1a773798f77d0192e7fc83ed .error-text{fill:#552222;stroke:#552222;}#diagram-14230ad111715081e4d18ac5745a506f94a719ac1a773798f77d0192e7fc83ed .edge-thickness-normal{stroke-width:1px;}#diagram-14230ad111715081e4d18ac5745a506f94a719ac1a773798f77d0192e7fc83ed .edge-thickness-thick{stroke-width:3.5px;}#diagram-14230ad111715081e4d18ac5745a506f94a719ac1a773798f77d0192e7fc83ed .edge-pattern-solid{stroke-dasharray:0;}#diagram-14230ad111715081e4d18ac5745a506f94a719ac1a773798f77d0192e7fc83ed .edge-thickness-invisible{stroke-width:0;fill:none;}#diagram-14230ad111715081e4d18ac5745a506f94a719ac1a773798f77d0192e7fc83ed .edge-pattern-dashed{stroke-dasharray:3;}#diagram-14230ad111715081e4d18ac5745a506f94a719ac1a773798f77d0192e7fc83ed .edge-pattern-dotted{stroke-dasharray:2;}#diagram-14230ad111715081e4d18ac5745a506f94a719ac1a773798f77d0192e7fc83ed .marker{fill:#333333;stroke:#333333;}#diagram-14230ad111715081e4d18ac5745a506f94a719ac1a773798f77d0192e7fc83ed .marker.cross{stroke:#333333;}#diagram-14230ad111715081e4d18ac5745a506f94a719ac1a773798f77d0192e7fc83ed svg{font-family:\"Redocly Mermaid Sans\",Arial,\"Liberation Sans\",Arimo,Helvetica,\"Redocly Mermaid CJK\",sans-serif;font-size:16px;}#diagram-14230ad111715081e4d18ac5745a506f94a719ac1a773798f77d0192e7fc83ed p{margin:0;}#diagram-14230ad111715081e4d18ac5745a506f94a719ac1a773798f77d0192e7fc83ed .actor{stroke:#9370DB;fill:#ECECFF;stroke-width:1;}#diagram-14230ad111715081e4d18ac5745a506f94a719ac1a773798f77d0192e7fc83ed rect.actor.outer-path[data-look=\"neo\"]{filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-14230ad111715081e4d18ac5745a506f94a719ac1a773798f77d0192e7fc83ed rect.note[data-look=\"neo\"]{stroke:#aaaa33;fill:#fff5ad;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-14230ad111715081e4d18ac5745a506f94a719ac1a773798f77d0192e7fc83ed text.actor&gt;tspan{fill:black;stroke:none;}#diagram-14230ad111715081e4d18ac5745a506f94a719ac1a773798f77d0192e7fc83ed .actor-line{stroke:#9370DB;}#diagram-14230ad111715081e4d18ac5745a506f94a719ac1a773798f77d0192e7fc83ed .innerArc{stroke-width:1.5;stroke-dasharray:none;}#diagram-14230ad111715081e4d18ac5745a506f94a719ac1a773798f77d0192e7fc83ed .messageLine0{stroke-width:1.5;stroke-dasharray:none;stroke:#333;}#diagram-14230ad111715081e4d18ac5745a506f94a719ac1a773798f77d0192e7fc83ed .messageLine1{stroke-width:1.5;stroke-dasharray:2,2;stroke:#333;}#diagram-14230ad111715081e4d18ac5745a506f94a719ac1a773798f77d0192e7fc83ed [id$=\"-arrowhead\"] path{fill:#333;stroke:#333;}#diagram-14230ad111715081e4d18ac5745a506f94a719ac1a773798f77d0192e7fc83ed .sequenceNumber{fill:white;}#diagram-14230ad111715081e4d18ac5745a506f94a719ac1a773798f77d0192e7fc83ed [id$=\"-sequencenumber\"]{fill:#333;}#diagram-14230ad111715081e4d18ac5745a506f94a719ac1a773798f77d0192e7fc83ed [id$=\"-crosshead\"] path{fill:#333;stroke:#333;}#diagram-14230ad111715081e4d18ac5745a506f94a719ac1a773798f77d0192e7fc83ed .messageText{fill:#333;stroke:none;}#diagram-14230ad111715081e4d18ac5745a506f94a719ac1a773798f77d0192e7fc83ed .labelBox{stroke:#9370DB;fill:#ECECFF;filter:none;}#diagram-14230ad111715081e4d18ac5745a506f94a719ac1a773798f77d0192e7fc83ed .labelText,#diagram-14230ad111715081e4d18ac5745a506f94a719ac1a773798f77d0192e7fc83ed .labelText&gt;tspan{fill:black;stroke:none;}#diagram-14230ad111715081e4d18ac5745a506f94a719ac1a773798f77d0192e7fc83ed .loopText,#diagram-14230ad111715081e4d18ac5745a506f94a719ac1a773798f77d0192e7fc83ed .loopText&gt;tspan{fill:black;stroke:none;}#diagram-14230ad111715081e4d18ac5745a506f94a719ac1a773798f77d0192e7fc83ed .sectionTitle,#diagram-14230ad111715081e4d18ac5745a506f94a719ac1a773798f77d0192e7fc83ed .sectionTitle&gt;tspan{fill:black;stroke:none;}#diagram-14230ad111715081e4d18ac5745a506f94a719ac1a773798f77d0192e7fc83ed .loopLine{stroke-width:2px;stroke-dasharray:2,2;stroke:#9370DB;fill:#9370DB;}#diagram-14230ad111715081e4d18ac5745a506f94a719ac1a773798f77d0192e7fc83ed .note{stroke:#aaaa33;fill:#fff5ad;}#diagram-14230ad111715081e4d18ac5745a506f94a719ac1a773798f77d0192e7fc83ed .noteText,#diagram-14230ad111715081e4d18ac5745a506f94a719ac1a773798f77d0192e7fc83ed .noteText&gt;tspan{fill:black;stroke:none;font-weight:normal;}#diagram-14230ad111715081e4d18ac5745a506f94a719ac1a773798f77d0192e7fc83ed .activation0{fill:#f4f4f4;stroke:#666;}#diagram-14230ad111715081e4d18ac5745a506f94a719ac1a773798f77d0192e7fc83ed .activation1{fill:#f4f4f4;stroke:#666;}#diagram-14230ad111715081e4d18ac5745a506f94a719ac1a773798f77d0192e7fc83ed .activation2{fill:#f4f4f4;stroke:#666;}#diagram-14230ad111715081e4d18ac5745a506f94a719ac1a773798f77d0192e7fc83ed .actorPopupMenu{position:absolute;}#diagram-14230ad111715081e4d18ac5745a506f94a719ac1a773798f77d0192e7fc83ed .actorPopupMenuPanel{position:absolute;fill:#ECECFF;box-shadow:0px 8px 16px 0px rgba(0,0,0,0.2);filter:drop-shadow(3px 5px 2px rgb(0 0 0 / 0.4));}#diagram-14230ad111715081e4d18ac5745a506f94a719ac1a773798f77d0192e7fc83ed .actor-man circle,#diagram-14230ad111715081e4d18ac5745a506f94a719ac1a773798f77d0192e7fc83ed line{fill:#ECECFF;stroke-width:2px;}#diagram-14230ad111715081e4d18ac5745a506f94a719ac1a773798f77d0192e7fc83ed g rect.rect{filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));stroke:#9370DB;}#diagram-14230ad111715081e4d18ac5745a506f94a719ac1a773798f77d0192e7fc83ed .node .neo-node{stroke:#9370DB;}#diagram-14230ad111715081e4d18ac5745a506f94a719ac1a773798f77d0192e7fc83ed [data-look=\"neo\"].node rect,#diagram-14230ad111715081e4d18ac5745a506f94a719ac1a773798f77d0192e7fc83ed [data-look=\"neo\"].cluster rect,#diagram-14230ad111715081e4d18ac5745a506f94a719ac1a773798f77d0192e7fc83ed [data-look=\"neo\"].node polygon{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-14230ad111715081e4d18ac5745a506f94a719ac1a773798f77d0192e7fc83ed [data-look=\"neo\"].swimlane.cluster rect{filter:none;}#diagram-14230ad111715081e4d18ac5745a506f94a719ac1a773798f77d0192e7fc83ed [data-look=\"neo\"].node path{stroke:#9370DB;stroke-width:1px;}#diagram-14230ad111715081e4d18ac5745a506f94a719ac1a773798f77d0192e7fc83ed [data-look=\"neo\"].node .outer-path{filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-14230ad111715081e4d18ac5745a506f94a719ac1a773798f77d0192e7fc83ed [data-look=\"neo\"].node .neo-line path{stroke:#9370DB;filter:none;}#diagram-14230ad111715081e4d18ac5745a506f94a719ac1a773798f77d0192e7fc83ed [data-look=\"neo\"].node circle{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-14230ad111715081e4d18ac5745a506f94a719ac1a773798f77d0192e7fc83ed [data-look=\"neo\"].node circle .state-start{fill:#000000;}#diagram-14230ad111715081e4d18ac5745a506f94a719ac1a773798f77d0192e7fc83ed [data-look=\"neo\"].icon-shape .icon{fill:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-14230ad111715081e4d18ac5745a506f94a719ac1a773798f77d0192e7fc83ed [data-look=\"neo\"].icon-shape .icon-neo path{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-14230ad111715081e4d18ac5745a506f94a719ac1a773798f77d0192e7fc83ed :root{--mermaid-font-family:\"Redocly Mermaid Sans\",Arial,\"Liberation Sans\",Arimo,Helvetica,\"Redocly Mermaid CJK\",sans-serif;}</style><g></g><defs><symbol id=\"diagram-14230ad111715081e4d18ac5745a506f94a719ac1a773798f77d0192e7fc83ed-computer\" width=\"24\" height=\"24\"><path transform=\"scale(.5)\" d=\"M2 2v13h20v-13h-20zm18 11h-16v-9h16v9zm-10.228 6l.466-1h3.524l.467 1h-4.457zm14.228 3h-24l2-6h2.104l-1.33 4h18.45l-1.297-4h2.073l2 6zm-5-10h-14v-7h14v7z\"></path></symbol></defs><defs><symbol id=\"diagram-14230ad111715081e4d18ac5745a506f94a719ac1a773798f77d0192e7fc83ed-database\" fill-rule=\"evenodd\" clip-rule=\"evenodd\"><path transform=\"scale(.5)\" d=\"M12.258.001l.256.004.255.005.253.008.251.01.249.012.247.015.246.016.242.019.241.02.239.023.236.024.233.027.231.028.229.031.225.032.223.034.22.036.217.038.214.04.211.041.208.043.205.045.201.046.198.048.194.05.191.051.187.053.183.054.18.056.175.057.172.059.168.06.163.061.16.063.155.064.15.066.074.033.073.033.071.034.07.034.069.035.068.035.067.035.066.035.064.036.064.036.062.036.06.036.06.037.058.037.058.037.055.038.055.038.053.038.052.038.051.039.05.039.048.039.047.039.045.04.044.04.043.04.041.04.04.041.039.041.037.041.036.041.034.041.033.042.032.042.03.042.029.042.027.042.026.043.024.043.023.043.021.043.02.043.018.044.017.043.015.044.013.044.012.044.011.045.009.044.007.045.006.045.004.045.002.045.001.045v17l-.001.045-.002.045-.004.045-.006.045-.007.045-.009.044-.011.045-.012.044-.013.044-.015.044-.017.043-.018.044-.02.043-.021.043-.023.043-.024.043-.026.043-.027.042-.029.042-.03.042-.032.042-.033.042-.034.041-.036.041-.037.041-.039.041-.04.041-.041.04-.043.04-.044.04-.045.04-.047.039-.048.039-.05.039-.051.039-.052.038-.053.038-.055.038-.055.038-.058.037-.058.037-.06.037-.06.036-.062.036-.064.036-.064.036-.066.035-.067.035-.068.035-.069.035-.07.034-.071.034-.073.033-.074.033-.15.066-.155.064-.16.063-.163.061-.168.06-.172.059-.175.057-.18.056-.183.054-.187.053-.191.051-.194.05-.198.048-.201.046-.205.045-.208.043-.211.041-.214.04-.217.038-.22.036-.223.034-.225.032-.229.031-.231.028-.233.027-.236.024-.239.023-.241.02-.242.019-.246.016-.247.015-.249.012-.251.01-.253.008-.255.005-.256.004-.258.001-.258-.001-.256-.004-.255-.005-.253-.008-.251-.01-.249-.012-.247-.015-.245-.016-.243-.019-.241-.02-.238-.023-.236-.024-.234-.027-.231-.028-.228-.031-.226-.032-.223-.034-.22-.036-.217-.038-.214-.04-.211-.041-.208-.043-.204-.045-.201-.046-.198-.048-.195-.05-.19-.051-.187-.053-.184-.054-.179-.056-.176-.057-.172-.059-.167-.06-.164-.061-.159-.063-.155-.064-.151-.066-.074-.033-.072-.033-.072-.034-.07-.034-.069-.035-.068-.035-.067-.035-.066-.035-.064-.036-.063-.036-.062-.036-.061-.036-.06-.037-.058-.037-.057-.037-.056-.038-.055-.038-.053-.038-.052-.038-.051-.039-.049-.039-.049-.039-.046-.039-.046-.04-.044-.04-.043-.04-.041-.04-.04-.041-.039-.041-.037-.041-.036-.041-.034-.041-.033-.042-.032-.042-.03-.042-.029-.042-.027-.042-.026-.043-.024-.043-.023-.043-.021-.043-.02-.043-.018-.044-.017-.043-.015-.044-.013-.044-.012-.044-.011-.045-.009-.044-.007-.045-.006-.045-.004-.045-.002-.045-.001-.045v-17l.001-.045.002-.045.004-.045.006-.045.007-.045.009-.044.011-.045.012-.044.013-.044.015-.044.017-.043.018-.044.02-.043.021-.043.023-.043.024-.043.026-.043.027-.042.029-.042.03-.042.032-.042.033-.042.034-.041.036-.041.037-.041.039-.041.04-.041.041-.04.043-.04.044-.04.046-.04.046-.039.049-.039.049-.039.051-.039.052-.038.053-.038.055-.038.056-.038.057-.037.058-.037.06-.037.061-.036.062-.036.063-.036.064-.036.066-.035.067-.035.068-.035.069-.035.07-.034.072-.034.072-.033.074-.033.151-.066.155-.064.159-.063.164-.061.167-.06.172-.059.176-.057.179-.056.184-.054.187-.053.19-.051.195-.05.198-.048.201-.046.204-.045.208-.043.211-.041.214-.04.217-.038.22-.036.223-.034.226-.032.228-.031.231-.028.234-.027.236-.024.238-.023.241-.02.243-.019.245-.016.247-.015.249-.012.251-.01.253-.008.255-.005.256-.004.258-.001.258.001zm-9.258 20.499v.01l.001.021.003.021.004.022.005.021.006.022.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.023.018.024.019.024.021.024.022.025.023.024.024.025.052.049.056.05.061.051.066.051.07.051.075.051.079.052.084.052.088.052.092.052.097.052.102.051.105.052.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.048.144.049.147.047.152.047.155.047.16.045.163.045.167.043.171.043.176.041.178.041.183.039.187.039.19.037.194.035.197.035.202.033.204.031.209.03.212.029.216.027.219.025.222.024.226.021.23.02.233.018.236.016.24.015.243.012.246.01.249.008.253.005.256.004.259.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.021.224-.024.22-.026.216-.027.212-.028.21-.031.205-.031.202-.034.198-.034.194-.036.191-.037.187-.039.183-.04.179-.04.175-.042.172-.043.168-.044.163-.045.16-.046.155-.046.152-.047.148-.048.143-.049.139-.049.136-.05.131-.05.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.053.083-.051.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.05.023-.024.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.023.01-.022.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.127l-.077.055-.08.053-.083.054-.085.053-.087.052-.09.052-.093.051-.095.05-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.045-.118.044-.12.043-.122.042-.124.042-.126.041-.128.04-.13.04-.132.038-.134.038-.135.037-.138.037-.139.035-.142.035-.143.034-.144.033-.147.032-.148.031-.15.03-.151.03-.153.029-.154.027-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.01-.179.008-.179.008-.181.006-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.006-.179-.008-.179-.008-.178-.01-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.027-.153-.029-.151-.03-.15-.03-.148-.031-.146-.032-.145-.033-.143-.034-.141-.035-.14-.035-.137-.037-.136-.037-.134-.038-.132-.038-.13-.04-.128-.04-.126-.041-.124-.042-.122-.042-.12-.044-.117-.043-.116-.045-.113-.045-.112-.046-.109-.047-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.05-.093-.052-.09-.051-.087-.052-.085-.053-.083-.054-.08-.054-.077-.054v4.127zm0-5.654v.011l.001.021.003.021.004.021.005.022.006.022.007.022.009.022.01.022.011.023.012.023.013.023.015.024.016.023.017.024.018.024.019.024.021.024.022.024.023.025.024.024.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.052.11.051.114.051.119.052.123.05.127.051.131.05.135.049.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.044.171.042.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.022.23.02.233.018.236.016.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.012.241-.015.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.048.139-.05.136-.049.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.051.051-.049.023-.025.023-.024.021-.025.02-.024.019-.024.018-.024.017-.024.015-.023.014-.023.013-.024.012-.022.01-.023.01-.023.008-.022.006-.022.006-.022.004-.021.004-.022.001-.021.001-.021v-4.139l-.077.054-.08.054-.083.054-.085.052-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.044-.118.044-.12.044-.122.042-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.035-.143.033-.144.033-.147.033-.148.031-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.009-.179.009-.179.007-.181.007-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.007-.179-.007-.179-.009-.178-.009-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.031-.146-.033-.145-.033-.143-.033-.141-.035-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.04-.126-.041-.124-.042-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.051-.093-.051-.09-.051-.087-.053-.085-.052-.083-.054-.08-.054-.077-.054v4.139zm0-5.666v.011l.001.02.003.022.004.021.005.022.006.021.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.024.018.023.019.024.021.025.022.024.023.024.024.025.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.051.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.043.171.043.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.021.23.02.233.018.236.017.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.013.241-.014.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.049.139-.049.136-.049.131-.051.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.049.023-.025.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.022.01-.023.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.153l-.077.054-.08.054-.083.053-.085.053-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.048-.105.048-.106.048-.109.046-.111.046-.114.046-.115.044-.118.044-.12.043-.122.043-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.034-.143.034-.144.033-.147.032-.148.032-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.024-.161.024-.162.023-.163.023-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.01-.178.01-.179.009-.179.007-.181.006-.182.006-.182.004-.184.003-.184.001-.185.001-.185-.001-.184-.001-.184-.003-.182-.004-.182-.006-.181-.006-.179-.007-.179-.009-.178-.01-.176-.01-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.023-.162-.023-.161-.024-.159-.024-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.032-.146-.032-.145-.033-.143-.034-.141-.034-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.041-.126-.041-.124-.041-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.048-.105-.048-.102-.048-.1-.05-.097-.049-.095-.051-.093-.051-.09-.052-.087-.052-.085-.053-.083-.053-.08-.054-.077-.054v4.153zm8.74-8.179l-.257.004-.254.005-.25.008-.247.011-.244.012-.241.014-.237.016-.233.018-.231.021-.226.022-.224.023-.22.026-.216.027-.212.028-.21.031-.205.032-.202.033-.198.034-.194.036-.191.038-.187.038-.183.04-.179.041-.175.042-.172.043-.168.043-.163.045-.16.046-.155.046-.152.048-.148.048-.143.048-.139.049-.136.05-.131.05-.126.051-.123.051-.118.051-.114.052-.11.052-.106.052-.101.052-.096.052-.092.052-.088.052-.083.052-.079.052-.074.051-.07.052-.065.051-.06.05-.056.05-.051.05-.023.025-.023.024-.021.024-.02.025-.019.024-.018.024-.017.023-.015.024-.014.023-.013.023-.012.023-.01.023-.01.022-.008.022-.006.023-.006.021-.004.022-.004.021-.001.021-.001.021.001.021.001.021.004.021.004.022.006.021.006.023.008.022.01.022.01.023.012.023.013.023.014.023.015.024.017.023.018.024.019.024.02.025.021.024.023.024.023.025.051.05.056.05.06.05.065.051.07.052.074.051.079.052.083.052.088.052.092.052.096.052.101.052.106.052.11.052.114.052.118.051.123.051.126.051.131.05.136.05.139.049.143.048.148.048.152.048.155.046.16.046.163.045.168.043.172.043.175.042.179.041.183.04.187.038.191.038.194.036.198.034.202.033.205.032.21.031.212.028.216.027.22.026.224.023.226.022.231.021.233.018.237.016.241.014.244.012.247.011.25.008.254.005.257.004.26.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.022.224-.023.22-.026.216-.027.212-.028.21-.031.205-.032.202-.033.198-.034.194-.036.191-.038.187-.038.183-.04.179-.041.175-.042.172-.043.168-.043.163-.045.16-.046.155-.046.152-.048.148-.048.143-.048.139-.049.136-.05.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.05.051-.05.023-.025.023-.024.021-.024.02-.025.019-.024.018-.024.017-.023.015-.024.014-.023.013-.023.012-.023.01-.023.01-.022.008-.022.006-.023.006-.021.004-.022.004-.021.001-.021.001-.021-.001-.021-.001-.021-.004-.021-.004-.022-.006-.021-.006-.023-.008-.022-.01-.022-.01-.023-.012-.023-.013-.023-.014-.023-.015-.024-.017-.023-.018-.024-.019-.024-.02-.025-.021-.024-.023-.024-.023-.025-.051-.05-.056-.05-.06-.05-.065-.051-.07-.052-.074-.051-.079-.052-.083-.052-.088-.052-.092-.052-.096-.052-.101-.052-.106-.052-.11-.052-.114-.052-.118-.051-.123-.051-.126-.051-.131-.05-.136-.05-.139-.049-.143-.048-.148-.048-.152-.048-.155-.046-.16-.046-.163-.045-.168-.043-.172-.043-.175-.042-.179-.041-.183-.04-.187-.038-.191-.038-.194-.036-.198-.034-.202-.033-.205-.032-.21-.031-.212-.028-.216-.027-.22-.026-.224-.023-.226-.022-.231-.021-.233-.018-.237-.016-.241-.014-.244-.012-.247-.011-.25-.008-.254-.005-.257-.004-.26-.001-.26.001z\"></path></symbol></defs><defs><symbol id=\"diagram-14230ad111715081e4d18ac5745a506f94a719ac1a773798f77d0192e7fc83ed-clock\" width=\"24\" height=\"24\"><path transform=\"scale(.5)\" d=\"M12 2c5.514 0 10 4.486 10 10s-4.486 10-10 10-10-4.486-10-10 4.486-10 10-10zm0-2c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm5.848 12.459c.202.038.202.333.001.372-1.907.361-6.045 1.111-6.547 1.111-.719 0-1.301-.582-1.301-1.301 0-.512.77-5.447 1.125-7.445.034-.192.312-.181.343.014l.985 6.238 5.394 1.011z\"></path></symbol></defs><defs><marker id=\"diagram-14230ad111715081e4d18ac5745a506f94a719ac1a773798f77d0192e7fc83ed-arrowhead\" refX=\"7.9\" refY=\"5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"12\" markerHeight=\"12\" orient=\"auto-start-reverse\"><path d=\"M -1 0 L 10 5 L 0 10 z\"></path></marker></defs><defs><marker id=\"diagram-14230ad111715081e4d18ac5745a506f94a719ac1a773798f77d0192e7fc83ed-crosshead\" markerWidth=\"15\" markerHeight=\"8\" orient=\"auto\" refX=\"4\" refY=\"4.5\"><path fill=\"none\" stroke=\"#000000\" stroke-width=\"1pt\" d=\"M 1,2 L 6,7 M 6,2 L 1,7\" style=\"stroke-dasharray: 0, 0;\"></path></marker></defs><defs><marker id=\"diagram-14230ad111715081e4d18ac5745a506f94a719ac1a773798f77d0192e7fc83ed-filled-head\" refX=\"15.5\" refY=\"7\" markerWidth=\"20\" markerHeight=\"28\" orient=\"auto\"><path d=\"M 18,7 L9,13 L14,7 L9,1 Z\"></path></marker></defs><defs><marker id=\"diagram-14230ad111715081e4d18ac5745a506f94a719ac1a773798f77d0192e7fc83ed-sequencenumber\" refX=\"15\" refY=\"15\" markerWidth=\"60\" markerHeight=\"40\" orient=\"auto\"><circle cx=\"15\" cy=\"15\" r=\"6\"></circle></marker></defs><defs><marker id=\"diagram-14230ad111715081e4d18ac5745a506f94a719ac1a773798f77d0192e7fc83ed-solidTopArrowHead\" refX=\"7.9\" refY=\"7.25\" markerUnits=\"userSpaceOnUse\" markerWidth=\"12\" markerHeight=\"12\" orient=\"auto-start-reverse\"><path d=\"M 0 0 L 10 8 L 0 8 z\"></path></marker></defs><defs><marker id=\"diagram-14230ad111715081e4d18ac5745a506f94a719ac1a773798f77d0192e7fc83ed-solidBottomArrowHead\" refX=\"7.9\" refY=\"0.75\" markerUnits=\"userSpaceOnUse\" markerWidth=\"12\" markerHeight=\"12\" orient=\"auto-start-reverse\"><path d=\"M 0 0 L 10 0 L 0 8 z\"></path></marker></defs><defs><marker id=\"diagram-14230ad111715081e4d18ac5745a506f94a719ac1a773798f77d0192e7fc83ed-stickTopArrowHead\" refX=\"7.5\" refY=\"7\" markerUnits=\"userSpaceOnUse\" markerWidth=\"12\" markerHeight=\"12\" orient=\"auto-start-reverse\"><path d=\"M 0 0 L 7 7\" stroke=\"black\" stroke-width=\"1.5\" fill=\"none\"></path></marker></defs><defs><marker id=\"diagram-14230ad111715081e4d18ac5745a506f94a719ac1a773798f77d0192e7fc83ed-stickBottomArrowHead\" refX=\"7.5\" refY=\"0\" markerUnits=\"userSpaceOnUse\" markerWidth=\"12\" markerHeight=\"12\" orient=\"auto-start-reverse\"><path d=\"M 0 7 L 7 0\" stroke=\"black\" stroke-width=\"1.5\" fill=\"none\"></path></marker></defs><g data-et=\"control-structure\" data-id=\"i10\"><line x1=\"69\" y1=\"268\" x2=\"814.5\" y2=\"268\" class=\"loopLine\"></line><line x1=\"814.5\" y1=\"268\" x2=\"814.5\" y2=\"584\" class=\"loopLine\"></line><line x1=\"69\" y1=\"584\" x2=\"814.5\" y2=\"584\" class=\"loopLine\"></line><line x1=\"69\" y1=\"268\" x2=\"69\" y2=\"584\" class=\"loopLine\"></line><line x1=\"69\" y1=\"454\" x2=\"814.5\" y2=\"454\" class=\"loopLine\" style=\"stroke-dasharray: 3, 3;\"></line><polygon points=\"69,268 119,268 119,281 110.6,288 69,288\" class=\"labelBox\"></polygon><text x=\"94\" y=\"281\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"labelText\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">alt</text><text x=\"466.75\" y=\"286\" text-anchor=\"middle\" class=\"loopText\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\"><tspan x=\"466.75\">[action succeeds]</tspan></text><text x=\"441.75\" y=\"472\" text-anchor=\"middle\" class=\"sectionTitle\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">[action refused]</text></g><text x=\"328\" y=\"107\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">OrderActionEvent (type, data.action_id)</text><line x1=\"81\" y1=\"138\" x2=\"575\" y2=\"138\" class=\"messageLine1\" data-et=\"message\" data-id=\"i0\" data-from=\"MC\" data-to=\"CN\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-14230ad111715081e4d18ac5745a506f94a719ac1a773798f77d0192e7fc83ed-filled-head)\" style=\"stroke-dasharray: 3, 3; fill: none;\"></line><text x=\"580\" y=\"153\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">Deduplicate on id, persist action_id</text><path d=\"M 580,184 C 640,174 640,214 580,204\" class=\"messageLine0\" data-et=\"message\" data-id=\"i1\" data-from=\"CN\" data-to=\"CN\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-14230ad111715081e4d18ac5745a506f94a719ac1a773798f77d0192e7fc83ed-arrowhead)\" style=\"fill: none;\"></path><text x=\"690\" y=\"229\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">Perform the action</text><line x1=\"580\" y1=\"258\" x2=\"799.5\" y2=\"258\" class=\"messageLine0\" data-et=\"message\" data-id=\"i2\" data-from=\"CN\" data-to=\"CH\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-14230ad111715081e4d18ac5745a506f94a719ac1a773798f77d0192e7fc83ed-arrowhead)\" style=\"fill: none;\"></line><text x=\"693\" y=\"318\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">done</text><line x1=\"802.5\" y1=\"347\" x2=\"583\" y2=\"347\" class=\"messageLine1\" data-et=\"message\" data-id=\"i4\" data-from=\"CH\" data-to=\"CN\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-14230ad111715081e4d18ac5745a506f94a719ac1a773798f77d0192e7fc83ed-arrowhead)\" style=\"stroke-dasharray: 3, 3; fill: none;\"></line><text x=\"331\" y=\"362\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">PUT /v1/orders/actions/{action_id} (SUCCESS)</text><line x1=\"578\" y1=\"393\" x2=\"84\" y2=\"393\" class=\"messageLine0\" data-et=\"message\" data-id=\"i5\" data-from=\"CN\" data-to=\"MC\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-14230ad111715081e4d18ac5745a506f94a719ac1a773798f77d0192e7fc83ed-arrowhead)\" style=\"fill: none;\"></line><text x=\"331\" y=\"408\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">POST /v1/orders (resulting state)</text><line x1=\"578\" y1=\"439\" x2=\"84\" y2=\"439\" class=\"messageLine0\" data-et=\"message\" data-id=\"i6\" data-from=\"CN\" data-to=\"MC\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-14230ad111715081e4d18ac5745a506f94a719ac1a773798f77d0192e7fc83ed-arrowhead)\" style=\"fill: none;\"></line><text x=\"693\" y=\"499\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">refused</text><line x1=\"802.5\" y1=\"528\" x2=\"583\" y2=\"528\" class=\"messageLine1\" data-et=\"message\" data-id=\"i8\" data-from=\"CH\" data-to=\"CN\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-14230ad111715081e4d18ac5745a506f94a719ac1a773798f77d0192e7fc83ed-arrowhead)\" style=\"stroke-dasharray: 3, 3; fill: none;\"></line><text x=\"331\" y=\"543\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">PUT /v1/orders/actions/{action_id} (FAILED + ActionError)</text><line x1=\"578\" y1=\"574\" x2=\"84\" y2=\"574\" class=\"messageLine0\" data-et=\"message\" data-id=\"i9\" data-from=\"CN\" data-to=\"MC\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-14230ad111715081e4d18ac5745a506f94a719ac1a773798f77d0192e7fc83ed-arrowhead)\" style=\"fill: none;\"></line></svg>","diagramHtmlDark":"<svg id=\"diagram-cfcf721916192d5809972bcab01e15725af551361f275776b20376c74cfb1012\" width=\"100%\" xmlns=\"http://www.w3.org/2000/svg\" style=\"max-width: 983.5px;\" viewBox=\"-50 -10 983.5 700\" role=\"graphics-document document\" aria-roledescription=\"sequence\"><style>\n    #diagram-cfcf721916192d5809972bcab01e15725af551361f275776b20376c74cfb1012 foreignObject {\n      overflow: visible;\n    }\n  </style><g><rect x=\"703.5\" y=\"-5\" fill=\"rgb(254,240,199)\" stroke=\"rgb(0,0,0, 0.5)\" width=\"200\" height=\"694\" class=\"rect\"></rect><text x=\"803.5\" y=\"13.5\" dominant-baseline=\"central\" alignment-baseline=\"central\" class=\"text\" style=\"text-anchor: middle; font-size: 16px; font-weight: 400; font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif;\"><tspan x=\"803.5\" dy=\"0\">Channel</tspan></text></g><g><rect x=\"474.5\" y=\"-5\" fill=\"rgb(209,250,229)\" stroke=\"rgb(0,0,0, 0.5)\" width=\"209\" height=\"694\" class=\"rect\"></rect><text x=\"579\" y=\"13.5\" dominant-baseline=\"central\" alignment-baseline=\"central\" class=\"text\" style=\"text-anchor: middle; font-size: 16px; font-weight: 400; font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif;\"><tspan x=\"579\" dy=\"0\">Middleware</tspan></text></g><g><rect x=\"-20\" y=\"-5\" fill=\"rgb(219,234,254)\" stroke=\"rgb(0,0,0, 0.5)\" width=\"200\" height=\"694\" class=\"rect\"></rect><text x=\"80\" y=\"13.5\" dominant-baseline=\"central\" alignment-baseline=\"central\" class=\"text\" style=\"text-anchor: middle; font-size: 16px; font-weight: 400; font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif;\"><tspan x=\"80\" dy=\"0\">Mirakl</tspan></text></g><g><rect x=\"728.5\" y=\"604\" fill=\"#eaeaea\" stroke=\"#666\" width=\"150\" height=\"65\" name=\"CH\" rx=\"3\" ry=\"3\" class=\"actor actor-bottom\"></rect><text x=\"803.5\" y=\"636.5\" dominant-baseline=\"central\" alignment-baseline=\"central\" class=\"actor actor-box\" style=\"text-anchor: middle; font-size: 16px; font-weight: 400; font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif;\"><tspan x=\"803.5\" dy=\"0\">Sales channel</tspan></text></g><g><rect x=\"499.5\" y=\"604\" fill=\"#eaeaea\" stroke=\"#666\" width=\"159\" height=\"65\" name=\"CN\" rx=\"3\" ry=\"3\" class=\"actor actor-bottom\"></rect><text x=\"579\" y=\"636.5\" dominant-baseline=\"central\" alignment-baseline=\"central\" class=\"actor actor-box\" style=\"text-anchor: middle; font-size: 16px; font-weight: 400; font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif;\"><tspan x=\"579\" dy=\"0\">Channel Connector</tspan></text></g><g><rect x=\"5\" y=\"604\" fill=\"#eaeaea\" stroke=\"#666\" width=\"150\" height=\"65\" name=\"MC\" rx=\"3\" ry=\"3\" class=\"actor actor-bottom\"></rect><text x=\"80\" y=\"636.5\" dominant-baseline=\"central\" alignment-baseline=\"central\" class=\"actor actor-box\" style=\"text-anchor: middle; font-size: 16px; font-weight: 400; font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif;\"><tspan x=\"80\" dy=\"0\">Mirakl Connect</tspan></text></g><g><line id=\"actor2\" x1=\"803.5\" y1=\"92\" x2=\"803.5\" y2=\"604\" class=\"actor-line 200\" stroke-width=\"0.5px\" stroke=\"#999\" name=\"CH\" data-et=\"life-line\" data-id=\"CH\"></line><g id=\"root-2\" data-et=\"participant\" data-type=\"participant\" data-id=\"CH\"><rect x=\"728.5\" y=\"27\" fill=\"#eaeaea\" stroke=\"#666\" width=\"150\" height=\"65\" name=\"CH\" rx=\"3\" ry=\"3\" class=\"actor actor-top\"></rect><text x=\"803.5\" y=\"59.5\" dominant-baseline=\"central\" alignment-baseline=\"central\" class=\"actor actor-box\" style=\"text-anchor: middle; font-size: 16px; font-weight: 400; font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif;\"><tspan x=\"803.5\" dy=\"0\">Sales channel</tspan></text></g></g><g><line id=\"actor1\" x1=\"579\" y1=\"92\" x2=\"579\" y2=\"604\" class=\"actor-line 200\" stroke-width=\"0.5px\" stroke=\"#999\" name=\"CN\" data-et=\"life-line\" data-id=\"CN\"></line><g id=\"root-1\" data-et=\"participant\" data-type=\"participant\" data-id=\"CN\"><rect x=\"499.5\" y=\"27\" fill=\"#eaeaea\" stroke=\"#666\" width=\"159\" height=\"65\" name=\"CN\" rx=\"3\" ry=\"3\" class=\"actor actor-top\"></rect><text x=\"579\" y=\"59.5\" dominant-baseline=\"central\" alignment-baseline=\"central\" class=\"actor actor-box\" style=\"text-anchor: middle; font-size: 16px; font-weight: 400; font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif;\"><tspan x=\"579\" dy=\"0\">Channel Connector</tspan></text></g></g><g><line id=\"actor0\" x1=\"80\" y1=\"92\" x2=\"80\" y2=\"604\" class=\"actor-line 200\" stroke-width=\"0.5px\" stroke=\"#999\" name=\"MC\" data-et=\"life-line\" data-id=\"MC\"></line><g id=\"root-0\" data-et=\"participant\" data-type=\"participant\" data-id=\"MC\"><rect x=\"5\" y=\"27\" fill=\"#eaeaea\" stroke=\"#666\" width=\"150\" height=\"65\" name=\"MC\" rx=\"3\" ry=\"3\" class=\"actor actor-top\"></rect><text x=\"80\" y=\"59.5\" dominant-baseline=\"central\" alignment-baseline=\"central\" class=\"actor actor-box\" style=\"text-anchor: middle; font-size: 16px; font-weight: 400; font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif;\"><tspan x=\"80\" dy=\"0\">Mirakl Connect</tspan></text></g></g><style>#diagram-cfcf721916192d5809972bcab01e15725af551361f275776b20376c74cfb1012{font-family:\"Redocly Mermaid Sans\",Arial,\"Liberation Sans\",Arimo,Helvetica,\"Redocly Mermaid CJK\",sans-serif;font-size:16px;fill:#ccc;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#diagram-cfcf721916192d5809972bcab01e15725af551361f275776b20376c74cfb1012 .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#diagram-cfcf721916192d5809972bcab01e15725af551361f275776b20376c74cfb1012 .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#diagram-cfcf721916192d5809972bcab01e15725af551361f275776b20376c74cfb1012 .error-icon{fill:#a44141;}#diagram-cfcf721916192d5809972bcab01e15725af551361f275776b20376c74cfb1012 .error-text{fill:#ddd;stroke:#ddd;}#diagram-cfcf721916192d5809972bcab01e15725af551361f275776b20376c74cfb1012 .edge-thickness-normal{stroke-width:1px;}#diagram-cfcf721916192d5809972bcab01e15725af551361f275776b20376c74cfb1012 .edge-thickness-thick{stroke-width:3.5px;}#diagram-cfcf721916192d5809972bcab01e15725af551361f275776b20376c74cfb1012 .edge-pattern-solid{stroke-dasharray:0;}#diagram-cfcf721916192d5809972bcab01e15725af551361f275776b20376c74cfb1012 .edge-thickness-invisible{stroke-width:0;fill:none;}#diagram-cfcf721916192d5809972bcab01e15725af551361f275776b20376c74cfb1012 .edge-pattern-dashed{stroke-dasharray:3;}#diagram-cfcf721916192d5809972bcab01e15725af551361f275776b20376c74cfb1012 .edge-pattern-dotted{stroke-dasharray:2;}#diagram-cfcf721916192d5809972bcab01e15725af551361f275776b20376c74cfb1012 .marker{fill:lightgrey;stroke:lightgrey;}#diagram-cfcf721916192d5809972bcab01e15725af551361f275776b20376c74cfb1012 .marker.cross{stroke:lightgrey;}#diagram-cfcf721916192d5809972bcab01e15725af551361f275776b20376c74cfb1012 svg{font-family:\"Redocly Mermaid Sans\",Arial,\"Liberation Sans\",Arimo,Helvetica,\"Redocly Mermaid CJK\",sans-serif;font-size:16px;}#diagram-cfcf721916192d5809972bcab01e15725af551361f275776b20376c74cfb1012 p{margin:0;}#diagram-cfcf721916192d5809972bcab01e15725af551361f275776b20376c74cfb1012 .actor{stroke:#ccc;fill:#1f2020;stroke-width:1;}#diagram-cfcf721916192d5809972bcab01e15725af551361f275776b20376c74cfb1012 rect.actor.outer-path[data-look=\"neo\"]{filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-cfcf721916192d5809972bcab01e15725af551361f275776b20376c74cfb1012 rect.note[data-look=\"neo\"]{stroke:hsl(180, 0%, 18.3529411765%);fill:hsl(180, 1.5873015873%, 28.3529411765%);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-cfcf721916192d5809972bcab01e15725af551361f275776b20376c74cfb1012 text.actor&gt;tspan{fill:lightgrey;stroke:none;}#diagram-cfcf721916192d5809972bcab01e15725af551361f275776b20376c74cfb1012 .actor-line{stroke:#ccc;}#diagram-cfcf721916192d5809972bcab01e15725af551361f275776b20376c74cfb1012 .innerArc{stroke-width:1.5;stroke-dasharray:none;}#diagram-cfcf721916192d5809972bcab01e15725af551361f275776b20376c74cfb1012 .messageLine0{stroke-width:1.5;stroke-dasharray:none;stroke:lightgrey;}#diagram-cfcf721916192d5809972bcab01e15725af551361f275776b20376c74cfb1012 .messageLine1{stroke-width:1.5;stroke-dasharray:2,2;stroke:lightgrey;}#diagram-cfcf721916192d5809972bcab01e15725af551361f275776b20376c74cfb1012 [id$=\"-arrowhead\"] path{fill:lightgrey;stroke:lightgrey;}#diagram-cfcf721916192d5809972bcab01e15725af551361f275776b20376c74cfb1012 .sequenceNumber{fill:black;}#diagram-cfcf721916192d5809972bcab01e15725af551361f275776b20376c74cfb1012 [id$=\"-sequencenumber\"]{fill:lightgrey;}#diagram-cfcf721916192d5809972bcab01e15725af551361f275776b20376c74cfb1012 [id$=\"-crosshead\"] path{fill:lightgrey;stroke:lightgrey;}#diagram-cfcf721916192d5809972bcab01e15725af551361f275776b20376c74cfb1012 .messageText{fill:lightgrey;stroke:none;}#diagram-cfcf721916192d5809972bcab01e15725af551361f275776b20376c74cfb1012 .labelBox{stroke:#ccc;fill:#1f2020;filter:none;}#diagram-cfcf721916192d5809972bcab01e15725af551361f275776b20376c74cfb1012 .labelText,#diagram-cfcf721916192d5809972bcab01e15725af551361f275776b20376c74cfb1012 .labelText&gt;tspan{fill:lightgrey;stroke:none;}#diagram-cfcf721916192d5809972bcab01e15725af551361f275776b20376c74cfb1012 .loopText,#diagram-cfcf721916192d5809972bcab01e15725af551361f275776b20376c74cfb1012 .loopText&gt;tspan{fill:lightgrey;stroke:none;}#diagram-cfcf721916192d5809972bcab01e15725af551361f275776b20376c74cfb1012 .sectionTitle,#diagram-cfcf721916192d5809972bcab01e15725af551361f275776b20376c74cfb1012 .sectionTitle&gt;tspan{fill:lightgrey;stroke:none;}#diagram-cfcf721916192d5809972bcab01e15725af551361f275776b20376c74cfb1012 .loopLine{stroke-width:2px;stroke-dasharray:2,2;stroke:#ccc;fill:#ccc;}#diagram-cfcf721916192d5809972bcab01e15725af551361f275776b20376c74cfb1012 .note{stroke:hsl(180, 0%, 18.3529411765%);fill:hsl(180, 1.5873015873%, 28.3529411765%);}#diagram-cfcf721916192d5809972bcab01e15725af551361f275776b20376c74cfb1012 .noteText,#diagram-cfcf721916192d5809972bcab01e15725af551361f275776b20376c74cfb1012 .noteText&gt;tspan{fill:rgb(183.8476190475, 181.5523809523, 181.5523809523);stroke:none;font-weight:normal;}#diagram-cfcf721916192d5809972bcab01e15725af551361f275776b20376c74cfb1012 .activation0{fill:hsl(180, 1.5873015873%, 28.3529411765%);stroke:#ccc;}#diagram-cfcf721916192d5809972bcab01e15725af551361f275776b20376c74cfb1012 .activation1{fill:hsl(180, 1.5873015873%, 28.3529411765%);stroke:#ccc;}#diagram-cfcf721916192d5809972bcab01e15725af551361f275776b20376c74cfb1012 .activation2{fill:hsl(180, 1.5873015873%, 28.3529411765%);stroke:#ccc;}#diagram-cfcf721916192d5809972bcab01e15725af551361f275776b20376c74cfb1012 .actorPopupMenu{position:absolute;}#diagram-cfcf721916192d5809972bcab01e15725af551361f275776b20376c74cfb1012 .actorPopupMenuPanel{position:absolute;fill:#1f2020;box-shadow:0px 8px 16px 0px rgba(0,0,0,0.2);filter:drop-shadow(3px 5px 2px rgb(0 0 0 / 0.4));}#diagram-cfcf721916192d5809972bcab01e15725af551361f275776b20376c74cfb1012 .actor-man circle,#diagram-cfcf721916192d5809972bcab01e15725af551361f275776b20376c74cfb1012 line{fill:#1f2020;stroke-width:2px;}#diagram-cfcf721916192d5809972bcab01e15725af551361f275776b20376c74cfb1012 g rect.rect{filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));stroke:#ccc;}#diagram-cfcf721916192d5809972bcab01e15725af551361f275776b20376c74cfb1012 .node .neo-node{stroke:#ccc;}#diagram-cfcf721916192d5809972bcab01e15725af551361f275776b20376c74cfb1012 [data-look=\"neo\"].node rect,#diagram-cfcf721916192d5809972bcab01e15725af551361f275776b20376c74cfb1012 [data-look=\"neo\"].cluster rect,#diagram-cfcf721916192d5809972bcab01e15725af551361f275776b20376c74cfb1012 [data-look=\"neo\"].node polygon{stroke:url(#diagram-cfcf721916192d5809972bcab01e15725af551361f275776b20376c74cfb1012-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-cfcf721916192d5809972bcab01e15725af551361f275776b20376c74cfb1012 [data-look=\"neo\"].swimlane.cluster rect{filter:none;}#diagram-cfcf721916192d5809972bcab01e15725af551361f275776b20376c74cfb1012 [data-look=\"neo\"].node path{stroke:url(#diagram-cfcf721916192d5809972bcab01e15725af551361f275776b20376c74cfb1012-gradient);stroke-width:1px;}#diagram-cfcf721916192d5809972bcab01e15725af551361f275776b20376c74cfb1012 [data-look=\"neo\"].node .outer-path{filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-cfcf721916192d5809972bcab01e15725af551361f275776b20376c74cfb1012 [data-look=\"neo\"].node .neo-line path{stroke:#ccc;filter:none;}#diagram-cfcf721916192d5809972bcab01e15725af551361f275776b20376c74cfb1012 [data-look=\"neo\"].node circle{stroke:url(#diagram-cfcf721916192d5809972bcab01e15725af551361f275776b20376c74cfb1012-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-cfcf721916192d5809972bcab01e15725af551361f275776b20376c74cfb1012 [data-look=\"neo\"].node circle .state-start{fill:#000000;}#diagram-cfcf721916192d5809972bcab01e15725af551361f275776b20376c74cfb1012 [data-look=\"neo\"].icon-shape .icon{fill:url(#diagram-cfcf721916192d5809972bcab01e15725af551361f275776b20376c74cfb1012-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-cfcf721916192d5809972bcab01e15725af551361f275776b20376c74cfb1012 [data-look=\"neo\"].icon-shape .icon-neo path{stroke:url(#diagram-cfcf721916192d5809972bcab01e15725af551361f275776b20376c74cfb1012-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-cfcf721916192d5809972bcab01e15725af551361f275776b20376c74cfb1012 :root{--mermaid-font-family:\"Redocly Mermaid Sans\",Arial,\"Liberation Sans\",Arimo,Helvetica,\"Redocly Mermaid CJK\",sans-serif;}</style><g></g><defs><symbol id=\"diagram-cfcf721916192d5809972bcab01e15725af551361f275776b20376c74cfb1012-computer\" width=\"24\" height=\"24\"><path transform=\"scale(.5)\" d=\"M2 2v13h20v-13h-20zm18 11h-16v-9h16v9zm-10.228 6l.466-1h3.524l.467 1h-4.457zm14.228 3h-24l2-6h2.104l-1.33 4h18.45l-1.297-4h2.073l2 6zm-5-10h-14v-7h14v7z\"></path></symbol></defs><defs><symbol id=\"diagram-cfcf721916192d5809972bcab01e15725af551361f275776b20376c74cfb1012-database\" fill-rule=\"evenodd\" clip-rule=\"evenodd\"><path transform=\"scale(.5)\" d=\"M12.258.001l.256.004.255.005.253.008.251.01.249.012.247.015.246.016.242.019.241.02.239.023.236.024.233.027.231.028.229.031.225.032.223.034.22.036.217.038.214.04.211.041.208.043.205.045.201.046.198.048.194.05.191.051.187.053.183.054.18.056.175.057.172.059.168.06.163.061.16.063.155.064.15.066.074.033.073.033.071.034.07.034.069.035.068.035.067.035.066.035.064.036.064.036.062.036.06.036.06.037.058.037.058.037.055.038.055.038.053.038.052.038.051.039.05.039.048.039.047.039.045.04.044.04.043.04.041.04.04.041.039.041.037.041.036.041.034.041.033.042.032.042.03.042.029.042.027.042.026.043.024.043.023.043.021.043.02.043.018.044.017.043.015.044.013.044.012.044.011.045.009.044.007.045.006.045.004.045.002.045.001.045v17l-.001.045-.002.045-.004.045-.006.045-.007.045-.009.044-.011.045-.012.044-.013.044-.015.044-.017.043-.018.044-.02.043-.021.043-.023.043-.024.043-.026.043-.027.042-.029.042-.03.042-.032.042-.033.042-.034.041-.036.041-.037.041-.039.041-.04.041-.041.04-.043.04-.044.04-.045.04-.047.039-.048.039-.05.039-.051.039-.052.038-.053.038-.055.038-.055.038-.058.037-.058.037-.06.037-.06.036-.062.036-.064.036-.064.036-.066.035-.067.035-.068.035-.069.035-.07.034-.071.034-.073.033-.074.033-.15.066-.155.064-.16.063-.163.061-.168.06-.172.059-.175.057-.18.056-.183.054-.187.053-.191.051-.194.05-.198.048-.201.046-.205.045-.208.043-.211.041-.214.04-.217.038-.22.036-.223.034-.225.032-.229.031-.231.028-.233.027-.236.024-.239.023-.241.02-.242.019-.246.016-.247.015-.249.012-.251.01-.253.008-.255.005-.256.004-.258.001-.258-.001-.256-.004-.255-.005-.253-.008-.251-.01-.249-.012-.247-.015-.245-.016-.243-.019-.241-.02-.238-.023-.236-.024-.234-.027-.231-.028-.228-.031-.226-.032-.223-.034-.22-.036-.217-.038-.214-.04-.211-.041-.208-.043-.204-.045-.201-.046-.198-.048-.195-.05-.19-.051-.187-.053-.184-.054-.179-.056-.176-.057-.172-.059-.167-.06-.164-.061-.159-.063-.155-.064-.151-.066-.074-.033-.072-.033-.072-.034-.07-.034-.069-.035-.068-.035-.067-.035-.066-.035-.064-.036-.063-.036-.062-.036-.061-.036-.06-.037-.058-.037-.057-.037-.056-.038-.055-.038-.053-.038-.052-.038-.051-.039-.049-.039-.049-.039-.046-.039-.046-.04-.044-.04-.043-.04-.041-.04-.04-.041-.039-.041-.037-.041-.036-.041-.034-.041-.033-.042-.032-.042-.03-.042-.029-.042-.027-.042-.026-.043-.024-.043-.023-.043-.021-.043-.02-.043-.018-.044-.017-.043-.015-.044-.013-.044-.012-.044-.011-.045-.009-.044-.007-.045-.006-.045-.004-.045-.002-.045-.001-.045v-17l.001-.045.002-.045.004-.045.006-.045.007-.045.009-.044.011-.045.012-.044.013-.044.015-.044.017-.043.018-.044.02-.043.021-.043.023-.043.024-.043.026-.043.027-.042.029-.042.03-.042.032-.042.033-.042.034-.041.036-.041.037-.041.039-.041.04-.041.041-.04.043-.04.044-.04.046-.04.046-.039.049-.039.049-.039.051-.039.052-.038.053-.038.055-.038.056-.038.057-.037.058-.037.06-.037.061-.036.062-.036.063-.036.064-.036.066-.035.067-.035.068-.035.069-.035.07-.034.072-.034.072-.033.074-.033.151-.066.155-.064.159-.063.164-.061.167-.06.172-.059.176-.057.179-.056.184-.054.187-.053.19-.051.195-.05.198-.048.201-.046.204-.045.208-.043.211-.041.214-.04.217-.038.22-.036.223-.034.226-.032.228-.031.231-.028.234-.027.236-.024.238-.023.241-.02.243-.019.245-.016.247-.015.249-.012.251-.01.253-.008.255-.005.256-.004.258-.001.258.001zm-9.258 20.499v.01l.001.021.003.021.004.022.005.021.006.022.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.023.018.024.019.024.021.024.022.025.023.024.024.025.052.049.056.05.061.051.066.051.07.051.075.051.079.052.084.052.088.052.092.052.097.052.102.051.105.052.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.048.144.049.147.047.152.047.155.047.16.045.163.045.167.043.171.043.176.041.178.041.183.039.187.039.19.037.194.035.197.035.202.033.204.031.209.03.212.029.216.027.219.025.222.024.226.021.23.02.233.018.236.016.24.015.243.012.246.01.249.008.253.005.256.004.259.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.021.224-.024.22-.026.216-.027.212-.028.21-.031.205-.031.202-.034.198-.034.194-.036.191-.037.187-.039.183-.04.179-.04.175-.042.172-.043.168-.044.163-.045.16-.046.155-.046.152-.047.148-.048.143-.049.139-.049.136-.05.131-.05.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.053.083-.051.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.05.023-.024.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.023.01-.022.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.127l-.077.055-.08.053-.083.054-.085.053-.087.052-.09.052-.093.051-.095.05-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.045-.118.044-.12.043-.122.042-.124.042-.126.041-.128.04-.13.04-.132.038-.134.038-.135.037-.138.037-.139.035-.142.035-.143.034-.144.033-.147.032-.148.031-.15.03-.151.03-.153.029-.154.027-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.01-.179.008-.179.008-.181.006-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.006-.179-.008-.179-.008-.178-.01-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.027-.153-.029-.151-.03-.15-.03-.148-.031-.146-.032-.145-.033-.143-.034-.141-.035-.14-.035-.137-.037-.136-.037-.134-.038-.132-.038-.13-.04-.128-.04-.126-.041-.124-.042-.122-.042-.12-.044-.117-.043-.116-.045-.113-.045-.112-.046-.109-.047-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.05-.093-.052-.09-.051-.087-.052-.085-.053-.083-.054-.08-.054-.077-.054v4.127zm0-5.654v.011l.001.021.003.021.004.021.005.022.006.022.007.022.009.022.01.022.011.023.012.023.013.023.015.024.016.023.017.024.018.024.019.024.021.024.022.024.023.025.024.024.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.052.11.051.114.051.119.052.123.05.127.051.131.05.135.049.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.044.171.042.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.022.23.02.233.018.236.016.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.012.241-.015.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.048.139-.05.136-.049.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.051.051-.049.023-.025.023-.024.021-.025.02-.024.019-.024.018-.024.017-.024.015-.023.014-.023.013-.024.012-.022.01-.023.01-.023.008-.022.006-.022.006-.022.004-.021.004-.022.001-.021.001-.021v-4.139l-.077.054-.08.054-.083.054-.085.052-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.044-.118.044-.12.044-.122.042-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.035-.143.033-.144.033-.147.033-.148.031-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.009-.179.009-.179.007-.181.007-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.007-.179-.007-.179-.009-.178-.009-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.031-.146-.033-.145-.033-.143-.033-.141-.035-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.04-.126-.041-.124-.042-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.051-.093-.051-.09-.051-.087-.053-.085-.052-.083-.054-.08-.054-.077-.054v4.139zm0-5.666v.011l.001.02.003.022.004.021.005.022.006.021.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.024.018.023.019.024.021.025.022.024.023.024.024.025.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.051.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.043.171.043.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.021.23.02.233.018.236.017.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.013.241-.014.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.049.139-.049.136-.049.131-.051.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.049.023-.025.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.022.01-.023.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.153l-.077.054-.08.054-.083.053-.085.053-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.048-.105.048-.106.048-.109.046-.111.046-.114.046-.115.044-.118.044-.12.043-.122.043-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.034-.143.034-.144.033-.147.032-.148.032-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.024-.161.024-.162.023-.163.023-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.01-.178.01-.179.009-.179.007-.181.006-.182.006-.182.004-.184.003-.184.001-.185.001-.185-.001-.184-.001-.184-.003-.182-.004-.182-.006-.181-.006-.179-.007-.179-.009-.178-.01-.176-.01-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.023-.162-.023-.161-.024-.159-.024-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.032-.146-.032-.145-.033-.143-.034-.141-.034-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.041-.126-.041-.124-.041-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.048-.105-.048-.102-.048-.1-.05-.097-.049-.095-.051-.093-.051-.09-.052-.087-.052-.085-.053-.083-.053-.08-.054-.077-.054v4.153zm8.74-8.179l-.257.004-.254.005-.25.008-.247.011-.244.012-.241.014-.237.016-.233.018-.231.021-.226.022-.224.023-.22.026-.216.027-.212.028-.21.031-.205.032-.202.033-.198.034-.194.036-.191.038-.187.038-.183.04-.179.041-.175.042-.172.043-.168.043-.163.045-.16.046-.155.046-.152.048-.148.048-.143.048-.139.049-.136.05-.131.05-.126.051-.123.051-.118.051-.114.052-.11.052-.106.052-.101.052-.096.052-.092.052-.088.052-.083.052-.079.052-.074.051-.07.052-.065.051-.06.05-.056.05-.051.05-.023.025-.023.024-.021.024-.02.025-.019.024-.018.024-.017.023-.015.024-.014.023-.013.023-.012.023-.01.023-.01.022-.008.022-.006.023-.006.021-.004.022-.004.021-.001.021-.001.021.001.021.001.021.004.021.004.022.006.021.006.023.008.022.01.022.01.023.012.023.013.023.014.023.015.024.017.023.018.024.019.024.02.025.021.024.023.024.023.025.051.05.056.05.06.05.065.051.07.052.074.051.079.052.083.052.088.052.092.052.096.052.101.052.106.052.11.052.114.052.118.051.123.051.126.051.131.05.136.05.139.049.143.048.148.048.152.048.155.046.16.046.163.045.168.043.172.043.175.042.179.041.183.04.187.038.191.038.194.036.198.034.202.033.205.032.21.031.212.028.216.027.22.026.224.023.226.022.231.021.233.018.237.016.241.014.244.012.247.011.25.008.254.005.257.004.26.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.022.224-.023.22-.026.216-.027.212-.028.21-.031.205-.032.202-.033.198-.034.194-.036.191-.038.187-.038.183-.04.179-.041.175-.042.172-.043.168-.043.163-.045.16-.046.155-.046.152-.048.148-.048.143-.048.139-.049.136-.05.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.05.051-.05.023-.025.023-.024.021-.024.02-.025.019-.024.018-.024.017-.023.015-.024.014-.023.013-.023.012-.023.01-.023.01-.022.008-.022.006-.023.006-.021.004-.022.004-.021.001-.021.001-.021-.001-.021-.001-.021-.004-.021-.004-.022-.006-.021-.006-.023-.008-.022-.01-.022-.01-.023-.012-.023-.013-.023-.014-.023-.015-.024-.017-.023-.018-.024-.019-.024-.02-.025-.021-.024-.023-.024-.023-.025-.051-.05-.056-.05-.06-.05-.065-.051-.07-.052-.074-.051-.079-.052-.083-.052-.088-.052-.092-.052-.096-.052-.101-.052-.106-.052-.11-.052-.114-.052-.118-.051-.123-.051-.126-.051-.131-.05-.136-.05-.139-.049-.143-.048-.148-.048-.152-.048-.155-.046-.16-.046-.163-.045-.168-.043-.172-.043-.175-.042-.179-.041-.183-.04-.187-.038-.191-.038-.194-.036-.198-.034-.202-.033-.205-.032-.21-.031-.212-.028-.216-.027-.22-.026-.224-.023-.226-.022-.231-.021-.233-.018-.237-.016-.241-.014-.244-.012-.247-.011-.25-.008-.254-.005-.257-.004-.26-.001-.26.001z\"></path></symbol></defs><defs><symbol id=\"diagram-cfcf721916192d5809972bcab01e15725af551361f275776b20376c74cfb1012-clock\" width=\"24\" height=\"24\"><path transform=\"scale(.5)\" d=\"M12 2c5.514 0 10 4.486 10 10s-4.486 10-10 10-10-4.486-10-10 4.486-10 10-10zm0-2c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm5.848 12.459c.202.038.202.333.001.372-1.907.361-6.045 1.111-6.547 1.111-.719 0-1.301-.582-1.301-1.301 0-.512.77-5.447 1.125-7.445.034-.192.312-.181.343.014l.985 6.238 5.394 1.011z\"></path></symbol></defs><defs><marker id=\"diagram-cfcf721916192d5809972bcab01e15725af551361f275776b20376c74cfb1012-arrowhead\" refX=\"7.9\" refY=\"5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"12\" markerHeight=\"12\" orient=\"auto-start-reverse\"><path d=\"M -1 0 L 10 5 L 0 10 z\"></path></marker></defs><defs><marker id=\"diagram-cfcf721916192d5809972bcab01e15725af551361f275776b20376c74cfb1012-crosshead\" markerWidth=\"15\" markerHeight=\"8\" orient=\"auto\" refX=\"4\" refY=\"4.5\"><path fill=\"none\" stroke=\"#000000\" stroke-width=\"1pt\" d=\"M 1,2 L 6,7 M 6,2 L 1,7\" style=\"stroke-dasharray: 0, 0;\"></path></marker></defs><defs><marker id=\"diagram-cfcf721916192d5809972bcab01e15725af551361f275776b20376c74cfb1012-filled-head\" refX=\"15.5\" refY=\"7\" markerWidth=\"20\" markerHeight=\"28\" orient=\"auto\"><path d=\"M 18,7 L9,13 L14,7 L9,1 Z\"></path></marker></defs><defs><marker id=\"diagram-cfcf721916192d5809972bcab01e15725af551361f275776b20376c74cfb1012-sequencenumber\" refX=\"15\" refY=\"15\" markerWidth=\"60\" markerHeight=\"40\" orient=\"auto\"><circle cx=\"15\" cy=\"15\" r=\"6\"></circle></marker></defs><defs><marker id=\"diagram-cfcf721916192d5809972bcab01e15725af551361f275776b20376c74cfb1012-solidTopArrowHead\" refX=\"7.9\" refY=\"7.25\" markerUnits=\"userSpaceOnUse\" markerWidth=\"12\" markerHeight=\"12\" orient=\"auto-start-reverse\"><path d=\"M 0 0 L 10 8 L 0 8 z\"></path></marker></defs><defs><marker id=\"diagram-cfcf721916192d5809972bcab01e15725af551361f275776b20376c74cfb1012-solidBottomArrowHead\" refX=\"7.9\" refY=\"0.75\" markerUnits=\"userSpaceOnUse\" markerWidth=\"12\" markerHeight=\"12\" orient=\"auto-start-reverse\"><path d=\"M 0 0 L 10 0 L 0 8 z\"></path></marker></defs><defs><marker id=\"diagram-cfcf721916192d5809972bcab01e15725af551361f275776b20376c74cfb1012-stickTopArrowHead\" refX=\"7.5\" refY=\"7\" markerUnits=\"userSpaceOnUse\" markerWidth=\"12\" markerHeight=\"12\" orient=\"auto-start-reverse\"><path d=\"M 0 0 L 7 7\" stroke=\"black\" stroke-width=\"1.5\" fill=\"none\"></path></marker></defs><defs><marker id=\"diagram-cfcf721916192d5809972bcab01e15725af551361f275776b20376c74cfb1012-stickBottomArrowHead\" refX=\"7.5\" refY=\"0\" markerUnits=\"userSpaceOnUse\" markerWidth=\"12\" markerHeight=\"12\" orient=\"auto-start-reverse\"><path d=\"M 0 7 L 7 0\" stroke=\"black\" stroke-width=\"1.5\" fill=\"none\"></path></marker></defs><g data-et=\"control-structure\" data-id=\"i10\"><line x1=\"69\" y1=\"268\" x2=\"814.5\" y2=\"268\" class=\"loopLine\"></line><line x1=\"814.5\" y1=\"268\" x2=\"814.5\" y2=\"584\" class=\"loopLine\"></line><line x1=\"69\" y1=\"584\" x2=\"814.5\" y2=\"584\" class=\"loopLine\"></line><line x1=\"69\" y1=\"268\" x2=\"69\" y2=\"584\" class=\"loopLine\"></line><line x1=\"69\" y1=\"454\" x2=\"814.5\" y2=\"454\" class=\"loopLine\" style=\"stroke-dasharray: 3, 3;\"></line><polygon points=\"69,268 119,268 119,281 110.6,288 69,288\" class=\"labelBox\"></polygon><text x=\"94\" y=\"281\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"labelText\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">alt</text><text x=\"466.75\" y=\"286\" text-anchor=\"middle\" class=\"loopText\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\"><tspan x=\"466.75\">[action succeeds]</tspan></text><text x=\"441.75\" y=\"472\" text-anchor=\"middle\" class=\"sectionTitle\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">[action refused]</text></g><text x=\"328\" y=\"107\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">OrderActionEvent (type, data.action_id)</text><line x1=\"81\" y1=\"138\" x2=\"575\" y2=\"138\" class=\"messageLine1\" data-et=\"message\" data-id=\"i0\" data-from=\"MC\" data-to=\"CN\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-cfcf721916192d5809972bcab01e15725af551361f275776b20376c74cfb1012-filled-head)\" style=\"stroke-dasharray: 3, 3; fill: none;\"></line><text x=\"580\" y=\"153\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">Deduplicate on id, persist action_id</text><path d=\"M 580,184 C 640,174 640,214 580,204\" class=\"messageLine0\" data-et=\"message\" data-id=\"i1\" data-from=\"CN\" data-to=\"CN\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-cfcf721916192d5809972bcab01e15725af551361f275776b20376c74cfb1012-arrowhead)\" style=\"fill: none;\"></path><text x=\"690\" y=\"229\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">Perform the action</text><line x1=\"580\" y1=\"258\" x2=\"799.5\" y2=\"258\" class=\"messageLine0\" data-et=\"message\" data-id=\"i2\" data-from=\"CN\" data-to=\"CH\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-cfcf721916192d5809972bcab01e15725af551361f275776b20376c74cfb1012-arrowhead)\" style=\"fill: none;\"></line><text x=\"693\" y=\"318\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">done</text><line x1=\"802.5\" y1=\"347\" x2=\"583\" y2=\"347\" class=\"messageLine1\" data-et=\"message\" data-id=\"i4\" data-from=\"CH\" data-to=\"CN\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-cfcf721916192d5809972bcab01e15725af551361f275776b20376c74cfb1012-arrowhead)\" style=\"stroke-dasharray: 3, 3; fill: none;\"></line><text x=\"331\" y=\"362\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">PUT /v1/orders/actions/{action_id} (SUCCESS)</text><line x1=\"578\" y1=\"393\" x2=\"84\" y2=\"393\" class=\"messageLine0\" data-et=\"message\" data-id=\"i5\" data-from=\"CN\" data-to=\"MC\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-cfcf721916192d5809972bcab01e15725af551361f275776b20376c74cfb1012-arrowhead)\" style=\"fill: none;\"></line><text x=\"331\" y=\"408\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">POST /v1/orders (resulting state)</text><line x1=\"578\" y1=\"439\" x2=\"84\" y2=\"439\" class=\"messageLine0\" data-et=\"message\" data-id=\"i6\" data-from=\"CN\" data-to=\"MC\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-cfcf721916192d5809972bcab01e15725af551361f275776b20376c74cfb1012-arrowhead)\" style=\"fill: none;\"></line><text x=\"693\" y=\"499\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">refused</text><line x1=\"802.5\" y1=\"528\" x2=\"583\" y2=\"528\" class=\"messageLine1\" data-et=\"message\" data-id=\"i8\" data-from=\"CH\" data-to=\"CN\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-cfcf721916192d5809972bcab01e15725af551361f275776b20376c74cfb1012-arrowhead)\" style=\"stroke-dasharray: 3, 3; fill: none;\"></line><text x=\"331\" y=\"543\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">PUT /v1/orders/actions/{action_id} (FAILED + ActionError)</text><line x1=\"578\" y1=\"574\" x2=\"84\" y2=\"574\" class=\"messageLine0\" data-et=\"message\" data-id=\"i9\" data-from=\"CN\" data-to=\"MC\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-cfcf721916192d5809972bcab01e15725af551361f275776b20376c74cfb1012-arrowhead)\" style=\"fill: none;\"></line></svg>"},"children":["sequenceDiagram\n    box rgb(219,234,254) Mirakl\n    participant MC as Mirakl Connect\n    end\n    box rgb(209,250,229) Middleware\n    participant CN as Channel Connector\n    end\n    box rgb(254,240,199) Channel\n    participant CH as Sales channel\n    end\n\n    MC--)CN: OrderActionEvent (type, data.action_id)\n    CN->>CN: Deduplicate on id, persist action_id\n    CN->>CH: Perform the action\n    alt action succeeds\n        CH-->>CN: done\n        CN->>MC: PUT /v1/orders/actions/{action_id} (SUCCESS)\n        CN->>MC: POST /v1/orders (resulting state)\n    else action refused\n        CH-->>CN: refused\n        CN->>MC: PUT /v1/orders/actions/{action_id} (FAILED + ActionError)\n    end\n"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"step-by-step","__idx":4},"children":["Step by step"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"1-receive-and-deduplicate-the-event","__idx":5},"children":["1. Receive and deduplicate the event"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Every event arrives in the shared envelope, with an ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["id"]},", which is a ULID, a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["time"]},", a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["type"]},", and a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["data"]}," body."," ","Deduplicate on the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["id"]},", so that a repeat delivery does nothing twice."," ","Persist the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["data.action_id"]},", because it is how you report the outcome, and it must survive a restart."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"2-dispatch-on-the-action-type","__idx":6},"children":["2. Dispatch on the action ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["type"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["type"]}," names the action and selects the shape of ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["data"]},"."," ","The set of ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["type"]}," values can grow, so plan for a value you do not know yet:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Map each action to the closest action on the channel, and keep that mapping as accurate as you can."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Report ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["FAILED"]}," with ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ACTION_NOT_SUPPORTED"]}," only when the channel offers no action for the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["type"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Report an outcome for every action you receive, so that no action stays pending."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["data"]}," of each order action carries the identifiers, which are ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["action_id"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["channel_id"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["channel_store_id"]},", and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["channel_order_id"]},", plus what the action needs."," ","It also carries the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["sub_channel_code"]}," when the order belongs to a sub-channel (read ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/content/product/connect-channel-platform/developer-guide/orders#naming-the-sub-channel-of-an-order"},"children":["Naming the sub-channel of an order"]},")."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"examples","__idx":7},"children":["Examples"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ACCEPT"]}," accepts or refuses the order's lines:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"{\n  \"type\": \"ACCEPT\",\n  \"data\": {\n    \"action_id\": \"1ba5fc4b-c4fd-4251-880b-3052e301bbd4\",\n    \"channel_id\": \"0024\",\n    \"channel_store_id\": \"2005\",\n    \"channel_order_id\": \"0024_COMMERCIAL_ID-A\",\n    \"order_lines\": [\n      { \"channel_order_line_id\": \"0024_COMMERCIAL_ID-A-1\", \"accepted\": true }\n    ]\n  }\n}\n","lang":"json"},"children":[]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["CREATE_SHIPMENT"]}," ships the order, or a set of its lines, with a carrier."," ","The ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["carrier"]}," is optional, and it holds the display ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["name"]}," of the carrier, not the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["channel_carrier_id"]}," you sent to ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/content/product/connect-channel-platform/rest/connect/openapi3/carriers/upsertcarriers"},"children":["upsertCarriers"]},"."," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["warehouse_id"]}," is required only when the channel needs it:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"{\n  \"type\": \"CREATE_SHIPMENT\",\n  \"data\": {\n    \"action_id\": \"2cb6fd5c-d5fe-4362-991c-4163f412cce5\",\n    \"channel_id\": \"0024\",\n    \"channel_store_id\": \"2005\",\n    \"channel_order_id\": \"0024_COMMERCIAL_ID-A\",\n    \"carrier\": \"DHL Express\",\n    \"tracking_number\": \"1Z999AA1234567890\",\n    \"tracking_url\": \"https://tracking.carrier.com/123456\",\n    \"items\": [\n      { \"channel_order_line_id\": \"0024_COMMERCIAL_ID-A-1\", \"id\": \"SELLER_ID_1\", \"quantity\": 2 }\n    ]\n  }\n}\n","lang":"json"},"children":[]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"info"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["When the channel requires a carrier and the event carries none, either send a default value the channel accepts, or report ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["FAILED"]}," with ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["MISSING_CARRIER"]},"."]}]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["CANCEL"]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["REFUND"]}," carry the affected lines, in ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["cancelations"]}," and in ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["refunds"]},"."," ","Each line carries a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["quantity"]},", a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["reason"]},", and the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["price"]}," and the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["shipping_price"]}," to cancel or refund, tax excluded, with ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["taxes"]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["shipping_taxes"]}," listed separately:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"{\n  \"type\": \"REFUND\",\n  \"data\": {\n    \"action_id\": \"3dc7fe6d-e60f-4473-aa2d-5274051523f6\",\n    \"channel_id\": \"0024\",\n    \"channel_store_id\": \"2005\",\n    \"channel_order_id\": \"0024_COMMERCIAL_ID-A\",\n    \"refunds\": [\n      {\n        \"channel_order_line_id\": \"0024_COMMERCIAL_ID-A-1\",\n        \"product_id\": \"SELLER_ID_1\",\n        \"quantity\": 1,\n        \"reason\": \"DEFECT\",\n        \"price\": { \"amount\": 24.99, \"currency\": \"EUR\" },\n        \"shipping_price\": { \"amount\": 0, \"currency\": \"EUR\" }\n      }\n    ]\n  }\n}\n","lang":"json"},"children":[]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["UPLOAD_DOCUMENT"]}," provides a document for you to place ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["on the channel"]},"."," ","Mirakl Connect gives a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["document_name"]},", a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["document_type"]},", which is ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["RETURN_LABEL"]}," or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["CUSTOMER_INVOICE"]},", and a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["document_download_url"]},", which is a presigned link that expires."," ","When the document belongs to a return, ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["document_entity"]}," names that return, with ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["type: RETURN"]}," and the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["channel_return_id"]}," as its ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["id"]},":"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"{\n  \"type\": \"UPLOAD_DOCUMENT\",\n  \"data\": {\n    \"action_id\": \"4ed8af7e-f710-4584-bb3e-6385162634a7\",\n    \"channel_id\": \"0024\",\n    \"channel_store_id\": \"2005\",\n    \"channel_order_id\": \"0024_COMMERCIAL_ID-A\",\n    \"document_name\": \"return_label_RET-0024-001.pdf\",\n    \"document_type\": \"RETURN_LABEL\",\n    \"document_download_url\": \"https://storage.example.com/documents/4f690afa-6543-4f4b-a89f-81934e65ddd5?expires=1787059200&signature=247a2aa45f169edf4d187d54e7cc46e4\",\n    \"document_entity\": { \"type\": \"RETURN\", \"id\": \"RET-0024-001\" }\n  }\n}\n","lang":"json"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Download the document from ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["document_download_url"]}," before the link expires, then upload it to the channel."," ","A document that belongs to the order itself, and not to a return, carries no ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["document_entity"]},"."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"3-perform-the-action-on-the-channel-idempotently","__idx":8},"children":["3. Perform the action on the channel, idempotently"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Carry the action out through the channel's own API."," ","Guard it so that a repeat is safe: if Mirakl Connect delivers the same event twice, the channel operation must not happen twice, so no double shipment and no double refund."," ","Tie the channel operation to the stored ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["action_id"]},", so that you can tell an action you already performed from a new one."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"4-report-the-outcome","__idx":9},"children":["4. Report the outcome"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Report the final result ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["once"]},", when the action is complete, with ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/content/product/connect-channel-platform/rest/connect/openapi3/orders/updateactionstatus"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["PUT /v1/orders/actions/{action_id}"]}]},"."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["On success:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"{ \"status\": \"SUCCESS\" }\n","lang":"json"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["On failure, send ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["FAILED"]}," with one or more ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ActionError"]}," entries."," ","Map the channel's refusal to the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["code"]}," that matches, and put the specifics in the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["message"]},"."," ","The ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["code"]}," is a bounded set:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["INVALID_INPUT"]},": the action carries data the channel refuses."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["DATA_NOT_FOUND"]},": the order, the line, or the return the action names does not exist on the channel."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["UNEXPECTED"]},": the channel failed for a reason your connector cannot classify."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["UNAVAILABLE"]},": the channel was unreachable."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["TOO_MANY_REQUEST"]},": the channel throttled the call."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ACTION_NOT_SUPPORTED"]},": the channel offers no action for this ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["type"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ORDER_IN_WRONG_STATE"]},": the order's state on the channel does not allow the action."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["RETURN_IN_WRONG_STATE"]},": the return's state on the channel does not allow the action."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["CARRIER_NOT_SUPPORTED"]},": the channel does not accept the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["carrier"]}," of the action."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["MISSING_CARRIER"]},": the channel requires a carrier, and the action carries none."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["WAREHOUSE_ID_NOT_FOUND"]},": the channel does not know the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["warehouse_id"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["WAREHOUSE_ID_REQUIRED"]},": the channel requires a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["warehouse_id"]},", and the action carries none."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["OTHER"]},": none of the codes above fits."]}]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"{\n  \"status\": \"FAILED\",\n  \"errors\": [\n    { \"code\": \"ORDER_IN_WRONG_STATE\", \"message\": \"Cannot ship: order is already cancelled\" }\n  ]\n}\n","lang":"json"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Three responses matter:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["204"]}," confirms the report."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["400"]}," with ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ACTION_ALREADY_FINAL"]}," means that you already reported the action."," ","Treat it as a benign confirmation, not as an error to retry around."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["404"]}," means that the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["action_id"]}," is unknown, because it is incorrect, or because the order it belongs to was deleted."," ","An action never expires."," ","Mirakl Connect deletes it with its order, when the seller unlinks the store or when the order's retention period ends."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"5-re-sync-the-resulting-state","__idx":10},"children":["5. Re-sync the resulting state"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Reporting the outcome of an action does ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["not"]}," update the status of the order."," ","After an action changes the order's state, push the order's new state with ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/content/product/connect-channel-platform/developer-guide/orders/sync-orders-into-connect"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["upsertOrders"]}]},"."," ","The action is not fully handled until you have reported both the outcome and the new state."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"common-mistakes","__idx":11},"children":["Common mistakes"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["To never report ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["FAILED"]},"."]}," ","An action with no reported outcome hangs, and Mirakl Connect waits forever."," ","Report the result of every action, whether it succeeded or failed."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["To lose or reuse the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["action_id"]},"."]}," ","You must report the outcome against the exact ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["action_id"]}," from the event."," ","Persist it on receipt."," ","Without it, you cannot close the action, and a duplicate event can drive the channel operation twice."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["To acknowledge the delivery instead of the action."]}," ","To acknowledge the message on the queue confirms receipt only."," ","It does not report the outcome."," ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/content/product/connect-channel-platform/rest/connect/openapi3/orders/updateactionstatus"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["updateActionStatus"]}]}," does that, sent once the action is really done."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["To report the outcome but not re-sync."]}," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["updateActionStatus"]}," does not carry the order's new status."," ","Follow an action that changes the state with ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["upsertOrders"]},", or the copy of the order in Connect drifts from the channel."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["To collapse every failure into ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["OTHER"]},"."]}," ","The ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["code"]}," is what Mirakl Connect and the seller act on."," ","Map the failure to the specific ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ActionError"]},", such as ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ORDER_IN_WRONG_STATE"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["MISSING_CARRIER"]},", or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["WAREHOUSE_ID_REQUIRED"]},", and reserve ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["OTHER"]}," for the failures that genuinely fit none of them."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"related","__idx":12},"children":["Related"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/content/product/connect-channel-platform/developer-guide/orders/sync-orders-into-connect"},"children":["Sync orders into Connect"]},": how to report the order state that an action produces."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/content/product/connect-channel-platform/developer-guide/returns"},"children":["Returns"]},": the actions on the return side, handled the same way."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/content/product/connect-channel-platform/developer-guide/orders"},"children":["Orders"]},": the order actions in context."]}]}]},"headings":[{"value":"Handle order action events","id":"handle-order-action-events","depth":1},{"value":"Business context","id":"business-context","depth":2},{"value":"When to use this","id":"when-to-use-this","depth":2},{"value":"How it works","id":"how-it-works","depth":2},{"value":"Step by step","id":"step-by-step","depth":2},{"value":"1. Receive and deduplicate the event","id":"1-receive-and-deduplicate-the-event","depth":3},{"value":"2. Dispatch on the action type","id":"2-dispatch-on-the-action-type","depth":3},{"value":"Examples","id":"examples","depth":4},{"value":"3. Perform the action on the channel, idempotently","id":"3-perform-the-action-on-the-channel-idempotently","depth":3},{"value":"4. Report the outcome","id":"4-report-the-outcome","depth":3},{"value":"5. Re-sync the resulting state","id":"5-re-sync-the-resulting-state","depth":3},{"value":"Common mistakes","id":"common-mistakes","depth":2},{"value":"Related","id":"related","depth":2}],"frontmatter":{"seo":{"title":"Handle order action events"}},"lastModified":"2026-11-06T15:01:50.980Z","pagePropGetterError":{"message":"","name":""}},"slug":"/content/product/connect-channel-platform/developer-guide/orders/handle-order-action-events","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}