commit f82872ca7ceb404118c269d0b2b4aa47366d8d8d
parent 85ca940b44550789a65aa3972f1a6ea7f67fe126
Author: Christian Grothoff <christian@grothoff.org>
Date: Sun, 16 Feb 2025 11:38:17 +0100
specify API for #9548
Diffstat:
| M | core/api-exchange.rst | | | 81 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-- |
1 file changed, 79 insertions(+), 2 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-2024 Taler Systems SA
+ Copyright (C) 2014-2025 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
@@ -60,7 +60,7 @@ possibly by using HTTPS.
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.
- This specification corresponds to ``current`` protocol being **v24**.
+ This specification corresponds to ``current`` protocol being **v25**.
**Response:**
@@ -6164,6 +6164,83 @@ and freeze or unfreeze accounts suspected of money laundering.
}
+
+.. http:get:: /aml/$OFFICER_PUB/transactions-credit
+.. http:get:: /aml/$OFFICER_PUB/transactions-debit
+
+ Obtain exchange's bank account transaction history data. Shows effective
+ incoming wire transfers or (credit) effective outgoing (aggregated, closed)
+ wire transfers (debit). Note that KYC auth wire transfers, bounced incoming
+ wire transfers and drain outgoing wire transfers requests are excluded (as
+ they are not relevant for AML processes and would just distract). The
+ wire transfer subject is also not given as in all cases it will just
+ be some cryptographic data that is meaningless for humans.
+
+ This endpoint was introduced in protocol **v25**.
+
+ **Request:**
+
+ *Taler-AML-Officer-Signature*:
+ The client must provide Base-32 encoded EdDSA signature with
+ ``$OFFICER_PRIV``, affirming the desire to obtain AML data. Note that
+ this is merely a simple authentication mechanism, the details of the
+ request are not protected by the signature.
+
+ :query threshold:
+ *Optional*. minimum amount ("CURRENCY:VAL.FRAC") to return. All amounts
+ below the given threshold will be filtered.
+ :query limit:
+ *Optional*. takes value of the form ``N (-N)``, so that at
+ most ``N`` values strictly older (younger) than ``start`` are returned.
+ Defaults to ``-20`` to return the last 20 entries (before ``start``).
+ :query offset:
+ *Optional*. Row number threshold, see ``delta`` for its
+ interpretation. Defaults to ``INT64_MAX``, namely the biggest row id
+ possible in the database.
+
+ **Response:**
+
+ :http:statuscode:`200 OK`:
+ The responds will be an `ExchangeTransactionList` message.
+ :http:statuscode:`204 No content`:
+ There are no matching transactions.
+ :http:statuscode:`403 Forbidden`:
+ The signature is invalid.
+ :http:statuscode:`404 Not found`:
+ The designated AML account is not known.
+ :http:statuscode:`409 Conflict`:
+ The designated AML account is not enabled.
+
+ .. ts:def:: ExchangeTransactionList
+
+ interface ExchangeTransactionList {
+
+ // Matching transaction of the exchange
+ details: ExchangeTransactionListEntry[];
+
+ }
+
+ .. ts:def:: ExchangeTransactionListEntry
+
+ interface ExchangeTransactionListEntry {
+
+ // Row ID of the record. Used to filter by offset.
+ rowid: Integer;
+
+ // payto://-URI of the other account.
+ payto_uri: string;
+
+ // The amount involved.
+ amount: Amount;
+
+ // Time when the transaction was made
+ execution_time: Timestamp;
+
+ }
+
+
+
+
---------------
Reserve control
---------------