taler-docs

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

commit a875b291b1ab0f639bc5557ff7811648652cad36
parent fcdb168fba9276b0b52983760e0f45b3744a7145
Author: Christian Grothoff <christian@grothoff.org>
Date:   Sat,  4 Apr 2026 13:26:28 +0200

rename endpoint to /reserves/RESERVE_PUB/attest for consitency

Diffstat:
Mcore/api-exchange.rst | 2+-
Mcore/exchange/get-reserves-RESERVE_PUB-attest.rst | 9+++++----
Acore/exchange/post-reserves-RESERVE_PUB-attest.rst | 70++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Dcore/exchange/post-reserves-attest-RESERVE_PUB.rst | 70----------------------------------------------------------------------
4 files changed, 76 insertions(+), 75 deletions(-)

diff --git a/core/api-exchange.rst b/core/api-exchange.rst @@ -1104,7 +1104,7 @@ designated account. .. include:: exchange/get-reserves-RESERVE_PUB-attest.rst -.. include:: exchange/post-reserves-attest-RESERVE_PUB.rst +.. include:: exchange/post-reserves-RESERVE_PUB-attest.rst .. include:: exchange/post-reserves-RESERVE_PUB-close.rst diff --git a/core/exchange/get-reserves-RESERVE_PUB-attest.rst b/core/exchange/get-reserves-RESERVE_PUB-attest.rst @@ -1,4 +1,4 @@ -.. http:get:: /reserves-attest/$RESERVE_PUB +.. http:get:: /reserves/$RESERVE_PUB/attest Request list of available KYC attributes about the owner of a reserve. Used as a preliminary step to find out which subsets of attributes the @@ -7,7 +7,8 @@ **Response:** :http:statuscode:`200 OK`: - The exchange responds with a `ReserveKycAttributes` object. + The exchange responds with a `ReserveKycAttributesAvailableResponse` + object. :http:statuscode:`400 Bad Request`: The ``$RESERVE_PUB`` is malformed. This response comes with a standard `ErrorDetail` response with @@ -19,9 +20,9 @@ **Details:** - .. ts:def:: ReserveKycAttributes + .. ts:def:: ReserveKycAttributesAvailableResponse - interface ReserveKycAttributes { + interface ReserveKycAttributesAvailableResponse { // Array of KYC attributes available. The attribute names // listed are expected to be from the respective GANA // registry. diff --git a/core/exchange/post-reserves-RESERVE_PUB-attest.rst b/core/exchange/post-reserves-RESERVE_PUB-attest.rst @@ -0,0 +1,70 @@ +.. http:post:: /reserves/$RESERVE_PUB/attest + + Request signed KYC information about the owner of a reserve. + This can be used by a reserve owner to include a proof + of their identity in invoices. + + **Request:** + + The request body must be a `ReserveAttestRequest` object. + + **Response:** + + :http:statuscode:`200 OK`: + The exchange responds with a `ReserveAttestResponse` object. + :http:statuscode:`400 Bad Request`: + The ``$RESERVE_PUB`` is malformed. + This response comes with a standard `ErrorDetail` response with + a code of ``TALER_EC_GENERIC_RESERVE_PUB_MALFORMED``. + :http:statuscode:`403 Forbidden`: + The *TALER_SIGNATURE_WALLET_KYC_DETAILS* signature is invalid. + This response comes with a standard `ErrorDetail` response. + :http:statuscode:`404 Not found`: + The reserve key does not belong to a reserve known to the exchange. + :http:statuscode:`409 Conflict`: + The exchange does not have the requested KYC information. + :http:statuscode:`413 Request entity too large`: + The uploaded body is to long, it exceeds the size limit. + Returned with an error code of + ``TALER_EC_GENERIC_UPLOAD_EXCEEDS_LIMIT``. + + **Details:** + + .. ts:def:: ReserveAttestRequest + + interface ReserveAttestRequest { + // Signature of purpose + // ``TALER_SIGNATURE_WALLET_ATTEST_DETAILS`` over + // a `TALER_WalletReserveAttestRequestSignaturePS`. + reserve_sig: EddsaSignature; + + // Client's time for the request. + request_timestamp: Timestamp; + + // Array of KYC attributes requested. + details: string[]; + } + + .. ts:def:: ReserveAttestResponse + + interface ReserveAttestResponse { + // Signature of purpose + // ``TALER_SIGNATURE_EXCHANGE_RESERVE_ATTEST_DETAILS`` over + // a `TALER_ExchangeAttestPS`. + exchange_sig: EddsaSignature; + + // Exchange public key used to create the + // signature. + exchange_pub: EddsaPublicKey; + + // Time when the exchange created the signature. + exchange_timestamp: Timestamp; + + // Expiration time for the provided information. + expiration_time: Timestamp; + + // KYC details (key-value pairs) as requested. + // The keys will match the elements of the + // ``details`` array from the request. + attributes: CustomerKycAttributes; + } diff --git a/core/exchange/post-reserves-attest-RESERVE_PUB.rst b/core/exchange/post-reserves-attest-RESERVE_PUB.rst @@ -1,70 +0,0 @@ -.. http:post:: /reserves-attest/$RESERVE_PUB - - Request signed KYC information about the owner of a reserve. - This can be used by a reserve owner to include a proof - of their identity in invoices. - - **Request:** - - The request body must be a `ReserveAttestRequest` object. - - **Response:** - - :http:statuscode:`200 OK`: - The exchange responds with a `ReserveAttestResponse` object. - :http:statuscode:`400 Bad Request`: - The ``$RESERVE_PUB`` is malformed. - This response comes with a standard `ErrorDetail` response with - a code of ``TALER_EC_GENERIC_RESERVE_PUB_MALFORMED``. - :http:statuscode:`403 Forbidden`: - The *TALER_SIGNATURE_WALLET_KYC_DETAILS* signature is invalid. - This response comes with a standard `ErrorDetail` response. - :http:statuscode:`404 Not found`: - The reserve key does not belong to a reserve known to the exchange. - :http:statuscode:`409 Conflict`: - The exchange does not have the requested KYC information. - :http:statuscode:`413 Request entity too large`: - The uploaded body is to long, it exceeds the size limit. - Returned with an error code of - ``TALER_EC_GENERIC_UPLOAD_EXCEEDS_LIMIT``. - - **Details:** - - .. ts:def:: ReserveAttestRequest - - interface ReserveAttestRequest { - // Signature of purpose - // ``TALER_SIGNATURE_WALLET_ATTEST_DETAILS`` over - // a `TALER_WalletReserveAttestRequestSignaturePS`. - reserve_sig: EddsaSignature; - - // Client's time for the request. - request_timestamp: Timestamp; - - // Array of KYC attributes requested. - details: string[]; - } - - .. ts:def:: ReserveAttestResponse - - interface ReserveAttestResponse { - // Signature of purpose - // ``TALER_SIGNATURE_EXCHANGE_RESERVE_ATTEST_DETAILS`` over - // a `TALER_ExchangeAttestPS`. - exchange_sig: EddsaSignature; - - // Exchange public key used to create the - // signature. - exchange_pub: EddsaPublicKey; - - // Time when the exchange created the signature. - exchange_timestamp: Timestamp; - - // Expiration time for the provided information. - expiration_time: Timestamp; - - // KYC details (key-value pairs) as requested. - // The keys will match the elements of the - // ``details`` array from the request. - attributes: CustomerKycAttributes; - }