commit 0a48679bb2b1f112e92fc9b8345a664059bb798d
parent 03040266462c4080b7a152b0773775de24356059
Author: Christian Grothoff <christian@grothoff.org>
Date: Sun, 31 May 2026 14:08:42 +0200
specification for #11183
Diffstat:
5 files changed, 39 insertions(+), 4 deletions(-)
diff --git a/core/api-exchange.rst b/core/api-exchange.rst
@@ -30,8 +30,9 @@ defines all specific terms used in this section.
Version History
---------------
-The current protocol version is **v35**.
+The currently implemented protocol version is **v35**.
+* Wallet-core is currently targeting **vXX**.
* The merchant is currently targeting **v34**.
* The AML SPA is currently targeting **v31**.
* The KYC SPA is currently targeting **v30**.
@@ -46,6 +47,7 @@ The current protocol version is **v35**.
* ``v34``: new offline signature; support for open_banking_gateway and
prepared_transfer_url per wire account in ``/keys``
* ``v35``: adds ``default_p2p_push_expiration`` to ``/keys``
+* ``v36``: adds ``kyc_swap_tos_acceptance`` to ``/keys``
**Upcoming versions:**
diff --git a/core/api-merchant.rst b/core/api-merchant.rst
@@ -29,13 +29,13 @@ Merchant Backend RESTful API
Version History
---------------
-The current protocol version is **v30**.
+The currently implemented protocol version is **v30**.
* The Android PoS app is currently targeting **v20**.
* The SPA is currently targeting **vXX**.
* taler-mdb is currently targeting **v27**.
* anastasis is currently targeting **v27**.
-* taler-woocommerce is currently targeting **vXX**.
+* taler-woocommerce is currently targeting **v29**.
* taler-drupal-turnstile is currently targeting **v29**.
* taler-drupal-commerce is currently targeting **vXX**.
* paivana is currently targeting **v29**.
@@ -57,6 +57,7 @@ The current protocol version is **v30**.
shortening during KYC Auth wire transfers and expands ``/config``.
* ``v29``: adds ``max_pickup_duration`` to templates (for Paivana)
* ``v30``: adds ``debit_restrictions`` to GET /exchanges (for SPA)
+* ``v31``: adds ``/private/accept-tos-early`` and related API changes
**Upcoming versions:**
@@ -429,6 +430,8 @@ KYC status checks
.. include:: merchant/get-private-kyc.rst
+.. include:: merchant/post-private-accept-tos-early.rst
+
-------------
Bank Accounts
diff --git a/core/exchange/get-keys.rst b/core/exchange/get-keys.rst
@@ -114,9 +114,16 @@
// Set to true if this exchange has KYC enabled and thus
// requires KYC auth wire transfers prior to a first deposit.
- // @since in protocol **v24**.
+ // @since protocol **v24**.
kyc_enabled: boolean;
+ // Signal to the merchant backend that it should swap
+ // the terms-of-service and KYC auth authentication
+ // steps in the user experience. Optional, defaults
+ // to false if not given.
+ // @since protocol **v36**.
+ kyc_swap_tos_acceptance?: boolean;
+
// Set to TRUE if wallets should disable the direct deposit feature
// and deposits should only go via Taler merchant APIs.
// Mainly used for regional currency and event currency deployments
diff --git a/core/merchant/get-private-kyc.rst b/core/merchant/get-private-kyc.rst
@@ -205,4 +205,22 @@
// @since protocol **v17**.
payto_kycauths?: string[];
+ // Forwarded value of the ``kyc_swap_tos_acceptance`` flag
+ // that the merchant backend observed in the exchange's
+ // ``/keys`` response. Signals to the frontend that it
+ // should swap the terms-of-service and KYC auth
+ // authentication steps in the user experience.
+ // Optional, defaults to false if not given.
+ // @since protocol **v31**.
+ kyc_swap_tos_acceptance?: boolean;
+
+ // ``Taler-Terms-Version`` (see exchange's ``/terms``
+ // endpoint) of the terms of service that were already
+ // accepted by the user for this exchange. Optional,
+ // absent if no version has been accepted yet by the
+ // user via ``POST /private/accept-tos-early``.
+ // @since protocol **v31**.
+ tos_accepted_early?: string;
+
+
}
diff --git a/manpages/taler-exchange.conf.5.rst b/manpages/taler-exchange.conf.5.rst
@@ -247,6 +247,11 @@ PRIVACY_ETAG
ENABLE_KYC
Must be set to ``YES`` to enable AML/KYC rule enforcement. Note that the administrative endpoints will always work, even if the flag is set to ``NO``.
+KYC_SWAP_TOS_ACCEPTANCE
+ Set to ``YES`` to signal to the merchant backend that it should
+ swap the terms-of-service and KYC auth authentication steps in
+ the user experience. Optional, defaults to ``NO``.
+
DISABLE_DIRECT_DEPOSIT
Set to ``YES`` to indicate to wallets that deposits by non-merchants
are not supported. Defaults to ``NO``.