summaryrefslogtreecommitdiff
path: root/libeufin/nexus-howto.rst
blob: aa062fe63388f605f454ca1b05aee53206be7d8b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
Nexus How-To
############

.. contents:: Table of Contents

Obtain Nexus
============
Nexus belongs to the LibEuFin project, and can be downloaded via Git:
``$ git clone git://git.taler.net/libeufin``

Note that Kotlin+Gradle should already work on the host system.

Install Nexus
=============
Navigate into the `libeufin` local repository, and from top-level run:
``$ ./gradlew -Pprefix=$PREFIX nexus:installToPrefix``

In case of success, Nexus can be run with the following command:
``$ libeufin-nexus``

Connect Nexus with a EBICS account
==================================
Nexus is a Web service that unifies banking protocols, like EBICS, under
one JSON-based abstraction layer.  Therefore, "using Nexus" means having
a running Nexus service that will receive the requests from another command
line program that is as well offered along LibEuFin.

Use the following command to *(1) run the nexus service*:

.. code-block:: shell

  $ libeufin-nexus

At this point a *(2) superuser account needs to be activated
into the system*:

.. code-block:: shell

  $ libeufin-nexus superuser foo # Will interactively ask for password

For simplicity, we'll enable the superuser to access the bank account
via the EBICS protocol, but a API to create less privileged users is
as well offered.

Nexus needs now to associate the user to a EBICS subscriber that was
activated on the bank.  In the terminology, this is called *(3) creating
a EBICS connection*.

.. code-block:: shell

  ./libeufin-cli \
    connections \
      new-ebics-connection \
        --connection-name $NEXUS_BANK_CONNECTION_NAME \
        --ebics-url $EBICS_BASE_URL \
        --host-id $EBICS_HOST_ID \
        --partner-id $EBICS_PARTNER_ID \
        --ebics-user-id $EBICS_USER_ID \
        --nexus-user-id $NEXUS_USER \
        --nexus-password $NEXUS_PASSWORD \
        $NEXUS_URL

If the previous command succeeded, Nexus must communicate all the details
to the bank.  Therefore, it will *(4) bootstrap the connection*.

.. code-block:: shell

  ./libeufin-cli \
    connections \
      bootstrap-connection \
        --connection-name $NEXUS_BANK_CONNECTION_NAME \
        --nexus-user-id $NEXUS_USER \
        --nexus-password $NEXUS_PASSWORD \
        $NEXUS_URL

Request history of transactions
===============================

Make a payment
==============