@itsthecsguy/linework 0.0.0-stage → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (223) hide show
  1. package/LICENSE +21 -0
  2. package/NOTICE +11 -0
  3. package/README.md +164 -2
  4. package/assets/drawio/LICENSE +201 -0
  5. package/assets/drawio/VERSION +1 -0
  6. package/assets/drawio/favicon.ico +0 -0
  7. package/assets/drawio/images/1x1.png +0 -0
  8. package/assets/drawio/images/2x2.png +0 -0
  9. package/assets/drawio/images/3x3.png +0 -0
  10. package/assets/drawio/images/ajax-loader.gif +0 -0
  11. package/assets/drawio/images/android-chrome-512x512.png +0 -0
  12. package/assets/drawio/images/apple-touch-icon.png +0 -0
  13. package/assets/drawio/images/aui-wait.gif +0 -0
  14. package/assets/drawio/images/broken.png +0 -0
  15. package/assets/drawio/images/browserconfig.xml +9 -0
  16. package/assets/drawio/images/close.png +0 -0
  17. package/assets/drawio/images/cloud-connector-atlas.png +0 -0
  18. package/assets/drawio/images/collapsed.gif +0 -0
  19. package/assets/drawio/images/delete.png +0 -0
  20. package/assets/drawio/images/document-google-drive-icon-80.png +0 -0
  21. package/assets/drawio/images/draw-search.png +0 -0
  22. package/assets/drawio/images/drawio.svg +19 -0
  23. package/assets/drawio/images/drawlogo-color.svg +50 -0
  24. package/assets/drawio/images/drawlogo-gray.svg +18 -0
  25. package/assets/drawio/images/drawlogo-text-bottom.svg +75 -0
  26. package/assets/drawio/images/drawlogo.svg +18 -0
  27. package/assets/drawio/images/drawlogo128.png +0 -0
  28. package/assets/drawio/images/drawlogo144.png +0 -0
  29. package/assets/drawio/images/drawlogo256.png +0 -0
  30. package/assets/drawio/images/drawlogo48-gray.png +0 -0
  31. package/assets/drawio/images/drawlogo48.png +0 -0
  32. package/assets/drawio/images/drawlogo80.png +0 -0
  33. package/assets/drawio/images/droptarget.png +0 -0
  34. package/assets/drawio/images/edit.gif +0 -0
  35. package/assets/drawio/images/edit16.png +0 -0
  36. package/assets/drawio/images/edit32.png +0 -0
  37. package/assets/drawio/images/edit80.png +0 -0
  38. package/assets/drawio/images/embed-icon.png +0 -0
  39. package/assets/drawio/images/expanded.gif +0 -0
  40. package/assets/drawio/images/facebook.png +0 -0
  41. package/assets/drawio/images/favicon-16x16.png +0 -0
  42. package/assets/drawio/images/favicon-32x32.png +0 -0
  43. package/assets/drawio/images/file.png +0 -0
  44. package/assets/drawio/images/folder.png +0 -0
  45. package/assets/drawio/images/gadget-screenshot.png +0 -0
  46. package/assets/drawio/images/gadget-thumb.png +0 -0
  47. package/assets/drawio/images/github-logo-white.svg +6 -0
  48. package/assets/drawio/images/github-logo.svg +17 -0
  49. package/assets/drawio/images/gitlab-logo-white.svg +1 -0
  50. package/assets/drawio/images/gitlab-logo.svg +1 -0
  51. package/assets/drawio/images/glyphicons_blogger.png +0 -0
  52. package/assets/drawio/images/glyphicons_facebook.png +0 -0
  53. package/assets/drawio/images/glyphicons_github.png +0 -0
  54. package/assets/drawio/images/glyphicons_google.png +0 -0
  55. package/assets/drawio/images/glyphicons_star.png +0 -0
  56. package/assets/drawio/images/glyphicons_twitter.png +0 -0
  57. package/assets/drawio/images/glyphicons_youtube.png +0 -0
  58. package/assets/drawio/images/google-drive-connector-atlas.png +0 -0
  59. package/assets/drawio/images/google-drive-connector-atlas.svg +121 -0
  60. package/assets/drawio/images/google-drive-logo-white.svg +9 -0
  61. package/assets/drawio/images/google-drive-logo.svg +17 -0
  62. package/assets/drawio/images/google-share.png +0 -0
  63. package/assets/drawio/images/icon-192-maskable.png +0 -0
  64. package/assets/drawio/images/icon-192.png +0 -0
  65. package/assets/drawio/images/icon-512-maskable.png +0 -0
  66. package/assets/drawio/images/icon-512.png +0 -0
  67. package/assets/drawio/images/icon-search.svg +21 -0
  68. package/assets/drawio/images/img-hi-res.png +0 -0
  69. package/assets/drawio/images/img-lo-res.png +0 -0
  70. package/assets/drawio/images/list.svg +16 -0
  71. package/assets/drawio/images/locked.png +0 -0
  72. package/assets/drawio/images/log.png +0 -0
  73. package/assets/drawio/images/logo-confluence.png +0 -0
  74. package/assets/drawio/images/logo-flat-small.png +0 -0
  75. package/assets/drawio/images/logo-flat.png +0 -0
  76. package/assets/drawio/images/logo-jira.png +0 -0
  77. package/assets/drawio/images/logo-small.gif +0 -0
  78. package/assets/drawio/images/logo-white.png +0 -0
  79. package/assets/drawio/images/logo.png +0 -0
  80. package/assets/drawio/images/manifest.json +25 -0
  81. package/assets/drawio/images/move.png +0 -0
  82. package/assets/drawio/images/notion-logo-white.svg +1 -0
  83. package/assets/drawio/images/notion-logo.svg +1 -0
  84. package/assets/drawio/images/onedrive-connector-atlas.png +0 -0
  85. package/assets/drawio/images/onedrive-connector-atlas.svg +248 -0
  86. package/assets/drawio/images/onedrive-logo-white.svg +29 -0
  87. package/assets/drawio/images/onedrive-logo.svg +29 -0
  88. package/assets/drawio/images/osa_database.png +0 -0
  89. package/assets/drawio/images/osa_drive-harddisk.png +0 -0
  90. package/assets/drawio/images/plant-uml-atlas.png +0 -0
  91. package/assets/drawio/images/samepage-icon-color.svg +37 -0
  92. package/assets/drawio/images/save.png +0 -0
  93. package/assets/drawio/images/sidebar-android.png +0 -0
  94. package/assets/drawio/images/sidebar-archimate.png +0 -0
  95. package/assets/drawio/images/sidebar-arrows.png +0 -0
  96. package/assets/drawio/images/sidebar-arrows2.png +0 -0
  97. package/assets/drawio/images/sidebar-basic.png +0 -0
  98. package/assets/drawio/images/sidebar-c4.png +0 -0
  99. package/assets/drawio/images/sidebar-cabinets.png +0 -0
  100. package/assets/drawio/images/sidebar-cumulus.png +0 -0
  101. package/assets/drawio/images/sidebar-dfd.png +0 -0
  102. package/assets/drawio/images/sidebar-dynamics365.png +0 -0
  103. package/assets/drawio/images/sidebar-eip.png +0 -0
  104. package/assets/drawio/images/sidebar-er.png +0 -0
  105. package/assets/drawio/images/sidebar-floorplans.png +0 -0
  106. package/assets/drawio/images/sidebar-flowchart.png +0 -0
  107. package/assets/drawio/images/sidebar-gcp3.png +0 -0
  108. package/assets/drawio/images/sidebar-general.png +0 -0
  109. package/assets/drawio/images/sidebar-kubernetes.png +0 -0
  110. package/assets/drawio/images/sidebar-leanmapping.png +0 -0
  111. package/assets/drawio/images/sidebar-mockups.png +0 -0
  112. package/assets/drawio/images/sidebar-network.png +0 -0
  113. package/assets/drawio/images/sidebar-network2.png +0 -0
  114. package/assets/drawio/images/sidebar-openstack.png +0 -0
  115. package/assets/drawio/images/sidebar-sitemap.png +0 -0
  116. package/assets/drawio/images/sidebar-threatmodeling.png +0 -0
  117. package/assets/drawio/images/sidebar-uml.png +0 -0
  118. package/assets/drawio/images/sketch-logo128.png +0 -0
  119. package/assets/drawio/images/spin.gif +0 -0
  120. package/assets/drawio/images/sprites.png +0 -0
  121. package/assets/drawio/images/stop-flat-icon-80.png +0 -0
  122. package/assets/drawio/images/submenu.gif +0 -0
  123. package/assets/drawio/images/touch-submenu.png +0 -0
  124. package/assets/drawio/images/transparent.gif +0 -0
  125. package/assets/drawio/images/trello-logo-white-orange.svg +6 -0
  126. package/assets/drawio/images/trello-logo-white.svg +6 -0
  127. package/assets/drawio/images/trello-logo.svg +1 -0
  128. package/assets/drawio/images/tweet.png +0 -0
  129. package/assets/drawio/images/update16.png +0 -0
  130. package/assets/drawio/images/update32.png +0 -0
  131. package/assets/drawio/images/update80.png +0 -0
  132. package/assets/drawio/images/youtube.png +0 -0
  133. package/assets/drawio/img/clipart/Battery_0_128x128.png +0 -0
  134. package/assets/drawio/img/clipart/Battery_100_128x128.png +0 -0
  135. package/assets/drawio/img/clipart/Battery_50_128x128.png +0 -0
  136. package/assets/drawio/img/clipart/Battery_75_128x128.png +0 -0
  137. package/assets/drawio/img/clipart/Battery_allstates_128x128.png +0 -0
  138. package/assets/drawio/img/clipart/Bluetooth_128x128.png +0 -0
  139. package/assets/drawio/img/clipart/Earth_globe_128x128.png +0 -0
  140. package/assets/drawio/img/clipart/Empty_Folder_128x128.png +0 -0
  141. package/assets/drawio/img/clipart/Full_Folder_128x128.png +0 -0
  142. package/assets/drawio/img/clipart/Gear_128x128.png +0 -0
  143. package/assets/drawio/img/clipart/Keys_128x128.png +0 -0
  144. package/assets/drawio/img/clipart/Lock_128x128.png +0 -0
  145. package/assets/drawio/img/clipart/Mouse_Pointer_128x128.png +0 -0
  146. package/assets/drawio/img/clipart/Plug_128x128.png +0 -0
  147. package/assets/drawio/img/clipart/Ships_Wheel_128x128.png +0 -0
  148. package/assets/drawio/img/clipart/Star_128x128.png +0 -0
  149. package/assets/drawio/img/clipart/Tire_128x128.png +0 -0
  150. package/assets/drawio/index.html +92 -0
  151. package/assets/drawio/js/PostConfig.js +7 -0
  152. package/assets/drawio/js/PreConfig.js +13 -0
  153. package/assets/drawio/js/app.min.js +18466 -0
  154. package/assets/drawio/js/bootstrap.js +428 -0
  155. package/assets/drawio/js/diagramly/LibavoidRouting.js +4459 -0
  156. package/assets/drawio/js/export-init.js +21 -0
  157. package/assets/drawio/js/extensions.min.js +10478 -0
  158. package/assets/drawio/js/libavoid-js/LICENSE +505 -0
  159. package/assets/drawio/js/libavoid-js/libavoid-routing.js +1633 -0
  160. package/assets/drawio/js/libavoid-js/libavoid.min.js +59 -0
  161. package/assets/drawio/js/main.js +22 -0
  162. package/assets/drawio/js/rough/rough.min.js +1 -0
  163. package/assets/drawio/js/shapes-14-6-5.min.js +3457 -0
  164. package/assets/drawio/js/stencils.min.js +447 -0
  165. package/assets/drawio/mxgraph/css/common.css +147 -0
  166. package/assets/drawio/resources/dia.txt +2901 -0
  167. package/assets/drawio/styles/dark-default.xml +109 -0
  168. package/assets/drawio/styles/default-old.xml +109 -0
  169. package/assets/drawio/styles/default.xml +203 -0
  170. package/assets/drawio/styles/fonts/ArchitectsDaughter-Regular.ttf +0 -0
  171. package/assets/drawio/styles/grapheditor.css +4501 -0
  172. package/assets/drawio/styles/high-contrast.css +128 -0
  173. package/assets/drawio/styles/thumb_horz.png +0 -0
  174. package/assets/drawio/styles/thumb_vertical.png +0 -0
  175. package/assets/fonts/ibm-plex-mono-LICENSE.txt +93 -0
  176. package/assets/fonts/ibm-plex-sans-LICENSE.txt +93 -0
  177. package/assets/fonts/kalam-400.woff2 +0 -0
  178. package/assets/fonts/kalam-700.woff2 +0 -0
  179. package/assets/fonts/kalam-LICENSE.txt +93 -0
  180. package/assets/fonts/plex-mono-400.woff2 +0 -0
  181. package/assets/fonts/plex-mono-600.woff2 +0 -0
  182. package/assets/fonts/plex-sans-400.woff2 +0 -0
  183. package/assets/fonts/plex-sans-600.woff2 +0 -0
  184. package/dist/api.js +181 -0
  185. package/dist/cli.js +262 -0
  186. package/dist/drawio/icons.js +121 -0
  187. package/dist/drawio/merge.js +309 -0
  188. package/dist/drawio/read.js +180 -0
  189. package/dist/drawio/show.js +501 -0
  190. package/dist/drawio/theme.js +425 -0
  191. package/dist/drawio/write.js +300 -0
  192. package/dist/edit/server.js +212 -0
  193. package/dist/git.js +46 -0
  194. package/dist/import/mermaid.js +569 -0
  195. package/dist/layout/layout.js +212 -0
  196. package/dist/layout/sequence.js +333 -0
  197. package/dist/layout/text.js +73 -0
  198. package/dist/lint/check.js +184 -0
  199. package/dist/lint/fixlabels.js +128 -0
  200. package/dist/mcp/server.js +239 -0
  201. package/dist/publish.js +121 -0
  202. package/dist/render/browser.js +210 -0
  203. package/dist/render/fonts.js +66 -0
  204. package/dist/report.js +36 -0
  205. package/dist/spec/model.js +53 -0
  206. package/dist/spec/parse.js +497 -0
  207. package/package.json +71 -4
  208. package/skills/linework/SKILL.md +214 -0
  209. package/skills/linework/examples/billing-er.drawio.svg +4 -0
  210. package/skills/linework/examples/billing-er.yaml +31 -0
  211. package/skills/linework/examples/checkout.drawio.svg +4 -0
  212. package/skills/linework/examples/checkout.yaml +28 -0
  213. package/skills/linework/examples/pay-sequence.drawio.svg +4 -0
  214. package/skills/linework/examples/pay-sequence.yaml +28 -0
  215. package/skills/linework/examples/payment-state.drawio.svg +4 -0
  216. package/skills/linework/examples/payment-state.yaml +22 -0
  217. package/skills/linework/examples/refund-flow.drawio.svg +4 -0
  218. package/skills/linework/examples/refund-flow.yaml +29 -0
  219. package/skills/linework/examples/serverless-aws.drawio.svg +4 -0
  220. package/skills/linework/examples/serverless-aws.yaml +23 -0
  221. package/skills/linework/references/google-docs.md +46 -0
  222. package/skills/linework/references/spec.md +312 -0
  223. package/skills/linework/references/style-guide.md +53 -0
