Project

General

Profile

Bug #56

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

Added by cmenke 25 days ago. Updated 18 days ago.

Status:
Closed
Priority:
High
Category:
-
Start date:
09/18/2019
Due date:
Betriebssystem:
AqBanking-Version:
Anwendung:
Version der Anwendung:

Description

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>

History

#1 Updated by martin 25 days ago

  • Assignee set to martin
  • Priority changed from Normal to High

#2 Updated by martin 23 days ago

  • Status changed from New to Resolved

Sollte im GIT behoben sein.
Kannst Du das mal testen?

#3 Updated by cmenke 19 days ago

Vielen Dank für das schnelle Update und sorry für die späte Rückmeldung – hatte erst jetzt Gelegenheit (und neue Überweisungen) zum Neu-Kompilieren und Testen.
Der XML Pfad CstmrCdtTrfInitn/PmtInf/Dbtr/Nm wird in der neuen Version richtig escaped und schaut jetzt gut aus.

Lediglich in CstmrCdtTrfInitn/GrpHdr/InitgPty/Nm wird "&" noch unescaped ausgegeben.
Ich glaube dafür ist diese Stelle in sepa.c:327 verantwortlich, die im aktuellen master-branch noch GWEN_XMLNode_SetCharValue nutzt: https://github.com/aqbanking/aqbanking/blob/12efe1ea3f6056fc6109a82ce529fea86f8aaab2/src/libs/plugins/imexporters/sepa/sepa.c#L327

#4 Updated by martin 18 days ago

  • Status changed from Resolved to Closed

Danke, ist jetzt behoben.

#5 Updated by cmenke 18 days ago

Herzlichen Dank! Klappt wieder wunderbar.

Also available in: Atom PDF