From 2d4ebd3fc390f539c3e9f599046176e950a4619f Mon Sep 17 00:00:00 2001 From: Christian Grothoff Date: Sun, 2 Jul 2023 16:09:09 +0200 Subject: [PATCH] unconfuse pay and deposit --- doc/flows/int-deposit.tex | 11 +++++------ doc/flows/int-pay.tex | 10 ++++++---- doc/flows/int-pull.tex | 3 ++- doc/flows/int-push.tex | 3 ++- doc/flows/int-withdraw.tex | 2 +- doc/flows/kyc-deposit.tex | 2 +- doc/flows/kyc-withdraw.tex | 2 +- doc/flows/main.tex | 10 ++++++---- 8 files changed, 24 insertions(+), 19 deletions(-) diff --git a/doc/flows/int-deposit.tex b/doc/flows/int-deposit.tex index 7303f5298..661f4dccb 100644 --- a/doc/flows/int-deposit.tex +++ b/doc/flows/int-deposit.tex @@ -1,8 +1,5 @@ \section{Deposit} \label{sec:deposit} -% FIXME: split up between deposit to merchant -% and deposit to customer's (own) bank account! - \begin{figure}[h!] \begin{sequencediagram} \newinst{wallet}{\shortstack{Customer wallet \\ @@ -16,7 +13,7 @@ \node at (1.5,0) {\shortstack{{{\tiny Database}}}}; \end{tikzpicture} }} - \newinst[2]{bank}{\shortstack{Customer bank \\ + \newinst[2]{bank}{\shortstack{Retail bank \\ \\ \begin{tikzpicture} \node [fill=gray!20,draw=black,thick,align=center] {Checking \\ Accounts}; \end{tikzpicture} @@ -41,8 +38,10 @@ \mess[0]{exchange}{{Initiate transfer}}{bank} \end{sequencediagram} - \caption{Deposit interactions between customer, Taler exchange (payment - service provider) and customer's bank.} + \caption{A customer deposits the coins issued by a Taler exchange (payment + service provider) into a bank account. Even if the + bank account is owned by the same customer, the + KYC checks from Section~\ref{sec:kyc:deposit} apply.} \label{fig:int:deposit} \end{figure} diff --git a/doc/flows/int-pay.tex b/doc/flows/int-pay.tex index d2f0fb585..2968c4c2e 100644 --- a/doc/flows/int-pay.tex +++ b/doc/flows/int-pay.tex @@ -1,4 +1,4 @@ -\section{Pay} +\section{Pay} \label{sec:pay} \begin{figure}[h!] \begin{sequencediagram} @@ -29,7 +29,7 @@ \mess[0]{merchant}{Commercial offer}{wallet} \begin{callself}{wallet}{Review offer}{} \end{callself} - \mess[0]{wallet}{Send payment {(Coins)}}{merchant} + \mess[0]{wallet}{Pay {(Coins)}}{merchant} \mess[0]{merchant}{Deposit {(Coins)}}{exchange} \begin{sdblock}{Acceptable account?}{} \mess[0]{exchange}{{Refuse deposit}}{merchant} @@ -45,8 +45,10 @@ \end{sdblock} \mess[0]{exchange}{{Initiate transfer}}{bank} \end{sequencediagram} - \caption{Deposit interactions between customer, merchant, - Taler exchange (payment service provider) and merchant bank.} + \caption{Payments from a customer to merchant result in + depositing coins at the Taler exchange (payment service provider) + which then credits the merchant's bank account. + The KYC/AML checks are described in Section~\ref{sec:kyc:deposit}} \label{fig:int:pay} \end{figure} diff --git a/doc/flows/int-pull.tex b/doc/flows/int-pull.tex index 1503ec0bd..38caef6c8 100644 --- a/doc/flows/int-pull.tex +++ b/doc/flows/int-pull.tex @@ -43,7 +43,8 @@ \end{sequencediagram} \caption{Interactions between wallets and Taler exchange - in a pull payment.} + in a pull payment. KYC/AML checks are described in + Section~\ref{sec:kyc:pull}.} \label{fig:int:pull} \end{figure} diff --git a/doc/flows/int-push.tex b/doc/flows/int-push.tex index 0d95d2df7..faea50f72 100644 --- a/doc/flows/int-push.tex +++ b/doc/flows/int-push.tex @@ -42,6 +42,7 @@ \end{sequencediagram} \caption{Interactions between wallets and Taler exchange - in a push payment.} + in a push payment. KYC/AML checks are described + in Section~\ref{sec:kyc:push}.} \label{fig:int:push} \end{figure} diff --git a/doc/flows/int-withdraw.tex b/doc/flows/int-withdraw.tex index 9b044df67..11ae25de9 100644 --- a/doc/flows/int-withdraw.tex +++ b/doc/flows/int-withdraw.tex @@ -44,6 +44,6 @@ \end{sequencediagram} \caption{Withdraw interactions between customer, Taler exchange (payment service provider) and bank. The amount of digital cash distributed is - subject to limits per origin account (see Figure~\ref{fig:kyc:withdraw}).} + subject to limits per origin account (see Section~\ref{sec:kyc:withdraw}).} \label{fig:int:withdraw} \end{figure} diff --git a/doc/flows/kyc-deposit.tex b/doc/flows/kyc-deposit.tex index c2b2ff24f..7e1c3d1ef 100644 --- a/doc/flows/kyc-deposit.tex +++ b/doc/flows/kyc-deposit.tex @@ -1,4 +1,4 @@ -\section{KYC: Deposit} +\section{KYC: Deposit} \label{sec:kyc:deposit} \begin{figure}[h!] \begin{center} diff --git a/doc/flows/kyc-withdraw.tex b/doc/flows/kyc-withdraw.tex index e1c625e09..93e69f84a 100644 --- a/doc/flows/kyc-withdraw.tex +++ b/doc/flows/kyc-withdraw.tex @@ -1,4 +1,4 @@ -\section{KYC: Withdraw} +\section{KYC: Withdraw} \label{sec:kyc:withdraw} \begin{figure}[h!] \begin{center} diff --git a/doc/flows/main.tex b/doc/flows/main.tex index be7b884ed..fbda4a881 100644 --- a/doc/flows/main.tex +++ b/doc/flows/main.tex @@ -43,7 +43,7 @@ The main interactions of the system are: In the analysis of the legal requirements, it is important to differenciate between transactions between wallets (customer-to-customer) and transactions where money flows from a wallet into a bank account (customer-to-merchant) as -these have different limits: When digital coins are deposited at a business in +these have different limits: When digital coins are used to pay at a business in Taler, the business never actually receives usable digital coins but instead the amount is always directly credited to their bank account. Depending on the transacted amounts, the business will nevertheless be subject to KYB @@ -54,7 +54,7 @@ digital cash. Taler has no accounts (this is digital cash) and thus there is no ``opening'' or ``closing'' of accounts for consumers. Given digital cash, the customers can either (1) deposit the funds explicitly into a bank account (see Section~\ref{sec:deposit}), (2) pay a merchant (see -Section~\ref{sec:deposit}), (3) pay another customer using a peer-to-peer +Section~\ref{sec:pay}), (3) pay another customer using a peer-to-peer transfer (see Sections~\ref{sec:push} and~\ref{sec:pull}), or (4) the coins will expire if the wallet was lost (including offline for a long time or uninstalled). Finally, if a wallet remains (occasionally) online but a user @@ -75,7 +75,7 @@ account and/or Swiss phone number (+41-prefix). For {\bf merchants}, the Taler equivalent of ``opening'' an account and thus establishing an ongoing business relationship is for a business to receive -payments (see Section~\ref{sec:deposit}) exceeding CHF 5'000/month or CHF +payments (see Section~\ref{sec:pay}) exceeding CHF 5'000/month or CHF 25'000/year. We will consider the account ``open'' (and require up-to-date KYB information and check sanction lists) as long as the business has made any transactions within the last 24 months. @@ -120,7 +120,9 @@ There are five types if interactions that can trigger regulatory processes: \begin{description} \item[withdraw] a customer withdraws digital cash from their {\bf bank account} - \item[deposit] a merchant's {\bf bank account} is designated to receive a payment in digital cash + \item[deposit] a customer or merchant's {\bf bank account} is + designated to receive a payment due someone paying with or + depositing digital cash \item[push] a {\bf wallet} accepts a payment from another wallet \item[pull] a {\bf wallet} requests a payment from another wallet % \item[balance] a withdraw or P2P payment causes the balance of a {\bf wallet} to exceed a given threshold