From 0d3c73c6aa4dc0ff1fe29c42f1f80c8cc716a203 Mon Sep 17 00:00:00 2001 From: Florian Dold Date: Mon, 4 Nov 2019 19:31:48 +0100 Subject: libeufin: nexus API --- libeufin/api-nexus.rst | 135 +++++++++++++++++++++++++++++++++++++++++++++++++ libeufin/index.rst | 1 + 2 files changed, 136 insertions(+) create mode 100644 libeufin/api-nexus.rst (limited to 'libeufin') 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:: /users + + List users. + + **Required permission:** Administrator. + +.. http:post:: /users + + Create a new user. + + **Required permission:** Administrators. + + +Bank Account Management +----------------------- + +.. http:get:: /bank-accounts + + List bank accouts managed by nexus. + + +.. http:post:: /bank-accounts + + List bank accouts managed by nexus. + + +.. http:get:: /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:: /bank-accounts/{acctid}/payments + + List payments made with this bank account via nexus. + +.. http:post:: /bank-accounts/{acctid}/payments + + Initiate a payment. + + +Low-level EBICS API +------------------- + +.. http:post:: /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:: /ebics/subscribers + + List EBICS subscribers managed by nexus. + + +.. http:get:: /ebics/subscribers/{id} + + Get details about an EBICS subscriber. + + +.. http:post:: /ebics/subscriber/{id}/keyletter + + Get a nicely formatted key letter. (Does not return JSON, but markdown-formatted text) + + +.. http:post:: /ebics/subscriber/{id}/sendIni + + Send INI message to the EBICS host. + + +.. http:post:: /ebics/subscriber/{id}/sendHia + + Send HIA message to the EBICS host. + +.. http:post:: /ebics/subscriber/{id}/sync + + Synchronize with the EBICS server. Sends the HPB message + and updates the bank's keys. + +.. http:post:: /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:: /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 -- cgit v1.2.3