Getting transactions in
Three ways in: a screenshot, a CSV, or one-tap bank sync. Use whichever your bank makes easy.
You don't have to pick one and stick with it. Some banks make CSV exports painless. Others, you just screenshot the app. Mix and match.
Every import is reviewed before anything is saved. And duplicates, a date and amount already in your data, are flagged, so you never double-import.
Screenshot import
No file to download, no export to find. Screenshot your bank's transaction list and OpenTeller reads it into transactions you review before saving.
This works on the web app too. Open Bank Sources, choose Import screenshot, and drop in up to three images. The reading happens in your browser, so the images never leave your device, only the extracted text does.
In iCloud mode on iOS this is fully on-device. Apple's Vision OCR reads the text, and Apple's on-device AI turns it into rows. Nothing leaves your device.
In account mode, the OCR text is sent to our server and parsed by GPT, which is more accurate on jumbled screenshots. The raw screenshot never leaves your device, only the extracted text. More on that in Privacy & your data.
The on-device path needs an Apple-Intelligence-capable device on iOS 26+. On unsupported devices the option is hidden. Use CSV instead.
- Screenshot your bank app's transaction list.
- In OpenTeller, choose to import from a screenshot.
- Pick the screenshots you took.
- Review the rows it pulled out.
- Save.
CSV import
Best for bulk history. Download a CSV or statement from your bank's website, then import it.
You map the columns once per bank: which one is the date, which is the amount, which is the description. After that, re-imports are basically two taps.
Parsing and column mapping happen on your device. In account mode, AI can infer the column layout for you from the headers and a few sample rows.
- Export a CSV from your bank's website.
- Add a CSV source in OpenTeller.
- Map the columns once.
- Import.
The mapping is saved on the source, so future imports from the same bank skip setup entirely.
One-tap bank sync
This is for an OpenTeller account on Pro+. It is not automated background syncing. It's user-initiated. You log into your bank yourself and sync each time. That's the trade-off for never handing over your credentials.
No aggregator. No stored credentials. No Plaid. Your login goes straight to your bank's own website. We never see it and never store it.
The first time with a new bank, OpenTeller learns how to read that bank's transactions page, a one-time training step. After that, sync is one click.
Works with any bank in the world. There's no aggregator coverage list to check. If you can log into your bank's website, sync works.
In your browser, with the extension
The OpenTeller Bank Sync extension for Chrome does this on your computer, and it's available now.
- Install the OpenTeller Bank Sync extension and sign in with your OpenTeller account.
- Log into your bank like you always do and open its transactions page.
- Click the OpenTeller icon and train the matching source. One time per bank.
- Next time, the extension recognizes the page. Click Sync.
- Review what's new and import.
Duplicates are caught before anything saves, so syncing twice never double-imports. And if your bank redesigns its site, one re-train fixes it.
In the iOS app
The same idea, one tap on your phone: your bank opens inside the app, iOS autofills the password, you do 2FA, and fresh transactions appear in seconds. Available now in the iOS app.
Because it's user-initiated, you log in and sync yourself. It won't run in the background. That's the trade-off for not handing over your credentials.
Which should I use?
- Screenshot: fastest for a few transactions, and works with any bank.
- CSV: best for bulk history, and works on any device.
- Bank sync: most convenient for ongoing updates on Pro+. In your browser with the extension, or one tap in the iOS app.