Privacy Policy — EveryPenny

Last updated: 16 April 2026 Data Controller: ФОП Ольховатий Ігор Васильович, вулиця Максимовича Михайла, буд. 28е, під'їзд 3, кв. 375, м. Київ 01001, Україна. Contact: hello@everypennyapp.com

Summary (the short version)

EveryPenny is a personal finance app. It stores as little about you as possible, and only what's needed to show you your own money. We never sell or share your data with advertisers.

Specifically, we hold:

Everything is stored in the European Economic Area (Frankfurt, Germany). You can delete your entire account from inside the app at any time.

1. What data we collect

1.1 Data you give us directly

Category Examples Purpose
Account identity Apple user id (opaque string), email address (or Apple private relay), display name (first sign-in only) Recognise you at sign-in; send security notifications
Device identity Identifier-for-vendor (hashed), APNs device token, device model name Push notifications, session revocation
Manual-entry finance data Account names, currencies, balances, transaction dates, amounts, merchants, categories Core app feature

1.2 Data we receive from third parties on your behalf

Source Data Triggered by
Monobank public API (Ukraine only) Account list, balances, statements You paste a Monobank X-Token from api.monobank.ua (or grant access via the native Monobank app consent once Corporate API access is granted to us)
Apple Identity token verification via Apple's JWKS; server-to-server notifications about account deletion or Hide-My-Email toggles Apple's internal lifecycle events
fawazahmed0/exchange-api Foreign-exchange rate data (301 currencies, CC0 licensed) Automatic, every 6 hours

1.3 Data we derive automatically

1.4 Data we do NOT collect

2. Legal basis (GDPR Art. 6)

3. Where the data lives

Category Processor Region Encryption at rest
Postgres (users, accounts, transactions, audit log) Neon Inc. eu-central-1 (Frankfurt) AES-256 at the storage layer, with additional AES-256-GCM column-level encryption on bank tokens using a per-user HKDF-derived subkey
Redis (sessions, idempotency, BullMQ jobs) Upstash, Inc. eu-central-1 (Frankfurt) TLS in transit; encrypted at rest
Errors + traces Sentry (Functional Software GmbH) EU region (Frankfurt) Sentry-side encryption; we scrub PII server-side before anything leaves our process
Logs Fly.io (Hashicorp region tag fra) Frankfurt Fly's internal encryption
Push notifications Apple Push Notification Service global Apple-managed

All data stays in the European Economic Area except for the Apple Push Notification service, which is handled by Apple globally under their own data-processing addendum.

4. How long we keep it

5. Your rights (GDPR Art. 15-22)

You have the right to:

We aim to respond to any written request within 30 days.

6. Security

We follow industry best practices for a finance app:

No system is 100 % secure. If we discover a breach that affects you, we'll notify you without undue delay and at the latest within 72 hours, as GDPR requires.

7. Third-party sub-processors

These are the only companies that ever touch your data, and only in the specific roles below:

Sub-processor Role DPA
Apple Inc. Identity, push notifications, App Store distribution Apple Developer Program Licence + DPA
Fly.io, Inc. Application hosting (EU Frankfurt) Fly Data Processing Addendum
Neon Inc. Managed Postgres (EU Frankfurt) Neon DPA
Upstash, Inc. Managed Redis (EU Frankfurt) Upstash DPA
Cloudflare, Inc. DNS + WAF + DDoS (EU edge POPs) Cloudflare DPA
Functional Software, Inc. (Sentry) Crash + error reporting Sentry DPA
Universal Bank (Monobank) Direct account access (Ukraine only) Direct relationship between you and the bank
fawazahmed0/exchange-api FX rates (public data, no personal data shared) CC0 licence — no personal data flows

We'll update this list whenever we add or swap a sub-processor. Material changes trigger an in-app notice.

8. Children

EveryPenny is not directed at anyone under 16. We do not knowingly collect data from minors. If you believe a minor has signed up, contact us and we'll delete the account.

9. Changes to this policy

Significant changes are announced in-app before they take effect, and you'll be asked to re-consent. The change history is available on request.

10. Contact

For any privacy-related question or request: hello@everypennyapp.com


Appendix A — What Sentry actually receives

Sentry is initialised with sendDefaultPii: false and a scrubber that removes every key whose name matches email, phone, password, token, secret, iban, pan, dateOfBirth, address, firstName, lastName, fullName, and many other finance-adjacent terms, recursively, before any event leaves the process.

What Sentry sees:

What Sentry never sees: