English Deutsch

FinTech-Paket für Python (SEPA, EBICS & mehr)

Die Python FinTech-Bibliothek bietet die benötigte Funktionalität bezüglich der Arbeit mit EBICS, SEPA und anderen Finanztechnologien. Tägliche Bankgeschäfte (wie z.B. Überweisungen, Lastschriften oder der Abruf von Kontoauszügen) lassen sich damit flexibel und sicher erledigen.

Diagram

Eigenschaften

  • Unterstützung der EBICS Versionen 2.4, 2.5 und 3.0
  • Unterstützung von EBICS Websockets
  • Abruf von Kontoauszügen (inkl. CAMT- und MT940-Parser)
  • Überweisungen (SCT/pain.001) erstellen und einreichen
  • Lastschriften (SDD/pain.008) erstellen und einreichen (CORE und B2B)
  • Nahezu vollständige SEPA-Unterstützung, inkl. spezieller Schemata für CH (PT 3/4/5/6) und IT (CBI)
  • Automatische Berechnung der Vorlaufzeiten anhand Feiertagen und Cutoff-Zeiten
  • Integrierter Mandatsmanager (optional nutzbar, beta)
  • Plausibilitätsprüfung von IBAN und BIC
  • Prüfung von Zahlungsaufträgen gegen das SEPA-Clearing-Verzeichnis der Deutschen Bundesbank
  • Kontonummer/BLZ zu IBAN Konverter nach den Regeln der Deutschen Bundesbank
  • Umrechnen von Währungen zu tagesaktuellen Kursen
  • DATEV-Konverter (CSV- und KNE-Format)

Die Programmierschnittstelle wurde so einfach wie möglich aber auch so flexibel wie nötig umgesetzt.

Alle Module sind kostenlos nutzbar. Nur der EBICS-Client selbst besitzt in der unlizenzierten Version ein paar Einschränkungen:

  • Der Upload von SEPA-Dokumenten ist auf maximal fünf Transaktionen beschränkt.
  • Kontoauszüge können nicht für die letzten drei Tage abgerufen werden.
  • Funktionen bzgl. der verteilten elektronischen Unterschrift (VEU) sind deaktiviert.

Protokoll-Versionen

  • EBICS 3.0 (H005)
  • EBICS 2.5 (H004)
  • EBICS 2.4 (H003)

Unterstützte Schlüsselversionen: A006, A005, X002, E002

Eine Schlüsselverwaltung auf Basis von Zertifikaten ist ebenfalls möglich. Zertifikate sind in einigen Ländern erforderlich (z.B. Frankreich) und grundsätzlich immer ab EBICS 3.0.

Beispiel
import fintech
fintech.register()
from fintech.ebics import EbicsKeyRing, EbicsBank, EbicsUser, EbicsClient

keyring = EbicsKeyRing(keys='~/mykeys', passphrase='mysecret')
bank = EbicsBank(keyring=keyring, hostid='MYBANK', url='https://www.mybank.de/ebics')
user = EbicsUser(keyring=keyring, partnerid='CUSTOMER123', userid='USER1')
# Neue Schlüssel für diesen Nutzer erstellen
user.create_keys(keyversion='A006', bitlength=2048)

client = EbicsClient(bank, user)
# EU-Schlüssel an die Bank senden
client.INI()
# Authentifikations- und Verschlüsselungsschlüssel senden
client.HIA()

# INI-Brief erzeugen, ausdrucken und an die Bank schicken
user.create_ini_letter(bankname='MyBank AG', path='~/ini_letter.pdf')

# Bankenschlüssel abholen und überprüfen
print(client.HPB())

# Bei Übereinstimmung Bankenschlüssel aktivieren
bank.activate_keys()

# Kontoauszug im camt.053-Format abrufen
sheets = client.C53(
    start='2019-02-01',
    end='2019-02-07',
    )
client.confirm_download()