{"templateId":"markdown","sharedDataIds":{"sidebar":"sidebar-docs/guides/sidebars.yaml"},"props":{"metadata":{"markdoc":{"tagList":[]},"type":"markdown"},"seo":{"title":"Same-Device Return"},"dynamicMarkdocComponents":[],"compilationErrors":[],"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":1,"id":"same-device-return","__idx":0},"children":["Same-Device Return"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["When the holder starts a verification on their phone, in your web app or mobile site, the wallet can send them back to you once they have answered. You give the session a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["redirect_uri"]},". After the holder presents, declines, or the presentation fails, the wallet shows a button back to you. The button opens your ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["redirect_uri"]}," with a fresh ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["response_code"]},"."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["response_code"]}," also protects the result. A session created with ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["redirect_uri"]}," returns its disclosed ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["attributes"]}," only to a read that passes the code. The code reaches only the browser the wallet opened. So someone who started the verification and sent the wallet link to somebody else never gets that person's data."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This page builds on the ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/docs/guides/verification/flow"},"children":["Verification Flow"]},"."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"when-to-use-it","__idx":1},"children":["When to use it"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["The holder is on their phone"]},", in your web app or mobile site, and you open the session's ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["deeplink"]}," there. This is the case the return is made for."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["The verified data is tied to an account or an action"]}," (onboarding, identity proofing, a purchase). Without the return, whoever holds the session id gets the result. That includes someone who started the session themselves and forwarded the deeplink or QR code to another person."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Without ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["redirect_uri"]},", nothing changes: the wallet closes its flow, and the session reads as described in the ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/docs/guides/verification/flow"},"children":["Verification Flow"]},"."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"how-it-works","__idx":2},"children":["How it works"]},{"$$mdtype":"Tag","name":"Diagram","attributes":{"data-language":"mermaid","diagramType":"mermaid","diagramSource":"sequenceDiagram\n    participant B as Holder's browser\n    participant P as Your backend\n    participant D as DeepCredentials\n    participant W as Wallet\n    B->>P: Start verification\n    P->>D: POST /verification-sessions (redirect_uri)\n    D-->>P: session_id, deeplink\n    P->>P: Remember session_id (see \"Checking on your side\")\n    P-->>B: Open deeplink\n    B->>W: Wallet opens\n    W->>D: Presentation (or decline)\n    D-->>W: redirect_uri?response_code=…\n    W->>B: Holder taps \"back to you\"\n    B->>P: redirect_uri?response_code=…\n    P->>D: GET /verification-sessions/{session_id}?response_code=…\n    D-->>P: Session with attributes\n    P-->>B: Continue\n","diagramHtml":"<svg id=\"diagram-a86829bfb34332133d9be710d36bd49ea2fe193640622edf689e425bc34c8556\" width=\"100%\" xmlns=\"http://www.w3.org/2000/svg\" style=\"max-width: 1328px;\" viewBox=\"-50 -10 1328 793\" role=\"graphics-document document\" aria-roledescription=\"sequence\"><style>\n    #diagram-a86829bfb34332133d9be710d36bd49ea2fe193640622edf689e425bc34c8556 foreignObject {\n      overflow: visible;\n    }\n  </style><g><rect x=\"1078\" y=\"707\" fill=\"#eaeaea\" stroke=\"#666\" width=\"150\" height=\"65\" name=\"W\" rx=\"3\" ry=\"3\" class=\"actor actor-bottom\"></rect><text x=\"1153\" y=\"739.5\" dominant-baseline=\"central\" alignment-baseline=\"central\" class=\"actor actor-box\" style=\"text-anchor: middle; font-size: 16px; font-weight: 400; font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif;\"><tspan x=\"1153\" dy=\"0\">Wallet</tspan></text></g><g><rect x=\"784\" y=\"707\" fill=\"#eaeaea\" stroke=\"#666\" width=\"150\" height=\"65\" name=\"D\" rx=\"3\" ry=\"3\" class=\"actor actor-bottom\"></rect><text x=\"859\" y=\"739.5\" dominant-baseline=\"central\" alignment-baseline=\"central\" class=\"actor actor-box\" style=\"text-anchor: middle; font-size: 16px; font-weight: 400; font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif;\"><tspan x=\"859\" dy=\"0\">DeepCredentials</tspan></text></g><g><rect x=\"294\" y=\"707\" fill=\"#eaeaea\" stroke=\"#666\" width=\"150\" height=\"65\" name=\"P\" rx=\"3\" ry=\"3\" class=\"actor actor-bottom\"></rect><text x=\"369\" y=\"739.5\" dominant-baseline=\"central\" alignment-baseline=\"central\" class=\"actor actor-box\" style=\"text-anchor: middle; font-size: 16px; font-weight: 400; font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif;\"><tspan x=\"369\" dy=\"0\">Your backend</tspan></text></g><g><rect x=\"0\" y=\"707\" fill=\"#eaeaea\" stroke=\"#666\" width=\"150\" height=\"65\" name=\"B\" rx=\"3\" ry=\"3\" class=\"actor actor-bottom\"></rect><text x=\"75\" y=\"739.5\" dominant-baseline=\"central\" alignment-baseline=\"central\" class=\"actor actor-box\" style=\"text-anchor: middle; font-size: 16px; font-weight: 400; font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif;\"><tspan x=\"75\" dy=\"0\">Holder's browser</tspan></text></g><g><line id=\"actor3\" x1=\"1153\" y1=\"65\" x2=\"1153\" y2=\"707\" class=\"actor-line 200\" stroke-width=\"0.5px\" stroke=\"#999\" name=\"W\" data-et=\"life-line\" data-id=\"W\"></line><g id=\"root-3\" data-et=\"participant\" data-type=\"participant\" data-id=\"W\"><rect x=\"1078\" y=\"0\" fill=\"#eaeaea\" stroke=\"#666\" width=\"150\" height=\"65\" name=\"W\" rx=\"3\" ry=\"3\" class=\"actor actor-top\"></rect><text x=\"1153\" 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;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif;\"><tspan x=\"1153\" dy=\"0\">Wallet</tspan></text></g></g><g><line id=\"actor2\" x1=\"859\" y1=\"65\" x2=\"859\" y2=\"707\" class=\"actor-line 200\" stroke-width=\"0.5px\" stroke=\"#999\" name=\"D\" data-et=\"life-line\" data-id=\"D\"></line><g id=\"root-2\" data-et=\"participant\" data-type=\"participant\" data-id=\"D\"><rect x=\"784\" y=\"0\" fill=\"#eaeaea\" stroke=\"#666\" width=\"150\" height=\"65\" name=\"D\" rx=\"3\" ry=\"3\" class=\"actor actor-top\"></rect><text x=\"859\" 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;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif;\"><tspan x=\"859\" dy=\"0\">DeepCredentials</tspan></text></g></g><g><line id=\"actor1\" x1=\"369\" y1=\"65\" x2=\"369\" y2=\"707\" class=\"actor-line 200\" stroke-width=\"0.5px\" stroke=\"#999\" name=\"P\" data-et=\"life-line\" data-id=\"P\"></line><g id=\"root-1\" data-et=\"participant\" data-type=\"participant\" data-id=\"P\"><rect x=\"294\" y=\"0\" fill=\"#eaeaea\" stroke=\"#666\" width=\"150\" height=\"65\" name=\"P\" rx=\"3\" ry=\"3\" class=\"actor actor-top\"></rect><text x=\"369\" 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;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif;\"><tspan x=\"369\" dy=\"0\">Your backend</tspan></text></g></g><g><line id=\"actor0\" x1=\"75\" y1=\"65\" x2=\"75\" y2=\"707\" class=\"actor-line 200\" stroke-width=\"0.5px\" stroke=\"#999\" name=\"B\" data-et=\"life-line\" data-id=\"B\"></line><g id=\"root-0\" data-et=\"participant\" data-type=\"participant\" data-id=\"B\"><rect x=\"0\" y=\"0\" fill=\"#eaeaea\" stroke=\"#666\" width=\"150\" height=\"65\" name=\"B\" rx=\"3\" ry=\"3\" class=\"actor actor-top\"></rect><text x=\"75\" 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;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif;\"><tspan x=\"75\" dy=\"0\">Holder's browser</tspan></text></g></g><style>#diagram-a86829bfb34332133d9be710d36bd49ea2fe193640622edf689e425bc34c8556{font-family:\"Redocly Mermaid Sans\",Arial,\"Liberation Sans\",Arimo,Helvetica,\"Redocly Mermaid CJK\",sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#diagram-a86829bfb34332133d9be710d36bd49ea2fe193640622edf689e425bc34c8556 .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#diagram-a86829bfb34332133d9be710d36bd49ea2fe193640622edf689e425bc34c8556 .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#diagram-a86829bfb34332133d9be710d36bd49ea2fe193640622edf689e425bc34c8556 .error-icon{fill:#552222;}#diagram-a86829bfb34332133d9be710d36bd49ea2fe193640622edf689e425bc34c8556 .error-text{fill:#552222;stroke:#552222;}#diagram-a86829bfb34332133d9be710d36bd49ea2fe193640622edf689e425bc34c8556 .edge-thickness-normal{stroke-width:1px;}#diagram-a86829bfb34332133d9be710d36bd49ea2fe193640622edf689e425bc34c8556 .edge-thickness-thick{stroke-width:3.5px;}#diagram-a86829bfb34332133d9be710d36bd49ea2fe193640622edf689e425bc34c8556 .edge-pattern-solid{stroke-dasharray:0;}#diagram-a86829bfb34332133d9be710d36bd49ea2fe193640622edf689e425bc34c8556 .edge-thickness-invisible{stroke-width:0;fill:none;}#diagram-a86829bfb34332133d9be710d36bd49ea2fe193640622edf689e425bc34c8556 .edge-pattern-dashed{stroke-dasharray:3;}#diagram-a86829bfb34332133d9be710d36bd49ea2fe193640622edf689e425bc34c8556 .edge-pattern-dotted{stroke-dasharray:2;}#diagram-a86829bfb34332133d9be710d36bd49ea2fe193640622edf689e425bc34c8556 .marker{fill:#333333;stroke:#333333;}#diagram-a86829bfb34332133d9be710d36bd49ea2fe193640622edf689e425bc34c8556 .marker.cross{stroke:#333333;}#diagram-a86829bfb34332133d9be710d36bd49ea2fe193640622edf689e425bc34c8556 svg{font-family:\"Redocly Mermaid Sans\",Arial,\"Liberation Sans\",Arimo,Helvetica,\"Redocly Mermaid CJK\",sans-serif;font-size:16px;}#diagram-a86829bfb34332133d9be710d36bd49ea2fe193640622edf689e425bc34c8556 p{margin:0;}#diagram-a86829bfb34332133d9be710d36bd49ea2fe193640622edf689e425bc34c8556 .actor{stroke:#9370DB;fill:#ECECFF;stroke-width:1;}#diagram-a86829bfb34332133d9be710d36bd49ea2fe193640622edf689e425bc34c8556 rect.actor.outer-path[data-look=\"neo\"]{filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-a86829bfb34332133d9be710d36bd49ea2fe193640622edf689e425bc34c8556 rect.note[data-look=\"neo\"]{stroke:#aaaa33;fill:#fff5ad;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-a86829bfb34332133d9be710d36bd49ea2fe193640622edf689e425bc34c8556 text.actor&gt;tspan{fill:black;stroke:none;}#diagram-a86829bfb34332133d9be710d36bd49ea2fe193640622edf689e425bc34c8556 .actor-line{stroke:#9370DB;}#diagram-a86829bfb34332133d9be710d36bd49ea2fe193640622edf689e425bc34c8556 .innerArc{stroke-width:1.5;stroke-dasharray:none;}#diagram-a86829bfb34332133d9be710d36bd49ea2fe193640622edf689e425bc34c8556 .messageLine0{stroke-width:1.5;stroke-dasharray:none;stroke:#333;}#diagram-a86829bfb34332133d9be710d36bd49ea2fe193640622edf689e425bc34c8556 .messageLine1{stroke-width:1.5;stroke-dasharray:2,2;stroke:#333;}#diagram-a86829bfb34332133d9be710d36bd49ea2fe193640622edf689e425bc34c8556 [id$=\"-arrowhead\"] path{fill:#333;stroke:#333;}#diagram-a86829bfb34332133d9be710d36bd49ea2fe193640622edf689e425bc34c8556 .sequenceNumber{fill:white;}#diagram-a86829bfb34332133d9be710d36bd49ea2fe193640622edf689e425bc34c8556 [id$=\"-sequencenumber\"]{fill:#333;}#diagram-a86829bfb34332133d9be710d36bd49ea2fe193640622edf689e425bc34c8556 [id$=\"-crosshead\"] path{fill:#333;stroke:#333;}#diagram-a86829bfb34332133d9be710d36bd49ea2fe193640622edf689e425bc34c8556 .messageText{fill:#333;stroke:none;}#diagram-a86829bfb34332133d9be710d36bd49ea2fe193640622edf689e425bc34c8556 .labelBox{stroke:#9370DB;fill:#ECECFF;filter:none;}#diagram-a86829bfb34332133d9be710d36bd49ea2fe193640622edf689e425bc34c8556 .labelText,#diagram-a86829bfb34332133d9be710d36bd49ea2fe193640622edf689e425bc34c8556 .labelText&gt;tspan{fill:black;stroke:none;}#diagram-a86829bfb34332133d9be710d36bd49ea2fe193640622edf689e425bc34c8556 .loopText,#diagram-a86829bfb34332133d9be710d36bd49ea2fe193640622edf689e425bc34c8556 .loopText&gt;tspan{fill:black;stroke:none;}#diagram-a86829bfb34332133d9be710d36bd49ea2fe193640622edf689e425bc34c8556 .sectionTitle,#diagram-a86829bfb34332133d9be710d36bd49ea2fe193640622edf689e425bc34c8556 .sectionTitle&gt;tspan{fill:black;stroke:none;}#diagram-a86829bfb34332133d9be710d36bd49ea2fe193640622edf689e425bc34c8556 .loopLine{stroke-width:2px;stroke-dasharray:2,2;stroke:#9370DB;fill:#9370DB;}#diagram-a86829bfb34332133d9be710d36bd49ea2fe193640622edf689e425bc34c8556 .note{stroke:#aaaa33;fill:#fff5ad;}#diagram-a86829bfb34332133d9be710d36bd49ea2fe193640622edf689e425bc34c8556 .noteText,#diagram-a86829bfb34332133d9be710d36bd49ea2fe193640622edf689e425bc34c8556 .noteText&gt;tspan{fill:black;stroke:none;font-weight:normal;}#diagram-a86829bfb34332133d9be710d36bd49ea2fe193640622edf689e425bc34c8556 .activation0{fill:#f4f4f4;stroke:#666;}#diagram-a86829bfb34332133d9be710d36bd49ea2fe193640622edf689e425bc34c8556 .activation1{fill:#f4f4f4;stroke:#666;}#diagram-a86829bfb34332133d9be710d36bd49ea2fe193640622edf689e425bc34c8556 .activation2{fill:#f4f4f4;stroke:#666;}#diagram-a86829bfb34332133d9be710d36bd49ea2fe193640622edf689e425bc34c8556 .actorPopupMenu{position:absolute;}#diagram-a86829bfb34332133d9be710d36bd49ea2fe193640622edf689e425bc34c8556 .actorPopupMenuPanel{position:absolute;fill:#ECECFF;box-shadow:0px 8px 16px 0px rgba(0,0,0,0.2);filter:drop-shadow(3px 5px 2px rgb(0 0 0 / 0.4));}#diagram-a86829bfb34332133d9be710d36bd49ea2fe193640622edf689e425bc34c8556 .actor-man circle,#diagram-a86829bfb34332133d9be710d36bd49ea2fe193640622edf689e425bc34c8556 line{fill:#ECECFF;stroke-width:2px;}#diagram-a86829bfb34332133d9be710d36bd49ea2fe193640622edf689e425bc34c8556 g rect.rect{filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));stroke:#9370DB;}#diagram-a86829bfb34332133d9be710d36bd49ea2fe193640622edf689e425bc34c8556 .node .neo-node{stroke:#9370DB;}#diagram-a86829bfb34332133d9be710d36bd49ea2fe193640622edf689e425bc34c8556 [data-look=\"neo\"].node rect,#diagram-a86829bfb34332133d9be710d36bd49ea2fe193640622edf689e425bc34c8556 [data-look=\"neo\"].cluster rect,#diagram-a86829bfb34332133d9be710d36bd49ea2fe193640622edf689e425bc34c8556 [data-look=\"neo\"].node polygon{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-a86829bfb34332133d9be710d36bd49ea2fe193640622edf689e425bc34c8556 [data-look=\"neo\"].swimlane.cluster rect{filter:none;}#diagram-a86829bfb34332133d9be710d36bd49ea2fe193640622edf689e425bc34c8556 [data-look=\"neo\"].node path{stroke:#9370DB;stroke-width:1px;}#diagram-a86829bfb34332133d9be710d36bd49ea2fe193640622edf689e425bc34c8556 [data-look=\"neo\"].node .outer-path{filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-a86829bfb34332133d9be710d36bd49ea2fe193640622edf689e425bc34c8556 [data-look=\"neo\"].node .neo-line path{stroke:#9370DB;filter:none;}#diagram-a86829bfb34332133d9be710d36bd49ea2fe193640622edf689e425bc34c8556 [data-look=\"neo\"].node circle{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-a86829bfb34332133d9be710d36bd49ea2fe193640622edf689e425bc34c8556 [data-look=\"neo\"].node circle .state-start{fill:#000000;}#diagram-a86829bfb34332133d9be710d36bd49ea2fe193640622edf689e425bc34c8556 [data-look=\"neo\"].icon-shape .icon{fill:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-a86829bfb34332133d9be710d36bd49ea2fe193640622edf689e425bc34c8556 [data-look=\"neo\"].icon-shape .icon-neo path{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-a86829bfb34332133d9be710d36bd49ea2fe193640622edf689e425bc34c8556 :root{--mermaid-font-family:\"Redocly Mermaid Sans\",Arial,\"Liberation Sans\",Arimo,Helvetica,\"Redocly Mermaid CJK\",sans-serif;}</style><g></g><defs><symbol id=\"diagram-a86829bfb34332133d9be710d36bd49ea2fe193640622edf689e425bc34c8556-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-a86829bfb34332133d9be710d36bd49ea2fe193640622edf689e425bc34c8556-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-a86829bfb34332133d9be710d36bd49ea2fe193640622edf689e425bc34c8556-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-a86829bfb34332133d9be710d36bd49ea2fe193640622edf689e425bc34c8556-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-a86829bfb34332133d9be710d36bd49ea2fe193640622edf689e425bc34c8556-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-a86829bfb34332133d9be710d36bd49ea2fe193640622edf689e425bc34c8556-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-a86829bfb34332133d9be710d36bd49ea2fe193640622edf689e425bc34c8556-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-a86829bfb34332133d9be710d36bd49ea2fe193640622edf689e425bc34c8556-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-a86829bfb34332133d9be710d36bd49ea2fe193640622edf689e425bc34c8556-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-a86829bfb34332133d9be710d36bd49ea2fe193640622edf689e425bc34c8556-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-a86829bfb34332133d9be710d36bd49ea2fe193640622edf689e425bc34c8556-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><text x=\"221\" y=\"80\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">Start verification</text><line x1=\"76\" y1=\"109\" x2=\"365\" y2=\"109\" class=\"messageLine0\" data-et=\"message\" data-id=\"i0\" data-from=\"B\" data-to=\"P\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-a86829bfb34332133d9be710d36bd49ea2fe193640622edf689e425bc34c8556-arrowhead)\" style=\"fill: none;\"></line><text x=\"613\" y=\"124\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">POST /verification-sessions (redirect_uri)</text><line x1=\"370\" y1=\"155\" x2=\"855\" y2=\"155\" class=\"messageLine0\" data-et=\"message\" data-id=\"i1\" data-from=\"P\" data-to=\"D\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-a86829bfb34332133d9be710d36bd49ea2fe193640622edf689e425bc34c8556-arrowhead)\" style=\"fill: none;\"></line><text x=\"616\" y=\"170\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">session_id, deeplink</text><line x1=\"858\" y1=\"201\" x2=\"373\" y2=\"201\" class=\"messageLine1\" data-et=\"message\" data-id=\"i2\" data-from=\"D\" data-to=\"P\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-a86829bfb34332133d9be710d36bd49ea2fe193640622edf689e425bc34c8556-arrowhead)\" style=\"stroke-dasharray: 3, 3; fill: none;\"></line><text x=\"370\" y=\"216\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">Remember session_id (see \"Checking on your side\")</text><path d=\"M 370,247 C 430,237 430,277 370,267\" class=\"messageLine0\" data-et=\"message\" data-id=\"i3\" data-from=\"P\" data-to=\"P\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-a86829bfb34332133d9be710d36bd49ea2fe193640622edf689e425bc34c8556-arrowhead)\" style=\"fill: none;\"></path><text x=\"224\" y=\"292\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">Open deeplink</text><line x1=\"368\" y1=\"323\" x2=\"79\" y2=\"323\" class=\"messageLine1\" data-et=\"message\" data-id=\"i4\" data-from=\"P\" data-to=\"B\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-a86829bfb34332133d9be710d36bd49ea2fe193640622edf689e425bc34c8556-arrowhead)\" style=\"stroke-dasharray: 3, 3; fill: none;\"></line><text x=\"613\" y=\"338\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">Wallet opens</text><line x1=\"76\" y1=\"369\" x2=\"1149\" y2=\"369\" class=\"messageLine0\" data-et=\"message\" data-id=\"i5\" data-from=\"B\" data-to=\"W\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-a86829bfb34332133d9be710d36bd49ea2fe193640622edf689e425bc34c8556-arrowhead)\" style=\"fill: none;\"></line><text x=\"1008\" y=\"384\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">Presentation (or decline)</text><line x1=\"1152\" y1=\"415\" x2=\"863\" y2=\"415\" class=\"messageLine0\" data-et=\"message\" data-id=\"i6\" data-from=\"W\" data-to=\"D\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-a86829bfb34332133d9be710d36bd49ea2fe193640622edf689e425bc34c8556-arrowhead)\" style=\"fill: none;\"></line><text x=\"1005\" y=\"430\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">redirect_uri?response_code=…</text><line x1=\"860\" y1=\"461\" x2=\"1149\" y2=\"461\" class=\"messageLine1\" data-et=\"message\" data-id=\"i7\" data-from=\"D\" data-to=\"W\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-a86829bfb34332133d9be710d36bd49ea2fe193640622edf689e425bc34c8556-arrowhead)\" style=\"stroke-dasharray: 3, 3; fill: none;\"></line><text x=\"616\" y=\"476\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">Holder taps \"back to you\"</text><line x1=\"1152\" y1=\"507\" x2=\"79\" y2=\"507\" class=\"messageLine0\" data-et=\"message\" data-id=\"i8\" data-from=\"W\" data-to=\"B\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-a86829bfb34332133d9be710d36bd49ea2fe193640622edf689e425bc34c8556-arrowhead)\" style=\"fill: none;\"></line><text x=\"221\" y=\"522\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">redirect_uri?response_code=…</text><line x1=\"76\" y1=\"553\" x2=\"365\" y2=\"553\" class=\"messageLine0\" data-et=\"message\" data-id=\"i9\" data-from=\"B\" data-to=\"P\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-a86829bfb34332133d9be710d36bd49ea2fe193640622edf689e425bc34c8556-arrowhead)\" style=\"fill: none;\"></line><text x=\"613\" y=\"568\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">GET /verification-sessions/{session_id}?response_code=…</text><line x1=\"370\" y1=\"599\" x2=\"855\" y2=\"599\" class=\"messageLine0\" data-et=\"message\" data-id=\"i10\" data-from=\"P\" data-to=\"D\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-a86829bfb34332133d9be710d36bd49ea2fe193640622edf689e425bc34c8556-arrowhead)\" style=\"fill: none;\"></line><text x=\"616\" y=\"614\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">Session with attributes</text><line x1=\"858\" y1=\"643\" x2=\"373\" y2=\"643\" class=\"messageLine1\" data-et=\"message\" data-id=\"i11\" data-from=\"D\" data-to=\"P\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-a86829bfb34332133d9be710d36bd49ea2fe193640622edf689e425bc34c8556-arrowhead)\" style=\"stroke-dasharray: 3, 3; fill: none;\"></line><text x=\"224\" y=\"658\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">Continue</text><line x1=\"368\" y1=\"687\" x2=\"79\" y2=\"687\" class=\"messageLine1\" data-et=\"message\" data-id=\"i12\" data-from=\"P\" data-to=\"B\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-a86829bfb34332133d9be710d36bd49ea2fe193640622edf689e425bc34c8556-arrowhead)\" style=\"stroke-dasharray: 3, 3; fill: none;\"></line></svg>","diagramHtmlDark":"<svg id=\"diagram-f1a75e3f53babff00ab1ea2547fd2e5fe9222c4f65944673d7d7636c3dbd6c7e\" width=\"100%\" xmlns=\"http://www.w3.org/2000/svg\" style=\"max-width: 1328px;\" viewBox=\"-50 -10 1328 793\" role=\"graphics-document document\" aria-roledescription=\"sequence\"><style>\n    #diagram-f1a75e3f53babff00ab1ea2547fd2e5fe9222c4f65944673d7d7636c3dbd6c7e foreignObject {\n      overflow: visible;\n    }\n  </style><g><rect x=\"1078\" y=\"707\" fill=\"#eaeaea\" stroke=\"#666\" width=\"150\" height=\"65\" name=\"W\" rx=\"3\" ry=\"3\" class=\"actor actor-bottom\"></rect><text x=\"1153\" y=\"739.5\" dominant-baseline=\"central\" alignment-baseline=\"central\" class=\"actor actor-box\" style=\"text-anchor: middle; font-size: 16px; font-weight: 400; font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif;\"><tspan x=\"1153\" dy=\"0\">Wallet</tspan></text></g><g><rect x=\"784\" y=\"707\" fill=\"#eaeaea\" stroke=\"#666\" width=\"150\" height=\"65\" name=\"D\" rx=\"3\" ry=\"3\" class=\"actor actor-bottom\"></rect><text x=\"859\" y=\"739.5\" dominant-baseline=\"central\" alignment-baseline=\"central\" class=\"actor actor-box\" style=\"text-anchor: middle; font-size: 16px; font-weight: 400; font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif;\"><tspan x=\"859\" dy=\"0\">DeepCredentials</tspan></text></g><g><rect x=\"294\" y=\"707\" fill=\"#eaeaea\" stroke=\"#666\" width=\"150\" height=\"65\" name=\"P\" rx=\"3\" ry=\"3\" class=\"actor actor-bottom\"></rect><text x=\"369\" y=\"739.5\" dominant-baseline=\"central\" alignment-baseline=\"central\" class=\"actor actor-box\" style=\"text-anchor: middle; font-size: 16px; font-weight: 400; font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif;\"><tspan x=\"369\" dy=\"0\">Your backend</tspan></text></g><g><rect x=\"0\" y=\"707\" fill=\"#eaeaea\" stroke=\"#666\" width=\"150\" height=\"65\" name=\"B\" rx=\"3\" ry=\"3\" class=\"actor actor-bottom\"></rect><text x=\"75\" y=\"739.5\" dominant-baseline=\"central\" alignment-baseline=\"central\" class=\"actor actor-box\" style=\"text-anchor: middle; font-size: 16px; font-weight: 400; font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif;\"><tspan x=\"75\" dy=\"0\">Holder's browser</tspan></text></g><g><line id=\"actor3\" x1=\"1153\" y1=\"65\" x2=\"1153\" y2=\"707\" class=\"actor-line 200\" stroke-width=\"0.5px\" stroke=\"#999\" name=\"W\" data-et=\"life-line\" data-id=\"W\"></line><g id=\"root-3\" data-et=\"participant\" data-type=\"participant\" data-id=\"W\"><rect x=\"1078\" y=\"0\" fill=\"#eaeaea\" stroke=\"#666\" width=\"150\" height=\"65\" name=\"W\" rx=\"3\" ry=\"3\" class=\"actor actor-top\"></rect><text x=\"1153\" 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;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif;\"><tspan x=\"1153\" dy=\"0\">Wallet</tspan></text></g></g><g><line id=\"actor2\" x1=\"859\" y1=\"65\" x2=\"859\" y2=\"707\" class=\"actor-line 200\" stroke-width=\"0.5px\" stroke=\"#999\" name=\"D\" data-et=\"life-line\" data-id=\"D\"></line><g id=\"root-2\" data-et=\"participant\" data-type=\"participant\" data-id=\"D\"><rect x=\"784\" y=\"0\" fill=\"#eaeaea\" stroke=\"#666\" width=\"150\" height=\"65\" name=\"D\" rx=\"3\" ry=\"3\" class=\"actor actor-top\"></rect><text x=\"859\" 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;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif;\"><tspan x=\"859\" dy=\"0\">DeepCredentials</tspan></text></g></g><g><line id=\"actor1\" x1=\"369\" y1=\"65\" x2=\"369\" y2=\"707\" class=\"actor-line 200\" stroke-width=\"0.5px\" stroke=\"#999\" name=\"P\" data-et=\"life-line\" data-id=\"P\"></line><g id=\"root-1\" data-et=\"participant\" data-type=\"participant\" data-id=\"P\"><rect x=\"294\" y=\"0\" fill=\"#eaeaea\" stroke=\"#666\" width=\"150\" height=\"65\" name=\"P\" rx=\"3\" ry=\"3\" class=\"actor actor-top\"></rect><text x=\"369\" 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;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif;\"><tspan x=\"369\" dy=\"0\">Your backend</tspan></text></g></g><g><line id=\"actor0\" x1=\"75\" y1=\"65\" x2=\"75\" y2=\"707\" class=\"actor-line 200\" stroke-width=\"0.5px\" stroke=\"#999\" name=\"B\" data-et=\"life-line\" data-id=\"B\"></line><g id=\"root-0\" data-et=\"participant\" data-type=\"participant\" data-id=\"B\"><rect x=\"0\" y=\"0\" fill=\"#eaeaea\" stroke=\"#666\" width=\"150\" height=\"65\" name=\"B\" rx=\"3\" ry=\"3\" class=\"actor actor-top\"></rect><text x=\"75\" 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;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif;\"><tspan x=\"75\" dy=\"0\">Holder's browser</tspan></text></g></g><style>#diagram-f1a75e3f53babff00ab1ea2547fd2e5fe9222c4f65944673d7d7636c3dbd6c7e{font-family:\"Redocly Mermaid Sans\",Arial,\"Liberation Sans\",Arimo,Helvetica,\"Redocly Mermaid CJK\",sans-serif;font-size:16px;fill:#ccc;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#diagram-f1a75e3f53babff00ab1ea2547fd2e5fe9222c4f65944673d7d7636c3dbd6c7e .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#diagram-f1a75e3f53babff00ab1ea2547fd2e5fe9222c4f65944673d7d7636c3dbd6c7e .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#diagram-f1a75e3f53babff00ab1ea2547fd2e5fe9222c4f65944673d7d7636c3dbd6c7e .error-icon{fill:#a44141;}#diagram-f1a75e3f53babff00ab1ea2547fd2e5fe9222c4f65944673d7d7636c3dbd6c7e .error-text{fill:#ddd;stroke:#ddd;}#diagram-f1a75e3f53babff00ab1ea2547fd2e5fe9222c4f65944673d7d7636c3dbd6c7e .edge-thickness-normal{stroke-width:1px;}#diagram-f1a75e3f53babff00ab1ea2547fd2e5fe9222c4f65944673d7d7636c3dbd6c7e .edge-thickness-thick{stroke-width:3.5px;}#diagram-f1a75e3f53babff00ab1ea2547fd2e5fe9222c4f65944673d7d7636c3dbd6c7e .edge-pattern-solid{stroke-dasharray:0;}#diagram-f1a75e3f53babff00ab1ea2547fd2e5fe9222c4f65944673d7d7636c3dbd6c7e .edge-thickness-invisible{stroke-width:0;fill:none;}#diagram-f1a75e3f53babff00ab1ea2547fd2e5fe9222c4f65944673d7d7636c3dbd6c7e .edge-pattern-dashed{stroke-dasharray:3;}#diagram-f1a75e3f53babff00ab1ea2547fd2e5fe9222c4f65944673d7d7636c3dbd6c7e .edge-pattern-dotted{stroke-dasharray:2;}#diagram-f1a75e3f53babff00ab1ea2547fd2e5fe9222c4f65944673d7d7636c3dbd6c7e .marker{fill:lightgrey;stroke:lightgrey;}#diagram-f1a75e3f53babff00ab1ea2547fd2e5fe9222c4f65944673d7d7636c3dbd6c7e .marker.cross{stroke:lightgrey;}#diagram-f1a75e3f53babff00ab1ea2547fd2e5fe9222c4f65944673d7d7636c3dbd6c7e svg{font-family:\"Redocly Mermaid Sans\",Arial,\"Liberation Sans\",Arimo,Helvetica,\"Redocly Mermaid CJK\",sans-serif;font-size:16px;}#diagram-f1a75e3f53babff00ab1ea2547fd2e5fe9222c4f65944673d7d7636c3dbd6c7e p{margin:0;}#diagram-f1a75e3f53babff00ab1ea2547fd2e5fe9222c4f65944673d7d7636c3dbd6c7e .actor{stroke:#ccc;fill:#1f2020;stroke-width:1;}#diagram-f1a75e3f53babff00ab1ea2547fd2e5fe9222c4f65944673d7d7636c3dbd6c7e rect.actor.outer-path[data-look=\"neo\"]{filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-f1a75e3f53babff00ab1ea2547fd2e5fe9222c4f65944673d7d7636c3dbd6c7e rect.note[data-look=\"neo\"]{stroke:hsl(180, 0%, 18.3529411765%);fill:hsl(180, 1.5873015873%, 28.3529411765%);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-f1a75e3f53babff00ab1ea2547fd2e5fe9222c4f65944673d7d7636c3dbd6c7e text.actor&gt;tspan{fill:lightgrey;stroke:none;}#diagram-f1a75e3f53babff00ab1ea2547fd2e5fe9222c4f65944673d7d7636c3dbd6c7e .actor-line{stroke:#ccc;}#diagram-f1a75e3f53babff00ab1ea2547fd2e5fe9222c4f65944673d7d7636c3dbd6c7e .innerArc{stroke-width:1.5;stroke-dasharray:none;}#diagram-f1a75e3f53babff00ab1ea2547fd2e5fe9222c4f65944673d7d7636c3dbd6c7e .messageLine0{stroke-width:1.5;stroke-dasharray:none;stroke:lightgrey;}#diagram-f1a75e3f53babff00ab1ea2547fd2e5fe9222c4f65944673d7d7636c3dbd6c7e .messageLine1{stroke-width:1.5;stroke-dasharray:2,2;stroke:lightgrey;}#diagram-f1a75e3f53babff00ab1ea2547fd2e5fe9222c4f65944673d7d7636c3dbd6c7e [id$=\"-arrowhead\"] path{fill:lightgrey;stroke:lightgrey;}#diagram-f1a75e3f53babff00ab1ea2547fd2e5fe9222c4f65944673d7d7636c3dbd6c7e .sequenceNumber{fill:black;}#diagram-f1a75e3f53babff00ab1ea2547fd2e5fe9222c4f65944673d7d7636c3dbd6c7e [id$=\"-sequencenumber\"]{fill:lightgrey;}#diagram-f1a75e3f53babff00ab1ea2547fd2e5fe9222c4f65944673d7d7636c3dbd6c7e [id$=\"-crosshead\"] path{fill:lightgrey;stroke:lightgrey;}#diagram-f1a75e3f53babff00ab1ea2547fd2e5fe9222c4f65944673d7d7636c3dbd6c7e .messageText{fill:lightgrey;stroke:none;}#diagram-f1a75e3f53babff00ab1ea2547fd2e5fe9222c4f65944673d7d7636c3dbd6c7e .labelBox{stroke:#ccc;fill:#1f2020;filter:none;}#diagram-f1a75e3f53babff00ab1ea2547fd2e5fe9222c4f65944673d7d7636c3dbd6c7e .labelText,#diagram-f1a75e3f53babff00ab1ea2547fd2e5fe9222c4f65944673d7d7636c3dbd6c7e .labelText&gt;tspan{fill:lightgrey;stroke:none;}#diagram-f1a75e3f53babff00ab1ea2547fd2e5fe9222c4f65944673d7d7636c3dbd6c7e .loopText,#diagram-f1a75e3f53babff00ab1ea2547fd2e5fe9222c4f65944673d7d7636c3dbd6c7e .loopText&gt;tspan{fill:lightgrey;stroke:none;}#diagram-f1a75e3f53babff00ab1ea2547fd2e5fe9222c4f65944673d7d7636c3dbd6c7e .sectionTitle,#diagram-f1a75e3f53babff00ab1ea2547fd2e5fe9222c4f65944673d7d7636c3dbd6c7e .sectionTitle&gt;tspan{fill:lightgrey;stroke:none;}#diagram-f1a75e3f53babff00ab1ea2547fd2e5fe9222c4f65944673d7d7636c3dbd6c7e .loopLine{stroke-width:2px;stroke-dasharray:2,2;stroke:#ccc;fill:#ccc;}#diagram-f1a75e3f53babff00ab1ea2547fd2e5fe9222c4f65944673d7d7636c3dbd6c7e .note{stroke:hsl(180, 0%, 18.3529411765%);fill:hsl(180, 1.5873015873%, 28.3529411765%);}#diagram-f1a75e3f53babff00ab1ea2547fd2e5fe9222c4f65944673d7d7636c3dbd6c7e .noteText,#diagram-f1a75e3f53babff00ab1ea2547fd2e5fe9222c4f65944673d7d7636c3dbd6c7e .noteText&gt;tspan{fill:rgb(183.8476190475, 181.5523809523, 181.5523809523);stroke:none;font-weight:normal;}#diagram-f1a75e3f53babff00ab1ea2547fd2e5fe9222c4f65944673d7d7636c3dbd6c7e .activation0{fill:hsl(180, 1.5873015873%, 28.3529411765%);stroke:#ccc;}#diagram-f1a75e3f53babff00ab1ea2547fd2e5fe9222c4f65944673d7d7636c3dbd6c7e .activation1{fill:hsl(180, 1.5873015873%, 28.3529411765%);stroke:#ccc;}#diagram-f1a75e3f53babff00ab1ea2547fd2e5fe9222c4f65944673d7d7636c3dbd6c7e .activation2{fill:hsl(180, 1.5873015873%, 28.3529411765%);stroke:#ccc;}#diagram-f1a75e3f53babff00ab1ea2547fd2e5fe9222c4f65944673d7d7636c3dbd6c7e .actorPopupMenu{position:absolute;}#diagram-f1a75e3f53babff00ab1ea2547fd2e5fe9222c4f65944673d7d7636c3dbd6c7e .actorPopupMenuPanel{position:absolute;fill:#1f2020;box-shadow:0px 8px 16px 0px rgba(0,0,0,0.2);filter:drop-shadow(3px 5px 2px rgb(0 0 0 / 0.4));}#diagram-f1a75e3f53babff00ab1ea2547fd2e5fe9222c4f65944673d7d7636c3dbd6c7e .actor-man circle,#diagram-f1a75e3f53babff00ab1ea2547fd2e5fe9222c4f65944673d7d7636c3dbd6c7e line{fill:#1f2020;stroke-width:2px;}#diagram-f1a75e3f53babff00ab1ea2547fd2e5fe9222c4f65944673d7d7636c3dbd6c7e g rect.rect{filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));stroke:#ccc;}#diagram-f1a75e3f53babff00ab1ea2547fd2e5fe9222c4f65944673d7d7636c3dbd6c7e .node .neo-node{stroke:#ccc;}#diagram-f1a75e3f53babff00ab1ea2547fd2e5fe9222c4f65944673d7d7636c3dbd6c7e [data-look=\"neo\"].node rect,#diagram-f1a75e3f53babff00ab1ea2547fd2e5fe9222c4f65944673d7d7636c3dbd6c7e [data-look=\"neo\"].cluster rect,#diagram-f1a75e3f53babff00ab1ea2547fd2e5fe9222c4f65944673d7d7636c3dbd6c7e [data-look=\"neo\"].node polygon{stroke:url(#diagram-f1a75e3f53babff00ab1ea2547fd2e5fe9222c4f65944673d7d7636c3dbd6c7e-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-f1a75e3f53babff00ab1ea2547fd2e5fe9222c4f65944673d7d7636c3dbd6c7e [data-look=\"neo\"].swimlane.cluster rect{filter:none;}#diagram-f1a75e3f53babff00ab1ea2547fd2e5fe9222c4f65944673d7d7636c3dbd6c7e [data-look=\"neo\"].node path{stroke:url(#diagram-f1a75e3f53babff00ab1ea2547fd2e5fe9222c4f65944673d7d7636c3dbd6c7e-gradient);stroke-width:1px;}#diagram-f1a75e3f53babff00ab1ea2547fd2e5fe9222c4f65944673d7d7636c3dbd6c7e [data-look=\"neo\"].node .outer-path{filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-f1a75e3f53babff00ab1ea2547fd2e5fe9222c4f65944673d7d7636c3dbd6c7e [data-look=\"neo\"].node .neo-line path{stroke:#ccc;filter:none;}#diagram-f1a75e3f53babff00ab1ea2547fd2e5fe9222c4f65944673d7d7636c3dbd6c7e [data-look=\"neo\"].node circle{stroke:url(#diagram-f1a75e3f53babff00ab1ea2547fd2e5fe9222c4f65944673d7d7636c3dbd6c7e-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-f1a75e3f53babff00ab1ea2547fd2e5fe9222c4f65944673d7d7636c3dbd6c7e [data-look=\"neo\"].node circle .state-start{fill:#000000;}#diagram-f1a75e3f53babff00ab1ea2547fd2e5fe9222c4f65944673d7d7636c3dbd6c7e [data-look=\"neo\"].icon-shape .icon{fill:url(#diagram-f1a75e3f53babff00ab1ea2547fd2e5fe9222c4f65944673d7d7636c3dbd6c7e-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-f1a75e3f53babff00ab1ea2547fd2e5fe9222c4f65944673d7d7636c3dbd6c7e [data-look=\"neo\"].icon-shape .icon-neo path{stroke:url(#diagram-f1a75e3f53babff00ab1ea2547fd2e5fe9222c4f65944673d7d7636c3dbd6c7e-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-f1a75e3f53babff00ab1ea2547fd2e5fe9222c4f65944673d7d7636c3dbd6c7e :root{--mermaid-font-family:\"Redocly Mermaid Sans\",Arial,\"Liberation Sans\",Arimo,Helvetica,\"Redocly Mermaid CJK\",sans-serif;}</style><g></g><defs><symbol id=\"diagram-f1a75e3f53babff00ab1ea2547fd2e5fe9222c4f65944673d7d7636c3dbd6c7e-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-f1a75e3f53babff00ab1ea2547fd2e5fe9222c4f65944673d7d7636c3dbd6c7e-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-f1a75e3f53babff00ab1ea2547fd2e5fe9222c4f65944673d7d7636c3dbd6c7e-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-f1a75e3f53babff00ab1ea2547fd2e5fe9222c4f65944673d7d7636c3dbd6c7e-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-f1a75e3f53babff00ab1ea2547fd2e5fe9222c4f65944673d7d7636c3dbd6c7e-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-f1a75e3f53babff00ab1ea2547fd2e5fe9222c4f65944673d7d7636c3dbd6c7e-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-f1a75e3f53babff00ab1ea2547fd2e5fe9222c4f65944673d7d7636c3dbd6c7e-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-f1a75e3f53babff00ab1ea2547fd2e5fe9222c4f65944673d7d7636c3dbd6c7e-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-f1a75e3f53babff00ab1ea2547fd2e5fe9222c4f65944673d7d7636c3dbd6c7e-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-f1a75e3f53babff00ab1ea2547fd2e5fe9222c4f65944673d7d7636c3dbd6c7e-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-f1a75e3f53babff00ab1ea2547fd2e5fe9222c4f65944673d7d7636c3dbd6c7e-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><text x=\"221\" y=\"80\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">Start verification</text><line x1=\"76\" y1=\"109\" x2=\"365\" y2=\"109\" class=\"messageLine0\" data-et=\"message\" data-id=\"i0\" data-from=\"B\" data-to=\"P\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-f1a75e3f53babff00ab1ea2547fd2e5fe9222c4f65944673d7d7636c3dbd6c7e-arrowhead)\" style=\"fill: none;\"></line><text x=\"613\" y=\"124\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">POST /verification-sessions (redirect_uri)</text><line x1=\"370\" y1=\"155\" x2=\"855\" y2=\"155\" class=\"messageLine0\" data-et=\"message\" data-id=\"i1\" data-from=\"P\" data-to=\"D\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-f1a75e3f53babff00ab1ea2547fd2e5fe9222c4f65944673d7d7636c3dbd6c7e-arrowhead)\" style=\"fill: none;\"></line><text x=\"616\" y=\"170\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">session_id, deeplink</text><line x1=\"858\" y1=\"201\" x2=\"373\" y2=\"201\" class=\"messageLine1\" data-et=\"message\" data-id=\"i2\" data-from=\"D\" data-to=\"P\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-f1a75e3f53babff00ab1ea2547fd2e5fe9222c4f65944673d7d7636c3dbd6c7e-arrowhead)\" style=\"stroke-dasharray: 3, 3; fill: none;\"></line><text x=\"370\" y=\"216\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">Remember session_id (see \"Checking on your side\")</text><path d=\"M 370,247 C 430,237 430,277 370,267\" class=\"messageLine0\" data-et=\"message\" data-id=\"i3\" data-from=\"P\" data-to=\"P\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-f1a75e3f53babff00ab1ea2547fd2e5fe9222c4f65944673d7d7636c3dbd6c7e-arrowhead)\" style=\"fill: none;\"></path><text x=\"224\" y=\"292\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">Open deeplink</text><line x1=\"368\" y1=\"323\" x2=\"79\" y2=\"323\" class=\"messageLine1\" data-et=\"message\" data-id=\"i4\" data-from=\"P\" data-to=\"B\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-f1a75e3f53babff00ab1ea2547fd2e5fe9222c4f65944673d7d7636c3dbd6c7e-arrowhead)\" style=\"stroke-dasharray: 3, 3; fill: none;\"></line><text x=\"613\" y=\"338\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">Wallet opens</text><line x1=\"76\" y1=\"369\" x2=\"1149\" y2=\"369\" class=\"messageLine0\" data-et=\"message\" data-id=\"i5\" data-from=\"B\" data-to=\"W\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-f1a75e3f53babff00ab1ea2547fd2e5fe9222c4f65944673d7d7636c3dbd6c7e-arrowhead)\" style=\"fill: none;\"></line><text x=\"1008\" y=\"384\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">Presentation (or decline)</text><line x1=\"1152\" y1=\"415\" x2=\"863\" y2=\"415\" class=\"messageLine0\" data-et=\"message\" data-id=\"i6\" data-from=\"W\" data-to=\"D\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-f1a75e3f53babff00ab1ea2547fd2e5fe9222c4f65944673d7d7636c3dbd6c7e-arrowhead)\" style=\"fill: none;\"></line><text x=\"1005\" y=\"430\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">redirect_uri?response_code=…</text><line x1=\"860\" y1=\"461\" x2=\"1149\" y2=\"461\" class=\"messageLine1\" data-et=\"message\" data-id=\"i7\" data-from=\"D\" data-to=\"W\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-f1a75e3f53babff00ab1ea2547fd2e5fe9222c4f65944673d7d7636c3dbd6c7e-arrowhead)\" style=\"stroke-dasharray: 3, 3; fill: none;\"></line><text x=\"616\" y=\"476\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">Holder taps \"back to you\"</text><line x1=\"1152\" y1=\"507\" x2=\"79\" y2=\"507\" class=\"messageLine0\" data-et=\"message\" data-id=\"i8\" data-from=\"W\" data-to=\"B\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-f1a75e3f53babff00ab1ea2547fd2e5fe9222c4f65944673d7d7636c3dbd6c7e-arrowhead)\" style=\"fill: none;\"></line><text x=\"221\" y=\"522\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">redirect_uri?response_code=…</text><line x1=\"76\" y1=\"553\" x2=\"365\" y2=\"553\" class=\"messageLine0\" data-et=\"message\" data-id=\"i9\" data-from=\"B\" data-to=\"P\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-f1a75e3f53babff00ab1ea2547fd2e5fe9222c4f65944673d7d7636c3dbd6c7e-arrowhead)\" style=\"fill: none;\"></line><text x=\"613\" y=\"568\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">GET /verification-sessions/{session_id}?response_code=…</text><line x1=\"370\" y1=\"599\" x2=\"855\" y2=\"599\" class=\"messageLine0\" data-et=\"message\" data-id=\"i10\" data-from=\"P\" data-to=\"D\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-f1a75e3f53babff00ab1ea2547fd2e5fe9222c4f65944673d7d7636c3dbd6c7e-arrowhead)\" style=\"fill: none;\"></line><text x=\"616\" y=\"614\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">Session with attributes</text><line x1=\"858\" y1=\"643\" x2=\"373\" y2=\"643\" class=\"messageLine1\" data-et=\"message\" data-id=\"i11\" data-from=\"D\" data-to=\"P\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-f1a75e3f53babff00ab1ea2547fd2e5fe9222c4f65944673d7d7636c3dbd6c7e-arrowhead)\" style=\"stroke-dasharray: 3, 3; fill: none;\"></line><text x=\"224\" y=\"658\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">Continue</text><line x1=\"368\" y1=\"687\" x2=\"79\" y2=\"687\" class=\"messageLine1\" data-et=\"message\" data-id=\"i12\" data-from=\"P\" data-to=\"B\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-f1a75e3f53babff00ab1ea2547fd2e5fe9222c4f65944673d7d7636c3dbd6c7e-arrowhead)\" style=\"stroke-dasharray: 3, 3; fill: none;\"></line></svg>"},"children":["sequenceDiagram\n    participant B as Holder's browser\n    participant P as Your backend\n    participant D as DeepCredentials\n    participant W as Wallet\n    B->>P: Start verification\n    P->>D: POST /verification-sessions (redirect_uri)\n    D-->>P: session_id, deeplink\n    P->>P: Remember session_id (see \"Checking on your side\")\n    P-->>B: Open deeplink\n    B->>W: Wallet opens\n    W->>D: Presentation (or decline)\n    D-->>W: redirect_uri?response_code=…\n    W->>B: Holder taps \"back to you\"\n    B->>P: redirect_uri?response_code=…\n    P->>D: GET /verification-sessions/{session_id}?response_code=…\n    D-->>P: Session with attributes\n    P-->>B: Continue\n"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"step-1-create-the-session-with-redirect_uri","__idx":3},"children":["Step 1: Create the session with ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["redirect_uri"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Both session endpoints take ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["redirect_uri"]},": ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["POST /b2b/v1/verification-sessions"]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["POST /b2b/v1/verification-cases/{caseId}/sessions"]},"."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"{\n  \"credential_definition_id\": \"YOUR_CREDENTIAL_DEFINITION_ID\",\n  \"redirect_uri\": \"https://app.example.com/verify/return\"\n}\n","lang":"json"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The URI must be absolute ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["https"]},", with no fragment and no ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["response_code"]}," parameter of its own. Anything else is ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["400 invalid_argument"]},". It may carry its own query parameters. The session echoes it as ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["redirect_uri"]},"."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Your return page will need the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["session_id"]}," to read the result. Where you keep it depends on what the result is for. See ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"#checking-on-your-side"},"children":["Checking on your side"]},"."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"step-2-the-holder-comes-back","__idx":4},"children":["Step 2: The holder comes back"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["After the holder answers, the wallet offers a button back to you. The button opens:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"header":{"controls":{"copy":{}}},"source":"https://app.example.com/verify/return?response_code=K3x0…\n"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The wallet opens it in the phone's default browser. That is usually the browser the holder started in, but it can be a new tab or, on Android, another browser."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The return happens after a decline or a failed check as well, so your page should expect any outcome."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"step-3-read-the-result-with-the-code","__idx":5},"children":["Step 3: Read the result with the code"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["On your return page:"]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Take ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["response_code"]}," from the URL, and remove it from the address bar (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["history.replaceState"]},"). It is single-purpose."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Send it to your backend. Your backend finds the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["session_id"]}," (see ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"#checking-on-your-side"},"children":["Checking on your side"]},") and reads:"]}]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"header":{"controls":{"copy":{}}},"source":"GET /b2b/v1/verification-sessions/{sessionId}?response_code=K3x0…\n"},"children":[]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Read"},"children":["Read"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Answer"},"children":["Answer"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["With the right code"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The full session, ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["attributes"]}," included."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Without a code"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The full session, ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["attributes"]}," left out and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["attributes_withheld: true"]},". Status, ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["error_code"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["credential_status"]}," and the rest are there."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["With a wrong or expired code"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["403 permission_denied"]},"."]}]}]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The code is valid for ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["30 minutes"]}," after the wallet answered. Read the result when the holder returns, and store what you need. After 30 minutes the session's ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["attributes"]}," can no longer be read."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["We do not invalidate the code when you read with it, so a retry after a network error works. ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Use it once yourself"]},": see ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"#use-the-code-once"},"children":["Use the code once"]},"."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"checking-on-your-side","__idx":6},"children":["Checking on your side"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The flow is:"]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["The wallet opens ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["redirect_uri?response_code=C"]},", so the code is in the query of the holder's browser."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Your return page takes ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["C"]}," and gives it to your backend."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Your backend calls ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["GET /b2b/v1/verification-sessions/{sessionId}?response_code=C"]},". ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["200"]}," with ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["attributes"]}," means the code belongs to that session, and the person continues. ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["403"]}," means it does not, and the person does not continue."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The code is created when the wallet answers, and only the wallet gets it: not you, not whoever created the session. So holding the code proves one thing: ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["this browser was opened by the wallet of the person who just verified."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Whether that is enough depends on what you do with the result."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"model-1-the-result-goes-to-whoever-brings-the-code","__idx":7},"children":["Model 1: the result goes to whoever brings the code"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The verification is the start of something new: an application, an order, a sign-up. Nothing exists yet that the result must attach to. Give the result to the browser that brings the code, whichever browser it is."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The return page needs to know which session it is, and the browser it arrives in may not be the one that started. The ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["redirect_uri"]}," is fixed when you create the session, before you have its ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["session_id"]},", so put ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["your own reference"]}," in it (an order or application id) and map it to the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["session_id"]}," on your side. Your reference may be in the URL: without the code, it reads no data."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"header":{"controls":{"copy":{}}},"source":"on start:\n    ref = new application id\n    V = POST /b2b/v1/verification-sessions { ..., redirect_uri: \".../verify/return?ref={ref}\" }\n    store ref → V\n\non GET /verify/return?ref=R&response_code=C:\n    V = lookup R\n    if V is none or already used: show \"start again\"; stop\n    session = GET /b2b/v1/verification-sessions/{V}?response_code=C\n    if 403: show \"this link no longer works, start again\"; stop\n    mark V used                                     // the code is used once\n    continue this browser's flow with session.attributes\n"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Someone who created the session and forwarded the QR code or deeplink to somebody else gets nothing: the code went to the other person's browser."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"model-2-the-result-attaches-to-something-that-existed-before","__idx":8},"children":["Model 2: the result attaches to something that existed before"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The person is signed in to your service, and the verification confirms the identity ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["of that account"]},". Here the code alone is not enough. The attack:"]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["An attacker signs in to their own account and starts a verification."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["They forward the deeplink or QR code to a victim, who presents their credential."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["The wallet opens the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["victim's"]}," browser with a valid code."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["If you accept the code in any browser and attach the result to the account that started the session, the victim's identity ends up on the attacker's account."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The code is genuine: it came from the person who verified, just not to the place it should go. So check that the code arrives ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["in the same signed-in session that started the verification"]},":"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"header":{"controls":{"copy":{}}},"source":"on start (signed-in session S):\n    V = POST /b2b/v1/verification-sessions { ..., redirect_uri: \".../verify/return\" }\n    S.pending_verification = V                      // server-side, not in the URL\n\non GET /verify/return?response_code=C (session S of this request):\n    V = S.pending_verification\n    if V is none: show \"start the verification again in this browser\"; stop\n    session = GET /b2b/v1/verification-sessions/{V}?response_code=C\n    if 403: refuse; stop\n    S.pending_verification = none                   // the code is used once\n    attach session.attributes to S's account\n"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["In the attack, the victim's browser has no session of the attacker, so nothing is attached. The attacker's session has ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["V"]}," but no code, and a read without it returns no ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["attributes"]},"."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The price: the wallet opens the phone's default browser. If the person started in another browser, they have no session there and must start again in that browser."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"use-the-code-once","__idx":9},"children":["Use the code once"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["We do not invalidate the code when you read with it, so a retry after a network error still works. Invalidate it yourself. Once a code has opened a result, do not accept it again: the URL that carried it can end up in browser history, proxy logs or error reports."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"why-the-code-is-not-in-the-api-response","__idx":10},"children":["Why the code is not in the API response"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The code reaches you only through your ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["redirect_uri"]},", never in a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["GET"]}," response or a webhook, and the session's ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["attributes"]}," come only with it. Had we returned the code to your backend, you would receive the data in any case, and comparing codes would be up to you. An integration that forgot to compare would work exactly the same and have no protection. With the code as the key to the data, there is no way to get the result without the code from the browser the wallet opened. This is the OpenID4VP model (§13.3): the verifier's frontend passes the response code to fetch the wallet's answer."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"what-else-changes-for-a-session-with-redirect_uri","__idx":11},"children":["What else changes for a session with ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["redirect_uri"]}]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["The list never returns its values."]}," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["GET /b2b/v1/verification-sessions"]}," leaves out ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["attributes"]}," for such sessions and sets ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["attributes_withheld: true"]},". Read them one session at a time, with the code."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["The webhook is unchanged."]}," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["verification.completed"]}," carries the session id, status and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["credential_status"]},", never disclosed data. Use it to learn that the holder answered, then read the result with the code once they are back."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Sessions without ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["redirect_uri"]}," are unchanged"]},", including those created before this existed."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"when-the-holder-scanned-a-qr-code","__idx":12},"children":["When the holder scanned a QR code"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["If the holder scanned a QR code shown on a computer, the wallet's button opens your ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["redirect_uri"]}," ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["on the phone"]},", not on the computer. The code reaches the phone's browser. The computer's browser session holds the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["session_id"]}," but never the code, so it cannot read the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["attributes"]},"."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Plan for that. Either have the holder continue on the phone, or create sessions for the QR code on a computer without ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["redirect_uri"]},". Without ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["redirect_uri"]}," the session reads as before, but it is not protected against a forwarded QR code. That limit is OpenID4VP's own: binding the result to a browser needs the wallet and the browser on one device."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"error-handling","__idx":13},"children":["Error handling"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Case"},"children":["Case"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Answer"},"children":["Answer"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["redirect_uri"]}," not absolute ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["https"]},", with a fragment, or with a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["response_code"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["400 invalid_argument"]}," at creation"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Read with a wrong or expired ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["response_code"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["403 permission_denied"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Read without ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["response_code"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["200"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["attributes"]}," left out, ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["attributes_withheld: true"]}]}]}]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["See ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/docs/guides/error-handling"},"children":["Error Handling"]}," for the error format."]}]},"headings":[{"value":"Same-Device Return","id":"same-device-return","depth":1},{"value":"When to use it","id":"when-to-use-it","depth":2},{"value":"How it works","id":"how-it-works","depth":2},{"value":"Step 1: Create the session with redirect_uri","id":"step-1-create-the-session-with-redirect_uri","depth":2},{"value":"Step 2: The holder comes back","id":"step-2-the-holder-comes-back","depth":2},{"value":"Step 3: Read the result with the code","id":"step-3-read-the-result-with-the-code","depth":2},{"value":"Checking on your side","id":"checking-on-your-side","depth":2},{"value":"Model 1: the result goes to whoever brings the code","id":"model-1-the-result-goes-to-whoever-brings-the-code","depth":3},{"value":"Model 2: the result attaches to something that existed before","id":"model-2-the-result-attaches-to-something-that-existed-before","depth":3},{"value":"Use the code once","id":"use-the-code-once","depth":3},{"value":"Why the code is not in the API response","id":"why-the-code-is-not-in-the-api-response","depth":3},{"value":"What else changes for a session with redirect_uri","id":"what-else-changes-for-a-session-with-redirect_uri","depth":2},{"value":"When the holder scanned a QR code","id":"when-the-holder-scanned-a-qr-code","depth":2},{"value":"Error handling","id":"error-handling","depth":2}],"frontmatter":{"seo":{"title":"Same-Device Return"}},"lastModified":"2026-10-21T09:09:47.194Z","pagePropGetterError":{"message":"","name":""}},"slug":"/docs/guides/verification/same-device","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}