taler-docs

Documentation for GNU Taler components, APIs and protocols
Log | Files | Refs | README | LICENSE

commit ce2739ee2eb514e476cdfa0cc13fbe55e8f07a78
parent fdd6bb20ce88b2c519e80c14eae869f3619b4761
Author: Christian Grothoff <christian@grothoff.org>
Date:   Sun,  1 Sep 2024 17:36:43 +0200

introduce zero_limits for #9039/#9040 to signal clients that they must do KYC before even attempting to work with an exchange

Diffstat:
Mcore/api-exchange.rst | 85++++++++++++++++++++++++++++++++++++++++++++++++++-----------------------------
1 file changed, 54 insertions(+), 31 deletions(-)

diff --git a/core/api-exchange.rst b/core/api-exchange.rst @@ -218,6 +218,14 @@ possibly by using HTTPS. // Since protocol **v21**. hard_limits: AccountLimit[]; + // Array of limits with a soft threshold of zero + // that apply to all accounts without KYC. + // Wallets and merchants are expected to trigger + // a KYC process before attempting any zero-limited + // operations. + // Since protocol **v21**. + zero_limits: ZeroLimitedOperation[]; + // Denominations offered by this exchange denominations: DenomGroup[]; @@ -343,6 +351,52 @@ possibly by using HTTPS. } + .. ts:def:: ZeroLimitedOperation + + interface ZeroLimitedOperation { + + // Operation that is limited to an amount of + // zero until the client has passed some KYC check. + // Must be one of "WITHDRAW", "DEPOSIT", + // (p2p) "MERGE", (wallet) "BALANCE", + // (reserve) "CLOSE", "AGGREGATE", + // "TRANSACTION" or "REFUND". + operation_type: string; + + } + + + .. ts:def:: AccountLimit + + interface AccountLimit { + + // Operation that is limited. + // Must be one of "WITHDRAW", "DEPOSIT", + // (p2p) "MERGE", (wallet) "BALANCE", + // (reserve) "CLOSE", "AGGREGATE", + // "TRANSACTION" or "REFUND". + operation_type: string; + + // Timeframe during which the limit applies. + // Not applicable for all operation_types + // (but always present in this object anyway). + timeframe: RelativeTime; + + // Maximum amount allowed during the given timeframe. + // Zero if the operation is simply forbidden. + threshold: Amount; + + // True if this is a soft limit that could be raised + // by passing KYC checks. Clients *may* deliberately + // try to cross limits and trigger measures resulting + // in 451 responses to begin KYC processes. + // Clients that are aware of hard limits *should* + // inform users about the hard limit and prevent flows + // in the UI that would cause violations of hard limits. + // Made optional in **v21** with a default of 'false' if missing. + soft_limit?: boolean; + } + .. ts:def:: GlobalFees interface GlobalFees { @@ -4808,37 +4862,6 @@ regulatory compliance. } - .. ts:def:: AccountLimit - - interface AccountLimit { - - // Operation that is limited. - // Must be one of "WITHDRAW", "DEPOSIT", - // (p2p) "MERGE", (wallet) "BALANCE", - // (reserve) "CLOSE", "AGGREGATE", - // "TRANSACTION" or "REFUND". - operation_type: string; - - // Timeframe during which the limit applies. - // Not applicable for all operation_types - // (but always present in this object anyway). - timeframe: RelativeTime; - - // Maximum amount allowed during the given timeframe. - // Zero if the operation is simply forbidden. - threshold: Amount; - - // True if this is a soft limit that could be raised - // by passing KYC checks. Clients *may* deliberately - // try to cross limits and trigger measures resulting - // in 451 responses to begin KYC processes. - // Clients that are aware of hard limits *should* - // inform users about the hard limit and prevent flows - // in the UI that would cause violations of hard limits. - // Made optional in **v21** with a default of 'false' if missing. - soft_limit?: boolean; - } - .. http:get:: /kyc-spa/$ACCESS_TOKEN .. http:get:: /kyc-spa/$FILENAME