The big picture
Two records of the same money. Reconciling is proving they agree.
The statement is the bank's record of what actually moved. Your books are your record of what you meant to happen. Reconciling walks the statement line by line and pairs each one with the entry that explains it. Whatever pairs is cleared; whatever does not is a real question — a payment nobody recorded, a receipt that never arrived, a charge you did not know about.
Not one journal entry. Matching only marks an entry as cleared against a statement line, and unmatching un-marks it. Your profit, your balances and your ledger are exactly the same before and after. This is a proof, not a transaction.
Where it lives
There is no menu item called "reconciliation". Everything is inside one screen:
Books & Accounting
The host screen. Seven tabs.
More → Books & AccountingBanking tab
One card per bank or cash account. The tab label carries the unmatched count.
tab 6 of 7Import statement
Three steps: File, Columns, Review.
button on the cardReconcile
The matching worklist. Appears once a statement exists.
button on the cardOn a phone the More sheet calls it Books. Access needs canAccessSettings — a reports-only user cannot open it at all, even though they are allowed to read the data.
Before you start
Two things must exist or the tab has nothing to show.
1. The books must be switched on. If they are not, the whole screen is replaced by a Set up my books card. Pressing it seeds the chart of accounts, posts opening balances and backfills the ledger, then reports "Books ready — posted N journal entries."
2. At least one bank or cash account. More → Bank & Cash Accounts → Add account (name, bank/cash, bank name, branch, last 4, IFSC, opening balance). Without one the Banking tab says:
"Add the accounts you pay from and receive into under Settings, then come back to import their statements."
Each account's card then shows its book balance, the last statement imported, and a pill — amber "N to reconcile" or green "All matched".
Importing a statement
Three steps, and the middle one is not what it looks like.
Banking tab → the account's card → Import statement.
| Step | What happens |
|---|---|
| 1 · File | Choose a CSV, XLSX or PDF statement from the bank. Deetzo recognises the HDFC, ICICI, SBI, Axis and Kotak layouts by their headings, and any other file whose headings name the columns. A PDF is read by finding the table on the page — see below. |
| 2 · Columns | Shows what it worked out — which column is the date, the description, the reference, money in and out, the balance — and how dates were read. A known bank shows a green Recognised: HDFC Bank pill. |
| 3 · Review | Transaction count, period, money in, money out, closing balance, any rows it could not read, and a preview of the first eight. Then Import N. |
Importing the PDF instead
Most people never find the CSV download, because the bank's app leads with a PDF. Deetzo will read the PDF — but it is worth knowing what that means, because it is not the same act as reading a CSV.
There is no parser per bank, and there could not be: every bank's PDF looks different and they change. Instead the table is found from the geometry of the page — the dates are wherever the dates are, the money columns are wherever the amounts line up, and the description is the space in between. That works on a statement the bank generated. It cannot work on a scan or a photograph, which has no text in it at all, and it says so rather than guessing.
A reconstructed table can be wrong in a way a CSV cannot, so before anything is imported Deetzo proves two things: that the running balance adds up from row to row down the whole statement, and that the totals match the ones the statement prints on itself. Pass, and the review step says so — "the running balance adds up on 128 of 128 rows". Fail, and the Import button stays off until you have looked at the rows and deliberately said to go on.
Two more things it does on its own: a password-protected statement asks for the password (used once, stored nowhere), and a bank that prints money in before money out is noticed by comparing against the statement's own totals, and the columns are swapped with a note saying so.
It is the bank's own numbers in the bank's own columns — nothing is inferred. Every Indian bank offers one, usually beside the PDF download in net banking, sometimes labelled Excel or "delimited". If you import from the same account every month, finding it once is worth the five minutes.
There are no dropdowns. If the columns were detected correctly, press on; if they were not, the import cannot be rescued from this screen. One error message says "Could not work out what the columns mean. Map them below." — there is nothing below to map. The remedy is to fix the header row in the file (give it plain headings like Date, Narration, Withdrawal, Deposit) and import again.
The mapping is remembered per account, so next month's file from the same bank is recognised without thinking about it. And re-importing an overlapping period is safe — anything seen before is skipped. The screen says so: "Re-importing a period you already loaded is safe — anything seen before is skipped."
What it refuses
| Message | Meaning |
|---|---|
| "That file has no rows in it." | Empty file, or an XLSX whose first sheet is empty. |
| "No headings were recognised in this file. It needs a header row naming at least a date, a description and an amount column." | Add or fix the header row. |
| "A statement can carry at most 2000 transactions; split the file by period." | Import month by month. |
| "Too many attempts. Please wait a few minutes and try again." | Twenty imports an hour, per user. |
| "Row has both a withdrawal and a deposit; skipped." · "Row has an amount but no date." · "Could not read the date "…"." | Per-row notes on the Review step. Those rows are left out; the rest still import. |
Note for spreadsheets: an XLSX is read from its first sheet only. If your bank exports a cover sheet first, save the transactions sheet as CSV instead.
How matching works
Worth understanding, because it explains every match you disagree with.
For each statement line Deetzo looks for book entries on that bank account and scores them. Two things are absolute — get either wrong and there is no pair at all:
- The amount must be equal to the paisa, and in the mirrored direction (money in on the statement ↔ a debit in the books).
- The dates must be within seven days of each other.
Everything else adds confidence, and appears on screen as blue chips you can read: same day, 2d apart, reference, party, unique amount, 3 receipts.
| Signal | Why it counts |
|---|---|
| Same day, or within three | The strongest ordinary evidence. |
| Reference in common | A UTR or cheque number appearing in both. |
| Party name in the narration | The customer's or supplier's name found in the bank's text (ignoring PVT, LTD, LLP and the like). |
| Unique amount | Only one entry anywhere near that figure. |
A line is only matched automatically when one candidate scores well and clearly beats the runner-up. Anything close is left for you. A deposit covering several receipts is found too, but deliberately scored below the automatic threshold — it always asks a human, and the line says so: "A deposit of N receipts — check the list before matching."
Whatever you match, the entries' net movement on that bank account must equal the statement line exactly, or it is refused: "Those entries do not add up to the statement line." One line can clear at most six entries.
Working the list
Four actions, and one button that behaves differently from the others.
Banking tab → Reconcile. Each open line shows its best suggestion with the entry's narration and its signal chips.
| Action | Effect |
|---|---|
| Match | Clears the line against that entry. |
| Set aside | Parks a line you have decided not to deal with. It stops counting as open. |
| Unmatch | Undoes a match, one line at a time. |
| Put back | Returns a set-aside line to the open list. |
Find matches scores every open line on the server and then immediately applies every high-confidence match. There is no preview, no confirmation and no bulk undo: to reverse it you unmatch lines one at a time. It reports what it did — "Matched N outright, M to confirm." Use it when you have a long statement and trust the run; work down the list by hand when you do not.
Lines with nothing to pair against say so plainly: "Nothing in the books matches this line." That is not a failure of the tool — it is the finding. Something happened at the bank that your books have never heard of, and somebody has to enter it (§07).
Reading what is left
The header counters, and what they do and do not mean.
| Figure | What it is |
|---|---|
| Matched n of N | Progress through the statement. |
| Still open | Lines neither matched nor set aside. |
| Set aside | Parked deliberately. |
| Uncleared | The value of the still-open lines. Green at zero, amber otherwise. |
| Bank closing | The closing balance the statement itself carries. |
It is only the sum of the statement lines you have not dealt with. It is not a reconciliation statement: there is no book-balance-versus-bank-balance comparison, no split of uncleared deposits and withdrawals, and no gate that insists the difference be zero. Reaching "Uncleared 0" means you have accounted for every line on this statement — a good day's work, but not a signed reconciliation. The screen puts it well: "Uncleared is what the statement shows but the books have not accounted for yet. It reaches zero when every line is matched or set aside."
Traps
The things that will waste an afternoon if nobody warns you.
- Only the latest statement is reconcilable. Import a newer file and the previous statement's leftover lines can no longer be opened — while still counting towards the amber badge, which then never clears. Finish a statement before importing the next one.
- The months must overlap. Matching only looks a week either side of each line and loads the books around the statement's period. A September statement against April entries matches nothing — and looks like the feature is broken when it is working exactly as designed.
- Undeposited Funds. A receipt, payment or expense recorded without choosing a bank account posts to Undeposited Funds. It is never a candidate for any statement line, because as far as the books are concerned it never touched a bank. If a line stubbornly has no match, check whether the entry has a bank account on it.
- Set aside is an accounting decision. Nothing asks for a reason and nothing chases it. Use it for lines that genuinely belong to another period or another account — not as a way to make the number go green.
- Two identical transactions on one day are told apart by their order within a single file. Re-exporting the same day in a different order can make the second import skip a legitimate repeat.
What is not here yet
Two of these change how you have to work, so read them before you start.
A bank charge, interest received, or a payment nobody recorded has to be entered the normal way — as an expense, a receipt or a payment on its own screen — and then matched on the next pass. There is no "create from this line" button. On a first reconciliation of a real account, expect to go back and forth.
Nothing closes a statement, nothing stamps a reconciled-through date, and there is no reconciliation report to file or print. A statement stays open for ever; "done" means you have worked its list to zero and moved on.
Also still to come: a live book balance and a Reconcile button on the Bank & Cash Accounts screen; OFX and QIF import; matching several statement lines to one book entry; a cash physical-count flow; a books health check for unreconciled items older than sixty days; and a sweep for stranded Undeposited Funds.
Quick reference
The page to keep open the first few months.
| Concept | Where / what |
|---|---|
| Getting there | More → Books & Accounting → Banking tab (phone: Books) |
| Files | CSV or XLSX (first sheet only); HDFC · ICICI · SBI · Axis · Kotak recognised |
| Limits | 2,000 transactions per statement · 20 imports per hour · 6 entries per line |
| Duplicates | Detected automatically; re-importing an overlap is safe |
| Match requires | Exact amount, mirrored direction, within 7 days |
| Line states | unmatched → matched or excluded, and back again |
| Find matches (sparkle) | Auto-applies high-confidence matches. No undo but one-by-one |
| Posts to the ledger | Nothing. Matching only marks entries as cleared |
| Uncleared | Sum of still-open lines — not a bank-versus-book difference |
| Finish a statement | Before importing the next — older ones become unreachable |
| Permission | canAccessSettings to open and to match |
The statement is evidence; the books are the claim. Reconciling tests the claim against the evidence and gives you a list of the places they disagree. The list is the deliverable — not the green number.