From a8b3f0eb4ea6c7b438a4081fe9a91b38ac60b07d Mon Sep 17 00:00:00 2001 From: Christian Grothoff Date: Sun, 2 Jul 2023 14:33:59 +0200 Subject: work on regulator text --- doc/flows/main.tex | 53 +++++++++++++++++++++++++++++++---------------------- 1 file changed, 31 insertions(+), 22 deletions(-) (limited to 'doc/flows/main.tex') diff --git a/doc/flows/main.tex b/doc/flows/main.tex index 2a10578b..30d5fd3a 100644 --- a/doc/flows/main.tex +++ b/doc/flows/main.tex @@ -37,6 +37,15 @@ 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} +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 +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 +(Section~\ref{sec:proc:kyb}) and AML checks. + {\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, @@ -51,33 +60,33 @@ 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 +to less than CHF 5'000 per month and less than CHF 25'000 per year, thus ensuring that consumers remain below the thresholds where most regulatory -processes become applicable. We will, however, ensure that customers are Swiss +processes become applicable. Payments between users will be limited +to receiving less than CHF 1'000 per month and less than CHF 5'000 per year. +We will 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. +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 +payments (see Section~\ref{sec:deposit}) 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. -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.} +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.} + +For individual {\bf transactions}, we will impose a limit of CHF +1'000/transaction (even though our reading of the regulations would permit +individual transactions up to CHF 15'000). The following sections describe the respective processes for each of these interactions. @@ -111,7 +120,7 @@ There are five types if interactions that can trigger regulatory processes: \item[deposit] a merchant's {\bf bank account} is designated to receive a payment in 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 +% \item[balance] a withdraw or P2P payment causes the balance of a {\bf wallet} to exceed a given threshold \end{description} We note in bold the {\bf anchor} for the regulator process. The anchor is used @@ -129,7 +138,7 @@ Chapter~\ref{chap:regproc}. \include{kyc-deposit} \include{kyc-push} \include{kyc-pull} -\include{kyc-balance} +%\include{kyc-balance} \chapter{Regulatory Processes} \label{chap:regproc} @@ -151,7 +160,7 @@ The three main regulatory processes are: \end{description} \include{proc-domestic} -%\include{proc-kyc} +\include{proc-kyc} \include{proc-kyb} \include{proc-aml} -- cgit v1.2.3 From 2d5f0a87e0e336c6888adf878ae21613c384f89e Mon Sep 17 00:00:00 2001 From: Christian Grothoff Date: Sun, 2 Jul 2023 14:57:48 +0200 Subject: fix build --- doc/flows/int-pull.tex | 2 +- doc/flows/int-push.tex | 2 +- doc/flows/kyc-pull.tex | 2 +- doc/flows/kyc-push.tex | 2 +- doc/flows/main.de.tex | 10 +++++----- doc/flows/main.tex | 3 +++ doc/flows/proc-kyb.tex | 2 +- 7 files changed, 13 insertions(+), 10 deletions(-) (limited to 'doc/flows/main.tex') diff --git a/doc/flows/int-pull.tex b/doc/flows/int-pull.tex index 8c9b66b1..1503ec0b 100644 --- a/doc/flows/int-pull.tex +++ b/doc/flows/int-pull.tex @@ -1,4 +1,4 @@ -\section{Pull payment (aka invoicing)} +\section{Pull payment (aka invoicing)} \label{sec:pull} \begin{figure}[h!] \begin{sequencediagram} diff --git a/doc/flows/int-push.tex b/doc/flows/int-push.tex index fd49e8d4..0d95d2df 100644 --- a/doc/flows/int-push.tex +++ b/doc/flows/int-push.tex @@ -1,4 +1,4 @@ -\section{Push payment} +\section{Push payment} \label{sec:push} \begin{figure}[h!] \begin{sequencediagram} diff --git a/doc/flows/kyc-pull.tex b/doc/flows/kyc-pull.tex index 57fcc3be..d131d130 100644 --- a/doc/flows/kyc-pull.tex +++ b/doc/flows/kyc-pull.tex @@ -1,4 +1,4 @@ -\section{KYC/AML: Pull Payment} +\section{KYC/AML: Pull Payment} \label{sec:kyc:pull} \begin{figure}[h!] \begin{center} diff --git a/doc/flows/kyc-push.tex b/doc/flows/kyc-push.tex index a42318f8..4cc09c18 100644 --- a/doc/flows/kyc-push.tex +++ b/doc/flows/kyc-push.tex @@ -1,4 +1,4 @@ -\section{KYC/AML: Push Payment} +\section{KYC/AML: Push Payment} \label{sec:kyc:push} \begin{figure}[h!] \begin{center} diff --git a/doc/flows/main.de.tex b/doc/flows/main.de.tex index 88fc3fac..5f224007 100644 --- a/doc/flows/main.de.tex +++ b/doc/flows/main.de.tex @@ -118,13 +118,13 @@ Das Taler-Bezahlsystem transferiert lediglich Gelder auf die bestehenden Bankkonten der Verk\"aufer, die f\"ur ihre G\"uterleistungen Zahlungen der Nutzer erhalten, f\"ur die bereits bei der \"Uberweisung von deren Kundenkonten eine KYC-Pr\"ufung erfolgte. Daher wird unseres Erachtens -der Betreiber eines Taler-Exchange keine Mittelherkunft verlangen bzw. +der Betreiber eines Taler-Exchange keine Mittelherkunft verlangen bzw. nachweisen m\"ussen -\footnote{Wenn Unternehmen das Taler-Bezahlsystem ihrerseits f\"ur -Zahlungen nutzen wollen, m\"ussen sie genauso wie alle anderen Nutzer -zuerst Geld von ihrem Bankkonto an einen Taler-Exchange \"uberweisen, +\footnote{Wenn Unternehmen das Taler-Bezahlsystem ihrerseits f\"ur +Zahlungen nutzen wollen, m\"ussen sie genauso wie alle anderen Nutzer +zuerst Geld von ihrem Bankkonto an einen Taler-Exchange \"uberweisen, eine KYC-Pr\"ufung absolvieren und dann ihr Wallet Coins abheben lassen. -F\"ur die gesch\"aftlichen K\"aufer gelten ebenfalls die Limits wie +F\"ur die gesch\"aftlichen K\"aufer gelten ebenfalls die Limits wie f\"ur alle anderen Nutzer.}. diff --git a/doc/flows/main.tex b/doc/flows/main.tex index 30d5fd3a..be7b884e 100644 --- a/doc/flows/main.tex +++ b/doc/flows/main.tex @@ -13,8 +13,11 @@ \author{Christian Grothoff} \title{Flows in the GNU Taler System} +\newcommand\CURRENCY{CHF} + \begin{document} +\maketitle \tableofcontents \chapter{Interactions} \label{chap:interactions} diff --git a/doc/flows/proc-kyb.tex b/doc/flows/proc-kyb.tex index fa63976f..d7cd6430 100644 --- a/doc/flows/proc-kyb.tex +++ b/doc/flows/proc-kyb.tex @@ -13,7 +13,7 @@ \node at (1.5,0) {\shortstack{{{\tiny Database}}}}; \end{tikzpicture} }} - \newinst[2]{kyc}{\shortstack{KYB provider \\ + \newinst[2]{kyb}{\shortstack{KYB provider \\ \\ \begin{tikzpicture}[shape aspect=.5] \tikzset{every node/.style={cylinder,shape border rotate=90, draw,fill=gray!25}} \node at (1.5,0) {\shortstack{{{\tiny Database}}}}; -- cgit v1.2.3 From 2d4ebd3fc390f539c3e9f599046176e950a4619f Mon Sep 17 00:00:00 2001 From: Christian Grothoff Date: Sun, 2 Jul 2023 16:09:09 +0200 Subject: 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(-) (limited to 'doc/flows/main.tex') diff --git a/doc/flows/int-deposit.tex b/doc/flows/int-deposit.tex index 7303f529..661f4dcc 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 d2f0fb58..2968c4c2 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 1503ec0b..38caef6c 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 0d95d2df..faea50f7 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 9b044df6..11ae25de 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 c2b2ff24..7e1c3d1e 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 e1c625e0..93e69f84 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 be7b884e..fbda4a88 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 -- cgit v1.2.3