Data handling

What MyFina stores — and how it gets deleted

Full per-feature matrix: entity, retention window, encryption method, deletion path. No "and so on" parentheses — every row is verifiable in the code.

Per-feature retention matrix

This page extends the Privacy Policy for readers who want specifics. GDPR requires us to disclose data categories and retention periods; here is more detail than the law demands, because we have nothing to hide.

Per-feature retention matrix

EntityWhat's storedRetention windowDeletion pathEncryption
TransactionsAmount, currency, date, account, category, descriptionUntil account hard-delete or manual user removalCASCADE on user or account hard-deleteAt rest (DB), TLS in transit
AccountsName, type, currency, current balanceUntil manual user removalCASCADE removes linked transactionsAt rest, TLS
CategoriesName, type, icon, MCC codesUntil manual user removalCASCADE via user_idAt rest, TLS
Bank API tokensEncrypted token (Monobank Personal API, GoCardless consent)Until user revocation or PSD2 expiry (90 days)Disconnect in Settings → Banks = immediate removalAES-256-GCM (column-level), TLS
AI prompts (voice/receipt)Prompt text + Claude response (for usage log)30 days in `ai_usage_log`Cron cleanup after 30 days or admin manual purgeTLS in transit (Anthropic API); prompt removed from their infra per DPA
Audit logAction, target, IP, user-agent, source (web/mobile/cron)180 days (admin) / 30 days (user-level events)Cron prune after retention windowAt rest, TLS
Login attemptsIdentifier (masked in admin), IP, success/failure, timestamp30 days (for login throttling)Cron prune after 30 daysAt rest, TLS
Marketing leadsEmail, source, intent, IP, consent flagUntil admin processing or GDPR Art. 17 requestBest-effort erase-hook on account hard-delete by same emailAt rest, TLS
Push device tokens (FCM)FCM token, platform, locale, last-used timestampUntil unsubscribe or disabled_at (UNREGISTERED from FCM)CASCADE on user deletionAt rest, TLS
BackupsFull DB snapshot (encrypted)30-day rollingAutomatic removal per retention; manual purge availableAES-256 before upload to backup storage
Web analytics (site only)GTM container + GA4: anonymized IP, page, referrer. Clarity: heatmap clicks, masked DOM (no input text)GA4: 14 months (default). Clarity: 13 months. Reset — via cookie banner "Revoke consent".Cookie banner → "Essential only" stops collection immediately. On /legal/cookies the same toggle is persistent.TLS in transit; data processed by Google (GTM/GA4) and Microsoft (Clarity) per their DPAs

Your GDPR rights

Art. 15

Right of access

Request a full export of your data in Settings → Data. Returns CSV/XLSX/PDF with all transactions, accounts, and categories. For additional categories (audit log, bank tokens) — email support@my-fina.com.

Art. 17

Right to be forgotten

Hard-delete the account in Settings → Account → Delete account. Transactions, accounts, categories, currencies, tokens, push devices are cascade-removed. Marketing leads under the same email are also removed via best-effort hook.

Art. 20

Right to data portability

Export in Settings → Data formats data as CSV/XLSX (machine-readable). Structure is compatible with YNAB, Mint, and other ledger tools via a standard column set (date, account, category, amount, currency, note).

How to use it

  1. Open Settings → Data (from the main menu).
  2. Pick an export format: CSV (universal), XLSX (Excel), PDF (print).
  3. For hard-delete — the «Delete account» section at the bottom, password-confirmed.
  4. For specific audit-log or bank-token requests — email support@my-fina.com with subject «GDPR Art. 15».
← Back to SecurityLast updated: 3 June 2026