LIBEUFIN-NEXUS.CONF(5)

πŸ“¦ version 1.3.0, in nixos 26.05, nixpkgs unstable

πŸ’– libeufin-nexus.conf β€” the LibEuFin Nexus config file, bestie edition ✨

Ok so bestie, this is the libeufin-nexus.conf(5) page β€” like, section 5 of the manual, GNU Taler flavor β€” and it's literally just about one file: the LibEuFin Nexus configuration file. It's giving "settings, but make it a vibe." Let's go 🫢


🌸 NAME 🌸

libeufin-nexus.conf β€” the LibEuFin Nexus configuration file. That's it, that's the whole name, she's iconic and she knows it πŸ’…


✨ DESCRIPTION ✨

So the config file is line-oriented, meaning each line is its own little moment. Blank lines? Ignored. Whitespace at the beginning and end of a line? Also ignored, we don't judge 🌈

Comments start with # or % in the first column β€” and by "first column" we mean after any beginning-of-line whitespace, so you can indent your comments, slay β€” and they run all the way to the end of the line.

The file is split into sections. Every section begins with [SECTIONNAME] and contains a number of options of the form OPTION=VALUE. You can have whitespace around the = (equal sign), no cap. Section names and options are case-insensitive πŸ’«

The values though? Oh honey, the values are case-sensitive. In particular, boolean values are one of YES or NO β€” no yes, no true, no yass, just YES/NO. Values can include whitespace by surrounding the entire value with " (double quote). But heads up πŸ™ˆ: there are no escape characters in such strings; all characters between the double quotes (including other double quotes) are taken verbatim.

Values that represent a time duration are represented as a series of one or more NUMBER UNIT pairs, e.g. 60 s, 4 weeks 1 day, 5 years 2 minutes. It's giving "recipe measurements but for time" πŸ“

Values that represent an amount are in the usual amount syntax: CURRENCY:VALUE.FRACTION, e.g. EUR:1.50. The FRACTION portion may extend up to 8 places β€” that's the limit, bestie, don't push it.

Values that represent filenames can begin with a /bin/sh-like variable reference. This can be simple, such as $TMPDIR/foo, or complex, such as ${TMPDIR:-${TMP:-/tmp}}/foo. The variables are expanded either using key-values from the [PATHS] section (see below) or from the environment (getenv()). The values from [PATHS] take precedence over those from the environment πŸ‘‘ If the variable name is found in neither [PATHS] nor the environment, a warning is printed and the value is left unchanged. Variables (including those from the environment) are expanded recursively, so if FOO=$BAR and BAR=buzz then the result is FOO=buzz. Recursion is bounded to at most 128 levels to avoid undefined behavior for mutually recursive expansions like if BAR=$FOO in the example above β€” so yeah, don't create an infinite loop situation, the system is not about that life 😭

The [PATHS] section is special in that it contains paths that can be referenced using $ in other configuration values that specify filenames. Note that configuration options that are not specifically retrieved by the application as filenames will not see "$"-expressions expanded. To expand $-expressions when using taler-config, you must pass the -f command-line option. Iykyk πŸ”₯

The system automatically pre-populates the [PATHS] section with a few values at run-time (in addition to the values that are in the actual configuration file and automatically overwriting those values if they are present). These automatically generated values refer to installation properties from GNU autoconf. The values are usually dependent on an INSTALL_PREFIX which is determined by the --prefix option given to configure. The canonical values are:

  • LIBEXECDIR = $INSTALL_PREFIX/taler/libexec/
  • DOCDIR = $INSTALL_PREFIX/share/doc/taler/
  • ICONDIR = $INSTALL_PREFIX/share/icons/
  • LOCALEDIR = $INSTALL_PREFIX/share/locale/
  • PREFIX = $INSTALL_PREFIX/
  • BINDIR = $INSTALL_PREFIX/bin/
  • LIBDIR = $INSTALL_PREFIX/lib/taler/
  • DATADIR = $INSTALL_PREFIX/share/taler/

Note that on some platforms, the given paths may differ depending on how the system was compiled or installed β€” the above are just the canonical locations of the various resources. These automatically generated values are never written to disk πŸ’€ (so don't go looking for them in a file, they're not there).

Files containing default values for many of the options described below are installed under $LIBEUFIN_NEXUS_PREFIX/share/libeufin-nexus/config.d/. The configuration file given with -c to Taler binaries overrides these defaults. Periodt πŸ’…

A configuration file may include another, by using the @INLINE@ directive, for example, in main.conf, you could write @INLINE@ sub.conf to include the entirety of sub.conf at that point in main.conf. Cute, right? πŸŽ€


🏦 EBICS OPTIONS 🏦

