summaryrefslogtreecommitdiff
path: root/libeufin/api-sandbox.rst
diff options
context:
space:
mode:
Diffstat (limited to 'libeufin/api-sandbox.rst')
-rw-r--r--libeufin/api-sandbox.rst417
1 files changed, 0 insertions, 417 deletions
diff --git a/libeufin/api-sandbox.rst b/libeufin/api-sandbox.rst
deleted file mode 100644
index b75fcf8d..00000000
--- a/libeufin/api-sandbox.rst
+++ /dev/null
@@ -1,417 +0,0 @@
-.. target audience: developer, core developer
-
-.. _sandbox-api:
-
-Current Sandbox API
-###################
-
-..
- Current Sandbox endpoints.
-
- GET /
- Welcome message.
-
- ** Camt debug **
-
- POST /admin/payments/camt
- give last statement of requesting account
-
- ** Bank accounting **
-
- POST /admin/bank-accounts/$accountLabel
- create bank account (no EBICS involved)
-
- GET /admin/bank-accounts
- Give summary of all the bank accounts.
-
- GET /admin/bank-accounts/$accountLabel
- give general information about a bank account
-
- ** Transactions **
-
- POST /admin/bank-accounts/$accountLabel/simulate-incoming-transaction
- Book one incoming transaction for $accountLabel.
- The debtor (not required to be in the same bank)
- information is taken from the request.
-
- GET /admin/bank-accounts/$accountLabel/transactions
- Inform about all the transactions of one bank account.
-
- POST /admin/bank-accounts/$accountLabel/generate-transactions
- Generate one incoming and one outgoing transaction
- for one bank account.
-
- ** EBICS subscribers management **
-
- POST /admin/ebics/subscribers
- Create a new EBICS subscriber.
-
- GET /admin/ebics/subscribers
- Give details of all the EBICS subscribers in the bank.
-
- POST /admin/ebics/bank-accounts
- Create a *new* bank account and link it with a existing
- EBICS subscriber.
-
- ** EBICS host management **
-
- POST /admin/ebics/hosts/$hostID/rotate-keys
- Change the bank's keys used in EBICS communication.
-
- POST /admin/ebics/hosts
- Create a new EBICS host.
-
- GET /admin/ebics/hosts
- Show details of all the EBICS hosts in the bank.
-
- ** EBICS serving **
-
- POST /ebicsweb
- Processes a EBICS request.
-
- ** Taler .. **
-
- GET /taler
- Show one taler://-URI to initiate a withdrawal.
-
- - Taler integration API.
-
- - Demobank configuration API.
- ToDo.
-
- - Taler access API.
- ToDo.
-
-EBICS.
-^^^^^^
-
-Hosts.
-++++++
-
-.. http:post:: /admin/ebics/hosts
-
- Creates a new Ebics host.
-
- **Request:**
-
- .. ts:def:: EbicsHostRequest
-
- interface EbicsHostRequest {
-
- // Ebics version.
- hostID: string;
-
- // Name of the host.
- ebicsVersion: string;
- }
-
-
-.. http:get:: /admin/ebics/hosts
-
- Shows the list of all the hosts in the system.
-
- **Response:**
-
- .. ts:def:: EbicsHostResponse
-
- interface EbicsHostResponse {
-
- // shows the host IDs that are active in the system.
- // The Ebics version *is* missing, but it's still available
- // via the HEV message.
- ebicsHosts: string[];
- }
-
-.. http:post:: /admin/ebics/hosts/$hostID/rotate-keys
-
- Overwrite the bank's Ebics keys with random ones. This is entirely
- meant for tests (as the Sandbox itself is) and no backup will be
- produced along this operation.
-
-
-Subscribers.
-++++++++++++
-
-.. http:post:: /admin/ebics/bank-accounts
-
- Associates a new bank account to an existing subscriber.
-
- **Request:**
-
- .. ts:def:: BankAccountRequest
-
- interface BankAccountRequest {
-
- // Ebics subscriber
- subscriber: string;
-
- // IBAN
- iban: string;
-
- // BIC
- bic: string;
-
- // human name
- name: string;
-
- // bank account label
- label: string;
-
- }
-
-
-.. http:post:: /admin/ebics/subscribers
-
- Creates a new Ebics subscriber.
-
- **Request:**
-
- .. ts:def:: SubscriberRequest
-
- interface SubscriberRequest {
-
- // hostID
- hostID: string;
-
- // userID
- userID: string;
-
- // partnerID
- partnerID: string;
-
- // systemID
- systemID: string;
-
- }
-
-
-.. http:get:: /admin/ebics/subscribers
-
- Shows the list of all the subscribers in the system.
-
- **Response:**
-
- .. ts:def:: SubscribersResponse
-
- interface SubscribersResponse {
-
- subscribers: Subscriber[]
- }
-
- .. ts:def:: Subscriber
-
- interface Subscriber {
-
- // userID
- userID: string;
-
- // partnerID
- partnerID: string;
-
- // hostID
- hostID: string;
-
- }
-
-
-Bank accounts.
-^^^^^^^^^^^^^^
-
-.. http:get:: /admin/bank-accounts
-
- Give summary of all the bank accounts.
-
-.. http:get:: /admin/bank-accounts/$accountLabel
-
- Give information about a bank account.
-
-
-Main EBICS service.
-^^^^^^^^^^^^^^^^^^^
-
-.. http:post:: /ebicsweb
-
- Serves all the Ebics requests.
-
-
-Transactions.
-^^^^^^^^^^^^^
-
-JSON.
-+++++
-
-.. http:get:: /admin/bank-accounts/$accountLabel/transactions
-
- Inform about all the transactions of one bank account.
-
-.. http:post:: /admin/bank-accounts/$accountLabel/generate-transactions
-
- Generate one incoming and one outgoing transaction for one bank account.
-
-.. http:post:: /admin/bank-accounts/$accountLabel/simulate-incoming-transaction
-
- Book one incoming transaction for $accountLabel.
- The debtor (not required to be in the same bank)
- information is taken from the request.
-
-
-Camt.
-+++++
-
-.. http:post:: /admin/payments/camt
-
- Return the last statement of the requesting account.
-
- **Request**
-
- .. code-block:: tsref
-
- interface CamtParams {
-
- // label of the bank account being queried.
- bankaccount: string;
-
- // The Camt type to return. Only '53' is allowed
- // at this moment.
- type: number;
- }
-
- **Response**
-
- The expected Camt.053 document.
-
-Future Sandbox API
-##################
-
-Resources.
-----------
-
-Sandbox serves the following resources:
-
- - Demobanks.
- - Bank accounts.
- - Subscribers.
- - Transactions.
- - Customers.
- - Reports.
-
-The resources are subject to all CRUD operations, via by two
-types of users: the 'admin' and the customers. The admin has
-rights on all of them.
-
-One of the main differences with the previous versions is the
-removal of the "/admin" initial component. If the administrator
-authenticates for one operation, then this one is of type `admin`:
-no need for a dedicate and extra URI part.
-
-For example, mocking transactions in the system was a typical
-/admin-operation, but since transactions themselves are resources
-and any resource is subject to CRUD operations, then mocking one
-becomes just a `C` operation on the 'transactions' resources. If
-a test case wants to simplify the authentication - by hard-coding
-the credentials, for example - before mocking one transaction, then
-it can impersonate the administrator.
-
-.. note::
-
- ``POST``-ing to a endpoint with a trailing ``$id`` means
- modification of a existing resource.
-
-Demobanks
-^^^^^^^^^
-
-Demobanks are the main containers of all the other resources.
-They take configuration values, like the currency for example.
-
-.. http:get:: /admin/demobanks
-.. http:get:: /admin/demobanks/$id
-.. http:post:: /admin/demobanks
-.. http:post:: /admin/demobanks/$id
-.. http:delete:: /admin/demobanks/$id
-
-Bank accounts.
-^^^^^^^^^^^^^^
-
-Bank accounts collect money of customers and participate
-in transactions.
-
-The ``$base`` is one demobank, in the form ``/demobanks/$id``.
-That is due because a bank account must inherit some defaults
-from the demobank, like the currency.
-
-.. http:get:: $base/bankaccounts
-.. http:get:: $base/bankaccounts/$id
-.. http:post:: $base/bankaccounts
-.. http:post:: $base/bankaccounts/$id
-.. http:delete:: $base/bankaccounts/$id
-
-Subscribers.
-^^^^^^^^^^^^
-
-Subscribers are (optional) customers identities for protocols
-other than the native one.
-
-A subscriber is not required to have a bank account `soon`. Therefore,
-it can be created, and later be linked to one bank account. For this
-reason, the ``$base`` should not mention one bank account.
-
-.. note::
-
- Creating a subscriber is a time-consuming operation that goes often
- through slow channels, therefore it should basically never be done
- more than once.
-
-.. http:get:: $base/subscribers
-.. http:get:: $base/subscribers/$id
-.. http:post:: $base/subscribers
-.. http:post:: $base/subscribers/$id
-.. http:delete:: $base/subscribers/$id
-
-Transactions.
-^^^^^^^^^^^^^
-
-Transactions are money movements between bank accounts.
-
-For convenience, ``$base`` **could** mention one bank account
-to let customers see their transactions without defining "history"
-query parameters: like ``$demobank/bankaccounts/$bankaccountId/transactions``.
-
-At the same time, transactions should be easy to query regardless
-of whose bank account they involve -- for administrative reasons, for
-example. Hence, a "global" URI scheme like ``$demobank/transactions?param=XXX``
-should be offered as well.
-
-.. http:get:: $base/transactions
-.. http:get:: $base/transactions/$id
-.. http:post:: $base/transactions
-.. http:post:: $base/transactions/$id
-.. http:delete:: $base/transactions/$id
-
-Customers.
-^^^^^^^^^^
-
-Customers are persons that **can** have one bank account. As
-with subscribers, ``$base`` should not mention any bank account
-so as to leave more flexibility to assign new bank accounts to
-the same customer.
-
-.. http:get:: $base/customers
-.. http:get:: $base/customers/$id
-.. http:post:: $base/customers
-.. http:post:: $base/customers/$id
-.. http:delete:: $base/customers/$id
-
-Reports.
-^^^^^^^^
-
-Reports are persistent documents witnessing transactions.
-A typical example is a Camt.053 statement. A report lives
-even after a bank account gets deleted or a customer leaves
-the bank, therefore ``$base`` should only mention a demobank
-instance.
-
-.. http:get:: $base/reports
-.. http:get:: $base/reports/$id
-.. http:post:: $base/reports
-.. http:post:: $base/reports/$id
-.. http:delete:: $base/reports/$id