emberfi

Bank sync & import

Secure account linking and CSV import, with one dedup pipeline and zero double-counting.

Ember keeps your ledger current without making you the data-entry clerk. Connected accounts sync through Plaid; history arrives via YNAB or CSV import; and a dedup pipeline makes sure the same transaction never lands twice, no matter which path it came in on.

Bank connections via Plaid

Ember links to banks, card issuers, and brokerages through Plaid. You authenticate with your institution inside Plaid's own window — your banking credentials never touch Ember. Once linked:

  • Transactions sync continuously. New activity flows in via Plaid's sync API and webhooks, so the ledger stays fresh without you clicking refresh.
  • Pending charges show up early. Card authorizations appear in a read-only Pending group the moment the bank reports them, then seamlessly become real ledger entries when they post. You can also promote a pending charge immediately with Enter now if you want to categorize it right away.
  • Merchant data comes along. Logos, cleaned-up merchant names, and category suggestions arrive with each transaction, so most rows need zero editing.
  • Investment accounts sync too. Brokerage holdings, buys, sells, dividends, and reinvestments flow into a proper double-entry investment ledger — not just a balance number.
  • Mortgages and loans are first-class. Liability sync classifies loan accounts, tracks escrow, and decomposes each payment into principal, interest, and escrow.

What the bank says vs. what you've confirmed

Imported bank rows are immutable in Ember — the bank's record is preserved exactly as received, forever. Your edits (payee, category, memo, splits) live on your side of the ledger, matched to the bank row. That separation is what makes reconciliation trustworthy: you can always see what the bank reported and what you decided it meant.

Transfer detection

Moving money between your own accounts is the classic double-count trap. Ember detects self-transfers automatically after each sync — matching the two legs across your accounts, or recognizing the destination by its account number — and pairs them into a single transfer instead of an unexplained expense plus a mystery deposit.

Migrating from YNAB

One upload moves your whole budget: export your YNAB register, drop the CSV into Ember, review the preview, and confirm. Every account, transfer, split transaction, and starting balance comes across in a single pass. You keep your history; you skip the months of re-typing.

CSV import for everything else

Each account's edit panel accepts a CSV upload. Ember sniffs the header row and picks the right parser automatically — YNAB register layout or bank-export layout — so there's no column-mapping wizard to fight with.

The dedup pipeline

Every import path — Plaid sync, YNAB migration, CSV upload — runs through the same staging pipeline that matches incoming rows against what's already in the ledger. Import a year of CSV history, then connect the same account through Plaid, and the overlap matches up instead of duplicating. Re-import the same file twice and the repeats are flagged, not inserted.

See also

  • The ledger — reviewing, approving, and reconciling what arrives.
  • Security & privacy — how Plaid access tokens and your data are protected.