FINMA Quarterly Reporting Automation: Quartalsberichte automatisieren

Automatisierung der FINMA-Quartalsberichte für Schweizer Finanzinstitute: Datensammlung, Validierung, XML-Generierung und FINMA-Portal-Upload.
Überblick
FINMA Quarterly Reports sind Pflicht für alle regulierten Finanzinstitute (Banken Kat. 1-5, Versicherungen, Vermögensverwalter).
Herausforderung: Daten aus 10+ Systemen sammeln, konsolidieren, validieren → 200+ Arbeitsstunden/Quartal
Lösung: Automation spart 95% der Zeit (10 Stunden statt 200 Stunden).
Schritt 1: Datenquellen identifizieren
Typische Datenquellen:
- ERP (Bexio/Abacus/SAP): Finanzdaten
- Risk Management System: VaR, Limits
- Core Banking System: Kredite, Einlagen
- Treasury System: Liquidität, FX-Exposure
- HR System: Mitarbeiterdaten
Output: Data-Mapping-Dokument (welche Daten aus welchem System?)
Schritt 2: ETL-Pipeline einrichten
ETL = Extract, Transform, Load
Tools:
- n8n (Open Source, Self-Hosted)
- Airbyte (Data Integration)
- dbt (Data Transformation)
Workflow-Beispiel (n8n):
1. TRIGGER: Quartalsende (Cron)
2. Bexio API: Bilanz exportieren
3. SAP API: Kreditportfolio exportieren
4. PostgreSQL: Daten in Data Warehouse laden
5. SQL Query: Aggregierung (FINMA-Metriken berechnen)
6. XML Generator: FINMA XML erstellen
Zeitersparnis: Von 100h (manuell) auf 2h (Automation)
Schritt 3: FINMA XML generieren
FINMA akzeptiert nur standardisiertes XML-Format (FINMA Reporting Portal Schema v3.0).
Python-Script-Beispiel:
from lxml import etree
# Data from ETL pipeline
balance_sheet = {
"total_assets": 5_000_000_000,
"total_liabilities": 4_500_000_000,
"equity": 500_000_000
}
# Generate FINMA XML
root = etree.Element("FINMAQuarterlyReport", xmlns="urn:finma:qr:v3")
balance = etree.SubElement(root, "BalanceSheet")
etree.SubElement(balance, "TotalAssets").text = str(balance_sheet["total_assets"])
etree.SubElement(balance, "TotalLiabilities").text = str(balance_sheet["total_liabilities"])
etree.SubElement(balance, "Equity").text = str(balance_sheet["equity"])
# Save XML
tree = etree.ElementTree(root)
tree.write("FINMA_Q1_2026.xml", pretty_print=True)
Schritt 4: Automatischer Upload
FINMA Reporting Portal: https://reporting.finma.ch
API-Upload (ab 2026 verfügbar):
import requests
# Upload XML to FINMA Portal
url = "https://reporting.finma.ch/api/v1/upload"
headers = {"Authorization": f"Bearer {API_KEY}"}
files = {"file": open("FINMA_Q1_2026.xml", "rb")}
response = requests.post(url, headers=headers, files=files)
print(response.json()) # {"status": "success", "submission_id": "Q1-2026-12345"}
Fallback: Wenn API nicht verfügbar → SFTP-Upload (FTP mit SSH-Verschlüsselung)
ROI-Kalkulation
Manuelle Quartalsberichte (200h/Quartal):
- 4 Quartale = 800h/Jahr
- Kosten: 800h × CHF 120/h = CHF 96.000/Jahr
Automatisierte Quartalsberichte (10h/Quartal):
- 4 Quartale = 40h/Jahr
- Kosten: 40h × CHF 120/h = CHF 4.800/Jahr
Einsparung: CHF 91.200/Jahr
Initialinvestition: CHF 50.000-100.000 (ETL-Setup, Consulting)
ROI: 91.200 / 75.000 = 121% im ersten Jahr
Nächste Schritte
Option 1: FINMA Reporting Automation Paket (CHF 75.000)
Option 2: Beratung (60 Minuten kostenlos)
Veröffentlicht: 11. Januar 2026 Autor: SwissFinanceAI Team


