diff options
Diffstat (limited to 'doc/flows')
| -rw-r--r-- | doc/flows/int-deposit.tex | 5 | ||||
| -rw-r--r-- | doc/flows/kyc-balance.tex | 5 | ||||
| -rw-r--r-- | doc/flows/kyc-deposit.tex | 8 | ||||
| -rw-r--r-- | doc/flows/kyc-pull.tex | 8 | ||||
| -rw-r--r-- | doc/flows/kyc-push.tex | 8 | ||||
| -rw-r--r-- | doc/flows/kyc-withdraw.tex | 15 | ||||
| -rw-r--r-- | doc/flows/main.tex | 47 | ||||
| -rw-r--r-- | doc/flows/proc-domestic.tex | 2 | 
8 files changed, 72 insertions, 26 deletions
diff --git a/doc/flows/int-deposit.tex b/doc/flows/int-deposit.tex index 4b1f657b..7303f529 100644 --- a/doc/flows/int-deposit.tex +++ b/doc/flows/int-deposit.tex @@ -1,6 +1,7 @@ -\section{Deposit} - +\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} diff --git a/doc/flows/kyc-balance.tex b/doc/flows/kyc-balance.tex index 1192021b..de895366 100644 --- a/doc/flows/kyc-balance.tex +++ b/doc/flows/kyc-balance.tex @@ -49,9 +49,10 @@ if required.  \begin{table}[h!] -  \caption{Settings for the balance trigger} +  \caption{Settings for the balance trigger.}    \begin{tabular}{l|l|r}      {\bf Setting}          & {\bf Type}         & {\bf Value} \\ \hline \hline -    Default AML threshold  & Amount             & {\em 1000 CHF} \\ +    KYC threshold          & Amount             & {\em 5000 CHF} \\ +    Default AML threshold  & Amount             & {\em 5000 CHF} \\    \end{tabular}  \end{table} diff --git a/doc/flows/kyc-deposit.tex b/doc/flows/kyc-deposit.tex index 2423235a..bac0ead4 100644 --- a/doc/flows/kyc-deposit.tex +++ b/doc/flows/kyc-deposit.tex @@ -61,11 +61,13 @@  \begin{table}[h!] -  \caption{Settings for the deposit trigger} +  \caption{Settings for the deposit trigger. Note that the operation +  must satisfy all of the given rules.}    \begin{tabular}{l|l|r}      {\bf Setting}                 & {\bf Type}         & {\bf Value}    \\ \hline \hline      Allowed bank accounts         & RFC 8905 RegEx     & {\em CH*}      \\ \hline -    KYC deposit threshold         & Amount             & {\em 1000 CHF} \\ -    Default AML deposit threshold & Amount             & {\em 2500 CHF} \\ +    KYC deposit threshold         & Amount/month       & {\em  5000 CHF} \\ +    KYC deposit threshold         & Amount/year        & {\em 15000 CHF} \\ +    Default AML deposit threshold & Amount/month       & {\em  2500 CHF} \\    \end{tabular}  \end{table} diff --git a/doc/flows/kyc-pull.tex b/doc/flows/kyc-pull.tex index b7cd3447..092892ae 100644 --- a/doc/flows/kyc-pull.tex +++ b/doc/flows/kyc-pull.tex @@ -68,11 +68,13 @@  \begin{table}[h!] -  \caption{Settings for the pull payment trigger} +  \caption{Settings for the pull payment trigger. Note that the operation +  must satisfy all of the given rules.}    \begin{tabular}{l|l|r}      {\bf Setting}             & {\bf Type}      & {\bf Value} \\ \hline \hline      Permitted phone numbers   & Dialing prefix  & {\em +41} \\ -    P2P KYC threshold         & Amount          & {\em  100 CHF} \\ -    Default P2P AML threshold & Amount          & {\em 1000 CHF} \\ +    P2P KYC threshold         & Amount/month    & {\em  5000 CHF} \\ +    P2P KYC threshold         & Amount/year     & {\em 15000 CHF} \\ +    Default P2P AML threshold & Amount/month    & {\em  1000 CHF} \\    \end{tabular}  \end{table} diff --git a/doc/flows/kyc-push.tex b/doc/flows/kyc-push.tex index 6d25ac7e..45811546 100644 --- a/doc/flows/kyc-push.tex +++ b/doc/flows/kyc-push.tex @@ -69,11 +69,13 @@  \begin{table}[h!] -  \caption{Settings for the push payment trigger} +  \caption{Settings for the push payment trigger. Note that the operation +  must satisfy all of the given rules.}    \begin{tabular}{l|l|r}      {\bf Setting}             & {\bf Type}     & {\bf Value} \\ \hline \hline      Permitted phone numbers   & Dialing prefix & {\em +41} \\ -    P2P KYC threshold         & Amount         & {\em  100 CHF} \\ -    Default P2P AML threshold & Amount         & {\em 1000 CHF} \\ +    P2P KYC threshold         & Amount/month   & {\em  5000 CHF} \\ +    P2P KYC threshold         & Amount/year    & {\em 15000 CHF} \\ +    Default P2P AML threshold & Amount         & {\em  1000 CHF} \\    \end{tabular}  \end{table} diff --git a/doc/flows/kyc-withdraw.tex b/doc/flows/kyc-withdraw.tex index ecdc9a39..34141909 100644 --- a/doc/flows/kyc-withdraw.tex +++ b/doc/flows/kyc-withdraw.tex @@ -30,16 +30,21 @@    \end{center}    \caption{Regulatory process when withdrawing digital cash from a      bank account. -    When the transfer is denied the money is (eventually) returned to +    If the transfer is denied or the user fails to withdraw the +    funds for any other reason, the money is automatically returned +    after the bounce period (see Table~\ref{table:kyc:withdraw:settings}) to      the originating bank account.}    \label{fig:kyc:withdraw}  \end{figure}  \begin{table}[h!] -  \caption{Settings for the withdraw trigger} +  \caption{Settings for the withdraw trigger. Note that the operation +  must satisfy all of the given rules.} \label{table:kyc:withdraw:settings}    \begin{tabular}{l|l|r} -    {\bf Setting}            & {\bf Type}         & {\bf Value} \\ \hline \hline -    Allowed bank accounts    & RFC 8905 RegEx     & {\em CH*} \\ \hline -    Monthly withdraw maximum & Amount             & {\em 1000 CHF} \\ +    {\bf Setting}            & {\bf Type}         &  {\bf Value} \\ \hline \hline +    Allowed bank accounts    & RFC 8905 RegEx     &  {\em CH*} \\ \hline +    Withdraw maximum         & Amount/month       &  {\em 5000 CHF} \\ +    Withdraw maximum         & Amount/year        &  {\em 15000 CHF} \\ +    Bounce period            & Delay              &  1 month \\    \end{tabular}  \end{table} diff --git a/doc/flows/main.tex b/doc/flows/main.tex index c2aee65a..2a10578b 100644 --- a/doc/flows/main.tex +++ b/doc/flows/main.tex @@ -37,16 +37,48 @@ The main interactions of the system are:    \item[shutdown] the Taler payment system operator informs the customers that the system is being shut down for good  \end{description} -Taler has no accounts (this is digital cash) and thus there is no ``opening'' -or ``closing'' of accounts. The equivalent of ``opening'' an account is thus -to withdraw digital cash.  The equivalent of ``closing'' an account is to -either (1) deposit the funds explicitly into a bank account, or (2) the coins -will expire if the wallet was lost (including long-term offline or +{\bf Customers} begin their business relationship with us when they withdraw +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 +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 -does simply not spend the coins will (3) diminish in value from the change +does simply not spend the coins will (5) diminish in value from the change  fees (see Section~\ref{sec:fees:coin}) that apply to prevent the coins from  expiring outright. +For customers, we will categorically limit of digital cash withdrawn per month +to less than CHF 5000 per month and less than CHF 15000 per year, thus +ensuring that consumers remain below the thresholds where most regulatory +processes become applicable. We will, however, ensure that customers are Swiss +(see Section~\ref{sec:proc:domestic}) by requiring them to have a Swiss bank +account and/or Swiss phone number (+41-prefix).  Furthermore, the wallet will +impose an upper limit of CHF 5000 on its balance at any point in time. + +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 5000/month or CHF +15000/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. + +In contrast to normal customers, merchants can in principle {\bf receive} +payments without limit. However, these transactions must go into the bank +account of the business: when digital coins are deposited 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 be subject to KYB +(Section~\ref{sec:proc:kyb}) and AML checks. As we will only transfer money +into the existing bank accounts of the merchants to compensate them for sales +made using the Taler payment system, we do not need to check the origin of +funds for those merchants as they will only receive funds from +us.\footnote{Should businesses want to use Taler for expenditures, they will +need to withdraw digital coins from their bank account just like customers, +and the limits for customers will continue to apply.} +  The following sections describe the respective processes for each of these  interactions. @@ -119,7 +151,8 @@ The three main regulatory processes are:  \end{description}  \include{proc-domestic} -\include{proc-kyc} +%\include{proc-kyc} +\include{proc-kyb}  \include{proc-aml}  \chapter{Fees} \label{chap:fees} diff --git a/doc/flows/proc-domestic.tex b/doc/flows/proc-domestic.tex index 387b964d..f3a1b7b1 100644 --- a/doc/flows/proc-domestic.tex +++ b/doc/flows/proc-domestic.tex @@ -1,4 +1,4 @@ -\section{Domestic wallet check} +\section{Domestic wallet check} \label{sec:proc:domestic}  \begin{figure}[h!]    \begin{sequencediagram}  | 
