{"templateId":"markdown","sharedDataIds":{"sidebar":"sidebar-products/rest/guides/sidebars.yaml"},"props":{"metadata":{"markdoc":{"tagList":[]},"type":"markdown"},"seo":{"title":"Trust Relationship Authentication","description":"Embed DailyPay On Demand Pay into your applications with our APIs and SDKs.","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":"trust-relationship-authentication","__idx":0},"children":["Trust Relationship Authentication"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"goal","__idx":1},"children":["Goal"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Use industry standards to power developer access to DailyPay APIs and Embedded Experiences, minimizing user and developer surprise and maximizing user-session reuse."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"approach","__idx":2},"children":["Approach"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Use nested OIDC flows to authenticate users for DailyPay using the developer’s Identity Provider."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"methods","__idx":3},"children":["Methods"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Developers will use OAuth2.0 Authorization Code Flow + PKCE and OIDC to retrieve access and refresh tokens for use with ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/rest/reference/"},"children":["DailyPay APIs"]}," and ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/rest/elements"},"children":["DailyPay Elements"]},": see ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/rest/guides/auth/authorization-code-flow"},"children":["Authorization Code Flow"]},"."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Within the Authorization Code Flow, DailyPay will reach out to the partner’s Identity Provider to identify the user. DailyPay prefers an OIDC Identity Provider wherever possible, and our Auth Server will initiate its own, ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["nested"]}," OAuth2.0 Authorization Code Flow to the partner’s Auth Server. If the partner’s Auth Server identifies an active session, the experience is seamless and potentially zero-touch for the end user, and DailyPay will match the subject identifier from the active session to an identity loaded into DailyPay from the Data Exchange or elsewhere. DailyPay Auth Server will then return the payload needed to complete the Authorization Code Flow and obtain an access token for the API or Element."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Note"]},": An important prerequisite is that a unique identifier for each user is shared across systems, usually through the DailyPay Data Exchange."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The following diagram details all steps of the OIDC-in-OIDC or SAML-in-OIDC approach."]},{"$$mdtype":"Tag","name":"Diagram","attributes":{"data-language":"mermaid","diagramType":"mermaid","diagramSource":"%%{init: {'theme': 'forest'}}%%\nsequenceDiagram\n    autonumber\n    actor User\n    participant Your Auth Server\n    participant Your Application\n    participant DailyPay Auth Server\n    participant DailyPay API\n    Your Auth Server-->>User: Has an authenticated session\n    User->>Your Application: Clicks on funtionality requiring DailyPay user access\n    Your Application->>Your Application: Construct a signed OAuth2 Request URL\n    Your Application->>User: Open a webview or secure tab to request URL with iss=your_auth_url\n    User->>DailyPay Auth Server: Initiate OAuth2 Authorization Code Flow\n    critical OIDC (Preferred)\n        DailyPay Auth Server->>User: Redirect to your auth URL with DailyPay client parameters\n        User->>Your Auth Server: Login or reuse session\n        Your Auth Server->>User: Redirect user to DailyPay callback URL with authorization code\n        User->>DailyPay Auth Server: Authorization code\n        DailyPay Auth Server->>Your Auth Server: Exchange authorization code\n        Your Auth Server->>DailyPay Auth Server: Return access token and (optionally) ID token\n        DailyPay Auth Server->>DailyPay Auth Server: Extract unique ID from ID token\n    end\n    opt SAML\n        DailyPay Auth Server->>User: Redirect to your SSO URL\n        User->>Your Auth Server: Login or reuse session\n        Your Auth Server->>User: Redirect user with SAML response\n        User->>DailyPay Auth Server: SAML response forwarded\n        DailyPay Auth Server->>DailyPay Auth Server: Validate SAML response\n        DailyPay Auth Server->>DailyPay Auth Server: Extract unique ID from SAML\n    end\n    DailyPay Auth Server->>User: Present terms and conditions\n    User->>DailyPay Auth Server: Click to sign terms and conditions\n    DailyPay Auth Server-->>DailyPay API: Activate user\n    DailyPay Auth Server->>User: Redirect user to your callback URL with authorization code\n    User->>Your Application: authorization code\n    Your Application->>DailyPay Auth Server: Exchange authorization code\n    DailyPay Auth Server->>Your Application: Return API access token\n    Your Application->>DailyPay API: Authenticate API calls\n","diagramHtml":"<svg id=\"diagram-1d2782068b5a47304b633335d256e338ab4e544e2b4aeb3fd8e527cf54461200\" width=\"100%\" xmlns=\"http://www.w3.org/2000/svg\" style=\"max-width: 1480.5px;\" viewBox=\"-50 -10 1480.5 1869\" role=\"graphics-document document\" aria-roledescription=\"sequence\"><g><rect x=\"1230.5\" y=\"1783\" fill=\"#eaeaea\" stroke=\"#666\" width=\"150\" height=\"65\" name=\"DailyPay API\" rx=\"3\" ry=\"3\" class=\"actor actor-bottom\"></rect><text x=\"1305.5\" y=\"1815.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;, &quot;Redocly Mermaid CJK&quot;, sans-serif;\"><tspan x=\"1305.5\" dy=\"0\">DailyPay API</tspan></text></g><g><rect x=\"1005.5\" y=\"1783\" fill=\"#eaeaea\" stroke=\"#666\" width=\"175\" height=\"65\" name=\"DailyPay Auth Server\" rx=\"3\" ry=\"3\" class=\"actor actor-bottom\"></rect><text x=\"1093\" y=\"1815.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;, &quot;Redocly Mermaid CJK&quot;, sans-serif;\"><tspan x=\"1093\" dy=\"0\">DailyPay Auth Server</tspan></text></g><g><rect x=\"733\" y=\"1783\" fill=\"#eaeaea\" stroke=\"#666\" width=\"150\" height=\"65\" name=\"Your Application\" rx=\"3\" ry=\"3\" class=\"actor actor-bottom\"></rect><text x=\"808\" y=\"1815.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;, &quot;Redocly Mermaid CJK&quot;, sans-serif;\"><tspan x=\"808\" dy=\"0\">Your Application</tspan></text></g><g><rect x=\"533\" y=\"1783\" fill=\"#eaeaea\" stroke=\"#666\" width=\"150\" height=\"65\" name=\"Your Auth Server\" rx=\"3\" ry=\"3\" class=\"actor actor-bottom\"></rect><text x=\"608\" y=\"1815.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;, &quot;Redocly Mermaid CJK&quot;, sans-serif;\"><tspan x=\"608\" dy=\"0\">Your Auth Server</tspan></text></g><g></g><g><line id=\"actor4\" x1=\"1305.5\" y1=\"65\" x2=\"1305.5\" y2=\"1783\" class=\"actor-line 200\" stroke-width=\"0.5px\" stroke=\"#999\" name=\"DailyPay API\" data-et=\"life-line\" data-id=\"DailyPay API\"></line><g id=\"root-4\" data-et=\"participant\" data-type=\"participant\" data-id=\"DailyPay API\"><rect x=\"1230.5\" y=\"0\" fill=\"#eaeaea\" stroke=\"#666\" width=\"150\" height=\"65\" name=\"DailyPay API\" rx=\"3\" ry=\"3\" class=\"actor actor-top\"></rect><text x=\"1305.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;, &quot;Redocly Mermaid CJK&quot;, sans-serif;\"><tspan x=\"1305.5\" dy=\"0\">DailyPay API</tspan></text></g></g><g><line id=\"actor3\" x1=\"1093\" y1=\"65\" x2=\"1093\" y2=\"1783\" class=\"actor-line 200\" stroke-width=\"0.5px\" stroke=\"#999\" name=\"DailyPay Auth Server\" data-et=\"life-line\" data-id=\"DailyPay Auth Server\"></line><g id=\"root-3\" data-et=\"participant\" data-type=\"participant\" data-id=\"DailyPay Auth Server\"><rect x=\"1005.5\" y=\"0\" fill=\"#eaeaea\" stroke=\"#666\" width=\"175\" height=\"65\" name=\"DailyPay Auth Server\" rx=\"3\" ry=\"3\" class=\"actor actor-top\"></rect><text x=\"1093\" 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;, &quot;Redocly Mermaid CJK&quot;, sans-serif;\"><tspan x=\"1093\" dy=\"0\">DailyPay Auth Server</tspan></text></g></g><g><line id=\"actor2\" x1=\"808\" y1=\"65\" x2=\"808\" y2=\"1783\" class=\"actor-line 200\" stroke-width=\"0.5px\" stroke=\"#999\" name=\"Your Application\" data-et=\"life-line\" data-id=\"Your Application\"></line><g id=\"root-2\" data-et=\"participant\" data-type=\"participant\" data-id=\"Your Application\"><rect x=\"733\" y=\"0\" fill=\"#eaeaea\" stroke=\"#666\" width=\"150\" height=\"65\" name=\"Your Application\" rx=\"3\" ry=\"3\" class=\"actor actor-top\"></rect><text x=\"808\" 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;, &quot;Redocly Mermaid CJK&quot;, sans-serif;\"><tspan x=\"808\" dy=\"0\">Your Application</tspan></text></g></g><g><line id=\"actor1\" x1=\"608\" y1=\"65\" x2=\"608\" y2=\"1783\" class=\"actor-line 200\" stroke-width=\"0.5px\" stroke=\"#999\" name=\"Your Auth Server\" data-et=\"life-line\" data-id=\"Your Auth Server\"></line><g id=\"root-1\" data-et=\"participant\" data-type=\"participant\" data-id=\"Your Auth Server\"><rect x=\"533\" y=\"0\" fill=\"#eaeaea\" stroke=\"#666\" width=\"150\" height=\"65\" name=\"Your Auth Server\" rx=\"3\" ry=\"3\" class=\"actor actor-top\"></rect><text x=\"608\" 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;, &quot;Redocly Mermaid CJK&quot;, sans-serif;\"><tspan x=\"608\" dy=\"0\">Your Auth Server</tspan></text></g></g><g><line id=\"actor0\" x1=\"75\" y1=\"80\" x2=\"75\" y2=\"1783\" class=\"actor-line 200\" stroke-width=\"0.5px\" stroke=\"#999\" name=\"User\" data-et=\"life-line\" data-id=\"User\"></line></g><style>#diagram-1d2782068b5a47304b633335d256e338ab4e544e2b4aeb3fd8e527cf54461200{font-family:\"Redocly Mermaid Sans\",\"Redocly Mermaid CJK\",sans-serif;font-size:16px;fill:#000000;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#diagram-1d2782068b5a47304b633335d256e338ab4e544e2b4aeb3fd8e527cf54461200 .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#diagram-1d2782068b5a47304b633335d256e338ab4e544e2b4aeb3fd8e527cf54461200 .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#diagram-1d2782068b5a47304b633335d256e338ab4e544e2b4aeb3fd8e527cf54461200 .error-icon{fill:#552222;}#diagram-1d2782068b5a47304b633335d256e338ab4e544e2b4aeb3fd8e527cf54461200 .error-text{fill:#552222;stroke:#552222;}#diagram-1d2782068b5a47304b633335d256e338ab4e544e2b4aeb3fd8e527cf54461200 .edge-thickness-normal{stroke-width:1px;}#diagram-1d2782068b5a47304b633335d256e338ab4e544e2b4aeb3fd8e527cf54461200 .edge-thickness-thick{stroke-width:3.5px;}#diagram-1d2782068b5a47304b633335d256e338ab4e544e2b4aeb3fd8e527cf54461200 .edge-pattern-solid{stroke-dasharray:0;}#diagram-1d2782068b5a47304b633335d256e338ab4e544e2b4aeb3fd8e527cf54461200 .edge-thickness-invisible{stroke-width:0;fill:none;}#diagram-1d2782068b5a47304b633335d256e338ab4e544e2b4aeb3fd8e527cf54461200 .edge-pattern-dashed{stroke-dasharray:3;}#diagram-1d2782068b5a47304b633335d256e338ab4e544e2b4aeb3fd8e527cf54461200 .edge-pattern-dotted{stroke-dasharray:2;}#diagram-1d2782068b5a47304b633335d256e338ab4e544e2b4aeb3fd8e527cf54461200 .marker{fill:#000000;stroke:#000000;}#diagram-1d2782068b5a47304b633335d256e338ab4e544e2b4aeb3fd8e527cf54461200 .marker.cross{stroke:#000000;}#diagram-1d2782068b5a47304b633335d256e338ab4e544e2b4aeb3fd8e527cf54461200 svg{font-family:\"Redocly Mermaid Sans\",\"Redocly Mermaid CJK\",sans-serif;font-size:16px;}#diagram-1d2782068b5a47304b633335d256e338ab4e544e2b4aeb3fd8e527cf54461200 p{margin:0;}#diagram-1d2782068b5a47304b633335d256e338ab4e544e2b4aeb3fd8e527cf54461200 .actor{stroke:hsl(78.1578947368, 58.4615384615%, 54.5098039216%);fill:#cde498;stroke-width:1;}#diagram-1d2782068b5a47304b633335d256e338ab4e544e2b4aeb3fd8e527cf54461200 rect.actor.outer-path[data-look=\"neo\"]{filter:drop-shadow( 1px 2px 2px rgba(185,185,185,0.5));}#diagram-1d2782068b5a47304b633335d256e338ab4e544e2b4aeb3fd8e527cf54461200 rect.note[data-look=\"neo\"]{stroke:#6eaa49;fill:#fff5ad;filter:drop-shadow( 1px 2px 2px rgba(185,185,185,0.5));}#diagram-1d2782068b5a47304b633335d256e338ab4e544e2b4aeb3fd8e527cf54461200 text.actor&gt;tspan{fill:black;stroke:none;}#diagram-1d2782068b5a47304b633335d256e338ab4e544e2b4aeb3fd8e527cf54461200 .actor-line{stroke:hsl(78.1578947368, 58.4615384615%, 54.5098039216%);}#diagram-1d2782068b5a47304b633335d256e338ab4e544e2b4aeb3fd8e527cf54461200 .innerArc{stroke-width:1.5;stroke-dasharray:none;}#diagram-1d2782068b5a47304b633335d256e338ab4e544e2b4aeb3fd8e527cf54461200 .messageLine0{stroke-width:1.5;stroke-dasharray:none;stroke:#333;}#diagram-1d2782068b5a47304b633335d256e338ab4e544e2b4aeb3fd8e527cf54461200 .messageLine1{stroke-width:1.5;stroke-dasharray:2,2;stroke:#333;}#diagram-1d2782068b5a47304b633335d256e338ab4e544e2b4aeb3fd8e527cf54461200 [id$=\"-arrowhead\"] path{fill:#333;stroke:#333;}#diagram-1d2782068b5a47304b633335d256e338ab4e544e2b4aeb3fd8e527cf54461200 .sequenceNumber{fill:white;}#diagram-1d2782068b5a47304b633335d256e338ab4e544e2b4aeb3fd8e527cf54461200 [id$=\"-sequencenumber\"]{fill:#333;}#diagram-1d2782068b5a47304b633335d256e338ab4e544e2b4aeb3fd8e527cf54461200 [id$=\"-crosshead\"] path{fill:#333;stroke:#333;}#diagram-1d2782068b5a47304b633335d256e338ab4e544e2b4aeb3fd8e527cf54461200 .messageText{fill:#333;stroke:none;}#diagram-1d2782068b5a47304b633335d256e338ab4e544e2b4aeb3fd8e527cf54461200 .labelBox{stroke:#326932;fill:#cde498;filter:none;}#diagram-1d2782068b5a47304b633335d256e338ab4e544e2b4aeb3fd8e527cf54461200 .labelText,#diagram-1d2782068b5a47304b633335d256e338ab4e544e2b4aeb3fd8e527cf54461200 .labelText&gt;tspan{fill:black;stroke:none;}#diagram-1d2782068b5a47304b633335d256e338ab4e544e2b4aeb3fd8e527cf54461200 .loopText,#diagram-1d2782068b5a47304b633335d256e338ab4e544e2b4aeb3fd8e527cf54461200 .loopText&gt;tspan{fill:black;stroke:none;}#diagram-1d2782068b5a47304b633335d256e338ab4e544e2b4aeb3fd8e527cf54461200 .sectionTitle,#diagram-1d2782068b5a47304b633335d256e338ab4e544e2b4aeb3fd8e527cf54461200 .sectionTitle&gt;tspan{fill:black;stroke:none;}#diagram-1d2782068b5a47304b633335d256e338ab4e544e2b4aeb3fd8e527cf54461200 .loopLine{stroke-width:2px;stroke-dasharray:2,2;stroke:#326932;fill:#326932;}#diagram-1d2782068b5a47304b633335d256e338ab4e544e2b4aeb3fd8e527cf54461200 .note{stroke:#6eaa49;fill:#fff5ad;}#diagram-1d2782068b5a47304b633335d256e338ab4e544e2b4aeb3fd8e527cf54461200 .noteText,#diagram-1d2782068b5a47304b633335d256e338ab4e544e2b4aeb3fd8e527cf54461200 .noteText&gt;tspan{fill:black;stroke:none;font-weight:normal;}#diagram-1d2782068b5a47304b633335d256e338ab4e544e2b4aeb3fd8e527cf54461200 .activation0{fill:#f4f4f4;stroke:#666;}#diagram-1d2782068b5a47304b633335d256e338ab4e544e2b4aeb3fd8e527cf54461200 .activation1{fill:#f4f4f4;stroke:#666;}#diagram-1d2782068b5a47304b633335d256e338ab4e544e2b4aeb3fd8e527cf54461200 .activation2{fill:#f4f4f4;stroke:#666;}#diagram-1d2782068b5a47304b633335d256e338ab4e544e2b4aeb3fd8e527cf54461200 .actorPopupMenu{position:absolute;}#diagram-1d2782068b5a47304b633335d256e338ab4e544e2b4aeb3fd8e527cf54461200 .actorPopupMenuPanel{position:absolute;fill:#cde498;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-1d2782068b5a47304b633335d256e338ab4e544e2b4aeb3fd8e527cf54461200 .actor-man circle,#diagram-1d2782068b5a47304b633335d256e338ab4e544e2b4aeb3fd8e527cf54461200 line{fill:#cde498;stroke-width:2px;}#diagram-1d2782068b5a47304b633335d256e338ab4e544e2b4aeb3fd8e527cf54461200 g rect.rect{filter:drop-shadow( 1px 2px 2px rgba(185,185,185,0.5));stroke:#13540c;}#diagram-1d2782068b5a47304b633335d256e338ab4e544e2b4aeb3fd8e527cf54461200 .node .neo-node{stroke:#13540c;}#diagram-1d2782068b5a47304b633335d256e338ab4e544e2b4aeb3fd8e527cf54461200 [data-look=\"neo\"].node rect,#diagram-1d2782068b5a47304b633335d256e338ab4e544e2b4aeb3fd8e527cf54461200 [data-look=\"neo\"].cluster rect,#diagram-1d2782068b5a47304b633335d256e338ab4e544e2b4aeb3fd8e527cf54461200 [data-look=\"neo\"].node polygon{stroke:url(#diagram-1d2782068b5a47304b633335d256e338ab4e544e2b4aeb3fd8e527cf54461200-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,0.5));}#diagram-1d2782068b5a47304b633335d256e338ab4e544e2b4aeb3fd8e527cf54461200 [data-look=\"neo\"].swimlane.cluster rect{filter:none;}#diagram-1d2782068b5a47304b633335d256e338ab4e544e2b4aeb3fd8e527cf54461200 [data-look=\"neo\"].node path{stroke:url(#diagram-1d2782068b5a47304b633335d256e338ab4e544e2b4aeb3fd8e527cf54461200-gradient);stroke-width:1px;}#diagram-1d2782068b5a47304b633335d256e338ab4e544e2b4aeb3fd8e527cf54461200 [data-look=\"neo\"].node .outer-path{filter:drop-shadow( 1px 2px 2px rgba(185,185,185,0.5));}#diagram-1d2782068b5a47304b633335d256e338ab4e544e2b4aeb3fd8e527cf54461200 [data-look=\"neo\"].node .neo-line path{stroke:#13540c;filter:none;}#diagram-1d2782068b5a47304b633335d256e338ab4e544e2b4aeb3fd8e527cf54461200 [data-look=\"neo\"].node circle{stroke:url(#diagram-1d2782068b5a47304b633335d256e338ab4e544e2b4aeb3fd8e527cf54461200-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,0.5));}#diagram-1d2782068b5a47304b633335d256e338ab4e544e2b4aeb3fd8e527cf54461200 [data-look=\"neo\"].node circle .state-start{fill:#000000;}#diagram-1d2782068b5a47304b633335d256e338ab4e544e2b4aeb3fd8e527cf54461200 [data-look=\"neo\"].icon-shape .icon{fill:url(#diagram-1d2782068b5a47304b633335d256e338ab4e544e2b4aeb3fd8e527cf54461200-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,0.5));}#diagram-1d2782068b5a47304b633335d256e338ab4e544e2b4aeb3fd8e527cf54461200 [data-look=\"neo\"].icon-shape .icon-neo path{stroke:url(#diagram-1d2782068b5a47304b633335d256e338ab4e544e2b4aeb3fd8e527cf54461200-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,0.5));}#diagram-1d2782068b5a47304b633335d256e338ab4e544e2b4aeb3fd8e527cf54461200 :root{--mermaid-font-family:\"Redocly Mermaid Sans\",\"Redocly Mermaid CJK\",sans-serif;}#diagram-1d2782068b5a47304b633335d256e338ab4e544e2b4aeb3fd8e527cf54461200 :root{--mermaid-font-family:\"Redocly Mermaid Sans\",\"Redocly Mermaid CJK\",sans-serif;}</style><g></g><defs><symbol id=\"diagram-1d2782068b5a47304b633335d256e338ab4e544e2b4aeb3fd8e527cf54461200-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-1d2782068b5a47304b633335d256e338ab4e544e2b4aeb3fd8e527cf54461200-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-1d2782068b5a47304b633335d256e338ab4e544e2b4aeb3fd8e527cf54461200-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-1d2782068b5a47304b633335d256e338ab4e544e2b4aeb3fd8e527cf54461200-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-1d2782068b5a47304b633335d256e338ab4e544e2b4aeb3fd8e527cf54461200-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-1d2782068b5a47304b633335d256e338ab4e544e2b4aeb3fd8e527cf54461200-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-1d2782068b5a47304b633335d256e338ab4e544e2b4aeb3fd8e527cf54461200-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-1d2782068b5a47304b633335d256e338ab4e544e2b4aeb3fd8e527cf54461200-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-1d2782068b5a47304b633335d256e338ab4e544e2b4aeb3fd8e527cf54461200-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-1d2782068b5a47304b633335d256e338ab4e544e2b4aeb3fd8e527cf54461200-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-1d2782068b5a47304b633335d256e338ab4e544e2b4aeb3fd8e527cf54461200-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=\"i14\"><line x1=\"64\" y1=\"375\" x2=\"1221.5\" y2=\"375\" class=\"loopLine\"></line><line x1=\"1221.5\" y1=\"375\" x2=\"1221.5\" y2=\"860\" class=\"loopLine\"></line><line x1=\"64\" y1=\"860\" x2=\"1221.5\" y2=\"860\" class=\"loopLine\"></line><line x1=\"64\" y1=\"375\" x2=\"64\" y2=\"860\" class=\"loopLine\"></line><polygon points=\"64,375 114,375 114,388 105.6,395 64,395\" class=\"labelBox\"></polygon><text x=\"89\" y=\"388\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"labelText\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">critical</text><text x=\"667.75\" y=\"393\" text-anchor=\"middle\" class=\"loopText\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\"><tspan x=\"667.75\">[OIDC (Preferred)]</tspan></text></g><g data-et=\"control-structure\" data-id=\"i22\"><line x1=\"64\" y1=\"870\" x2=\"1211\" y2=\"870\" class=\"loopLine\"></line><line x1=\"1211\" y1=\"870\" x2=\"1211\" y2=\"1331\" class=\"loopLine\"></line><line x1=\"64\" y1=\"1331\" x2=\"1211\" y2=\"1331\" class=\"loopLine\"></line><line x1=\"64\" y1=\"870\" x2=\"64\" y2=\"1331\" class=\"loopLine\"></line><polygon points=\"64,870 114,870 114,883 105.6,890 64,890\" class=\"labelBox\"></polygon><text x=\"89\" y=\"883\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"labelText\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">opt</text><text x=\"662.5\" y=\"888\" text-anchor=\"middle\" class=\"loopText\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\"><tspan x=\"662.5\">[SAML]</tspan></text></g><g class=\"actor-man actor-top\" name=\"User\" data-et=\"participant\" data-type=\"actor\" data-id=\"User\" style=\"stroke: rgb(166, 207, 71);\"><line id=\"actor-man-torso0\" x1=\"75\" y1=\"25\" x2=\"75\" y2=\"45\"></line><line id=\"actor-man-arms0\" x1=\"57\" y1=\"33\" x2=\"93\" y2=\"33\"></line><line x1=\"57\" y1=\"60\" x2=\"75\" y2=\"45\"></line><line x1=\"75\" y1=\"45\" x2=\"91\" y2=\"60\"></line><circle cx=\"75\" cy=\"10\" r=\"15\" width=\"150\" height=\"65\"></circle><text x=\"75\" y=\"67.5\" dominant-baseline=\"central\" alignment-baseline=\"central\" class=\"actor actor-man\" style=\"text-anchor: middle; font-size: 16px; font-weight: 400; font-family: &quot;Redocly Mermaid Sans&quot;, &quot;Redocly Mermaid CJK&quot;, sans-serif;\"><tspan x=\"75\" dy=\"0\">User</tspan></text></g><text x=\"343\" y=\"80\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">Has an authenticated session</text><line x1=\"613\" y1=\"119\" x2=\"79\" y2=\"119\" class=\"messageLine1\" data-et=\"message\" data-id=\"i1\" data-from=\"Your Auth Server\" data-to=\"User\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-1d2782068b5a47304b633335d256e338ab4e544e2b4aeb3fd8e527cf54461200-arrowhead)\" style=\"stroke-dasharray: 3, 3; fill: none;\"></line><line x1=\"608\" y1=\"119\" x2=\"608\" y2=\"119\" stroke-width=\"0\" marker-start=\"url(#diagram-1d2782068b5a47304b633335d256e338ab4e544e2b4aeb3fd8e527cf54461200-sequencenumber)\"></line><text x=\"608\" y=\"123\" font-family=\"sans-serif\" font-size=\"12px\" text-anchor=\"middle\" class=\"sequenceNumber\">1</text><text x=\"440\" y=\"134\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">Clicks on funtionality requiring DailyPay user access</text><line x1=\"82\" y1=\"173\" x2=\"804\" y2=\"173\" class=\"messageLine0\" data-et=\"message\" data-id=\"i2\" data-from=\"User\" data-to=\"Your Application\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-1d2782068b5a47304b633335d256e338ab4e544e2b4aeb3fd8e527cf54461200-arrowhead)\" style=\"fill: none;\"></line><line x1=\"75\" y1=\"173\" x2=\"75\" y2=\"173\" stroke-width=\"0\" marker-start=\"url(#diagram-1d2782068b5a47304b633335d256e338ab4e544e2b4aeb3fd8e527cf54461200-sequencenumber)\"></line><text x=\"75\" y=\"177\" font-family=\"sans-serif\" font-size=\"12px\" text-anchor=\"middle\" class=\"sequenceNumber\">2</text><text x=\"809\" y=\"188\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">Construct a signed OAuth2 Request URL</text><path d=\"M 809,227 C 869,217 869,257 809,247\" class=\"messageLine0\" data-et=\"message\" data-id=\"i3\" data-from=\"Your Application\" data-to=\"Your Application\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-1d2782068b5a47304b633335d256e338ab4e544e2b4aeb3fd8e527cf54461200-arrowhead)\" x1=\"815\" style=\"fill: none;\"></path><line x1=\"808\" y1=\"227\" x2=\"808\" y2=\"227\" stroke-width=\"0\" marker-start=\"url(#diagram-1d2782068b5a47304b633335d256e338ab4e544e2b4aeb3fd8e527cf54461200-sequencenumber)\"></line><text x=\"808\" y=\"231\" font-family=\"sans-serif\" font-size=\"12px\" text-anchor=\"middle\" class=\"sequenceNumber\">3</text><text x=\"443\" y=\"272\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">Open a webview or secure tab to request URL with iss=your_auth_url</text><line x1=\"813\" y1=\"311\" x2=\"79\" y2=\"311\" class=\"messageLine0\" data-et=\"message\" data-id=\"i4\" data-from=\"Your Application\" data-to=\"User\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-1d2782068b5a47304b633335d256e338ab4e544e2b4aeb3fd8e527cf54461200-arrowhead)\" style=\"fill: none;\"></line><line x1=\"808\" y1=\"311\" x2=\"808\" y2=\"311\" stroke-width=\"0\" marker-start=\"url(#diagram-1d2782068b5a47304b633335d256e338ab4e544e2b4aeb3fd8e527cf54461200-sequencenumber)\"></line><text x=\"808\" y=\"315\" font-family=\"sans-serif\" font-size=\"12px\" text-anchor=\"middle\" class=\"sequenceNumber\">4</text><text x=\"583\" y=\"326\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">Initiate OAuth2 Authorization Code Flow</text><line x1=\"82\" y1=\"365\" x2=\"1089\" y2=\"365\" class=\"messageLine0\" data-et=\"message\" data-id=\"i5\" data-from=\"User\" data-to=\"DailyPay Auth Server\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-1d2782068b5a47304b633335d256e338ab4e544e2b4aeb3fd8e527cf54461200-arrowhead)\" style=\"fill: none;\"></line><line x1=\"75\" y1=\"365\" x2=\"75\" y2=\"365\" stroke-width=\"0\" marker-start=\"url(#diagram-1d2782068b5a47304b633335d256e338ab4e544e2b4aeb3fd8e527cf54461200-sequencenumber)\"></line><text x=\"75\" y=\"369\" font-family=\"sans-serif\" font-size=\"12px\" text-anchor=\"middle\" class=\"sequenceNumber\">5</text><text x=\"586\" y=\"427\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">Redirect to your auth URL with DailyPay client parameters</text><line x1=\"1098\" y1=\"466\" x2=\"79\" y2=\"466\" class=\"messageLine0\" data-et=\"message\" data-id=\"i7\" data-from=\"DailyPay Auth Server\" data-to=\"User\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-1d2782068b5a47304b633335d256e338ab4e544e2b4aeb3fd8e527cf54461200-arrowhead)\" style=\"fill: none;\"></line><line x1=\"1093\" y1=\"466\" x2=\"1093\" y2=\"466\" stroke-width=\"0\" marker-start=\"url(#diagram-1d2782068b5a47304b633335d256e338ab4e544e2b4aeb3fd8e527cf54461200-sequencenumber)\"></line><text x=\"1093\" y=\"470\" font-family=\"sans-serif\" font-size=\"12px\" text-anchor=\"middle\" class=\"sequenceNumber\">6</text><text x=\"340\" y=\"481\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">Login or reuse session</text><line x1=\"82\" y1=\"520\" x2=\"604\" y2=\"520\" class=\"messageLine0\" data-et=\"message\" data-id=\"i8\" data-from=\"User\" data-to=\"Your Auth Server\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-1d2782068b5a47304b633335d256e338ab4e544e2b4aeb3fd8e527cf54461200-arrowhead)\" style=\"fill: none;\"></line><line x1=\"75\" y1=\"520\" x2=\"75\" y2=\"520\" stroke-width=\"0\" marker-start=\"url(#diagram-1d2782068b5a47304b633335d256e338ab4e544e2b4aeb3fd8e527cf54461200-sequencenumber)\"></line><text x=\"75\" y=\"524\" font-family=\"sans-serif\" font-size=\"12px\" text-anchor=\"middle\" class=\"sequenceNumber\">7</text><text x=\"343\" y=\"535\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">Redirect user to DailyPay callback URL with authorization code</text><line x1=\"613\" y1=\"574\" x2=\"79\" y2=\"574\" class=\"messageLine0\" data-et=\"message\" data-id=\"i9\" data-from=\"Your Auth Server\" data-to=\"User\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-1d2782068b5a47304b633335d256e338ab4e544e2b4aeb3fd8e527cf54461200-arrowhead)\" style=\"fill: none;\"></line><line x1=\"608\" y1=\"574\" x2=\"608\" y2=\"574\" stroke-width=\"0\" marker-start=\"url(#diagram-1d2782068b5a47304b633335d256e338ab4e544e2b4aeb3fd8e527cf54461200-sequencenumber)\"></line><text x=\"608\" y=\"578\" font-family=\"sans-serif\" font-size=\"12px\" text-anchor=\"middle\" class=\"sequenceNumber\">8</text><text x=\"583\" y=\"589\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">Authorization code</text><line x1=\"82\" y1=\"628\" x2=\"1089\" y2=\"628\" class=\"messageLine0\" data-et=\"message\" data-id=\"i10\" data-from=\"User\" data-to=\"DailyPay Auth Server\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-1d2782068b5a47304b633335d256e338ab4e544e2b4aeb3fd8e527cf54461200-arrowhead)\" style=\"fill: none;\"></line><line x1=\"75\" y1=\"628\" x2=\"75\" y2=\"628\" stroke-width=\"0\" marker-start=\"url(#diagram-1d2782068b5a47304b633335d256e338ab4e544e2b4aeb3fd8e527cf54461200-sequencenumber)\"></line><text x=\"75\" y=\"632\" font-family=\"sans-serif\" font-size=\"12px\" text-anchor=\"middle\" class=\"sequenceNumber\">9</text><text x=\"852\" y=\"643\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">Exchange authorization code</text><line x1=\"1098\" y1=\"682\" x2=\"612\" y2=\"682\" class=\"messageLine0\" data-et=\"message\" data-id=\"i11\" data-from=\"DailyPay Auth Server\" data-to=\"Your Auth Server\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-1d2782068b5a47304b633335d256e338ab4e544e2b4aeb3fd8e527cf54461200-arrowhead)\" style=\"fill: none;\"></line><line x1=\"1093\" y1=\"682\" x2=\"1093\" y2=\"682\" stroke-width=\"0\" marker-start=\"url(#diagram-1d2782068b5a47304b633335d256e338ab4e544e2b4aeb3fd8e527cf54461200-sequencenumber)\"></line><text x=\"1093\" y=\"686\" font-family=\"sans-serif\" font-size=\"12px\" text-anchor=\"middle\" class=\"sequenceNumber\">10</text><text x=\"849\" y=\"697\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">Return access token and (optionally) ID token</text><line x1=\"615\" y1=\"736\" x2=\"1089\" y2=\"736\" class=\"messageLine0\" data-et=\"message\" data-id=\"i12\" data-from=\"Your Auth Server\" data-to=\"DailyPay Auth Server\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-1d2782068b5a47304b633335d256e338ab4e544e2b4aeb3fd8e527cf54461200-arrowhead)\" style=\"fill: none;\"></line><line x1=\"608\" y1=\"736\" x2=\"608\" y2=\"736\" stroke-width=\"0\" marker-start=\"url(#diagram-1d2782068b5a47304b633335d256e338ab4e544e2b4aeb3fd8e527cf54461200-sequencenumber)\"></line><text x=\"608\" y=\"740\" font-family=\"sans-serif\" font-size=\"12px\" text-anchor=\"middle\" class=\"sequenceNumber\">11</text><text x=\"1094\" y=\"751\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">Extract unique ID from ID token</text><path d=\"M 1094,790 C 1154,780 1154,820 1094,810\" class=\"messageLine0\" data-et=\"message\" data-id=\"i13\" data-from=\"DailyPay Auth Server\" data-to=\"DailyPay Auth Server\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-1d2782068b5a47304b633335d256e338ab4e544e2b4aeb3fd8e527cf54461200-arrowhead)\" x1=\"1100\" style=\"fill: none;\"></path><line x1=\"1093\" y1=\"790\" x2=\"1093\" y2=\"790\" stroke-width=\"0\" marker-start=\"url(#diagram-1d2782068b5a47304b633335d256e338ab4e544e2b4aeb3fd8e527cf54461200-sequencenumber)\"></line><text x=\"1093\" y=\"794\" font-family=\"sans-serif\" font-size=\"12px\" text-anchor=\"middle\" class=\"sequenceNumber\">12</text><text x=\"586\" y=\"922\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">Redirect to your SSO URL</text><line x1=\"1098\" y1=\"961\" x2=\"79\" y2=\"961\" class=\"messageLine0\" data-et=\"message\" data-id=\"i16\" data-from=\"DailyPay Auth Server\" data-to=\"User\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-1d2782068b5a47304b633335d256e338ab4e544e2b4aeb3fd8e527cf54461200-arrowhead)\" style=\"fill: none;\"></line><line x1=\"1093\" y1=\"961\" x2=\"1093\" y2=\"961\" stroke-width=\"0\" marker-start=\"url(#diagram-1d2782068b5a47304b633335d256e338ab4e544e2b4aeb3fd8e527cf54461200-sequencenumber)\"></line><text x=\"1093\" y=\"965\" font-family=\"sans-serif\" font-size=\"12px\" text-anchor=\"middle\" class=\"sequenceNumber\">13</text><text x=\"340\" y=\"976\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">Login or reuse session</text><line x1=\"82\" y1=\"1015\" x2=\"604\" y2=\"1015\" class=\"messageLine0\" data-et=\"message\" data-id=\"i17\" data-from=\"User\" data-to=\"Your Auth Server\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-1d2782068b5a47304b633335d256e338ab4e544e2b4aeb3fd8e527cf54461200-arrowhead)\" style=\"fill: none;\"></line><line x1=\"75\" y1=\"1015\" x2=\"75\" y2=\"1015\" stroke-width=\"0\" marker-start=\"url(#diagram-1d2782068b5a47304b633335d256e338ab4e544e2b4aeb3fd8e527cf54461200-sequencenumber)\"></line><text x=\"75\" y=\"1019\" font-family=\"sans-serif\" font-size=\"12px\" text-anchor=\"middle\" class=\"sequenceNumber\">14</text><text x=\"343\" y=\"1030\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">Redirect user with SAML response</text><line x1=\"613\" y1=\"1069\" x2=\"79\" y2=\"1069\" class=\"messageLine0\" data-et=\"message\" data-id=\"i18\" data-from=\"Your Auth Server\" data-to=\"User\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-1d2782068b5a47304b633335d256e338ab4e544e2b4aeb3fd8e527cf54461200-arrowhead)\" style=\"fill: none;\"></line><line x1=\"608\" y1=\"1069\" x2=\"608\" y2=\"1069\" stroke-width=\"0\" marker-start=\"url(#diagram-1d2782068b5a47304b633335d256e338ab4e544e2b4aeb3fd8e527cf54461200-sequencenumber)\"></line><text x=\"608\" y=\"1073\" font-family=\"sans-serif\" font-size=\"12px\" text-anchor=\"middle\" class=\"sequenceNumber\">15</text><text x=\"583\" y=\"1084\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">SAML response forwarded</text><line x1=\"82\" y1=\"1123\" x2=\"1089\" y2=\"1123\" class=\"messageLine0\" data-et=\"message\" data-id=\"i19\" data-from=\"User\" data-to=\"DailyPay Auth Server\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-1d2782068b5a47304b633335d256e338ab4e544e2b4aeb3fd8e527cf54461200-arrowhead)\" style=\"fill: none;\"></line><line x1=\"75\" y1=\"1123\" x2=\"75\" y2=\"1123\" stroke-width=\"0\" marker-start=\"url(#diagram-1d2782068b5a47304b633335d256e338ab4e544e2b4aeb3fd8e527cf54461200-sequencenumber)\"></line><text x=\"75\" y=\"1127\" font-family=\"sans-serif\" font-size=\"12px\" text-anchor=\"middle\" class=\"sequenceNumber\">16</text><text x=\"1094\" y=\"1138\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">Validate SAML response</text><path d=\"M 1094,1177 C 1154,1167 1154,1207 1094,1197\" class=\"messageLine0\" data-et=\"message\" data-id=\"i20\" data-from=\"DailyPay Auth Server\" data-to=\"DailyPay Auth Server\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-1d2782068b5a47304b633335d256e338ab4e544e2b4aeb3fd8e527cf54461200-arrowhead)\" x1=\"1100\" style=\"fill: none;\"></path><line x1=\"1093\" y1=\"1177\" x2=\"1093\" y2=\"1177\" stroke-width=\"0\" marker-start=\"url(#diagram-1d2782068b5a47304b633335d256e338ab4e544e2b4aeb3fd8e527cf54461200-sequencenumber)\"></line><text x=\"1093\" y=\"1181\" font-family=\"sans-serif\" font-size=\"12px\" text-anchor=\"middle\" class=\"sequenceNumber\">17</text><text x=\"1094\" y=\"1222\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">Extract unique ID from SAML</text><path d=\"M 1094,1261 C 1154,1251 1154,1291 1094,1281\" class=\"messageLine0\" data-et=\"message\" data-id=\"i21\" data-from=\"DailyPay Auth Server\" data-to=\"DailyPay Auth Server\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-1d2782068b5a47304b633335d256e338ab4e544e2b4aeb3fd8e527cf54461200-arrowhead)\" x1=\"1100\" style=\"fill: none;\"></path><line x1=\"1093\" y1=\"1261\" x2=\"1093\" y2=\"1261\" stroke-width=\"0\" marker-start=\"url(#diagram-1d2782068b5a47304b633335d256e338ab4e544e2b4aeb3fd8e527cf54461200-sequencenumber)\"></line><text x=\"1093\" y=\"1265\" font-family=\"sans-serif\" font-size=\"12px\" text-anchor=\"middle\" class=\"sequenceNumber\">18</text><text x=\"586\" y=\"1346\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">Present terms and conditions</text><line x1=\"1098\" y1=\"1385\" x2=\"79\" y2=\"1385\" class=\"messageLine0\" data-et=\"message\" data-id=\"i23\" data-from=\"DailyPay Auth Server\" data-to=\"User\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-1d2782068b5a47304b633335d256e338ab4e544e2b4aeb3fd8e527cf54461200-arrowhead)\" style=\"fill: none;\"></line><line x1=\"1093\" y1=\"1385\" x2=\"1093\" y2=\"1385\" stroke-width=\"0\" marker-start=\"url(#diagram-1d2782068b5a47304b633335d256e338ab4e544e2b4aeb3fd8e527cf54461200-sequencenumber)\"></line><text x=\"1093\" y=\"1389\" font-family=\"sans-serif\" font-size=\"12px\" text-anchor=\"middle\" class=\"sequenceNumber\">19</text><text x=\"583\" y=\"1400\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">Click to sign terms and conditions</text><line x1=\"82\" y1=\"1439\" x2=\"1089\" y2=\"1439\" class=\"messageLine0\" data-et=\"message\" data-id=\"i24\" data-from=\"User\" data-to=\"DailyPay Auth Server\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-1d2782068b5a47304b633335d256e338ab4e544e2b4aeb3fd8e527cf54461200-arrowhead)\" style=\"fill: none;\"></line><line x1=\"75\" y1=\"1439\" x2=\"75\" y2=\"1439\" stroke-width=\"0\" marker-start=\"url(#diagram-1d2782068b5a47304b633335d256e338ab4e544e2b4aeb3fd8e527cf54461200-sequencenumber)\"></line><text x=\"75\" y=\"1443\" font-family=\"sans-serif\" font-size=\"12px\" text-anchor=\"middle\" class=\"sequenceNumber\">20</text><text x=\"1198\" y=\"1454\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">Activate user</text><line x1=\"1100\" y1=\"1493\" x2=\"1301.5\" y2=\"1493\" class=\"messageLine1\" data-et=\"message\" data-id=\"i25\" data-from=\"DailyPay Auth Server\" data-to=\"DailyPay API\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-1d2782068b5a47304b633335d256e338ab4e544e2b4aeb3fd8e527cf54461200-arrowhead)\" style=\"stroke-dasharray: 3, 3; fill: none;\"></line><line x1=\"1093\" y1=\"1493\" x2=\"1093\" y2=\"1493\" stroke-width=\"0\" marker-start=\"url(#diagram-1d2782068b5a47304b633335d256e338ab4e544e2b4aeb3fd8e527cf54461200-sequencenumber)\"></line><text x=\"1093\" y=\"1497\" font-family=\"sans-serif\" font-size=\"12px\" text-anchor=\"middle\" class=\"sequenceNumber\">21</text><text x=\"586\" y=\"1508\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">Redirect user to your callback URL with authorization code</text><line x1=\"1098\" y1=\"1547\" x2=\"79\" y2=\"1547\" class=\"messageLine0\" data-et=\"message\" data-id=\"i26\" data-from=\"DailyPay Auth Server\" data-to=\"User\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-1d2782068b5a47304b633335d256e338ab4e544e2b4aeb3fd8e527cf54461200-arrowhead)\" style=\"fill: none;\"></line><line x1=\"1093\" y1=\"1547\" x2=\"1093\" y2=\"1547\" stroke-width=\"0\" marker-start=\"url(#diagram-1d2782068b5a47304b633335d256e338ab4e544e2b4aeb3fd8e527cf54461200-sequencenumber)\"></line><text x=\"1093\" y=\"1551\" font-family=\"sans-serif\" font-size=\"12px\" text-anchor=\"middle\" class=\"sequenceNumber\">22</text><text x=\"440\" y=\"1562\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">authorization code</text><line x1=\"82\" y1=\"1601\" x2=\"804\" y2=\"1601\" class=\"messageLine0\" data-et=\"message\" data-id=\"i27\" data-from=\"User\" data-to=\"Your Application\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-1d2782068b5a47304b633335d256e338ab4e544e2b4aeb3fd8e527cf54461200-arrowhead)\" style=\"fill: none;\"></line><line x1=\"75\" y1=\"1601\" x2=\"75\" y2=\"1601\" stroke-width=\"0\" marker-start=\"url(#diagram-1d2782068b5a47304b633335d256e338ab4e544e2b4aeb3fd8e527cf54461200-sequencenumber)\"></line><text x=\"75\" y=\"1605\" font-family=\"sans-serif\" font-size=\"12px\" text-anchor=\"middle\" class=\"sequenceNumber\">23</text><text x=\"949\" y=\"1616\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">Exchange authorization code</text><line x1=\"815\" y1=\"1655\" x2=\"1089\" y2=\"1655\" class=\"messageLine0\" data-et=\"message\" data-id=\"i28\" data-from=\"Your Application\" data-to=\"DailyPay Auth Server\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-1d2782068b5a47304b633335d256e338ab4e544e2b4aeb3fd8e527cf54461200-arrowhead)\" style=\"fill: none;\"></line><line x1=\"808\" y1=\"1655\" x2=\"808\" y2=\"1655\" stroke-width=\"0\" marker-start=\"url(#diagram-1d2782068b5a47304b633335d256e338ab4e544e2b4aeb3fd8e527cf54461200-sequencenumber)\"></line><text x=\"808\" y=\"1659\" font-family=\"sans-serif\" font-size=\"12px\" text-anchor=\"middle\" class=\"sequenceNumber\">24</text><text x=\"952\" y=\"1670\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">Return API access token</text><line x1=\"1098\" y1=\"1709\" x2=\"812\" y2=\"1709\" class=\"messageLine0\" data-et=\"message\" data-id=\"i29\" data-from=\"DailyPay Auth Server\" data-to=\"Your Application\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-1d2782068b5a47304b633335d256e338ab4e544e2b4aeb3fd8e527cf54461200-arrowhead)\" style=\"fill: none;\"></line><line x1=\"1093\" y1=\"1709\" x2=\"1093\" y2=\"1709\" stroke-width=\"0\" marker-start=\"url(#diagram-1d2782068b5a47304b633335d256e338ab4e544e2b4aeb3fd8e527cf54461200-sequencenumber)\"></line><text x=\"1093\" y=\"1713\" font-family=\"sans-serif\" font-size=\"12px\" text-anchor=\"middle\" class=\"sequenceNumber\">25</text><text x=\"1055\" y=\"1724\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">Authenticate API calls</text><line x1=\"815\" y1=\"1763\" x2=\"1301.5\" y2=\"1763\" class=\"messageLine0\" data-et=\"message\" data-id=\"i30\" data-from=\"Your Application\" data-to=\"DailyPay API\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-1d2782068b5a47304b633335d256e338ab4e544e2b4aeb3fd8e527cf54461200-arrowhead)\" style=\"fill: none;\"></line><line x1=\"808\" y1=\"1763\" x2=\"808\" y2=\"1763\" stroke-width=\"0\" marker-start=\"url(#diagram-1d2782068b5a47304b633335d256e338ab4e544e2b4aeb3fd8e527cf54461200-sequencenumber)\"></line><text x=\"808\" y=\"1767\" font-family=\"sans-serif\" font-size=\"12px\" text-anchor=\"middle\" class=\"sequenceNumber\">26</text><g class=\"actor-man actor-bottom\" name=\"User\" style=\"stroke: rgb(166, 207, 71);\"><line id=\"actor-man-torso4\" x1=\"75\" y1=\"1808\" x2=\"75\" y2=\"1828\"></line><line id=\"actor-man-arms4\" x1=\"57\" y1=\"1816\" x2=\"93\" y2=\"1816\"></line><line x1=\"57\" y1=\"1843\" x2=\"75\" y2=\"1828\"></line><line x1=\"75\" y1=\"1828\" x2=\"91\" y2=\"1843\"></line><circle cx=\"75\" cy=\"1793\" r=\"15\" width=\"150\" height=\"65\"></circle><text x=\"75\" y=\"1850.5\" dominant-baseline=\"central\" alignment-baseline=\"central\" class=\"actor actor-man\" style=\"text-anchor: middle; font-size: 16px; font-weight: 400; font-family: &quot;Redocly Mermaid Sans&quot;, &quot;Redocly Mermaid CJK&quot;, sans-serif;\"><tspan x=\"75\" dy=\"0\">User</tspan></text></g></svg>","diagramHtmlDark":"<svg id=\"diagram-9957877ed9984366627472bf322965c16fb33f9dc2db147d8dce7c434184ca03\" width=\"100%\" xmlns=\"http://www.w3.org/2000/svg\" style=\"max-width: 1480.5px;\" viewBox=\"-50 -10 1480.5 1869\" role=\"graphics-document document\" aria-roledescription=\"sequence\"><g><rect x=\"1230.5\" y=\"1783\" fill=\"#eaeaea\" stroke=\"#666\" width=\"150\" height=\"65\" name=\"DailyPay API\" rx=\"3\" ry=\"3\" class=\"actor actor-bottom\"></rect><text x=\"1305.5\" y=\"1815.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;, &quot;Redocly Mermaid CJK&quot;, sans-serif;\"><tspan x=\"1305.5\" dy=\"0\">DailyPay API</tspan></text></g><g><rect x=\"1005.5\" y=\"1783\" fill=\"#eaeaea\" stroke=\"#666\" width=\"175\" height=\"65\" name=\"DailyPay Auth Server\" rx=\"3\" ry=\"3\" class=\"actor actor-bottom\"></rect><text x=\"1093\" y=\"1815.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;, &quot;Redocly Mermaid CJK&quot;, sans-serif;\"><tspan x=\"1093\" dy=\"0\">DailyPay Auth Server</tspan></text></g><g><rect x=\"733\" y=\"1783\" fill=\"#eaeaea\" stroke=\"#666\" width=\"150\" height=\"65\" name=\"Your Application\" rx=\"3\" ry=\"3\" class=\"actor actor-bottom\"></rect><text x=\"808\" y=\"1815.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;, &quot;Redocly Mermaid CJK&quot;, sans-serif;\"><tspan x=\"808\" dy=\"0\">Your Application</tspan></text></g><g><rect x=\"533\" y=\"1783\" fill=\"#eaeaea\" stroke=\"#666\" width=\"150\" height=\"65\" name=\"Your Auth Server\" rx=\"3\" ry=\"3\" class=\"actor actor-bottom\"></rect><text x=\"608\" y=\"1815.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;, &quot;Redocly Mermaid CJK&quot;, sans-serif;\"><tspan x=\"608\" dy=\"0\">Your Auth Server</tspan></text></g><g></g><g><line id=\"actor4\" x1=\"1305.5\" y1=\"65\" x2=\"1305.5\" y2=\"1783\" class=\"actor-line 200\" stroke-width=\"0.5px\" stroke=\"#999\" name=\"DailyPay API\" data-et=\"life-line\" data-id=\"DailyPay API\"></line><g id=\"root-4\" data-et=\"participant\" data-type=\"participant\" data-id=\"DailyPay API\"><rect x=\"1230.5\" y=\"0\" fill=\"#eaeaea\" stroke=\"#666\" width=\"150\" height=\"65\" name=\"DailyPay API\" rx=\"3\" ry=\"3\" class=\"actor actor-top\"></rect><text x=\"1305.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;, &quot;Redocly Mermaid CJK&quot;, sans-serif;\"><tspan x=\"1305.5\" dy=\"0\">DailyPay API</tspan></text></g></g><g><line id=\"actor3\" x1=\"1093\" y1=\"65\" x2=\"1093\" y2=\"1783\" class=\"actor-line 200\" stroke-width=\"0.5px\" stroke=\"#999\" name=\"DailyPay Auth Server\" data-et=\"life-line\" data-id=\"DailyPay Auth Server\"></line><g id=\"root-3\" data-et=\"participant\" data-type=\"participant\" data-id=\"DailyPay Auth Server\"><rect x=\"1005.5\" y=\"0\" fill=\"#eaeaea\" stroke=\"#666\" width=\"175\" height=\"65\" name=\"DailyPay Auth Server\" rx=\"3\" ry=\"3\" class=\"actor actor-top\"></rect><text x=\"1093\" 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;, &quot;Redocly Mermaid CJK&quot;, sans-serif;\"><tspan x=\"1093\" dy=\"0\">DailyPay Auth Server</tspan></text></g></g><g><line id=\"actor2\" x1=\"808\" y1=\"65\" x2=\"808\" y2=\"1783\" class=\"actor-line 200\" stroke-width=\"0.5px\" stroke=\"#999\" name=\"Your Application\" data-et=\"life-line\" data-id=\"Your Application\"></line><g id=\"root-2\" data-et=\"participant\" data-type=\"participant\" data-id=\"Your Application\"><rect x=\"733\" y=\"0\" fill=\"#eaeaea\" stroke=\"#666\" width=\"150\" height=\"65\" name=\"Your Application\" rx=\"3\" ry=\"3\" class=\"actor actor-top\"></rect><text x=\"808\" 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;, &quot;Redocly Mermaid CJK&quot;, sans-serif;\"><tspan x=\"808\" dy=\"0\">Your Application</tspan></text></g></g><g><line id=\"actor1\" x1=\"608\" y1=\"65\" x2=\"608\" y2=\"1783\" class=\"actor-line 200\" stroke-width=\"0.5px\" stroke=\"#999\" name=\"Your Auth Server\" data-et=\"life-line\" data-id=\"Your Auth Server\"></line><g id=\"root-1\" data-et=\"participant\" data-type=\"participant\" data-id=\"Your Auth Server\"><rect x=\"533\" y=\"0\" fill=\"#eaeaea\" stroke=\"#666\" width=\"150\" height=\"65\" name=\"Your Auth Server\" rx=\"3\" ry=\"3\" class=\"actor actor-top\"></rect><text x=\"608\" 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;, &quot;Redocly Mermaid CJK&quot;, sans-serif;\"><tspan x=\"608\" dy=\"0\">Your Auth Server</tspan></text></g></g><g><line id=\"actor0\" x1=\"75\" y1=\"80\" x2=\"75\" y2=\"1783\" class=\"actor-line 200\" stroke-width=\"0.5px\" stroke=\"#999\" name=\"User\" data-et=\"life-line\" data-id=\"User\"></line></g><style>#diagram-9957877ed9984366627472bf322965c16fb33f9dc2db147d8dce7c434184ca03{font-family:\"Redocly Mermaid Sans\",\"Redocly Mermaid CJK\",sans-serif;font-size:16px;fill:#000000;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#diagram-9957877ed9984366627472bf322965c16fb33f9dc2db147d8dce7c434184ca03 .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#diagram-9957877ed9984366627472bf322965c16fb33f9dc2db147d8dce7c434184ca03 .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#diagram-9957877ed9984366627472bf322965c16fb33f9dc2db147d8dce7c434184ca03 .error-icon{fill:#552222;}#diagram-9957877ed9984366627472bf322965c16fb33f9dc2db147d8dce7c434184ca03 .error-text{fill:#552222;stroke:#552222;}#diagram-9957877ed9984366627472bf322965c16fb33f9dc2db147d8dce7c434184ca03 .edge-thickness-normal{stroke-width:1px;}#diagram-9957877ed9984366627472bf322965c16fb33f9dc2db147d8dce7c434184ca03 .edge-thickness-thick{stroke-width:3.5px;}#diagram-9957877ed9984366627472bf322965c16fb33f9dc2db147d8dce7c434184ca03 .edge-pattern-solid{stroke-dasharray:0;}#diagram-9957877ed9984366627472bf322965c16fb33f9dc2db147d8dce7c434184ca03 .edge-thickness-invisible{stroke-width:0;fill:none;}#diagram-9957877ed9984366627472bf322965c16fb33f9dc2db147d8dce7c434184ca03 .edge-pattern-dashed{stroke-dasharray:3;}#diagram-9957877ed9984366627472bf322965c16fb33f9dc2db147d8dce7c434184ca03 .edge-pattern-dotted{stroke-dasharray:2;}#diagram-9957877ed9984366627472bf322965c16fb33f9dc2db147d8dce7c434184ca03 .marker{fill:#000000;stroke:#000000;}#diagram-9957877ed9984366627472bf322965c16fb33f9dc2db147d8dce7c434184ca03 .marker.cross{stroke:#000000;}#diagram-9957877ed9984366627472bf322965c16fb33f9dc2db147d8dce7c434184ca03 svg{font-family:\"Redocly Mermaid Sans\",\"Redocly Mermaid CJK\",sans-serif;font-size:16px;}#diagram-9957877ed9984366627472bf322965c16fb33f9dc2db147d8dce7c434184ca03 p{margin:0;}#diagram-9957877ed9984366627472bf322965c16fb33f9dc2db147d8dce7c434184ca03 .actor{stroke:hsl(78.1578947368, 58.4615384615%, 54.5098039216%);fill:#cde498;stroke-width:1;}#diagram-9957877ed9984366627472bf322965c16fb33f9dc2db147d8dce7c434184ca03 rect.actor.outer-path[data-look=\"neo\"]{filter:drop-shadow( 1px 2px 2px rgba(185,185,185,0.5));}#diagram-9957877ed9984366627472bf322965c16fb33f9dc2db147d8dce7c434184ca03 rect.note[data-look=\"neo\"]{stroke:#6eaa49;fill:#fff5ad;filter:drop-shadow( 1px 2px 2px rgba(185,185,185,0.5));}#diagram-9957877ed9984366627472bf322965c16fb33f9dc2db147d8dce7c434184ca03 text.actor&gt;tspan{fill:black;stroke:none;}#diagram-9957877ed9984366627472bf322965c16fb33f9dc2db147d8dce7c434184ca03 .actor-line{stroke:hsl(78.1578947368, 58.4615384615%, 54.5098039216%);}#diagram-9957877ed9984366627472bf322965c16fb33f9dc2db147d8dce7c434184ca03 .innerArc{stroke-width:1.5;stroke-dasharray:none;}#diagram-9957877ed9984366627472bf322965c16fb33f9dc2db147d8dce7c434184ca03 .messageLine0{stroke-width:1.5;stroke-dasharray:none;stroke:#333;}#diagram-9957877ed9984366627472bf322965c16fb33f9dc2db147d8dce7c434184ca03 .messageLine1{stroke-width:1.5;stroke-dasharray:2,2;stroke:#333;}#diagram-9957877ed9984366627472bf322965c16fb33f9dc2db147d8dce7c434184ca03 [id$=\"-arrowhead\"] path{fill:#333;stroke:#333;}#diagram-9957877ed9984366627472bf322965c16fb33f9dc2db147d8dce7c434184ca03 .sequenceNumber{fill:white;}#diagram-9957877ed9984366627472bf322965c16fb33f9dc2db147d8dce7c434184ca03 [id$=\"-sequencenumber\"]{fill:#333;}#diagram-9957877ed9984366627472bf322965c16fb33f9dc2db147d8dce7c434184ca03 [id$=\"-crosshead\"] path{fill:#333;stroke:#333;}#diagram-9957877ed9984366627472bf322965c16fb33f9dc2db147d8dce7c434184ca03 .messageText{fill:#333;stroke:none;}#diagram-9957877ed9984366627472bf322965c16fb33f9dc2db147d8dce7c434184ca03 .labelBox{stroke:#326932;fill:#cde498;filter:none;}#diagram-9957877ed9984366627472bf322965c16fb33f9dc2db147d8dce7c434184ca03 .labelText,#diagram-9957877ed9984366627472bf322965c16fb33f9dc2db147d8dce7c434184ca03 .labelText&gt;tspan{fill:black;stroke:none;}#diagram-9957877ed9984366627472bf322965c16fb33f9dc2db147d8dce7c434184ca03 .loopText,#diagram-9957877ed9984366627472bf322965c16fb33f9dc2db147d8dce7c434184ca03 .loopText&gt;tspan{fill:black;stroke:none;}#diagram-9957877ed9984366627472bf322965c16fb33f9dc2db147d8dce7c434184ca03 .sectionTitle,#diagram-9957877ed9984366627472bf322965c16fb33f9dc2db147d8dce7c434184ca03 .sectionTitle&gt;tspan{fill:black;stroke:none;}#diagram-9957877ed9984366627472bf322965c16fb33f9dc2db147d8dce7c434184ca03 .loopLine{stroke-width:2px;stroke-dasharray:2,2;stroke:#326932;fill:#326932;}#diagram-9957877ed9984366627472bf322965c16fb33f9dc2db147d8dce7c434184ca03 .note{stroke:#6eaa49;fill:#fff5ad;}#diagram-9957877ed9984366627472bf322965c16fb33f9dc2db147d8dce7c434184ca03 .noteText,#diagram-9957877ed9984366627472bf322965c16fb33f9dc2db147d8dce7c434184ca03 .noteText&gt;tspan{fill:black;stroke:none;font-weight:normal;}#diagram-9957877ed9984366627472bf322965c16fb33f9dc2db147d8dce7c434184ca03 .activation0{fill:#f4f4f4;stroke:#666;}#diagram-9957877ed9984366627472bf322965c16fb33f9dc2db147d8dce7c434184ca03 .activation1{fill:#f4f4f4;stroke:#666;}#diagram-9957877ed9984366627472bf322965c16fb33f9dc2db147d8dce7c434184ca03 .activation2{fill:#f4f4f4;stroke:#666;}#diagram-9957877ed9984366627472bf322965c16fb33f9dc2db147d8dce7c434184ca03 .actorPopupMenu{position:absolute;}#diagram-9957877ed9984366627472bf322965c16fb33f9dc2db147d8dce7c434184ca03 .actorPopupMenuPanel{position:absolute;fill:#cde498;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-9957877ed9984366627472bf322965c16fb33f9dc2db147d8dce7c434184ca03 .actor-man circle,#diagram-9957877ed9984366627472bf322965c16fb33f9dc2db147d8dce7c434184ca03 line{fill:#cde498;stroke-width:2px;}#diagram-9957877ed9984366627472bf322965c16fb33f9dc2db147d8dce7c434184ca03 g rect.rect{filter:drop-shadow( 1px 2px 2px rgba(185,185,185,0.5));stroke:#13540c;}#diagram-9957877ed9984366627472bf322965c16fb33f9dc2db147d8dce7c434184ca03 .node .neo-node{stroke:#13540c;}#diagram-9957877ed9984366627472bf322965c16fb33f9dc2db147d8dce7c434184ca03 [data-look=\"neo\"].node rect,#diagram-9957877ed9984366627472bf322965c16fb33f9dc2db147d8dce7c434184ca03 [data-look=\"neo\"].cluster rect,#diagram-9957877ed9984366627472bf322965c16fb33f9dc2db147d8dce7c434184ca03 [data-look=\"neo\"].node polygon{stroke:url(#diagram-9957877ed9984366627472bf322965c16fb33f9dc2db147d8dce7c434184ca03-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,0.5));}#diagram-9957877ed9984366627472bf322965c16fb33f9dc2db147d8dce7c434184ca03 [data-look=\"neo\"].swimlane.cluster rect{filter:none;}#diagram-9957877ed9984366627472bf322965c16fb33f9dc2db147d8dce7c434184ca03 [data-look=\"neo\"].node path{stroke:url(#diagram-9957877ed9984366627472bf322965c16fb33f9dc2db147d8dce7c434184ca03-gradient);stroke-width:1px;}#diagram-9957877ed9984366627472bf322965c16fb33f9dc2db147d8dce7c434184ca03 [data-look=\"neo\"].node .outer-path{filter:drop-shadow( 1px 2px 2px rgba(185,185,185,0.5));}#diagram-9957877ed9984366627472bf322965c16fb33f9dc2db147d8dce7c434184ca03 [data-look=\"neo\"].node .neo-line path{stroke:#13540c;filter:none;}#diagram-9957877ed9984366627472bf322965c16fb33f9dc2db147d8dce7c434184ca03 [data-look=\"neo\"].node circle{stroke:url(#diagram-9957877ed9984366627472bf322965c16fb33f9dc2db147d8dce7c434184ca03-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,0.5));}#diagram-9957877ed9984366627472bf322965c16fb33f9dc2db147d8dce7c434184ca03 [data-look=\"neo\"].node circle .state-start{fill:#000000;}#diagram-9957877ed9984366627472bf322965c16fb33f9dc2db147d8dce7c434184ca03 [data-look=\"neo\"].icon-shape .icon{fill:url(#diagram-9957877ed9984366627472bf322965c16fb33f9dc2db147d8dce7c434184ca03-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,0.5));}#diagram-9957877ed9984366627472bf322965c16fb33f9dc2db147d8dce7c434184ca03 [data-look=\"neo\"].icon-shape .icon-neo path{stroke:url(#diagram-9957877ed9984366627472bf322965c16fb33f9dc2db147d8dce7c434184ca03-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,0.5));}#diagram-9957877ed9984366627472bf322965c16fb33f9dc2db147d8dce7c434184ca03 :root{--mermaid-font-family:\"Redocly Mermaid Sans\",\"Redocly Mermaid CJK\",sans-serif;}#diagram-9957877ed9984366627472bf322965c16fb33f9dc2db147d8dce7c434184ca03 :root{--mermaid-font-family:\"Redocly Mermaid Sans\",\"Redocly Mermaid CJK\",sans-serif;}</style><g></g><defs><symbol id=\"diagram-9957877ed9984366627472bf322965c16fb33f9dc2db147d8dce7c434184ca03-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-9957877ed9984366627472bf322965c16fb33f9dc2db147d8dce7c434184ca03-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-9957877ed9984366627472bf322965c16fb33f9dc2db147d8dce7c434184ca03-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-9957877ed9984366627472bf322965c16fb33f9dc2db147d8dce7c434184ca03-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-9957877ed9984366627472bf322965c16fb33f9dc2db147d8dce7c434184ca03-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-9957877ed9984366627472bf322965c16fb33f9dc2db147d8dce7c434184ca03-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-9957877ed9984366627472bf322965c16fb33f9dc2db147d8dce7c434184ca03-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-9957877ed9984366627472bf322965c16fb33f9dc2db147d8dce7c434184ca03-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-9957877ed9984366627472bf322965c16fb33f9dc2db147d8dce7c434184ca03-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-9957877ed9984366627472bf322965c16fb33f9dc2db147d8dce7c434184ca03-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-9957877ed9984366627472bf322965c16fb33f9dc2db147d8dce7c434184ca03-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=\"i14\"><line x1=\"64\" y1=\"375\" x2=\"1221.5\" y2=\"375\" class=\"loopLine\"></line><line x1=\"1221.5\" y1=\"375\" x2=\"1221.5\" y2=\"860\" class=\"loopLine\"></line><line x1=\"64\" y1=\"860\" x2=\"1221.5\" y2=\"860\" class=\"loopLine\"></line><line x1=\"64\" y1=\"375\" x2=\"64\" y2=\"860\" class=\"loopLine\"></line><polygon points=\"64,375 114,375 114,388 105.6,395 64,395\" class=\"labelBox\"></polygon><text x=\"89\" y=\"388\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"labelText\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">critical</text><text x=\"667.75\" y=\"393\" text-anchor=\"middle\" class=\"loopText\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\"><tspan x=\"667.75\">[OIDC (Preferred)]</tspan></text></g><g data-et=\"control-structure\" data-id=\"i22\"><line x1=\"64\" y1=\"870\" x2=\"1211\" y2=\"870\" class=\"loopLine\"></line><line x1=\"1211\" y1=\"870\" x2=\"1211\" y2=\"1331\" class=\"loopLine\"></line><line x1=\"64\" y1=\"1331\" x2=\"1211\" y2=\"1331\" class=\"loopLine\"></line><line x1=\"64\" y1=\"870\" x2=\"64\" y2=\"1331\" class=\"loopLine\"></line><polygon points=\"64,870 114,870 114,883 105.6,890 64,890\" class=\"labelBox\"></polygon><text x=\"89\" y=\"883\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"labelText\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">opt</text><text x=\"662.5\" y=\"888\" text-anchor=\"middle\" class=\"loopText\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\"><tspan x=\"662.5\">[SAML]</tspan></text></g><g class=\"actor-man actor-top\" name=\"User\" data-et=\"participant\" data-type=\"actor\" data-id=\"User\" style=\"stroke: rgb(166, 207, 71);\"><line id=\"actor-man-torso0\" x1=\"75\" y1=\"25\" x2=\"75\" y2=\"45\"></line><line id=\"actor-man-arms0\" x1=\"57\" y1=\"33\" x2=\"93\" y2=\"33\"></line><line x1=\"57\" y1=\"60\" x2=\"75\" y2=\"45\"></line><line x1=\"75\" y1=\"45\" x2=\"91\" y2=\"60\"></line><circle cx=\"75\" cy=\"10\" r=\"15\" width=\"150\" height=\"65\"></circle><text x=\"75\" y=\"67.5\" dominant-baseline=\"central\" alignment-baseline=\"central\" class=\"actor actor-man\" style=\"text-anchor: middle; font-size: 16px; font-weight: 400; font-family: &quot;Redocly Mermaid Sans&quot;, &quot;Redocly Mermaid CJK&quot;, sans-serif;\"><tspan x=\"75\" dy=\"0\">User</tspan></text></g><text x=\"343\" y=\"80\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">Has an authenticated session</text><line x1=\"613\" y1=\"119\" x2=\"79\" y2=\"119\" class=\"messageLine1\" data-et=\"message\" data-id=\"i1\" data-from=\"Your Auth Server\" data-to=\"User\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-9957877ed9984366627472bf322965c16fb33f9dc2db147d8dce7c434184ca03-arrowhead)\" style=\"stroke-dasharray: 3, 3; fill: none;\"></line><line x1=\"608\" y1=\"119\" x2=\"608\" y2=\"119\" stroke-width=\"0\" marker-start=\"url(#diagram-9957877ed9984366627472bf322965c16fb33f9dc2db147d8dce7c434184ca03-sequencenumber)\"></line><text x=\"608\" y=\"123\" font-family=\"sans-serif\" font-size=\"12px\" text-anchor=\"middle\" class=\"sequenceNumber\">1</text><text x=\"440\" y=\"134\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">Clicks on funtionality requiring DailyPay user access</text><line x1=\"82\" y1=\"173\" x2=\"804\" y2=\"173\" class=\"messageLine0\" data-et=\"message\" data-id=\"i2\" data-from=\"User\" data-to=\"Your Application\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-9957877ed9984366627472bf322965c16fb33f9dc2db147d8dce7c434184ca03-arrowhead)\" style=\"fill: none;\"></line><line x1=\"75\" y1=\"173\" x2=\"75\" y2=\"173\" stroke-width=\"0\" marker-start=\"url(#diagram-9957877ed9984366627472bf322965c16fb33f9dc2db147d8dce7c434184ca03-sequencenumber)\"></line><text x=\"75\" y=\"177\" font-family=\"sans-serif\" font-size=\"12px\" text-anchor=\"middle\" class=\"sequenceNumber\">2</text><text x=\"809\" y=\"188\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">Construct a signed OAuth2 Request URL</text><path d=\"M 809,227 C 869,217 869,257 809,247\" class=\"messageLine0\" data-et=\"message\" data-id=\"i3\" data-from=\"Your Application\" data-to=\"Your Application\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-9957877ed9984366627472bf322965c16fb33f9dc2db147d8dce7c434184ca03-arrowhead)\" x1=\"815\" style=\"fill: none;\"></path><line x1=\"808\" y1=\"227\" x2=\"808\" y2=\"227\" stroke-width=\"0\" marker-start=\"url(#diagram-9957877ed9984366627472bf322965c16fb33f9dc2db147d8dce7c434184ca03-sequencenumber)\"></line><text x=\"808\" y=\"231\" font-family=\"sans-serif\" font-size=\"12px\" text-anchor=\"middle\" class=\"sequenceNumber\">3</text><text x=\"443\" y=\"272\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">Open a webview or secure tab to request URL with iss=your_auth_url</text><line x1=\"813\" y1=\"311\" x2=\"79\" y2=\"311\" class=\"messageLine0\" data-et=\"message\" data-id=\"i4\" data-from=\"Your Application\" data-to=\"User\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-9957877ed9984366627472bf322965c16fb33f9dc2db147d8dce7c434184ca03-arrowhead)\" style=\"fill: none;\"></line><line x1=\"808\" y1=\"311\" x2=\"808\" y2=\"311\" stroke-width=\"0\" marker-start=\"url(#diagram-9957877ed9984366627472bf322965c16fb33f9dc2db147d8dce7c434184ca03-sequencenumber)\"></line><text x=\"808\" y=\"315\" font-family=\"sans-serif\" font-size=\"12px\" text-anchor=\"middle\" class=\"sequenceNumber\">4</text><text x=\"583\" y=\"326\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">Initiate OAuth2 Authorization Code Flow</text><line x1=\"82\" y1=\"365\" x2=\"1089\" y2=\"365\" class=\"messageLine0\" data-et=\"message\" data-id=\"i5\" data-from=\"User\" data-to=\"DailyPay Auth Server\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-9957877ed9984366627472bf322965c16fb33f9dc2db147d8dce7c434184ca03-arrowhead)\" style=\"fill: none;\"></line><line x1=\"75\" y1=\"365\" x2=\"75\" y2=\"365\" stroke-width=\"0\" marker-start=\"url(#diagram-9957877ed9984366627472bf322965c16fb33f9dc2db147d8dce7c434184ca03-sequencenumber)\"></line><text x=\"75\" y=\"369\" font-family=\"sans-serif\" font-size=\"12px\" text-anchor=\"middle\" class=\"sequenceNumber\">5</text><text x=\"586\" y=\"427\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">Redirect to your auth URL with DailyPay client parameters</text><line x1=\"1098\" y1=\"466\" x2=\"79\" y2=\"466\" class=\"messageLine0\" data-et=\"message\" data-id=\"i7\" data-from=\"DailyPay Auth Server\" data-to=\"User\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-9957877ed9984366627472bf322965c16fb33f9dc2db147d8dce7c434184ca03-arrowhead)\" style=\"fill: none;\"></line><line x1=\"1093\" y1=\"466\" x2=\"1093\" y2=\"466\" stroke-width=\"0\" marker-start=\"url(#diagram-9957877ed9984366627472bf322965c16fb33f9dc2db147d8dce7c434184ca03-sequencenumber)\"></line><text x=\"1093\" y=\"470\" font-family=\"sans-serif\" font-size=\"12px\" text-anchor=\"middle\" class=\"sequenceNumber\">6</text><text x=\"340\" y=\"481\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">Login or reuse session</text><line x1=\"82\" y1=\"520\" x2=\"604\" y2=\"520\" class=\"messageLine0\" data-et=\"message\" data-id=\"i8\" data-from=\"User\" data-to=\"Your Auth Server\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-9957877ed9984366627472bf322965c16fb33f9dc2db147d8dce7c434184ca03-arrowhead)\" style=\"fill: none;\"></line><line x1=\"75\" y1=\"520\" x2=\"75\" y2=\"520\" stroke-width=\"0\" marker-start=\"url(#diagram-9957877ed9984366627472bf322965c16fb33f9dc2db147d8dce7c434184ca03-sequencenumber)\"></line><text x=\"75\" y=\"524\" font-family=\"sans-serif\" font-size=\"12px\" text-anchor=\"middle\" class=\"sequenceNumber\">7</text><text x=\"343\" y=\"535\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">Redirect user to DailyPay callback URL with authorization code</text><line x1=\"613\" y1=\"574\" x2=\"79\" y2=\"574\" class=\"messageLine0\" data-et=\"message\" data-id=\"i9\" data-from=\"Your Auth Server\" data-to=\"User\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-9957877ed9984366627472bf322965c16fb33f9dc2db147d8dce7c434184ca03-arrowhead)\" style=\"fill: none;\"></line><line x1=\"608\" y1=\"574\" x2=\"608\" y2=\"574\" stroke-width=\"0\" marker-start=\"url(#diagram-9957877ed9984366627472bf322965c16fb33f9dc2db147d8dce7c434184ca03-sequencenumber)\"></line><text x=\"608\" y=\"578\" font-family=\"sans-serif\" font-size=\"12px\" text-anchor=\"middle\" class=\"sequenceNumber\">8</text><text x=\"583\" y=\"589\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">Authorization code</text><line x1=\"82\" y1=\"628\" x2=\"1089\" y2=\"628\" class=\"messageLine0\" data-et=\"message\" data-id=\"i10\" data-from=\"User\" data-to=\"DailyPay Auth Server\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-9957877ed9984366627472bf322965c16fb33f9dc2db147d8dce7c434184ca03-arrowhead)\" style=\"fill: none;\"></line><line x1=\"75\" y1=\"628\" x2=\"75\" y2=\"628\" stroke-width=\"0\" marker-start=\"url(#diagram-9957877ed9984366627472bf322965c16fb33f9dc2db147d8dce7c434184ca03-sequencenumber)\"></line><text x=\"75\" y=\"632\" font-family=\"sans-serif\" font-size=\"12px\" text-anchor=\"middle\" class=\"sequenceNumber\">9</text><text x=\"852\" y=\"643\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">Exchange authorization code</text><line x1=\"1098\" y1=\"682\" x2=\"612\" y2=\"682\" class=\"messageLine0\" data-et=\"message\" data-id=\"i11\" data-from=\"DailyPay Auth Server\" data-to=\"Your Auth Server\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-9957877ed9984366627472bf322965c16fb33f9dc2db147d8dce7c434184ca03-arrowhead)\" style=\"fill: none;\"></line><line x1=\"1093\" y1=\"682\" x2=\"1093\" y2=\"682\" stroke-width=\"0\" marker-start=\"url(#diagram-9957877ed9984366627472bf322965c16fb33f9dc2db147d8dce7c434184ca03-sequencenumber)\"></line><text x=\"1093\" y=\"686\" font-family=\"sans-serif\" font-size=\"12px\" text-anchor=\"middle\" class=\"sequenceNumber\">10</text><text x=\"849\" y=\"697\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">Return access token and (optionally) ID token</text><line x1=\"615\" y1=\"736\" x2=\"1089\" y2=\"736\" class=\"messageLine0\" data-et=\"message\" data-id=\"i12\" data-from=\"Your Auth Server\" data-to=\"DailyPay Auth Server\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-9957877ed9984366627472bf322965c16fb33f9dc2db147d8dce7c434184ca03-arrowhead)\" style=\"fill: none;\"></line><line x1=\"608\" y1=\"736\" x2=\"608\" y2=\"736\" stroke-width=\"0\" marker-start=\"url(#diagram-9957877ed9984366627472bf322965c16fb33f9dc2db147d8dce7c434184ca03-sequencenumber)\"></line><text x=\"608\" y=\"740\" font-family=\"sans-serif\" font-size=\"12px\" text-anchor=\"middle\" class=\"sequenceNumber\">11</text><text x=\"1094\" y=\"751\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">Extract unique ID from ID token</text><path d=\"M 1094,790 C 1154,780 1154,820 1094,810\" class=\"messageLine0\" data-et=\"message\" data-id=\"i13\" data-from=\"DailyPay Auth Server\" data-to=\"DailyPay Auth Server\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-9957877ed9984366627472bf322965c16fb33f9dc2db147d8dce7c434184ca03-arrowhead)\" x1=\"1100\" style=\"fill: none;\"></path><line x1=\"1093\" y1=\"790\" x2=\"1093\" y2=\"790\" stroke-width=\"0\" marker-start=\"url(#diagram-9957877ed9984366627472bf322965c16fb33f9dc2db147d8dce7c434184ca03-sequencenumber)\"></line><text x=\"1093\" y=\"794\" font-family=\"sans-serif\" font-size=\"12px\" text-anchor=\"middle\" class=\"sequenceNumber\">12</text><text x=\"586\" y=\"922\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">Redirect to your SSO URL</text><line x1=\"1098\" y1=\"961\" x2=\"79\" y2=\"961\" class=\"messageLine0\" data-et=\"message\" data-id=\"i16\" data-from=\"DailyPay Auth Server\" data-to=\"User\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-9957877ed9984366627472bf322965c16fb33f9dc2db147d8dce7c434184ca03-arrowhead)\" style=\"fill: none;\"></line><line x1=\"1093\" y1=\"961\" x2=\"1093\" y2=\"961\" stroke-width=\"0\" marker-start=\"url(#diagram-9957877ed9984366627472bf322965c16fb33f9dc2db147d8dce7c434184ca03-sequencenumber)\"></line><text x=\"1093\" y=\"965\" font-family=\"sans-serif\" font-size=\"12px\" text-anchor=\"middle\" class=\"sequenceNumber\">13</text><text x=\"340\" y=\"976\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">Login or reuse session</text><line x1=\"82\" y1=\"1015\" x2=\"604\" y2=\"1015\" class=\"messageLine0\" data-et=\"message\" data-id=\"i17\" data-from=\"User\" data-to=\"Your Auth Server\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-9957877ed9984366627472bf322965c16fb33f9dc2db147d8dce7c434184ca03-arrowhead)\" style=\"fill: none;\"></line><line x1=\"75\" y1=\"1015\" x2=\"75\" y2=\"1015\" stroke-width=\"0\" marker-start=\"url(#diagram-9957877ed9984366627472bf322965c16fb33f9dc2db147d8dce7c434184ca03-sequencenumber)\"></line><text x=\"75\" y=\"1019\" font-family=\"sans-serif\" font-size=\"12px\" text-anchor=\"middle\" class=\"sequenceNumber\">14</text><text x=\"343\" y=\"1030\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">Redirect user with SAML response</text><line x1=\"613\" y1=\"1069\" x2=\"79\" y2=\"1069\" class=\"messageLine0\" data-et=\"message\" data-id=\"i18\" data-from=\"Your Auth Server\" data-to=\"User\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-9957877ed9984366627472bf322965c16fb33f9dc2db147d8dce7c434184ca03-arrowhead)\" style=\"fill: none;\"></line><line x1=\"608\" y1=\"1069\" x2=\"608\" y2=\"1069\" stroke-width=\"0\" marker-start=\"url(#diagram-9957877ed9984366627472bf322965c16fb33f9dc2db147d8dce7c434184ca03-sequencenumber)\"></line><text x=\"608\" y=\"1073\" font-family=\"sans-serif\" font-size=\"12px\" text-anchor=\"middle\" class=\"sequenceNumber\">15</text><text x=\"583\" y=\"1084\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">SAML response forwarded</text><line x1=\"82\" y1=\"1123\" x2=\"1089\" y2=\"1123\" class=\"messageLine0\" data-et=\"message\" data-id=\"i19\" data-from=\"User\" data-to=\"DailyPay Auth Server\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-9957877ed9984366627472bf322965c16fb33f9dc2db147d8dce7c434184ca03-arrowhead)\" style=\"fill: none;\"></line><line x1=\"75\" y1=\"1123\" x2=\"75\" y2=\"1123\" stroke-width=\"0\" marker-start=\"url(#diagram-9957877ed9984366627472bf322965c16fb33f9dc2db147d8dce7c434184ca03-sequencenumber)\"></line><text x=\"75\" y=\"1127\" font-family=\"sans-serif\" font-size=\"12px\" text-anchor=\"middle\" class=\"sequenceNumber\">16</text><text x=\"1094\" y=\"1138\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">Validate SAML response</text><path d=\"M 1094,1177 C 1154,1167 1154,1207 1094,1197\" class=\"messageLine0\" data-et=\"message\" data-id=\"i20\" data-from=\"DailyPay Auth Server\" data-to=\"DailyPay Auth Server\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-9957877ed9984366627472bf322965c16fb33f9dc2db147d8dce7c434184ca03-arrowhead)\" x1=\"1100\" style=\"fill: none;\"></path><line x1=\"1093\" y1=\"1177\" x2=\"1093\" y2=\"1177\" stroke-width=\"0\" marker-start=\"url(#diagram-9957877ed9984366627472bf322965c16fb33f9dc2db147d8dce7c434184ca03-sequencenumber)\"></line><text x=\"1093\" y=\"1181\" font-family=\"sans-serif\" font-size=\"12px\" text-anchor=\"middle\" class=\"sequenceNumber\">17</text><text x=\"1094\" y=\"1222\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">Extract unique ID from SAML</text><path d=\"M 1094,1261 C 1154,1251 1154,1291 1094,1281\" class=\"messageLine0\" data-et=\"message\" data-id=\"i21\" data-from=\"DailyPay Auth Server\" data-to=\"DailyPay Auth Server\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-9957877ed9984366627472bf322965c16fb33f9dc2db147d8dce7c434184ca03-arrowhead)\" x1=\"1100\" style=\"fill: none;\"></path><line x1=\"1093\" y1=\"1261\" x2=\"1093\" y2=\"1261\" stroke-width=\"0\" marker-start=\"url(#diagram-9957877ed9984366627472bf322965c16fb33f9dc2db147d8dce7c434184ca03-sequencenumber)\"></line><text x=\"1093\" y=\"1265\" font-family=\"sans-serif\" font-size=\"12px\" text-anchor=\"middle\" class=\"sequenceNumber\">18</text><text x=\"586\" y=\"1346\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">Present terms and conditions</text><line x1=\"1098\" y1=\"1385\" x2=\"79\" y2=\"1385\" class=\"messageLine0\" data-et=\"message\" data-id=\"i23\" data-from=\"DailyPay Auth Server\" data-to=\"User\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-9957877ed9984366627472bf322965c16fb33f9dc2db147d8dce7c434184ca03-arrowhead)\" style=\"fill: none;\"></line><line x1=\"1093\" y1=\"1385\" x2=\"1093\" y2=\"1385\" stroke-width=\"0\" marker-start=\"url(#diagram-9957877ed9984366627472bf322965c16fb33f9dc2db147d8dce7c434184ca03-sequencenumber)\"></line><text x=\"1093\" y=\"1389\" font-family=\"sans-serif\" font-size=\"12px\" text-anchor=\"middle\" class=\"sequenceNumber\">19</text><text x=\"583\" y=\"1400\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">Click to sign terms and conditions</text><line x1=\"82\" y1=\"1439\" x2=\"1089\" y2=\"1439\" class=\"messageLine0\" data-et=\"message\" data-id=\"i24\" data-from=\"User\" data-to=\"DailyPay Auth Server\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-9957877ed9984366627472bf322965c16fb33f9dc2db147d8dce7c434184ca03-arrowhead)\" style=\"fill: none;\"></line><line x1=\"75\" y1=\"1439\" x2=\"75\" y2=\"1439\" stroke-width=\"0\" marker-start=\"url(#diagram-9957877ed9984366627472bf322965c16fb33f9dc2db147d8dce7c434184ca03-sequencenumber)\"></line><text x=\"75\" y=\"1443\" font-family=\"sans-serif\" font-size=\"12px\" text-anchor=\"middle\" class=\"sequenceNumber\">20</text><text x=\"1198\" y=\"1454\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">Activate user</text><line x1=\"1100\" y1=\"1493\" x2=\"1301.5\" y2=\"1493\" class=\"messageLine1\" data-et=\"message\" data-id=\"i25\" data-from=\"DailyPay Auth Server\" data-to=\"DailyPay API\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-9957877ed9984366627472bf322965c16fb33f9dc2db147d8dce7c434184ca03-arrowhead)\" style=\"stroke-dasharray: 3, 3; fill: none;\"></line><line x1=\"1093\" y1=\"1493\" x2=\"1093\" y2=\"1493\" stroke-width=\"0\" marker-start=\"url(#diagram-9957877ed9984366627472bf322965c16fb33f9dc2db147d8dce7c434184ca03-sequencenumber)\"></line><text x=\"1093\" y=\"1497\" font-family=\"sans-serif\" font-size=\"12px\" text-anchor=\"middle\" class=\"sequenceNumber\">21</text><text x=\"586\" y=\"1508\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">Redirect user to your callback URL with authorization code</text><line x1=\"1098\" y1=\"1547\" x2=\"79\" y2=\"1547\" class=\"messageLine0\" data-et=\"message\" data-id=\"i26\" data-from=\"DailyPay Auth Server\" data-to=\"User\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-9957877ed9984366627472bf322965c16fb33f9dc2db147d8dce7c434184ca03-arrowhead)\" style=\"fill: none;\"></line><line x1=\"1093\" y1=\"1547\" x2=\"1093\" y2=\"1547\" stroke-width=\"0\" marker-start=\"url(#diagram-9957877ed9984366627472bf322965c16fb33f9dc2db147d8dce7c434184ca03-sequencenumber)\"></line><text x=\"1093\" y=\"1551\" font-family=\"sans-serif\" font-size=\"12px\" text-anchor=\"middle\" class=\"sequenceNumber\">22</text><text x=\"440\" y=\"1562\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">authorization code</text><line x1=\"82\" y1=\"1601\" x2=\"804\" y2=\"1601\" class=\"messageLine0\" data-et=\"message\" data-id=\"i27\" data-from=\"User\" data-to=\"Your Application\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-9957877ed9984366627472bf322965c16fb33f9dc2db147d8dce7c434184ca03-arrowhead)\" style=\"fill: none;\"></line><line x1=\"75\" y1=\"1601\" x2=\"75\" y2=\"1601\" stroke-width=\"0\" marker-start=\"url(#diagram-9957877ed9984366627472bf322965c16fb33f9dc2db147d8dce7c434184ca03-sequencenumber)\"></line><text x=\"75\" y=\"1605\" font-family=\"sans-serif\" font-size=\"12px\" text-anchor=\"middle\" class=\"sequenceNumber\">23</text><text x=\"949\" y=\"1616\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">Exchange authorization code</text><line x1=\"815\" y1=\"1655\" x2=\"1089\" y2=\"1655\" class=\"messageLine0\" data-et=\"message\" data-id=\"i28\" data-from=\"Your Application\" data-to=\"DailyPay Auth Server\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-9957877ed9984366627472bf322965c16fb33f9dc2db147d8dce7c434184ca03-arrowhead)\" style=\"fill: none;\"></line><line x1=\"808\" y1=\"1655\" x2=\"808\" y2=\"1655\" stroke-width=\"0\" marker-start=\"url(#diagram-9957877ed9984366627472bf322965c16fb33f9dc2db147d8dce7c434184ca03-sequencenumber)\"></line><text x=\"808\" y=\"1659\" font-family=\"sans-serif\" font-size=\"12px\" text-anchor=\"middle\" class=\"sequenceNumber\">24</text><text x=\"952\" y=\"1670\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">Return API access token</text><line x1=\"1098\" y1=\"1709\" x2=\"812\" y2=\"1709\" class=\"messageLine0\" data-et=\"message\" data-id=\"i29\" data-from=\"DailyPay Auth Server\" data-to=\"Your Application\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-9957877ed9984366627472bf322965c16fb33f9dc2db147d8dce7c434184ca03-arrowhead)\" style=\"fill: none;\"></line><line x1=\"1093\" y1=\"1709\" x2=\"1093\" y2=\"1709\" stroke-width=\"0\" marker-start=\"url(#diagram-9957877ed9984366627472bf322965c16fb33f9dc2db147d8dce7c434184ca03-sequencenumber)\"></line><text x=\"1093\" y=\"1713\" font-family=\"sans-serif\" font-size=\"12px\" text-anchor=\"middle\" class=\"sequenceNumber\">25</text><text x=\"1055\" y=\"1724\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">Authenticate API calls</text><line x1=\"815\" y1=\"1763\" x2=\"1301.5\" y2=\"1763\" class=\"messageLine0\" data-et=\"message\" data-id=\"i30\" data-from=\"Your Application\" data-to=\"DailyPay API\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-9957877ed9984366627472bf322965c16fb33f9dc2db147d8dce7c434184ca03-arrowhead)\" style=\"fill: none;\"></line><line x1=\"808\" y1=\"1763\" x2=\"808\" y2=\"1763\" stroke-width=\"0\" marker-start=\"url(#diagram-9957877ed9984366627472bf322965c16fb33f9dc2db147d8dce7c434184ca03-sequencenumber)\"></line><text x=\"808\" y=\"1767\" font-family=\"sans-serif\" font-size=\"12px\" text-anchor=\"middle\" class=\"sequenceNumber\">26</text><g class=\"actor-man actor-bottom\" name=\"User\" style=\"stroke: rgb(166, 207, 71);\"><line id=\"actor-man-torso4\" x1=\"75\" y1=\"1808\" x2=\"75\" y2=\"1828\"></line><line id=\"actor-man-arms4\" x1=\"57\" y1=\"1816\" x2=\"93\" y2=\"1816\"></line><line x1=\"57\" y1=\"1843\" x2=\"75\" y2=\"1828\"></line><line x1=\"75\" y1=\"1828\" x2=\"91\" y2=\"1843\"></line><circle cx=\"75\" cy=\"1793\" r=\"15\" width=\"150\" height=\"65\"></circle><text x=\"75\" y=\"1850.5\" dominant-baseline=\"central\" alignment-baseline=\"central\" class=\"actor actor-man\" style=\"text-anchor: middle; font-size: 16px; font-weight: 400; font-family: &quot;Redocly Mermaid Sans&quot;, &quot;Redocly Mermaid CJK&quot;, sans-serif;\"><tspan x=\"75\" dy=\"0\">User</tspan></text></g></svg>"},"children":["%%{init: {'theme': 'forest'}}%%\nsequenceDiagram\n    autonumber\n    actor User\n    participant Your Auth Server\n    participant Your Application\n    participant DailyPay Auth Server\n    participant DailyPay API\n    Your Auth Server-->>User: Has an authenticated session\n    User->>Your Application: Clicks on funtionality requiring DailyPay user access\n    Your Application->>Your Application: Construct a signed OAuth2 Request URL\n    Your Application->>User: Open a webview or secure tab to request URL with iss=your_auth_url\n    User->>DailyPay Auth Server: Initiate OAuth2 Authorization Code Flow\n    critical OIDC (Preferred)\n        DailyPay Auth Server->>User: Redirect to your auth URL with DailyPay client parameters\n        User->>Your Auth Server: Login or reuse session\n        Your Auth Server->>User: Redirect user to DailyPay callback URL with authorization code\n        User->>DailyPay Auth Server: Authorization code\n        DailyPay Auth Server->>Your Auth Server: Exchange authorization code\n        Your Auth Server->>DailyPay Auth Server: Return access token and (optionally) ID token\n        DailyPay Auth Server->>DailyPay Auth Server: Extract unique ID from ID token\n    end\n    opt SAML\n        DailyPay Auth Server->>User: Redirect to your SSO URL\n        User->>Your Auth Server: Login or reuse session\n        Your Auth Server->>User: Redirect user with SAML response\n        User->>DailyPay Auth Server: SAML response forwarded\n        DailyPay Auth Server->>DailyPay Auth Server: Validate SAML response\n        DailyPay Auth Server->>DailyPay Auth Server: Extract unique ID from SAML\n    end\n    DailyPay Auth Server->>User: Present terms and conditions\n    User->>DailyPay Auth Server: Click to sign terms and conditions\n    DailyPay Auth Server-->>DailyPay API: Activate user\n    DailyPay Auth Server->>User: Redirect user to your callback URL with authorization code\n    User->>Your Application: authorization code\n    Your Application->>DailyPay Auth Server: Exchange authorization code\n    DailyPay Auth Server->>Your Application: Return API access token\n    Your Application->>DailyPay API: Authenticate API calls\n"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"guidance-for-developers-without-preexisting-oidc-or-sso","__idx":4},"children":["Guidance for Developers Without Preexisting OIDC or SSO"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["In order to establish a trust relationship, DailyPay needs a way to verify the authenticity of the user session that wraps the Authorization Code Flow. OAuth2.0 with OIDC provides a set of mechanisms to establish that trust relationship. Below are the critical elements, that even without full OIDC support, are advised or required to create the highest security and lowest friction user auth experience."]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Accept an OAuth2.0-style GET request (6), and return an authorization code using an http redirect to the DailyPay callback endpoint (8).",{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["If the user is already logged in with an active session (1), the authorization server should detect the session (7) and return the authorization code without prompting the user for additional information."]}]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Allow only the DailyPay preregistered client to exchange that authorization code (10) for an access token (11), using a client secret or a signature using our public key."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Populate the access token or an OIDC-style JWT Identity Token with signed claims, and provide a way to validate those claims.",{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["The claims must include the shared unique identifier for the user (12)."]}]}]}]}]},"headings":[{"value":"Trust Relationship Authentication","id":"trust-relationship-authentication","depth":1},{"value":"Goal","id":"goal","depth":2},{"value":"Approach","id":"approach","depth":2},{"value":"Methods","id":"methods","depth":2},{"value":"Guidance for Developers Without Preexisting OIDC or SSO","id":"guidance-for-developers-without-preexisting-oidc-or-sso","depth":2}],"frontmatter":{"seo":{"title":"Trust Relationship Authentication"}},"lastModified":"2026-07-14T14:30:25.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/products/rest/guides/auth/trust-relationship","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}