summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Grothoff <grothoff@gnunet.org>2023-12-18 15:55:03 +0800
committerChristian Grothoff <grothoff@gnunet.org>2023-12-18 15:58:48 +0800
commit7fef4557d0dcda50d6fa7f4da49902caec1f1752 (patch)
tree139ff344d1c4b2c89a9ab9db22e7dab121b0c742
parentac94943039f6cd70cd19b03846f5019d2eecc152 (diff)
downloaddocs-7fef4557d0dcda50d6fa7f4da49902caec1f1752.tar.gz
docs-7fef4557d0dcda50d6fa7f4da49902caec1f1752.tar.bz2
docs-7fef4557d0dcda50d6fa7f4da49902caec1f1752.zip
KYC process illustration
-rw-r--r--kyc-process.pdfbin0 -> 24633 bytes
-rw-r--r--kyc-process.pngbin0 -> 44435 bytes
-rw-r--r--kyc-process.tex58
-rw-r--r--taler-exchange-manual.rst9
4 files changed, 67 insertions, 0 deletions
diff --git a/kyc-process.pdf b/kyc-process.pdf
new file mode 100644
index 00000000..8b178c02
--- /dev/null
+++ b/kyc-process.pdf
Binary files differ
diff --git a/kyc-process.png b/kyc-process.png
new file mode 100644
index 00000000..563418b1
--- /dev/null
+++ b/kyc-process.png
Binary files differ
diff --git a/kyc-process.tex b/kyc-process.tex
new file mode 100644
index 00000000..c10dd8d9
--- /dev/null
+++ b/kyc-process.tex
@@ -0,0 +1,58 @@
+\documentclass[fleqn]{article}
+\usepackage{amsmath}
+\usepackage{multimedia}
+\usepackage[utf8]{inputenc}
+\usepackage{framed,color,ragged2e}
+\usepackage[absolute,overlay]{textpos}
+\usepackage{xcolor}
+\usepackage{relsize}
+\usepackage{graphicx}
+\usepackage{tikz,eurosym,calc}
+\usetikzlibrary{tikzmark}
+\usetikzlibrary{shapes,arrows,arrows.meta}
+\usetikzlibrary{positioning,fit,patterns}
+\usetikzlibrary{calc}
+\usepackage{pgf-umlsd}
+\usepackage{relsize}
+
+\pagestyle{empty}
+\begin{document}
+
+\begin{sequencediagram}
+ \newinst{customer}{Customer}
+ \newinst[4]{ex}{Exchange}
+ \newinst[4]{kyc}{KYC Provider}
+ \postlevel
+ \mess[0]{customer}{POST: payment request}{ex}
+ \mess[0]{ex}{POST: initiate KYC}{kyc}
+ \mess[0]{kyc}{KYC-Start-URL}{ex}
+ \mess[0]{ex}{KYC-Start-URL}{customer}
+ \postlevel
+ \mess[0]{customer}{GET: KYC-Start-URL}{kyc}
+ \mess[0]{kyc}{KYC Web Form}{customer}
+ \mess[0]{customer}{POST: KYC data}{kyc}
+ \mess[0]{kyc}{redirect URL or pending}{customer}
+ \postlevel
+ \begin{sdblock}{alternative}{}
+ \mess[0]{customer}{GET: redirect URL}{ex}
+ \mess[0]{ex}{Thanks!}{customer}
+ \end{sdblock}
+ \prelevel
+ \prelevel
+ \prelevel
+ \prelevel
+ \prelevel
+ \begin{sdblock}{alternative}{}
+ \mess[0]{kyc}{Async validation finished Webhook}{ex}
+ \mess[0]{ex}{Thanks!}{kyc}
+ \end{sdblock}
+ \postlevel
+ \mess[0]{ex}{GET: KYC status?}{kyc}
+ \mess[0]{kyc}{KYC data}{ex}
+ \mess[0]{customer}{POST: payment request}{ex}
+ \mess[0]{ex}{normal response}{customer}
+\end{sequencediagram}
+
+\end{document}
+
+
diff --git a/taler-exchange-manual.rst b/taler-exchange-manual.rst
index f663a63c..72a4418f 100644
--- a/taler-exchange-manual.rst
+++ b/taler-exchange-manual.rst
@@ -1308,6 +1308,15 @@ Taler permits an exchange to require KYC data under the following circumstances:
* Merchant receives money over a threshold
* Reserve is "opened" for invoicing or rewards (**planned feature**)
+Any of the above requests can trigger the KYC process,
+which can be illustrated as follows:
+
+.. image:: kyc-process.png
+
+At the end of the KYC process, the wallet re-tries the
+original request, and assuming KYC was successful, the
+request should then succeed.
+
Taler KYC Terminology
---------------------