diff --git a/doc/flows/int-deposit.tex b/doc/flows/int-deposit.tex index 4b1f657ba..7303f5298 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 1192021b3..de8953665 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 2423235ab..bac0ead4e 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 b7cd34477..092892ae5 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 6d25ac7ef..458115462 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 ecdc9a399..341419095 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 c2aee65ac..2a10578bf 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 387b964d5..f3a1b7b18 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}