summaryrefslogtreecommitdiff
path: root/design-documents
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2021-10-03 14:57:57 +0200
committerChristian Grothoff <christian@grothoff.org>2021-10-03 14:57:57 +0200
commit58f64cdb95e6ecd51c0d9d71d57492861a8fb72e (patch)
treeda0805459a0804ecfb29c7fcd6bdb07656774610 /design-documents
parent8f3c14cf93716f3fe2a60b89107403eb96bc2bec (diff)
downloaddocs-58f64cdb95e6ecd51c0d9d71d57492861a8fb72e.tar.gz
docs-58f64cdb95e6ecd51c0d9d71d57492861a8fb72e.tar.bz2
docs-58f64cdb95e6ecd51c0d9d71d57492861a8fb72e.zip
-spec update
Diffstat (limited to 'design-documents')
-rw-r--r--design-documents/023-taler-kyc.rst20
1 files changed, 11 insertions, 9 deletions
diff --git a/design-documents/023-taler-kyc.rst b/design-documents/023-taler-kyc.rst
index 12a4cf00..60479979 100644
--- a/design-documents/023-taler-kyc.rst
+++ b/design-documents/023-taler-kyc.rst
@@ -22,20 +22,20 @@ Taler needs to run KYC checks in the following circumstances:
* Customer withdraws money over a monthly threshold
* exchange triggers KYC
- * key: IBAN
+ * key: IBAN (encoded as payto:// URI)
* Wallet receives (via refunds) money resulting in a balance over a threshold
* this is a client-side restriction
- * key: reserve (=KYC account) public key (generated, long-term)
+ * key: reserve (=KYC account) long term public key per wallet (encoded as payto:// URI)
* Wallet receives money via P2P payments
- * key: reserve (=KYC account) public key
+ * key: reserve (=KYC account) long term public key per wallet (encoded as payto:// URI)
* Merchant receives money (Q: any money, or above a monthly threshold?)
- * key: IBAN
+ * key: IBAN (encoded as payto:// URI)
@@ -70,9 +70,11 @@ accounts that were actually modified. The idea is that the bank would use this
to update its KYC records given an updated list of embargoed entities.
This will also require a new ``taler-exchange-offline`` subcommand.
-When withdrawing, the exchange checks if the KYC status is acceptable, and if
-not if the amount withdrawn over the last X days exceeds the threshold. If
-the check fails, the consumer is redirected to the new ``/kyc/`` handler.
+When withdrawing, the exchange checks if the KYC status is acceptable. If no
+KYC was done and if either the amount withdrawn over the last X days exceeds
+the threshold or the reserve received received a P2P transfer, then a ``202
+Accepted`` is returned which redirects the consumer to the new ``/kyc/``
+handler.
When depositing, the exchange checks the KYC status and if negative, returns an
additional information field that tells the merchant the ``wire_target_serial``
@@ -103,8 +105,8 @@ mechant backend receives a ``/kyc/`` response from the exchange. Initially,
``kyc_serial`` is zero, indicating that the merchant has not yet made any
deposits and thus does not have an account at the exchange.
-A new private endpoint ``/kyc/`` is introduced which allows frontends to
-request the ``/kyc/`` status of any configured account (including with long
+A new private endpoint ``/kyc`` is introduced which allows frontends to
+request the ``/kyc`` status of any configured account (including with long
polling). If the KYC status is negative or the ``kyc_timestamp`` not recent
(say older than one month), the merchant backend will re-check the KYC status
at the exchange (and update its cached status). The endpoint then returns