int-pull.tex (2086B)
1 \section{Pull payment (aka invoicing)} \label{sec:pull} 2 3 \begin{figure}[h!] 4 \begin{sequencediagram} 5 \newinst{payer}{\shortstack{Payer \\ 6 \\ \begin{tikzpicture} 7 \node [fill=gray!20,draw=black,thick,align=center] {Pre-funded \\ Wallet}; 8 \end{tikzpicture} 9 }} 10 \newinst[2]{exchange}{\shortstack{Taler (exchange) \\ 11 \\ \begin{tikzpicture}[shape aspect=.5] 12 \tikzset{every node/.style={cylinder,shape border rotate=90, draw,fill=gray!25}} 13 \node at (1.5,0) {\shortstack{{{\tiny Database}}}}; 14 \end{tikzpicture} 15 }} 16 \newinst[2]{payee}{\shortstack{Payee \\ 17 \\ \begin{tikzpicture} 18 \node [fill=gray!20,draw=black,thick,align=center] { Unique \\ Wallet ID}; 19 \end{tikzpicture} 20 }} 21 \postlevel 22 \begin{callself}{payee}{Review pull payment fees}{} 23 \end{callself} 24 \mess[0]{payee}{{Create invoice (Wallet ID)}}{exchange} 25 26 \mess[0]{exchange}{{Invoice ready}}{payee} 27 \mess[0]{payee}{{Send invoice (e.g. via QR code)}}{payer} 28 29 \begin{callself}{payer}{Review invoice}{} 30 \end{callself} 31 \mess[0]{payer}{{Make payment (Coins)}}{exchange} 32 33 \begin{sdblock}{Domestic wallet?}{} 34 \begin{callself}{exchange}{Figure~\ref{fig:proc:domestic}}{} 35 \end{callself} 36 \end{sdblock} 37 \begin{sdblock}{KYC/AML required?}{} 38 \begin{callself}{exchange}{Figures~\ref{fig:proc:kyc}, \ref{fig:proc:aml}}{} 39 \end{callself} 40 \end{sdblock} 41 42 \mess[0]{exchange}{{Distribute digital cash}}{payee} 43 44 \end{sequencediagram} 45 \caption{Interactions between wallets and Taler exchange 46 in a pull payment. KYC/AML checks are described in 47 Section~\ref{sec:kyc:pull}.} 48 \label{fig:int:pull} 49 \end{figure} 50 51 We do {\bf not} permit the payer to regain control over their funds, once the 52 payment was made they are locked {\em until} the payee passes the KYC/AML 53 checks. We only do the AML/KYC process once the funds are locked at the 54 exchange. This ensures we know the actual transacted amounts (which may be 55 lower than the total amounts requested) and prevents risk-free probing 56 attacks.