summaryrefslogtreecommitdiff
path: root/design-documents/013-peer-to-peer-payments.rst
diff options
context:
space:
mode:
Diffstat (limited to 'design-documents/013-peer-to-peer-payments.rst')
-rw-r--r--design-documents/013-peer-to-peer-payments.rst104
1 files changed, 104 insertions, 0 deletions
diff --git a/design-documents/013-peer-to-peer-payments.rst b/design-documents/013-peer-to-peer-payments.rst
index 9666a85b..914d87fe 100644
--- a/design-documents/013-peer-to-peer-payments.rst
+++ b/design-documents/013-peer-to-peer-payments.rst
@@ -18,6 +18,110 @@ needing to setup anything beyond their wallet(s).
This will be used for payments via e-mail and other messaging apps, as well as
possibly for transfers via NFC/QR code between mobile phones.
+Invoice Flow User Experience
+----------------------------------
+
+.. graphviz::
+
+ digraph invoice {
+ settings [
+ label = "Invoice flow";
+ ];
+ ranksep="0.5"
+ { rank = same; "inbox"; "begin"; }
+ { rank = same; "sending"; "receiving2"; }
+ { rank = same; "receiving"; "paying"; }
+ { rank = same; "mid"; "midbox"; }
+ { rank = same; "body"; "amount"; }
+ begin [label="Seller Inbox",shape=box];
+ body [label="compose\nE-mail message"];
+ amount [label="specify\ninvoice details"];
+ receiving [label="receiving...",shape=diamond];
+ sending [label="transmitting...",shape=diamond];
+ mid [label="Seller Inbox",shape=box];
+ notified [label="Notification:\npayment received"];
+ end [label="Seller Inbox",shape=box];
+ begin -> body [label="(1) new"];
+ body -> amount [label="(2) attach invoice"];
+ amount -> body [label="(3) Ok"];
+ body -> sending [label="(4) send"];
+ sending -> mid [style=dashed];
+ mid -> receiving [style=dashed];
+ receiving -> notified [style=dashed];
+ notified -> end [label="(9) Acknowledge"];
+ inbox [label="Buyer Inbox",shape=box];
+ receiving2 [label="receiving...",shape=diamond];
+ midbox [label="Buyer Inbox",shape=box];
+ open [label="message with\nattached invoice"];
+ confirm [label="review invoice"];
+ paying [label="paying...", shape=diamond];
+ paid [label="message with\npaid invoice"];
+ finbox [label="Buyer Inbox",shape=box];
+ inbox -> receiving2 [style=dashed];
+ receiving2 -> sending [label="Internet\n(pEp)",style=dashed,dir=back];
+ receiving2 -> midbox [style=dashed];
+ midbox -> open [label="(5) select message"];
+ open -> confirm [label="(6) view invoice"];
+ confirm -> paying [label="(7) pay"];
+ paying -> paid [style=dashed];
+ paid -> finbox [label="(8) back"];
+ paying -> receiving [style=dashed, label="Internet\n(Taler)"];
+ }
+
+Donation Flow User Experience
+-------------------------------------
+
+.. graphviz::
+
+ digraph donation {
+ ranksep="0.5"
+ settings [
+ label = "Donation flow";
+ ];
+ { rank = same; "inbox"; "begin"; }
+ { rank = same; "sending"; "receiving2"; }
+ { rank = same; "body"; "amount"; }
+ { rank = same; "mid"; "midbox"; }
+ { rank = same; "accepting"; "timeout"; "receiving"; }
+ begin [label="Donor Inbox",shape=box];
+ body [label="compose\nE-mail message"];
+ amount [label="specify\npayment details"];
+ receiving [label="receiving...",shape=diamond];
+ timeout [label="timeout...",shape=diamond];
+ sending [label="transmitting...",shape=diamond];
+ mid [label="Donor Inbox",shape=box];
+ notified [label="Notification:\npayment confirmed"];
+ notified2 [label="Notification:\npayment refunded"];
+ end [label="Donor Inbox",shape=box];
+ begin -> body [label="(1) new"];
+ body -> amount [label="(2) attach payment"];
+ amount -> body [label="(3) Ok"];
+ body -> sending [label="(4) send"];
+ sending -> mid [style=dashed];
+ mid -> receiving [style=dashed];
+ receiving -> notified [style=dashed];
+ mid -> timeout [style=dashed];
+ timeout -> notified2 [style=dashed];
+ notified -> end [label="(9a) Acknowledge"];
+ notified2 -> end [label="(9b) Acknowledge"];
+ inbox [label="Recipient Inbox",shape=box];
+ receiving2 [label="receiving...",shape=diamond];
+ midbox [label="Recipient Inbox",shape=box];
+ open [label="message with\nattached payment"];
+ confirm [label="accept payment?"];
+ accepting [label="accepting...", shape=diamond];
+ paid [label="message with\naccepted payment"];
+ finbox [label="Recipient Inbox",shape=box];
+ inbox -> receiving2 [style=dashed];
+ receiving2 -> sending [label="Internet\n(pEp)",style=dashed,dir=back];
+ receiving2 -> midbox [style=dashed];
+ midbox -> open [label="(5) select message"];
+ open -> confirm [label="(6) review payment details"];
+ confirm -> accepting [label="(7) yes"];
+ accepting -> paid [style=dashed];
+ paid -> finbox [label="(8) back"];
+ accepting -> receiving [style=dashed, label="Internet\n(Taler)"];
+ }
Requirements
============