Closed
Description
Ausgangslage:
Aktuell können wir camt054 xml von einem Finanzinstitut (z.b. Postfinance) importieren. Anschliessend werden die entsprechende Rechnungen als bezahlt markiert.
Ziel:
Um diesen manuellen Schritt zu automatisieren werden camt054 Dateien via Schnittstelle von den Finanzinstituten bezogen.
Die Postfinance bietet verschiedene Schnittstellen.
In einer ersten groben Sichtung würde sich der EBICS Standard gut eignen, da dieser unabhängig von dem Finanzinstitut ist. Offizielle Seite EBICS: https://www.ebics.de
Umsetzung
Konfigurierbar auf den Rechnungseinstellungen (https://puzzle.hitobito.com/de/groups/1/invoice_config) pro Layer. Credentials mittels Encryptionservice verschlüsselt in der DB ablegen.
- Zahlungsprovider sind in Hitobito vorkonfiguriert (vorerst mal Postfinance)
- Die Schnittstelle wird täglich automatisch für alle Layer mit entsprechender Rechnungseinstellungen abgefragt
- Es ist nicht vorgesehen das die Abfrage manuell gestartet werden kann
- Beim Einrichten der Schnittstelle wird ein HTML File generiert das ausgedruckt und per Post an die Bank gesendet wird. Dieses Dokument soll gleich vom Webserver nach dem Einrichten im Browser angezeigt werden. Beispielbrief
- Die Hashwerte der Postfinance sind hier beschrieben: https://www.postfinance.ch/content/dam/pfch/doc/prod/pay/FS_EBICS_Parameterblatt_Software_479.07_de.pdf
- Rechnung wird z.B. über Referenznr identifiziert und eine entsprechende Zahlung wird in Hitobito angelegt, aber nur wenn das Layer der Rechnung mit dem Layer der PaymentProviderConfig übereinstimmt
- Zahlungen die keiner Rechnung zugewiesen werden können, werden ignoriert
- Die Zahlung / Transaktions-ID soll der Zahlung in Hitobito zugewiesen werden. Es muss verhindert werden das die gleiche Zahlung mehrfach importiert wird
- Der Status der Rechnung einer zugehörigen Zahlung wird entsprechend aktualisiert
- Ist eine automatische Schnittstelle für einen Layer konfiguriert, ist der manuelle Import via camt054 deaktiviert
Techspec
- Gem für EBICS https://github.com/railslove/epics
- Neues Model: PaymentProviderConfig, payment_provider, keys (mit Encryptionservice verschlüsseln), status: :new, :pending, :registered, last_sync_at
- Error Handling der Kommunikation zur Bank
- invoice_config: has_many :payment_provider_configs
- In "Rechnungseinstellungen > Edit" neues Tab "Zahlungsschnittstellen"
- Neuer Zahlungsprovider: Form für Registrierung, nach Absenden wird HTML zum Ausdruck angezeigt -> Button in InvoiceConfig#show
- Zahlungsprovider edit: hier können die von der Bank zur Verfügung gestellten Keys gespeichert werden.
Werte die nicht mehr geändert werden dürfen sind read-onlyWarnhinweis, nach erster Initialisierung - Neuer DelayedJob der täglich die konfigurierten Schnittstellen synced
Schätzung Aufwand: 8-10PT