aboutsummaryrefslogtreecommitdiff
path: root/doc/flows/kyc-deposit.tex
blob: bac0ead4ead2b2104472421b2bc8cbcb3b56a8ff (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
\section{KYC: Deposit}

\begin{figure}[h!]
  \begin{center}
\begin{tikzpicture}[node distance=1cm,font=\sffamily,
    start/.style={rectangle, rounded corners, minimum width=3cm, minimum height=1cm,text centered, draw=black, fill=yellow!30},
    end/.style={rectangle, rounded corners, minimum width=3cm, minimum height=1cm,text centered, draw=black, fill=red!30},
    process/.style={rectangle, minimum width=3cm, minimum height=1cm, text centered, draw=black, fill=orange!30},
    failed/.style={rectangle, rounded corners, minimum width=3cm, minimum height=1cm, text centered, draw=black, fill=red!30},
    io/.style={trapezium, trapezium left angle=70, trapezium right angle=110, minimum width=3cm, minimum height=1cm, text centered, draw=black, fill=blue!30},
    decision/.style={diamond, minimum width=3cm, minimum height=1cm, text centered, draw=black, fill=green!30},
    arr/.style={very thick,-latex},
    every edge quotes/.style = {auto, font=\footnotesize, sloped}
    ]
 \node (start) [start] {Start};
 \node (country) [decision,below=of start,text width=2.5cm] {Target account in allowed country?};
 \node (amount) [decision, below=of country,text width=2.5cm] {Target account received less than KYC threshold?};
 \node (kyc) [process, right=of amount] {KYC process};
 \node (high) [decision, below=of amount,text width=2.5cm] {Target account received more than its AML threshold?};
 \node (aml) [process, right=of high] {AML process};
 \node (dummy) [below right=of aml] {};
 \node (allow) [end, below right=of dummy] {Allow};
 \node (deny) [failed, right=of kyc] {Deny};
 \draw[arr] (start) -> (country) {};

 \draw[arr] (country) -> (amount);
 \draw (country) edge["Yes"] (amount);

 \draw[arr] (country.east) -> (deny);
 \draw (country.east) edge["No"] (deny);

 \draw[arr] (amount) -> (high);
 \draw (amount) edge["Yes"] (high);

 \draw[arr] (amount.east) -> (kyc);
 \draw (amount.east) edge["No"] (kyc);

 \draw[arr] (kyc) -> (deny);
 \draw (kyc) edge["Failed"] (deny);

 \draw[arr] (kyc) -> (high);
 \draw (kyc) edge["Succeeded"] (high);

 \draw[arr] (high.south) -> (allow);
 \draw (high.south) edge["Yes"] (allow);

 \draw[arr] (high.east) -> (aml);
 \draw (high.east) edge["No"] (aml);

 \draw[arr] (aml) -> (deny);
 \draw (aml) edge["Violation"] (deny);

 \draw[arr] (aml) -> (allow);
 \draw (aml) edge["Ok"] (allow);
\end{tikzpicture}
  \end{center}
  \caption{Regulatory process when depositing digital cash into a bank
    account.  When the transfer is denied, the money is returned to the
    originating wallet.}
\end{figure}


\begin{table}[h!]
  \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/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}