SEPA-Überweisungen · SEPA-Lastschriften
Konvertierung und Validierung von IBAN/BIC

Mit libsepa können Sie einfach und bequem SEPA-XML-Nachrichten für den elektronischen Zahlungsverkehr erstellen, bestehende Kontonummern und Bankleitzahlen in IBAN/BIC umwandeln, vorhandene IBAN und BIC auf Gültigkeit prüfen, und vieles mehr.

libsepa liefert Ihnen alle notwendigen Funktionen, um Ihr bisheriges DTA-basiertes Zahlungssystem rechtzeitig und zuverlässig auf SEPA-Zahlungen umzustellen.

Für eine maximale Performance sowie beste Portierbarkeit wurde libsepa in C entwickelt. Gleichzeitig stehen Module für PHP, Perl und Java zur Verfügung.

Aktuelle Version:
v2.26 (14.03.2024)

Funktionsumfang

  • SEPA-Überweisungen (Sammelüberweisungen)
  • SEPA-Basislastschriften (CORE)
  • SEPA-Firmenlastschriften (B2B)
  • Umwandlung deutscher Kontonummer/BLZ-Angaben in IBAN/BIC
  • Automatische Verwendung des jeweils gültigen SEPA-Regelwerks der Deutschen Kreditwirtschaft (auch v3.1, gültig ab 19.11.2017)
  • Kontonummern-Prüfung anhand der jeweils aktuellen Prüfregeln der Deutschen Bundesbank
  • Parsen von Kontoauszügen im MT940-Format (nur PHP/Perl)

Die mit libsepa erzeugten XML-Dateien können Sie direkt via EBICS oder FinTS/HBCI zur weiteren Verarbeitung an Ihr Kreditinstitut übergeben oder in Finanzprogramme (z.B. StarMoney) importieren.

Vollständig lokale Lösung

Mit libsepa verlassen Ihre Bankdaten nicht Ihr Haus! Kein Internetzugriff notwendig, keine Probleme mit dem Datenschutz, keine Auftragsdatenverarbeitung.

Keine Folgekosten

Alle Updates für libsepa sind kostenfrei. Dank Continuous Delivery ist es uns möglich, neue Versionen zeitnah und zuverlässig bereitzustellen.

Über 200 Unternehmen...

... vertrauen bereits auf libsepa und profitieren so von unserer Erfahrung!

libsepa in Zahlen

  • 57 Regeln zur Berechnung deutscher IBANs
  • 121 Kontonummer-Prüfalgorithmen
  • 2.054 Unit-Tests
  • 4.830 Basis-BICs mit Informationen zur SEPA-Unterstützung
  • 5.920 Bankstammdaten (BLZ, Name, Ort) aus Deutschland, Österreich und der Schweiz

Beispiele

Kontonummer/BLZ in IBAN/BIC konvertieren

  • PHP
  • Perl
  • Java
$iban = SEPA::IBAN_convert("DE", "1234567890", "20050000");
$bic  = SEPA::IBAN_getBIC($iban);
$iban = SEPA::IBAN_convert("DE", "1234567890", "20050000");
$bic  = SEPA::IBAN_getBIC($iban);
String iban = SEPA.IBAN_convert("DE", "1234567890", "20050000");
String bic  = SEPA.IBAN_getBIC(iban);

Lastschrift erzeugen

  • PHP
  • Perl
  • Java
$sepa = new SEPA(SEPA_MSGTYPE_DDI);                  // Auftragstyp (hier: SEPA-Basislastschrift)
$sepa->setIBAN("DE87200500001234567890");            // IBAN des Zahlungsempfängers
$sepa->setBIC("BANKDEFFXXX");                        // BIC des Zahlungsempfängers
$sepa->setName("Mustermann u. Co. KG");              // Name des Zahlungsempfängers
$sepa->setCreditorIdentifier("DE20ZZZ00987654321");  // Gläubiger-Identifikationsnummer
$tx = array(
  'seq'    => 'FRST',                                // Lastschrift-Typ (hier: Ersteinzug)
  'id'     => 'R2017742-1',                          // Transaktions-ID
  'name'   => 'Karl Kunde',                          // Name des Zahlungspflichtigen
  'mref'   => 'Mandats-Referenz',                    // Mandats-Referenz
  'mdate'  => '2013-09-24',                          // Unterschrifts-Datum des Mandats
  'amount' => 123.45,                                // abzubuchender Betrag
  'iban'   => 'DE12987654320012345678',              // IBAN des Zahlungspflichtigen
  'bic'    => 'BANKDEZZXXX',                         // BIC des Zahlungspflichtigen
  'ref'    => 'Rechnung R2017742 vom 17.10.2013',    // Verwendungszweck (eine Zeile, max. 140 Zeichen)
  );
