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:
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;
- }