taler-docs

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

commit 86c3900aef29d298276e81b7ac76292c6e8317de
parent 65feb2782cd5e9b5ec786a11bbcbae36df9bfbc7
Author: Christian Grothoff <christian@grothoff.org>
Date:   Sat, 28 Mar 2026 20:20:27 +0100

fix specification inconsistencies

Diffstat:
Mcore/exchange/get-aml-OFFICER_PUB-kyc-statistics-NAMES.rst | 2+-
Mcore/exchange/post-management-global-fees.rst | 51++++++++++++++++++++++++++++++++++++++++++++++++++-
Mcore/exchange/post-management-keys.rst | 2+-
Mcore/exchange/post-management-wire-fee.rst | 2+-
Mcore/exchange/post-reveal-withdraw.rst | 6+++---
Mcore/exchange/post-withdraw.rst | 4++--
6 files changed, 58 insertions(+), 9 deletions(-)

diff --git a/core/exchange/get-aml-OFFICER_PUB-kyc-statistics-NAMES.rst b/core/exchange/get-aml-OFFICER_PUB-kyc-statistics-NAMES.rst @@ -50,7 +50,7 @@ interface EventCounter { // Name of the statistic that is being returned. - name: string; + event: string; // Number of events of the specified type in // the given range. diff --git a/core/exchange/post-management-global-fees.rst b/core/exchange/post-management-global-fees.rst @@ -4,7 +4,7 @@ **Request:** - The request must be a `GlobalFees` message. + The request must be a `GlobalFeesRequest` message. **Response:** @@ -14,3 +14,52 @@ The signature is invalid. :http:statuscode:`409 Conflict`: The exchange has previously received a conflicting configuration message. + + **Details:** + + .. ts:def:: GlobalFeesRequest + + interface GlobalFeesRequest { + + // What date (inclusive) does these fees go into effect? + start_date: Timestamp; + + // What date (exclusive) does this fees stop going into effect? + end_date: Timestamp; + + // Account history fee, charged when a user wants to + // obtain a reserve/account history. + history_fee: Amount; + + // Annual fee charged for having an open account at the + // exchange. Charged to the account. If the account + // balance is insufficient to cover this fee, the account + // is automatically deleted/closed. (Note that the exchange + // will keep the account history around for longer for + // regulatory reasons.) + account_fee: Amount; + + // Purse fee, charged only if a purse is abandoned + // and was not covered by the account limit. + purse_fee: Amount; + + // How long will the exchange preserve the account history? + // After an account was deleted/closed, the exchange will + // retain the account history for legal reasons until this time. + history_expiration: RelativeTime; + + // Non-negative number of concurrent purses that any + // account holder is allowed to create without having + // to pay the purse_fee. + purse_account_limit: Integer; + + // How long does an exchange keep a purse around after a purse + // has expired (or been successfully merged)? A 'GET' request + // for a purse will succeed until the purse expiration time + // plus this value. + purse_timeout: RelativeTime; + + // Signature of `TALER_GlobalFeesPS`. + master_sig: EddsaSignature; + + } diff --git a/core/exchange/post-management-keys.rst b/core/exchange/post-management-keys.rst @@ -48,7 +48,7 @@ interface SignKeySignature { // The actual exchange's EdDSA signing public key. - key: EddsaPublicKey; + exchange_pub: EddsaPublicKey; // Signature by the exchange master key over // `TALER_ExchangeSigningKeyValidityPS`. diff --git a/core/exchange/post-management-wire-fee.rst b/core/exchange/post-management-wire-fee.rst @@ -26,7 +26,7 @@ // Signature using the exchange's offline key // with purpose ``TALER_SIGNATURE_MASTER_WIRE_FEES``. - master_sig_wire: EddsaSignature; + master_sig: EddsaSignature; // When does the wire fee validity period start? fee_start: Timestamp; diff --git a/core/exchange/post-reveal-withdraw.rst b/core/exchange/post-reveal-withdraw.rst @@ -45,12 +45,12 @@ .. ts:def:: RevealWithdrawRequest interface RevealWithdrawRequest { - // The reserve's public key from the previous call to /withdraw. + // The reserve's public key from the previous call to ``/withdraw``. reserve_pub: string; // This is the h_planchets running hash of all blinded planchets - // from the previous call to /withdraw. - h_planchets: string; + // from the previous call to ``/withdraw``. + planchets_h: string; // Array of ``(kappa - 1)`` disclosed batch secrets, // from which for each of the n coins in a batch diff --git a/core/exchange/post-withdraw.rst b/core/exchange/post-withdraw.rst @@ -60,7 +60,7 @@ The response comes with a standard `ErrorDetail` response with an error-code of ``TALER_EC_EXCHANGE_RESERVES_AGE_RESTRICTION_REQUIRED`` - and an additional field ``maximum_allowed_age`` for the + and an additional field ``allowed_maximum_age`` for the maximum age (in years) that the client can commit to in a call to ``/withdraw``, this time with ``max_age`` set accordingly and ``coin_evs`` being an array @@ -69,7 +69,7 @@ according to the reserve's birthday. The response comes with a standard `ErrorDetail` response with error-code ``TALER_EC_EXCHANGE_AGE_WITHDRAW_MAXIMUM_AGE_TOO_LARGE`` - and an additional field ``maximum_allowed_age`` for the maximum + and an additional field ``allowed_maximum_age`` for the maximum age (in years) that the client can commit to in a call to ``/withdraw``. 4. The request uses a nonce value that was previously seen by