make_post_sell/docs/state-machine.dot.svg
Russell Ballestrini 6ceb9375de modified: Makefile
new file:   docs/state-machine.dot
	new file:   docs/state-machine.dot.svg
	renamed:    state-machine.svg -> docs/state-machine.svg
2025-09-30 15:43:54 -04:00

388 lines
34 KiB
XML

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 12.2.1 (20241206.2353)
-->
<!-- Title: G Pages: 1 -->
<svg width="1684pt" height="698pt"
viewBox="0.00 0.00 1684.38 697.74" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 693.74)">
<title>G</title>
<polygon fill="white" stroke="none" points="-4,4 -4,-693.74 1680.38,-693.74 1680.38,4 -4,4"/>
<!-- [*] -->
<g id="node1" class="node">
<title>[*]</title>
<ellipse fill="black" stroke="black" stroke-width="2" cx="7.2" cy="-167.91" rx="7.2" ry="7.2"/>
</g>
<!-- pending -->
<g id="node2" class="node">
<title>pending</title>
<path fill="#e7f3ff" stroke="#0056b3" stroke-width="2" d="M98.9,-267.91C98.9,-267.91 63.4,-267.91 63.4,-267.91 57.4,-267.91 51.4,-261.91 51.4,-255.91 51.4,-255.91 51.4,-243.91 51.4,-243.91 51.4,-237.91 57.4,-231.91 63.4,-231.91 63.4,-231.91 98.9,-231.91 98.9,-231.91 104.9,-231.91 110.9,-237.91 110.9,-243.91 110.9,-243.91 110.9,-255.91 110.9,-255.91 110.9,-261.91 104.9,-267.91 98.9,-267.91"/>
<text text-anchor="middle" x="81.15" y="-245.64" font-family="Arial" font-size="12.00" fill="#0056b3">pending</text>
</g>
<!-- [*]&#45;&gt;pending -->
<g id="edge1" class="edge">
<title>[*]&#45;&gt;pending</title>
<path fill="none" stroke="black" stroke-width="1.5" d="M13.15,-173.55C21.85,-183.47 40.45,-204.67 55.85,-222.22"/>
<polygon fill="black" stroke="black" stroke-width="1.5" points="52.82,-224.07 62.04,-229.27 58.08,-219.45 52.82,-224.07"/>
</g>
<!-- doublepay_refunded -->
<g id="node3" class="node">
<title>doublepay_refunded</title>
<path fill="#e7f3ff" stroke="#0056b3" stroke-width="2" d="M943.52,-185.91C943.52,-185.91 841.27,-185.91 841.27,-185.91 835.27,-185.91 829.27,-179.91 829.27,-173.91 829.27,-173.91 829.27,-161.91 829.27,-161.91 829.27,-155.91 835.27,-149.91 841.27,-149.91 841.27,-149.91 943.52,-149.91 943.52,-149.91 949.52,-149.91 955.52,-155.91 955.52,-161.91 955.52,-161.91 955.52,-173.91 955.52,-173.91 955.52,-179.91 949.52,-185.91 943.52,-185.91"/>
<text text-anchor="middle" x="892.4" y="-163.64" font-family="Arial" font-size="12.00" fill="#0056b3">doublepay_refunded</text>
</g>
<!-- [*]&#45;&gt;doublepay_refunded -->
<g id="edge2" class="edge">
<title>[*]&#45;&gt;doublepay_refunded</title>
<path fill="none" stroke="black" stroke-width="1.5" d="M15.35,-167.91C28.28,-167.91 56.42,-167.91 80.15,-167.91 80.15,-167.91 80.15,-167.91 627.9,-167.91 691.45,-167.91 763.63,-167.91 816.36,-167.91"/>
<polygon fill="black" stroke="black" stroke-width="1.5" points="816.04,-171.41 826.04,-167.91 816.04,-164.41 816.04,-171.41"/>
<text text-anchor="middle" x="355.03" y="-170.41" font-family="Arial" font-size="10.00">Duplicate payment detected</text>
</g>
<!-- latepay_refunded -->
<g id="node4" class="node">
<title>latepay_refunded</title>
<path fill="#e7f3ff" stroke="#0056b3" stroke-width="2" d="M934.9,-95.91C934.9,-95.91 849.9,-95.91 849.9,-95.91 843.9,-95.91 837.9,-89.91 837.9,-83.91 837.9,-83.91 837.9,-71.91 837.9,-71.91 837.9,-65.91 843.9,-59.91 849.9,-59.91 849.9,-59.91 934.9,-59.91 934.9,-59.91 940.9,-59.91 946.9,-65.91 946.9,-71.91 946.9,-71.91 946.9,-83.91 946.9,-83.91 946.9,-89.91 940.9,-95.91 934.9,-95.91"/>
<text text-anchor="middle" x="892.4" y="-73.64" font-family="Arial" font-size="12.00" fill="#0056b3">latepay_refunded</text>
</g>
<!-- [*]&#45;&gt;latepay_refunded -->
<g id="edge3" class="edge">
<title>[*]&#45;&gt;latepay_refunded</title>
<path fill="none" stroke="black" stroke-width="1.5" d="M11.05,-160.91C19.01,-142.64 43.31,-94.91 80.15,-94.91 80.15,-94.91 80.15,-94.91 627.9,-94.91 695.1,-94.91 771.73,-89.34 824.96,-84.57"/>
<polygon fill="black" stroke="black" stroke-width="1.5" points="825.06,-88.08 834.7,-83.68 824.43,-81.11 825.06,-88.08"/>
<text text-anchor="middle" x="355.03" y="-97.41" font-family="Arial" font-size="10.00">Late payment detected</text>
</g>
<!-- received -->
<g id="node5" class="node">
<title>received</title>
<path fill="#cce5ff" stroke="#004085" stroke-width="2" d="M373.9,-479.91C373.9,-479.91 336.15,-479.91 336.15,-479.91 330.15,-479.91 324.15,-473.91 324.15,-467.91 324.15,-467.91 324.15,-455.91 324.15,-455.91 324.15,-449.91 330.15,-443.91 336.15,-443.91 336.15,-443.91 373.9,-443.91 373.9,-443.91 379.9,-443.91 385.9,-449.91 385.9,-455.91 385.9,-455.91 385.9,-467.91 385.9,-467.91 385.9,-473.91 379.9,-479.91 373.9,-479.91"/>
<text text-anchor="middle" x="355.03" y="-457.64" font-family="Arial" font-size="12.00" fill="#004085">received</text>
</g>
<!-- pending&#45;&gt;received -->
<g id="edge4" class="edge">
<title>pending&#45;&gt;received</title>
<path fill="none" stroke="black" stroke-width="1.5" d="M105.9,-268.77C113.26,-274.6 121.41,-281.03 128.9,-286.91 196.48,-339.92 275.85,-401.45 320,-435.61"/>
<polygon fill="black" stroke="black" stroke-width="1.5" points="317.8,-438.34 327.86,-441.69 322.09,-432.8 317.8,-438.34"/>
<text text-anchor="middle" x="202.4" y="-402.12" font-family="Arial" font-size="10.00">Payment detected in mempool</text>
</g>
<!-- expired -->
<g id="node6" class="node">
<title>expired</title>
<path fill="#f8d7da" stroke="#721c24" stroke-width="2" d="M499.53,-289.91C499.53,-289.91 467.78,-289.91 467.78,-289.91 461.78,-289.91 455.78,-283.91 455.78,-277.91 455.78,-277.91 455.78,-265.91 455.78,-265.91 455.78,-259.91 461.78,-253.91 467.78,-253.91 467.78,-253.91 499.53,-253.91 499.53,-253.91 505.53,-253.91 511.53,-259.91 511.53,-265.91 511.53,-265.91 511.53,-277.91 511.53,-277.91 511.53,-283.91 505.53,-289.91 499.53,-289.91"/>
<text text-anchor="middle" x="483.65" y="-267.64" font-family="Arial" font-size="12.00" fill="#721c24">expired</text>
</g>
<!-- pending&#45;&gt;expired -->
<g id="edge5" class="edge">
<title>pending&#45;&gt;expired</title>
<path fill="none" stroke="black" stroke-width="1.5" d="M111.6,-251.53C182.5,-255.42 362.76,-265.33 443.04,-269.74"/>
<polygon fill="black" stroke="black" stroke-width="1.5" points="442.59,-273.22 452.76,-270.27 442.97,-266.23 442.59,-273.22"/>
<text text-anchor="middle" x="202.4" y="-262.94" font-family="Arial" font-size="10.00">Payment timeout (never received)</text>
</g>
<!-- cancelled -->
<g id="node7" class="node">
<title>cancelled</title>
<path fill="#f8d7da" stroke="#721c24" stroke-width="2" d="M776.4,-245.91C776.4,-245.91 732.65,-245.91 732.65,-245.91 726.65,-245.91 720.65,-239.91 720.65,-233.91 720.65,-233.91 720.65,-221.91 720.65,-221.91 720.65,-215.91 726.65,-209.91 732.65,-209.91 732.65,-209.91 776.4,-209.91 776.4,-209.91 782.4,-209.91 788.4,-215.91 788.4,-221.91 788.4,-221.91 788.4,-233.91 788.4,-233.91 788.4,-239.91 782.4,-245.91 776.4,-245.91"/>
<text text-anchor="middle" x="754.52" y="-223.64" font-family="Arial" font-size="12.00" fill="#721c24">cancelled</text>
</g>
<!-- pending&#45;&gt;cancelled -->
<g id="edge6" class="edge">
<title>pending&#45;&gt;cancelled</title>
<path fill="none" stroke="black" stroke-width="1.5" d="M111.86,-248.94C218.08,-245.46 579.46,-233.62 707.83,-229.41"/>
<polygon fill="black" stroke="black" stroke-width="1.5" points="707.71,-232.91 717.59,-229.09 707.48,-225.92 707.71,-232.91"/>
<text text-anchor="middle" x="355.03" y="-245.24" font-family="Arial" font-size="10.00">User cancellation</text>
</g>
<!-- doublepay_refunded_complete -->
<g id="node21" class="node">
<title>doublepay_refunded_complete</title>
<path fill="#f8d7da" stroke="#721c24" stroke-width="2" d="M1336.03,-203.91C1336.03,-203.91 1178.28,-203.91 1178.28,-203.91 1172.28,-203.91 1166.28,-197.91 1166.28,-191.91 1166.28,-191.91 1166.28,-179.91 1166.28,-179.91 1166.28,-173.91 1172.28,-167.91 1178.28,-167.91 1178.28,-167.91 1336.03,-167.91 1336.03,-167.91 1342.03,-167.91 1348.03,-173.91 1348.03,-179.91 1348.03,-179.91 1348.03,-191.91 1348.03,-191.91 1348.03,-197.91 1342.03,-203.91 1336.03,-203.91"/>
<text text-anchor="middle" x="1257.15" y="-181.64" font-family="Arial" font-size="12.00" fill="#721c24">doublepay_refunded_complete</text>
</g>
<!-- doublepay_refunded&#45;&gt;doublepay_refunded_complete -->
<g id="edge30" class="edge">
<title>doublepay_refunded&#45;&gt;doublepay_refunded_complete</title>
<path fill="none" stroke="black" stroke-width="1.5" d="M956.17,-171.03C1010.37,-173.72 1089.73,-177.65 1153.21,-180.8"/>
<polygon fill="black" stroke="black" stroke-width="1.5" points="1152.85,-184.29 1163.01,-181.29 1153.19,-177.3 1152.85,-184.29"/>
<text text-anchor="middle" x="1060.9" y="-181.55" font-family="Arial" font-size="10.00">Refund confirmed</text>
</g>
<!-- doublepay_not_refunded -->
<g id="node22" class="node">
<title>doublepay_not_refunded</title>
<path fill="#f8d7da" stroke="#721c24" stroke-width="2" d="M1319.9,-149.91C1319.9,-149.91 1194.4,-149.91 1194.4,-149.91 1188.4,-149.91 1182.4,-143.91 1182.4,-137.91 1182.4,-137.91 1182.4,-125.91 1182.4,-125.91 1182.4,-119.91 1188.4,-113.91 1194.4,-113.91 1194.4,-113.91 1319.9,-113.91 1319.9,-113.91 1325.9,-113.91 1331.9,-119.91 1331.9,-125.91 1331.9,-125.91 1331.9,-137.91 1331.9,-137.91 1331.9,-143.91 1325.9,-149.91 1319.9,-149.91"/>
<text text-anchor="middle" x="1257.15" y="-127.64" font-family="Arial" font-size="12.00" fill="#721c24">doublepay_not_refunded</text>
</g>
<!-- doublepay_refunded&#45;&gt;doublepay_not_refunded -->
<g id="edge31" class="edge">
<title>doublepay_refunded&#45;&gt;doublepay_not_refunded</title>
<path fill="none" stroke="black" stroke-width="1.5" d="M956.3,-161.09C969.54,-159.68 983.43,-158.23 996.4,-156.91 1054.07,-151.06 1118.98,-144.81 1169.49,-140.02"/>
<polygon fill="black" stroke="black" stroke-width="1.5" points="1169.79,-143.51 1179.41,-139.09 1169.13,-136.54 1169.79,-143.51"/>
<text text-anchor="middle" x="1060.9" y="-159.41" font-family="Arial" font-size="10.00">No refund wallet configured</text>
</g>
<!-- latepay_refunded_complete -->
<g id="node15" class="node">
<title>latepay_refunded_complete</title>
<path fill="#f8d7da" stroke="#721c24" stroke-width="2" d="M1327.4,-95.91C1327.4,-95.91 1186.9,-95.91 1186.9,-95.91 1180.9,-95.91 1174.9,-89.91 1174.9,-83.91 1174.9,-83.91 1174.9,-71.91 1174.9,-71.91 1174.9,-65.91 1180.9,-59.91 1186.9,-59.91 1186.9,-59.91 1327.4,-59.91 1327.4,-59.91 1333.4,-59.91 1339.4,-65.91 1339.4,-71.91 1339.4,-71.91 1339.4,-83.91 1339.4,-83.91 1339.4,-89.91 1333.4,-95.91 1327.4,-95.91"/>
<text text-anchor="middle" x="1257.15" y="-73.64" font-family="Arial" font-size="12.00" fill="#721c24">latepay_refunded_complete</text>
</g>
<!-- latepay_refunded&#45;&gt;latepay_refunded_complete -->
<g id="edge18" class="edge">
<title>latepay_refunded&#45;&gt;latepay_refunded_complete</title>
<path fill="none" stroke="black" stroke-width="1.5" d="M947.71,-77.91C1004.3,-77.91 1094.05,-77.91 1162.18,-77.91"/>
<polygon fill="black" stroke="black" stroke-width="1.5" points="1161.93,-81.41 1171.93,-77.91 1161.93,-74.41 1161.93,-81.41"/>
<text text-anchor="middle" x="1060.9" y="-80.41" font-family="Arial" font-size="10.00">Refund confirmed</text>
</g>
<!-- latepay_not_refunded -->
<g id="node16" class="node">
<title>latepay_not_refunded</title>
<path fill="#f8d7da" stroke="#721c24" stroke-width="2" d="M1311.28,-41.91C1311.28,-41.91 1203.03,-41.91 1203.03,-41.91 1197.03,-41.91 1191.03,-35.91 1191.03,-29.91 1191.03,-29.91 1191.03,-17.91 1191.03,-17.91 1191.03,-11.91 1197.03,-5.91 1203.03,-5.91 1203.03,-5.91 1311.28,-5.91 1311.28,-5.91 1317.28,-5.91 1323.28,-11.91 1323.28,-17.91 1323.28,-17.91 1323.28,-29.91 1323.28,-29.91 1323.28,-35.91 1317.28,-41.91 1311.28,-41.91"/>
<text text-anchor="middle" x="1257.15" y="-19.64" font-family="Arial" font-size="12.00" fill="#721c24">latepay_not_refunded</text>
</g>
<!-- latepay_refunded&#45;&gt;latepay_not_refunded -->
<g id="edge19" class="edge">
<title>latepay_refunded&#45;&gt;latepay_not_refunded</title>
<path fill="none" stroke="black" stroke-width="1.5" d="M947.64,-69.39C963.37,-66.95 980.56,-64.3 996.4,-61.91 1057.42,-52.71 1126.55,-42.61 1178.15,-35.14"/>
<polygon fill="black" stroke="black" stroke-width="1.5" points="1178.56,-38.62 1187.96,-33.72 1177.56,-31.69 1178.56,-38.62"/>
<text text-anchor="middle" x="1060.9" y="-64.41" font-family="Arial" font-size="10.00">No refund wallet configured</text>
</g>
<!-- confirmed -->
<g id="node8" class="node">
<title>confirmed</title>
<path fill="#d4edda" stroke="#155724" stroke-width="2" d="M1083.15,-642.91C1083.15,-642.91 1038.65,-642.91 1038.65,-642.91 1032.65,-642.91 1026.65,-636.91 1026.65,-630.91 1026.65,-630.91 1026.65,-618.91 1026.65,-618.91 1026.65,-612.91 1032.65,-606.91 1038.65,-606.91 1038.65,-606.91 1083.15,-606.91 1083.15,-606.91 1089.15,-606.91 1095.15,-612.91 1095.15,-618.91 1095.15,-618.91 1095.15,-630.91 1095.15,-630.91 1095.15,-636.91 1089.15,-642.91 1083.15,-642.91"/>
<text text-anchor="middle" x="1060.9" y="-620.64" font-family="Arial" font-size="12.00" fill="#155724">confirmed</text>
</g>
<!-- received&#45;&gt;confirmed -->
<g id="edge7" class="edge">
<title>received&#45;&gt;confirmed</title>
<path fill="none" stroke="black" stroke-width="1.5" d="M377.95,-480.8C392.93,-492.88 413.7,-508.07 434.15,-517.91 482.84,-541.33 498.3,-539.67 551.15,-550.91 719.82,-586.8 923.67,-610.67 1013.53,-620.22"/>
<polygon fill="black" stroke="black" stroke-width="1.5" points="1013.12,-623.69 1023.43,-621.26 1013.85,-616.73 1013.12,-623.69"/>
<text text-anchor="middle" x="626.9" y="-581.47" font-family="Arial" font-size="10.00">Sufficient payment + confirmations</text>
</g>
<!-- confirmed_overpay -->
<g id="node9" class="node">
<title>confirmed_overpay</title>
<path fill="#cce5ff" stroke="#004085" stroke-width="2" d="M673.9,-541.91C673.9,-541.91 579.9,-541.91 579.9,-541.91 573.9,-541.91 567.9,-535.91 567.9,-529.91 567.9,-529.91 567.9,-517.91 567.9,-517.91 567.9,-511.91 573.9,-505.91 579.9,-505.91 579.9,-505.91 673.9,-505.91 673.9,-505.91 679.9,-505.91 685.9,-511.91 685.9,-517.91 685.9,-517.91 685.9,-529.91 685.9,-529.91 685.9,-535.91 679.9,-541.91 673.9,-541.91"/>
<text text-anchor="middle" x="626.9" y="-519.64" font-family="Arial" font-size="12.00" fill="#004085">confirmed_overpay</text>
</g>
<!-- received&#45;&gt;confirmed_overpay -->
<g id="edge8" class="edge">
<title>received&#45;&gt;confirmed_overpay</title>
<path fill="none" stroke="black" stroke-width="1.5" d="M386.72,-468.96C427.46,-478.32 500.6,-495.13 555.31,-507.7"/>
<polygon fill="black" stroke="black" stroke-width="1.5" points="554.3,-511.05 564.83,-509.88 555.86,-504.23 554.3,-511.05"/>
<text text-anchor="middle" x="483.65" y="-504.59" font-family="Arial" font-size="10.00">Overpayment detected</text>
</g>
<!-- underpaid_refunded -->
<g id="node10" class="node">
<title>underpaid_refunded</title>
<path fill="#fff3cd" stroke="#856404" stroke-width="2" d="M942.4,-479.91C942.4,-479.91 842.4,-479.91 842.4,-479.91 836.4,-479.91 830.4,-473.91 830.4,-467.91 830.4,-467.91 830.4,-455.91 830.4,-455.91 830.4,-449.91 836.4,-443.91 842.4,-443.91 842.4,-443.91 942.4,-443.91 942.4,-443.91 948.4,-443.91 954.4,-449.91 954.4,-455.91 954.4,-455.91 954.4,-467.91 954.4,-467.91 954.4,-473.91 948.4,-479.91 942.4,-479.91"/>
<text text-anchor="middle" x="892.4" y="-457.64" font-family="Arial" font-size="12.00" fill="#856404">underpaid_refunded</text>
</g>
<!-- received&#45;&gt;underpaid_refunded -->
<g id="edge9" class="edge">
<title>received&#45;&gt;underpaid_refunded</title>
<path fill="none" stroke="black" stroke-width="1.5" d="M386.73,-461.91C469.35,-461.91 698.15,-461.91 817.22,-461.91"/>
<polygon fill="black" stroke="black" stroke-width="1.5" points="817.17,-465.41 827.17,-461.91 817.17,-458.41 817.17,-465.41"/>
<text text-anchor="middle" x="626.9" y="-464.41" font-family="Arial" font-size="10.00">Underpayment detected</text>
</g>
<!-- out_of_stock_refunded -->
<g id="node11" class="node">
<title>out_of_stock_refunded</title>
<path fill="#fff3cd" stroke="#856404" stroke-width="2" d="M949.15,-387.91C949.15,-387.91 835.65,-387.91 835.65,-387.91 829.65,-387.91 823.65,-381.91 823.65,-375.91 823.65,-375.91 823.65,-363.91 823.65,-363.91 823.65,-357.91 829.65,-351.91 835.65,-351.91 835.65,-351.91 949.15,-351.91 949.15,-351.91 955.15,-351.91 961.15,-357.91 961.15,-363.91 961.15,-363.91 961.15,-375.91 961.15,-375.91 961.15,-381.91 955.15,-387.91 949.15,-387.91"/>
<text text-anchor="middle" x="892.4" y="-365.64" font-family="Arial" font-size="12.00" fill="#856404">out_of_stock_refunded</text>
</g>
<!-- received&#45;&gt;out_of_stock_refunded -->
<g id="edge10" class="edge">
<title>received&#45;&gt;out_of_stock_refunded</title>
<path fill="none" stroke="black" stroke-width="1.5" d="M386.73,-456.63C467.93,-442.68 690.33,-404.46 810.99,-383.73"/>
<polygon fill="black" stroke="black" stroke-width="1.5" points="811.55,-387.18 820.81,-382.04 810.36,-380.29 811.55,-387.18"/>
<text text-anchor="middle" x="626.9" y="-430.55" font-family="Arial" font-size="10.00">Product unavailable</text>
</g>
<!-- terminated -->
<g id="node23" class="node">
<title>terminated</title>
<path fill="#e0e0e0" stroke="#333333" stroke-width="2" d="M1672.38,-313.43C1672.38,-313.43 1672.38,-318.4 1672.38,-318.4 1672.38,-320.88 1670.04,-324.21 1667.7,-325.06 1667.7,-325.06 1647.92,-332.22 1647.92,-332.22 1645.58,-333.07 1640.76,-333.91 1638.27,-333.91 1638.27,-333.91 1607.01,-333.91 1607.01,-333.91 1604.52,-333.91 1599.7,-333.07 1597.36,-332.22 1597.36,-332.22 1577.57,-325.06 1577.57,-325.06 1575.24,-324.21 1572.9,-320.88 1572.9,-318.4 1572.9,-318.4 1572.9,-313.43 1572.9,-313.43 1572.9,-310.94 1575.24,-307.61 1577.57,-306.76 1577.57,-306.76 1597.36,-299.6 1597.36,-299.6 1599.7,-298.76 1604.52,-297.91 1607.01,-297.91 1607.01,-297.91 1638.27,-297.91 1638.27,-297.91 1640.76,-297.91 1645.58,-298.76 1647.92,-299.6 1647.92,-299.6 1667.7,-306.76 1667.7,-306.76 1670.04,-307.61 1672.38,-310.94 1672.38,-313.43"/>
<path fill="none" stroke="#333333" stroke-width="2" d="M1676.38,-312.49C1676.38,-312.49 1676.38,-319.33 1676.38,-319.33 1676.38,-322.75 1673.16,-327.34 1669.94,-328.5 1669.94,-328.5 1650.38,-335.58 1650.38,-335.58 1647.16,-336.75 1640.52,-337.91 1637.1,-337.91 1637.1,-337.91 1608.18,-337.91 1608.18,-337.91 1604.76,-337.91 1598.12,-336.75 1594.9,-335.58 1594.9,-335.58 1575.33,-328.5 1575.33,-328.5 1572.12,-327.34 1568.9,-322.75 1568.9,-319.33 1568.9,-319.33 1568.9,-312.49 1568.9,-312.49 1568.9,-309.07 1572.12,-304.49 1575.33,-303.32 1575.33,-303.32 1594.9,-296.24 1594.9,-296.24 1598.12,-295.08 1604.76,-293.91 1608.18,-293.91 1608.18,-293.91 1637.1,-293.91 1637.1,-293.91 1640.52,-293.91 1647.16,-295.08 1650.38,-296.24 1650.38,-296.24 1669.94,-303.32 1669.94,-303.32 1673.16,-304.49 1676.38,-309.07 1676.38,-312.49"/>
<text text-anchor="middle" x="1622.64" y="-311.64" font-family="Arial" font-size="12.00" fill="#333333">terminated</text>
</g>
<!-- expired&#45;&gt;terminated -->
<g id="edge17" class="edge">
<title>expired&#45;&gt;terminated</title>
<path fill="none" stroke="black" stroke-width="1.5" d="M512.25,-271.56C621.35,-270.34 1033.02,-267.52 1370.9,-288.91 1433.87,-292.9 1505.41,-300.95 1555.91,-307.23"/>
<polygon fill="black" stroke="black" stroke-width="1.5" points="1555.34,-310.69 1565.7,-308.46 1556.22,-303.74 1555.34,-310.69"/>
<text text-anchor="middle" x="892.4" y="-276.84" font-family="Arial" font-size="10.00">✓ Terminal Failed (Expired)</text>
</g>
<!-- cancelled&#45;&gt;terminated -->
<g id="edge34" class="edge">
<title>cancelled&#45;&gt;terminated</title>
<path fill="none" stroke="black" stroke-width="1.5" d="M788.97,-226.21C921.42,-219.89 1408.84,-200.92 1550.9,-255.91 1566.82,-262.07 1581.68,-273.42 1593.63,-284.59"/>
<polygon fill="black" stroke="black" stroke-width="1.5" points="1590.98,-286.9 1600.56,-291.43 1595.9,-281.91 1590.98,-286.9"/>
<text text-anchor="middle" x="1060.9" y="-222.44" font-family="Arial" font-size="10.00">✓ Terminal Failed (Cancelled)</text>
</g>
<!-- confirmed&#45;&gt;terminated -->
<g id="edge11" class="edge">
<title>confirmed&#45;&gt;terminated</title>
<path fill="none" stroke="black" stroke-width="1.5" d="M1095.96,-636.62C1182.86,-664.12 1415.45,-722.61 1550.9,-612.91 1591.51,-580.02 1611.52,-421.63 1618.58,-350.55"/>
<polygon fill="black" stroke="black" stroke-width="1.5" points="1622.03,-351.29 1619.5,-341 1615.06,-350.62 1622.03,-351.29"/>
<text text-anchor="middle" x="1257.15" y="-680.24" font-family="Arial" font-size="10.00">✓ Terminal Success</text>
</g>
<!-- confirmed_overpay_refunded -->
<g id="node12" class="node">
<title>confirmed_overpay_refunded</title>
<path fill="#fff3cd" stroke="#856404" stroke-width="2" d="M966.4,-549.91C966.4,-549.91 818.4,-549.91 818.4,-549.91 812.4,-549.91 806.4,-543.91 806.4,-537.91 806.4,-537.91 806.4,-525.91 806.4,-525.91 806.4,-519.91 812.4,-513.91 818.4,-513.91 818.4,-513.91 966.4,-513.91 966.4,-513.91 972.4,-513.91 978.4,-519.91 978.4,-525.91 978.4,-525.91 978.4,-537.91 978.4,-537.91 978.4,-543.91 972.4,-549.91 966.4,-549.91"/>
<text text-anchor="middle" x="892.4" y="-527.64" font-family="Arial" font-size="12.00" fill="#856404">confirmed_overpay_refunded</text>
</g>
<!-- confirmed_overpay&#45;&gt;confirmed_overpay_refunded -->
<g id="edge12" class="edge">
<title>confirmed_overpay&#45;&gt;confirmed_overpay_refunded</title>
<path fill="none" stroke="black" stroke-width="1.5" d="M686.71,-525.7C718.12,-526.65 757.61,-527.85 793.5,-528.94"/>
<polygon fill="black" stroke="black" stroke-width="1.5" points="793.15,-532.43 803.25,-529.24 793.36,-525.43 793.15,-532.43"/>
<text text-anchor="middle" x="754.52" y="-531.13" font-family="Arial" font-size="10.00">Initiate refund</text>
</g>
<!-- underpaid_refunded_complete -->
<g id="node17" class="node">
<title>underpaid_refunded_complete</title>
<path fill="#f8d7da" stroke="#721c24" stroke-width="2" d="M1334.9,-495.91C1334.9,-495.91 1179.4,-495.91 1179.4,-495.91 1173.4,-495.91 1167.4,-489.91 1167.4,-483.91 1167.4,-483.91 1167.4,-471.91 1167.4,-471.91 1167.4,-465.91 1173.4,-459.91 1179.4,-459.91 1179.4,-459.91 1334.9,-459.91 1334.9,-459.91 1340.9,-459.91 1346.9,-465.91 1346.9,-471.91 1346.9,-471.91 1346.9,-483.91 1346.9,-483.91 1346.9,-489.91 1340.9,-495.91 1334.9,-495.91"/>
<text text-anchor="middle" x="1257.15" y="-473.64" font-family="Arial" font-size="12.00" fill="#721c24">underpaid_refunded_complete</text>
</g>
<!-- underpaid_refunded&#45;&gt;underpaid_refunded_complete -->
<g id="edge22" class="edge">
<title>underpaid_refunded&#45;&gt;underpaid_refunded_complete</title>
<path fill="none" stroke="black" stroke-width="1.5" d="M955.35,-464.64C1009.91,-467.05 1090.42,-470.6 1154.42,-473.42"/>
<polygon fill="black" stroke="black" stroke-width="1.5" points="1154.17,-476.92 1164.31,-473.86 1154.48,-469.92 1154.17,-476.92"/>
<text text-anchor="middle" x="1060.9" y="-474.32" font-family="Arial" font-size="10.00">Refund confirmed</text>
</g>
<!-- underpaid_not_refunded -->
<g id="node18" class="node">
<title>underpaid_not_refunded</title>
<path fill="#f8d7da" stroke="#721c24" stroke-width="2" d="M1318.78,-441.91C1318.78,-441.91 1195.53,-441.91 1195.53,-441.91 1189.53,-441.91 1183.53,-435.91 1183.53,-429.91 1183.53,-429.91 1183.53,-417.91 1183.53,-417.91 1183.53,-411.91 1189.53,-405.91 1195.53,-405.91 1195.53,-405.91 1318.78,-405.91 1318.78,-405.91 1324.78,-405.91 1330.78,-411.91 1330.78,-417.91 1330.78,-417.91 1330.78,-429.91 1330.78,-429.91 1330.78,-435.91 1324.78,-441.91 1318.78,-441.91"/>
<text text-anchor="middle" x="1257.15" y="-419.64" font-family="Arial" font-size="12.00" fill="#721c24">underpaid_not_refunded</text>
</g>
<!-- underpaid_refunded&#45;&gt;underpaid_not_refunded -->
<g id="edge23" class="edge">
<title>underpaid_refunded&#45;&gt;underpaid_not_refunded</title>
<path fill="none" stroke="black" stroke-width="1.5" d="M955.22,-455.28C968.78,-453.83 983.08,-452.32 996.4,-450.91 1054.53,-444.79 1119.98,-437.98 1170.64,-432.74"/>
<polygon fill="black" stroke="black" stroke-width="1.5" points="1170.68,-436.25 1180.27,-431.74 1169.96,-429.29 1170.68,-436.25"/>
<text text-anchor="middle" x="1060.9" y="-453.41" font-family="Arial" font-size="10.00">No refund wallet configured</text>
</g>
<!-- out_of_stock_refunded_complete -->
<g id="node19" class="node">
<title>out_of_stock_refunded_complete</title>
<path fill="#f8d7da" stroke="#721c24" stroke-width="2" d="M1341.65,-387.91C1341.65,-387.91 1172.65,-387.91 1172.65,-387.91 1166.65,-387.91 1160.65,-381.91 1160.65,-375.91 1160.65,-375.91 1160.65,-363.91 1160.65,-363.91 1160.65,-357.91 1166.65,-351.91 1172.65,-351.91 1172.65,-351.91 1341.65,-351.91 1341.65,-351.91 1347.65,-351.91 1353.65,-357.91 1353.65,-363.91 1353.65,-363.91 1353.65,-375.91 1353.65,-375.91 1353.65,-381.91 1347.65,-387.91 1341.65,-387.91"/>
<text text-anchor="middle" x="1257.15" y="-365.64" font-family="Arial" font-size="12.00" fill="#721c24">out_of_stock_refunded_complete</text>
</g>
<!-- out_of_stock_refunded&#45;&gt;out_of_stock_refunded_complete -->
<g id="edge26" class="edge">
<title>out_of_stock_refunded&#45;&gt;out_of_stock_refunded_complete</title>
<path fill="none" stroke="black" stroke-width="1.5" d="M962.06,-369.91C1014.32,-369.91 1087.28,-369.91 1147.46,-369.91"/>
<polygon fill="black" stroke="black" stroke-width="1.5" points="1147.43,-373.41 1157.43,-369.91 1147.43,-366.41 1147.43,-373.41"/>
<text text-anchor="middle" x="1060.9" y="-372.41" font-family="Arial" font-size="10.00">Refund confirmed</text>
</g>
<!-- out_of_stock_not_refunded -->
<g id="node20" class="node">
<title>out_of_stock_not_refunded</title>
<path fill="#f8d7da" stroke="#721c24" stroke-width="2" d="M1325.53,-333.91C1325.53,-333.91 1188.78,-333.91 1188.78,-333.91 1182.78,-333.91 1176.78,-327.91 1176.78,-321.91 1176.78,-321.91 1176.78,-309.91 1176.78,-309.91 1176.78,-303.91 1182.78,-297.91 1188.78,-297.91 1188.78,-297.91 1325.53,-297.91 1325.53,-297.91 1331.53,-297.91 1337.53,-303.91 1337.53,-309.91 1337.53,-309.91 1337.53,-321.91 1337.53,-321.91 1337.53,-327.91 1331.53,-333.91 1325.53,-333.91"/>
<text text-anchor="middle" x="1257.15" y="-311.64" font-family="Arial" font-size="12.00" fill="#721c24">out_of_stock_not_refunded</text>
</g>
<!-- out_of_stock_refunded&#45;&gt;out_of_stock_not_refunded -->
<g id="edge27" class="edge">
<title>out_of_stock_refunded&#45;&gt;out_of_stock_not_refunded</title>
<path fill="none" stroke="black" stroke-width="1.5" d="M962.09,-359.15C973.54,-357.39 985.31,-355.58 996.4,-353.91 1051.98,-345.53 1114.29,-336.4 1163.95,-329.2"/>
<polygon fill="black" stroke="black" stroke-width="1.5" points="1164.33,-332.68 1173.72,-327.78 1163.32,-325.75 1164.33,-332.68"/>
<text text-anchor="middle" x="1060.9" y="-356.41" font-family="Arial" font-size="10.00">No refund wallet configured</text>
</g>
<!-- confirmed_overpay_refunded_complete -->
<g id="node13" class="node">
<title>confirmed_overpay_refunded_complete</title>
<path fill="#d4edda" stroke="#155724" stroke-width="2" d="M1358.9,-603.91C1358.9,-603.91 1155.4,-603.91 1155.4,-603.91 1149.4,-603.91 1143.4,-597.91 1143.4,-591.91 1143.4,-591.91 1143.4,-579.91 1143.4,-579.91 1143.4,-573.91 1149.4,-567.91 1155.4,-567.91 1155.4,-567.91 1358.9,-567.91 1358.9,-567.91 1364.9,-567.91 1370.9,-573.91 1370.9,-579.91 1370.9,-579.91 1370.9,-591.91 1370.9,-591.91 1370.9,-597.91 1364.9,-603.91 1358.9,-603.91"/>
<text text-anchor="middle" x="1257.15" y="-581.64" font-family="Arial" font-size="12.00" fill="#155724">confirmed_overpay_refunded_complete</text>
</g>
<!-- confirmed_overpay_refunded&#45;&gt;confirmed_overpay_refunded_complete -->
<g id="edge13" class="edge">
<title>confirmed_overpay_refunded&#45;&gt;confirmed_overpay_refunded_complete</title>
<path fill="none" stroke="black" stroke-width="1.5" d="M979.38,-545.33C985.14,-546.21 990.85,-547.07 996.4,-547.91 1040.17,-554.51 1088.11,-561.57 1130.76,-567.8"/>
<polygon fill="black" stroke="black" stroke-width="1.5" points="1130,-571.22 1140.4,-569.2 1131.01,-564.29 1130,-571.22"/>
<text text-anchor="middle" x="1060.9" y="-569.34" font-family="Arial" font-size="10.00">Refund confirmed</text>
</g>
<!-- confirmed_overpay_not_refunded -->
<g id="node14" class="node">
<title>confirmed_overpay_not_refunded</title>
<path fill="#d4edda" stroke="#155724" stroke-width="2" d="M1342.78,-549.91C1342.78,-549.91 1171.53,-549.91 1171.53,-549.91 1165.53,-549.91 1159.53,-543.91 1159.53,-537.91 1159.53,-537.91 1159.53,-525.91 1159.53,-525.91 1159.53,-519.91 1165.53,-513.91 1171.53,-513.91 1171.53,-513.91 1342.78,-513.91 1342.78,-513.91 1348.78,-513.91 1354.78,-519.91 1354.78,-525.91 1354.78,-525.91 1354.78,-537.91 1354.78,-537.91 1354.78,-543.91 1348.78,-549.91 1342.78,-549.91"/>
<text text-anchor="middle" x="1257.15" y="-527.64" font-family="Arial" font-size="12.00" fill="#155724">confirmed_overpay_not_refunded</text>
</g>
<!-- confirmed_overpay_refunded&#45;&gt;confirmed_overpay_not_refunded -->
<g id="edge14" class="edge">
<title>confirmed_overpay_refunded&#45;&gt;confirmed_overpay_not_refunded</title>
<path fill="none" stroke="black" stroke-width="1.5" d="M979.37,-531.91C1029.43,-531.91 1093.04,-531.91 1146.65,-531.91"/>
<polygon fill="black" stroke="black" stroke-width="1.5" points="1146.37,-535.41 1156.37,-531.91 1146.37,-528.41 1146.37,-535.41"/>
<text text-anchor="middle" x="1060.9" y="-534.41" font-family="Arial" font-size="10.00">No refund wallet configured</text>
</g>
<!-- confirmed_overpay_refunded_complete&#45;&gt;terminated -->
<g id="edge15" class="edge">
<title>confirmed_overpay_refunded_complete&#45;&gt;terminated</title>
<path fill="none" stroke="black" stroke-width="1.5" d="M1371.67,-596.89C1431.41,-596.51 1502.17,-585.48 1550.9,-543.91 1607.9,-495.29 1619.67,-401.65 1621.67,-350.82"/>
<polygon fill="black" stroke="black" stroke-width="1.5" points="1625.17,-350.93 1621.93,-340.84 1618.17,-350.74 1625.17,-350.93"/>
<text text-anchor="middle" x="1469.9" y="-599.71" font-family="Arial" font-size="10.00">✓ Terminal Success</text>
</g>
<!-- confirmed_overpay_not_refunded&#45;&gt;terminated -->
<g id="edge16" class="edge">
<title>confirmed_overpay_not_refunded&#45;&gt;terminated</title>
<path fill="none" stroke="black" stroke-width="1.5" d="M1355.63,-529.7C1428.73,-526.16 1521.11,-517.07 1550.9,-493.91 1595.53,-459.21 1612.08,-392.1 1618.16,-350.93"/>
<polygon fill="black" stroke="black" stroke-width="1.5" points="1621.63,-351.42 1619.47,-341.05 1614.69,-350.5 1621.63,-351.42"/>
<text text-anchor="middle" x="1469.9" y="-530.7" font-family="Arial" font-size="10.00">✓ Terminal Success (Not Refunded)</text>
</g>
<!-- latepay_refunded_complete&#45;&gt;terminated -->
<g id="edge20" class="edge">
<title>latepay_refunded_complete&#45;&gt;terminated</title>
<path fill="none" stroke="black" stroke-width="1.5" d="M1340.17,-62.84C1404.26,-55.89 1492.05,-57.64 1550.9,-104.16 1605.07,-146.98 1618.11,-232.76 1621.02,-280.97"/>
<polygon fill="black" stroke="black" stroke-width="1.5" points="1617.52,-281.12 1621.49,-290.95 1624.52,-280.8 1617.52,-281.12"/>
<text text-anchor="middle" x="1469.9" y="-107.41" font-family="Arial" font-size="10.00">✓ Terminal Failed (Refund Complete)</text>
</g>
<!-- latepay_not_refunded&#45;&gt;terminated -->
<g id="edge21" class="edge">
<title>latepay_not_refunded&#45;&gt;terminated</title>
<path fill="none" stroke="black" stroke-width="1.5" d="M1323.99,-8.14C1389.15,3.31 1488.02,8.88 1550.9,-43.16 1587.54,-73.49 1609.34,-215.13 1617.69,-281.47"/>
<polygon fill="black" stroke="black" stroke-width="1.5" points="1614.18,-281.55 1618.87,-291.05 1621.13,-280.7 1614.18,-281.55"/>
<text text-anchor="middle" x="1469.9" y="-46.41" font-family="Arial" font-size="10.00">✓ Terminal Failed (Not Refunded)</text>
</g>
<!-- underpaid_refunded_complete&#45;&gt;terminated -->
<g id="edge24" class="edge">
<title>underpaid_refunded_complete&#45;&gt;terminated</title>
<path fill="none" stroke="black" stroke-width="1.5" d="M1347.76,-482.36C1409.64,-481.19 1491.2,-470.82 1550.9,-430.91 1579.76,-411.62 1598.9,-376.17 1609.91,-349.7"/>
<polygon fill="black" stroke="black" stroke-width="1.5" points="1613.03,-351.33 1613.44,-340.74 1606.52,-348.76 1613.03,-351.33"/>
<text text-anchor="middle" x="1469.9" y="-483.11" font-family="Arial" font-size="10.00">✓ Terminal Failed (Refund Complete)</text>
</g>
<!-- underpaid_not_refunded&#45;&gt;terminated -->
<g id="edge25" class="edge">
<title>underpaid_not_refunded&#45;&gt;terminated</title>
<path fill="none" stroke="black" stroke-width="1.5" d="M1331.52,-421.3C1392.61,-416.79 1480.65,-404.74 1550.9,-372.91 1565.41,-366.34 1579.48,-356.08 1591.2,-346.07"/>
<polygon fill="black" stroke="black" stroke-width="1.5" points="1593.23,-348.94 1598.37,-339.67 1588.57,-343.72 1593.23,-348.94"/>
<text text-anchor="middle" x="1469.9" y="-417.66" font-family="Arial" font-size="10.00">✓ Terminal Failed (Not Refunded)</text>
</g>
<!-- out_of_stock_refunded_complete&#45;&gt;terminated -->
<g id="edge28" class="edge">
<title>out_of_stock_refunded_complete&#45;&gt;terminated</title>
<path fill="none" stroke="black" stroke-width="1.5" d="M1354.48,-360.44C1411.78,-354.13 1485.77,-344.82 1550.9,-332.91 1554.22,-332.3 1557.62,-331.64 1561.04,-330.93"/>
<polygon fill="black" stroke="black" stroke-width="1.5" points="1561.45,-334.43 1570.48,-328.89 1559.96,-327.59 1561.45,-334.43"/>
<text text-anchor="middle" x="1469.9" y="-359.37" font-family="Arial" font-size="10.00">✓ Terminal Failed (Refund Complete)</text>
</g>
<!-- out_of_stock_not_refunded&#45;&gt;terminated -->
<g id="edge29" class="edge">
<title>out_of_stock_not_refunded&#45;&gt;terminated</title>
<path fill="none" stroke="black" stroke-width="1.5" d="M1338.37,-315.91C1403.7,-315.91 1494.79,-315.91 1555.87,-315.91"/>
<polygon fill="black" stroke="black" stroke-width="1.5" points="1555.78,-319.41 1565.78,-315.91 1555.78,-312.41 1555.78,-319.41"/>
<text text-anchor="middle" x="1469.9" y="-319.16" font-family="Arial" font-size="10.00">✓ Terminal Failed (Not Refunded)</text>
</g>
<!-- doublepay_refunded_complete&#45;&gt;terminated -->
<g id="edge32" class="edge">
<title>doublepay_refunded_complete&#45;&gt;terminated</title>
<path fill="none" stroke="black" stroke-width="1.5" d="M1348.79,-183.09C1421.89,-182.41 1517.8,-185.59 1550.9,-205.16 1579.68,-222.18 1598.69,-256.01 1609.69,-281.82"/>
<polygon fill="black" stroke="black" stroke-width="1.5" points="1606.37,-282.95 1613.34,-290.93 1612.86,-280.34 1606.37,-282.95"/>
<text text-anchor="middle" x="1469.9" y="-208.41" font-family="Arial" font-size="10.00">✓ Terminal Failed (Refund Complete)</text>
</g>
<!-- doublepay_not_refunded&#45;&gt;terminated -->
<g id="edge33" class="edge">
<title>doublepay_not_refunded&#45;&gt;terminated</title>
<path fill="none" stroke="black" stroke-width="1.5" d="M1332.88,-121.78C1396.67,-117.23 1487.83,-120.85 1550.9,-166.16 1588.81,-193.4 1607.09,-246.32 1615.39,-281.39"/>
<polygon fill="black" stroke="black" stroke-width="1.5" points="1611.88,-281.74 1617.44,-290.76 1618.72,-280.25 1611.88,-281.74"/>
<text text-anchor="middle" x="1469.9" y="-169.41" font-family="Arial" font-size="10.00">✓ Terminal Failed (Not Refunded)</text>
</g>
</g>
</svg>