taler-docs

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

nexus-dialects.rst (4059B)


      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 EBICS
     33 =====
     34 
     35 Protocol versions
     36 -----------------
     37 
     38 The following protocol versions are supported:
     39 - V2.5 H004
     40 - v3.0 H005
     41 
     42 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.
     43 
     44 Administrative Orders
     45 ---------------------
     46 
     47 We use the following EBICS orders: HEV, INI, HIA, HPB, HKD, HAA, BTU, BTD.
     48 HAA and HKD are optional orders but are required for LibEuFin Nexus to work.
     49 
     50 ISO20022
     51 ========
     52 
     53 CAMT files
     54 ----------
     55 
     56 In ISO 20022 specifications, most fields are optional and the same information 
     57 can be written several times in different places. For LibEuFin, we're only 
     58 interested in a subset of the available values that can be found in both camt.
     59 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.
     60 
     61 - postfinance & valiant
     62 
     63   - BTD PSR CH pain.002 10 ZIP
     64   - BTD STM CH camt.052 08 ZIP
     65   - BTD EOP CH camt.053 08 ZIP
     66   - BTD REP CH camt.054 08 ZIP
     67 
     68 - gls
     69 
     70   - BTD REP DE pain.002 ZIP SCI
     71   - BTD REP DE pain.002 ZIP SCT
     72   - BTD STM DE camt.052 ZIP
     73   - BTD EOP DE camt.053 ZIP
     74   - BTD STM DE camt.054 ZIP
     75   - BTD STM DE camt.054 ZIP SCI
     76 
     77 If older versions of files are advertised as being present, we will also fetch them.
     78 
     79 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.
     80 Those three identifiers are optional in the standard and sometimes mandatory in local standards. Combining the three we can track transactions across different files.
     81 
     82 PAIN files
     83 ----------
     84 
     85 Direct debits will use the following orders
     86 - postfinance & valiant: BTU MCT CH pain.001 09
     87 - gls: BTU SCT pain.001
     88 
     89 Instant direct debits will use the following orders
     90 - gls: BTU SCI DE pain.001
     91 
     92 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.
     93 
     94 The following pain.001 format are used:
     95 
     96 - postfinance & maerki_baumann & valiant: pain.001.001.09.ch.03 with the default service level this will only work between swiss accounts
     97 - gls: pain.001.001.09 with the SEPA service level this works with any other SEPA account