KONTOPRUEF-Logo
Sehen Sie sich auch mein anderes Produkt an:
myebilanz – die Freeware-eBilanz aus MySQL und CSV!
myebilanz

Informationen zu HBCI

Die Grundlagen

In einer SEPA-XML-Datei, die Sie zu Ihrer Bank übertragen, können mehrere sogenannte PmtInf-Abschnitte enthalten sein ("Payment Information"), in denen Überweisungen bzw. Lastschriften mit dem gleichen Ausführungstag (bzw. bei Lastschriften zusätzlich mit dem gleichen Sequence Type) zusammengefasst sind. Beispiel für Überweisungen:

  • Dateivorsatz (Dateiidentifikation, Erzeugungszeitpunkt, Prüfsummen)
  • Datenteil:
    • PmtInf für den Ausführungstag 11.5.2015
      • 1. Überweisung für den 11.5.
      • 2. Überweisung für den 11.5.
      • 3. Überweisung für den 11.5.
    • PmtInf für den Ausführungstag 15.5.2015
      • 1. Überweisung für den 15.5.
      • 2. Überweisung für den 15.5.
      • 3. Überweisung für den 15.5.
    • usw.

Wenn Sie Ihre SEPA-XML-Datei mit KONTOPRUEF-OFFLINE erzeugen, können Sie die einzelnen Überweisungen bzw. Lastschriften in beliebiger Reihenfolge mit KtoSepa.WriteCredit bzw. KtoSepa.WriteDebit in die Datei schreiben – KONTOPRUEF-OFFLINE kümmert sich automatisch um die geeignete Zusammenfassung und erzeugt ebenso automatisch die nötigen PmtInf-Blöcke.

Das Problem

Wenn Sie mit Ihrer Bank das Kommunikationsverfahren EBICS verwenden, können Sie eine solche "gemischte" SEPA-XML-Datei (mit mehreren PmtInf-Abschnitten) ohne weiteres übertragen; die "Einzelteile" werden entsprechend ihres Ausführungstags (und bei Lastschriften des Sequence Types) von Ihrer Bank verarbeitet.

Wenn Sie die Datei jedoch per HBCI (FinTS) übertragen wollen, ist dies so nicht möglich, da der HBCI-Standard nur einen einzigen PmtInf-Block pro übertragener Datei erlaubt. Sie müssen also völlig separate SEPA-XML-Dateien erstellen, in denen jeweils nur ein einziger PmtInf-Block enthalten ist, d.h. nach Ausführungstagen (und bei Lastschriften auch noch nach dem Sequence Type) aufteilen.

Die Lösung

Ab Bankdatendatei 1520 (Juni 2015) bietet Ihnen KONTOPRUEF-OFFLINE die Möglichkeit, die SEPA-XML-Datei unmittelbar bei der Erzeugung automatisch entsprechend aufzuteilen. Die Dateien werden dabei – mit 1 beginnend – fortlaufend nummeriert. Diese Zahl wird auch – hinter einem Bindestrich – an die MsgId angehängt, die Sie bei den Funktionen KtoSepa.OpenCredit bzw. KtoSepa.OpenDebit angeben, da sich die MsgId für jede einzelne Datei unterscheiden muss und die Bank mehrere Aufträge mit der gleichen MsgId ablehnen würde. (Ergibt die MsgId zusammen mit dem Bindestrich und der laufenden Nummer eine längere Zeichenkette als 35 Zeichen, wird die von Ihnen angegebene MsgId entsprechend gekürzt.)

Sie aktivieren diese Funktion, indem Sie bei der Funktion KtoSepa.CloseCredit bzw. KtoSepa.CloseDebit einen "Platzhalter" für die laufende Nummer angeben. Im einfachsten Fall lautet dieser Platzhalter %d – Ihr Programm könnte also z.B. lauten:

Result = KtoSepa.CloseCredit("D:\Bank\sepagut%d.xml")

Bei einer SEPA-XML-Datei mit 17 PmtInf-Blöcken würden Sie in diesem Beispiel die Dateien sepagut1.xml bis sepagut17.xml erhalten.

Wenn Sie immer gleich viele Stellen bei der Nummerierung (d.h. führende Nullen) haben möchten, können Sie zwischen dem % und dem d noch einen Punkt und die Anzahl der gewünschten Stellen eingeben, z.B. also %.3d – hier wieder ein Beispiel:

Result = KtoSepa.CloseCredit("D:\Bank\sepagut%.3d.xml")

Bei einer SEPA-XML-Datei mit 17 PmtInf-Blöcken würden Sie in diesem Beispiel die Dateien sepagut001.xml bis sepagut017.xml erhalten.

Eine vollständige Dokumentation aller weiteren (aber normalerweise nicht sinnvollen) Formatierungsmöglichkeiten finden Sie hier.

Sehen Sie sich auch mein anderes Produkt an:
myebilanz – die Freeware-eBilanz aus MySQL und CSV!
myebilanz