The following options are from the [nexus-ebics] section. Main characters only ✨

  • CURRENCY β€” name of the currency, e.g. EUR for Euro. Easy.
  • HOST_BASE_URL β€” URL of the EBICS server.
  • HOST_ID β€” EBICS specific: name of the EBICS host.
  • USER_ID β€” EBICS specific: user ID of the EBICS subscriber. This value must be assigned by the bank after having activated a new EBICS subscriber. No DIY-ing this one πŸ™…β€β™€οΈ
  • PARTNER_ID β€” EBICS specific: partner ID of the EBICS subscriber. This value must be assigned by the bank after having activated a new EBICS subscriber. Same energy.
  • IBAN β€” IBAN of the bank account that is associated with the EBICS subscriber.
  • BIC β€” BIC of the bank account that is associated with the EBICS subscriber.
  • NAME β€” legal entity that is associated with the EBICS subscriber.
  • BANK_PUBLIC_KEYS_FILE β€” filesystem location where Nexus should store the bank public keys πŸ”‘
  • CLIENT_PRIVATE_KEYS_FILE β€” filesystem location where Nexus should store the subscriber private keys πŸ”
  • BANK_DIALECT β€” name of the following combination: EBICS version and ISO20022 recommendations that Nexus would honor in the communication with the bank. Currently only the postfinance, gls, maerki_baumann or valiant dialects is supported. (That's the list, bestie β€” those four, nothing else.)
  • ACCOUNT_TYPE β€” specify the account type and therefore the indexing behavior. This can either can be normal or exchange. Exchange accounts bounce invalid incoming Taler transactions 🚫

πŸ› οΈ EBICS SETUP OPTIONS πŸ› οΈ

The following configuration value(s) belong to the [nexus-setup] section. Setup era 🌱

  • BANK_ENCRYPTION_PUB_KEY_HASH β€” bank encryption public key hash.
  • BANK_AUTHENTICATION_PUB_KEY_HASH β€” bank authentication public key hash.

πŸ“€ EBICS SUBMIT OPTIONS πŸ“€

The following configuration value(s) belong to the [nexus-submit] section. Sending it off into the world ✈️

  • FREQUENCY β€” duration value to instruct the ebics-submit subcommand how much to wait before checking the database again to find new unsubmitted payments. Patience is a virtue πŸ§˜β€β™€οΈ
  • MANUAL_ACK β€” wether to wait for manual acknowledgement before submiting transactions. (Yes, the original spells it "wether" and "submiting" β€” we keep the lore fr fr πŸ™ˆ)

πŸ“₯ EBICS FETCH OPTIONS πŸ“₯

The following configuration value(s) belong to the [nexus-fetch] section. Bringing the data home 🏑

  • 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.
  • IGNORE_BOUNCES_BEFORE β€” ignore all malformed transactions prior to a certain YYYY-MM-DD date, useful when you want to import old transactions without bouncing the malformed ones a second time.
  • BOUNCE_DEDUCE_FEE β€” whether to deduce the fee paid by the exchange account from the bounced amount.
  • BOUNCE_FEE β€” an additional fee to deduce from the bounced amount.
  • RESTRICTION_PAYTO_REGEX β€” bounce transactions coming from account not matching this regex. πŸͺƒ

🌐 HTTP SERVER OPTIONS 🌐

The following configuration value(s) belong to the [nexus-httpd] section. Server girlie πŸ’»

  • SERVE β€” this can either be tcp or unix.
  • PORT β€” port on which the HTTP server listens, e.g. 9967. Only used if SERVE is tcp.
  • BIND_TO β€” which IP address should we bind to? E.g. 127.0.0.1 or ::1 for loopback. Can also be given as a hostname. Only used if SERVE is tcp. (Note: the original has a stray pair of backticks in there β€” ::1``for β€” but the meaning is clear: ::1 means loopback 😌)
  • UNIXPATH β€” which unix domain path should we bind to? Only used if SERVE is unix.

πŸ’Έ HTTP WIRE GATEWAY API OPTIONS πŸ’Έ

The following configuration value(s) belong to the [nexus-httpd-wire-gateway-api] section. Money-moving energy πŸ”₯

  • ENABLED β€” whether to serve the Wire Gateway API.
  • AUTH_METHOD β€” authentication scheme, this can either be basic, bearer or none.
  • USERNAME β€” user name for basic authentication scheme.
  • PASSWORD β€” password for basic authentication scheme.
  • TOKEN β€” token for bearer authentication scheme.

πŸ’° HTTP REVENUE API OPTIONS πŸ’°

The following configuration value(s) belong to the [nexus-httpd-revenue-api] section. Revenue era, get that bag πŸ‘œ

  • ENABLED β€” whether to serve the Revenue API.
  • AUTH_METHOD β€” authentication scheme, this can either be basic, bearer or none.
  • USERNAME β€” user name for basic authentication scheme.
  • PASSWORD β€” password for basic authentication scheme.
  • TOKEN β€” token for bearer authentication scheme.

πŸ‘€ HTTP OBSERVABILITY API OPTIONS πŸ‘€

The following configuration value(s) belong to the [nexus-httpd-observability-api] section. Watching, always watching 🧚

  • ENABLED β€” whether to serve the Observability API.
  • AUTH_METHOD β€” authentication scheme, this can either be basic, bearer or none.
  • USERNAME β€” user name for basic authentication scheme.
  • PASSWORD β€” password for basic authentication scheme.
  • TOKEN β€” token for bearer authentication scheme.

πŸ—„οΈ DATABASE OPTIONS πŸ—„οΈ

Setting the database belongs to the [libeufin-nexusdb-postgres] section and the following value. That's literally all this section says, bestie β€” don't @ me 😭


πŸ¦‹ SEE ALSO πŸ¦‹


πŸ› BUGS πŸ›

Report bugs by using https://bugs.taler.net/ or by sending electronic mail to <taler@gnu.org>. They want the bug reports, that's the whole point, so don't be shy 🫢


πŸ‘‘ AUTHOR πŸ‘‘

GNU Taler contributors.


2014-2025 Taler Systems SA (GPLv3+ or GFDL 1.3+)


aaaand that's the whole page πŸ’– Version 1.0, dated Dec 22, 2025 β€” that's the footer flex. Now go forth and configure your Nexus, you absolute icon, and remember: <rainbow>case-sensitive values, case-insensitive options, 128 recursion levels, and exactly zero escape characters in them quotes.</rainbow> Slay πŸŒˆβœ¨πŸŽ€

πŸ“¦ where this page comes from