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.
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.
| When | File | Into | Added | Skipped | |
|---|---|---|---|---|---|
| Feb 28, 08:40 PM | rabobank-feb.csv | Joint account · SNS …2201 | 182 | 11 duplicates | |
| Feb 28, 08:32 PM | knab-feb.csv | Personal · Knab …0417 | 64 | none | |
| Jan 31, 07:05 PM | CAMT053-2026-01.xml | Joint account · SNS …2201 | 195 | 4 duplicates | Expired |
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.