Security, data & AI
Last updated 7 October 2026
The short version
- Your Google Drive is the real home of your receipts. We hold as little as we can, for as short a time as we can.
- We can only reach the Drive files ExpenseCatcher creates or you pick — nothing else.
- Google tokens and stored receipt files are encrypted by us, on top of our providers’ encryption.
- AI reads each receipt to fill in the fields. It doesn’t learn from your documents and can’t act on its own.
1. How the product is built to protect you
- Your Drive, your sheet. Receipts are filed in your own Google Drive and logged in your own Google Sheet. If you leave, nothing needs exporting and nothing is lost.
- Narrowest Google permission. We use only
drive.file: files ExpenseCatcher creates and files you choose in Google’s picker. We cannot browse, search or read the rest of your Drive. - Short retention. We keep our copy of each original file for 30 days so you can check a catch or retry a failed step, then delete it automatically. Email bodies are never stored in our database; an email that arrives after your monthly catches run out is kept encrypted in private storage until it can be processed, for at most 30 days.
2. Encryption
- In transit: all traffic to the site, the app and our providers uses TLS.
- At rest: our database and file storage are encrypted with AES-256 by our infrastructure providers.
- Application-level: Google refresh tokens and stored receipt files are additionally encrypted by us with AES-256-GCM before they are saved. The keys live in our server environment, not in the database, so a copy of the database or storage bucket alone reveals neither.
3. Access control
- Every database row belongs to one user, and row-level security limits reads to that user.
- Browsers can’t write to the database at all; every change goes through our server, which checks who you are and your plan.
- Production access is limited to the people who run ExpenseCatcher, and only used to operate and support the Service.
- We never ask for your Google password; sign-in happens on Google’s own pages.
4. Email handling
- Catch addresses include random characters, so knowing your email doesn’t reveal where to send fake receipts.
- Incoming mail is accepted only when it carries a valid signature from our email provider; anything else is refused.
- Webhook steps can only call public HTTPS addresses and don’t follow redirects, so they can’t be pointed at internal systems.
- You can pause or delete any catcher instantly, which stops its address from processing new mail.
5. How we use AI
What it does
When a receipt arrives, an AI model reads it and fills in vendor, date, total, tax, currency, category, invoice number, a short description and payment method. That’s all it does. The steps that follow — saving to Drive, logging to your sheet, forwarding — are the ones you configured; the AI doesn’t choose or trigger them.
Which model, and what is sent
We use Anthropic’s Claude models through Anthropic’s commercial API. For each catch we send only that receipt: its text or file (photos and scanned PDFs are read visually), plus the email’s subject and sender for context. Nothing from your other catches, your Drive or your account goes with it. Very long documents are trimmed, and scans longer than a few pages are read from the email text instead.
No training, short retention
Under Anthropic’s commercial terms, API inputs and outputs are not used to train models. Anthropic deletes them within 30 days, unless it must keep them longer to enforce its usage policy or comply with the law. We don’t use your documents to train or fine-tune any model either.
Accuracy and your control
AI can misread a document. Every catch shows whether it was read by AI or by our fallback pattern matching, and you can correct any field — the correction is written straight back to your sheet. AI output is never used to make decisions about you. If the AI service is unavailable, a conservative pattern-matching pass on our own servers fills in what it can, preferring a blank field to a wrong one.
Instructions hidden in emails
Because the model only returns data fields and has no ability to send email, open links or change your settings, text in a forwarded email that tries to instruct it can at worst produce a wrong field — which you can see and fix.
Invoices behind a link
Some billing emails carry a “View invoice” button instead of a file. When you allow it (Settings → How receipts are caught), our servers — not the AI — open that one link the way you would, by fixed rules: only links labelled as an invoice or receipt, never unsubscribe, cancel or account links, never sites that need a sign-in, only public addresses, and with scripts switched off. The page is saved as a PDF; nothing is submitted and no cookies are kept.
6. Sub-processors
These companies process data for ExpenseCatcher. We give business customers notice before adding one, as described in the Data Processing Addendum.
- Supabase, Inc.
- What forDatabase, sign-in and encrypted file storage
- Data involvedAccount details, catcher settings, catches and extracted data, encrypted original files
- WhereUnited States (AWS us-east-1)
- Vercel, Inc.
- What forHosting and running the app
- Data involvedEverything passing through the app while it is processed; server logs with IP addresses
- WhereUnited States, with a global edge network
- Resend (Plus Five Five, Inc.)
- What forReceiving forwarded emails; sending notifications and forwards you set up
- Data involvedForwarded emails and attachments; recipient addresses and content of emails we send for you
- WhereUnited States
- Anthropic, PBC
- What forAI reading of receipts (Claude API)
- Data involvedThe text or file of the receipt being read, with its subject and sender
- WhereUnited States
- Google LLC
- What forSign-in, and Drive and Sheets at your direction
- Data involvedYour name, email and profile picture; files and rows written to your Drive
- WhereUnited States and worldwide
- Paddle.com Market Ltd
- What forPayments, tax and invoicing as merchant of record (paid plans)
- Data involvedName, email, billing country and payment details
- WhereUnited Kingdom and United States
| Provider | What for | Data involved | Where |
|---|---|---|---|
| Supabase, Inc. | Database, sign-in and encrypted file storage | Account details, catcher settings, catches and extracted data, encrypted original files | United States (AWS us-east-1) |
| Vercel, Inc. | Hosting and running the app | Everything passing through the app while it is processed; server logs with IP addresses | United States, with a global edge network |
| Resend (Plus Five Five, Inc.) | Receiving forwarded emails; sending notifications and forwards you set up | Forwarded emails and attachments; recipient addresses and content of emails we send for you | United States |
| Anthropic, PBC | AI reading of receipts (Claude API) | The text or file of the receipt being read, with its subject and sender | United States |
| Google LLC | Sign-in, and Drive and Sheets at your direction | Your name, email and profile picture; files and rows written to your Drive | United States and worldwide |
| Paddle.com Market Ltd | Payments, tax and invoicing as merchant of record (paid plans) | Name, email, billing country and payment details | United Kingdom and United States |
7. Incidents
If we learn of a security incident affecting your personal data, we will contain it, tell affected users without undue delay, and notify regulators where the law requires — for GDPR-covered data, within 72 hours of becoming aware of it where feasible.
8. Reporting a vulnerability
Found a security issue? Email hello@expensecatcher.com with the details and how to reproduce it. Please give us a reasonable time to fix it before telling anyone else, and don’t access other people’s data or degrade the Service while testing. We’ll reply quickly and credit you if you’d like. Our security.txt has the same contact.