taler-docs

Documentation for GNU Taler components, APIs and protocols
Log | Files | Refs | README | LICENSE

commit c31719e2c873ed9f3a529ead33a83a9f75f583bb
parent 9fe0b8090dd8287a0715af40b1f689efd5bc5ff8
Author: Antoine A <>
Date:   Mon, 11 Nov 2024 19:33:27 +0100

libeufin: update manual and man pages

Diffstat:
Mlibeufin/nexus-manual.rst | 35+++++++++++++++++++++++++++++++----
Mmanpages/libeufin-bank.1.rst | 2++
Mmanpages/libeufin-nexus.1.rst | 6+++++-
Mmanpages/libeufin-nexus.conf.5.rst | 3+++
4 files changed, 41 insertions(+), 5 deletions(-)

diff --git a/libeufin/nexus-manual.rst b/libeufin/nexus-manual.rst @@ -214,10 +214,30 @@ Downloading payments must follow a successful `EBICS subscriber setup subscriber accepted the bank keys. Furthermore, the database has to be set up. -The responsible subcommand for sending payments is ``ebics-fetch``, and its -configuration is a **superset** of core-config_. On top of that, it expects -the database connection string and *optionally* a frequency at which it will -downloads any new EBICS files and register them in the database. +The responsible subcommand for fetching and registering payments is +``ebics-fetch``, and its configuration is a **superset** of core-config_. On +top of that, it expects the database connection string and *optionally* a +frequency and a checkpoint time of day. + +For the best user experience, new transactions should be registered as soon as +they are booked. This is especially important for instant transactions, which +reach final status in ~10 seconds. On the other hand, EBICS document fetches +are slow and expensive and should not be performed more than necessary. + +``ebics-fetch`` will run a periodical fetch of pending documents (documents +that have never been fetched before). If the bank server supports it, it will +also listen to real-time document availability notifications and fetch +documents as soon as they are announced. This enables instant registration of +instant transactions. If your bank server does not support real-time +notifications, it is recommended that you fetch more often; otherwise, you can +reduce the fetch frequency. + +Only fetching pending documents is not always reliable, if other EBICS clients +use the same connection settings as ``libeufin-nexus``, they can consume documents before they are ingested. In case of bank downtime, the status of +documents can be lost. This is why ``ebics-fetch`` will run a checkpoint every +day to download all documents generated since the last checkpoint. + +If the bank supports real-time notifications, you can expect transactions to be registered as soon as they are booked: ~10s for instant transactions and 24 to 72h for other transactions. Otherwise, expect a latency corresponding to the fetch frequency for instant transactions. Thanks to checkpointing, latency should not exceed one day. The frequency **may** be specified as @@ -228,6 +248,13 @@ The frequency **may** be specified as The supported time units are ``s`` (seconds), ``m`` (minutes), ``h`` (hours). +The checkpoint time of day **may** be specified as + +.. code-block:: ini + + [nexus-fetch] + CHECKPOINT_TIME_OF_DAY = 19:00 + Assuming that ``$CONFIG_FILE`` contains all required options, the following command would download any unseen EBICS files: diff --git a/manpages/libeufin-bank.1.rst b/manpages/libeufin-bank.1.rst @@ -99,6 +99,8 @@ Its options are as follows: Optional token description. **--refreshable** Make the token refreshable into a new token. +**--current-token** *TOKEN* + Current token to reuse if still valid. **-h** \| **--help** Print short help on options. diff --git a/manpages/libeufin-nexus.1.rst b/manpages/libeufin-nexus.1.rst @@ -115,7 +115,7 @@ This subcommand fetches EBICS files from the bank. Incoming payments are recorde If ACCOUNT_TYPE is ``exchange``, incoming payments with an invalid Taler subject are bounced. Bounces are submitted by ebics-submit. -Fetches are executed at 'FREQUENCY' or any time a real-time EBICS notification is received. +Fetches of new documents are executed at 'FREQUENCY' or any time a real-time EBICS notification is received. Every day, a checkpoint is performed, during which all documents since the last checkpoint are fetched. **-c** \| **--config** *config_file* Specifies the configuration file. @@ -125,6 +125,10 @@ Fetches are executed at 'FREQUENCY' or any time a real-time EBICS notification i Execute once and return, ignoring the 'FREQUENCY' configuration value. **--pinned-start** *YYYY-MM-DD* Only supported in --transient mode, this option lets specify the earliest timestamp of the downloaded documents. +**--peek** + Only supported in --transient mode, do not consume fetched documents. +**--checkpoint** + Only supported in --transient mode, run a checkpoint. **--debug-ebics** *log_dir* Log EBICS transactions steps and payload at log_dir. **-h** \| **--help** diff --git a/manpages/libeufin-nexus.conf.5.rst b/manpages/libeufin-nexus.conf.5.rst @@ -90,6 +90,9 @@ FREQUENCY Duration value to instruct the ``ebics-fetch`` subcommand how often it should download from the bank. +CHECKPOINT_TIME_OF_DAY + At what time HH:MM of day should ``ebics-fetch`` perform a checkpoint. + IGNORE_TRANSACTIONS_BEFORE Ignore all transactions before a certain YYYY-MM-DD date, useful when you want to use an existing account with old transactions that should not be bounced.