@@ -0,0 +1,28 @@
1
+ type: architecture
2
+ title: Checkout
3
+
4
+ groups:
5
+ vpc: { label: Production VPC }
6
+ data: { label: Data tier, in: vpc }
7
+ nodes:
8
+ user: { label: Shopper, kind: person }
9
+ web: { label: Web app, kind: client, tech: Next.js }
10
+ gw: { label: API gateway, kind: service, tech: Envoy, in: vpc }
11
+ api: { label: Checkout API, kind: service, tech: Go, in: vpc }
12
+ worker: { label: Fulfillment worker, kind: service, tech: Go, in: vpc }
13
+ queue: { label: order-events, kind: queue, tech: Kafka, in: vpc }
14
+ db: { label: Orders, kind: database, tech: Postgres, in: data }
15
+ cache: { label: Session cache, kind: cache, tech: Redis, in: data }
16
+ stripe: { label: Stripe, kind: external, tech: Payments API }
17
+ email: { label: SendGrid, kind: external, tech: Email }
18
+ edges:
19
+ - user -> web: browses
20
+ - web -> gw: HTTPS
21
+ - gw -> api: gRPC
22
+ - api -> cache: read session
23
+ - api -> db: SQL
24
+ - api -> stripe: charge
25
+ - api -.-> queue: OrderPlaced
26
+ - queue -.-> worker: consume
27
+ - worker -> db: update status
28
+ - worker -> email: receipt
@@ -0,0 +1,4 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!-- Do not edit this file with editors other than draw.io -->
3
+ <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
4
+ <svg xmlns="http://www.w3.org/2000/svg" style="background: #FFFFFF; background-color: light-dark(#FFFFFF, #121212);" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="867px" height="794px" viewBox="0 0 867 794" content="&lt;mxfile host=&quot;aiviz&quot; agent=&quot;aiviz&quot;&gt;&lt;diagram id=&quot;aiviz&quot; name=&quot;Card payment&quot;&gt;&lt;mxGraphModel grid=&quot;1&quot; gridSize=&quot;8&quot; guides=&quot;1&quot; tooltips=&quot;1&quot; connect=&quot;1&quot; arrows=&quot;1&quot; page=&quot;0&quot; background=&quot;#FFFFFF&quot; math=&quot;0&quot; shadow=&quot;0&quot;&gt;&lt;root&gt;&lt;object id=&quot;0&quot; label=&quot;&quot; aiviz_version=&quot;1&quot; aiviz_type=&quot;sequence&quot; aiviz_direction=&quot;auto&quot; aiviz_title=&quot;Card payment&quot;&gt;&lt;mxCell/&gt;&lt;/object&gt;&lt;mxCell id=&quot;1&quot; parent=&quot;0&quot;/&gt;&lt;object id=&quot;web&quot; label=&quot;&amp;lt;span style=&amp;quot;font-weight:600&amp;quot;&amp;gt;Web app&amp;lt;/span&amp;gt;&quot; aiviz_kind=&quot;client&quot; aiviz_label=&quot;Web app&quot; aiviz_auto=&quot;200,24,128,760&quot;&gt;&lt;mxCell style=&quot;shape=umlLifeline;perimeter=lifelinePerimeter;container=1;collapsible=0;recursiveResize=0;outlineConnect=0;size=48;html=1;whiteSpace=wrap;rounded=1;absoluteArcSize=1;arcSize=16;fillColor=#F0F9FF;strokeColor=#0284C7;strokeWidth=1.5;fontFamily=-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif;fontSize=13;fontColor=#0F172A;&quot; vertex=&quot;1&quot; parent=&quot;1&quot;&gt;&lt;mxGeometry x=&quot;200&quot; y=&quot;24&quot; width=&quot;128&quot; height=&quot;760&quot; as=&quot;geometry&quot;/&gt;&lt;/mxCell&gt;&lt;/object&gt;&lt;object id=&quot;api&quot; label=&quot;&amp;lt;span style=&amp;quot;font-weight:600&amp;quot;&amp;gt;Checkout API&amp;lt;/span&amp;gt;&quot; aiviz_kind=&quot;service&quot; aiviz_label=&quot;Checkout API&quot; aiviz_auto=&quot;360,24,128,760&quot;&gt;&lt;mxCell style=&quot;shape=umlLifeline;perimeter=lifelinePerimeter;container=1;collapsible=0;recursiveResize=0;outlineConnect=0;size=48;html=1;whiteSpace=wrap;rounded=1;absoluteArcSize=1;arcSize=16;fillColor=#EEF2FF;strokeColor=#4F46E5;strokeWidth=1.5;fontFamily=-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif;fontSize=13;fontColor=#0F172A;&quot; vertex=&quot;1&quot; parent=&quot;1&quot;&gt;&lt;mxGeometry x=&quot;360&quot; y=&quot;24&quot; width=&quot;128&quot; height=&quot;760&quot; as=&quot;geometry&quot;/&gt;&lt;/mxCell&gt;&lt;/object&gt;&lt;object id=&quot;stripe&quot; label=&quot;&amp;lt;span style=&amp;quot;font-weight:600&amp;quot;&amp;gt;Stripe&amp;lt;/span&amp;gt;&quot; aiviz_kind=&quot;external&quot; aiviz_label=&quot;Stripe&quot; aiviz_auto=&quot;568,24,128,760&quot;&gt;&lt;mxCell style=&quot;shape=umlLifeline;perimeter=lifelinePerimeter;container=1;collapsible=0;recursiveResize=0;outlineConnect=0;size=48;html=1;whiteSpace=wrap;rounded=1;absoluteArcSize=1;arcSize=16;fillColor=#F8FAFC;strokeColor=#94A3B8;strokeWidth=1.5;dashed=1;dashPattern=6 4;fontFamily=-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif;fontSize=13;fontColor=#0F172A;&quot; vertex=&quot;1&quot; parent=&quot;1&quot;&gt;&lt;mxGeometry x=&quot;568&quot; y=&quot;24&quot; width=&quot;128&quot; height=&quot;760&quot; as=&quot;geometry&quot;/&gt;&lt;/mxCell&gt;&lt;/object&gt;&lt;object id=&quot;db&quot; label=&quot;&amp;lt;span style=&amp;quot;font-weight:600&amp;quot;&amp;gt;Orders DB&amp;lt;/span&amp;gt;&quot; aiviz_kind=&quot;database&quot; aiviz_label=&quot;Orders DB&quot; aiviz_auto=&quot;728,24,128,760&quot;&gt;&lt;mxCell style=&quot;shape=umlLifeline;perimeter=lifelinePerimeter;container=1;collapsible=0;recursiveResize=0;outlineConnect=0;size=48;html=1;whiteSpace=wrap;rounded=1;absoluteArcSize=1;arcSize=16;fillColor=#ECFDF5;strokeColor=#059669;strokeWidth=1.5;fontFamily=-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif;fontSize=13;fontColor=#0F172A;&quot; vertex=&quot;1&quot; parent=&quot;1&quot;&gt;&lt;mxGeometry x=&quot;728&quot; y=&quot;24&quot; width=&quot;128&quot; height=&quot;760&quot; as=&quot;geometry&quot;/&gt;&lt;/mxCell&gt;&lt;/object&gt;&lt;object id=&quot;user&quot; label=&quot;&amp;lt;span style=&amp;quot;font-weight:600&amp;quot;&amp;gt;Shopper&amp;lt;/span&amp;gt;&quot; aiviz_kind=&quot;person&quot; aiviz_label=&quot;Shopper&quot; aiviz_auto=&quot;40,24,128,760&quot;&gt;&lt;mxCell style=&quot;shape=umlLifeline;perimeter=lifelinePerimeter;container=1;collapsible=0;recursiveResize=0;outlineConnect=0;size=48;html=1;whiteSpace=wrap;rounded=1;absoluteArcSize=1;arcSize=16;fillColor=#FDF4FF;strokeColor=#C026D3;strokeWidth=1.5;fontFamily=-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif;fontSize=13;fontColor=#0F172A;&quot; vertex=&quot;1&quot; parent=&quot;1&quot;&gt;&lt;mxGeometry x=&quot;40&quot; y=&quot;24&quot; width=&quot;128&quot; height=&quot;760&quot; as=&quot;geometry&quot;/&gt;&lt;/mxCell&gt;&lt;/object&gt;&lt;object id=&quot;bar_db_1&quot; label=&quot;&quot; aiviz_type=&quot;bar&quot;&gt;&lt;mxCell style=&quot;html=1;points=[];perimeter=orthogonalPerimeter;outlineConnect=0;targetShapes=umlLifeline;portConstraint=eastwest;fillColor=#ECFDF5;strokeColor=#059669;strokeWidth=1.5;&quot; vertex=&quot;1&quot; parent=&quot;db&quot;&gt;&lt;mxGeometry x=&quot;59&quot; y=&quot;150&quot; width=&quot;10&quot; height=&quot;52&quot; as=&quot;geometry&quot;/&gt;&lt;/mxCell&gt;&lt;/object&gt;&lt;object id=&quot;bar_stripe_2&quot; label=&quot;&quot; aiviz_type=&quot;bar&quot;&gt;&lt;mxCell style=&quot;html=1;points=[];perimeter=orthogonalPerimeter;outlineConnect=0;targetShapes=umlLifeline;portConstraint=eastwest;fillColor=#F8FAFC;strokeColor=#94A3B8;strokeWidth=1.5;&quot; vertex=&quot;1&quot; parent=&quot;stripe&quot;&gt;&lt;mxGeometry x=&quot;59&quot; y=&quot;230&quot; width=&quot;10&quot; height=&quot;52&quot; as=&quot;geometry&quot;/&gt;&lt;/mxCell&gt;&lt;/object&gt;&lt;object id=&quot;bar_api_3&quot; label=&quot;&quot; aiviz_type=&quot;bar&quot;&gt;&lt;mxCell style=&quot;html=1;points=[];perimeter=orthogonalPerimeter;outlineConnect=0;targetShapes=umlLifeline;portConstraint=eastwest;fillColor=#EEF2FF;strokeColor=#4F46E5;strokeWidth=1.5;&quot; vertex=&quot;1&quot; parent=&quot;api&quot;&gt;&lt;mxGeometry x=&quot;59&quot; y=&quot;110&quot; width=&quot;10&quot; height=&quot;212&quot; as=&quot;geometry&quot;/&gt;&lt;/mxCell&gt;&lt;/object&gt;&lt;object id=&quot;bar_stripe_4&quot; label=&quot;&quot; aiviz_type=&quot;bar&quot;&gt;&lt;mxCell style=&quot;html=1;points=[];perimeter=orthogonalPerimeter;outlineConnect=0;targetShapes=umlLifeline;portConstraint=eastwest;fillColor=#F8FAFC;strokeColor=#94A3B8;strokeWidth=1.5;&quot; vertex=&quot;1&quot; parent=&quot;stripe&quot;&gt;&lt;mxGeometry x=&quot;59&quot; y=&quot;350&quot; width=&quot;10&quot; height=&quot;244&quot; as=&quot;geometry&quot;/&gt;&lt;/mxCell&gt;&lt;/object&gt;&lt;object id=&quot;bar_web_5&quot; label=&quot;&quot; aiviz_type=&quot;bar&quot;&gt;&lt;mxCell style=&quot;html=1;points=[];perimeter=orthogonalPerimeter;outlineConnect=0;targetShapes=umlLifeline;portConstraint=eastwest;fillColor=#F0F9FF;strokeColor=#0284C7;strokeWidth=1.5;&quot; vertex=&quot;1&quot; parent=&quot;web&quot;&gt;&lt;mxGeometry x=&quot;59&quot; y=&quot;70&quot; width=&quot;10&quot; height=&quot;640&quot; as=&quot;geometry&quot;/&gt;&lt;/mxCell&gt;&lt;/object&gt;&lt;object id=&quot;frame_1&quot; label=&quot;alt&quot; aiviz_type=&quot;frame&quot; aiviz_frame=&quot;alt&quot;&gt;&lt;mxCell style=&quot;shape=umlFrame;whiteSpace=wrap;html=1;width=56;height=22;boundedLbl=1;verticalAlign=middle;align=center;fillColor=none;strokeColor=#64748B;strokeWidth=1;swimlaneFillColor=none;fontFamily=-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif;fontSize=11;fontColor=#64748B;fontStyle=1;&quot; vertex=&quot;1&quot; parent=&quot;1&quot;&gt;&lt;mxGeometry x=&quot;184&quot; y=&quot;416&quot; width=&quot;688&quot; height=&quot;292&quot; as=&quot;geometry&quot;/&gt;&lt;/mxCell&gt;&lt;/object&gt;&lt;object id=&quot;frame_1_g0&quot; label=&quot;[succeeded]&quot; aiviz_type=&quot;guard&quot; aiviz_guard=&quot;frame_1:0&quot;&gt;&lt;mxCell style=&quot;text;html=1;align=left;verticalAlign=middle;labelBackgroundColor=#FFFFFF;fontFamily=-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif;fontSize=11;fontColor=#64748B;&quot; vertex=&quot;1&quot; parent=&quot;1&quot;&gt;&lt;mxGeometry x=&quot;248&quot; y=&quot;416&quot; width=&quot;87&quot; height=&quot;22&quot; as=&quot;geometry&quot;/&gt;&lt;/mxCell&gt;&lt;/object&gt;&lt;object id=&quot;frame_1_g1&quot; label=&quot;[declined]&quot; aiviz_type=&quot;guard&quot; aiviz_guard=&quot;frame_1:1&quot;&gt;&lt;mxCell style=&quot;text;html=1;align=left;verticalAlign=middle;labelBackgroundColor=#FFFFFF;fontFamily=-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif;fontSize=11;fontColor=#64748B;&quot; vertex=&quot;1&quot; parent=&quot;1&quot;&gt;&lt;mxGeometry x=&quot;248&quot; y=&quot;584&quot; width=&quot;80&quot; height=&quot;22&quot; as=&quot;geometry&quot;/&gt;&lt;/mxCell&gt;&lt;/object&gt;&lt;object id=&quot;note_11&quot; label=&quot;idempotent on event id&quot; aiviz_type=&quot;note&quot; aiviz_note=&quot;over&quot; aiviz_over=&quot;api,db&quot;&gt;&lt;mxCell style=&quot;shape=note;size=12;whiteSpace=wrap;html=1;fillColor=#FEFCE8;strokeColor=#E5D27A;strokeWidth=1;fontFamily=-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif;fontSize=11;fontColor=#0F172A;align=left;spacingLeft=8;spacingRight=8;&quot; vertex=&quot;1&quot; parent=&quot;1&quot;&gt;&lt;mxGeometry x=&quot;400&quot; y=&quot;530&quot; width=&quot;416&quot; height=&quot;28&quot; as=&quot;geometry&quot;/&gt;&lt;/mxCell&gt;&lt;/object&gt;&lt;object id=&quot;frame_1_s1&quot; label=&quot;&quot; aiviz_type=&quot;sep&quot; aiviz_sep=&quot;frame_1:1&quot;&gt;&lt;mxCell style=&quot;endArrow=none;dashed=1;dashPattern=4 4;html=1;strokeColor=#64748B;&quot; edge=&quot;1&quot; parent=&quot;1&quot;&gt;&lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot;&gt;&lt;mxPoint x=&quot;184&quot; y=&quot;582&quot; as=&quot;sourcePoint&quot;/&gt;&lt;mxPoint x=&quot;872&quot; y=&quot;582&quot; as=&quot;targetPoint&quot;/&gt;&lt;/mxGeometry&gt;&lt;/mxCell&gt;&lt;/object&gt;&lt;object id=&quot;m_0&quot; label=&quot;Click &amp;quot;Pay&amp;quot;&quot; aiviz_msg=&quot;sync&quot;&gt;&lt;mxCell style=&quot;html=1;verticalAlign=bottom;endArrow=blockThin;endFill=1;endSize=7;strokeWidth=1.5;strokeColor=#64748B;fontFamily=-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif;fontSize=11;fontColor=#475569;labelBackgroundColor=#FFFFFF;exitX=0.5;exitY=0.1000;exitDx=0;exitDy=0;entryX=0;entryY=0.0094;entryDx=0;entryDy=0;&quot; edge=&quot;1&quot; parent=&quot;1&quot; source=&quot;user&quot; target=&quot;bar_web_5&quot;&gt;&lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot;/&gt;&lt;/mxCell&gt;&lt;/object&gt;&lt;object id=&quot;m_1&quot; label=&quot;POST /checkout&quot; aiviz_msg=&quot;sync&quot;&gt;&lt;mxCell style=&quot;html=1;verticalAlign=bottom;endArrow=blockThin;endFill=1;endSize=7;strokeWidth=1.5;strokeColor=#64748B;fontFamily=-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif;fontSize=11;fontColor=#475569;labelBackgroundColor=#FFFFFF;exitX=1;exitY=0.0719;exitDx=0;exitDy=0;entryX=0;entryY=0.0283;entryDx=0;entryDy=0;&quot; edge=&quot;1&quot; parent=&quot;1&quot; source=&quot;bar_web_5&quot; target=&quot;bar_api_3&quot;&gt;&lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot;/&gt;&lt;/mxCell&gt;&lt;/object&gt;&lt;object id=&quot;m_2&quot; label=&quot;insert order (pending)&quot; aiviz_msg=&quot;sync&quot;&gt;&lt;mxCell style=&quot;html=1;verticalAlign=bottom;endArrow=blockThin;endFill=1;endSize=7;strokeWidth=1.5;strokeColor=#64748B;fontFamily=-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif;fontSize=11;fontColor=#475569;labelBackgroundColor=#FFFFFF;exitX=1;exitY=0.2170;exitDx=0;exitDy=0;entryX=0;entryY=0.1154;entryDx=0;entryDy=0;&quot; edge=&quot;1&quot; parent=&quot;1&quot; source=&quot;bar_api_3&quot; target=&quot;bar_db_1&quot;&gt;&lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot;/&gt;&lt;/mxCell&gt;&lt;/object&gt;&lt;object id=&quot;m_3&quot; label=&quot;order id&quot; aiviz_msg=&quot;reply&quot;&gt;&lt;mxCell style=&quot;html=1;verticalAlign=bottom;endArrow=open;endFill=0;endSize=7;strokeWidth=1.5;strokeColor=#64748B;dashed=1;dashPattern=6 4;fontFamily=-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif;fontSize=11;fontColor=#475569;labelBackgroundColor=#FFFFFF;exitX=0;exitY=0.8846;exitDx=0;exitDy=0;entryX=1;entryY=0.4057;entryDx=0;entryDy=0;&quot; edge=&quot;1&quot; parent=&quot;1&quot; source=&quot;bar_db_1&quot; target=&quot;bar_api_3&quot;&gt;&lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot;/&gt;&lt;/mxCell&gt;&lt;/object&gt;&lt;object id=&quot;m_4&quot; label=&quot;create PaymentIntent&quot; aiviz_msg=&quot;sync&quot;&gt;&lt;mxCell style=&quot;html=1;verticalAlign=bottom;endArrow=blockThin;endFill=1;endSize=7;strokeWidth=1.5;strokeColor=#64748B;fontFamily=-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif;fontSize=11;fontColor=#475569;labelBackgroundColor=#FFFFFF;exitX=1;exitY=0.5943;exitDx=0;exitDy=0;entryX=0;entryY=0.1154;entryDx=0;entryDy=0;&quot; edge=&quot;1&quot; parent=&quot;1&quot; source=&quot;bar_api_3&quot; target=&quot;bar_stripe_2&quot;&gt;&lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot;/&gt;&lt;/mxCell&gt;&lt;/object&gt;&lt;object id=&quot;m_5&quot; label=&quot;client_secret&quot; aiviz_msg=&quot;reply&quot;&gt;&lt;mxCell style=&quot;html=1;verticalAlign=bottom;endArrow=open;endFill=0;endSize=7;strokeWidth=1.5;strokeColor=#64748B;dashed=1;dashPattern=6 4;fontFamily=-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif;fontSize=11;fontColor=#475569;labelBackgroundColor=#FFFFFF;exitX=0;exitY=0.8846;exitDx=0;exitDy=0;entryX=1;entryY=0.7830;entryDx=0;entryDy=0;&quot; edge=&quot;1&quot; parent=&quot;1&quot; source=&quot;bar_stripe_2&quot; target=&quot;bar_api_3&quot;&gt;&lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot;/&gt;&lt;/mxCell&gt;&lt;/object&gt;&lt;object id=&quot;m_6&quot; label=&quot;client_secret&quot; aiviz_msg=&quot;reply&quot;&gt;&lt;mxCell style=&quot;html=1;verticalAlign=bottom;endArrow=open;endFill=0;endSize=7;strokeWidth=1.5;strokeColor=#64748B;dashed=1;dashPattern=6 4;fontFamily=-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif;fontSize=11;fontColor=#475569;labelBackgroundColor=#FFFFFF;exitX=0;exitY=0.9717;exitDx=0;exitDy=0;entryX=1;entryY=0.3844;entryDx=0;entryDy=0;&quot; edge=&quot;1&quot; parent=&quot;1&quot; source=&quot;bar_api_3&quot; target=&quot;bar_web_5&quot;&gt;&lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot;/&gt;&lt;/mxCell&gt;&lt;/object&gt;&lt;object id=&quot;m_7&quot; label=&quot;confirmCardPayment&quot; aiviz_msg=&quot;sync&quot;&gt;&lt;mxCell style=&quot;html=1;verticalAlign=bottom;endArrow=blockThin;endFill=1;endSize=7;strokeWidth=1.5;strokeColor=#64748B;fontFamily=-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif;fontSize=11;fontColor=#475569;labelBackgroundColor=#FFFFFF;exitX=1;exitY=0.4469;exitDx=0;exitDy=0;entryX=0;entryY=0.0246;entryDx=0;entryDy=0;&quot; edge=&quot;1&quot; parent=&quot;1&quot; source=&quot;bar_web_5&quot; target=&quot;bar_stripe_4&quot;&gt;&lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot;/&gt;&lt;/mxCell&gt;&lt;/object&gt;&lt;object id=&quot;m_9&quot; label=&quot;webhook payment_succeeded&quot; aiviz_msg=&quot;async&quot;&gt;&lt;mxCell style=&quot;html=1;verticalAlign=bottom;endArrow=open;endFill=0;endSize=7;strokeWidth=1.5;strokeColor=#64748B;fontFamily=-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif;fontSize=11;fontColor=#475569;labelBackgroundColor=#FFFFFF;exitX=0;exitY=0.3279;exitDx=0;exitDy=0;entryX=0.5;entryY=0.5658;entryDx=0;entryDy=0;&quot; edge=&quot;1&quot; parent=&quot;1&quot; source=&quot;bar_stripe_4&quot; target=&quot;api&quot;&gt;&lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot;/&gt;&lt;/mxCell&gt;&lt;/object&gt;&lt;object id=&quot;m_10&quot; label=&quot;mark paid&quot; aiviz_msg=&quot;sync&quot;&gt;&lt;mxCell style=&quot;html=1;verticalAlign=bottom;endArrow=blockThin;endFill=1;endSize=7;strokeWidth=1.5;strokeColor=#64748B;fontFamily=-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif;fontSize=11;fontColor=#475569;labelBackgroundColor=#FFFFFF;exitX=0.5;exitY=0.6184;exitDx=0;exitDy=0;entryX=0.5;entryY=0.6184;entryDx=0;entryDy=0;&quot; edge=&quot;1&quot; parent=&quot;1&quot; source=&quot;api&quot; target=&quot;db&quot;&gt;&lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot;/&gt;&lt;/mxCell&gt;&lt;/object&gt;&lt;object id=&quot;m_13&quot; label=&quot;card_declined&quot; aiviz_msg=&quot;reply&quot;&gt;&lt;mxCell style=&quot;html=1;verticalAlign=bottom;endArrow=open;endFill=0;endSize=7;strokeWidth=1.5;strokeColor=#64748B;dashed=1;dashPattern=6 4;fontFamily=-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif;fontSize=11;fontColor=#475569;labelBackgroundColor=#FFFFFF;exitX=0;exitY=0.9754;exitDx=0;exitDy=0;entryX=1;entryY=0.8094;entryDx=0;entryDy=0;&quot; edge=&quot;1&quot; parent=&quot;1&quot; source=&quot;bar_stripe_4&quot; target=&quot;bar_web_5&quot;&gt;&lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot;/&gt;&lt;/mxCell&gt;&lt;/object&gt;&lt;object id=&quot;m_14&quot; label=&quot;show error&quot; aiviz_msg=&quot;sync&quot;&gt;&lt;mxCell style=&quot;html=1;verticalAlign=bottom;endArrow=blockThin;endFill=1;endSize=7;strokeWidth=1.5;strokeColor=#64748B;edgeStyle=orthogonalEdgeStyle;rounded=1;align=left;spacingLeft=6;verticalAlign=middle;fontFamily=-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif;fontSize=11;fontColor=#475569;labelBackgroundColor=#FFFFFF;exitX=0.5;exitY=0.8263;entryX=0.5;entryY=0.8526;exitDx=0;exitDy=0;entryDx=0;entryDy=0;&quot; edge=&quot;1&quot; parent=&quot;1&quot; source=&quot;web&quot; target=&quot;web&quot;&gt;&lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot;&gt;&lt;Array as=&quot;points&quot;&gt;&lt;mxPoint x=&quot;304&quot; y=&quot;652&quot;/&gt;&lt;mxPoint x=&quot;304&quot; y=&quot;672&quot;/&gt;&lt;/Array&gt;&lt;/mxGeometry&gt;&lt;/mxCell&gt;&lt;/object&gt;&lt;object id=&quot;m_16&quot; label=&quot;result page&quot; aiviz_msg=&quot;reply&quot;&gt;&lt;mxCell style=&quot;html=1;verticalAlign=bottom;endArrow=open;endFill=0;endSize=7;strokeWidth=1.5;strokeColor=#64748B;dashed=1;dashPattern=6 4;fontFamily=-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif;fontSize=11;fontColor=#475569;labelBackgroundColor=#FFFFFF;exitX=0;exitY=0.9906;exitDx=0;exitDy=0;entryX=0.5;entryY=0.9263;entryDx=0;entryDy=0;&quot; edge=&quot;1&quot; parent=&quot;1&quot; source=&quot;bar_web_5&quot; target=&quot;user&quot;&gt;&lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot;/&gt;&lt;/mxCell&gt;&lt;/object&gt;&lt;/root&gt;&lt;/mxGraphModel&gt;&lt;/diagram&gt;&lt;/mxfile&gt;"><defs/><rect fill="#FFFFFF" width="100%" height="100%" x="0" y="0" style="fill: light-dark(rgb(255, 255, 255), rgb(18, 18, 18));"/><g><g data-cell-id="0"><g data-cell-id="1"><g data-cell-id="web"><g><rect x="176" y="16" width="128" height="48" rx="8" ry="8" fill="#f0f9ff" stroke="#0284c7" stroke-width="1.5" pointer-events="all" style="fill: light-dark(rgb(240, 249, 255), rgb(18, 26, 31)); stroke: light-dark(rgb(2, 132, 199), rgb(52, 163, 221));"/><path d="M 240 64 L 240 776" fill="none" stroke="#0284c7" stroke-width="1.5" stroke-miterlimit="10" stroke-dasharray="4.5 4.5" pointer-events="all" style="stroke: light-dark(rgb(2, 132, 199), rgb(52, 163, 221));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 126px; height: 1px; padding-top: 40px; margin-left: 177px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #0F172A; "><div style="display: inline-block; font-size: 13px; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; color: light-dark(#0F172A, #d3daea); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><span style="font-weight:600">Web app</span></div></div></div></foreignObject><text x="240" y="44" fill="#0F172A" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif" font-size="13px" text-anchor="middle" style="fill: light-dark(rgb(15, 23, 42), rgb(211, 218, 234));">Web app</text></switch></g></g><g data-cell-id="bar_web_5"><g><rect x="235" y="86" width="10" height="640" fill="#f0f9ff" stroke="#0284c7" stroke-width="1.5" pointer-events="all" style="fill: light-dark(rgb(240, 249, 255), rgb(18, 26, 31)); stroke: light-dark(rgb(2, 132, 199), rgb(52, 163, 221));"/></g></g></g><g data-cell-id="api"><g><rect x="336" y="16" width="128" height="48" rx="8" ry="8" fill="#eef2ff" stroke="#4f46e5" stroke-width="1.5" pointer-events="all" style="fill: light-dark(rgb(238, 242, 255), rgb(26, 29, 40)); stroke: light-dark(rgb(79, 70, 229), rgb(162, 154, 255));"/><path d="M 400 64 L 400 776" fill="none" stroke="#4f46e5" stroke-width="1.5" stroke-miterlimit="10" stroke-dasharray="4.5 4.5" pointer-events="all" style="stroke: light-dark(rgb(79, 70, 229), rgb(162, 154, 255));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 126px; height: 1px; padding-top: 40px; margin-left: 337px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #0F172A; "><div style="display: inline-block; font-size: 13px; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; color: light-dark(#0F172A, #d3daea); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><span style="font-weight:600">Checkout API</span></div></div></div></foreignObject><text x="400" y="44" fill="#0F172A" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif" font-size="13px" text-anchor="middle" style="fill: light-dark(rgb(15, 23, 42), rgb(211, 218, 234));">Checkout API</text></switch></g></g><g data-cell-id="bar_api_3"><g><rect x="395" y="126" width="10" height="212" fill="#eef2ff" stroke="#4f46e5" stroke-width="1.5" pointer-events="all" style="fill: light-dark(rgb(238, 242, 255), rgb(26, 29, 40)); stroke: light-dark(rgb(79, 70, 229), rgb(162, 154, 255));"/></g></g></g><g data-cell-id="stripe"><g><rect x="544" y="16" width="128" height="48" rx="8" ry="8" fill="#f8fafc" stroke="#94a3b8" stroke-width="1.5" stroke-dasharray="9 6" pointer-events="all" style="fill: light-dark(rgb(248, 250, 252), rgb(21, 23, 25)); stroke: light-dark(rgb(148, 163, 184), rgb(87, 100, 118));"/><path d="M 608 64 L 608 776" fill="none" stroke="#94a3b8" stroke-width="1.5" stroke-miterlimit="10" stroke-dasharray="9 6" pointer-events="all" style="stroke: light-dark(rgb(148, 163, 184), rgb(87, 100, 118));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 126px; height: 1px; padding-top: 40px; margin-left: 545px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #0F172A; "><div style="display: inline-block; font-size: 13px; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; color: light-dark(#0F172A, #d3daea); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><span style="font-weight:600">Stripe</span></div></div></div></foreignObject><text x="608" y="44" fill="#0F172A" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif" font-size="13px" text-anchor="middle" style="fill: light-dark(rgb(15, 23, 42), rgb(211, 218, 234));">Stripe</text></switch></g></g><g data-cell-id="bar_stripe_2"><g><rect x="603" y="246" width="10" height="52" fill="#f8fafc" stroke="#94a3b8" stroke-width="1.5" pointer-events="all" style="fill: light-dark(rgb(248, 250, 252), rgb(21, 23, 25)); stroke: light-dark(rgb(148, 163, 184), rgb(87, 100, 118));"/></g></g><g data-cell-id="bar_stripe_4"><g><rect x="603" y="366" width="10" height="244" fill="#f8fafc" stroke="#94a3b8" stroke-width="1.5" pointer-events="all" style="fill: light-dark(rgb(248, 250, 252), rgb(21, 23, 25)); stroke: light-dark(rgb(148, 163, 184), rgb(87, 100, 118));"/></g></g></g><g data-cell-id="db"><g><rect x="704" y="16" width="128" height="48" rx="8" ry="8" fill="#ecfdf5" stroke="#059669" stroke-width="1.5" pointer-events="all" style="fill: light-dark(rgb(236, 253, 245), rgb(13, 27, 21)); stroke: light-dark(rgb(5, 150, 105), rgb(42, 167, 128));"/><path d="M 768 64 L 768 776" fill="none" stroke="#059669" stroke-width="1.5" stroke-miterlimit="10" stroke-dasharray="4.5 4.5" pointer-events="all" style="stroke: light-dark(rgb(5, 150, 105), rgb(42, 167, 128));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 126px; height: 1px; padding-top: 40px; margin-left: 705px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #0F172A; "><div style="display: inline-block; font-size: 13px; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; color: light-dark(#0F172A, #d3daea); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><span style="font-weight:600">Orders DB</span></div></div></div></foreignObject><text x="768" y="44" fill="#0F172A" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif" font-size="13px" text-anchor="middle" style="fill: light-dark(rgb(15, 23, 42), rgb(211, 218, 234));">Orders DB</text></switch></g></g><g data-cell-id="bar_db_1"><g><rect x="763" y="166" width="10" height="52" fill="#ecfdf5" stroke="#059669" stroke-width="1.5" pointer-events="all" style="fill: light-dark(rgb(236, 253, 245), rgb(13, 27, 21)); stroke: light-dark(rgb(5, 150, 105), rgb(42, 167, 128));"/></g></g></g><g data-cell-id="user"><g><rect x="16" y="16" width="128" height="48" rx="8" ry="8" fill="#fdf4ff" stroke="#c026d3" stroke-width="1.5" pointer-events="all" style="fill: light-dark(rgb(253, 244, 255), rgb(30, 23, 32)); stroke: light-dark(rgb(192, 38, 211), rgb(255, 127, 255));"/><path d="M 80 64 L 80 776" fill="none" stroke="#c026d3" stroke-width="1.5" stroke-miterlimit="10" stroke-dasharray="4.5 4.5" pointer-events="all" style="stroke: light-dark(rgb(192, 38, 211), rgb(255, 127, 255));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 126px; height: 1px; padding-top: 40px; margin-left: 17px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #0F172A; "><div style="display: inline-block; font-size: 13px; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; color: light-dark(#0F172A, #d3daea); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><span style="font-weight:600">Shopper</span></div></div></div></foreignObject><text x="80" y="44" fill="#0F172A" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif" font-size="13px" text-anchor="middle" style="fill: light-dark(rgb(15, 23, 42), rgb(211, 218, 234));">Shopper</text></switch></g></g></g><g data-cell-id="frame_1"><g transform="translate(0.5,0.5)"><path d="M 160 408 L 216 408 L 216 415 L 206 430 L 160 430 Z" fill="none" stroke="#64748b" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));"/><path d="M 216 408 L 848 408 L 848 700 L 160 700 L 160 430" fill="none" stroke="#64748b" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 54px; height: 1px; padding-top: 419px; margin-left: 161px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #64748B; "><div style="display: inline-block; font-size: 11px; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; color: light-dark(#64748B, #7e8c9f); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; word-wrap: normal; ">alt</div></div></div></foreignObject><text x="188" y="422" fill="#64748B" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif" font-size="11px" text-anchor="middle" font-weight="bold" style="fill: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));">alt</text></switch></g></g></g><g data-cell-id="frame_1_g0"><g><rect x="224" y="408" width="87" height="22" fill="none" stroke="none" pointer-events="all"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 1px; height: 1px; padding-top: 419px; margin-left: 226px;"><div style="box-sizing: border-box; font-size: 0; text-align: left; color: #64748B; background-color: #FFFFFF; "><div style="display: inline-block; font-size: 11px; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; color: light-dark(#64748B, #7e8c9f); line-height: 1.2; pointer-events: all; background-color: light-dark(#FFFFFF, #121212); white-space: nowrap; ">[succeeded]</div></div></div></foreignObject><text x="226" y="422" fill="#64748B" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif" font-size="11px" style="fill: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));">[succeeded]</text></switch></g></g></g><g data-cell-id="frame_1_g1"><g><rect x="224" y="576" width="80" height="22" fill="none" stroke="none" pointer-events="all"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 1px; height: 1px; padding-top: 587px; margin-left: 226px;"><div style="box-sizing: border-box; font-size: 0; text-align: left; color: #64748B; background-color: #FFFFFF; "><div style="display: inline-block; font-size: 11px; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; color: light-dark(#64748B, #7e8c9f); line-height: 1.2; pointer-events: all; background-color: light-dark(#FFFFFF, #121212); white-space: nowrap; ">[declined]</div></div></div></foreignObject><text x="226" y="590" fill="#64748B" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif" font-size="11px" style="fill: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));">[declined]</text></switch></g></g></g><g data-cell-id="note_11"><g transform="translate(0.5,0.5)"><path d="M 376 522 L 780 522 L 792 534 L 792 550 L 376 550 L 376 522 Z" fill="#fefce8" stroke="#e5d27a" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(254, 252, 232), rgb(23, 22, 4)); stroke: light-dark(rgb(229, 210, 122), rgb(78, 61, 0));"/><path d="M 780 522 L 780 534 L 792 534" fill="none" stroke="#e5d27a" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(229, 210, 122), rgb(78, 61, 0));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 398px; height: 1px; padding-top: 536px; margin-left: 386px;"><div style="box-sizing: border-box; font-size: 0; text-align: left; color: #0F172A; "><div style="display: inline-block; font-size: 11px; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; color: light-dark(#0F172A, #d3daea); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">idempotent on event id</div></div></div></foreignObject><text x="386" y="539" fill="#0F172A" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif" font-size="11px" style="fill: light-dark(rgb(15, 23, 42), rgb(211, 218, 234));">idempotent on event id</text></switch></g></g></g><g data-cell-id="frame_1_s1"><g transform="translate(0.5,0.5)"><path d="M 160 574 L 848 574" fill="none" stroke="#64748b" stroke-miterlimit="10" stroke-dasharray="4 4" pointer-events="stroke" style="stroke: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));"/></g></g><g data-cell-id="m_0"><g><path d="M 79.75 92 L 224.82 92.01" fill="none" stroke="#64748b" stroke-width="1.5" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));"/><path d="M 233.32 92.02 L 224.82 94.85 L 224.82 89.18 Z" fill="#64748b" stroke="#64748b" stroke-width="1.5" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(100, 116, 139), rgb(126, 140, 159)); stroke: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 89px; margin-left: 158px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #475569; background-color: #FFFFFF; "><div style="display: inline-block; font-size: 11px; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; color: light-dark(#475569, #9ba7b8); line-height: 1.2; pointer-events: all; background-color: light-dark(#FFFFFF, #121212); white-space: nowrap; ">Click "Pay"</div></div></div></foreignObject><text x="158" y="89" fill="#475569" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif" font-size="11px" text-anchor="middle" style="fill: light-dark(rgb(71, 85, 105), rgb(155, 167, 184));">Click "Pay"</text></switch></g></g></g><g data-cell-id="m_1"><g><path d="M 245 132.02 L 384.82 132" fill="none" stroke="#64748b" stroke-width="1.5" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));"/><path d="M 393.32 132 L 384.82 134.83 L 384.82 129.17 Z" fill="#64748b" stroke="#64748b" stroke-width="1.5" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(100, 116, 139), rgb(126, 140, 159)); stroke: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 129px; margin-left: 320px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #475569; background-color: #FFFFFF; "><div style="display: inline-block; font-size: 11px; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; color: light-dark(#475569, #9ba7b8); line-height: 1.2; pointer-events: all; background-color: light-dark(#FFFFFF, #121212); white-space: nowrap; ">POST /checkout</div></div></div></foreignObject><text x="320" y="129" fill="#475569" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif" font-size="11px" text-anchor="middle" style="fill: light-dark(rgb(71, 85, 105), rgb(155, 167, 184));">POST /checkout</text></switch></g></g></g><g data-cell-id="m_2"><g><path d="M 405 172 L 752.82 172" fill="none" stroke="#64748b" stroke-width="1.5" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));"/><path d="M 761.32 172 L 752.82 174.83 L 752.82 169.17 Z" fill="#64748b" stroke="#64748b" stroke-width="1.5" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(100, 116, 139), rgb(126, 140, 159)); stroke: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 169px; margin-left: 584px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #475569; background-color: #FFFFFF; "><div style="display: inline-block; font-size: 11px; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; color: light-dark(#475569, #9ba7b8); line-height: 1.2; pointer-events: all; background-color: light-dark(#FFFFFF, #121212); white-space: nowrap; ">insert order (pending)</div></div></div></foreignObject><text x="584" y="169" fill="#475569" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif" font-size="11px" text-anchor="middle" style="fill: light-dark(rgb(71, 85, 105), rgb(155, 167, 184));">insert order (pending)</text></switch></g></g></g><g data-cell-id="m_3"><g><path d="M 763 212 L 408.35 212.01" fill="none" stroke="#64748b" stroke-width="1.5" stroke-miterlimit="10" stroke-dasharray="9 6" pointer-events="stroke" style="stroke: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));"/><path d="M 415.18 207.76 L 406.68 212.01 L 415.18 216.26" fill="none" stroke="#64748b" stroke-width="1.5" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 209px; margin-left: 584px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #475569; background-color: #FFFFFF; "><div style="display: inline-block; font-size: 11px; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; color: light-dark(#475569, #9ba7b8); line-height: 1.2; pointer-events: all; background-color: light-dark(#FFFFFF, #121212); white-space: nowrap; ">order id</div></div></div></foreignObject><text x="584" y="209" fill="#475569" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif" font-size="11px" text-anchor="middle" style="fill: light-dark(rgb(71, 85, 105), rgb(155, 167, 184));">order id</text></switch></g></g></g><g data-cell-id="m_4"><g><path d="M 405 251.99 L 592.82 252" fill="none" stroke="#64748b" stroke-width="1.5" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));"/><path d="M 601.32 252 L 592.82 254.83 L 592.82 249.17 Z" fill="#64748b" stroke="#64748b" stroke-width="1.5" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(100, 116, 139), rgb(126, 140, 159)); stroke: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 249px; margin-left: 504px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #475569; background-color: #FFFFFF; "><div style="display: inline-block; font-size: 11px; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; color: light-dark(#475569, #9ba7b8); line-height: 1.2; pointer-events: all; background-color: light-dark(#FFFFFF, #121212); white-space: nowrap; ">create PaymentIntent</div></div></div></foreignObject><text x="504" y="249" fill="#475569" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif" font-size="11px" text-anchor="middle" style="fill: light-dark(rgb(71, 85, 105), rgb(155, 167, 184));">create PaymentIntent</text></switch></g></g></g><g data-cell-id="m_5"><g><path d="M 603 292 L 408.35 292" fill="none" stroke="#64748b" stroke-width="1.5" stroke-miterlimit="10" stroke-dasharray="9 6" pointer-events="stroke" style="stroke: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));"/><path d="M 415.18 287.75 L 406.68 292 L 415.18 296.25" fill="none" stroke="#64748b" stroke-width="1.5" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 289px; margin-left: 504px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #475569; background-color: #FFFFFF; "><div style="display: inline-block; font-size: 11px; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; color: light-dark(#475569, #9ba7b8); line-height: 1.2; pointer-events: all; background-color: light-dark(#FFFFFF, #121212); white-space: nowrap; ">client_secret</div></div></div></foreignObject><text x="504" y="289" fill="#475569" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif" font-size="11px" text-anchor="middle" style="fill: light-dark(rgb(71, 85, 105), rgb(155, 167, 184));">client_secret</text></switch></g></g></g><g data-cell-id="m_6"><g><path d="M 395 332 L 248.35 332.02" fill="none" stroke="#64748b" stroke-width="1.5" stroke-miterlimit="10" stroke-dasharray="9 6" pointer-events="stroke" style="stroke: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));"/><path d="M 255.18 327.76 L 246.68 332.02 L 255.18 336.26" fill="none" stroke="#64748b" stroke-width="1.5" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 329px; margin-left: 320px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #475569; background-color: #FFFFFF; "><div style="display: inline-block; font-size: 11px; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; color: light-dark(#475569, #9ba7b8); line-height: 1.2; pointer-events: all; background-color: light-dark(#FFFFFF, #121212); white-space: nowrap; ">client_secret</div></div></div></foreignObject><text x="320" y="329" fill="#475569" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif" font-size="11px" text-anchor="middle" style="fill: light-dark(rgb(71, 85, 105), rgb(155, 167, 184));">client_secret</text></switch></g></g></g><g data-cell-id="m_7"><g><path d="M 245 372.02 L 592.82 372" fill="none" stroke="#64748b" stroke-width="1.5" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));"/><path d="M 601.32 372 L 592.82 374.84 L 592.82 369.17 Z" fill="#64748b" stroke="#64748b" stroke-width="1.5" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(100, 116, 139), rgb(126, 140, 159)); stroke: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 369px; margin-left: 424px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #475569; background-color: #FFFFFF; "><div style="display: inline-block; font-size: 11px; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; color: light-dark(#475569, #9ba7b8); line-height: 1.2; pointer-events: all; background-color: light-dark(#FFFFFF, #121212); white-space: nowrap; ">confirmCardPayment</div></div></div></foreignObject><text x="424" y="369" fill="#475569" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif" font-size="11px" text-anchor="middle" style="fill: light-dark(rgb(71, 85, 105), rgb(155, 167, 184));">confirmCardPayment</text></switch></g></g></g><g data-cell-id="m_9"><g><path d="M 603 446.01 L 403.1 446.01" fill="none" stroke="#64748b" stroke-width="1.5" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));"/><path d="M 409.93 441.76 L 401.43 446.01 L 409.93 450.26" fill="none" stroke="#64748b" stroke-width="1.5" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 443px; margin-left: 501px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #475569; background-color: #FFFFFF; "><div style="display: inline-block; font-size: 11px; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; color: light-dark(#475569, #9ba7b8); line-height: 1.2; pointer-events: all; background-color: light-dark(#FFFFFF, #121212); white-space: nowrap; ">webhook payment_succeeded</div></div></div></foreignObject><text x="501" y="443" fill="#475569" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif" font-size="11px" text-anchor="middle" style="fill: light-dark(rgb(71, 85, 105), rgb(155, 167, 184));">webhook payment_succeeded</text></switch></g></g></g><g data-cell-id="m_10"><g><path d="M 399.75 485.98 L 757.57 485.98" fill="none" stroke="#64748b" stroke-width="1.5" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));"/><path d="M 766.07 485.98 L 757.57 488.82 L 757.57 483.15 Z" fill="#64748b" stroke="#64748b" stroke-width="1.5" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(100, 116, 139), rgb(126, 140, 159)); stroke: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 483px; margin-left: 584px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #475569; background-color: #FFFFFF; "><div style="display: inline-block; font-size: 11px; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; color: light-dark(#475569, #9ba7b8); line-height: 1.2; pointer-events: all; background-color: light-dark(#FFFFFF, #121212); white-space: nowrap; ">mark paid</div></div></div></foreignObject><text x="584" y="483" fill="#475569" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif" font-size="11px" text-anchor="middle" style="fill: light-dark(rgb(71, 85, 105), rgb(155, 167, 184));">mark paid</text></switch></g></g></g><g data-cell-id="m_13"><g><path d="M 603 604 L 248.35 604.02" fill="none" stroke="#64748b" stroke-width="1.5" stroke-miterlimit="10" stroke-dasharray="9 6" pointer-events="stroke" style="stroke: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));"/><path d="M 255.18 599.77 L 246.68 604.02 L 255.18 608.27" fill="none" stroke="#64748b" stroke-width="1.5" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 601px; margin-left: 424px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #475569; background-color: #FFFFFF; "><div style="display: inline-block; font-size: 11px; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; color: light-dark(#475569, #9ba7b8); line-height: 1.2; pointer-events: all; background-color: light-dark(#FFFFFF, #121212); white-space: nowrap; ">card_declined</div></div></div></foreignObject><text x="424" y="601" fill="#475569" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif" font-size="11px" text-anchor="middle" style="fill: light-dark(rgb(71, 85, 105), rgb(155, 167, 184));">card_declined</text></switch></g></g></g><g data-cell-id="m_14"><g><path d="M 239.75 643.99 L 270 644 Q 280 644 280 654 L 280 659 Q 280 664 270 663.99 L 249.93 663.98" fill="none" stroke="#64748b" stroke-width="1.5" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));"/><path d="M 241.43 663.98 L 249.93 661.15 L 249.93 666.82 Z" fill="#64748b" stroke="#64748b" stroke-width="1.5" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(100, 116, 139), rgb(126, 140, 159)); stroke: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 1px; height: 1px; padding-top: 654px; margin-left: 288px;"><div style="box-sizing: border-box; font-size: 0; text-align: left; color: #475569; background-color: #FFFFFF; "><div style="display: inline-block; font-size: 11px; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; color: light-dark(#475569, #9ba7b8); line-height: 1.2; pointer-events: all; background-color: light-dark(#FFFFFF, #121212); white-space: nowrap; ">show error</div></div></div></foreignObject><text x="288" y="657" fill="#475569" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif" font-size="11px" style="fill: light-dark(rgb(71, 85, 105), rgb(155, 167, 184));">show error</text></switch></g></g></g><g data-cell-id="m_16"><g><path d="M 235 719.98 L 83.1 719.99" fill="none" stroke="#64748b" stroke-width="1.5" stroke-miterlimit="10" stroke-dasharray="9 6" pointer-events="stroke" style="stroke: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));"/><path d="M 89.93 715.74 L 81.43 719.99 L 89.93 724.24" fill="none" stroke="#64748b" stroke-width="1.5" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 717px; margin-left: 157px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #475569; background-color: #FFFFFF; "><div style="display: inline-block; font-size: 11px; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; color: light-dark(#475569, #9ba7b8); line-height: 1.2; pointer-events: all; background-color: light-dark(#FFFFFF, #121212); white-space: nowrap; ">result page</div></div></div></foreignObject><text x="157" y="717" fill="#475569" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif" font-size="11px" text-anchor="middle" style="fill: light-dark(rgb(71, 85, 105), rgb(155, 167, 184));">result page</text></switch></g></g></g></g></g></g><switch><g requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"/><a transform="translate(0,-5)" xlink:href="https://www.drawio.com/doc/faq/svg-export-text-problems" target="_blank"><text text-anchor="middle" font-size="10px" x="50%" y="100%">Text is not SVG - cannot display</text></a></switch></svg>
@@ -0,0 +1,28 @@
1
+ type: sequence
2
+ title: Card payment
3
+ participants:
4
+ user: { label: Shopper, kind: person }
5
+ web: { label: Web app, kind: client }
6
+ api: { label: Checkout API }
7
+ stripe: { label: Stripe, kind: external }
8
+ db: { label: Orders DB, kind: database }
9
+ messages:
10
+ - user -> web: Click "Pay"
11
+ - web -> api: POST /checkout
12
+ - api -> db: insert order (pending)
13
+ - db --> api: order id
14
+ - api -> stripe: create PaymentIntent
15
+ - stripe --> api: client_secret
16
+ - api --> web: client_secret
17
+ - web -> stripe: confirmCardPayment
18
+ - alt:
19
+ - when: succeeded
20
+ do:
21
+ - stripe -.-> api: webhook payment_succeeded
22
+ - api -> db: mark paid
23
+ - note over api, db: idempotent on event id
24
+ - when: declined
25
+ do:
26
+ - stripe --> web: card_declined
27
+ - web -> web: show error
28
+ - web --> user: result page
@@ -0,0 +1,4 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!-- Do not edit this file with editors other than draw.io -->
3
+ <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
4
+ <svg xmlns="http://www.w3.org/2000/svg" style="background: #FFFFFF; background-color: light-dark(#FFFFFF, #121212);" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="464px" height="834px" viewBox="0 0 464 834" content="&lt;mxfile host=&quot;aiviz&quot; agent=&quot;aiviz&quot;&gt;&lt;diagram id=&quot;aiviz&quot; name=&quot;Payment lifecycle&quot;&gt;&lt;mxGraphModel grid=&quot;1&quot; gridSize=&quot;8&quot; guides=&quot;1&quot; tooltips=&quot;1&quot; connect=&quot;1&quot; arrows=&quot;1&quot; page=&quot;0&quot; background=&quot;#FFFFFF&quot; math=&quot;0&quot; shadow=&quot;0&quot;&gt;&lt;root&gt;&lt;object id=&quot;0&quot; label=&quot;&quot; aiviz_version=&quot;1&quot; aiviz_type=&quot;state&quot; aiviz_direction=&quot;auto&quot; aiviz_title=&quot;Payment lifecycle&quot;&gt;&lt;mxCell/&gt;&lt;/object&gt;&lt;mxCell id=&quot;1&quot; parent=&quot;0&quot;/&gt;&lt;object id=&quot;_start&quot; label=&quot;&quot; aiviz_kind=&quot;start&quot; aiviz_label=&quot;&quot; aiviz_auto=&quot;307,16,24,24&quot;&gt;&lt;mxCell style=&quot;ellipse;aspect=fixed;html=1;whiteSpace=wrap;fontFamily=-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif;fontSize=13;fontColor=#0F172A;fillColor=#334155;strokeColor=#334155;strokeWidth=1.5;&quot; vertex=&quot;1&quot; parent=&quot;1&quot;&gt;&lt;mxGeometry x=&quot;307&quot; y=&quot;16&quot; width=&quot;24&quot; height=&quot;24&quot; as=&quot;geometry&quot;/&gt;&lt;/mxCell&gt;&lt;/object&gt;&lt;object id=&quot;created&quot; label=&quot;&amp;lt;span style=&amp;quot;font-weight:600&amp;quot;&amp;gt;Created&amp;lt;/span&amp;gt;&quot; aiviz_kind=&quot;state&quot; aiviz_label=&quot;Created&quot; aiviz_auto=&quot;255,88,128,40&quot;&gt;&lt;mxCell style=&quot;rounded=1;absoluteArcSize=1;arcSize=16;html=1;whiteSpace=wrap;fontFamily=-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif;fontSize=13;fontColor=#0F172A;fillColor=#EEF2FF;strokeColor=#4F46E5;strokeWidth=1.5;&quot; vertex=&quot;1&quot; parent=&quot;1&quot;&gt;&lt;mxGeometry x=&quot;255&quot; y=&quot;88&quot; width=&quot;128&quot; height=&quot;40&quot; as=&quot;geometry&quot;/&gt;&lt;/mxCell&gt;&lt;/object&gt;&lt;object id=&quot;authorizing&quot; label=&quot;&amp;lt;span style=&amp;quot;font-weight:600&amp;quot;&amp;gt;Authorizing&amp;lt;/span&amp;gt;&quot; aiviz_kind=&quot;state&quot; aiviz_label=&quot;Authorizing&quot; aiviz_auto=&quot;203,240,128,40&quot;&gt;&lt;mxCell style=&quot;rounded=1;absoluteArcSize=1;arcSize=16;html=1;whiteSpace=wrap;fontFamily=-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif;fontSize=13;fontColor=#0F172A;fillColor=#EEF2FF;strokeColor=#4F46E5;strokeWidth=1.5;&quot; vertex=&quot;1&quot; parent=&quot;1&quot;&gt;&lt;mxGeometry x=&quot;203&quot; y=&quot;240&quot; width=&quot;128&quot; height=&quot;40&quot; as=&quot;geometry&quot;/&gt;&lt;/mxCell&gt;&lt;/object&gt;&lt;object id=&quot;authorized&quot; label=&quot;&amp;lt;span style=&amp;quot;font-weight:600&amp;quot;&amp;gt;Authorized&amp;lt;/span&amp;gt;&quot; aiviz_kind=&quot;state&quot; aiviz_label=&quot;Authorized&quot; aiviz_auto=&quot;150,392,128,40&quot;&gt;&lt;mxCell style=&quot;rounded=1;absoluteArcSize=1;arcSize=16;html=1;whiteSpace=wrap;fontFamily=-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif;fontSize=13;fontColor=#0F172A;fillColor=#EEF2FF;strokeColor=#4F46E5;strokeWidth=1.5;&quot; vertex=&quot;1&quot; parent=&quot;1&quot;&gt;&lt;mxGeometry x=&quot;150&quot; y=&quot;392&quot; width=&quot;128&quot; height=&quot;40&quot; as=&quot;geometry&quot;/&gt;&lt;/mxCell&gt;&lt;/object&gt;&lt;object id=&quot;captured&quot; label=&quot;&amp;lt;span style=&amp;quot;font-weight:600&amp;quot;&amp;gt;Captured&amp;lt;/span&amp;gt;&quot; aiviz_kind=&quot;success&quot; aiviz_label=&quot;Captured&quot; aiviz_auto=&quot;66,544,128,40&quot;&gt;&lt;mxCell style=&quot;rounded=1;absoluteArcSize=1;arcSize=16;html=1;whiteSpace=wrap;fontFamily=-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif;fontSize=13;fontColor=#0F172A;fillColor=#ECFDF5;strokeColor=#059669;strokeWidth=1.5;&quot; vertex=&quot;1&quot; parent=&quot;1&quot;&gt;&lt;mxGeometry x=&quot;66&quot; y=&quot;544&quot; width=&quot;128&quot; height=&quot;40&quot; as=&quot;geometry&quot;/&gt;&lt;/mxCell&gt;&lt;/object&gt;&lt;object id=&quot;failed&quot; label=&quot;&amp;lt;span style=&amp;quot;font-weight:600&amp;quot;&amp;gt;Failed&amp;lt;/span&amp;gt;&quot; aiviz_kind=&quot;error&quot; aiviz_label=&quot;Failed&quot; aiviz_auto=&quot;318,392,128,40&quot;&gt;&lt;mxCell style=&quot;rounded=1;absoluteArcSize=1;arcSize=16;html=1;whiteSpace=wrap;fontFamily=-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif;fontSize=13;fontColor=#0F172A;fillColor=#FEF2F2;strokeColor=#DC2626;strokeWidth=1.5;&quot; vertex=&quot;1&quot; parent=&quot;1&quot;&gt;&lt;mxGeometry x=&quot;318&quot; y=&quot;392&quot; width=&quot;128&quot; height=&quot;40&quot; as=&quot;geometry&quot;/&gt;&lt;/mxCell&gt;&lt;/object&gt;&lt;object id=&quot;voided&quot; label=&quot;&amp;lt;span style=&amp;quot;font-weight:600&amp;quot;&amp;gt;Voided&amp;lt;/span&amp;gt;&quot; aiviz_kind=&quot;state&quot; aiviz_label=&quot;Voided&quot; aiviz_auto=&quot;234,544,128,40&quot;&gt;&lt;mxCell style=&quot;rounded=1;absoluteArcSize=1;arcSize=16;html=1;whiteSpace=wrap;fontFamily=-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif;fontSize=13;fontColor=#0F172A;fillColor=#EEF2FF;strokeColor=#4F46E5;strokeWidth=1.5;&quot; vertex=&quot;1&quot; parent=&quot;1&quot;&gt;&lt;mxGeometry x=&quot;234&quot; y=&quot;544&quot; width=&quot;128&quot; height=&quot;40&quot; as=&quot;geometry&quot;/&gt;&lt;/mxCell&gt;&lt;/object&gt;&lt;object id=&quot;refunded&quot; label=&quot;&amp;lt;span style=&amp;quot;font-weight:600&amp;quot;&amp;gt;Refunded&amp;lt;/span&amp;gt;&quot; aiviz_kind=&quot;state&quot; aiviz_label=&quot;Refunded&quot; aiviz_auto=&quot;16,704,128,40&quot;&gt;&lt;mxCell style=&quot;rounded=1;absoluteArcSize=1;arcSize=16;html=1;whiteSpace=wrap;fontFamily=-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif;fontSize=13;fontColor=#0F172A;fillColor=#EEF2FF;strokeColor=#4F46E5;strokeWidth=1.5;&quot; vertex=&quot;1&quot; parent=&quot;1&quot;&gt;&lt;mxGeometry x=&quot;16&quot; y=&quot;704&quot; width=&quot;128&quot; height=&quot;40&quot; as=&quot;geometry&quot;/&gt;&lt;/mxCell&gt;&lt;/object&gt;&lt;object id=&quot;_end_captured&quot; label=&quot;&quot; aiviz_kind=&quot;end&quot; aiviz_label=&quot;&quot; aiviz_auto=&quot;168,632,24,24&quot;&gt;&lt;mxCell style=&quot;ellipse;shape=endState;aspect=fixed;html=1;whiteSpace=wrap;fontFamily=-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif;fontSize=13;fontColor=#0F172A;fillColor=#334155;strokeColor=#334155;strokeWidth=1.5;&quot; vertex=&quot;1&quot; parent=&quot;1&quot;&gt;&lt;mxGeometry x=&quot;168&quot; y=&quot;632&quot; width=&quot;24&quot; height=&quot;24&quot; as=&quot;geometry&quot;/&gt;&lt;/mxCell&gt;&lt;/object&gt;&lt;object id=&quot;_end_voided&quot; label=&quot;&quot; aiviz_kind=&quot;end&quot; aiviz_label=&quot;&quot; aiviz_auto=&quot;286,632,24,24&quot;&gt;&lt;mxCell style=&quot;ellipse;shape=endState;aspect=fixed;html=1;whiteSpace=wrap;fontFamily=-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif;fontSize=13;fontColor=#0F172A;fillColor=#334155;strokeColor=#334155;strokeWidth=1.5;&quot; vertex=&quot;1&quot; parent=&quot;1&quot;&gt;&lt;mxGeometry x=&quot;286&quot; y=&quot;632&quot; width=&quot;24&quot; height=&quot;24&quot; as=&quot;geometry&quot;/&gt;&lt;/mxCell&gt;&lt;/object&gt;&lt;object id=&quot;_end_refunded&quot; label=&quot;&quot; aiviz_kind=&quot;end&quot; aiviz_label=&quot;&quot; aiviz_auto=&quot;68,792,24,24&quot;&gt;&lt;mxCell style=&quot;ellipse;shape=endState;aspect=fixed;html=1;whiteSpace=wrap;fontFamily=-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif;fontSize=13;fontColor=#0F172A;fillColor=#334155;strokeColor=#334155;strokeWidth=1.5;&quot; vertex=&quot;1&quot; parent=&quot;1&quot;&gt;&lt;mxGeometry x=&quot;68&quot; y=&quot;792&quot; width=&quot;24&quot; height=&quot;24&quot; as=&quot;geometry&quot;/&gt;&lt;/mxCell&gt;&lt;/object&gt;&lt;object id=&quot;e__start__created&quot; label=&quot;&quot; aiviz_edge=&quot;_start-&amp;gt;created&quot; aiviz_auto=&quot;&quot;&gt;&lt;mxCell style=&quot;edgeStyle=orthogonalEdgeStyle;rounded=1;arcSize=12;html=1;strokeColor=#64748B;strokeWidth=1.5;endArrow=blockThin;endFill=1;endSize=7;startArrow=none;fontFamily=-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif;fontSize=11;fontColor=#475569;labelBackgroundColor=#FFFFFF;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;&quot; edge=&quot;1&quot; parent=&quot;1&quot; source=&quot;_start&quot; target=&quot;created&quot;&gt;&lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot;/&gt;&lt;/mxCell&gt;&lt;/object&gt;&lt;object id=&quot;e_created__authorizing&quot; label=&quot;submit&quot; aiviz_edge=&quot;created-&amp;gt;authorizing&quot; aiviz_auto=&quot;298,148 267,148&quot;&gt;&lt;mxCell style=&quot;edgeStyle=orthogonalEdgeStyle;rounded=1;arcSize=12;html=1;strokeColor=#64748B;strokeWidth=1.5;endArrow=blockThin;endFill=1;endSize=7;startArrow=none;fontFamily=-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif;fontSize=11;fontColor=#475569;labelBackgroundColor=#FFFFFF;exitX=0.333;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;&quot; edge=&quot;1&quot; parent=&quot;1&quot; source=&quot;created&quot; target=&quot;authorizing&quot;&gt;&lt;mxGeometry x=&quot;0.215&quot; relative=&quot;1&quot; as=&quot;geometry&quot;&gt;&lt;Array as=&quot;points&quot;&gt;&lt;mxPoint x=&quot;298&quot; y=&quot;148&quot;/&gt;&lt;mxPoint x=&quot;267&quot; y=&quot;148&quot;/&gt;&lt;/Array&gt;&lt;/mxGeometry&gt;&lt;/mxCell&gt;&lt;/object&gt;&lt;object id=&quot;e_authorizing__authorized&quot; label=&quot;approved&quot; aiviz_edge=&quot;authorizing-&amp;gt;authorized&quot; aiviz_auto=&quot;246,300 214,300&quot;&gt;&lt;mxCell style=&quot;edgeStyle=orthogonalEdgeStyle;rounded=1;arcSize=12;html=1;strokeColor=#64748B;strokeWidth=1.5;endArrow=blockThin;endFill=1;endSize=7;startArrow=none;fontFamily=-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif;fontSize=11;fontColor=#475569;labelBackgroundColor=#FFFFFF;exitX=0.333;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;&quot; edge=&quot;1&quot; parent=&quot;1&quot; source=&quot;authorizing&quot; target=&quot;authorized&quot;&gt;&lt;mxGeometry x=&quot;0.222&quot; relative=&quot;1&quot; as=&quot;geometry&quot;&gt;&lt;Array as=&quot;points&quot;&gt;&lt;mxPoint x=&quot;246&quot; y=&quot;300&quot;/&gt;&lt;mxPoint x=&quot;214&quot; y=&quot;300&quot;/&gt;&lt;/Array&gt;&lt;/mxGeometry&gt;&lt;/mxCell&gt;&lt;/object&gt;&lt;object id=&quot;e_authorizing__failed&quot; label=&quot;declined&quot; aiviz_edge=&quot;authorizing-&amp;gt;failed&quot; aiviz_auto=&quot;289,300 341,300 341,364 361,364&quot;&gt;&lt;mxCell style=&quot;edgeStyle=orthogonalEdgeStyle;rounded=1;arcSize=12;html=1;strokeColor=#64748B;strokeWidth=1.5;endArrow=blockThin;endFill=1;endSize=7;startArrow=none;fontFamily=-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif;fontSize=11;fontColor=#475569;labelBackgroundColor=#FFFFFF;exitX=0.667;exitY=1;exitDx=0;exitDy=0;entryX=0.333;entryY=0;entryDx=0;entryDy=0;&quot; edge=&quot;1&quot; parent=&quot;1&quot; source=&quot;authorizing&quot; target=&quot;failed&quot;&gt;&lt;mxGeometry x=&quot;0.696&quot; relative=&quot;1&quot; as=&quot;geometry&quot;&gt;&lt;Array as=&quot;points&quot;&gt;&lt;mxPoint x=&quot;289&quot; y=&quot;300&quot;/&gt;&lt;mxPoint x=&quot;341&quot; y=&quot;300&quot;/&gt;&lt;mxPoint x=&quot;341&quot; y=&quot;364&quot;/&gt;&lt;mxPoint x=&quot;361&quot; y=&quot;364&quot;/&gt;&lt;/Array&gt;&lt;/mxGeometry&gt;&lt;/mxCell&gt;&lt;/object&gt;&lt;object id=&quot;e_authorized__captured&quot; label=&quot;capture&quot; aiviz_edge=&quot;authorized-&amp;gt;captured&quot; aiviz_auto=&quot;193,452 130,452&quot;&gt;&lt;mxCell style=&quot;edgeStyle=orthogonalEdgeStyle;rounded=1;arcSize=12;html=1;strokeColor=#64748B;strokeWidth=1.5;endArrow=blockThin;endFill=1;endSize=7;startArrow=none;fontFamily=-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif;fontSize=11;fontColor=#475569;labelBackgroundColor=#FFFFFF;exitX=0.333;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;&quot; edge=&quot;1&quot; parent=&quot;1&quot; source=&quot;authorized&quot; target=&quot;captured&quot;&gt;&lt;mxGeometry x=&quot;0.359&quot; relative=&quot;1&quot; as=&quot;geometry&quot;&gt;&lt;Array as=&quot;points&quot;&gt;&lt;mxPoint x=&quot;193&quot; y=&quot;452&quot;/&gt;&lt;mxPoint x=&quot;130&quot; y=&quot;452&quot;/&gt;&lt;/Array&gt;&lt;/mxGeometry&gt;&lt;/mxCell&gt;&lt;/object&gt;&lt;object id=&quot;e_authorized__voided&quot; label=&quot;void&quot; aiviz_edge=&quot;authorized-&amp;gt;voided&quot; aiviz_auto=&quot;235,452 298,452&quot;&gt;&lt;mxCell style=&quot;edgeStyle=orthogonalEdgeStyle;rounded=1;arcSize=12;html=1;strokeColor=#64748B;strokeWidth=1.5;endArrow=blockThin;endFill=1;endSize=7;startArrow=none;fontFamily=-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif;fontSize=11;fontColor=#475569;labelBackgroundColor=#FFFFFF;exitX=0.667;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;&quot; edge=&quot;1&quot; parent=&quot;1&quot; source=&quot;authorized&quot; target=&quot;voided&quot;&gt;&lt;mxGeometry x=&quot;0.359&quot; relative=&quot;1&quot; as=&quot;geometry&quot;&gt;&lt;Array as=&quot;points&quot;&gt;&lt;mxPoint x=&quot;235&quot; y=&quot;452&quot;/&gt;&lt;mxPoint x=&quot;298&quot; y=&quot;452&quot;/&gt;&lt;/Array&gt;&lt;/mxGeometry&gt;&lt;/mxCell&gt;&lt;/object&gt;&lt;object id=&quot;e_captured__refunded&quot; label=&quot;refund&quot; aiviz_edge=&quot;captured-&amp;gt;refunded&quot; aiviz_auto=&quot;109,604 80,604&quot;&gt;&lt;mxCell style=&quot;edgeStyle=orthogonalEdgeStyle;rounded=1;arcSize=12;html=1;strokeColor=#64748B;strokeWidth=1.5;endArrow=blockThin;endFill=1;endSize=7;startArrow=none;fontFamily=-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif;fontSize=11;fontColor=#475569;labelBackgroundColor=#FFFFFF;exitX=0.333;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;&quot; edge=&quot;1&quot; parent=&quot;1&quot; source=&quot;captured&quot; target=&quot;refunded&quot;&gt;&lt;mxGeometry x=&quot;0.193&quot; relative=&quot;1&quot; as=&quot;geometry&quot;&gt;&lt;Array as=&quot;points&quot;&gt;&lt;mxPoint x=&quot;109&quot; y=&quot;604&quot;/&gt;&lt;mxPoint x=&quot;80&quot; y=&quot;604&quot;/&gt;&lt;/Array&gt;&lt;/mxGeometry&gt;&lt;/mxCell&gt;&lt;/object&gt;&lt;object id=&quot;e_failed__created&quot; label=&quot;retry&quot; aiviz_edge=&quot;failed-&amp;gt;created&quot; aiviz_auto=&quot;403,364 423,364 423,148 341,148&quot;&gt;&lt;mxCell style=&quot;edgeStyle=orthogonalEdgeStyle;rounded=1;arcSize=12;html=1;strokeColor=#64748B;strokeWidth=1.5;endArrow=blockThin;endFill=1;endSize=7;startArrow=none;fontFamily=-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif;fontSize=11;fontColor=#475569;labelBackgroundColor=#FFFFFF;exitX=0.667;exitY=0;exitDx=0;exitDy=0;entryX=0.667;entryY=1;entryDx=0;entryDy=0;&quot; edge=&quot;1&quot; parent=&quot;1&quot; source=&quot;failed&quot; target=&quot;created&quot;&gt;&lt;mxGeometry x=&quot;-0.171&quot; relative=&quot;1&quot; as=&quot;geometry&quot;&gt;&lt;Array as=&quot;points&quot;&gt;&lt;mxPoint x=&quot;403&quot; y=&quot;364&quot;/&gt;&lt;mxPoint x=&quot;423&quot; y=&quot;364&quot;/&gt;&lt;mxPoint x=&quot;423&quot; y=&quot;148&quot;/&gt;&lt;mxPoint x=&quot;341&quot; y=&quot;148&quot;/&gt;&lt;/Array&gt;&lt;/mxGeometry&gt;&lt;/mxCell&gt;&lt;/object&gt;&lt;object id=&quot;e_captured___end_captured&quot; label=&quot;&quot; aiviz_edge=&quot;captured-&amp;gt;_end_captured&quot; aiviz_auto=&quot;151,604 180,604&quot;&gt;&lt;mxCell style=&quot;edgeStyle=orthogonalEdgeStyle;rounded=1;arcSize=12;html=1;strokeColor=#64748B;strokeWidth=1.5;endArrow=blockThin;endFill=1;endSize=7;startArrow=none;fontFamily=-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif;fontSize=11;fontColor=#475569;labelBackgroundColor=#FFFFFF;exitX=0.667;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;&quot; edge=&quot;1&quot; parent=&quot;1&quot; source=&quot;captured&quot; target=&quot;_end_captured&quot;&gt;&lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot;&gt;&lt;Array as=&quot;points&quot;&gt;&lt;mxPoint x=&quot;151&quot; y=&quot;604&quot;/&gt;&lt;mxPoint x=&quot;180&quot; y=&quot;604&quot;/&gt;&lt;/Array&gt;&lt;/mxGeometry&gt;&lt;/mxCell&gt;&lt;/object&gt;&lt;object id=&quot;e_voided___end_voided&quot; label=&quot;&quot; aiviz_edge=&quot;voided-&amp;gt;_end_voided&quot; aiviz_auto=&quot;&quot;&gt;&lt;mxCell style=&quot;edgeStyle=orthogonalEdgeStyle;rounded=1;arcSize=12;html=1;strokeColor=#64748B;strokeWidth=1.5;endArrow=blockThin;endFill=1;endSize=7;startArrow=none;fontFamily=-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif;fontSize=11;fontColor=#475569;labelBackgroundColor=#FFFFFF;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;&quot; edge=&quot;1&quot; parent=&quot;1&quot; source=&quot;voided&quot; target=&quot;_end_voided&quot;&gt;&lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot;/&gt;&lt;/mxCell&gt;&lt;/object&gt;&lt;object id=&quot;e_refunded___end_refunded&quot; label=&quot;&quot; aiviz_edge=&quot;refunded-&amp;gt;_end_refunded&quot; aiviz_auto=&quot;&quot;&gt;&lt;mxCell style=&quot;edgeStyle=orthogonalEdgeStyle;rounded=1;arcSize=12;html=1;strokeColor=#64748B;strokeWidth=1.5;endArrow=blockThin;endFill=1;endSize=7;startArrow=none;fontFamily=-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif;fontSize=11;fontColor=#475569;labelBackgroundColor=#FFFFFF;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;&quot; edge=&quot;1&quot; parent=&quot;1&quot; source=&quot;refunded&quot; target=&quot;_end_refunded&quot;&gt;&lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot;/&gt;&lt;/mxCell&gt;&lt;/object&gt;&lt;/root&gt;&lt;/mxGraphModel&gt;&lt;/diagram&gt;&lt;/mxfile&gt;"><defs/><rect fill="#FFFFFF" width="100%" height="100%" x="0" y="0" style="fill: light-dark(rgb(255, 255, 255), rgb(18, 18, 18));"/><g><g data-cell-id="0"><g data-cell-id="1"><g data-cell-id="_start"><g><ellipse cx="319" cy="28" rx="12" ry="12" fill="#334155" stroke="#334155" stroke-width="1.5" pointer-events="all" style="fill: light-dark(rgb(51, 65, 85), rgb(172, 184, 201)); stroke: light-dark(rgb(51, 65, 85), rgb(172, 184, 201));"/></g></g><g data-cell-id="created"><g><rect x="255" y="88" width="128" height="40" rx="8" ry="8" fill="#eef2ff" stroke="#4f46e5" stroke-width="1.5" pointer-events="all" style="fill: light-dark(rgb(238, 242, 255), rgb(26, 29, 40)); stroke: light-dark(rgb(79, 70, 229), rgb(162, 154, 255));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 126px; height: 1px; padding-top: 108px; margin-left: 256px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #0F172A; "><div style="display: inline-block; font-size: 13px; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; color: light-dark(#0F172A, #d3daea); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><span style="font-weight:600">Created</span></div></div></div></foreignObject><text x="319" y="112" fill="#0F172A" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif" font-size="13px" text-anchor="middle" style="fill: light-dark(rgb(15, 23, 42), rgb(211, 218, 234));">Created</text></switch></g></g></g><g data-cell-id="authorizing"><g><rect x="203" y="240" width="128" height="40" rx="8" ry="8" fill="#eef2ff" stroke="#4f46e5" stroke-width="1.5" pointer-events="all" style="fill: light-dark(rgb(238, 242, 255), rgb(26, 29, 40)); stroke: light-dark(rgb(79, 70, 229), rgb(162, 154, 255));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 126px; height: 1px; padding-top: 260px; margin-left: 204px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #0F172A; "><div style="display: inline-block; font-size: 13px; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; color: light-dark(#0F172A, #d3daea); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><span style="font-weight:600">Authorizing</span></div></div></div></foreignObject><text x="267" y="264" fill="#0F172A" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif" font-size="13px" text-anchor="middle" style="fill: light-dark(rgb(15, 23, 42), rgb(211, 218, 234));">Authorizing</text></switch></g></g></g><g data-cell-id="authorized"><g><rect x="150" y="392" width="128" height="40" rx="8" ry="8" fill="#eef2ff" stroke="#4f46e5" stroke-width="1.5" pointer-events="all" style="fill: light-dark(rgb(238, 242, 255), rgb(26, 29, 40)); stroke: light-dark(rgb(79, 70, 229), rgb(162, 154, 255));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 126px; height: 1px; padding-top: 412px; margin-left: 151px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #0F172A; "><div style="display: inline-block; font-size: 13px; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; color: light-dark(#0F172A, #d3daea); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><span style="font-weight:600">Authorized</span></div></div></div></foreignObject><text x="214" y="416" fill="#0F172A" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif" font-size="13px" text-anchor="middle" style="fill: light-dark(rgb(15, 23, 42), rgb(211, 218, 234));">Authorized</text></switch></g></g></g><g data-cell-id="captured"><g><rect x="66" y="544" width="128" height="40" rx="8" ry="8" fill="#ecfdf5" stroke="#059669" stroke-width="1.5" pointer-events="all" style="fill: light-dark(rgb(236, 253, 245), rgb(13, 27, 21)); stroke: light-dark(rgb(5, 150, 105), rgb(42, 167, 128));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 126px; height: 1px; padding-top: 564px; margin-left: 67px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #0F172A; "><div style="display: inline-block; font-size: 13px; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; color: light-dark(#0F172A, #d3daea); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><span style="font-weight:600">Captured</span></div></div></div></foreignObject><text x="130" y="568" fill="#0F172A" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif" font-size="13px" text-anchor="middle" style="fill: light-dark(rgb(15, 23, 42), rgb(211, 218, 234));">Captured</text></switch></g></g></g><g data-cell-id="failed"><g><rect x="318" y="392" width="128" height="40" rx="8" ry="8" fill="#fef2f2" stroke="#dc2626" stroke-width="1.5" pointer-events="all" style="fill: light-dark(rgb(254, 242, 242), rgb(35, 25, 25)); stroke: light-dark(rgb(220, 38, 38), rgb(255, 138, 138));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 126px; height: 1px; padding-top: 412px; margin-left: 319px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #0F172A; "><div style="display: inline-block; font-size: 13px; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; color: light-dark(#0F172A, #d3daea); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><span style="font-weight:600">Failed</span></div></div></div></foreignObject><text x="382" y="416" fill="#0F172A" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif" font-size="13px" text-anchor="middle" style="fill: light-dark(rgb(15, 23, 42), rgb(211, 218, 234));">Failed</text></switch></g></g></g><g data-cell-id="voided"><g><rect x="234" y="544" width="128" height="40" rx="8" ry="8" fill="#eef2ff" stroke="#4f46e5" stroke-width="1.5" pointer-events="all" style="fill: light-dark(rgb(238, 242, 255), rgb(26, 29, 40)); stroke: light-dark(rgb(79, 70, 229), rgb(162, 154, 255));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 126px; height: 1px; padding-top: 564px; margin-left: 235px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #0F172A; "><div style="display: inline-block; font-size: 13px; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; color: light-dark(#0F172A, #d3daea); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><span style="font-weight:600">Voided</span></div></div></div></foreignObject><text x="298" y="568" fill="#0F172A" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif" font-size="13px" text-anchor="middle" style="fill: light-dark(rgb(15, 23, 42), rgb(211, 218, 234));">Voided</text></switch></g></g></g><g data-cell-id="refunded"><g><rect x="16" y="704" width="128" height="40" rx="8" ry="8" fill="#eef2ff" stroke="#4f46e5" stroke-width="1.5" pointer-events="all" style="fill: light-dark(rgb(238, 242, 255), rgb(26, 29, 40)); stroke: light-dark(rgb(79, 70, 229), rgb(162, 154, 255));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 126px; height: 1px; padding-top: 724px; margin-left: 17px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #0F172A; "><div style="display: inline-block; font-size: 13px; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; color: light-dark(#0F172A, #d3daea); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><span style="font-weight:600">Refunded</span></div></div></div></foreignObject><text x="80" y="728" fill="#0F172A" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif" font-size="13px" text-anchor="middle" style="fill: light-dark(rgb(15, 23, 42), rgb(211, 218, 234));">Refunded</text></switch></g></g></g><g data-cell-id="_end_captured"><g><ellipse cx="180" cy="644" rx="8" ry="8" fill="#334155" stroke="#334155" stroke-width="1.5" pointer-events="all" style="fill: light-dark(rgb(51, 65, 85), rgb(172, 184, 201)); stroke: light-dark(rgb(51, 65, 85), rgb(172, 184, 201));"/><ellipse cx="180" cy="644" rx="12" ry="12" fill="none" stroke="#334155" stroke-width="1.5" pointer-events="all" style="stroke: light-dark(rgb(51, 65, 85), rgb(172, 184, 201));"/></g></g><g data-cell-id="_end_voided"><g><ellipse cx="298" cy="644" rx="8" ry="8" fill="#334155" stroke="#334155" stroke-width="1.5" pointer-events="all" style="fill: light-dark(rgb(51, 65, 85), rgb(172, 184, 201)); stroke: light-dark(rgb(51, 65, 85), rgb(172, 184, 201));"/><ellipse cx="298" cy="644" rx="12" ry="12" fill="none" stroke="#334155" stroke-width="1.5" pointer-events="all" style="stroke: light-dark(rgb(51, 65, 85), rgb(172, 184, 201));"/></g></g><g data-cell-id="_end_refunded"><g><ellipse cx="80" cy="804" rx="8" ry="8" fill="#334155" stroke="#334155" stroke-width="1.5" pointer-events="all" style="fill: light-dark(rgb(51, 65, 85), rgb(172, 184, 201)); stroke: light-dark(rgb(51, 65, 85), rgb(172, 184, 201));"/><ellipse cx="80" cy="804" rx="12" ry="12" fill="none" stroke="#334155" stroke-width="1.5" pointer-events="all" style="stroke: light-dark(rgb(51, 65, 85), rgb(172, 184, 201));"/></g></g><g data-cell-id="e__start__created"><g><path d="M 319 40 L 319 77.82" fill="none" stroke="#64748b" stroke-width="1.5" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));"/><path d="M 319 86.32 L 316.17 77.82 L 321.83 77.82 Z" fill="#64748b" stroke="#64748b" stroke-width="1.5" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(100, 116, 139), rgb(126, 140, 159)); stroke: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));"/></g></g><g data-cell-id="e_created__authorizing"><g><path d="M 297.62 128 L 297.61 142 Q 297.6 148 291.6 148 L 273 148 Q 267 148 267 154 L 267 229.82" fill="none" stroke="#64748b" stroke-width="1.5" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));"/><path d="M 267 238.32 L 264.17 229.82 L 269.83 229.82 Z" fill="#64748b" stroke="#64748b" stroke-width="1.5" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(100, 116, 139), rgb(126, 140, 159)); stroke: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 184px; margin-left: 267px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #475569; background-color: #FFFFFF; "><div style="display: inline-block; font-size: 11px; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; color: light-dark(#475569, #9ba7b8); line-height: 1.2; pointer-events: all; background-color: light-dark(#FFFFFF, #121212); white-space: nowrap; ">submit</div></div></div></foreignObject><text x="267" y="188" fill="#475569" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif" font-size="11px" text-anchor="middle" style="fill: light-dark(rgb(71, 85, 105), rgb(155, 167, 184));">submit</text></switch></g></g></g><g data-cell-id="e_authorizing__authorized"><g><path d="M 245.62 280 L 245.61 294 Q 245.6 300 239.6 300 L 220 300 Q 214 300 214 306 L 214 381.82" fill="none" stroke="#64748b" stroke-width="1.5" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));"/><path d="M 214 390.32 L 211.17 381.82 L 216.83 381.82 Z" fill="#64748b" stroke="#64748b" stroke-width="1.5" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(100, 116, 139), rgb(126, 140, 159)); stroke: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 336px; margin-left: 214px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #475569; background-color: #FFFFFF; "><div style="display: inline-block; font-size: 11px; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; color: light-dark(#475569, #9ba7b8); line-height: 1.2; pointer-events: all; background-color: light-dark(#FFFFFF, #121212); white-space: nowrap; ">approved</div></div></div></foreignObject><text x="214" y="340" fill="#475569" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif" font-size="11px" text-anchor="middle" style="fill: light-dark(rgb(71, 85, 105), rgb(155, 167, 184));">approved</text></switch></g></g></g><g data-cell-id="e_authorizing__failed"><g><path d="M 288.38 280 L 288.39 294 Q 288.4 300 294.4 300 L 335 300 Q 341 300 341 306 L 341 358 Q 341 364 347 364 L 354.6 364 Q 360.6 364 360.61 370 L 360.62 381.82" fill="none" stroke="#64748b" stroke-width="1.5" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));"/><path d="M 360.62 390.32 L 357.78 381.83 L 363.45 381.82 Z" fill="#64748b" stroke="#64748b" stroke-width="1.5" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(100, 116, 139), rgb(126, 140, 159)); stroke: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 364px; margin-left: 361px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #475569; background-color: #FFFFFF; "><div style="display: inline-block; font-size: 11px; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; color: light-dark(#475569, #9ba7b8); line-height: 1.2; pointer-events: all; background-color: light-dark(#FFFFFF, #121212); white-space: nowrap; ">declined</div></div></div></foreignObject><text x="361" y="367" fill="#475569" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif" font-size="11px" text-anchor="middle" style="fill: light-dark(rgb(71, 85, 105), rgb(155, 167, 184));">declined</text></switch></g></g></g><g data-cell-id="e_authorized__captured"><g><path d="M 192.62 432 L 192.61 446 Q 192.6 452 186.6 452 L 136 452 Q 130 452 130 458 L 130 533.82" fill="none" stroke="#64748b" stroke-width="1.5" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));"/><path d="M 130 542.32 L 127.17 533.82 L 132.83 533.82 Z" fill="#64748b" stroke="#64748b" stroke-width="1.5" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(100, 116, 139), rgb(126, 140, 159)); stroke: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 488px; margin-left: 130px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #475569; background-color: #FFFFFF; "><div style="display: inline-block; font-size: 11px; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; color: light-dark(#475569, #9ba7b8); line-height: 1.2; pointer-events: all; background-color: light-dark(#FFFFFF, #121212); white-space: nowrap; ">capture</div></div></div></foreignObject><text x="130" y="492" fill="#475569" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif" font-size="11px" text-anchor="middle" style="fill: light-dark(rgb(71, 85, 105), rgb(155, 167, 184));">capture</text></switch></g></g></g><g data-cell-id="e_authorized__voided"><g><path d="M 235.38 432 L 235.39 446 Q 235.4 452 241.4 452 L 292 452 Q 298 452 298 458 L 298 533.82" fill="none" stroke="#64748b" stroke-width="1.5" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));"/><path d="M 298 542.32 L 295.17 533.82 L 300.83 533.82 Z" fill="#64748b" stroke="#64748b" stroke-width="1.5" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(100, 116, 139), rgb(126, 140, 159)); stroke: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 488px; margin-left: 298px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #475569; background-color: #FFFFFF; "><div style="display: inline-block; font-size: 11px; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; color: light-dark(#475569, #9ba7b8); line-height: 1.2; pointer-events: all; background-color: light-dark(#FFFFFF, #121212); white-space: nowrap; ">void</div></div></div></foreignObject><text x="298" y="492" fill="#475569" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif" font-size="11px" text-anchor="middle" style="fill: light-dark(rgb(71, 85, 105), rgb(155, 167, 184));">void</text></switch></g></g></g><g data-cell-id="e_captured__refunded"><g><path d="M 108.62 584 L 108.61 598 Q 108.6 604 102.6 604 L 86 604 Q 80 604 80 610 L 80 693.82" fill="none" stroke="#64748b" stroke-width="1.5" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));"/><path d="M 80 702.32 L 77.17 693.82 L 82.83 693.82 Z" fill="#64748b" stroke="#64748b" stroke-width="1.5" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(100, 116, 139), rgb(126, 140, 159)); stroke: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 644px; margin-left: 80px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #475569; background-color: #FFFFFF; "><div style="display: inline-block; font-size: 11px; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; color: light-dark(#475569, #9ba7b8); line-height: 1.2; pointer-events: all; background-color: light-dark(#FFFFFF, #121212); white-space: nowrap; ">refund</div></div></div></foreignObject><text x="80" y="648" fill="#475569" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif" font-size="11px" text-anchor="middle" style="fill: light-dark(rgb(71, 85, 105), rgb(155, 167, 184));">refund</text></switch></g></g></g><g data-cell-id="e_failed__created"><g><path d="M 403.38 392 L 403.39 370 Q 403.4 364 409.4 364 L 417 364 Q 423 364 423 358 L 423 154 Q 423 148 417 148 L 346.4 148 Q 340.4 148 340.39 143.09 L 340.39 138.18" fill="none" stroke="#64748b" stroke-width="1.5" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));"/><path d="M 340.38 129.68 L 343.22 138.17 L 337.55 138.18 Z" fill="#64748b" stroke="#64748b" stroke-width="1.5" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(100, 116, 139), rgb(126, 140, 159)); stroke: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 260px; margin-left: 423px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #475569; background-color: #FFFFFF; "><div style="display: inline-block; font-size: 11px; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; color: light-dark(#475569, #9ba7b8); line-height: 1.2; pointer-events: all; background-color: light-dark(#FFFFFF, #121212); white-space: nowrap; ">retry</div></div></div></foreignObject><text x="423" y="263" fill="#475569" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif" font-size="11px" text-anchor="middle" style="fill: light-dark(rgb(71, 85, 105), rgb(155, 167, 184));">retry</text></switch></g></g></g><g data-cell-id="e_captured___end_captured"><g><path d="M 151.38 584 L 151.39 598 Q 151.4 604 157.4 604 L 174 604 Q 180 604 180 610 L 180 621.82" fill="none" stroke="#64748b" stroke-width="1.5" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));"/><path d="M 180 630.32 L 177.17 621.82 L 182.83 621.82 Z" fill="#64748b" stroke="#64748b" stroke-width="1.5" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(100, 116, 139), rgb(126, 140, 159)); stroke: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));"/></g></g><g data-cell-id="e_voided___end_voided"><g><path d="M 298 584 L 298 621.82" fill="none" stroke="#64748b" stroke-width="1.5" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));"/><path d="M 298 630.32 L 295.17 621.82 L 300.83 621.82 Z" fill="#64748b" stroke="#64748b" stroke-width="1.5" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(100, 116, 139), rgb(126, 140, 159)); stroke: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));"/></g></g><g data-cell-id="e_refunded___end_refunded"><g><path d="M 80 744 L 80 781.82" fill="none" stroke="#64748b" stroke-width="1.5" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));"/><path d="M 80 790.32 L 77.17 781.82 L 82.83 781.82 Z" fill="#64748b" stroke="#64748b" stroke-width="1.5" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(100, 116, 139), rgb(126, 140, 159)); stroke: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));"/></g></g></g></g></g><switch><g requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"/><a transform="translate(0,-5)" xlink:href="https://www.drawio.com/doc/faq/svg-export-text-problems" target="_blank"><text text-anchor="middle" font-size="10px" x="50%" y="100%">Text is not SVG - cannot display</text></a></switch></svg>
@@ -0,0 +1,22 @@
1
+ type: state
2
+ title: Payment lifecycle
3
+ nodes:
4
+ created: { label: Created }
5
+ authorizing: { label: Authorizing }
6
+ authorized: { label: Authorized }
7
+ captured: { label: Captured, kind: success }
8
+ failed: { label: Failed, kind: error }
9
+ voided: { label: Voided }
10
+ refunded: { label: Refunded }
11
+ edges:
12
+ - "[*] -> created"
13
+ - created -> authorizing: submit
14
+ - authorizing -> authorized: approved
15
+ - authorizing -> failed: declined
16
+ - authorized -> captured: capture
17
+ - authorized -> voided: void
18
+ - captured -> refunded: refund
19
+ - failed -> created: retry
20
+ - "captured -> [*]"
21
+ - "voided -> [*]"
22
+ - "refunded -> [*]"
@@ -0,0 +1,4 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!-- Do not edit this file with editors other than draw.io -->
3
+ <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
4
+ <svg xmlns="http://www.w3.org/2000/svg" style="background: #FFFFFF; background-color: light-dark(#FFFFFF, #121212);" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="520px" height="1098px" viewBox="0 0 520 1098" content="&lt;mxfile host=&quot;aiviz&quot; agent=&quot;aiviz&quot;&gt;&lt;diagram id=&quot;aiviz&quot; name=&quot;Refund request&quot;&gt;&lt;mxGraphModel grid=&quot;1&quot; gridSize=&quot;8&quot; guides=&quot;1&quot; tooltips=&quot;1&quot; connect=&quot;1&quot; arrows=&quot;1&quot; page=&quot;0&quot; background=&quot;#FFFFFF&quot; math=&quot;0&quot; shadow=&quot;0&quot;&gt;&lt;root&gt;&lt;object id=&quot;0&quot; label=&quot;&quot; aiviz_version=&quot;1&quot; aiviz_type=&quot;flow&quot; aiviz_direction=&quot;auto&quot; aiviz_title=&quot;Refund request&quot;&gt;&lt;mxCell/&gt;&lt;/object&gt;&lt;mxCell id=&quot;1&quot; parent=&quot;0&quot;/&gt;&lt;object id=&quot;start&quot; label=&quot;&amp;lt;span style=&amp;quot;font-weight:600&amp;quot;&amp;gt;Refund requested&amp;lt;/span&amp;gt;&quot; aiviz_kind=&quot;terminal&quot; aiviz_label=&quot;Refund requested&quot; aiviz_auto=&quot;195,16,200,40&quot;&gt;&lt;mxCell style=&quot;rounded=1;arcSize=50;html=1;whiteSpace=wrap;fontFamily=-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif;fontSize=13;fontColor=#0F172A;fillColor=#F8FAFC;strokeColor=#94A3B8;strokeWidth=1.5;&quot; vertex=&quot;1&quot; parent=&quot;1&quot;&gt;&lt;mxGeometry x=&quot;195&quot; y=&quot;16&quot; width=&quot;200&quot; height=&quot;40&quot; as=&quot;geometry&quot;/&gt;&lt;/mxCell&gt;&lt;/object&gt;&lt;object id=&quot;lookup&quot; label=&quot;&amp;lt;span style=&amp;quot;font-weight:600&amp;quot;&amp;gt;Look up order&amp;lt;/span&amp;gt;&quot; aiviz_kind=&quot;step&quot; aiviz_label=&quot;Look up order&quot; aiviz_auto=&quot;195,104,200,40&quot;&gt;&lt;mxCell style=&quot;rounded=1;absoluteArcSize=1;arcSize=16;html=1;whiteSpace=wrap;fontFamily=-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif;fontSize=13;fontColor=#0F172A;fillColor=#FFFFFF;strokeColor=#94A3B8;strokeWidth=1.5;&quot; vertex=&quot;1&quot; parent=&quot;1&quot;&gt;&lt;mxGeometry x=&quot;195&quot; y=&quot;104&quot; width=&quot;200&quot; height=&quot;40&quot; as=&quot;geometry&quot;/&gt;&lt;/mxCell&gt;&lt;/object&gt;&lt;object id=&quot;window&quot; label=&quot;&amp;lt;span style=&amp;quot;font-weight:600&amp;quot;&amp;gt;Within 30 days?&amp;lt;/span&amp;gt;&quot; aiviz_kind=&quot;decision&quot; aiviz_label=&quot;Within 30 days?&quot; aiviz_auto=&quot;199,192,192,96&quot;&gt;&lt;mxCell style=&quot;rhombus;html=1;whiteSpace=wrap;fontFamily=-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif;fontSize=13;fontColor=#0F172A;fillColor=#FFF7ED;strokeColor=#D97706;strokeWidth=1.5;&quot; vertex=&quot;1&quot; parent=&quot;1&quot;&gt;&lt;mxGeometry x=&quot;199&quot; y=&quot;192&quot; width=&quot;192&quot; height=&quot;96&quot; as=&quot;geometry&quot;/&gt;&lt;/mxCell&gt;&lt;/object&gt;&lt;object id=&quot;amount&quot; label=&quot;&amp;lt;span style=&amp;quot;font-weight:600&amp;quot;&amp;gt;Over $500?&amp;lt;/span&amp;gt;&quot; aiviz_kind=&quot;decision&quot; aiviz_label=&quot;Over $500?&quot; aiviz_auto=&quot;144,400,152,80&quot;&gt;&lt;mxCell style=&quot;rhombus;html=1;whiteSpace=wrap;fontFamily=-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif;fontSize=13;fontColor=#0F172A;fillColor=#FFF7ED;strokeColor=#D97706;strokeWidth=1.5;&quot; vertex=&quot;1&quot; parent=&quot;1&quot;&gt;&lt;mxGeometry x=&quot;144&quot; y=&quot;400&quot; width=&quot;152&quot; height=&quot;80&quot; as=&quot;geometry&quot;/&gt;&lt;/mxCell&gt;&lt;/object&gt;&lt;object id=&quot;auto&quot; label=&quot;&amp;lt;span style=&amp;quot;font-weight:600&amp;quot;&amp;gt;Auto-approve&amp;lt;/span&amp;gt;&quot; aiviz_kind=&quot;step&quot; aiviz_label=&quot;Auto-approve&quot; aiviz_auto=&quot;16,696,200,40&quot;&gt;&lt;mxCell style=&quot;rounded=1;absoluteArcSize=1;arcSize=16;html=1;whiteSpace=wrap;fontFamily=-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif;fontSize=13;fontColor=#0F172A;fillColor=#FFFFFF;strokeColor=#94A3B8;strokeWidth=1.5;&quot; vertex=&quot;1&quot; parent=&quot;1&quot;&gt;&lt;mxGeometry x=&quot;16&quot; y=&quot;696&quot; width=&quot;200&quot; height=&quot;40&quot; as=&quot;geometry&quot;/&gt;&lt;/mxCell&gt;&lt;/object&gt;&lt;object id=&quot;review&quot; label=&quot;&amp;lt;span style=&amp;quot;font-weight:600&amp;quot;&amp;gt;Queue for manual review&amp;lt;/span&amp;gt;&quot; aiviz_kind=&quot;step&quot; aiviz_label=&quot;Queue for manual review&quot; aiviz_auto=&quot;224,592,200,40&quot;&gt;&lt;mxCell style=&quot;rounded=1;absoluteArcSize=1;arcSize=16;html=1;whiteSpace=wrap;fontFamily=-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif;fontSize=13;fontColor=#0F172A;fillColor=#FFFFFF;strokeColor=#94A3B8;strokeWidth=1.5;&quot; vertex=&quot;1&quot; parent=&quot;1&quot;&gt;&lt;mxGeometry x=&quot;224&quot; y=&quot;592&quot; width=&quot;200&quot; height=&quot;40&quot; as=&quot;geometry&quot;/&gt;&lt;/mxCell&gt;&lt;/object&gt;&lt;object id=&quot;approved&quot; label=&quot;&amp;lt;span style=&amp;quot;font-weight:600&amp;quot;&amp;gt;Approved?&amp;lt;/span&amp;gt;&quot; aiviz_kind=&quot;decision&quot; aiviz_label=&quot;Approved?&quot; aiviz_auto=&quot;256,680,136,72&quot;&gt;&lt;mxCell style=&quot;rhombus;html=1;whiteSpace=wrap;fontFamily=-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif;fontSize=13;fontColor=#0F172A;fillColor=#FFF7ED;strokeColor=#D97706;strokeWidth=1.5;&quot; vertex=&quot;1&quot; parent=&quot;1&quot;&gt;&lt;mxGeometry x=&quot;256&quot; y=&quot;680&quot; width=&quot;136&quot; height=&quot;72&quot; as=&quot;geometry&quot;/&gt;&lt;/mxCell&gt;&lt;/object&gt;&lt;object id=&quot;refund&quot; label=&quot;&amp;lt;span style=&amp;quot;font-weight:600&amp;quot;&amp;gt;Issue refund via Stripe&amp;lt;/span&amp;gt;&quot; aiviz_kind=&quot;step&quot; aiviz_label=&quot;Issue refund via Stripe&quot; aiviz_auto=&quot;62,864,200,40&quot;&gt;&lt;mxCell style=&quot;rounded=1;absoluteArcSize=1;arcSize=16;html=1;whiteSpace=wrap;fontFamily=-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif;fontSize=13;fontColor=#0F172A;fillColor=#FFFFFF;strokeColor=#94A3B8;strokeWidth=1.5;&quot; vertex=&quot;1&quot; parent=&quot;1&quot;&gt;&lt;mxGeometry x=&quot;62&quot; y=&quot;864&quot; width=&quot;200&quot; height=&quot;40&quot; as=&quot;geometry&quot;/&gt;&lt;/mxCell&gt;&lt;/object&gt;&lt;object id=&quot;notify&quot; label=&quot;&amp;lt;span style=&amp;quot;font-weight:600&amp;quot;&amp;gt;Email customer&amp;lt;/span&amp;gt;&quot; aiviz_kind=&quot;step&quot; aiviz_label=&quot;Email customer&quot; aiviz_auto=&quot;182,952,200,40&quot;&gt;&lt;mxCell style=&quot;rounded=1;absoluteArcSize=1;arcSize=16;html=1;whiteSpace=wrap;fontFamily=-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif;fontSize=13;fontColor=#0F172A;fillColor=#FFFFFF;strokeColor=#94A3B8;strokeWidth=1.5;&quot; vertex=&quot;1&quot; parent=&quot;1&quot;&gt;&lt;mxGeometry x=&quot;182&quot; y=&quot;952&quot; width=&quot;200&quot; height=&quot;40&quot; as=&quot;geometry&quot;/&gt;&lt;/mxCell&gt;&lt;/object&gt;&lt;object id=&quot;deny&quot; label=&quot;&amp;lt;span style=&amp;quot;font-weight:600&amp;quot;&amp;gt;Deny with reason&amp;lt;/span&amp;gt;&quot; aiviz_kind=&quot;error&quot; aiviz_label=&quot;Deny with reason&quot; aiviz_auto=&quot;302,864,200,40&quot;&gt;&lt;mxCell style=&quot;rounded=1;absoluteArcSize=1;arcSize=16;html=1;whiteSpace=wrap;fontFamily=-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif;fontSize=13;fontColor=#0F172A;fillColor=#FEF2F2;strokeColor=#DC2626;strokeWidth=1.5;&quot; vertex=&quot;1&quot; parent=&quot;1&quot;&gt;&lt;mxGeometry x=&quot;302&quot; y=&quot;864&quot; width=&quot;200&quot; height=&quot;40&quot; as=&quot;geometry&quot;/&gt;&lt;/mxCell&gt;&lt;/object&gt;&lt;object id=&quot;done&quot; label=&quot;&amp;lt;span style=&amp;quot;font-weight:600&amp;quot;&amp;gt;Done&amp;lt;/span&amp;gt;&quot; aiviz_kind=&quot;terminal&quot; aiviz_label=&quot;Done&quot; aiviz_auto=&quot;182,1040,200,40&quot;&gt;&lt;mxCell style=&quot;rounded=1;arcSize=50;html=1;whiteSpace=wrap;fontFamily=-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif;fontSize=13;fontColor=#0F172A;fillColor=#F8FAFC;strokeColor=#94A3B8;strokeWidth=1.5;&quot; vertex=&quot;1&quot; parent=&quot;1&quot;&gt;&lt;mxGeometry x=&quot;182&quot; y=&quot;1040&quot; width=&quot;200&quot; height=&quot;40&quot; as=&quot;geometry&quot;/&gt;&lt;/mxCell&gt;&lt;/object&gt;&lt;object id=&quot;e_start__lookup&quot; label=&quot;&quot; aiviz_edge=&quot;start-&amp;gt;lookup&quot; aiviz_auto=&quot;&quot;&gt;&lt;mxCell style=&quot;edgeStyle=orthogonalEdgeStyle;rounded=1;arcSize=12;html=1;strokeColor=#64748B;strokeWidth=1.5;endArrow=blockThin;endFill=1;endSize=7;startArrow=none;fontFamily=-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif;fontSize=11;fontColor=#475569;labelBackgroundColor=#FFFFFF;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;&quot; edge=&quot;1&quot; parent=&quot;1&quot; source=&quot;start&quot; target=&quot;lookup&quot;&gt;&lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot;/&gt;&lt;/mxCell&gt;&lt;/object&gt;&lt;object id=&quot;e_lookup__window&quot; label=&quot;&quot; aiviz_edge=&quot;lookup-&amp;gt;window&quot; aiviz_auto=&quot;&quot;&gt;&lt;mxCell style=&quot;edgeStyle=orthogonalEdgeStyle;rounded=1;arcSize=12;html=1;strokeColor=#64748B;strokeWidth=1.5;endArrow=blockThin;endFill=1;endSize=7;startArrow=none;fontFamily=-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif;fontSize=11;fontColor=#475569;labelBackgroundColor=#FFFFFF;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;&quot; edge=&quot;1&quot; parent=&quot;1&quot; source=&quot;lookup&quot; target=&quot;window&quot;&gt;&lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot;/&gt;&lt;/mxCell&gt;&lt;/object&gt;&lt;object id=&quot;e_window__amount&quot; label=&quot;yes&quot; aiviz_edge=&quot;window-&amp;gt;amount&quot; aiviz_auto=&quot;263,308 220,308&quot;&gt;&lt;mxCell style=&quot;edgeStyle=orthogonalEdgeStyle;rounded=1;arcSize=12;html=1;strokeColor=#64748B;strokeWidth=1.5;endArrow=blockThin;endFill=1;endSize=7;startArrow=none;fontFamily=-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif;fontSize=11;fontColor=#475569;labelBackgroundColor=#FFFFFF;exitX=0.333;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;&quot; edge=&quot;1&quot; parent=&quot;1&quot; source=&quot;window&quot; target=&quot;amount&quot;&gt;&lt;mxGeometry x=&quot;0.276&quot; relative=&quot;1&quot; as=&quot;geometry&quot;&gt;&lt;Array as=&quot;points&quot;&gt;&lt;mxPoint x=&quot;263&quot; y=&quot;308&quot;/&gt;&lt;mxPoint x=&quot;220&quot; y=&quot;308&quot;/&gt;&lt;/Array&gt;&lt;/mxGeometry&gt;&lt;/mxCell&gt;&lt;/object&gt;&lt;object id=&quot;e_window__deny&quot; label=&quot;no&quot; aiviz_edge=&quot;window-&amp;gt;deny&quot; aiviz_auto=&quot;327,308 448,308 448,836 435,836&quot;&gt;&lt;mxCell style=&quot;edgeStyle=orthogonalEdgeStyle;rounded=1;arcSize=12;html=1;strokeColor=#64748B;strokeWidth=1.5;endArrow=blockThin;endFill=1;endSize=7;startArrow=none;fontFamily=-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif;fontSize=11;fontColor=#475569;labelBackgroundColor=#FFFFFF;exitX=0.667;exitY=1;exitDx=0;exitDy=0;entryX=0.667;entryY=0;entryDx=0;entryDy=0;&quot; edge=&quot;1&quot; parent=&quot;1&quot; source=&quot;window&quot; target=&quot;deny&quot;&gt;&lt;mxGeometry x=&quot;0.040&quot; relative=&quot;1&quot; as=&quot;geometry&quot;&gt;&lt;Array as=&quot;points&quot;&gt;&lt;mxPoint x=&quot;327&quot; y=&quot;308&quot;/&gt;&lt;mxPoint x=&quot;448&quot; y=&quot;308&quot;/&gt;&lt;mxPoint x=&quot;448&quot; y=&quot;836&quot;/&gt;&lt;mxPoint x=&quot;435&quot; y=&quot;836&quot;/&gt;&lt;/Array&gt;&lt;/mxGeometry&gt;&lt;/mxCell&gt;&lt;/object&gt;&lt;object id=&quot;e_amount__auto&quot; label=&quot;no&quot; aiviz_edge=&quot;amount-&amp;gt;auto&quot; aiviz_auto=&quot;195,500 116,500&quot;&gt;&lt;mxCell style=&quot;edgeStyle=orthogonalEdgeStyle;rounded=1;arcSize=12;html=1;strokeColor=#64748B;strokeWidth=1.5;endArrow=blockThin;endFill=1;endSize=7;startArrow=none;fontFamily=-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif;fontSize=11;fontColor=#475569;labelBackgroundColor=#FFFFFF;exitX=0.333;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;&quot; edge=&quot;1&quot; parent=&quot;1&quot; source=&quot;amount&quot; target=&quot;auto&quot;&gt;&lt;mxGeometry x=&quot;-0.086&quot; relative=&quot;1&quot; as=&quot;geometry&quot;&gt;&lt;Array as=&quot;points&quot;&gt;&lt;mxPoint x=&quot;195&quot; y=&quot;500&quot;/&gt;&lt;mxPoint x=&quot;116&quot; y=&quot;500&quot;/&gt;&lt;/Array&gt;&lt;/mxGeometry&gt;&lt;/mxCell&gt;&lt;/object&gt;&lt;object id=&quot;e_amount__review&quot; label=&quot;yes&quot; aiviz_edge=&quot;amount-&amp;gt;review&quot; aiviz_auto=&quot;245,500 324,500&quot;&gt;&lt;mxCell style=&quot;edgeStyle=orthogonalEdgeStyle;rounded=1;arcSize=12;html=1;strokeColor=#64748B;strokeWidth=1.5;endArrow=blockThin;endFill=1;endSize=7;startArrow=none;fontFamily=-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif;fontSize=11;fontColor=#475569;labelBackgroundColor=#FFFFFF;exitX=0.667;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;&quot; edge=&quot;1&quot; parent=&quot;1&quot; source=&quot;amount&quot; target=&quot;review&quot;&gt;&lt;mxGeometry x=&quot;0.413&quot; relative=&quot;1&quot; as=&quot;geometry&quot;&gt;&lt;Array as=&quot;points&quot;&gt;&lt;mxPoint x=&quot;245&quot; y=&quot;500&quot;/&gt;&lt;mxPoint x=&quot;324&quot; y=&quot;500&quot;/&gt;&lt;/Array&gt;&lt;/mxGeometry&gt;&lt;/mxCell&gt;&lt;/object&gt;&lt;object id=&quot;e_review__approved&quot; label=&quot;&quot; aiviz_edge=&quot;review-&amp;gt;approved&quot; aiviz_auto=&quot;&quot;&gt;&lt;mxCell style=&quot;edgeStyle=orthogonalEdgeStyle;rounded=1;arcSize=12;html=1;strokeColor=#64748B;strokeWidth=1.5;endArrow=blockThin;endFill=1;endSize=7;startArrow=none;fontFamily=-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif;fontSize=11;fontColor=#475569;labelBackgroundColor=#FFFFFF;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;&quot; edge=&quot;1&quot; parent=&quot;1&quot; source=&quot;review&quot; target=&quot;approved&quot;&gt;&lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot;/&gt;&lt;/mxCell&gt;&lt;/object&gt;&lt;object id=&quot;e_approved__refund&quot; label=&quot;yes&quot; aiviz_edge=&quot;approved-&amp;gt;refund&quot; aiviz_auto=&quot;301,772 255,772 255,836 195,836&quot;&gt;&lt;mxCell style=&quot;edgeStyle=orthogonalEdgeStyle;rounded=1;arcSize=12;html=1;strokeColor=#64748B;strokeWidth=1.5;endArrow=blockThin;endFill=1;endSize=7;startArrow=none;fontFamily=-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif;fontSize=11;fontColor=#475569;labelBackgroundColor=#FFFFFF;exitX=0.333;exitY=1;exitDx=0;exitDy=0;entryX=0.667;entryY=0;entryDx=0;entryDy=0;&quot; edge=&quot;1&quot; parent=&quot;1&quot; source=&quot;approved&quot; target=&quot;refund&quot;&gt;&lt;mxGeometry x=&quot;-0.058&quot; relative=&quot;1&quot; as=&quot;geometry&quot;&gt;&lt;Array as=&quot;points&quot;&gt;&lt;mxPoint x=&quot;301&quot; y=&quot;772&quot;/&gt;&lt;mxPoint x=&quot;255&quot; y=&quot;772&quot;/&gt;&lt;mxPoint x=&quot;255&quot; y=&quot;836&quot;/&gt;&lt;mxPoint x=&quot;195&quot; y=&quot;836&quot;/&gt;&lt;/Array&gt;&lt;/mxGeometry&gt;&lt;/mxCell&gt;&lt;/object&gt;&lt;object id=&quot;e_approved__deny&quot; label=&quot;no&quot; aiviz_edge=&quot;approved-&amp;gt;deny&quot; aiviz_auto=&quot;347,772 351,772 351,836 369,836&quot;&gt;&lt;mxCell style=&quot;edgeStyle=orthogonalEdgeStyle;rounded=1;arcSize=12;html=1;strokeColor=#64748B;strokeWidth=1.5;endArrow=blockThin;endFill=1;endSize=7;startArrow=none;fontFamily=-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif;fontSize=11;fontColor=#475569;labelBackgroundColor=#FFFFFF;exitX=0.667;exitY=1;exitDx=0;exitDy=0;entryX=0.333;entryY=0;entryDx=0;entryDy=0;&quot; edge=&quot;1&quot; parent=&quot;1&quot; source=&quot;approved&quot; target=&quot;deny&quot;&gt;&lt;mxGeometry x=&quot;-0.095&quot; relative=&quot;1&quot; as=&quot;geometry&quot;&gt;&lt;Array as=&quot;points&quot;&gt;&lt;mxPoint x=&quot;347&quot; y=&quot;772&quot;/&gt;&lt;mxPoint x=&quot;351&quot; y=&quot;772&quot;/&gt;&lt;mxPoint x=&quot;351&quot; y=&quot;836&quot;/&gt;&lt;mxPoint x=&quot;369&quot; y=&quot;836&quot;/&gt;&lt;/Array&gt;&lt;/mxGeometry&gt;&lt;/mxCell&gt;&lt;/object&gt;&lt;object id=&quot;e_auto__refund&quot; label=&quot;&quot; aiviz_edge=&quot;auto-&amp;gt;refund&quot; aiviz_auto=&quot;116,836 129,836&quot;&gt;&lt;mxCell style=&quot;edgeStyle=orthogonalEdgeStyle;rounded=1;arcSize=12;html=1;strokeColor=#64748B;strokeWidth=1.5;endArrow=blockThin;endFill=1;endSize=7;startArrow=none;fontFamily=-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif;fontSize=11;fontColor=#475569;labelBackgroundColor=#FFFFFF;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.333;entryY=0;entryDx=0;entryDy=0;&quot; edge=&quot;1&quot; parent=&quot;1&quot; source=&quot;auto&quot; target=&quot;refund&quot;&gt;&lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot;&gt;&lt;Array as=&quot;points&quot;&gt;&lt;mxPoint x=&quot;116&quot; y=&quot;836&quot;/&gt;&lt;mxPoint x=&quot;129&quot; y=&quot;836&quot;/&gt;&lt;/Array&gt;&lt;/mxGeometry&gt;&lt;/mxCell&gt;&lt;/object&gt;&lt;object id=&quot;e_refund__notify&quot; label=&quot;&quot; aiviz_edge=&quot;refund-&amp;gt;notify&quot; aiviz_auto=&quot;162,924 249,924&quot;&gt;&lt;mxCell style=&quot;edgeStyle=orthogonalEdgeStyle;rounded=1;arcSize=12;html=1;strokeColor=#64748B;strokeWidth=1.5;endArrow=blockThin;endFill=1;endSize=7;startArrow=none;fontFamily=-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif;fontSize=11;fontColor=#475569;labelBackgroundColor=#FFFFFF;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.333;entryY=0;entryDx=0;entryDy=0;&quot; edge=&quot;1&quot; parent=&quot;1&quot; source=&quot;refund&quot; target=&quot;notify&quot;&gt;&lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot;&gt;&lt;Array as=&quot;points&quot;&gt;&lt;mxPoint x=&quot;162&quot; y=&quot;924&quot;/&gt;&lt;mxPoint x=&quot;249&quot; y=&quot;924&quot;/&gt;&lt;/Array&gt;&lt;/mxGeometry&gt;&lt;/mxCell&gt;&lt;/object&gt;&lt;object id=&quot;e_deny__notify&quot; label=&quot;&quot; aiviz_edge=&quot;deny-&amp;gt;notify&quot; aiviz_auto=&quot;402,924 315,924&quot;&gt;&lt;mxCell style=&quot;edgeStyle=orthogonalEdgeStyle;rounded=1;arcSize=12;html=1;strokeColor=#64748B;strokeWidth=1.5;endArrow=blockThin;endFill=1;endSize=7;startArrow=none;fontFamily=-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif;fontSize=11;fontColor=#475569;labelBackgroundColor=#FFFFFF;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.667;entryY=0;entryDx=0;entryDy=0;&quot; edge=&quot;1&quot; parent=&quot;1&quot; source=&quot;deny&quot; target=&quot;notify&quot;&gt;&lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot;&gt;&lt;Array as=&quot;points&quot;&gt;&lt;mxPoint x=&quot;402&quot; y=&quot;924&quot;/&gt;&lt;mxPoint x=&quot;315&quot; y=&quot;924&quot;/&gt;&lt;/Array&gt;&lt;/mxGeometry&gt;&lt;/mxCell&gt;&lt;/object&gt;&lt;object id=&quot;e_notify__done&quot; label=&quot;&quot; aiviz_edge=&quot;notify-&amp;gt;done&quot; aiviz_auto=&quot;&quot;&gt;&lt;mxCell style=&quot;edgeStyle=orthogonalEdgeStyle;rounded=1;arcSize=12;html=1;strokeColor=#64748B;strokeWidth=1.5;endArrow=blockThin;endFill=1;endSize=7;startArrow=none;fontFamily=-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif;fontSize=11;fontColor=#475569;labelBackgroundColor=#FFFFFF;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;&quot; edge=&quot;1&quot; parent=&quot;1&quot; source=&quot;notify&quot; target=&quot;done&quot;&gt;&lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot;/&gt;&lt;/mxCell&gt;&lt;/object&gt;&lt;/root&gt;&lt;/mxGraphModel&gt;&lt;/diagram&gt;&lt;/mxfile&gt;"><defs/><rect fill="#FFFFFF" width="100%" height="100%" x="0" y="0" style="fill: light-dark(rgb(255, 255, 255), rgb(18, 18, 18));"/><g><g data-cell-id="0"><g data-cell-id="1"><g data-cell-id="start"><g><rect x="195" y="16" width="200" height="40" rx="20" ry="20" fill="#f8fafc" stroke="#94a3b8" stroke-width="1.5" pointer-events="all" style="fill: light-dark(rgb(248, 250, 252), rgb(21, 23, 25)); stroke: light-dark(rgb(148, 163, 184), rgb(87, 100, 118));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 198px; height: 1px; padding-top: 36px; margin-left: 196px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #0F172A; "><div style="display: inline-block; font-size: 13px; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; color: light-dark(#0F172A, #d3daea); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><span style="font-weight:600">Refund requested</span></div></div></div></foreignObject><text x="295" y="40" fill="#0F172A" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif" font-size="13px" text-anchor="middle" style="fill: light-dark(rgb(15, 23, 42), rgb(211, 218, 234));">Refund requested</text></switch></g></g></g><g data-cell-id="lookup"><g><rect x="195" y="104" width="200" height="40" rx="8" ry="8" fill="#ffffff" stroke="#94a3b8" stroke-width="1.5" pointer-events="all" style="fill: light-dark(rgb(255, 255, 255), rgb(18, 18, 18)); stroke: light-dark(rgb(148, 163, 184), rgb(87, 100, 118));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 198px; height: 1px; padding-top: 124px; margin-left: 196px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #0F172A; "><div style="display: inline-block; font-size: 13px; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; color: light-dark(#0F172A, #d3daea); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><span style="font-weight:600">Look up order</span></div></div></div></foreignObject><text x="295" y="128" fill="#0F172A" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif" font-size="13px" text-anchor="middle" style="fill: light-dark(rgb(15, 23, 42), rgb(211, 218, 234));">Look up order</text></switch></g></g></g><g data-cell-id="window"><g><path d="M 295 192 L 391 240 L 295 288 L 199 240 Z" fill="#fff7ed" stroke="#d97706" stroke-width="1.5" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(255, 247, 237), rgb(30, 23, 15)); stroke: light-dark(rgb(217, 119, 6), rgb(197, 113, 16));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 190px; height: 1px; padding-top: 240px; margin-left: 200px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #0F172A; "><div style="display: inline-block; font-size: 13px; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; color: light-dark(#0F172A, #d3daea); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><span style="font-weight:600">Within 30 days?</span></div></div></div></foreignObject><text x="295" y="244" fill="#0F172A" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif" font-size="13px" text-anchor="middle" style="fill: light-dark(rgb(15, 23, 42), rgb(211, 218, 234));">Within 30 days?</text></switch></g></g></g><g data-cell-id="amount"><g><path d="M 220 400 L 296 440 L 220 480 L 144 440 Z" fill="#fff7ed" stroke="#d97706" stroke-width="1.5" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(255, 247, 237), rgb(30, 23, 15)); stroke: light-dark(rgb(217, 119, 6), rgb(197, 113, 16));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 150px; height: 1px; padding-top: 440px; margin-left: 145px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #0F172A; "><div style="display: inline-block; font-size: 13px; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; color: light-dark(#0F172A, #d3daea); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><span style="font-weight:600">Over $500?</span></div></div></div></foreignObject><text x="220" y="444" fill="#0F172A" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif" font-size="13px" text-anchor="middle" style="fill: light-dark(rgb(15, 23, 42), rgb(211, 218, 234));">Over $500?</text></switch></g></g></g><g data-cell-id="auto"><g><rect x="16" y="696" width="200" height="40" rx="8" ry="8" fill="#ffffff" stroke="#94a3b8" stroke-width="1.5" pointer-events="all" style="fill: light-dark(rgb(255, 255, 255), rgb(18, 18, 18)); stroke: light-dark(rgb(148, 163, 184), rgb(87, 100, 118));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 198px; height: 1px; padding-top: 716px; margin-left: 17px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #0F172A; "><div style="display: inline-block; font-size: 13px; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; color: light-dark(#0F172A, #d3daea); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><span style="font-weight:600">Auto-approve</span></div></div></div></foreignObject><text x="116" y="720" fill="#0F172A" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif" font-size="13px" text-anchor="middle" style="fill: light-dark(rgb(15, 23, 42), rgb(211, 218, 234));">Auto-approve</text></switch></g></g></g><g data-cell-id="review"><g><rect x="224" y="592" width="200" height="40" rx="8" ry="8" fill="#ffffff" stroke="#94a3b8" stroke-width="1.5" pointer-events="all" style="fill: light-dark(rgb(255, 255, 255), rgb(18, 18, 18)); stroke: light-dark(rgb(148, 163, 184), rgb(87, 100, 118));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 198px; height: 1px; padding-top: 612px; margin-left: 225px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #0F172A; "><div style="display: inline-block; font-size: 13px; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; color: light-dark(#0F172A, #d3daea); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><span style="font-weight:600">Queue for manual review</span></div></div></div></foreignObject><text x="324" y="616" fill="#0F172A" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif" font-size="13px" text-anchor="middle" style="fill: light-dark(rgb(15, 23, 42), rgb(211, 218, 234));">Queue for manual review</text></switch></g></g></g><g data-cell-id="approved"><g><path d="M 324 680 L 392 716 L 324 752 L 256 716 Z" fill="#fff7ed" stroke="#d97706" stroke-width="1.5" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(255, 247, 237), rgb(30, 23, 15)); stroke: light-dark(rgb(217, 119, 6), rgb(197, 113, 16));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 134px; height: 1px; padding-top: 716px; margin-left: 257px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #0F172A; "><div style="display: inline-block; font-size: 13px; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; color: light-dark(#0F172A, #d3daea); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><span style="font-weight:600">Approved?</span></div></div></div></foreignObject><text x="324" y="720" fill="#0F172A" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif" font-size="13px" text-anchor="middle" style="fill: light-dark(rgb(15, 23, 42), rgb(211, 218, 234));">Approved?</text></switch></g></g></g><g data-cell-id="refund"><g><rect x="62" y="864" width="200" height="40" rx="8" ry="8" fill="#ffffff" stroke="#94a3b8" stroke-width="1.5" pointer-events="all" style="fill: light-dark(rgb(255, 255, 255), rgb(18, 18, 18)); stroke: light-dark(rgb(148, 163, 184), rgb(87, 100, 118));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 198px; height: 1px; padding-top: 884px; margin-left: 63px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #0F172A; "><div style="display: inline-block; font-size: 13px; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; color: light-dark(#0F172A, #d3daea); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><span style="font-weight:600">Issue refund via Stripe</span></div></div></div></foreignObject><text x="162" y="888" fill="#0F172A" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif" font-size="13px" text-anchor="middle" style="fill: light-dark(rgb(15, 23, 42), rgb(211, 218, 234));">Issue refund via Stripe</text></switch></g></g></g><g data-cell-id="notify"><g><rect x="182" y="952" width="200" height="40" rx="8" ry="8" fill="#ffffff" stroke="#94a3b8" stroke-width="1.5" pointer-events="all" style="fill: light-dark(rgb(255, 255, 255), rgb(18, 18, 18)); stroke: light-dark(rgb(148, 163, 184), rgb(87, 100, 118));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 198px; height: 1px; padding-top: 972px; margin-left: 183px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #0F172A; "><div style="display: inline-block; font-size: 13px; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; color: light-dark(#0F172A, #d3daea); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><span style="font-weight:600">Email customer</span></div></div></div></foreignObject><text x="282" y="976" fill="#0F172A" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif" font-size="13px" text-anchor="middle" style="fill: light-dark(rgb(15, 23, 42), rgb(211, 218, 234));">Email customer</text></switch></g></g></g><g data-cell-id="deny"><g><rect x="302" y="864" width="200" height="40" rx="8" ry="8" fill="#fef2f2" stroke="#dc2626" stroke-width="1.5" pointer-events="all" style="fill: light-dark(rgb(254, 242, 242), rgb(35, 25, 25)); stroke: light-dark(rgb(220, 38, 38), rgb(255, 138, 138));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 198px; height: 1px; padding-top: 884px; margin-left: 303px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #0F172A; "><div style="display: inline-block; font-size: 13px; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; color: light-dark(#0F172A, #d3daea); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><span style="font-weight:600">Deny with reason</span></div></div></div></foreignObject><text x="402" y="888" fill="#0F172A" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif" font-size="13px" text-anchor="middle" style="fill: light-dark(rgb(15, 23, 42), rgb(211, 218, 234));">Deny with reason</text></switch></g></g></g><g data-cell-id="done"><g><rect x="182" y="1040" width="200" height="40" rx="20" ry="20" fill="#f8fafc" stroke="#94a3b8" stroke-width="1.5" pointer-events="all" style="fill: light-dark(rgb(248, 250, 252), rgb(21, 23, 25)); stroke: light-dark(rgb(148, 163, 184), rgb(87, 100, 118));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 198px; height: 1px; padding-top: 1060px; margin-left: 183px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #0F172A; "><div style="display: inline-block; font-size: 13px; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; color: light-dark(#0F172A, #d3daea); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><span style="font-weight:600">Done</span></div></div></div></foreignObject><text x="282" y="1064" fill="#0F172A" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif" font-size="13px" text-anchor="middle" style="fill: light-dark(rgb(15, 23, 42), rgb(211, 218, 234));">Done</text></switch></g></g></g><g data-cell-id="e_start__lookup"><g><path d="M 295 56 L 295 93.82" fill="none" stroke="#64748b" stroke-width="1.5" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));"/><path d="M 295 102.32 L 292.17 93.82 L 297.83 93.82 Z" fill="#64748b" stroke="#64748b" stroke-width="1.5" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(100, 116, 139), rgb(126, 140, 159)); stroke: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));"/></g></g><g data-cell-id="e_lookup__window"><g><path d="M 295 144 L 295 181.82" fill="none" stroke="#64748b" stroke-width="1.5" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));"/><path d="M 295 190.32 L 292.17 181.82 L 297.83 181.82 Z" fill="#64748b" stroke="#64748b" stroke-width="1.5" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(100, 116, 139), rgb(126, 140, 159)); stroke: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));"/></g></g><g data-cell-id="e_window__amount"><g><path d="M 270.96 275.98 L 266.98 275.99 Q 263 276 263 282 L 263 302 Q 263 308 257 308 L 226 308 Q 220 308 220 314 L 220 389.82" fill="none" stroke="#64748b" stroke-width="1.5" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));"/><path d="M 220 398.32 L 217.17 389.82 L 222.83 389.82 Z" fill="#64748b" stroke="#64748b" stroke-width="1.5" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(100, 116, 139), rgb(126, 140, 159)); stroke: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 337px; margin-left: 220px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #475569; background-color: #FFFFFF; "><div style="display: inline-block; font-size: 11px; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; color: light-dark(#475569, #9ba7b8); line-height: 1.2; pointer-events: all; background-color: light-dark(#FFFFFF, #121212); white-space: nowrap; ">yes</div></div></div></foreignObject><text x="220" y="340" fill="#475569" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif" font-size="11px" text-anchor="middle" style="fill: light-dark(rgb(71, 85, 105), rgb(155, 167, 184));">yes</text></switch></g></g></g><g data-cell-id="e_window__deny"><g><path d="M 319.04 275.98 L 323.02 275.99 Q 327 276 327 282 L 327 302 Q 327 308 333 308 L 442 308 Q 448 308 448 314 L 448 830 Q 448 836 442 836 L 438.7 836 Q 435.4 836 435.4 842 L 435.4 853.82" fill="none" stroke="#64748b" stroke-width="1.5" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));"/><path d="M 435.4 862.32 L 432.57 853.82 L 438.23 853.82 Z" fill="#64748b" stroke="#64748b" stroke-width="1.5" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(100, 116, 139), rgb(126, 140, 159)); stroke: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 526px; margin-left: 448px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #475569; background-color: #FFFFFF; "><div style="display: inline-block; font-size: 11px; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; color: light-dark(#475569, #9ba7b8); line-height: 1.2; pointer-events: all; background-color: light-dark(#FFFFFF, #121212); white-space: nowrap; ">no</div></div></div></foreignObject><text x="448" y="529" fill="#475569" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif" font-size="11px" text-anchor="middle" style="fill: light-dark(rgb(71, 85, 105), rgb(155, 167, 184));">no</text></switch></g></g></g><g data-cell-id="e_amount__auto"><g><path d="M 200.97 469.99 L 197.99 469.99 Q 195 470 195 476 L 195 494 Q 195 500 189 500 L 122 500 Q 116 500 116 506 L 116 685.82" fill="none" stroke="#64748b" stroke-width="1.5" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));"/><path d="M 116 694.32 L 113.17 685.82 L 118.83 685.82 Z" fill="#64748b" stroke="#64748b" stroke-width="1.5" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(100, 116, 139), rgb(126, 140, 159)); stroke: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 527px; margin-left: 116px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #475569; background-color: #FFFFFF; "><div style="display: inline-block; font-size: 11px; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; color: light-dark(#475569, #9ba7b8); line-height: 1.2; pointer-events: all; background-color: light-dark(#FFFFFF, #121212); white-space: nowrap; ">no</div></div></div></foreignObject><text x="116" y="530" fill="#475569" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif" font-size="11px" text-anchor="middle" style="fill: light-dark(rgb(71, 85, 105), rgb(155, 167, 184));">no</text></switch></g></g></g><g data-cell-id="e_amount__review"><g><path d="M 239.03 469.99 L 242.01 469.99 Q 245 470 245 476 L 245 494 Q 245 500 251 500 L 318 500 Q 324 500 324 506 L 324 581.82" fill="none" stroke="#64748b" stroke-width="1.5" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));"/><path d="M 324 590.32 L 321.17 581.82 L 326.83 581.82 Z" fill="#64748b" stroke="#64748b" stroke-width="1.5" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(100, 116, 139), rgb(126, 140, 159)); stroke: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 531px; margin-left: 324px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #475569; background-color: #FFFFFF; "><div style="display: inline-block; font-size: 11px; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; color: light-dark(#475569, #9ba7b8); line-height: 1.2; pointer-events: all; background-color: light-dark(#FFFFFF, #121212); white-space: nowrap; ">yes</div></div></div></foreignObject><text x="324" y="534" fill="#475569" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif" font-size="11px" text-anchor="middle" style="fill: light-dark(rgb(71, 85, 105), rgb(155, 167, 184));">yes</text></switch></g></g></g><g data-cell-id="e_review__approved"><g><path d="M 324 632 L 324 669.82" fill="none" stroke="#64748b" stroke-width="1.5" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));"/><path d="M 324 678.32 L 321.17 669.82 L 326.83 669.82 Z" fill="#64748b" stroke="#64748b" stroke-width="1.5" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(100, 116, 139), rgb(126, 140, 159)); stroke: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));"/></g></g><g data-cell-id="e_approved__refund"><g><path d="M 306.97 742.99 L 303.99 742.99 Q 301 743 301 749 L 301 766 Q 301 772 295 772 L 261 772 Q 255 772 255 778 L 255 830 Q 255 836 249 836 L 201.4 836 Q 195.4 836 195.4 842 L 195.4 853.82" fill="none" stroke="#64748b" stroke-width="1.5" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));"/><path d="M 195.4 862.32 L 192.57 853.82 L 198.23 853.82 Z" fill="#64748b" stroke="#64748b" stroke-width="1.5" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(100, 116, 139), rgb(126, 140, 159)); stroke: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 801px; margin-left: 255px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #475569; background-color: #FFFFFF; "><div style="display: inline-block; font-size: 11px; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; color: light-dark(#475569, #9ba7b8); line-height: 1.2; pointer-events: all; background-color: light-dark(#FFFFFF, #121212); white-space: nowrap; ">yes</div></div></div></foreignObject><text x="255" y="804" fill="#475569" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif" font-size="11px" text-anchor="middle" style="fill: light-dark(rgb(71, 85, 105), rgb(155, 167, 184));">yes</text></switch></g></g></g><g data-cell-id="e_approved__deny"><g><path d="M 341.03 742.99 L 344.01 742.99 Q 347 743 347 749 L 347 766 Q 347 772 349 772 L 350 772 Q 351 772 351 778 L 351 830 Q 351 836 357 836 L 362.8 836 Q 368.6 836 368.6 842 L 368.6 853.82" fill="none" stroke="#64748b" stroke-width="1.5" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));"/><path d="M 368.6 862.32 L 365.77 853.82 L 371.43 853.82 Z" fill="#64748b" stroke="#64748b" stroke-width="1.5" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(100, 116, 139), rgb(126, 140, 159)); stroke: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 800px; margin-left: 351px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #475569; background-color: #FFFFFF; "><div style="display: inline-block; font-size: 11px; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; color: light-dark(#475569, #9ba7b8); line-height: 1.2; pointer-events: all; background-color: light-dark(#FFFFFF, #121212); white-space: nowrap; ">no</div></div></div></foreignObject><text x="351" y="803" fill="#475569" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif" font-size="11px" text-anchor="middle" style="fill: light-dark(rgb(71, 85, 105), rgb(155, 167, 184));">no</text></switch></g></g></g><g data-cell-id="e_auto__refund"><g><path d="M 116 736 L 116 830 Q 116 836 122 836 L 125.3 836 Q 128.6 836 128.6 842 L 128.6 853.82" fill="none" stroke="#64748b" stroke-width="1.5" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));"/><path d="M 128.6 862.32 L 125.77 853.82 L 131.43 853.82 Z" fill="#64748b" stroke="#64748b" stroke-width="1.5" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(100, 116, 139), rgb(126, 140, 159)); stroke: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));"/></g></g><g data-cell-id="e_refund__notify"><g><path d="M 162 904 L 162 918 Q 162 924 168 924 L 242.6 924 Q 248.6 924 248.6 930 L 248.6 941.82" fill="none" stroke="#64748b" stroke-width="1.5" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));"/><path d="M 248.6 950.32 L 245.77 941.82 L 251.43 941.82 Z" fill="#64748b" stroke="#64748b" stroke-width="1.5" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(100, 116, 139), rgb(126, 140, 159)); stroke: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));"/></g></g><g data-cell-id="e_deny__notify"><g><path d="M 402 904 L 402 918 Q 402 924 396 924 L 321.4 924 Q 315.4 924 315.4 930 L 315.4 941.82" fill="none" stroke="#64748b" stroke-width="1.5" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));"/><path d="M 315.4 950.32 L 312.57 941.82 L 318.23 941.82 Z" fill="#64748b" stroke="#64748b" stroke-width="1.5" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(100, 116, 139), rgb(126, 140, 159)); stroke: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));"/></g></g><g data-cell-id="e_notify__done"><g><path d="M 282 992 L 282 1029.82" fill="none" stroke="#64748b" stroke-width="1.5" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));"/><path d="M 282 1038.32 L 279.17 1029.82 L 284.83 1029.82 Z" fill="#64748b" stroke="#64748b" stroke-width="1.5" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(100, 116, 139), rgb(126, 140, 159)); stroke: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));"/></g></g></g></g></g><switch><g requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"/><a transform="translate(0,-5)" xlink:href="https://www.drawio.com/doc/faq/svg-export-text-problems" target="_blank"><text text-anchor="middle" font-size="10px" x="50%" y="100%">Text is not SVG - cannot display</text></a></switch></svg>
@@ -0,0 +1,29 @@
1
+ type: flow
2
+ title: Refund request
3
+
4
+ nodes:
5
+ start: { label: Refund requested, kind: terminal }
6
+ lookup: { label: Look up order }
7
+ window: { label: Within 30 days?, kind: decision }
8
+ amount: { label: Over $500?, kind: decision }
9
+ auto: { label: Auto-approve }
10
+ review: { label: Queue for manual review }
11
+ approved: { label: Approved?, kind: decision }
12
+ refund: { label: Issue refund via Stripe }
13
+ notify: { label: Email customer }
14
+ deny: { label: Deny with reason, kind: error }
15
+ done: { label: Done, kind: terminal }
16
+ edges:
17
+ - start -> lookup
18
+ - lookup -> window
19
+ - window -> amount: "yes"
20
+ - window -> deny: "no"
21
+ - amount -> auto: "no"
22
+ - amount -> review: "yes"
23
+ - review -> approved
24
+ - approved -> refund: "yes"
25
+ - approved -> deny: "no"
26
+ - auto -> refund
27
+ - refund -> notify
28
+ - deny -> notify
29
+ - notify -> done