Security & Privacy
Your bank statements contain sensitive financial data. Here's exactly how we handle it.
Zero storage by default
Your bank statement is processed in server memory. The PDF is parsed, transactions are extracted, and the result is returned to you in a single request. No PDF is saved to disk or to a database, and the transactions, descriptions, names and amounts in it are not written to our logs or sent to our analytics and error tools. When the request completes, the data is released from memory. The one exception is AI reading (on your click, or as the automatic re-check described below), whose result is kept in memory for up to 30 minutes.
Separately, and only if you opt in: if a conversion fails, you can choose to share a masked skeleton of the statement — every letter becomes x and every digit 9, except generic column headings, so names, addresses, account/IBAN/card numbers, merchants, dates and amounts are not readable — so we can add support for it. It also keeps where each piece of text sits on the page, so we can see the columns: which line it is on and in which column, on a coarse grid, plus a generic font family — no exact positions, widths or sizes — still with every letter as x and every digit 9. You see exactly what you'd share before deciding, nothing is stored unless you click Share, and any shared skeleton is deleted within 30 days. Your original PDF is never stored.
When a conversion fails we also record an automatic failure fingerprint, without asking: counts and formats only (pages, lines, dates and amounts and their styles, currencies, language, the PDF writing software and the bank we recognised in the statement header). It holds no statement text and is kept in our analytics and event log.
HTTPS encryption
All connections use TLS 1.3 encryption via Cloudflare. Your PDF upload and the converted output are encrypted in transit. We enforce HSTS (HTTP Strict Transport Security) with a 2-year max-age and preload, so your browser will never accidentally connect over plain HTTP.
Dedicated parsers first, AI when a statement needs it
Dedicated parsers for 16 banks. Chase, Bank of America, Barclays, HSBC and the other banks we support have their own parser: deterministic code that reads that bank's exact layout in under a second, on our server. If a dedicated parser's result doesn't add up against the balances printed on your statement, we re-check it with Claude by Anthropic automatically (website uploads only). Anthropic does not train on it and deletes it within 30 days; we never store the file. If Claude's read adds up you get that result; if not, you get the parser's result as before.
AI for every other bank and for scans. If your bank isn't one of them, or the PDF is a scan, Claude by Anthropic reads the statement after you click "Read with AI" — we ask before sending it. Anthropic does not train on it and deletes it within 30 days; we never store the file.
Checked against your balances. Either way, when the statement prints balances we add up every transaction and compare it with them. A match is shown as "Balances match".
Technically: the statement travels to Anthropic over TLS, after you click the button for other banks and scans, or automatically when a dedicated parser's result doesn't add up; the API key lives on our server and is never sent to your browser, and a daily budget and per-account limits cap how much AI reading we run. The Chrome extension and the MCP server never use AI. Details are on the privacy page.
Other services that handle limited data (payments, sign-in emails, analytics, error reports) are listed on our privacy page, with what each one receives.
Security headers & protections
We implement comprehensive HTTP security headers:
- Content Security Policy (CSP) — prevents XSS attacks
- HSTS with preload — enforces HTTPS
- X-Frame-Options DENY — prevents clickjacking
- Rate limiting — per-IP, per-route protection
- Cloudflare DDoS protection — enterprise-grade edge security
Payments via Stripe
All payment processing is handled by Stripe, a PCI DSS Level 1 certified payment processor. We never see or store your credit card number. Stripe handles everything — subscription management, invoicing, and secure payment processing.
Questions?
If you have security concerns or questions about how we handle your data, contact us at [email protected]