Security & Data Handling

A bank statement is a sensitive document. Here is exactly what happens to every PDF you upload — no storage, no model training, automatic deletion.

Files are not stored

When you upload a recognized bank format, the PDF is processed in server memory and never written to disk. It is wiped from memory the moment processing finishes.

Unknown formats are held briefly

A layout the system does not yet recognize is stored temporarily on encrypted disk for automatic format learning, then permanently deleted once learning completes (typically within 24 hours).

Never used to train models

Your statement content is never added to any AI model's training data. The only thing learned is the column layout (a template) — not your transaction amounts, names, or balances.

Encryption end to end

All traffic is encrypted with TLS 1.2+. Temporary PDF storage uses an encrypted disk partition. Passwords are hashed with PBKDF2; plaintext passwords are never stored anywhere.

Scoped authentication

API access uses a per-user key (pex_…) or a short-lived JWT. You can revoke keys instantly from the dashboard. Session cookies are httpOnly and secure.

No third-party data sharing

All processing, including OCR, runs locally on our own servers. Your PDF content is never sent to any external service (cloud OCR, LLM APIs, etc.). Payment data lives only with Paddle, not with us.

Retention periods

Recognized-format PDFsMemory only — deleted as soon as processing finishes
Unknown-format PDFsEncrypted disk — after learning, within 24 hours at most
Extracted transaction data (API/dashboard)Optional; removed on account deletion request
Usage logs (page counts, timestamps)2 years — for quota and billing
Account informationUntil account deletion, then permanently within 30 days
Payment recordsHeld by Paddle for the legally required period

Your part

  • Keep your API keys secret; if one leaks, revoke it instantly from the dashboard and generate a new one.
  • Your webhook URL must be a public HTTPS address (SSRF protection) — internal addresses are rejected.
  • If you use the demo on a shared machine, close the browser tab when you are done.
For vulnerability reports or data-handling questions, contact info@bankstatementparser.net. For the full legal text, see the Privacy Policy.