Projekt

Allgemein

Profil

Aktionen

Bug #56

geschlossen

Unescaped "&" in Accountinhaber-Namen führt zu invalidem SEPA-XML und Abbruch von sepatransfers

Von cmenke vor fast 6 Jahren hinzugefügt. Vor fast 6 Jahren aktualisiert.

Status:
Closed
Priorität:
High
Kategorie:
-
Beginn:
18.09.2019
Abgabedatum:
Betriebssystem:
AqBanking-Version:
Anwendung:
Version der Anwendung:

Beschreibung

Der Befehl aqbanking-cli sepatransfers --infile=...csv scheitert bei mir in der aktuellen Version 5.99.30 mit folgenden Meldungen (Sparkasse Bochum, 43050001):

9010 XML-EXCEPTION
9010 Systemfehler,der Auftrag konnte nicht ausgeführt werden

Die Ursache dafür scheinen "&"-Zeichen im Namen des Account-Inhabers (z.B. "FOO & BAR") zu sein, der in den SEPA-XML Feldern InitgPty/Nm und Dbtr/Nm "unescaped" übergeben wird (siehe [1]).
Die beiden Felder werden in sepa.c:327 bzw. sepa_pain_001.c:102 gesetzt:
https://github.com/aqbanking/aqbanking/blob/995b2d7e47272fbbb1eea2f6f908a0fab62efb17/src/libs/plugins/imexporters/sepa/sepa.c#L327
https://github.com/aqbanking/aqbanking/blob/995b2d7e47272fbbb1eea2f6f908a0fab62efb17/src/libs/plugins/imexporters/sepa/sepa_pain_001.c#L102

Zu Testzwecken habe ich mit meinen eher rudimentären C-Kenntnissen an o.g. Stellen das "&" durch "&" ersetzen lassen.
Damit kompiliert ließ sich aqbanking-cli sepatransfers dann erfolgreich ausführen.

Evtl. können aber auch weitere Felder wie Cdtr/Nm (remoteName), RmtInf/Ustrd (purpose) betroffen sein?

[1] An die Bank übermitteltes XML (Auszug aus config/backends/aqhbci/data/banks/de/43050001/logs/)

<?xml version="1.0" encoding="UTF-8"?>
<Document xmlns="urn:iso:std:iso:20022:tech:xsd:pain.001.003.03">
    <CstmrCdtTrfInitn>
        <GrpHdr>
          <InitgPty>
            <Nm>FOO & BAR</Nm>
          </InitgPty>
          <!-- ... -->
        </GrpHdr>
        <PmtInf>
          <Dbtr>
            <Nm>FOO & BAR</Nm>
          </Dbtr>
          <!-- ... -->
        </PmtInf>
    </CstmrCdtTrfInitn>
</Document>

Aktionen

Auch abrufbar als: Atom PDF