summaryrefslogtreecommitdiff
path: root/libeufin
diff options
context:
space:
mode:
authorFlorian Dold <florian.dold@gmail.com>2019-11-04 19:31:48 +0100
committerFlorian Dold <florian.dold@gmail.com>2019-11-04 19:31:48 +0100
commit0d3c73c6aa4dc0ff1fe29c42f1f80c8cc716a203 (patch)
tree0ba3e3c038f4c1437cc73d3bf2cc86fb83f99788 /libeufin
parent708abdbf882727e9178c8a53e9d739a82e116afd (diff)
downloaddocs-0d3c73c6aa4dc0ff1fe29c42f1f80c8cc716a203.tar.gz
docs-0d3c73c6aa4dc0ff1fe29c42f1f80c8cc716a203.tar.bz2
docs-0d3c73c6aa4dc0ff1fe29c42f1f80c8cc716a203.zip
libeufin: nexus API
Diffstat (limited to 'libeufin')
-rw-r--r--libeufin/api-nexus.rst135
-rw-r--r--libeufin/index.rst1
2 files changed, 136 insertions, 0 deletions
diff --git a/libeufin/api-nexus.rst b/libeufin/api-nexus.rst
new file mode 100644
index 00000000..c5baeec6
--- /dev/null
+++ b/libeufin/api-nexus.rst
@@ -0,0 +1,135 @@
+Sandbox API
+###########
+
+
+HTTP API
+========
+
+Users Management
+----------------
+
+Users are the entity that access accounts. They do not necessarily correspond
+to the actual legal owner of an account. Their main purpose in the nexus is
+access management.
+
+.. http:get:: <nexus>/users
+
+ List users.
+
+ **Required permission:** Administrator.
+
+.. http:post:: <nexus>/users
+
+ Create a new user.
+
+ **Required permission:** Administrators.
+
+
+Bank Account Management
+-----------------------
+
+.. http:get:: <nexus>/bank-accounts
+
+ List bank accouts managed by nexus.
+
+
+.. http:post:: <nexus>/bank-accounts
+
+ List bank accouts managed by nexus.
+
+
+.. http:get:: <nexus>/bank-accounts/{acctid}/history
+
+ :query method: Method to query the bank transaction (cached, ebics, fints, ...)
+
+ Query the transaction history of an account via the specified method.
+
+
+.. http:get:: <nexus>/bank-accounts/{acctid}/payments
+
+ List payments made with this bank account via nexus.
+
+.. http:post:: <nexus>/bank-accounts/{acctid}/payments
+
+ Initiate a payment.
+
+
+Low-level EBICS API
+-------------------
+
+.. http:post:: <nexus>/ebics/subscribers
+
+ Create a new subscriber. Create keys for the subscriber that
+ will be used in later operations.
+
+ .. ts:def:: NexusEbicsCreateSubscriber
+
+ interface NexusEbicsCreateSubscriber {
+ ebicsUrl: string;
+ hostID: string;
+ partnerID: string;
+ userID: string;
+ systemID: string?
+ }
+
+
+.. http:get:: <nexus>/ebics/subscribers
+
+ List EBICS subscribers managed by nexus.
+
+
+.. http:get:: <nexus>/ebics/subscribers/{id}
+
+ Get details about an EBICS subscriber.
+
+
+.. http:post:: <nexus>/ebics/subscriber/{id}/keyletter
+
+ Get a nicely formatted key letter. (Does not return JSON, but markdown-formatted text)
+
+
+.. http:post:: <nexus>/ebics/subscriber/{id}/sendIni
+
+ Send INI message to the EBICS host.
+
+
+.. http:post:: <nexus>/ebics/subscriber/{id}/sendHia
+
+ Send HIA message to the EBICS host.
+
+.. http:post:: <nexus>/ebics/subscriber/{id}/sync
+
+ Synchronize with the EBICS server. Sends the HPB message
+ and updates the bank's keys.
+
+.. http:post:: <nexus>/ebics/subscriber/{id}/sendEbicsOrder
+
+ Sends an arbitrary bank-technical EBICS order. Can be an upload
+ order or a download order.
+
+ .. ts:def:: NexusEbicsSendOrderRequest::
+
+ interface NexusEbicsSendOrderRequest {
+ // Bank-technical order type, such as C54 (query transactions)
+ // or CCC (initiate payment)
+ orderType: string;
+
+ // Generic order parameters, such as a date range for querying
+ // an account's transaction history.
+ orderParams: OrderParams
+
+ // Body (XML, MT940 or whatever the bank server wants)
+ // of the order type, if it is an upload order
+ orderMessage: string;
+ }
+
+
+.. http:post:: <nexus>/ebics/subscriber/{id}/ebicsOrders
+
+ .. note::
+
+ This one should be implemented last and specified better!
+
+ Return a list of previously sent ebics messages together with their status.
+ This allows retrying sending a message, if there was a crash during sending
+ the message.
diff --git a/libeufin/index.rst b/libeufin/index.rst
index 816aa54f..f842dcbd 100644
--- a/libeufin/index.rst
+++ b/libeufin/index.rst
@@ -9,3 +9,4 @@ LibEuFin is a project providing free software tooling for European FinTech.
ebics
architecture
api-sandbox
+ api-nexus