{"templateId":"markdown","sharedDataIds":{"sidebar":"sidebar-sidebars.yaml"},"props":{"metadata":{"markdoc":{"tagList":["admonition"]},"redocly_category":"Journeys","product":"Identity Management","type":"markdown"},"seo":{"title":"Journey completion for SDK journeys","description":"Everything about Mosaic Journeys, SDKs, and APIs","siteUrl":"https://developer.transmitsecurity.com/","llmstxt":{"hide":false,"sections":[{"title":"Table of contents","includeFiles":["**/*"],"excludeFiles":[]}],"excludeFiles":[]}},"dynamicMarkdocComponents":[],"compilationErrors":[],"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":1,"id":"journey-completion-for-sdk-journeys","__idx":0},"children":["Journey completion for SDK journeys"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["For journeys implemented with the Orchestration SDK, completion is determined by the terminal SDK response: ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Success"]}," or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Rejection"]},"."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["For journeys involving user authentication steps, successful completion can initiate a backend token exchange flow. In this model, your client receives an opaque code and passes it to your backend. Your backend then exchanges the opaque code with Mosaic in a server-to-server call to obtain the user access token together with enriched context. This is the recommended mode when you do not want Mosaic user tokens to pass through the client and you want the backend to receive the token directly. It lets you:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["keep user access tokens off the client"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["establish session or backend trust using the backend"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["align journey orchestration with a more secure token delivery pattern"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["use Mosaic capabilities that depend on the backend receiving the access token directly, such as ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/guides/user/token_signing_keys#bring-your-own-key-byok"},"children":["BYOK"]}]}]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"info","name":"Journeys without authentication"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Not every successful journey produces a user token flow. If the journey completes successfully but does not authenticate the user, treat ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Success"]}," as the final orchestration result and do not expect a user access token."]}]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"warning","name":"Using the legacy journey token"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This page describes the current SDK journey completion model. Some older integrations still rely on the legacy journey token returned upon successful completion. If your integration depends on that additional legacy artifact, see ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/guides/orchestration/getting-started/journey_token"},"children":["Journey token"]},"."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"how-it-works","__idx":1},"children":["How it works"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The Orchestration SDK returns the terminal result. For journeys involving user authentication steps, a successful completion returns an opaque code. Your client passes that code to your backend, which exchanges it with Mosaic using ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["POST /ido/api/v2/token/exchange?clientId=[YOUR_CLIENT_ID]"]},". Your backend then uses the returned user tokens and enriched context to establish the application session or run other business logic."]},{"$$mdtype":"Tag","name":"Diagram","attributes":{"data-language":"mermaid","diagramType":"mermaid","diagramSource":"sequenceDiagram\n  participant SDK as Orchestration SDK\n  participant C as Your client\n  participant M as Mosaic\n  participant B as Your backend\n\n  SDK-->>C: Return journey result: Success or Rejection\n\n  alt Success with authentication\n    C->>B: Send opaque code\n    B->>M: POST /ido/api/v2/token/exchange?clientId=[YOUR_CLIENT_ID] with code + journeyId\n    M-->>B: Return user tokens and enriched context\n    B-->>B: Run your business logic\n  else Rejection or Success with no authentication\n  end\n","diagramHtml":"<svg id=\"diagram-ac8e232090c402969c999483fe11d20fafe5c48121f8f46c0018742a272bfa88\" width=\"100%\" xmlns=\"http://www.w3.org/2000/svg\" style=\"max-width: 1556.5px;\" viewBox=\"-50 -10 1556.5 558\" role=\"graphics-document document\" aria-roledescription=\"sequence\"><g><rect x=\"1282.5\" y=\"472\" fill=\"#eaeaea\" stroke=\"#666\" width=\"150\" height=\"65\" name=\"B\" rx=\"3\" ry=\"3\" class=\"actor actor-bottom\"></rect><text x=\"1357.5\" y=\"504.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;, sans-serif;\"><tspan x=\"1357.5\" dy=\"0\">Your backend</tspan></text></g><g><rect x=\"591.5\" y=\"472\" fill=\"#eaeaea\" stroke=\"#666\" width=\"150\" height=\"65\" name=\"M\" rx=\"3\" ry=\"3\" class=\"actor actor-bottom\"></rect><text x=\"666.5\" y=\"504.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;, sans-serif;\"><tspan x=\"666.5\" dy=\"0\">Mosaic</tspan></text></g><g><rect x=\"391.5\" y=\"472\" fill=\"#eaeaea\" stroke=\"#666\" width=\"150\" height=\"65\" name=\"C\" rx=\"3\" ry=\"3\" class=\"actor actor-bottom\"></rect><text x=\"466.5\" y=\"504.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;, sans-serif;\"><tspan x=\"466.5\" dy=\"0\">Your client</tspan></text></g><g><rect x=\"0\" y=\"472\" fill=\"#eaeaea\" stroke=\"#666\" width=\"157\" height=\"65\" name=\"SDK\" rx=\"3\" ry=\"3\" class=\"actor actor-bottom\"></rect><text x=\"78.5\" y=\"504.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;, sans-serif;\"><tspan x=\"78.5\" dy=\"0\">Orchestration SDK</tspan></text></g><g><line id=\"actor3\" x1=\"1357.5\" y1=\"65\" x2=\"1357.5\" y2=\"472\" class=\"actor-line 200\" stroke-width=\"0.5px\" stroke=\"#999\" name=\"B\" data-et=\"life-line\" data-id=\"B\"></line><g id=\"root-3\" data-et=\"participant\" data-type=\"participant\" data-id=\"B\"><rect x=\"1282.5\" y=\"0\" fill=\"#eaeaea\" stroke=\"#666\" width=\"150\" height=\"65\" name=\"B\" rx=\"3\" ry=\"3\" class=\"actor actor-top\"></rect><text x=\"1357.5\" y=\"32.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;, sans-serif;\"><tspan x=\"1357.5\" dy=\"0\">Your backend</tspan></text></g></g><g><line id=\"actor2\" x1=\"666.5\" y1=\"65\" x2=\"666.5\" y2=\"472\" class=\"actor-line 200\" stroke-width=\"0.5px\" stroke=\"#999\" name=\"M\" data-et=\"life-line\" data-id=\"M\"></line><g id=\"root-2\" data-et=\"participant\" data-type=\"participant\" data-id=\"M\"><rect x=\"591.5\" y=\"0\" fill=\"#eaeaea\" stroke=\"#666\" width=\"150\" height=\"65\" name=\"M\" rx=\"3\" ry=\"3\" class=\"actor actor-top\"></rect><text x=\"666.5\" y=\"32.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;, sans-serif;\"><tspan x=\"666.5\" dy=\"0\">Mosaic</tspan></text></g></g><g><line id=\"actor1\" x1=\"466.5\" y1=\"65\" x2=\"466.5\" y2=\"472\" class=\"actor-line 200\" stroke-width=\"0.5px\" stroke=\"#999\" name=\"C\" data-et=\"life-line\" data-id=\"C\"></line><g id=\"root-1\" data-et=\"participant\" data-type=\"participant\" data-id=\"C\"><rect x=\"391.5\" y=\"0\" fill=\"#eaeaea\" stroke=\"#666\" width=\"150\" height=\"65\" name=\"C\" rx=\"3\" ry=\"3\" class=\"actor actor-top\"></rect><text x=\"466.5\" y=\"32.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;, sans-serif;\"><tspan x=\"466.5\" dy=\"0\">Your client</tspan></text></g></g><g><line id=\"actor0\" x1=\"78.5\" y1=\"65\" x2=\"78.5\" y2=\"472\" class=\"actor-line 200\" stroke-width=\"0.5px\" stroke=\"#999\" name=\"SDK\" data-et=\"life-line\" data-id=\"SDK\"></line><g id=\"root-0\" data-et=\"participant\" data-type=\"participant\" data-id=\"SDK\"><rect x=\"0\" y=\"0\" fill=\"#eaeaea\" stroke=\"#666\" width=\"157\" height=\"65\" name=\"SDK\" rx=\"3\" ry=\"3\" class=\"actor actor-top\"></rect><text x=\"78.5\" y=\"32.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;, sans-serif;\"><tspan x=\"78.5\" dy=\"0\">Orchestration SDK</tspan></text></g></g><style>#diagram-ac8e232090c402969c999483fe11d20fafe5c48121f8f46c0018742a272bfa88{font-family:\"Redocly Mermaid Sans\",sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#diagram-ac8e232090c402969c999483fe11d20fafe5c48121f8f46c0018742a272bfa88 .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#diagram-ac8e232090c402969c999483fe11d20fafe5c48121f8f46c0018742a272bfa88 .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#diagram-ac8e232090c402969c999483fe11d20fafe5c48121f8f46c0018742a272bfa88 .error-icon{fill:#552222;}#diagram-ac8e232090c402969c999483fe11d20fafe5c48121f8f46c0018742a272bfa88 .error-text{fill:#552222;stroke:#552222;}#diagram-ac8e232090c402969c999483fe11d20fafe5c48121f8f46c0018742a272bfa88 .edge-thickness-normal{stroke-width:1px;}#diagram-ac8e232090c402969c999483fe11d20fafe5c48121f8f46c0018742a272bfa88 .edge-thickness-thick{stroke-width:3.5px;}#diagram-ac8e232090c402969c999483fe11d20fafe5c48121f8f46c0018742a272bfa88 .edge-pattern-solid{stroke-dasharray:0;}#diagram-ac8e232090c402969c999483fe11d20fafe5c48121f8f46c0018742a272bfa88 .edge-thickness-invisible{stroke-width:0;fill:none;}#diagram-ac8e232090c402969c999483fe11d20fafe5c48121f8f46c0018742a272bfa88 .edge-pattern-dashed{stroke-dasharray:3;}#diagram-ac8e232090c402969c999483fe11d20fafe5c48121f8f46c0018742a272bfa88 .edge-pattern-dotted{stroke-dasharray:2;}#diagram-ac8e232090c402969c999483fe11d20fafe5c48121f8f46c0018742a272bfa88 .marker{fill:#333333;stroke:#333333;}#diagram-ac8e232090c402969c999483fe11d20fafe5c48121f8f46c0018742a272bfa88 .marker.cross{stroke:#333333;}#diagram-ac8e232090c402969c999483fe11d20fafe5c48121f8f46c0018742a272bfa88 svg{font-family:\"Redocly Mermaid Sans\",sans-serif;font-size:16px;}#diagram-ac8e232090c402969c999483fe11d20fafe5c48121f8f46c0018742a272bfa88 p{margin:0;}#diagram-ac8e232090c402969c999483fe11d20fafe5c48121f8f46c0018742a272bfa88 .actor{stroke:#9370DB;fill:#ECECFF;stroke-width:1;}#diagram-ac8e232090c402969c999483fe11d20fafe5c48121f8f46c0018742a272bfa88 rect.actor.outer-path[data-look=\"neo\"]{filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-ac8e232090c402969c999483fe11d20fafe5c48121f8f46c0018742a272bfa88 rect.note[data-look=\"neo\"]{stroke:#aaaa33;fill:#fff5ad;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-ac8e232090c402969c999483fe11d20fafe5c48121f8f46c0018742a272bfa88 text.actor&gt;tspan{fill:black;stroke:none;}#diagram-ac8e232090c402969c999483fe11d20fafe5c48121f8f46c0018742a272bfa88 .actor-line{stroke:#9370DB;}#diagram-ac8e232090c402969c999483fe11d20fafe5c48121f8f46c0018742a272bfa88 .innerArc{stroke-width:1.5;stroke-dasharray:none;}#diagram-ac8e232090c402969c999483fe11d20fafe5c48121f8f46c0018742a272bfa88 .messageLine0{stroke-width:1.5;stroke-dasharray:none;stroke:#333;}#diagram-ac8e232090c402969c999483fe11d20fafe5c48121f8f46c0018742a272bfa88 .messageLine1{stroke-width:1.5;stroke-dasharray:2,2;stroke:#333;}#diagram-ac8e232090c402969c999483fe11d20fafe5c48121f8f46c0018742a272bfa88 [id$=\"-arrowhead\"] path{fill:#333;stroke:#333;}#diagram-ac8e232090c402969c999483fe11d20fafe5c48121f8f46c0018742a272bfa88 .sequenceNumber{fill:white;}#diagram-ac8e232090c402969c999483fe11d20fafe5c48121f8f46c0018742a272bfa88 [id$=\"-sequencenumber\"]{fill:#333;}#diagram-ac8e232090c402969c999483fe11d20fafe5c48121f8f46c0018742a272bfa88 [id$=\"-crosshead\"] path{fill:#333;stroke:#333;}#diagram-ac8e232090c402969c999483fe11d20fafe5c48121f8f46c0018742a272bfa88 .messageText{fill:#333;stroke:none;}#diagram-ac8e232090c402969c999483fe11d20fafe5c48121f8f46c0018742a272bfa88 .labelBox{stroke:#9370DB;fill:#ECECFF;filter:none;}#diagram-ac8e232090c402969c999483fe11d20fafe5c48121f8f46c0018742a272bfa88 .labelText,#diagram-ac8e232090c402969c999483fe11d20fafe5c48121f8f46c0018742a272bfa88 .labelText&gt;tspan{fill:black;stroke:none;}#diagram-ac8e232090c402969c999483fe11d20fafe5c48121f8f46c0018742a272bfa88 .loopText,#diagram-ac8e232090c402969c999483fe11d20fafe5c48121f8f46c0018742a272bfa88 .loopText&gt;tspan{fill:black;stroke:none;}#diagram-ac8e232090c402969c999483fe11d20fafe5c48121f8f46c0018742a272bfa88 .sectionTitle,#diagram-ac8e232090c402969c999483fe11d20fafe5c48121f8f46c0018742a272bfa88 .sectionTitle&gt;tspan{fill:black;stroke:none;}#diagram-ac8e232090c402969c999483fe11d20fafe5c48121f8f46c0018742a272bfa88 .loopLine{stroke-width:2px;stroke-dasharray:2,2;stroke:#9370DB;fill:#9370DB;}#diagram-ac8e232090c402969c999483fe11d20fafe5c48121f8f46c0018742a272bfa88 .note{stroke:#aaaa33;fill:#fff5ad;}#diagram-ac8e232090c402969c999483fe11d20fafe5c48121f8f46c0018742a272bfa88 .noteText,#diagram-ac8e232090c402969c999483fe11d20fafe5c48121f8f46c0018742a272bfa88 .noteText&gt;tspan{fill:black;stroke:none;font-weight:normal;}#diagram-ac8e232090c402969c999483fe11d20fafe5c48121f8f46c0018742a272bfa88 .activation0{fill:#f4f4f4;stroke:#666;}#diagram-ac8e232090c402969c999483fe11d20fafe5c48121f8f46c0018742a272bfa88 .activation1{fill:#f4f4f4;stroke:#666;}#diagram-ac8e232090c402969c999483fe11d20fafe5c48121f8f46c0018742a272bfa88 .activation2{fill:#f4f4f4;stroke:#666;}#diagram-ac8e232090c402969c999483fe11d20fafe5c48121f8f46c0018742a272bfa88 .actorPopupMenu{position:absolute;}#diagram-ac8e232090c402969c999483fe11d20fafe5c48121f8f46c0018742a272bfa88 .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-ac8e232090c402969c999483fe11d20fafe5c48121f8f46c0018742a272bfa88 .actor-man circle,#diagram-ac8e232090c402969c999483fe11d20fafe5c48121f8f46c0018742a272bfa88 line{fill:#ECECFF;stroke-width:2px;}#diagram-ac8e232090c402969c999483fe11d20fafe5c48121f8f46c0018742a272bfa88 g rect.rect{filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));stroke:#9370DB;}#diagram-ac8e232090c402969c999483fe11d20fafe5c48121f8f46c0018742a272bfa88 .node .neo-node{stroke:#9370DB;}#diagram-ac8e232090c402969c999483fe11d20fafe5c48121f8f46c0018742a272bfa88 [data-look=\"neo\"].node rect,#diagram-ac8e232090c402969c999483fe11d20fafe5c48121f8f46c0018742a272bfa88 [data-look=\"neo\"].cluster rect,#diagram-ac8e232090c402969c999483fe11d20fafe5c48121f8f46c0018742a272bfa88 [data-look=\"neo\"].node polygon{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-ac8e232090c402969c999483fe11d20fafe5c48121f8f46c0018742a272bfa88 [data-look=\"neo\"].node path{stroke:#9370DB;stroke-width:1px;}#diagram-ac8e232090c402969c999483fe11d20fafe5c48121f8f46c0018742a272bfa88 [data-look=\"neo\"].node .outer-path{filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-ac8e232090c402969c999483fe11d20fafe5c48121f8f46c0018742a272bfa88 [data-look=\"neo\"].node .neo-line path{stroke:#9370DB;filter:none;}#diagram-ac8e232090c402969c999483fe11d20fafe5c48121f8f46c0018742a272bfa88 [data-look=\"neo\"].node circle{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-ac8e232090c402969c999483fe11d20fafe5c48121f8f46c0018742a272bfa88 [data-look=\"neo\"].node circle .state-start{fill:#000000;}#diagram-ac8e232090c402969c999483fe11d20fafe5c48121f8f46c0018742a272bfa88 [data-look=\"neo\"].icon-shape .icon{fill:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-ac8e232090c402969c999483fe11d20fafe5c48121f8f46c0018742a272bfa88 [data-look=\"neo\"].icon-shape .icon-neo path{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-ac8e232090c402969c999483fe11d20fafe5c48121f8f46c0018742a272bfa88 :root{--mermaid-font-family:\"Redocly Mermaid Sans\",sans-serif;}#diagram-ac8e232090c402969c999483fe11d20fafe5c48121f8f46c0018742a272bfa88 :root{--mermaid-font-family:\"Redocly Mermaid Sans\",sans-serif;}</style><g></g><defs><symbol id=\"diagram-ac8e232090c402969c999483fe11d20fafe5c48121f8f46c0018742a272bfa88-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-ac8e232090c402969c999483fe11d20fafe5c48121f8f46c0018742a272bfa88-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-ac8e232090c402969c999483fe11d20fafe5c48121f8f46c0018742a272bfa88-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-ac8e232090c402969c999483fe11d20fafe5c48121f8f46c0018742a272bfa88-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-ac8e232090c402969c999483fe11d20fafe5c48121f8f46c0018742a272bfa88-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-ac8e232090c402969c999483fe11d20fafe5c48121f8f46c0018742a272bfa88-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-ac8e232090c402969c999483fe11d20fafe5c48121f8f46c0018742a272bfa88-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-ac8e232090c402969c999483fe11d20fafe5c48121f8f46c0018742a272bfa88-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-ac8e232090c402969c999483fe11d20fafe5c48121f8f46c0018742a272bfa88-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-ac8e232090c402969c999483fe11d20fafe5c48121f8f46c0018742a272bfa88-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-ac8e232090c402969c999483fe11d20fafe5c48121f8f46c0018742a272bfa88-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=\"i7\"><line x1=\"455.5\" y1=\"129\" x2=\"1456.5\" y2=\"129\" class=\"loopLine\"></line><line x1=\"1456.5\" y1=\"129\" x2=\"1456.5\" y2=\"452\" class=\"loopLine\"></line><line x1=\"455.5\" y1=\"452\" x2=\"1456.5\" y2=\"452\" class=\"loopLine\"></line><line x1=\"455.5\" y1=\"129\" x2=\"455.5\" y2=\"452\" class=\"loopLine\"></line><line x1=\"455.5\" y1=\"427\" x2=\"1456.5\" y2=\"427\" class=\"loopLine\" style=\"stroke-dasharray: 3, 3;\"></line><polygon points=\"455.5,129 505.5,129 505.5,142 497.1,149 455.5,149\" class=\"labelBox\"></polygon><text x=\"481\" y=\"142\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"labelText\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, sans-serif; font-size: 16px; font-weight: 400;\">alt</text><text x=\"981\" y=\"147\" text-anchor=\"middle\" class=\"loopText\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, sans-serif; font-size: 16px; font-weight: 400;\"><tspan x=\"981\">[Success with authentication]</tspan></text><text x=\"956\" y=\"445\" text-anchor=\"middle\" class=\"sectionTitle\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, sans-serif; font-size: 16px; font-weight: 400;\">[Rejection or Success with no authentication]</text></g><text x=\"271\" y=\"80\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, sans-serif; font-size: 16px; font-weight: 400;\">Return journey result: Success or Rejection</text><line x1=\"79.5\" y1=\"119\" x2=\"462.5\" y2=\"119\" class=\"messageLine1\" data-et=\"message\" data-id=\"i0\" data-from=\"SDK\" data-to=\"C\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-ac8e232090c402969c999483fe11d20fafe5c48121f8f46c0018742a272bfa88-arrowhead)\" style=\"stroke-dasharray: 3, 3; fill: none;\"></line><text x=\"911\" y=\"181\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, sans-serif; font-size: 16px; font-weight: 400;\">Send opaque code</text><line x1=\"467.5\" y1=\"220\" x2=\"1353.5\" y2=\"220\" class=\"messageLine0\" data-et=\"message\" data-id=\"i2\" data-from=\"C\" data-to=\"B\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-ac8e232090c402969c999483fe11d20fafe5c48121f8f46c0018742a272bfa88-arrowhead)\" style=\"fill: none;\"></line><text x=\"1014\" y=\"235\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, sans-serif; font-size: 16px; font-weight: 400;\">POST /ido/api/v2/token/exchange?clientId=[YOUR_CLIENT_ID] with code + journeyId</text><line x1=\"1356.5\" y1=\"274\" x2=\"670.5\" y2=\"274\" class=\"messageLine0\" data-et=\"message\" data-id=\"i3\" data-from=\"B\" data-to=\"M\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-ac8e232090c402969c999483fe11d20fafe5c48121f8f46c0018742a272bfa88-arrowhead)\" style=\"fill: none;\"></line><text x=\"1011\" y=\"289\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, sans-serif; font-size: 16px; font-weight: 400;\">Return user tokens and enriched context</text><line x1=\"667.5\" y1=\"328\" x2=\"1353.5\" y2=\"328\" class=\"messageLine1\" data-et=\"message\" data-id=\"i4\" data-from=\"M\" data-to=\"B\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-ac8e232090c402969c999483fe11d20fafe5c48121f8f46c0018742a272bfa88-arrowhead)\" style=\"stroke-dasharray: 3, 3; fill: none;\"></line><text x=\"1359\" y=\"343\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, sans-serif; font-size: 16px; font-weight: 400;\">Run your business logic</text><path d=\"M 1358.5,382 C 1418.5,372 1418.5,412 1358.5,402\" class=\"messageLine1\" data-et=\"message\" data-id=\"i5\" data-from=\"B\" data-to=\"B\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-ac8e232090c402969c999483fe11d20fafe5c48121f8f46c0018742a272bfa88-arrowhead)\" style=\"stroke-dasharray: 3, 3; fill: none;\"></path></svg>","diagramHtmlDark":"<svg id=\"diagram-b0ccf6beaf82b83e527748c17ed45202691de9e34365599818b387b65e214b4c\" width=\"100%\" xmlns=\"http://www.w3.org/2000/svg\" style=\"max-width: 1556.5px;\" viewBox=\"-50 -10 1556.5 558\" role=\"graphics-document document\" aria-roledescription=\"sequence\"><g><rect x=\"1282.5\" y=\"472\" fill=\"#eaeaea\" stroke=\"#666\" width=\"150\" height=\"65\" name=\"B\" rx=\"3\" ry=\"3\" class=\"actor actor-bottom\"></rect><text x=\"1357.5\" y=\"504.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;, sans-serif;\"><tspan x=\"1357.5\" dy=\"0\">Your backend</tspan></text></g><g><rect x=\"591.5\" y=\"472\" fill=\"#eaeaea\" stroke=\"#666\" width=\"150\" height=\"65\" name=\"M\" rx=\"3\" ry=\"3\" class=\"actor actor-bottom\"></rect><text x=\"666.5\" y=\"504.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;, sans-serif;\"><tspan x=\"666.5\" dy=\"0\">Mosaic</tspan></text></g><g><rect x=\"391.5\" y=\"472\" fill=\"#eaeaea\" stroke=\"#666\" width=\"150\" height=\"65\" name=\"C\" rx=\"3\" ry=\"3\" class=\"actor actor-bottom\"></rect><text x=\"466.5\" y=\"504.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;, sans-serif;\"><tspan x=\"466.5\" dy=\"0\">Your client</tspan></text></g><g><rect x=\"0\" y=\"472\" fill=\"#eaeaea\" stroke=\"#666\" width=\"157\" height=\"65\" name=\"SDK\" rx=\"3\" ry=\"3\" class=\"actor actor-bottom\"></rect><text x=\"78.5\" y=\"504.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;, sans-serif;\"><tspan x=\"78.5\" dy=\"0\">Orchestration SDK</tspan></text></g><g><line id=\"actor3\" x1=\"1357.5\" y1=\"65\" x2=\"1357.5\" y2=\"472\" class=\"actor-line 200\" stroke-width=\"0.5px\" stroke=\"#999\" name=\"B\" data-et=\"life-line\" data-id=\"B\"></line><g id=\"root-3\" data-et=\"participant\" data-type=\"participant\" data-id=\"B\"><rect x=\"1282.5\" y=\"0\" fill=\"#eaeaea\" stroke=\"#666\" width=\"150\" height=\"65\" name=\"B\" rx=\"3\" ry=\"3\" class=\"actor actor-top\"></rect><text x=\"1357.5\" y=\"32.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;, sans-serif;\"><tspan x=\"1357.5\" dy=\"0\">Your backend</tspan></text></g></g><g><line id=\"actor2\" x1=\"666.5\" y1=\"65\" x2=\"666.5\" y2=\"472\" class=\"actor-line 200\" stroke-width=\"0.5px\" stroke=\"#999\" name=\"M\" data-et=\"life-line\" data-id=\"M\"></line><g id=\"root-2\" data-et=\"participant\" data-type=\"participant\" data-id=\"M\"><rect x=\"591.5\" y=\"0\" fill=\"#eaeaea\" stroke=\"#666\" width=\"150\" height=\"65\" name=\"M\" rx=\"3\" ry=\"3\" class=\"actor actor-top\"></rect><text x=\"666.5\" y=\"32.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;, sans-serif;\"><tspan x=\"666.5\" dy=\"0\">Mosaic</tspan></text></g></g><g><line id=\"actor1\" x1=\"466.5\" y1=\"65\" x2=\"466.5\" y2=\"472\" class=\"actor-line 200\" stroke-width=\"0.5px\" stroke=\"#999\" name=\"C\" data-et=\"life-line\" data-id=\"C\"></line><g id=\"root-1\" data-et=\"participant\" data-type=\"participant\" data-id=\"C\"><rect x=\"391.5\" y=\"0\" fill=\"#eaeaea\" stroke=\"#666\" width=\"150\" height=\"65\" name=\"C\" rx=\"3\" ry=\"3\" class=\"actor actor-top\"></rect><text x=\"466.5\" y=\"32.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;, sans-serif;\"><tspan x=\"466.5\" dy=\"0\">Your client</tspan></text></g></g><g><line id=\"actor0\" x1=\"78.5\" y1=\"65\" x2=\"78.5\" y2=\"472\" class=\"actor-line 200\" stroke-width=\"0.5px\" stroke=\"#999\" name=\"SDK\" data-et=\"life-line\" data-id=\"SDK\"></line><g id=\"root-0\" data-et=\"participant\" data-type=\"participant\" data-id=\"SDK\"><rect x=\"0\" y=\"0\" fill=\"#eaeaea\" stroke=\"#666\" width=\"157\" height=\"65\" name=\"SDK\" rx=\"3\" ry=\"3\" class=\"actor actor-top\"></rect><text x=\"78.5\" y=\"32.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;, sans-serif;\"><tspan x=\"78.5\" dy=\"0\">Orchestration SDK</tspan></text></g></g><style>#diagram-b0ccf6beaf82b83e527748c17ed45202691de9e34365599818b387b65e214b4c{font-family:\"Redocly Mermaid Sans\",sans-serif;font-size:16px;fill:#ccc;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#diagram-b0ccf6beaf82b83e527748c17ed45202691de9e34365599818b387b65e214b4c .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#diagram-b0ccf6beaf82b83e527748c17ed45202691de9e34365599818b387b65e214b4c .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#diagram-b0ccf6beaf82b83e527748c17ed45202691de9e34365599818b387b65e214b4c .error-icon{fill:#a44141;}#diagram-b0ccf6beaf82b83e527748c17ed45202691de9e34365599818b387b65e214b4c .error-text{fill:#ddd;stroke:#ddd;}#diagram-b0ccf6beaf82b83e527748c17ed45202691de9e34365599818b387b65e214b4c .edge-thickness-normal{stroke-width:1px;}#diagram-b0ccf6beaf82b83e527748c17ed45202691de9e34365599818b387b65e214b4c .edge-thickness-thick{stroke-width:3.5px;}#diagram-b0ccf6beaf82b83e527748c17ed45202691de9e34365599818b387b65e214b4c .edge-pattern-solid{stroke-dasharray:0;}#diagram-b0ccf6beaf82b83e527748c17ed45202691de9e34365599818b387b65e214b4c .edge-thickness-invisible{stroke-width:0;fill:none;}#diagram-b0ccf6beaf82b83e527748c17ed45202691de9e34365599818b387b65e214b4c .edge-pattern-dashed{stroke-dasharray:3;}#diagram-b0ccf6beaf82b83e527748c17ed45202691de9e34365599818b387b65e214b4c .edge-pattern-dotted{stroke-dasharray:2;}#diagram-b0ccf6beaf82b83e527748c17ed45202691de9e34365599818b387b65e214b4c .marker{fill:lightgrey;stroke:lightgrey;}#diagram-b0ccf6beaf82b83e527748c17ed45202691de9e34365599818b387b65e214b4c .marker.cross{stroke:lightgrey;}#diagram-b0ccf6beaf82b83e527748c17ed45202691de9e34365599818b387b65e214b4c svg{font-family:\"Redocly Mermaid Sans\",sans-serif;font-size:16px;}#diagram-b0ccf6beaf82b83e527748c17ed45202691de9e34365599818b387b65e214b4c p{margin:0;}#diagram-b0ccf6beaf82b83e527748c17ed45202691de9e34365599818b387b65e214b4c .actor{stroke:#ccc;fill:#1f2020;stroke-width:1;}#diagram-b0ccf6beaf82b83e527748c17ed45202691de9e34365599818b387b65e214b4c rect.actor.outer-path[data-look=\"neo\"]{filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-b0ccf6beaf82b83e527748c17ed45202691de9e34365599818b387b65e214b4c 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-b0ccf6beaf82b83e527748c17ed45202691de9e34365599818b387b65e214b4c text.actor&gt;tspan{fill:lightgrey;stroke:none;}#diagram-b0ccf6beaf82b83e527748c17ed45202691de9e34365599818b387b65e214b4c .actor-line{stroke:#ccc;}#diagram-b0ccf6beaf82b83e527748c17ed45202691de9e34365599818b387b65e214b4c .innerArc{stroke-width:1.5;stroke-dasharray:none;}#diagram-b0ccf6beaf82b83e527748c17ed45202691de9e34365599818b387b65e214b4c .messageLine0{stroke-width:1.5;stroke-dasharray:none;stroke:lightgrey;}#diagram-b0ccf6beaf82b83e527748c17ed45202691de9e34365599818b387b65e214b4c .messageLine1{stroke-width:1.5;stroke-dasharray:2,2;stroke:lightgrey;}#diagram-b0ccf6beaf82b83e527748c17ed45202691de9e34365599818b387b65e214b4c [id$=\"-arrowhead\"] path{fill:lightgrey;stroke:lightgrey;}#diagram-b0ccf6beaf82b83e527748c17ed45202691de9e34365599818b387b65e214b4c .sequenceNumber{fill:black;}#diagram-b0ccf6beaf82b83e527748c17ed45202691de9e34365599818b387b65e214b4c [id$=\"-sequencenumber\"]{fill:lightgrey;}#diagram-b0ccf6beaf82b83e527748c17ed45202691de9e34365599818b387b65e214b4c [id$=\"-crosshead\"] path{fill:lightgrey;stroke:lightgrey;}#diagram-b0ccf6beaf82b83e527748c17ed45202691de9e34365599818b387b65e214b4c .messageText{fill:lightgrey;stroke:none;}#diagram-b0ccf6beaf82b83e527748c17ed45202691de9e34365599818b387b65e214b4c .labelBox{stroke:#ccc;fill:#1f2020;filter:none;}#diagram-b0ccf6beaf82b83e527748c17ed45202691de9e34365599818b387b65e214b4c .labelText,#diagram-b0ccf6beaf82b83e527748c17ed45202691de9e34365599818b387b65e214b4c .labelText&gt;tspan{fill:lightgrey;stroke:none;}#diagram-b0ccf6beaf82b83e527748c17ed45202691de9e34365599818b387b65e214b4c .loopText,#diagram-b0ccf6beaf82b83e527748c17ed45202691de9e34365599818b387b65e214b4c .loopText&gt;tspan{fill:lightgrey;stroke:none;}#diagram-b0ccf6beaf82b83e527748c17ed45202691de9e34365599818b387b65e214b4c .sectionTitle,#diagram-b0ccf6beaf82b83e527748c17ed45202691de9e34365599818b387b65e214b4c .sectionTitle&gt;tspan{fill:lightgrey;stroke:none;}#diagram-b0ccf6beaf82b83e527748c17ed45202691de9e34365599818b387b65e214b4c .loopLine{stroke-width:2px;stroke-dasharray:2,2;stroke:#ccc;fill:#ccc;}#diagram-b0ccf6beaf82b83e527748c17ed45202691de9e34365599818b387b65e214b4c .note{stroke:hsl(180, 0%, 18.3529411765%);fill:hsl(180, 1.5873015873%, 28.3529411765%);}#diagram-b0ccf6beaf82b83e527748c17ed45202691de9e34365599818b387b65e214b4c .noteText,#diagram-b0ccf6beaf82b83e527748c17ed45202691de9e34365599818b387b65e214b4c .noteText&gt;tspan{fill:rgb(183.8476190475, 181.5523809523, 181.5523809523);stroke:none;font-weight:normal;}#diagram-b0ccf6beaf82b83e527748c17ed45202691de9e34365599818b387b65e214b4c .activation0{fill:hsl(180, 1.5873015873%, 28.3529411765%);stroke:#ccc;}#diagram-b0ccf6beaf82b83e527748c17ed45202691de9e34365599818b387b65e214b4c .activation1{fill:hsl(180, 1.5873015873%, 28.3529411765%);stroke:#ccc;}#diagram-b0ccf6beaf82b83e527748c17ed45202691de9e34365599818b387b65e214b4c .activation2{fill:hsl(180, 1.5873015873%, 28.3529411765%);stroke:#ccc;}#diagram-b0ccf6beaf82b83e527748c17ed45202691de9e34365599818b387b65e214b4c .actorPopupMenu{position:absolute;}#diagram-b0ccf6beaf82b83e527748c17ed45202691de9e34365599818b387b65e214b4c .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-b0ccf6beaf82b83e527748c17ed45202691de9e34365599818b387b65e214b4c .actor-man circle,#diagram-b0ccf6beaf82b83e527748c17ed45202691de9e34365599818b387b65e214b4c line{fill:#1f2020;stroke-width:2px;}#diagram-b0ccf6beaf82b83e527748c17ed45202691de9e34365599818b387b65e214b4c g rect.rect{filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));stroke:#ccc;}#diagram-b0ccf6beaf82b83e527748c17ed45202691de9e34365599818b387b65e214b4c .node .neo-node{stroke:#ccc;}#diagram-b0ccf6beaf82b83e527748c17ed45202691de9e34365599818b387b65e214b4c [data-look=\"neo\"].node rect,#diagram-b0ccf6beaf82b83e527748c17ed45202691de9e34365599818b387b65e214b4c [data-look=\"neo\"].cluster rect,#diagram-b0ccf6beaf82b83e527748c17ed45202691de9e34365599818b387b65e214b4c [data-look=\"neo\"].node polygon{stroke:url(#diagram-b0ccf6beaf82b83e527748c17ed45202691de9e34365599818b387b65e214b4c-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-b0ccf6beaf82b83e527748c17ed45202691de9e34365599818b387b65e214b4c [data-look=\"neo\"].node path{stroke:url(#diagram-b0ccf6beaf82b83e527748c17ed45202691de9e34365599818b387b65e214b4c-gradient);stroke-width:1px;}#diagram-b0ccf6beaf82b83e527748c17ed45202691de9e34365599818b387b65e214b4c [data-look=\"neo\"].node .outer-path{filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-b0ccf6beaf82b83e527748c17ed45202691de9e34365599818b387b65e214b4c [data-look=\"neo\"].node .neo-line path{stroke:#ccc;filter:none;}#diagram-b0ccf6beaf82b83e527748c17ed45202691de9e34365599818b387b65e214b4c [data-look=\"neo\"].node circle{stroke:url(#diagram-b0ccf6beaf82b83e527748c17ed45202691de9e34365599818b387b65e214b4c-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-b0ccf6beaf82b83e527748c17ed45202691de9e34365599818b387b65e214b4c [data-look=\"neo\"].node circle .state-start{fill:#000000;}#diagram-b0ccf6beaf82b83e527748c17ed45202691de9e34365599818b387b65e214b4c [data-look=\"neo\"].icon-shape .icon{fill:url(#diagram-b0ccf6beaf82b83e527748c17ed45202691de9e34365599818b387b65e214b4c-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-b0ccf6beaf82b83e527748c17ed45202691de9e34365599818b387b65e214b4c [data-look=\"neo\"].icon-shape .icon-neo path{stroke:url(#diagram-b0ccf6beaf82b83e527748c17ed45202691de9e34365599818b387b65e214b4c-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-b0ccf6beaf82b83e527748c17ed45202691de9e34365599818b387b65e214b4c :root{--mermaid-font-family:\"Redocly Mermaid Sans\",sans-serif;}#diagram-b0ccf6beaf82b83e527748c17ed45202691de9e34365599818b387b65e214b4c :root{--mermaid-font-family:\"Redocly Mermaid Sans\",sans-serif;}</style><g></g><defs><symbol id=\"diagram-b0ccf6beaf82b83e527748c17ed45202691de9e34365599818b387b65e214b4c-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-b0ccf6beaf82b83e527748c17ed45202691de9e34365599818b387b65e214b4c-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-b0ccf6beaf82b83e527748c17ed45202691de9e34365599818b387b65e214b4c-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-b0ccf6beaf82b83e527748c17ed45202691de9e34365599818b387b65e214b4c-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-b0ccf6beaf82b83e527748c17ed45202691de9e34365599818b387b65e214b4c-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-b0ccf6beaf82b83e527748c17ed45202691de9e34365599818b387b65e214b4c-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-b0ccf6beaf82b83e527748c17ed45202691de9e34365599818b387b65e214b4c-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-b0ccf6beaf82b83e527748c17ed45202691de9e34365599818b387b65e214b4c-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-b0ccf6beaf82b83e527748c17ed45202691de9e34365599818b387b65e214b4c-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-b0ccf6beaf82b83e527748c17ed45202691de9e34365599818b387b65e214b4c-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-b0ccf6beaf82b83e527748c17ed45202691de9e34365599818b387b65e214b4c-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=\"i7\"><line x1=\"455.5\" y1=\"129\" x2=\"1456.5\" y2=\"129\" class=\"loopLine\"></line><line x1=\"1456.5\" y1=\"129\" x2=\"1456.5\" y2=\"452\" class=\"loopLine\"></line><line x1=\"455.5\" y1=\"452\" x2=\"1456.5\" y2=\"452\" class=\"loopLine\"></line><line x1=\"455.5\" y1=\"129\" x2=\"455.5\" y2=\"452\" class=\"loopLine\"></line><line x1=\"455.5\" y1=\"427\" x2=\"1456.5\" y2=\"427\" class=\"loopLine\" style=\"stroke-dasharray: 3, 3;\"></line><polygon points=\"455.5,129 505.5,129 505.5,142 497.1,149 455.5,149\" class=\"labelBox\"></polygon><text x=\"481\" y=\"142\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"labelText\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, sans-serif; font-size: 16px; font-weight: 400;\">alt</text><text x=\"981\" y=\"147\" text-anchor=\"middle\" class=\"loopText\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, sans-serif; font-size: 16px; font-weight: 400;\"><tspan x=\"981\">[Success with authentication]</tspan></text><text x=\"956\" y=\"445\" text-anchor=\"middle\" class=\"sectionTitle\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, sans-serif; font-size: 16px; font-weight: 400;\">[Rejection or Success with no authentication]</text></g><text x=\"271\" y=\"80\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, sans-serif; font-size: 16px; font-weight: 400;\">Return journey result: Success or Rejection</text><line x1=\"79.5\" y1=\"119\" x2=\"462.5\" y2=\"119\" class=\"messageLine1\" data-et=\"message\" data-id=\"i0\" data-from=\"SDK\" data-to=\"C\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-b0ccf6beaf82b83e527748c17ed45202691de9e34365599818b387b65e214b4c-arrowhead)\" style=\"stroke-dasharray: 3, 3; fill: none;\"></line><text x=\"911\" y=\"181\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, sans-serif; font-size: 16px; font-weight: 400;\">Send opaque code</text><line x1=\"467.5\" y1=\"220\" x2=\"1353.5\" y2=\"220\" class=\"messageLine0\" data-et=\"message\" data-id=\"i2\" data-from=\"C\" data-to=\"B\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-b0ccf6beaf82b83e527748c17ed45202691de9e34365599818b387b65e214b4c-arrowhead)\" style=\"fill: none;\"></line><text x=\"1014\" y=\"235\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, sans-serif; font-size: 16px; font-weight: 400;\">POST /ido/api/v2/token/exchange?clientId=[YOUR_CLIENT_ID] with code + journeyId</text><line x1=\"1356.5\" y1=\"274\" x2=\"670.5\" y2=\"274\" class=\"messageLine0\" data-et=\"message\" data-id=\"i3\" data-from=\"B\" data-to=\"M\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-b0ccf6beaf82b83e527748c17ed45202691de9e34365599818b387b65e214b4c-arrowhead)\" style=\"fill: none;\"></line><text x=\"1011\" y=\"289\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, sans-serif; font-size: 16px; font-weight: 400;\">Return user tokens and enriched context</text><line x1=\"667.5\" y1=\"328\" x2=\"1353.5\" y2=\"328\" class=\"messageLine1\" data-et=\"message\" data-id=\"i4\" data-from=\"M\" data-to=\"B\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-b0ccf6beaf82b83e527748c17ed45202691de9e34365599818b387b65e214b4c-arrowhead)\" style=\"stroke-dasharray: 3, 3; fill: none;\"></line><text x=\"1359\" y=\"343\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, sans-serif; font-size: 16px; font-weight: 400;\">Run your business logic</text><path d=\"M 1358.5,382 C 1418.5,372 1418.5,412 1358.5,402\" class=\"messageLine1\" data-et=\"message\" data-id=\"i5\" data-from=\"B\" data-to=\"B\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-b0ccf6beaf82b83e527748c17ed45202691de9e34365599818b387b65e214b4c-arrowhead)\" style=\"stroke-dasharray: 3, 3; fill: none;\"></path></svg>"},"children":["sequenceDiagram\n  participant SDK as Orchestration SDK\n  participant C as Your client\n  participant M as Mosaic\n  participant B as Your backend\n\n  SDK-->>C: Return journey result: Success or Rejection\n\n  alt Success with authentication\n    C->>B: Send opaque code\n    B->>M: POST /ido/api/v2/token/exchange?clientId=[YOUR_CLIENT_ID] with code + journeyId\n    M-->>B: Return user tokens and enriched context\n    B-->>B: Run your business logic\n  else Rejection or Success with no authentication\n  end\n"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"opaque-code-behavior","__idx":2},"children":["Opaque code behavior"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The opaque code is a short-lived, one-time-use exchange credential."]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["the code expires after a short time, up to 5 minutes"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["the code can be used only once"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["after a successful exchange, the code cannot be reused"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This means your backend should exchange the code immediately after receiving it from the client."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"backend-token-exchange-requirements","__idx":3},"children":["Backend token exchange requirements"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["To use backend token exchange:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["the journey includes an authentication step"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["your backend calls the exchange endpoint"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["the backend client is assigned the required ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Journey Code Exchange (Write)"]}," permission. In Mosaic, configure this access by creating or editing a client role under ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Applications"]}," > ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Client roles"]},", enabling ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Authentication"]}," > ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Authentication"]}," > ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Journey Code Exchange (Write)"]},", and then assigning that role to the backend client under ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Applications"]}," > ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["your app"]}," > ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Clients"]},". Client roles can only be assigned to first-party app clients. For more details, see ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/guides/user/manage_client_roles"},"children":["Manage client roles"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["only a client with that permission on the same ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["appId"]}," can consume the opaque code"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["treat the SDK completion response as the orchestration outcome, and the backend exchange as the authentication outcome"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["For SDK integration details, see the quickstarts for ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/guides/orchestration/getting-started/quick_start_web"},"children":["Web"]},", ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/guides/orchestration/getting-started/quick_start_ios"},"children":["iOS"]},", ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/guides/orchestration/getting-started/quick_start_android"},"children":["Android"]},", and ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/guides/orchestration/getting-started/quick_start_react_native"},"children":["React Native"]},". For user token validation, see ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/guides/user/validate_tokens"},"children":["Validate tokens"]},"."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"token-exchange-api","__idx":4},"children":["Token Exchange API"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Endpoint Name:"]}," Token Exchange API ",{"$$mdtype":"Tag","name":"br","attributes":{},"children":[]}," ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Description:"]}," Exchanges a one-time opaque code generated upon successful authenticated journey completion for Mosaic user tokens. The code is bound to the journey and application, has a short lifetime, and is consumed on use."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Base URL:"]}," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["https://api.transmitsecurity.io"]}]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"info","name":"Base URL options"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The base URL can vary depending on your environment:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Production regions"]},": ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["api.transmitsecurity.io"]}," (US), ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["api.eu.transmitsecurity.io"]}," (EU), ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["api.ca.transmitsecurity.io"]}," (Canada), ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["api.au.transmitsecurity.io"]}," (Australia)"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Sandbox"]},": ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["api.sbx.transmitsecurity.io"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Custom domain"]},": If you're using a ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/guides/deployment/custom_domains"},"children":["custom domain"]}," for your Mosaic application, replace the host in the base URL with your custom domain."]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"endpoint","__idx":5},"children":["Endpoint"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Method:"]}," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["POST"]}," ",{"$$mdtype":"Tag","name":"br","attributes":{},"children":[]}," ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["URL:"]}," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["/ido/api/v2/token/exchange?clientId=[YOUR_CLIENT_ID]"]}," ",{"$$mdtype":"Tag","name":"br","attributes":{},"children":[]}," ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Authentication Required:"]}," Yes"]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"info","name":"Client ID query parameter"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["For ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["clientId"]},", use the Client ID from the ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"https://portal.transmitsecurity.io/applications/"},"children":["settings"]}," of the application running the journey. This ensures the request is routed to the correct application."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"authentication","__idx":6},"children":["Authentication"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Authorize the request using a bearer token generated for the backend client. The token must contain:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["an ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["app_id"]}," claim"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["the permission ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["execute:<app_id>:auth-tokens"]}]}]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"warning","name":"Different from the OIDC token endpoint"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This endpoint is different from the standard ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/openapi/user/oidc.openapi/other/oidctoken"},"children":["/oidc/token"]}," endpoint. Use ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["/oidc/token"]}," only to obtain the backend client's bearer token for authorizing the token exchange request."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["To obtain this bearer token, generate a client access token using the ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/openapi/user/oidc.openapi/other/oidctoken"},"children":["/oidc/token"]}," endpoint with the backend client credentials. You can find the backend client's Client ID and Client Secret in the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Admin Portal"]}," > ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Applications"]}," > ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["your app"]}," > ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Clients"]},"."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Headers Required:"]}]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Content-Type: application/json"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Authorization: Bearer <BACKEND_CLIENT_ACCESS_TOKEN>"]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"example-request","__idx":7},"children":["Example request"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"bash","header":{"controls":{"copy":{}}},"source":"curl -X POST \\\n  \"https://api.sbx.transmitsecurity.io/ido/api/v2/token/exchange?clientId=<CLIENT_ID>\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer <BACKEND_CLIENT_ACCESS_TOKEN>\" \\\n  -d '{\n    \"code\": \"OPAQUE_CODE\",\n    \"journeyId\": \"JOURNEY_ID\"\n  }'\n","lang":"bash"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"request-parameters","__idx":8},"children":["Request parameters"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Parameter"},"children":["Parameter"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Type"},"children":["Type"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Required"},"children":["Required"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["clientId"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["string"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Yes"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Query string parameter containing the Client ID of the application running the journey"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["code"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["string"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Yes"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["One-time opaque code returned after successful authenticated journey completion"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["journeyId"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["string"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Yes"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Identifier of the journey that generated the code"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Authorization"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["string"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Yes"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Bearer token for the backend client. Must contain an ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["app_id"]}," claim and the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["execute:<app_id>:auth-tokens"]}," permission"]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"response","__idx":9},"children":["Response"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"successful-response-status-code-200-ok-","__idx":10},"children":["Successful response (Status code: ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["200 OK"]},")"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["A successful response contains user tokens and a session identifier, for example:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"{\n  \"access_token\": \"ACCESS_TOKEN\",\n  \"id_token\": \"ID_TOKEN\",\n  \"refresh_token\": \"REFRESH_TOKEN\",\n  \"session_id\": \"SESSION_ID\"\n}\n","lang":"json"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The returned ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["access_token"]}," is a JWT access token that includes IDO-specific custom claims under ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["custom_claims.ido"]},", including:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["journey_id"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["session_id"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["invocation_id"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["correlation_id"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["journey_name"]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"successful-response-fields","__idx":11},"children":["Successful response fields"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Field Name"},"children":["Field Name"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Type"},"children":["Type"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["access_token"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["string"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["JWT access token enriched with IDO-specific custom claims under ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["custom_claims.ido"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["id_token"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["string"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["OpenID Connect ID token"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["refresh_token"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["string"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["OAuth 2.0 refresh token"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["session_id"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["string"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Server-side session identifier"]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"error-response--400-bad-request-","__idx":12},"children":["Error response (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["400 Bad Request"]},")"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"{\n  \"error_code\": 5007,\n  \"message\": \"invalid_grant\"\n}\n","lang":"json"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Returned when the code is invalid, expired, already consumed, or does not match the supplied ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["journeyId"]},"."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"error-response--401-unauthorized-","__idx":13},"children":["Error response (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["401 Unauthorized"]},")"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"{\n  \"error_code\": 5001,\n  \"message\": \"Bad credentials provided, appId not found in token claims\"\n}\n","lang":"json"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Returned when the bearer token is missing or invalid, when the token does not include an ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["app_id"]}," claim, or when the backend client is missing the required permission."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"legacy-journey-token","__idx":14},"children":["Legacy journey token"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The behavior described above is the current SDK journey completion model for authenticated journeys."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["If your tenant still uses the legacy journey token behavior, check the global ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Return journey token on completion"]}," setting under ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["B2B"]}," or ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["B2C Identity"]}," (based on your implementation) > ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Identity Journeys"]}," > ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Journey settings"]},"."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["For existing tenants, this setting is enabled by default to preserve backward compatibility. For new tenants, this setting is disabled by default."]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["if the setting is enabled, successful journey completion returns a journey token in addition to the opaque code and any user access tokens issued after successful authentication"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["if you disable the setting, the legacy journey token is no longer returned"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The setting does not control whether authenticated journeys return the opaque code. For successful journeys with an authentication step, the opaque code is returned regardless of whether this setting is enabled."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The journey token is a legacy completion artifact. It does not include OIDC access tokens or ID tokens."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["For details about the legacy behavior, see ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/guides/orchestration/getting-started/journey_token"},"children":["Journey token"]},"."]}]},"headings":[{"value":"Journey completion for SDK journeys","id":"journey-completion-for-sdk-journeys","depth":1},{"value":"How it works","id":"how-it-works","depth":2},{"value":"Opaque code behavior","id":"opaque-code-behavior","depth":2},{"value":"Backend token exchange requirements","id":"backend-token-exchange-requirements","depth":2},{"value":"Token Exchange API","id":"token-exchange-api","depth":2},{"value":"Endpoint","id":"endpoint","depth":3},{"value":"Authentication","id":"authentication","depth":3},{"value":"Example request","id":"example-request","depth":3},{"value":"Request parameters","id":"request-parameters","depth":3},{"value":"Response","id":"response","depth":3},{"value":"Successful response (Status code: 200 OK )","id":"successful-response-status-code-200-ok-","depth":4},{"value":"Successful response fields","id":"successful-response-fields","depth":4},{"value":"Error response ( 400 Bad Request )","id":"error-response--400-bad-request-","depth":4},{"value":"Error response ( 401 Unauthorized )","id":"error-response--401-unauthorized-","depth":4},{"value":"Legacy journey token","id":"legacy-journey-token","depth":2}],"frontmatter":{"markdown":{"toc":{"depth":2}},"seo":{"title":"Journey completion for SDK journeys"}},"lastModified":"2026-06-03T08:52:17.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/guides/orchestration/getting-started/journey_completion","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}