Projektstatus: Im Einsatz

Libeufin – Freie API und Sandbox für das europäische Finanzsystem

Wir erleichtern kleineren Unternehmen die Entwicklung und das Testen von Finanzsoftware.

Florian Dold, Marcello Stanisci
#Runde6 #Softwareinfrastruktur

Welche gesellschaftliche Herausforderung adressiert euer Prototyp?

Die europäischen Zahlungsdiensterichtlinie PSD2 soll under anderem innovative Finanz-Anwendungen ermöglichen, indem Banken dazu verpflichtet wurden, Programmierschnittstellen (APIs) für Kontoinformationen und Zahlungsauslösung anzubieten.Allerdings sind die APIs und Nachrichtenformate die von Banken bereitgestellt werden so vielfältig und komplex, dass kleinere Projekte diese kaum nutzen können.
Das Testen ist bisher nur mit hohem Aufwand, echten Bankkonten bei diversen Anbietern und proprietärer Software möglich. Im Ergebnis werden Projekte für persönliche Finanzplanung und Banking für Bürger*innen praktisch nur von großen, Profit-orientieren Unternehmen entwickelt.
LibEuFin soll Entwickler*innen das Entwickeln und Testen von freien Anwendungen im Bereich Online-Banking erleichtern, beispielsweise für die persönliche Finanzplanung.
Zu diesem Zweck soll eine Bibliothek implementiert werden, die die verbreitetsten deutschen und europäischen Banking-Standardprotokolle (FinTS/EBICS/ ISO20022) unter einer vereinfachten Schnittstelle zur Verfügung stellt. Zudem wird eine Sandbox entwickelt, mit der Entwickler*innen ihre Banking-Anwendungen ausreichend automatisiert testen können, ohne Konten mit Testzugang bei mehreren Banken zu benötigen.

Wie geht ihr das Problem an?

Für die Förderlaufzeit sind fünf Arbeitspakete vorgesehen: 1. Eine Bibliothek zum Lesen und Schreiben der geläufigsten Nachrichtenformate (u.a. CAMT, PAIN) sowie den von Banken benötigten kryptographischen Operationen. 2. Ein Dienst, der mit einer RESTful HTTP-API angesprochen werden kann, und Zugriff auf folgende Funktionalitäten bietet: Anlegen und Verwalten von Bankkonten und Authentifikationsmethoden der Kontoinhaber*innen sowie Abfrage der Transaktionshistorie und Auslösung von Transaktionen. Dabei wird spezifisch darauf geachtet, dass die Transaktionsauslösung robust gegenüber Ausfällen (Strom/Netzwerk) ist. 3. Eine ausfürlich dokumentierte Testanwendung, die es Benutzer*innen erlaubt sich zu authentifizieren, die Transaktionshistorie zu visualisieren/analysieren und Transaktionen auszulösen. Als grafische Oberfläche wird der Browser der Benutzer*innen verwendet. 4. Eine Sandbox, welche als Banking – Server (mit Testkonten und Kontoständen/Transaktionen) agiert und die Teilmenge von EBICS/FinTS/ISO20022-Operationen unterstützt die von (2) implementiert werden. Zusätzlich bietet die Sandbox eine API zum Initialisieren der Konten für automatisiere Tests an. Die Banking–Bibliothek und Test – Sandbox werden in einer modernen Systemsprache (Rust oder Go) entwickelt, die bestimmte Sicherheitsprobleme (u.a. Buffer Overflows) ausschließt, ausführlich getestet und mit Beispielanwendungen dokumentiert.

An wen richtet sich euer Tool?

Die Zielgruppe des Projekts sind Entwickler von Banking-Software in Europa. Speziell kleine Unternehmen und Open-Source Entwickler*innen werden von einer freien Implementation und Testumgebung profitieren: GnuCash ist ein Open-Source Projekt das direkt durch unser Projekt verbessert werden könnte, da dieses im Moment via aqbanking nur einen Teil der Protokolle unterstützt. Das ebenfalls durch den Prototype Fund unterstützte Projekt Taler ist ein Projekt für datenschutzfreundliches bargeldloses Bezahlen, welches auf eine Bibliothek zur Bankanbindung angewiesen ist.