$sepa->add($tx);
$xml = $sepa->toXML();
$sepa = new SEPA(SEPA_MSGTYPE_DDI);                  # Auftragstyp (hier: SEPA-Basislastschrift)
$sepa->setIBAN("DE87200500001234567890");            # IBAN des Zahlungsempfängers
$sepa->setBIC("BANKDEFFXXX");                        # BIC des Zahlungsempfängers
$sepa->setName("Mustermann u. Co. KG");              # Name des Zahlungsempfängers
$sepa->setCreditorIdentifier("DE20ZZZ00987654321");  # Gläubiger-Identifikationsnummer
$tx = {
  'seq'    => 'FRST',                                # Lastschrift-Typ (hier: Ersteinzug)
  'id'     => 'R2017742-1',                          # Transaktions-ID
  'name'   => 'Karl Kunde',                          # Name des Zahlungspflichtigen
  'mref'   => 'Mandats-Referenz',                    # Mandats-Referenz
  'mdate'  => '2013-09-24',                          # Unterschrifts-Datum des Mandats
  'amount' => 123.45,                                # abzubuchender Betrag
  'iban'   => 'DE12987654320012345678',              # IBAN des Zahlungspflichtigen
  'bic'    => 'BANKDEZZXXX',                         # BIC des Zahlungspflichtigen
  'ref'    => 'Rechnung R2017742 vom 17.10.2013',    # Verwendungszweck (eine Zeile, max. 140 Zeichen)
  };
$sepa->add($tx);
$xml = $sepa->toXML();
SEPA sepa = new SEPA(SEPA.SEPA_MSGTYPE_DDI);         // Auftragstyp (hier: SEPA-Basislastschrift)
sepa.setIBAN("DE87200500001234567890");              // IBAN des Zahlungsempfängers
sepa.setBIC("BANKDEFFXXX");                          // BIC des Zahlungsempfängers
sepa.setName("Mustermann u. Co. KG");                // Name des Zahlungsempfängers
sepa.setCreditorIdentifier("DE20ZZZ00987654321");    // Gläubiger-Identifikationsnummer
String[][] tx = {
  { "seq",    "FRST" },                              // Lastschrift-Typ (hier: Ersteinzug)
  { "id",     "R2017742-1" },                        // Transaktions-ID
  { "name",   "Karl Kunde" },                        // Name des Zahlungspflichtigen
  { "mref",   "Mandats-Referenz" },                  // Mandats-Referenz
  { "mdate",  "2013-09-24" },                        // Unterschrifts-Datum des Mandats
  { "amount", "123.45" },                            // abzubuchender Betrag
  { "iban",   "DE12987654320012345678" },            // IBAN des Zahlungspflichtigen
  { "bic",    "BANKDEZZXXX" },                       // BIC des Zahlungspflichtigen
  { "ref",    "Rechnung R2017742 vom 17.10.2013" },  // Verwendungszweck (eine Zeile, max. 140 Zeichen)
  };
sepa.add(tx);
String xml = sepa.toXML();

Kontoauszüge (MT940) parsen

  • PHP
  • Perl
  • Java
$parser = new SEPAStatementParser();
$parser->load(SEPA_STMT_FORMAT_MT940, $filename);
$stmts = $parser->getStatements();
foreach ($stmts as $stmt) {
  foreach ($stmt['tx'] as $tx) {
    print "Valuta: ${tx['valuta']}\n";
    print "Betrag: ${tx['amount']}\n";
    print "Verwendungszweck: ${tx['purpose']}\n";
    print "SEPA-Verwendungszweck: ${tx['svwz']}\n";
    ...
  }
}
my $parser = new SEPA::StatementParser();
$parser->load(SEPA::StatementParser::SEPA_STMT_FORMAT_MT940, $filename);
my $stmts = $parser->getStatements();
foreach my $stmt (@$stmts) {
  foreach my $tx (@{$$stmt{tx}}) {
    print "Valuta: $tx{valuta}\n";
    print "Betrag: $tx{amount}\n";
    print "Verwendungszweck: $tx{purpose}\n";
    print "SEPA-Verwendungszweck: $tx{svwz}\n";
    ...
  }
}
MT940-Parser derzeit nur für PHP & Perl verfügbar