taler-docs

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

nexus-dialects.rst (4101B)


      1 ..
      2   This file is part of GNU TALER.
      3   Copyright (C) 2025 Taler Systems SA
      4 
      5   TALER is free software; you can redistribute it and/or modify it under the
      6   terms of the GNU Affero General Public License as published by the Free Software
      7   Foundation; either version 2.1, or (at your option) any later version.
      8 
      9   TALER is distributed in the hope that it will be useful, but WITHOUT ANY
     10   WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
     11   A PARTICULAR PURPOSE.  See the GNU Affero General Public License for more details.
     12 
     13   You should have received a copy of the GNU Affero General Public License along with
     14   TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
     15 
     16   @author Antoine d'Aligny
     17 
     18 .. target audience: operator, developer
     19 
     20 Nexus bank dialects
     21 ###################
     22 
     23 LibEuFin Nexus is an EBICS facilitator. It offers a command line interface to
     24 setup EBICS access, download banking records, and submit payments. LibEuFin Nexus is not a generic EBICS client but a Taler specific one.
     25 
     26 Today, the LibEuFin implementation supports EBICS 3.0 and has been 
     27 tested with Postfinance (CHF), GLS (EUR) and Maerki Baumann (CHF). Please note 
     28 that banks tend to have their own dialects of finance messages and thus other 
     29 retail banks may or may not work. Contact us if you need support for another 
     30 bank or core banking protocol.
     31 
     32 .. contents:: Table of Contents
     33   :local:
     34 
     35 EBICS
     36 =====
     37 
     38 Protocol versions
     39 -----------------
     40 
     41 The following protocol versions are supported:
     42 - V2.5 H004
     43 - v3.0 H005
     44 
     45 We use V3.0 for all file related operations and V2.5 for key management for *gls* dialect until GLS correctly support it. We plan to drop V2.5 support in 2026.
     46 
     47 Administrative Orders
     48 ---------------------
     49 
     50 We use the following EBICS orders: HEV, INI, HIA, HPB, HKD, HAA, BTU, BTD.
     51 HAA and HKD are optional orders but are required for LibEuFin Nexus to work.
     52 
     53 ISO20022
     54 ========
     55 
     56 CAMT files
     57 ----------
     58 
     59 In ISO 20022 specifications, most fields are optional and the same information 
     60 can be written several times in different places. For LibEuFin, we're only 
     61 interested in a subset of the available values that can be found in both camt.
     62 052, camt.053 and camt.054. We only parse payment transactions (transaction domain code PMNT) and ignore all others. This mean we ignore some debits that could originate from you banks for fees or taxes.
     63 
     64 - postfinance & valiant
     65 
     66   - BTD PSR CH pain.002 10 ZIP
     67   - BTD STM CH camt.052 08 ZIP
     68   - BTD EOP CH camt.053 08 ZIP
     69   - BTD REP CH camt.054 08 ZIP
     70 
     71 - gls
     72 
     73   - BTD REP DE pain.002 ZIP SCI
     74   - BTD REP DE pain.002 ZIP SCT
     75   - BTD STM DE camt.052 ZIP
     76   - BTD EOP DE camt.053 ZIP
     77   - BTD STM DE camt.054 ZIP
     78   - BTD STM DE camt.054 ZIP SCI
     79 
     80 If older versions of files are advertised as being present, we will also fetch them.
     81 
     82 As the ISO20022 standard does not provide a perfect transaction identifier we use a combinaison of the ``UETR`` (unique end-to-end transaction reference), which is a universal identifier, the ``TxId`` (TransactionIdentification), assigned by the first instructing agent and the ``AcctSvcrRef`` (AccountServicerReference) assigned by the account servicing institution.
     83 Those three identifiers are optional in the standard and sometimes mandatory in local standards. Combining the three we can track transactions across different files.
     84 
     85 PAIN files
     86 ----------
     87 
     88 Direct debits will use the following orders
     89 - postfinance & valiant: BTU MCT CH pain.001 09
     90 - gls: BTU SCT pain.001
     91 
     92 Instant direct debits will use the following orders
     93 - gls: BTU SCI DE pain.001
     94 
     95 Instant direct debits are always tried first if they are supported, and LibEuFin fall back on ordinary direct debits in case of failure. If you do not want LibEuFin to send instant direct debit you can disable the order for LibEuFin's specific subscriber at your bank.
     96 
     97 The following pain.001 format are used:
     98 
     99 - postfinance & maerki_baumann & valiant: pain.001.001.09.ch.03 with the default service level this will only work between swiss accounts
    100 - gls: pain.001.001.09 with the SEPA service level this works with any other SEPA account