Bank statement to Xero manual journals
Upload a bank statement CSV, or a transaction export from an old ledger. Rules and code mappings do the bulk of the coding, anything left goes to a review queue for a person, duplicates and unreadable rows are held back with a reason, and the totals are reconciled before the file can be exported as Xero manual journals, one per month.
Both samples are made up: a café's bank account, and a mechanic's ledger export where every line
already carries its old MYOB-style account code. Your own file needs a header row with Date, Description and either
Amount or Debit/Credit, plus optionally Account Code/Account Name (or P&L Code, Category).
Dates are read day-first. Up to 10,000 rows. Please don't upload real customer data to a demo.
How it works
- Parse. Amount, Debit/Credit, "$1,234.50" and "(12.00)" are all read as whole cents with string maths, so no float rounding. A row whose date or amount can't be read is kept and flagged, never silently dropped.
- De-duplicate. A second line with the same date, amount and description is held back until someone confirms it is real.
- Map old codes. If the file already carries account codes from the old system, each code is mapped to a Xero account once and every line follows, across all your imports.
- Code. Otherwise rules match on the description, first by priority. A shared income rule never codes money going out, so a Square refund doesn't land in Sales.
- Review. What's left is grouped by its leading words; one click turns a group into a rule. Single lines can be coded by hand. Export is blocked until the queue is empty.
- Reconcile and export. Statement total = journals + held-back duplicates + anything still waiting. Each month's journal is checked to net to zero against the bank account before the CSV is written.