diff options
author | Christian Grothoff <christian@grothoff.org> | 2021-10-03 14:57:57 +0200 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2021-10-03 14:57:57 +0200 |
commit | 58f64cdb95e6ecd51c0d9d71d57492861a8fb72e (patch) | |
tree | da0805459a0804ecfb29c7fcd6bdb07656774610 /design-documents | |
parent | 8f3c14cf93716f3fe2a60b89107403eb96bc2bec (diff) | |
download | docs-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.rst | 20 |
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 |