diff options
author | Florian Dold <florian@dold.me> | 2023-09-06 18:18:21 +0200 |
---|---|---|
committer | Florian Dold <florian@dold.me> | 2023-09-06 18:18:21 +0200 |
commit | e8391084ae70ffd1c10d6ecd3250ec627ec49b6d (patch) | |
tree | 6ade9fbb133ab75ac6ecb0ae2d81c68bb2693ce0 /core/api-bank-merchant.rst | |
parent | 6d7d5d19fd35a50ac38f3febd945a0b97fb0ac01 (diff) | |
download | docs-e8391084ae70ffd1c10d6ecd3250ec627ec49b6d.tar.gz docs-e8391084ae70ffd1c10d6ecd3250ec627ec49b6d.tar.bz2 docs-e8391084ae70ffd1c10d6ecd3250ec627ec49b6d.zip |
rename to revenue API
Diffstat (limited to 'core/api-bank-merchant.rst')
-rw-r--r-- | core/api-bank-merchant.rst | 134 |
1 files changed, 0 insertions, 134 deletions
diff --git a/core/api-bank-merchant.rst b/core/api-bank-merchant.rst deleted file mode 100644 index c7b56c09..00000000 --- a/core/api-bank-merchant.rst +++ /dev/null @@ -1,134 +0,0 @@ -.. - This file is part of GNU TALER. - Copyright (C) 2021-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 - Foundation; either version 2.1, or (at your option) any later version. - - TALER is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR - A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. - - You should have received a copy of the GNU Affero General Public License along with - TALER; see the file COPYING. If not, see <http://www.gnu.org/licenses/> - -.. _taler-bank-merchant-http-api: - -============================ -Taler Bank Merchant HTTP API -============================ - -This section describes an API offered by the Taler wire gateway. The API is -used by the merchant to query for incoming transactions. - -This API is TO BE implemented by the Taler Demo Bank, as well as by -LibEuFin (work in progress). - - --------------- -Authentication --------------- - -The bank library authenticates requests to the bank merchant API using -`HTTP basic auth <https://tools.ietf.org/html/rfc7617>`_. - --------------------------------- -Querying the transaction history --------------------------------- - - -.. http:get:: ${BASE_URL}/history - - Return a list of transactions made from an exchange to the merchant. - - Incoming transactions must contain a valid wire transfer identifier and - exchange base URL. If a bank transaction does not conform to the right - syntax, the wire gateway must not report it to the merchant via this - endpoint. - - The bank account of the merchant is determined via the base URL and/or the - user name in the ``Authorization`` header. In fact, the transaction history - might come from a "virtual" account, where multiple real bank accounts are - merged into one history. - - Transactions are identified by an opaque numeric identifier, referred to here - as *row ID*. The semantics of the row ID (including its sorting order) are - determined by the bank server and completely opaque to the client. - - The list of returned transactions is determined by a row ID *starting point* - and a signed non-zero integer *delta*: - - * If *delta* is positive, return a list of up to *delta* transactions (all matching - the filter criteria) strictly **after** the starting point. The transactions are sorted - in **ascending** order of the row ID. - * If *delta* is negative, return a list of up to *-delta* transactions (all matching - the filter criteria) strictly **before** the starting point. The transactions are sorted - in **descending** order of the row ID. - - If *starting point* is not explicitly given, it defaults to: - - * A value that is **smaller** than all other row IDs if *delta* is **positive**. - * A value that is **larger** than all other row IDs if *delta* is **negative**. - - **Request:** - - :query start: *Optional.* - Row identifier to explicitly set the *starting point* of the query. - :query delta: - The *delta* value that determines the range of the query. - :query long_poll_ms: *Optional.* If this parameter is specified and the - result of the query would be empty, the bank will wait up to ``long_poll_ms`` - milliseconds for new transactions that match the query to arrive and only - then send the HTTP response. A client must never rely on this behavior, as - the bank may return a response immediately or after waiting only a fraction - of ``long_poll_ms``. - - **Response:** - - :http:statuscode:`200 OK`: - JSON object of type `MerchantIncomingHistory`. - :http:statuscode:`400 Bad request`: - Request malformed. The bank replies with an `ErrorDetail` object. - :http:statuscode:`401 Unauthorized`: - Authentication failed, likely the credentials are wrong. - :http:statuscode:`404 Not found`: - The endpoint is wrong or the user name is unknown. The bank replies with an `ErrorDetail` object. - - .. ts:def:: MerchantIncomingHistory - - interface MerchantIncomingHistory { - - // Array of incoming transactions. - incoming_transactions : MerchantIncomingBankTransaction[]; - - // Payto URI to identify the receiver of funds. - // This must be one of the merchant's bank accounts. - // Credit account is shared by all incoming transactions - // as per the nature of the request. - credit_account: string; - - } - - .. ts:def:: MerchantIncomingBankTransaction - - interface MerchantIncomingBankTransaction { - - // Opaque identifier of the returned record. - row_id: SafeUint64; - - // Date of the transaction. - date: Timestamp; - - // Amount transferred. - amount: Amount; - - // Payto URI to identify the sender of funds. - debit_account: string; - - // Base URL of the exchange where the transfer originated form. - exchange_url: string; - - // The wire transfer identifier. - wtid: WireTransferIdentifierRawP; - } |