Bank2XL ("we", "us", "the Service") provides a Chrome extension and web app that converts PDF bank statements to Excel, CSV, QBO, OFX, and QFX files. This Privacy Policy explains what information we collect, how we use it, and the choices you have.
When you upload a PDF bank statement, we receive the file and process it to extract its content. We use the file solely to produce the requested output (Excel, CSV, QBO, OFX, QFX, or JSON).
During the public beta, we do not maintain an account database. Bank2XL is free, with no signup and no credit card. The only emails we hold are support / privacy / security emails you send us, kept while the thread is active and then archived per our retention schedule. (We previously offered a launch-notification waitlist; the extension is now live on the Chrome Web Store, so we no longer collect waitlist emails, and any we did collect are used only to send the install link and product updates, with one-click unsubscribe.) Once paid plans launch (we’ll announce 30 days in advance), subscribers will provide an email address and have their payment processed by Stripe (or a similar PCI-compliant processor) — we will never store full card numbers ourselves.
For each conversion we record a single metadata record for service health, accuracy monitoring, and abuse prevention. It contains: a timestamp; which channel was used (Chrome extension, website, or our ChatGPT app); a truncated IP prefix (/24 for IPv4, /48 for IPv6 — never your full IP); for extension uploads, a one-way hashed form of the per-install identifier (an HMAC we cannot reverse to the original UUID, used only to count distinct installs); the number of pages and an estimated size of the upload; success / failure status and, on failure, a coarse error category; which extraction pipeline ran; processing latency; de-identified accuracy signals — bank-name label, currency code, reconciliation outcome, and transaction / account counts; and internal operational fields (a random per-job reference ID, our own page / size and cost estimates, schema version, and non-identifying status flags). We never record the contents of your statements, account numbers, account-holder names, your full IP, or the raw per-install UUID in this metadata.
The Chrome extension requests the minimum permissions needed:
downloads permission is requested.The extension also declares a single host permission for https://api.bank2xl.app/* so it can send your file to our converter API. It does NOT request access to your browsing history, all websites, or any banking sites. It only acts on files you explicitly hand it.
| Purpose | Data used |
|---|---|
| Convert your PDF to spreadsheet | The uploaded file, held in memory during conversion. By default, also kept for 24h in an encrypted on-disk debug vault, then auto-deleted. Tick the opt-out box in extension Settings to skip the vault. |
| Enforce the daily free-tier quota and prevent abuse | A random per-install identifier (UUID, generated by the extension, stored on your device) and a truncated client IP. Counters reset daily at 00:00 UTC. |
| Service reliability and fraud prevention | A per-conversion metadata record: timestamp, channel, truncated IP prefix, hashed install identifier (extension uploads only), page count, estimated size, success/failure, error category, pipeline, and latency. No file content. |
| Monitor and improve accuracy | De-identified per-conversion accuracy signals: bank-name label, currency, reconciliation outcome, and transaction / account counts — never file content, account numbers, or names. |
| Future: authenticate and bill paid plans (not active during the public beta) | Email address and Stripe customer ID, only after a user signs up for a paid plan. |
We do not use your statement content to train AI models. We do not sell your data to advertisers, brokers, or any third party.
To run the Service we share limited information with:
| Provider | Purpose | What they receive |
|---|---|---|
| OpenRouter (LLM router) | Send a rasterized page image to the LLM. We route via OpenRouter's Zero Data Retention tier for upstream providers that honour it. | One image per statement page; no metadata |
| Google (Gemini API) | OCR + extraction (called via OpenRouter). Per Gemini API additional terms, paid-tier inputs and outputs are not used to improve Google products. | The image content for inference only; not retained per Google API terms |
| Datalab (Chandra OCR) | Fallback OCR for low-quality scans. Datalab's privacy policy documents their managed-platform zero-data-retention posture for API customers. | Rasterized page images for inference; no statement metadata |
| Cloudflare | Edge TLS, CDN, DDoS protection, bot management for bank2xl.app and api.bank2xl.app | Request metadata (URL, method, IP, user agent) for routing and abuse mitigation |
| PostHog (EU instance, eu.i.posthog.com) | Product analytics on the marketing site (bank2xl.app) | Page views, anonymous distinct ID stored in a first-party cookie. Never receives statement content or uploaded files. |
| Future: Stripe | Payment processing — not active during the public beta | Email, billing address, card details (held by Stripe). No payment data collected until paid plans launch. |
Each provider operates under its own privacy policy. We choose providers with strict no-training and no-retention defaults for content data.
We use TLS for all data in transit. Files at rest are encrypted with AES-256. Access to production systems is restricted to a small number of engineers with two-factor authentication. We follow industry-standard practices but cannot guarantee absolute security; please use the Service only with statements you are willing to upload to a cloud SaaS.
You can at any time:
Residents of California (CCPA), the EU/UK (GDPR), and other jurisdictions with similar laws have additional statutory rights. Contact us at privacy@bank2xl.app to exercise them. We do not sell personal information under any definition of "sell" in CCPA.
The Service is not directed at children under 13 (or 16 in the EU). We do not knowingly collect data from children. If you believe a child has used the Service, contact us and we will delete the associated account.
We may update this Policy. Material changes will be announced via email to account holders and via a banner on the landing page. Continued use of the Service after a change constitutes acceptance.
Bank2XL
Email: privacy@bank2xl.app
Operator: Dmitry Ivanov, Montenegro