Ledger — the two ways payments arrive

Drop a file, check what was read, confirm. Nothing is added until the last step, every duplicate is found before it is offered, and the confirm card is a subtraction somebody is meant to be able to do in their head. The file below is real text run through the real parser — change a column’s role and the grid re-reads it. ⚠ The heading named the file alone while this page mounted two surfaces; the second way is the paste sheet below.

Import

Last import 12 days ago.

Drop a bank file here

CSV, tab-delimited, or CAMT.053 XML — or choose one. Nothing is added until you have seen the preview and confirmed it.

Only a few payments? Paste them

Copy a handful of lines straight off your bank’s screen and they are read the same way, with the same preview before anything lands. A whole month is better as a file.

Coming

Connect your bank directly

One connection instead of a monthly file. It is waiting on bank licensing, not on us — file import stays first-class either way.

Past importsundo works for 30 days
WhenFileIntoAddedSkipped
Feb 28, 08:40 PMrabobank-feb.csvRabobank CSV · utf-8Joint account · SNS …220118211 duplicates
Feb 28, 08:32 PMknab-feb.csvCSV · utf-8Personal · Knab …041764none
Jan 31, 07:05 PMCAMT053-2026-01.xmlRabobank CAMT.053 · utf-8Joint account · SNS …22011954 duplicatesExpired

The paste sheet — a handful of payments off a bank’s screen

The shortcut beside the file import: paste, read, check, confirm. The reading is a model call and is inert until a composition holds a provider credential, so nothing read it is the ordinary state for now — and it says that rather than telling somebody their paste held nothing.