Impressum:

» Kontaktdaten

Datenschutz:

Zugriffe auf diese Seite werden nicht in Logdaten gespeichert oder auf andere Art erfasst bzw. ausgewertet. Es werden keine Cookies verwendet.

Delphi-Unit zur Erstellung von SEPA-XML-Dateien

Ziel dieses Projekts ist eine einzelne Delphi-Unit, mit deren Hilfe man relativ einfach SEPA-XML-Dateien erstellen kann, speziell für Überweisungen und Lastschriftaufträge in Deutschland. Die Pascal-Datei hat (außer einigen wenigen Standardbibliotheken von Delphi) keinerlei Abhängigkeiten, auch die XML-Datei wird mit einfachsten Mitteln erzeugt. Einfach gehaltene Validierungsmöglichkeiten sind enthalten. Derzeit unterstützt sind Version 2.6 bzw. 2.7 bis 2.9 (pain.001.002.03 und pain.001.003.03 bzw. pain.008.002.02 und pain.008.003.02) nach EBICS: Spezifikation der Datenformate veröffentlicht von der Deutschen Kreditwirtschaft.

Tipps zur Verwendung: Für eine bessere Kompatibilität mit verschiedenen deutschen Banken sollte in einer XML-Datei nur ein "<PmtInf>"-Block enthalten sein, d.h. z.B., nur ein Lastschrift-Datum und alle Buchungen mit dem gleichen Typ (FRST/RCUR etc.). Das Dateiformat unterstützt zwar mehrere dieser Blöcke, aber nicht alle Banken akzeptieren dies. Zudem sollte die Anzahl der Datensätze limitiert werden, die maximale Anzahl wie z.B. 500 ist bei der eigenen Bank anzufragen.

Achtung: Die Datei ist noch in der Entwicklung! Sie wurde aber bereits mehrfach für Testbuchungen verwendet, ist beim Autor im Produktiveinsatz und der XML-Output hat für einfache Testfälle die Prüfung durch eine Drittsoftware bestanden. Getestet wurde die Unit unter Delphi 6 Professional und Lazarus (mit FPC 2.6 und FPC 3.0), sie sollte auch mit neueren Versionen funktionieren.
Soweit gesetzlich zulässig ist jegliche Haftung ausgeschlossen! Für mehr Details siehe Lizenztext.

Autor / Lizenz:

Autor: Aaron Spettl (aaron@spettl.de)
Lizenz: GPL (General Public License), Version 2 oder höher

Download:

Aktuelle Version:

Ältere Versionen:

Änderungen:

Version 0.2.4 (Beta)

  • Unterstützung für Lazarus 1.6 mit FPC 3.0 hinzugefügt.

Version 0.2.3 (Beta)

  • Unit-Tests vervollständigt.

Version 0.2.2 (Beta)

  • Memory-Leaks entfernt.

Version 0.2.1 (Beta)

  • Datumsabhängige Entscheidungen bzgl. Datei-Schema und -Validierung im Code entfernt (Stichdatum 01.02.2014 für Wahl vom Standard 2.7 und Zulässigkeit von IBAN-only).
  • Bugfix für Kompatibilität zu Delphi 7 bis 2010.

Version 0.2.0 (Beta)

  • Unterstützung für SEPA-Lastschriften. Hierzu wurde die Funktionalität in drei Dateien aufgesplittet: Allgemeines (SEPACommon.pas), Lastschriften (SEPADirectDebit.pas), Überweisungen (SEPACreditTransfer.pas). Um Namenskonflikte zu vermeiden, musste die bisherige Klasse TPaymentInstructionInformation in TDirectDebitPaymentInformation umbenannt werden.
  • Verwende immer Currency statt Double für Geldbeträge, um Gleitkomma-/Rundungsprobleme zu vermeiden.
  • Über eine globale Variable (SEPASupportSpecialChars) kann die Möglichkeit aktiviert werden, deutsche Sonderzeichen in die XML-Dateien zu schreiben. Den Banken ist es allerdings freigestellt, wie sie mit diesen umgehen, also ob sie konvertiert oder tatsächlich benutzt werden.
  • Teilweise Implementierung von Unit-Tests: vorerst nur für die Units SEPACommon.pas und die neu hinzugekommene SEPACreditTransfer.pas. Die Unit-Tests sind lauffähig unter Delphi (auf Basis von DUnit) und Lazarus (fpcunit).
  • Danksagung: Unterstützung der Weiterentwicklung durch A to C DataSolutions, www.a-to-c.de, vielen Dank!

Version 0.1.3 (Beta)

  • Bugfix in Mandatsänderungen-Validierung: originale Gläubiger-Id.-Nr. darf leer sein.

Version 0.1.2 (Beta)

  • Kompatibilität zu Lazarus inkl. Beispielanwendung.

Version 0.1.1 (Beta)

  • Überarbeitung für bessere Kompatibilität zu verschiedenen Delphi-Versionen (Delphi 6 und höher).

Version 0.1.0 (Beta)

  • Re-Release der eigentlichen Unit als Beta-Version.
  • Erweiterung des Beispielprogramms um einige praktische Hinweise ("Tipps zur Verwendung").

Version 0.0.5 (Alpha)

  • Wähle Schema pain.008.003.02 vorerst nur wenn COR1 benötigt wird, da es offenbar nicht von allen Banken unterstützt wird. Erst ab dem 01.02.2014 wird immer pain.008.003.02 gewählt.
  • Validierung: Erlaube IBAN-only nur für deutsche Konten.

Version 0.0.4 (Alpha)

  • Verbesserte Validierung von IBAN, BIC und Gläubiger-Identifikationsnummer.
  • Erweiterung des Zeichensatzes, automatische Konvertierung einiger Sonderzeichen (z.B. Umlaute).

Version 0.0.3 (Alpha)

  • Unterstützung für COR1 und IBAN-only nach Version 2.7 der Spezifikation (pain.008.003.02).
  • Einige Korrekturen bzw. Verbesserungen.

Version 0.0.2 (Alpha)

  • Einige Korrekturen bzw. Verbesserungen.
  • Beispielanwendung hinzugefügt.

Version 0.0.1 (Alpha)

  • Erstes Release.
Zuletzt aktualisiert: 01.10.2016 18:50 Uhr