taler-docs

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

commit 128ed751a049879b395baa7e5bc2a4d9190cead4
parent 6b8969a04d97a8dadb2495a434b10b1333e303f6
Author: Christian Grothoff <christian@grothoff.org>
Date:   Mon, 20 Feb 2023 16:03:18 +0100

Merge branch 'master' of git+ssh://git.taler.net/docs

Diffstat:
Mcore/api-exchange.rst | 43+++++++++++++++++++++++++++++++++++++++++--
Mcore/api-merchant.rst | 2+-
Mdesign-documents/037-wallet-transactions-lifecycle.rst | 4++++
Mlibeufin/api-sandbox.rst | 3+++
4 files changed, 49 insertions(+), 3 deletions(-)

diff --git a/core/api-exchange.rst b/core/api-exchange.rst @@ -1,6 +1,6 @@ .. This file is part of GNU TALER. - Copyright (C) 2014-2022 Taler Systems SA + Copyright (C) 2014-2023 Taler Systems SA TALER is free software; you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software @@ -53,6 +53,35 @@ possibly by using HTTPS. returned MUST be mixed with locally generated entropy. +.. http:get:: /config + + Return the protocol version and currency supported by this exchange backend, as well as the list of possible KYC requirements. This endpoint is largely for the SPA for AML officers. Merchants should use ``/keys`` which also contains the protocol version and currency. + + **Response:** + + :http:statuscode:`200 OK`: + The body is a `VersionResponse`. + + .. ts:def:: ExchangeVersionResponse + + interface ExchangeVersionResponse { + // libtool-style representation of the Exchange protocol version, see + // https://www.gnu.org/software/libtool/manual/html_node/Versioning.html#Versioning + // The format is "current:revision:age". + version: string; + + // Name of the protocol. + name: "taler-exchange"; + + // Currency supported by this exchange. + currency: string; + + // Names of supported KYC requirements. + supported_kyc_requirements: string[]; + + } + + .. http:get:: /keys Get a list of all denomination keys offered by the exchange, @@ -4016,7 +4045,7 @@ typically also view the balance.) // values indicate that the transfer is blocked due to // AML enforcement. aml_decision: Integer; - + // True if the KYC check for the merchant has been // satisfied. False does not mean that KYC // is strictly needed, unless also a @@ -4176,6 +4205,9 @@ Wallet-to-wallet transfers // purse will (have been) merged with the account. balance: Amount; + // When does the purge expire. + purse_expiration: Timestamp; + // Time of the merge, missing if "never". merge_timestamp?: Timestamp; @@ -4187,6 +4219,13 @@ Wallet-to-wallet transfers // property is that it is either "never" or in the past. deposit_timestamp?: Timestamp; + // Time when the purse expires and + // funds that were not merged are refunded + // on the deposited coins. + // FIXME: Document the exchange protocol version + // in which this field became available. + purse_expiration: Timestamp; + // EdDSA signature of the exchange over a // `TALER_PurseStatusResponseSignaturePS` // with purpose ``TALER_SIGNATURE_PURSE_STATUS_RESPONSE`` diff --git a/core/api-merchant.rst b/core/api-merchant.rst @@ -3236,7 +3236,7 @@ Using template creating an order using :ref:`POST /private/orders <post-order>`. **Details:** - + .. ts:def:: UsingTemplateDetails interface UsingTemplateDetails { diff --git a/design-documents/037-wallet-transactions-lifecycle.rst b/design-documents/037-wallet-transactions-lifecycle.rst @@ -104,6 +104,10 @@ to take longer (such as a backup, recovery or very large withdrawal operation). ``[action:abort-force]``: Directly puts an ``aborting`` transaction into the ``failed`` state. +``[action:retry]``: Reset the retry timeout / reset long-polling +for a pending transaction and immediately try processing the transaction again. +We usually don't explicitly document this self-transition. + Whether aborting or resuming is possible depends on the transaction type, and usually only one of the two choices should be offered. diff --git a/libeufin/api-sandbox.rst b/libeufin/api-sandbox.rst @@ -431,6 +431,9 @@ Cashouts // Contains ratios and fees related to buying // and selling the circuit currency. ratios_and_fees: RatiosAndFees; + // Fiat currency. That is the currency in which + // cash-out operations ultimately wire money. + fiat_currency: String; } .. ts:def:: RatiosAndFees