Skip to main content

Importing statements.

~7 min read · For anyone bringing PDF statements into CentProof

Why PDFs (and not a bank login)

CentProof reads the PDF statements your bank already generates for you each month. There is no aggregator (Plaid, Yodlee, Finicity), no bank-password login, no API connection of any kind. The trade-off is explicit: you download your statements manually each month, and in exchange, no third party — including CentProof itself — has read access to your bank.

For a longer explanation of why this matters, see the password-app guide. For the rest of this doc, we'll assume you're on board with the PDF model and want to know how to actually use it.

Supported banks

As of v0.1.7, CentProof has verified parsers for:

  • Bank of America (checking, savings, combined statements)
  • Chase (personal checking, business checking, credit card)
  • Wells Fargo (checking, savings, combined statements)
  • Capital One (credit card)
  • Apple Card (credit card)
  • American Express (credit card)
  • Discover (credit card)
  • Citi (credit card, including Costco Visa)
  • US Bank (checking)

See the full bank list for the up-to-date status. New parsers ship in maintenance releases as users send in redacted samples (see What if my bank isn't supported below).

How to import

Three equivalent ways to get a PDF into CentProof:

  1. Drag and drop. Drag the file from Finder onto any part of the CentProof window.
  2. Add Statement button. Top-left button opens the standard Mac file picker.
  3. Keyboard shortcut. ⌘ N opens the same file picker.

CentProof processes one statement at a time. If you have a backlog of twelve months to import, drop them in one by one — most parsers run in under a second per statement, so the bottleneck is your clicking speed on Commit.

What CentProof does to the PDF

Inside CentProof, the import pipeline is:

  1. Hash the file. SHA-256 of the bytes — used later to detect if you accidentally try to import the same statement twice.
  2. Extract text + positions. Using pdf.js locally to pull every text character and its X/Y coordinates on each page.
  3. Fingerprint the bank.Look for signatures like "JPMorgan Chase Bank" or "Bank of America".
  4. Pick the right parser. Each bank has a dedicated parser that knows its specific layout (column positions, summary block wording, period format).
  5. Reconcile. Opening balance + credits − debits should equal the closing balance the statement prints. If it does, you see a green ✓.
  6. Show the Review screen. You confirm before anything is committed to the database.

Everything above happens locally on your Mac. No network calls, no upload, no telemetry.

Combined statements (multiple accounts in one PDF)

Some banks (Bank of America Advantage Plus + Regular Savings, Wells Fargo Checking + Way2Save) print TWO or more accounts in a single PDF. CentProof detects this and walks you through them one at a time on the Review screen — "Account 1 of 2 / Account 2 of 2" — so you can confirm each one independently.

Each account becomes its own statement row in CentProof after commit. They share the same source PDF (encrypted once, referenced by both rows) but are otherwise independent for search, reports, and reconciliation.

Duplicate detection

If you try to import a PDF you've already imported, CentProof catches it two ways:

  • Same file (SHA match).Identical bytes to a previous import — the duplicate is detected instantly and you're told which existing statement it matches.
  • Same period (account + dates match). Different file but same account, same period start/end — also flagged. Catches the case where your bank re-issued a corrected version of the same month.

For combined statements where some accounts are duplicates and others aren't, CentProof walks you through only the new ones.

What if my bank isn't supported

When CentProof can't identify the bank, you see this dialog instead of an error:

We don't recognize this PDF yet
─────────────────────────────────
What would you like to do?

  • Try best-effort extraction
      Run a generic heuristic parser and see what
      rows we can pull from the PDF. Read-only —
      nothing saved to your imports.

  • Send us a sample
      Open centproof.com in your browser. Walk
      through redacting personal fields, then
      email us the PDF. New parsers ship within
      1-2 weeks in the next maintenance release.

  • Cancel
      Close the dialog. No import happens.

Best-effort extractionuses a generic parser that looks for date + description + amount patterns anywhere in the PDF. It doesn't know your bank's specific layout, so it can miss multi-line descriptions or grab the wrong column on statements with side-by-side amount + balance layouts. The result is shown read-only on a preview screen with a clear "NOT verified" warning — nothing saves to your imports. Useful for getting a feel for what's in the statement before deciding whether to send a sample.

Send us a sample is the path to a real verified parser. The link opens centproof.com/banks/share-sample with the redaction guide pre-loaded. You mask account number, name, and address (keeping amounts and dates intact so we can verify reconciliation), then email the redacted PDF directly to support@centproof.com. New parsers typically ship within 1-2 weeks.

Free Test Mode limits

Free Test Mode caps imports at 2 active statements and 5 lifetime imports total — enough to verify CentProof works on your bank before deciding whether to upgrade to Pro. Existing imported data remains accessible after hitting the cap; only new imports are gated.

When you hit a cap, CentProof shows a clear dialog with the upgrade path. Pro Lifetime is $49 one-time for unlimited statements on up to 2 Macs. Full details on the pricing page.

Where the imported PDF lives

After you click Commit, CentProof encrypts a copy of the PDF and stores it at ~/Library/Application Support/com.javamantra.pdfapp/pdfs/<sha>.bin. The encryption key lives in macOS Keychain — only the production CentProof binary can read it. Even file-system access to the .bin file doesn't reveal the PDF contents.

The Review screen and any later "view source PDF" clicks decrypt the file in memory on demand. The plaintext PDF never sits on disk inside CentProof's storage. For more detail, see Backup and recovery.

Next: what to do on the Review screen

Reconciliation, manual override, and the Account Summary breakdown — explained.

Reviewing and reconciling →