Datenschutzerklärung — EveryPenny
Zuletzt aktualisiert: 8. September 2026 Verantwortlicher: LLC "Natural Intelligence" (ТОВ «Природній інтелект»), eine Gesellschaft mit beschränkter Haftung nach ukrainischem Recht, Handelsregisternummer (ЄДРПОУ) 46203933. Eingetragene Anschrift: 28e Mykhaila Maksymovycha Street, Gebäude 3, Wohnung 275, Kyiv 03195, Ukraine (вулиця Максимовича Михайла, буд. 28е, корпус 3, кв. 275, м. Київ 03195, Україна). Kontakt: [email protected]
EU-Vertreter (Art. 27 DSGVO) Da der Verantwortliche außerhalb der EU/des EWR niedergelassen ist, haben wir nach Art. 27 DSGVO einen EU-Vertreter für Personen in der EU/im EWR benannt. Unser Vertreter ist das Unternehmen Data Protection Representative Limited (handelnd unter dem Namen DataRep). Sie können sich in allen Angelegenheiten, die die Verarbeitung Ihrer personenbezogenen Daten und die Ausübung Ihrer Rechte nach der DSGVO betreffen, zusätzlich zu uns oder anstelle von uns an DataRep wenden.
So erreichen Sie unseren Vertreter:
- Per E-Mail: [email protected] — bitte geben Sie <EveryPenny> in der Betreffzeile an.
- Per Webformular: www.datarep.com/data-request
- Per Post: an DataRep, unter der nachstehenden Anschrift für Ihr Land. Bitte adressieren Sie Ihre Korrespondenz an „DataRep“ (nicht an EveryPenny) — andernfalls erreicht sie den Vertreter möglicherweise nicht.
| Land | Postanschrift (immer an „DataRep“ adressieren) |
|---|---|
| Österreich | DataRep, City Tower, Brückenkopfgasse 1/6. Stock, Graz, 8020, Austria |
| Belgien | DataRep, Rue des Colonies 11, Brussels, 1000 |
| Bulgarien | DataRep, 132 Mimi Balkanska Str., Sofia, 1540, Bulgaria |
| Kroatien | DataRep, Ground & 9th Floor, Hoto Tower, Savska cesta 32, Zagreb, 10000, Croatia |
| Zypern | DataRep, Victory House, 205 Archbishop Makarios Avenue, Limassol, 3030, Cyprus |
| Tschechien | DataRep, Platan Office, 28. Října 205/45, Floor 3&4, Ostrava, 70200, Czech Republic |
| Dänemark | DataRep, Lautruphøj 1-3, Ballerup, 2750, Denmark |
| Estland | DataRep, 2nd Floor, Tornimae 5, Tallinn, 10145, Estonia |
| Finnland | DataRep, Luna House, 5.krs, Mannerheimintie 12 B, Helsinki, 00100, Finland |
| Frankreich | DataRep, 72 rue de Lessard, Rouen, 76100, France |
| Deutschland | DataRep, 3rd and 4th floor, Altmarkt 10 B/D, Dresden, 01067, Germany |
| Griechenland | DataRep, Ippodamias Sq. 8, 4th floor, Piraeus, Attica, Greece |
| Ungarn | DataRep, President Centre, Kálmán Imre utca 1, Budapest, 1054, Hungary |
| Island | DataRep, Laugavegur 13, 101 Reykjavik, Iceland |
| Irland | DataRep, The Cube, Monahan Road, Cork, T12 H1XY, Republic of Ireland |
| Italien | DataRep, Viale Giorgio Ribotta 11, Piano 1, Rome, Lazio, 00144, Italy |
| Lettland | DataRep, 4th & 5th floors, 14 Terbatas Street, Riga, LV-1011, Latvia |
| Liechtenstein | DataRep, City Tower, Brückenkopfgasse 1/6. Stock, Graz, 8020, Austria |
| Litauen | DataRep, 44A Gedimino Avenue, 01110 Vilnius, Lithuania |
| Luxemburg | DataRep, BPM 335368, Banzelt 4 A, 6921, Roodt-sur-Syre, Luxembourg |
| Malta | DataRep, Tower Business Centre, 2nd floor, Tower Street, Swatar, BKR4013, Malta |
| Niederlande | DataRep, Cuserstraat 93, Floor 2 and 3, Amsterdam, 1081 CN, Netherlands |
| Norwegen | DataRep, C.J. Hambros Plass 2c, Oslo, 0164, Norway |
| Polen | DataRep, Budynek Fronton ul Kamienna 21, Krakow, 31-403, Poland |
| Portugal | DataRep, Torre de Monsanto, Rua Afonso Praça 30, 7th floor, Algès, Lisbon, 1495-061, Portugal |
| Rumänien | DataRep, 15 Piaţa Charles de Gaulle, nr. 1-T, Bucureşti, Sectorul 1, 011857, Romania |
| Slowakei | DataRep, Apollo Business Centre II, Block E / 9th floor, 4D Prievozska, Bratislava, 821 09, Slovakia |
| Slowenien | DataRep, Trg. Republike 3, Floor 3, Ljubljana, 1000, Slovenia |
| Spanien | DataRep, Calle de Manzanares 4, Madrid, 28005, Spain |
| Schweden | DataRep, S:t Johannesgatan 2, 4th floor, Malmo, SE - 211 46, Sweden |
Dieser Vertreter ist ausschließlich für die EU/den EWR benannt. DataRep ist nicht als unser Vertreter im Vereinigten Königreich oder in der Schweiz benannt. DataRep verarbeitet Ihre Daten nach Maßgabe der eigenen Datenschutzhinweise unter www.datarep.com/privacy-policy.
Bei allgemeinen Fragen oder Fragen zum Produkt (alles, was kein datenschutzrechtliches Anliegen ist) schreiben Sie bitte direkt an EveryPenny unter [email protected] und nicht an unseren Vertreter.
Zusammenfassung (die Kurzfassung)
EveryPenny ist eine App für persönliche Finanzen. Sie speichert so wenig wie möglich über Sie und nur das, was nötig ist, um Ihnen Ihr eigenes Geld anzuzeigen. Wir verkaufen Ihre Daten niemals und geben sie niemals an Werbetreibende weiter.
Konkret speichern wir:
- Eine Kennung des von Ihnen gewählten Anmeldeanbieters (Apple, E-Mail oder Google), damit wir Sie bei jeder Anmeldung wiedererkennen. Wenn Sie sich mit Hide My Email von Apple angemeldet haben, sehen wir ausschließlich eine Relay-Adresse — Ihre echte E-Mail-Adresse erreicht uns nie.
- Ihre E-Mail-Adresse, wenn Sie sich mit Apple ohne Hide-My-Email, über unseren Magic Link per E-Mail oder mit Google angemeldet haben. Ein Passwort sehen wir nie — das übernehmen Apple, unser Magic-Link-Versanddienst (Resend) bzw. Google.
- Die manuellen Konten, Salden und Transaktionen, die Sie selbst eingeben.
- Die Bankkonten und Transaktionen, die wir in Ihrem Auftrag synchronisieren, wenn Sie eine Bank verbinden (wir lesen nur; wir bewegen niemals Geld).
- Die Guthaben und Kartentransaktionen einer Kryptobörse, die wir synchronisieren, wenn Sie eine Kryptobörse verbinden (derzeit Bybit, einschließlich Bybit EU) — nur lesend, über einen API-Schlüssel, den Sie in Ihrem eigenen Börsenkonto erstellen. Schlüssel, die Handel oder Auszahlungen erlauben würden, weisen wir zurück.
- Verschlüsselte Zugangsdaten für Bank und Börse (Bank-Tokens und Börsen-API-Schlüssel), damit wir Ihre Daten später erneut synchronisieren können, ohne dass Sie sich neu anmelden müssen. Die Zugangsdaten jedes Nutzers werden mit einem nutzerspezifischen Teilschlüssel verschlüsselt, der aus einem Hauptschlüssel und Ihrer Konto-ID abgeleitet wird, sodass sie nicht zwischen Nutzern entschlüsselt werden können.
- Gerätetokens, damit wir Ihnen Push-Benachrichtigungen senden können (z. B. eine Erinnerung, dass morgen eine Abobuchung ansteht).
Alles wird im Europäischen Wirtschaftsraum gespeichert (Frankfurt, Deutschland). Sie können Ihr gesamtes Konto jederzeit direkt in der App löschen. Sie können auch ein einzelnes Bankkonto oder ein einzelnes Unterkonto einer verbundenen Bank entfernen, ohne Ihre übrigen Daten zu löschen — siehe Ihre Rechte unten.
1. Welche Daten wir erheben
1.1 Daten, die Sie uns direkt geben
| Kategorie | Beispiele | Zweck |
|---|---|---|
| Kontoidentität | Vom Anbieter vergebene Nutzer-ID (undurchsichtige Apple-Zeichenfolge, Google-sub oder unsere interne ID bei Anmeldung per E-Mail), E-Mail-Adresse (oder private Relay-Adresse von Apple), Anzeigename (nur bei der ersten Anmeldung) |
Wiedererkennung bei der Anmeldung; Versand von Sicherheitsbenachrichtigungen |
| Geräteidentität | Identifier-for-Vendor (gehasht), APNs-Gerätetoken, Gerätemodellbezeichnung | Push-Benachrichtigungen, Sitzungswiderruf |
| Manuell erfasste Finanzdaten | Kontonamen, Währungen, Salden, Transaktionsdaten, Beträge, Händler, Kategorien | Kernfunktion der App |
1.2 Daten, die wir in Ihrem Auftrag von Dritten erhalten
| Quelle | Daten | Ausgelöst durch |
|---|---|---|
| Monobank | Kontoliste, Salden, Kontoauszüge, Transaktionsereignisse nahezu in Echtzeit | Sie wählen Monobank im Ablauf „Connect Bank“. Soweit uns Zugang zur Monobank Corporate API gewährt wurde, erhalten wir Transaktionsereignisse Ihrer Bank in dem Moment, in dem sie eintreten, über einen autorisierten Webhook (kein Polling). Andernfalls nutzen wir die ältere öffentliche API, bei der Sie einen persönlichen X-Token von api.monobank.ua einfügen. In beiden Fällen ist der Zugriff rein lesend — wir können keine Zahlungen auslösen. |
| Enable Banking | Kontoliste, Salden, Kontoauszüge (nur lesend) | Sie verbinden eine Bank im EWR nach PSD2; die Daten werden über den Aggregator abgerufen, nachdem Ihre Bank die starke Kundenauthentifizierung (Strong Customer Authentication) durchgeführt hat |
| Bybit / Bybit EU | Wallet-Guthaben (Funding, Unified Trading, Earn-Sparguthaben), Transaktionshistorie der Bybit Card, soweit die API der Börse sie bereitstellt (Betrag, Währung, Datum, Händlername, Händlerkategorie-Code) | Sie verbinden eine Kryptobörse, indem Sie in Ihrem eigenen Bybit-Konto einen nur lesenden API-Schlüssel erstellen und ihn in EveryPenny einfügen. Wir prüfen die Berechtigungen des Schlüssels bei Bybit und weisen jeden Schlüssel zurück, der Handel oder Auszahlungen erlaubt. Wir lesen außerdem die öffentlichen Marktpreise von Bybit, um Kryptobestände zu bewerten — diese Anfrage enthält keine personenbezogenen Daten. |
| Apple | Prüfung des Identitätstokens über das JWKS von Apple; Server-zu-Server-Benachrichtigungen über Kontolöschungen oder Änderungen der Hide-My-Email-Einstellung | Interne Lebenszyklusereignisse von Apple |
Verifizierte E-Mail-Adresse + Name aus Ihrem Google-Konto (im OAuth-id_token zurückgegeben und gegen das JWKS von Google verifiziert) |
Sie wählen bei der Anmeldung „Continue with Google“ | |
| Resend | Zustellung unserer Anmelde-E-Mail mit Magic Link an Ihr Postfach | Sie wählen bei der Anmeldung „Continue with email“ |
| fawazahmed0/exchange-api + Frankfurter | Devisenkursdaten (öffentlich, keine Weitergabe personenbezogener Daten) | Automatisch, alle paar Stunden |
1.3 Daten, die wir automatisch ableiten
- Erkennung wiederkehrender Muster — wir gruppieren Ihre Transaktionen, um Abonnements und wiederkehrende Rechnungen zu erkennen. Das geschieht auf unseren Servern, und das Ergebnis bleibt in Ihrem Konto.
- Gehashte Zuordnung — wenn Sie sich anmelden, speichern wir einen HMAC-SHA256-Hash Ihrer IP-Adresse und Ihres User-Agent, damit wir verdächtige Anmeldungen erkennen können, ohne die Rohwerte zu speichern.
- Datenschutzfreundliche Produktanalyse — um zu verstehen, ob die App nützlich ist (sind Personen, die sich registriert haben, zurückgekehrt? haben sie ihr erstes Budget angelegt?), erfassen wir einen kleinen Satz pseudonymer, vordefinierter Ereignisse: Registrierung, Anmeldung, App-Start und Signale für „Schlüsselaktionen“ (ein angelegtes Budget/Ziel, eine verbundene Bank, eine hinzugefügte Transaktion, ein bestätigtes wiederkehrendes Abonnement). Diese Ereignisse enthalten ausschließlich den Ereignisnamen und einen groben, fest im Code hinterlegten Typ — niemals Beträge, Händlernamen, Kontonamen, Kategorien oder Freitext. Die einzige beigefügte Kennung ist Ihre undurchsichtige Konto-ID (dieselbe UUID, die wir intern verwenden); sie wird erst nach Ihrer Anmeldung gesetzt und beim Abmelden gelöscht. Da sich diese ID grundsätzlich auf Sie zurückführen ließe, behandeln wir diese Ereignisse als pseudonym (Erwägungsgrund 26 DSGVO) und nicht als anonym; vor der Anmeldung ausgelöste Ereignisse enthalten überhaupt keine Kennung. In Anhang B ist genau aufgeführt, was unser Auftragsverarbeiter für Analysen erhält.
1.4 Daten, die wir NICHT erheben
- Rohe IP-Adressen oder User-Agent-Zeichenfolgen (wir speichern nur schlüsselbasierte Hashes zur Betrugs- und Missbrauchserkennung).
- Werbekennungen.
- Standortdaten. Wir fordern niemals Zugriff auf GPS, WLAN oder CoreLocation an. Die serverseitige IP-zu-Standort-Auflösung von PostHog ist auf Projektebene deaktiviert, und die Client-IP-Adresse wird bei der Datenannahme (Ingestion) verworfen, sodass kein aus der IP abgeleitetes Land, keine Stadt, keine Postleitzahl und keine Koordinaten abgeleitet oder gespeichert werden.
- Zugriff auf Kontakte, Fotos, Mikrofon oder Kamera.
- Biometrische Daten. Face ID / Touch ID bleiben auf Ihrem Gerät — sie erreichen unsere Server nie.
- Ihre Zugangsdaten für Bank oder Börse (Passwörter, 2FA). Sie erzeugen ein nur lesendes Token auf der Website von Monobank oder einen nur lesenden API-Schlüssel auf der Website von Bybit und geben ihn uns direkt; Ihr Monobank- oder Bybit-Passwort sehen wir nie. Die uns übergebenen Zugangsdaten speichern wir verschlüsselt (siehe §6) und weisen jeden Börsenschlüssel zurück, der Handel oder Auszahlungen erlauben würde.
2. Rechtsgrundlage (Art. 6 DSGVO)
- Vertrag (Art. 6 Abs. 1 lit. b DSGVO) — alles, was wir benötigen, um das Produkt bereitzustellen, für das Sie sich registriert haben. Kontoidentität, manuelle Eingaben, Banksynchronisierung, Push-Benachrichtigungen.
- Berechtigtes Interesse (Art. 6 Abs. 1 lit. f DSGVO) — gehashte Zuordnung zur Betrugs- und Missbrauchserkennung; Fehlerberichte von Sentry; Audit-Ereignisprotokoll; datenschutzfreundliche Produktanalyse (pseudonym, keine unmittelbar identifizierenden personenbezogenen Daten, in der EU gehostet) zur Verbesserung der App. Das Analysesignal lässt sich jederzeit unter Settings → Privacy → Share Product Analytics abwählen (Opt-out); das Abschalten verwirft alle noch nicht übermittelten Ereignisse und beendet die weitere Erfassung sofort.
- Einwilligung (Art. 6 Abs. 1 lit. a DSGVO) — das Verbinden einer Bank oder Kryptobörse ist eine ausdrückliche Einwilligung. Sie können Ihre Einwilligung jederzeit widerrufen, indem Sie die Bank oder Börse in EveryPenny trennen (bei Bybit zusätzlich, indem Sie den API-Schlüssel in Ihrem Bybit-Konto löschen).
3. Wo die Daten liegen
| Kategorie | Auftragsverarbeiter | Region | Verschlüsselung im Ruhezustand |
|---|---|---|---|
| Postgres (Nutzer, Konten, Transaktionen, Audit-Protokoll) | Neon Inc. | eu-central-1 (Frankfurt) | AES-256 auf Speicherebene, zusätzlich AES-256-GCM-Verschlüsselung auf Spaltenebene für Bank-Tokens mit einem nutzerspezifischen, per HKDF abgeleiteten Teilschlüssel (eine aus der Spalte eines Nutzers in die eines anderen kopierte Zeile lässt sich daher nicht entschlüsseln) |
| Redis (Sitzungen, Idempotenz, BullMQ-Jobs, Zähler für Magic-Link-Ratenbegrenzung) | Upstash, Inc. | eu-central-1 (Frankfurt) | TLS bei der Übertragung; verschlüsselt im Ruhezustand |
| Fehler + Traces | Sentry (Functional Software, Inc.) | EU-Region, Frankfurt (US-Unternehmen; EU-US Data Privacy Framework, mit EU-SCC als Rückfalloption) | Verschlüsselung auf Sentry-Seite; wir entfernen personenbezogene Daten serverseitig, bevor etwas unseren Prozess verlässt |
| Produktanalyse (pseudonyme Ereignisse) | PostHog (PostHog, Inc.) | EU Cloud (Frankfurt) | Verschlüsselung auf PostHog-Seite; wir senden nur vordefinierte Ereignisnamen + eine undurchsichtige Konto-ID, niemals personenbezogene Daten oder Finanzinhalte. Die GeoIP-Standortauflösung ist auf Projektebene deaktiviert und Client-IP-Adressen werden bei der Datenannahme verworfen, sodass weder Ihre IP noch ein daraus abgeleiteter Standort gespeichert wird |
| Logs | Fly.io (Hashicorp-Regionskennung fra) |
Frankfurt | Interne Verschlüsselung von Fly |
| Push-Benachrichtigungen | Apple Push Notification Service | global | von Apple verwaltet |
| Transaktions-E-Mail | Resend Inc. | EU-Region (US-Unternehmen; EU-US Data Privacy Framework, mit EU-SCC als Rückfalloption) | von Resend verwaltet; wir senden nur die Empfängeradresse + einen einzelnen Anmeldelink im Penny-Ton oder eine Fehlerbericht-Nutzlast |
| In-App-Käufe / Berechtigungen | RevenueCat, Inc. | USA (Standardvertragsklauseln) | App-Store-Beleg + Ihre undurchsichtige Konto-ID; keine Finanzinhalte |
| Käufe über die Website (Abrechnung) | Paddle.com Market Ltd. (Merchant of Record) | EU/USA (SCC / Data Privacy Framework) | Ihre E-Mail-Adresse + Zahlungsdaten, verarbeitet von Paddle als Verkäufer |
Alle Daten verbleiben im Europäischen Wirtschaftsraum mit Ausnahme der folgenden Übermittlungen, für die wir uns auf die Garantien des Kapitels V der DSGVO stützen: der Apple Push Notification Service (Apple, global, auf Grundlage seines eigenen Auftragsverarbeitungszusatzes); Sentry (US-Unternehmen — wir nutzen die EU-Region, auf Grundlage des EU-US Data Privacy Framework, mit EU-Standardvertragsklauseln als Rückfalloption); Resend (US-Unternehmen — wir nutzen die EU-Region, auf Grundlage des EU-US Data Privacy Framework, mit EU-Standardvertragsklauseln als Rückfalloption); RevenueCat (USA, auf Grundlage von Standardvertragsklauseln); und Paddle (unser Merchant of Record für Zahlungen über die Website, auf Grundlage von SCC / des Data Privacy Framework).
Ein weiterer Datenfluss entsteht nur, wenn Sie ihn selbst anlegen: Wenn Sie ein Konto bei Bybit global verbinden, tauschen unsere Server Daten mit der API von Bybit aus, die Bybit außerhalb des EWR betreibt. Diese Kommunikation erfolgt auf Ihre ausdrückliche Anforderung hin, mit dem von Ihnen erstellten Schlüssel, um Ihre eigenen Börsendaten zu synchronisieren — eine Übermittlung an einen eigenständig Verantwortlichen, zu dem Sie in einer unmittelbaren Vertragsbeziehung stehen, gelegentlich und erforderlich für die von Ihnen gewünschte Leistung (Art. 49 Abs. 1 lit. b–c DSGVO). Bybit EU-Verbindungen werden von der Bybit EU GmbH aus der EU heraus bedient.
4. Wie lange wir sie aufbewahren
- Ihre aktiven Daten — solange Ihr Konto aktiv ist.
- Gelöschtes Konto — Ihre Zeile in der Tabelle
usersund jeder damit verknüpfte Datensatz (Konten, Transaktionen, Bankverbindungen, Gerätetokens, Sitzungen) werden unmittelbar aus unserer Produktionsdatenbank entfernt, sobald Sie Delete Account antippen (oder wenn Apple uns mitteilt, dass Ihre Apple-ID endgültig gelöscht wurde). Kaskadierend gelöschte Zeilen sind bereits innerhalb des Requests aus dem aktiven Postgres verschwunden. Die Backup-Snapshots von Neon für die Wiederherstellung zu einem Zeitpunkt halten den Zustand vor der Löschung noch bis zum Ende des Aufbewahrungsfensters unseres Neon-Tarifs vor (derzeit 6 Stunden); danach laufen sie von selbst ab. - Bank-, Börsen- und Transaktionsdaten — Transaktionen, Salden und abgeleitete Auswertungen (Kategorien, wiederkehrende Zahlungen) werden in einem rollierenden 24-Monats-Fenster ab dem Datum der jeweiligen Transaktion vorgehalten; ältere Einträge fallen automatisch heraus. Bei Kontolöschung wird alles sofort kaskadierend gelöscht (siehe oben).
- Audit- und Sicherheitsereignisse — werden bis zu 24 Monate aufbewahrt und
anschließend gelöscht oder unwiderruflich anonymisiert. Bei Kontolöschung wird
userIdsofort aufNULLgesetzt, sodass jeder noch in diesem Fenster befindliche Datensatz nicht mehr mit Ihnen persönlich verknüpft ist. - Produktanalyse (PostHog) — pseudonyme Ereignisdaten werden 12 Monate aufbewahrt und danach gelöscht. Finanzinhalte oder personenbezogene Daten werden nie übermittelt (siehe §7 und Anhang B).
- Fehlerüberwachung (Sentry) — von personenbezogenen Daten bereinigte Fehlerereignisse werden 90 Tage aufbewahrt und danach gelöscht.
- Sitzungsdatensätze — werden 90 Tage nach Ablauf entfernt (nur anonyme Daten — keine personenbezogenen Daten).
- Idempotenzschlüssel — werden 30 Tage nach Erstellung entfernt (Hashes von Request-Bodys, keine personenbezogenen Daten).
- Sync-Cache (Redis) — 24 Stunden; nichts Dauerhaftes.
5. Ihre Rechte (Art. 15–22 DSGVO)
Sie haben das Recht:
- Auskunft über Ihre Daten zu erhalten — schreiben Sie uns, und wir senden Ihnen einen JSON-Export von allem, was wir speichern.
- Unrichtige Daten berichtigen zu lassen — in der App bearbeiten oder eine E-Mail an [email protected] senden.
- Ihr Konto löschen zu lassen — tippen Sie in den Einstellungen auf Delete Account. Ihre Daten werden in dem Moment aus unserer aktiven Produktionsdatenbank entfernt, in dem die Anfrage abgeschlossen ist. Zwei eng begrenzte Ausnahmen, die in §4 näher beschrieben sind: Verschlüsselte Datenbank-Backups enthalten den Zustand vor der Löschung noch bis zu ca. 6 Stunden lang, bevor sie von selbst ablaufen, und Einträge im Sicherheits- bzw. Audit-Protokoll werden für den in §4 genannten Zeitraum ohne Ihre Kennung aufbewahrt, sodass sie Sie nicht mehr identifizieren.
- Ein einzelnes Bankkonto oder Unterkonto zu löschen — halten Sie ein Konto in EveryPenny gedrückt und wählen Sie Disconnect bank (entfernt die gesamte Verbindung und jede damit verknüpfte Transaktion) oder Remove this account (entfernt ein einzelnes bankseitig synchronisiertes Unterkonto samt seinen Transaktionen und lässt die übrige Verbindung unberührt). Beides ist auf dieses Konto beschränkt; nichts anderes wird angetastet.
- Ihre Daten übertragen zu lassen — der oben genannte Export liegt in portablem JSON vor.
- Der Verarbeitung zu widersprechen — Banken trennen; Push-Benachrichtigungen in den iOS-Einstellungen deaktivieren.
- Ihre Einwilligung zu widerrufen — das Trennen einer Bank entzieht EveryPenny den Zugriff sofort.
- Sich zu beschweren — bei der Datenschutzaufsichtsbehörde Ihres EU-Landes oder beim ukrainischen Büro des Beauftragten für den Schutz personenbezogener Daten.
Wir beantworten jede Anfrage innerhalb eines Monats nach Eingang. Bei komplexen oder zahlreichen Anfragen können wir diese Frist um bis zu zwei weitere Monate verlängern; in diesem Fall teilen wir Ihnen dies innerhalb des ersten Monats mit (Art. 12 Abs. 3 DSGVO).
6. Sicherheit
Wir folgen den Best Practices der Branche für eine Finanz-App:
- TLS 1.3 überall. HSTS mit Preload.
- Alle Bank-Tokens und Börsen-API-Schlüssel werden mit nutzerspezifischen, per HKDF abgeleiteten AES-256-GCM-Teilschlüsseln verschlüsselt, wobei die Kennung des Nutzers in den Auth-Tag eingebunden wird, sodass sich eine Zeile nicht zwischen Nutzern entschlüsseln lässt.
- Börsen-API-Schlüssel werden nur akzeptiert, wenn sie rein lesend sind: beim Verbinden (und erneut bei jeder Synchronisierung) prüfen wir die Berechtigungen des Schlüssels bei Bybit und weisen Schlüssel zurück, die Handel oder Auszahlungen erlauben.
- Identitätstokens von Apple und Google werden bei jeder Anmeldung gegen das JWKS (JSON Web Key Set) des jeweiligen Anbieters verifiziert — einem ungeprüften Token vertrauen wir nie.
- Nonces für die Anmeldung per Magic Link werden als SHA-256-Hashes gespeichert (nie im Klartext), laufen 15 Minuten nach der Erzeugung ab, sind einmalig verwendbar und werden pro E-Mail-Adresse und pro IP ratenbegrenzt, um Missbrauch zu erschweren.
- Refresh-Tokens werden als SHA-256-Hashes gespeichert, nie im Klartext; sie werden bei jeder Verwendung rotiert und sind gerätegebunden.
- Sitzungswiderruf beim Abmelden, bei Löschung des Apple-Kontos, auf Anfrage.
- Ratenbegrenzung sowohl am Edge (Cloudflare) als auch in der Anwendungsschicht.
- WAF- und DDoS-Schutz über Cloudflare.
- Append-only-Audit-Protokoll bei jeder Aktion, die Geld betrifft.
- Automatisiertes CVE-Scanning und Aktualisierung der Abhängigkeiten bei jedem CI-Lauf.
Kein System ist zu 100 % sicher. Wenn wir eine Verletzung des Schutzes personenbezogener Daten feststellen, melden wir sie unverzüglich und, soweit machbar, binnen 72 Stunden der zuständigen Aufsichtsbehörde und benachrichtigen betroffene Nutzer unverzüglich, wenn die Verletzung voraussichtlich ein hohes Risiko für ihre Rechte bedeutet — so wie es die DSGVO verlangt.
7. Wer Ihre Daten sonst noch verarbeitet
Dies sind die einzigen Unternehmen, die überhaupt mit Ihren Daten in Berührung kommen, jeweils in der unten genannten Rolle. Die DSGVO unterscheidet zwei Arten von Empfängern, daher führen wir sie getrennt auf: Auftragsverarbeiter, die ausschließlich nach unseren Weisungen auf Grundlage eines Auftragsverarbeitungsvertrags (DPA) handeln, und eigenständig Verantwortliche, die ihre eigenen Zwecke festlegen und eigene Datenschutzhinweise haben.
7.1 Auftragsverarbeiter (handeln nur nach unseren Weisungen, auf Grundlage eines DPA)
| Auftragsverarbeiter | Rolle | Region | DPA |
|---|---|---|---|
| Neon Inc. | Verwaltetes Postgres | EU (Frankfurt) | Neon DPA |
| Upstash, Inc. | Verwaltetes Redis | EU (Frankfurt) | Upstash DPA |
| Fly.io, Inc. | Anwendungshosting + Logs | EU (Frankfurt) | Fly DPA |
| Cloudflare, Inc. | DNS + WAF + DDoS | EU-Edge | Cloudflare DPA |
| Functional Software, Inc. (Sentry) | Absturz- und Fehlerberichte (personenbezogene Daten entfernt) | EU-Region (US-Unternehmen; EU-US Data Privacy Framework, mit EU-SCC als Rückfalloption) | Sentry DPA |
| PostHog, Inc. | Datenschutzfreundliche Produktanalyse | EU Cloud (Frankfurt) | PostHog DPA |
| Resend Inc. | Transaktions-E-Mail (Anmeldelinks, Fehlerberichte) | EU-Region (US-Unternehmen; EU-US Data Privacy Framework, mit EU-SCC als Rückfalloption) | Resend DPA |
| RevenueCat, Inc. | Verwaltung von In-App-Abonnements — Nachverfolgung von Apple-IAP-Berechtigungen (App-Nutzer-ID, Abostatus, Kaufereignisse; keine Zahlungskartendaten — Zahlungen wickelt Apple ab) | USA (Standardvertragsklauseln) | RevenueCat DPA |
7.2 Eigenständig Verantwortliche (sie legen ihre eigenen Zwecke fest; es gelten ihre eigenen Hinweise)
| Verantwortlicher | Warum Ihre Daten dorthin gelangen |
|---|---|
| Apple Inc. | Anmeldung mit Apple, Push-Benachrichtigungen und App-Store-Käufe — Apple ist der Verkäufer (Merchant of Record) für In-App-Käufe |
| Google LLC | Identität, wenn Sie „Continue with Google“ wählen |
| Paddle.com Market Ltd. | Merchant of Record für Käufe über die Website — Paddle ist der Verkäufer, mit dem Sie den Vertrag schließen, und wickelt Abrechnung, Steuern und Erstattungen ab (erhält Ihre E-Mail-Adresse + Zahlungsdaten) |
| Enable Banking Oy | Aggregator für Bankkonten im EWR und lizenzierter PSD2-Kontoinformationsdienst für die von Ihnen autorisierten Verbindungen |
| Universal Bank (Monobank) | Die ukrainische Bank, die Sie verbinden — eine unmittelbare Beziehung zwischen Ihnen und Ihrer Bank |
| Bybit (Bybit Fintech Limited; bei Bybit-EU-Konten Bybit EU GmbH — eine nach MiCA regulierte EU-Gesellschaft) | Die Kryptobörse, die Sie verbinden — eine unmittelbare Beziehung zwischen Ihnen und Ihrer Börse. Sie erstellen einen nur lesenden API-Schlüssel in Ihrem eigenen Bybit-Konto; unsere Server fragen damit in Ihrem Auftrag die API von Bybit ab |
| Meta Platforms Ireland Ltd. | Nur die Website, und nur mit Ihrer Einwilligung: Wenn Sie das Marketing-Cookie-Banner auf everypennyapp.com akzeptieren, misst das Meta-Pixel, ob unsere Facebook/Instagram-Anzeigen zu App-Store-Besuchen führen (siehe Anhang B.2). Lehnen Sie ab, erreichen Meta niemals Daten |
Devisen- und Kryptomarktkurse stammen aus öffentlichen Quellen (Frankfurter, fawazahmed0/exchange-api über jsDelivr / Cloudflare sowie die öffentliche Marktpreis-API von Bybit); übermittelt werden nur Währungscodes — keine personenbezogenen Daten, daher ist kein DPA erforderlich.
Wir aktualisieren diese Listen, sobald wir einen Empfänger hinzufügen oder austauschen. Wesentliche Änderungen lösen einen Hinweis in der App aus.
8. Kinder
EveryPenny richtet sich nicht an Personen unter 16 Jahren. Wir erheben wissentlich keine Daten von Minderjährigen. Wenn Sie glauben, dass sich eine minderjährige Person registriert hat, wenden Sie sich an uns, und wir löschen das Konto.
9. Änderungen dieser Erklärung
Wesentliche Änderungen werden in der App angekündigt, bevor sie wirksam werden, und Sie werden um eine erneute Einwilligung gebeten. Die Änderungshistorie stellen wir auf Anfrage zur Verfügung.
10. Kontakt
Für alle Fragen und Anliegen zum Datenschutz: [email protected]
Anhang A — Was Sentry tatsächlich erhält
Sentry wird mit sendDefaultPii: false initialisiert sowie mit einem Scrubber, der rekursiv jeden Schlüssel entfernt, dessen Name auf email, phone, password, token, secret, iban, pan, dateOfBirth, address, firstName, lastName, fullName und viele weitere finanznahe Begriffe passt, bevor irgendein Ereignis den Prozess verlässt.
Was Sentry sieht:
- Bereinigte Stack Traces
- HTTP-Routennamen (z. B.
POST /auth/apple) — nie Pfadparameter mit IDs - Fehlerklasse + Meldung (personenbezogene Daten per Regex entfernt)
- Undurchsichtige userId (UUID) — nie die Apple-Nutzer-ID oder E-Mail-Adresse
Was Sentry nie sieht:
- Irgendeine Bankkontonummer, ein Saldo oder einen Transaktionsbetrag
- Irgendeine echte oder Relay-E-Mail-Adresse
- Irgendein Authentifizierungstoken in irgendeiner Form
Anhang B — Was PostHog tatsächlich erhält
PostHog ist für die EU Cloud (eu.i.posthog.com) konfiguriert, wobei Autocapture, Session Replay, die Erfassung von Bildschirmaufrufen und das Autocapture des Anwendungslebenszyklus sämtlich deaktiviert sind. Die serverseitige GeoIP-Anreicherung von PostHog ist auf Projektebene deaktiviert, und die Client-IP-Adresse wird bei der Datenannahme (Ingestion) verworfen — es werden also niemals Land, Stadt, Breiten-/Längengrad oder Postleitzahl aus Ihrer IP-Adresse abgeleitet oder gespeichert. (Als zusätzliche Absicherung registriert das SDK bei jedem Ereignis außerdem $geoip_disable: true.) Personenprofile werden nur für identifizierte Nutzer angelegt (personProfiles = .identifiedOnly), sodass vor der Anmeldung ausgelöste Ereignisse keine Kennung enthalten (anonym); Ereignisse nach der Anmeldung sind pseudonym — sie sind mit der unten genannten undurchsichtigen Konto-ID verknüpft, nicht mit Ihrem Namen oder Ihrer E-Mail-Adresse. Jedes Ereignis in der App wird ausdrücklich aus dem Code heraus ausgelöst — eine automatische Datenerfassung gibt es nicht.
Der vollständige Satz der Ereignisse, die wir jemals senden:
signup/signin— dass ein Konto angelegt wurde oder sich ein wiederkehrender Nutzer angemeldet hatapp_opened— die App ist in den Vordergrund gekommen (Grundlage für die Retention-Auswertung)activated— der Nutzer hat seine erste sinnvolle Aktion in dieser Installation abgeschlossenkey_actionmit einemtypeaus:bank_connected,transaction_added,budget_created,goal_created,recurring_confirmedbank_connect_started/bank_connect_completed/bank_connect_failed— der Trichter der Bankverbindung. Eigenschaften:provider(welche Integration),institution(der Anzeigename der Bank aus unserer eigenen mitgelieferten Liste),reconnect(ob es eine erneute Verbindung war),duration_s(wie viele Sekunden die Authentifizierung der Bank bei Erfolg dauerte) undreason(eine grobe, serverseitig erzeugte Fehlerkategorie bei Misserfolg — niemals etwas, das du getippt hast)first_total_seen— das Dashboard wurde in dieser Installation zum ersten Mal mit einer verbundenen Bank angezeigt. Eigenschaften:banksundaccounts— nur Anzahlen, niemals Saldenbank_requested— du hast angetippt, welche Bank du in unserer Liste nicht gefunden hast; die Auswahl erfolgt aus einem festen, in der App mitgelieferten Satz von Banknamen. Dein getippter Suchtext wird nie gesendet — nur die Kennung des angetippten Eintrags.import_source_selected— welche Konkurrenz-App du auf dem Import-Bildschirm angetippt hast, als Kennung aus der festen Kachel-Liste, die die App mitliefert. Deine Dateien und ihre Inhalte laufen niemals durch die Analysedemo_entered/demo_exited— du hast den Beispieldaten-Modus („Demo") ein- oder ausgeschaltet. Keine Eigenschaftenpaywall_viewed,checkout_started,subscription_started,subscription_purchased,subscription_cancelled,subscription_refunded— der Abo-Trichter. Eigenschaften ausschließlich aus festen Vokabularen:source(onboarding,settings,bank_connect_gateoderrecurring_promo),plan(monthly,yearlyoderlifetime),rail(app_storeoderpaddle), und aufsubscription_purchasedeinsandbox-Kennzeichen, das unsere eigenen TestFlight-/App-Review-Testkäufe markiert. Preise und Beträge werden niemals gesendetrecurring_candidates_shown/recurring_candidate_reviewed— ob du mit den von der App erkannten Abos interagierst;outcomeist eines vonconfirmed,rejected,snoozedshare_generated/share_completed— du hast ein Share-Karten-Bild erstellt oder geteilt;surfaceist eines vonsubscription_scan,one_true_total, unddestinationkanninstagram_storiessein. Das Bild selbst (und darin gezeichnete Beträge) läuft niemals durch die Analyse
Was PostHog sieht:
- Die oben genannten Ereignisnamen und die Werte ihrer Eigenschaften — alle aus den festen Vokabularen, die bei jedem Ereignis aufgeführt sind
- Eine undurchsichtige Konto-ID (UUID), erst nach der Anmeldung angehängt und beim Abmelden gelöscht
- Standard-SDK-Metadaten (App-Version, OS-Version, Gerätemodell, grober Bibliothekskontext)
Was PostHog nie sieht:
- Irgendeinen Betrag, Saldo, Händlernamen, Kontonamen oder Kategorienamen
- Irgendeinen Transaktionsinhalt oder von Ihnen eingegebenen Freitext
- Ihre E-Mail-Adresse, Ihren Anzeigenamen oder sonstige personenbezogene Daten
- Irgendeine Werbekennung (wir erheben keine)
Diese Funktion ist schlüsselgesteuert: Ist kein PostHog-Projektschlüssel konfiguriert, wird das SDK nie initialisiert und es wird überhaupt nichts gesendet.
Anhang B.1 — Die Website (everypennyapp.com)
Unabhängig von der App misst die Marketing-Website zwei Dinge, damit wir erkennen können, wie viele Personen, die die Website erreichen, anschließend in den App Store wechseln. Die Website verwendet kein PostHog-SDK: Sie sendet eine einfache HTTPS-Anfrage, die ausschließlich die unten aufgeführten Felder enthält — diese Liste ist also der Inhalt der Anfrage selbst und nicht deren Zusammenfassung.
Der vollständige Satz der Website-Ereignisse:
web_pageview— eine Seite wurde geöffnet. Eigenschaften: der Pfad (/,/uk/,/pl/), die Sprache der Seite, das Kampagnen-Token, falls Sie über eine unserer Anzeigen gekommen sind, und ausschließlich der Hostname der verweisenden Seite (z. B.l.instagram.com) — niemals die vollständige verweisende URL.web_appstore_click— eine App-Store-Schaltfläche wurde angetippt. Eigenschaften: welche Schaltfläche auf der Seite, die Sprache der Seite und das Kampagnen-Token, sofern vorhanden.
Die Website speichert dafür nichts auf Ihrem Gerät: keine Cookies, kein localStorage, kein durch die Analyse geschriebener sessionStorage. Die Kennung, die diesen beiden Ereignissen beigefügt wird, ist ein Zufallswert, der beim Laden der Seite im Arbeitsspeicher erzeugt und beim Verlassen verworfen wird; er kann Ihnen weder zwischen Seitenaufrufen noch zwischen Websites folgen. Das Cookie-Banner, das die Website zeigt, betrifft nicht diese Messung — es existiert ausschließlich für das optionale Meta-Pixel aus Anhang B.2, das ohne Ihre Zustimmung niemals geladen wird.
Was die Website niemals sendet: Ihre IP-Adresse oder Ihren User-Agent-String, Ihren Browser oder Ihr Betriebssystem, Ihre Bildschirmgröße, die vollständige URL oder deren Query-String, jegliche Formulareingaben sowie jede Werbekennung. Wie in der App ist die GeoIP-Abfrage von PostHog auf Projektebene deaktiviert, und Client-IP-Adressen werden bei der Erfassung verworfen.
Sendet Ihr Browser ein Do-Not-Track- oder Global-Privacy-Control-Signal, sendet die Website überhaupt nichts.
Anhang B.2 — Meta-Pixel (Website, nur mit Einwilligung)
Um zu erkennen, ob unsere Meta-Anzeigen (Facebook/Instagram) tatsächlich Menschen in den App Store führen, kann die Website das Meta-Pixel laden — aber erst, nachdem Sie im Einwilligungsbanner auf „Akzeptieren" getippt haben. Bis dahin wird nichts von Meta heruntergeladen und keine Anfrage an Metas Server gestellt; tippen Sie auf „Ablehnen", wird das Pixel niemals geladen, und Ihre Wahl wird im Browser gespeichert, damit wir nicht erneut fragen. Vor Ihrer Entscheidung wird nichts gespeichert; nach einer Ablehnung nur das Wort „denied".
Mit Ihrer Einwilligung sendet das Pixel genau zwei Arten von Ereignissen an Meta: einen Seitenaufruf und ein „Lead"-Ereignis, wenn Sie eine App-Store-Schaltfläche antippen. Das Pixel ist Metas eigener Code und kann Meta-Cookies in Ihrem Browser setzen; für diese Verarbeitung ist Meta Platforms Ireland Ltd. eigenständig Verantwortlicher nach ihrer eigenen Datenrichtlinie. Rechtsgrundlage: Ihre Einwilligung (Art. 6 Abs. 1 lit. a DSGVO); Sie können sie jederzeit widerrufen, indem Sie die Daten dieser Website in Ihrem Browser löschen — danach fragt das Banner erneut.
Die iOS-App selbst enthält kein Meta-SDK und keinerlei Meta-Code. Die Zuordnung von Anzeigen zu Installationen auf iOS erfolgt über Apples SKAdNetwork — konstruktionsbedingt aggregiert und crowd-anonymisiert: Apple übermittelt Meta Installationszahlen, niemals Ihre Identität, und nichts daran verwendet von der App erhobene Daten.